remove ability to write map file format 9

didn't work properly anymore anyway
This commit is contained in:
ac-stef
2015-05-27 15:47:04 +02:00
parent 53f169274a
commit 010a7579be
3 changed files with 4 additions and 17 deletions
+1 -1
View File
@@ -85,7 +85,7 @@ mapstats *loadmapstats(const char *filename, bool getlayout)
lilswap(&s.hdr.version, 4);
s.hdr.headersize = fixmapheadersize(s.hdr.version, s.hdr.headersize);
int restofhead = min(s.hdr.headersize, sizeof_header) - sizeof_baseheader;
if(s.hdr.version > MAXMAPVERSION || s.hdr.numents > MAXENTITIES ||
if(s.hdr.version > MAPVERSION || s.hdr.numents > MAXENTITIES ||
f->read(&s.hdr.waterlevel, restofhead) != restofhead ||
!f->seek(clamp(s.hdr.headersize - sizeof_header, 0, MAXHEADEREXTRA), SEEK_CUR)) { delete f; return NULL; }
if(s.hdr.version>=4)
+1 -2
View File
@@ -42,8 +42,7 @@ enum // stuff encoded in sqr.tag
enum { MHF_AUTOMAPCONFIG = 1<<0 };
#define MAXMAPVERSION 10 // defines the highest readable format
#define MAPVERSION 9 // default map format version to be written (bump if map format changes, see worldio.cpp)
#define MAPVERSION 10 // default map format version to be written (bump if map format changes, see worldio.cpp)
struct header // map file format header
{
+2 -14
View File
@@ -552,8 +552,6 @@ void save_world(char *mname, bool skipoptimise, bool addcomfort)
ucharbuf hx = packheaderextras(addcomfort ? 0 : (1 << HX_EDITUNDO)); // if addcomfort -> add undos/redos
int writeextra = 0;
if(hx.maxlen) tmp.headersize += writeextra = clamp(hx.maxlen, 0, MAXHEADEREXTRA);
if(writeextra || skipoptimise || true) tmp.version = 10; // use format 10, if required
bool oldentityformat = tmp.version < 10;
tmp.maprevision += advancemaprevision;
DEBUG("version " << tmp.version << " headersize " << tmp.headersize << " entities " << tmp.numents << " factor " << tmp.sfactor << " revision " << tmp.maprevision);
lilswap(&tmp.version, 4); // version, headersize, sfactor, numents
@@ -569,19 +567,9 @@ void save_world(char *mname, bool skipoptimise, bool addcomfort)
{
if(!ne--) break;
persistent_entity tmp = ents[i];
if(oldentityformat && tmp.type < MAXENTTYPES)
{
tmp.attr1 = tmp.attr1 / entscale[tmp.type][0];
tmp.attr2 = tmp.attr2 / entscale[tmp.type][1];
tmp.attr3 = tmp.attr3 / entscale[tmp.type][2];
tmp.attr4 = tmp.attr4 / entscale[tmp.type][3];
tmp.attr5 = tmp.attr5 / entscale[tmp.type][4];
tmp.attr6 = tmp.attr6 / entscale[tmp.type][5];
tmp.attr7 = tmp.attr7 / entscale[tmp.type][6];
}
lilswap((short *)&tmp, 4);
lilswap(&tmp.attr5, 1);
f->write(&tmp, oldentityformat ? 12 : sizeof(persistent_entity));
f->write(&tmp, sizeof(persistent_entity));
}
}
@@ -663,7 +651,7 @@ bool load_world(char *mname) // still supports all map formats that have
if(f->read(&tmp, sizeof_baseheader) != sizeof_baseheader ||
(strncmp(tmp.head, "CUBE", 4)!=0 && strncmp(tmp.head, "ACMP",4)!=0)) { conoutf("\f3while reading map: header malformatted (1)"); delete f; return false; }
lilswap(&tmp.version, 4); // version, headersize, sfactor, numents
if(tmp.version > MAXMAPVERSION) { conoutf("\f3this map requires a newer version of AssaultCube"); delete f; return false; }
if(tmp.version > MAPVERSION) { conoutf("\f3this map requires a newer version of AssaultCube"); delete f; return false; }
if(tmp.sfactor<SMALLEST_FACTOR || tmp.sfactor>LARGEST_FACTOR || tmp.numents > MAXENTITIES) { conoutf("\f3illegal map size"); delete f; return false; }
tmp.headersize = fixmapheadersize(tmp.version, tmp.headersize);
int restofhead = min(tmp.headersize, sizeof_header) - sizeof_baseheader;