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;
|
||||
}
|
||||
else if(header.version==2){
|
||||
//desc = header.extension_data.extension_data.version2.short_desc;
|
||||
if(header.extension_data.version2.cliffLevel>0){
|
||||
cliffLevel=static_cast<float>((header.extension_data.version2.cliffLevel)/heightFactor);
|
||||
//desc = header.version2.short_desc;
|
||||
if(header.version2.cliffLevel>0){
|
||||
cliffLevel=static_cast<float>((header.version2.cliffLevel-0.01f)/(heightFactor));
|
||||
}
|
||||
else {
|
||||
cliffLevel=0;
|
||||
|
@ -1098,7 +1098,7 @@ void Map::smoothSurface(Tileset *tileset) {
|
|||
for (int i = 0; i < getSurfaceCellArraySize(); ++i) {
|
||||
oldHeights[i] = surfaceCells[i].getHeight();
|
||||
}
|
||||
printf("argh %f\n",cliffLevel);
|
||||
|
||||
for (int i = 1; i < surfaceW - 1; ++i) {
|
||||
for (int j = 1; j < surfaceH - 1; ++j) {
|
||||
float height = 0.f;
|
||||
|
|
|
@ -60,19 +60,6 @@ static const int DEFAULT_CLIFF_HEIGHT = 0;
|
|||
|
||||
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 {
|
||||
int32 version;
|
||||
int32 maxFactions;
|
||||
|
@ -82,7 +69,15 @@ struct MapFileHeader {
|
|||
int32 waterLevel;
|
||||
int8 title[MAX_TITLE_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
|
||||
assertGl();
|
||||
|
||||
glPolygonOffset(0.05f, 0.0f);
|
||||
//set cull face
|
||||
if(mesh->getTwoSided()) {
|
||||
glDisable(GL_CULL_FACE);
|
||||
}
|
||||
else{
|
||||
glEnable(GL_CULL_FACE);
|
||||
glPolygonOffset(0.05f, 0.0f);
|
||||
}
|
||||
|
||||
//set color
|
||||
|
|
|
@ -669,11 +669,11 @@ void MapPreview::loadFromFile(const string &path) {
|
|||
author = header.author;
|
||||
cliffLevel = 0;
|
||||
if(header.version==1){
|
||||
desc = header.extension_data.description;
|
||||
desc = header.description;
|
||||
}
|
||||
else if(header.version==2){
|
||||
desc = header.extension_data.version2.short_desc;
|
||||
cliffLevel=header.extension_data.version2.cliffLevel;
|
||||
desc = header.version2.short_desc;
|
||||
cliffLevel=header.version2.cliffLevel;
|
||||
}
|
||||
|
||||
//read start locations
|
||||
|
@ -738,9 +738,9 @@ void MapPreview::saveToFile(const string &path) {
|
|||
header.waterLevel = waterLevel;
|
||||
strncpy(header.title, title.c_str(), MAX_TITLE_LENGTH);
|
||||
strncpy(header.author, author.c_str(), MAX_AUTHOR_LENGTH);
|
||||
strncpy(header.extension_data.version2.short_desc, desc.c_str(), MAX_DESCRIPTION_LENGTH_VERSION2);
|
||||
header.extension_data.version2.magic= 0x01020304;
|
||||
header.extension_data.version2.cliffLevel= cliffLevel;
|
||||
strncpy(header.version2.short_desc, desc.c_str(), MAX_DESCRIPTION_LENGTH_VERSION2);
|
||||
header.version2.magic= 0x01020304;
|
||||
header.version2.cliffLevel= cliffLevel;
|
||||
|
||||
|
||||
fwrite(&header, sizeof(MapFileHeader), 1, f1);
|
||||
|
|
Loading…
Reference in New Issue
Block a user