cleaned up the cliff coding; hopefully really no more flickering now
This commit is contained in:
parent
5623866779
commit
e20162a3c4
|
@ -188,9 +188,9 @@ Checksum Map::load(const string &path, TechTree *techTree, Tileset *tileset) {
|
||||||
//desc = header.description;
|
//desc = header.description;
|
||||||
}
|
}
|
||||||
else if(header.version==2){
|
else if(header.version==2){
|
||||||
//desc = header.extension_data.extension_data.version2.short_desc;
|
//desc = header.version2.short_desc;
|
||||||
if(header.extension_data.version2.cliffLevel>0){
|
if(header.version2.cliffLevel>0){
|
||||||
cliffLevel=static_cast<float>((header.extension_data.version2.cliffLevel)/heightFactor);
|
cliffLevel=static_cast<float>((header.version2.cliffLevel-0.01f)/(heightFactor));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cliffLevel=0;
|
cliffLevel=0;
|
||||||
|
@ -1098,7 +1098,7 @@ void Map::smoothSurface(Tileset *tileset) {
|
||||||
for (int i = 0; i < getSurfaceCellArraySize(); ++i) {
|
for (int i = 0; i < getSurfaceCellArraySize(); ++i) {
|
||||||
oldHeights[i] = surfaceCells[i].getHeight();
|
oldHeights[i] = surfaceCells[i].getHeight();
|
||||||
}
|
}
|
||||||
printf("argh %f\n",cliffLevel);
|
|
||||||
for (int i = 1; i < surfaceW - 1; ++i) {
|
for (int i = 1; i < surfaceW - 1; ++i) {
|
||||||
for (int j = 1; j < surfaceH - 1; ++j) {
|
for (int j = 1; j < surfaceH - 1; ++j) {
|
||||||
float height = 0.f;
|
float height = 0.f;
|
||||||
|
|
|
@ -60,19 +60,6 @@ static const int DEFAULT_CLIFF_HEIGHT = 0;
|
||||||
|
|
||||||
static const int MAP_FORMAT_VERSION=2;
|
static const int MAP_FORMAT_VERSION=2;
|
||||||
|
|
||||||
|
|
||||||
typedef union {
|
|
||||||
int8 description[MAX_DESCRIPTION_LENGTH];
|
|
||||||
|
|
||||||
struct {
|
|
||||||
int8 short_desc[MAX_DESCRIPTION_LENGTH_VERSION2];
|
|
||||||
int32 magic; // 0x01020304 for meta
|
|
||||||
int32 cliffLevel;
|
|
||||||
int8 meta[120];
|
|
||||||
} version2;
|
|
||||||
} uniondata;
|
|
||||||
|
|
||||||
|
|
||||||
struct MapFileHeader {
|
struct MapFileHeader {
|
||||||
int32 version;
|
int32 version;
|
||||||
int32 maxFactions;
|
int32 maxFactions;
|
||||||
|
@ -82,7 +69,15 @@ struct MapFileHeader {
|
||||||
int32 waterLevel;
|
int32 waterLevel;
|
||||||
int8 title[MAX_TITLE_LENGTH];
|
int8 title[MAX_TITLE_LENGTH];
|
||||||
int8 author[MAX_AUTHOR_LENGTH];
|
int8 author[MAX_AUTHOR_LENGTH];
|
||||||
uniondata extension_data;
|
union {
|
||||||
|
int8 description[MAX_DESCRIPTION_LENGTH];
|
||||||
|
struct {
|
||||||
|
int8 short_desc[MAX_DESCRIPTION_LENGTH_VERSION2];
|
||||||
|
int32 magic; // 0x01020304 for meta
|
||||||
|
int32 cliffLevel;
|
||||||
|
int8 meta[120];
|
||||||
|
} version2;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
// ===============================================
|
// ===============================================
|
||||||
|
|
|
@ -137,13 +137,13 @@ void ModelRendererGl::renderMesh(Mesh *mesh) {
|
||||||
//assertions
|
//assertions
|
||||||
assertGl();
|
assertGl();
|
||||||
|
|
||||||
|
glPolygonOffset(0.05f, 0.0f);
|
||||||
//set cull face
|
//set cull face
|
||||||
if(mesh->getTwoSided()) {
|
if(mesh->getTwoSided()) {
|
||||||
glDisable(GL_CULL_FACE);
|
glDisable(GL_CULL_FACE);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
glEnable(GL_CULL_FACE);
|
glEnable(GL_CULL_FACE);
|
||||||
glPolygonOffset(0.05f, 0.0f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//set color
|
//set color
|
||||||
|
|
|
@ -669,11 +669,11 @@ void MapPreview::loadFromFile(const string &path) {
|
||||||
author = header.author;
|
author = header.author;
|
||||||
cliffLevel = 0;
|
cliffLevel = 0;
|
||||||
if(header.version==1){
|
if(header.version==1){
|
||||||
desc = header.extension_data.description;
|
desc = header.description;
|
||||||
}
|
}
|
||||||
else if(header.version==2){
|
else if(header.version==2){
|
||||||
desc = header.extension_data.version2.short_desc;
|
desc = header.version2.short_desc;
|
||||||
cliffLevel=header.extension_data.version2.cliffLevel;
|
cliffLevel=header.version2.cliffLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
//read start locations
|
//read start locations
|
||||||
|
@ -738,9 +738,9 @@ void MapPreview::saveToFile(const string &path) {
|
||||||
header.waterLevel = waterLevel;
|
header.waterLevel = waterLevel;
|
||||||
strncpy(header.title, title.c_str(), MAX_TITLE_LENGTH);
|
strncpy(header.title, title.c_str(), MAX_TITLE_LENGTH);
|
||||||
strncpy(header.author, author.c_str(), MAX_AUTHOR_LENGTH);
|
strncpy(header.author, author.c_str(), MAX_AUTHOR_LENGTH);
|
||||||
strncpy(header.extension_data.version2.short_desc, desc.c_str(), MAX_DESCRIPTION_LENGTH_VERSION2);
|
strncpy(header.version2.short_desc, desc.c_str(), MAX_DESCRIPTION_LENGTH_VERSION2);
|
||||||
header.extension_data.version2.magic= 0x01020304;
|
header.version2.magic= 0x01020304;
|
||||||
header.extension_data.version2.cliffLevel= cliffLevel;
|
header.version2.cliffLevel= cliffLevel;
|
||||||
|
|
||||||
|
|
||||||
fwrite(&header, sizeof(MapFileHeader), 1, f1);
|
fwrite(&header, sizeof(MapFileHeader), 1, f1);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user