From 6762e292d02e37a69a807e01493d4e14319cca33 Mon Sep 17 00:00:00 2001 From: xolatile Date: Tue, 5 Aug 2025 01:05:35 +0200 Subject: Do not compile, deleting stuff... --- src/engine/worldio.cpp | 349 +++---------------------------------------------- 1 file changed, 19 insertions(+), 330 deletions(-) (limited to 'src/engine/worldio.cpp') diff --git a/src/engine/worldio.cpp b/src/engine/worldio.cpp index 34823fa..61e0e8e 100644 --- a/src/engine/worldio.cpp +++ b/src/engine/worldio.cpp @@ -40,23 +40,6 @@ void getmapfilenames(const char *fname, const char *cname, char *pakname, char * validmapname(mapname, fname, strpbrk(fname, "/\\") ? NULL : "maps/"); } -static void fixent(entity &e, int version) -{ - if(version <= 10 && e.type >= 7) e.type++; - if(version <= 12 && e.type >= 8) e.type++; - if(version <= 14 && e.type >= ET_MAPMODEL && e.type <= 16) - { - if(e.type == 16) e.type = ET_MAPMODEL; - else e.type++; - } - if(version <= 20 && e.type >= ET_ENVMAP) e.type++; - if(version <= 21 && e.type >= ET_PARTICLES) e.type++; - if(version <= 22 && e.type >= ET_SOUND) e.type++; - if(version <= 23 && e.type >= ET_SPOTLIGHT) e.type++; - if(version <= 30 && (e.type == ET_MAPMODEL || e.type == ET_PLAYERSTART)) e.attr1 = (int(e.attr1)+180)%360; - if(version <= 31 && e.type == ET_MAPMODEL) { int yaw = (int(e.attr1)%360 + 360)%360 + 7; e.attr1 = yaw - yaw%15; } -} - bool loadents(const char *fname, vector &ents, uint *crc) { string pakname, mapname, mcfgname, ogzname; @@ -71,30 +54,12 @@ bool loadents(const char *fname, vector &ents, uint *crc) if(memcmp(hdr.magic, "OCTA", 4) || hdr.worldsize <= 0|| hdr.numents < 0) { conoutf(CON_ERROR, "map %s has malformatted header", ogzname); delete f; return false; } if(hdr.version>MAPVERSION) { conoutf(CON_ERROR, "map %s requires a newer version of Cube 2: Sauerbraten", ogzname); delete f; return false; } compatheader chdr; - if(hdr.version <= 28) - { - if(f->read(&chdr.lightprecision, sizeof(chdr) - 7*sizeof(int)) != sizeof(chdr) - 7*sizeof(int)) { conoutf(CON_ERROR, "map %s has malformatted header", ogzname); delete f; return false; } - } - else - { - int extra = 0; - if(hdr.version <= 29) extra++; - if(f->read(&hdr.blendmap, sizeof(hdr) - (7+extra)*sizeof(int)) != sizeof(hdr) - (7+extra)*sizeof(int)) { conoutf(CON_ERROR, "map %s has malformatted header", ogzname); delete f; return false; } + if(f->read(&hdr.blendmap, sizeof(hdr) - 7*sizeof(int)) != sizeof(hdr) - 7*sizeof(int)) { + conoutf(CON_ERROR, "map %s has malformatted header", ogzname); delete f; return false; } - if(hdr.version <= 28) - { - lilswap(&chdr.lightprecision, 3); - hdr.blendmap = chdr.blendmap; - hdr.numvars = 0; - hdr.numvslots = 0; - } - else - { - lilswap(&hdr.blendmap, 2); - if(hdr.version <= 29) hdr.numvslots = 0; - else lilswap(&hdr.numvslots, 1); - } + lilswap(&hdr.blendmap, 2); + lilswap(&hdr.numvslots, 1); loopi(hdr.numvars) { @@ -112,7 +77,6 @@ bool loadents(const char *fname, vector &ents, uint *crc) copystring(gametype, "fps"); bool samegame = true; int eif = 0; - if(hdr.version>=16) { int len = f->getchar(); f->read(gametype, len+1); @@ -122,22 +86,14 @@ bool loadents(const char *fname, vector &ents, uint *crc) samegame = false; conoutf(CON_WARN, "WARNING: loading map from %s game, ignoring entities except for lights/mapmodels", gametype); } - if(hdr.version>=16) { eif = f->getlil(); int extrasize = f->getlil(); f->seek(extrasize, SEEK_CUR); } - if(hdr.version<14) - { - f->seek(256, SEEK_CUR); - } - else - { - ushort nummru = f->getlil(); - f->seek(nummru*sizeof(ushort), SEEK_CUR); - } + ushort nummru = f->getlil(); + f->seek(nummru*sizeof(ushort), SEEK_CUR); loopi(min(hdr.numents, MAXENTS)) { @@ -145,13 +101,8 @@ bool loadents(const char *fname, vector &ents, uint *crc) f->read(&e, sizeof(entity)); lilswap(&e.o.x, 3); lilswap(&e.attr1, 5); - fixent(e, hdr.version); if(eif > 0) f->seek(eif, SEEK_CUR); - if(samegame) - { - entities::readent(e, NULL, hdr.version); - } - else if(e.type>=ET_GAMESPECIFIC || hdr.version<=14) + if(e.type>=ET_GAMESPECIFIC) { ents.pop(); continue; @@ -393,111 +344,6 @@ struct mergecompat cube *loadchildren(stream *f, const ivec &co, int size, bool &failed); -void convertoldsurfaces(cube &c, const ivec &co, int size, surfacecompat *srcsurfs, int hassurfs, normalscompat *normals, int hasnorms, mergecompat *merges, int hasmerges) -{ - surfaceinfo dstsurfs[6]; - vertinfo verts[6*2*MAXFACEVERTS]; - int totalverts = 0, numsurfs = 6; - memset(dstsurfs, 0, sizeof(dstsurfs)); - loopi(6) if((hassurfs|hasnorms|hasmerges)&(1<layer&2) - { - blend = &srcsurfs[numsurfs++]; - dst.lmid[0] = src->lmid; - dst.lmid[1] = blend->lmid; - dst.numverts |= LAYER_BLEND; - if(blend->lmid >= LMID_RESERVED && (src->x != blend->x || src->y != blend->y || src->w != blend->w || src->h != blend->h || memcmp(src->texcoords, blend->texcoords, sizeof(src->texcoords)))) - dst.numverts |= LAYER_DUP; - } - else if(src->layer == 1) { dst.lmid[1] = src->lmid; dst.numverts |= LAYER_BOTTOM; } - else { dst.lmid[0] = src->lmid; dst.numverts |= LAYER_TOP; } - } - else dst.numverts |= LAYER_TOP; - bool uselms = hassurfs&(1<= LMID_RESERVED || dst.lmid[1] >= LMID_RESERVED || dst.numverts&~LAYER_TOP), - usemerges = hasmerges&(1< 0 && (pos[k] == pos[0] || pos[k] == pos[k-1])) continue; - vertinfo &dv = curverts[numverts++]; - dv.setxyz(pos[k]); - if(uselms) - { - float u = src->x + (src->texcoords[k*2] / 255.0f) * (src->w - 1), - v = src->y + (src->texcoords[k*2+1] / 255.0f) * (src->h - 1); - dv.u = ushort(floor(clamp((u) * float(USHRT_MAX+1)/LM_PACKW + 0.5f, 0.0f, float(USHRT_MAX)))); - dv.v = ushort(floor(clamp((v) * float(USHRT_MAX+1)/LM_PACKH + 0.5f, 0.0f, float(USHRT_MAX)))); - } - else dv.u = dv.v = 0; - dv.norm = usenorms && normals[i].normals[k] != bvec(128, 128, 128) ? encodenormal(normals[i].normals[k].tonormal().normalize()) : 0; - } - dst.verts = totalverts; - dst.numverts |= numverts; - totalverts += numverts; - if(dst.numverts&LAYER_DUP) loopk(4) - { - if(k > 0 && (pos[k] == pos[0] || pos[k] == pos[k-1])) continue; - vertinfo &bv = verts[totalverts++]; - bv.setxyz(pos[k]); - bv.u = ushort(floor(clamp((blend->x + (blend->texcoords[k*2] / 255.0f) * (blend->w - 1)) * float(USHRT_MAX+1)/LM_PACKW, 0.0f, float(USHRT_MAX)))); - bv.v = ushort(floor(clamp((blend->y + (blend->texcoords[k*2+1] / 255.0f) * (blend->h - 1)) * float(USHRT_MAX+1)/LM_PACKH, 0.0f, float(USHRT_MAX)))); - bv.norm = usenorms && normals[i].normals[k] != bvec(128, 128, 128) ? encodenormal(normals[i].normals[k].tonormal().normalize()) : 0; - } - } - } - setsurfaces(c, dstsurfs, verts, totalverts); -} - -static inline int convertoldmaterial(int mat) -{ - return ((mat&7)<>3)&3)<>5)&7)<getchar() : f->getlil(); - if(mapversion < 7) f->seek(3, SEEK_CUR); - else if(mapversion <= 31) - { - uchar mask = f->getchar(); - if(mask & 0x80) - { - int mat = f->getchar(); - if(mapversion < 27) - { - static const ushort matconv[] = { MAT_AIR, MAT_WATER, MAT_CLIP, MAT_GLASS|MAT_CLIP, MAT_NOCLIP, MAT_LAVA|MAT_DEATH, MAT_GAMECLIP, MAT_DEATH }; - c.material = size_t(mat) < sizeof(matconv)/sizeof(matconv[0]) ? (int) matconv[mat] : (int) MAT_AIR; - } - else c.material = convertoldmaterial(mat); - } - surfacecompat surfaces[12]; - normalscompat normals[6]; - mergecompat merges[6]; - int hassurfs = 0, hasnorms = 0, hasmerges = 0; - if(mask & 0x3F) - { - int numsurfs = 6; - loopi(numsurfs) - { - if(i >= 6 || mask & (1 << i)) - { - f->read(&surfaces[i], sizeof(surfacecompat)); - lilswap(&surfaces[i].x, 2); - if(mapversion < 10) ++surfaces[i].lmid; - if(mapversion < 18) - { - if(surfaces[i].lmid >= LMID_AMBIENT1) ++surfaces[i].lmid; - if(surfaces[i].lmid >= LMID_BRIGHT1) ++surfaces[i].lmid; - } - if(mapversion < 19) - { - if(surfaces[i].lmid >= LMID_DARK) surfaces[i].lmid += 2; - } - if(i < 6) - { - if(mask & 0x40) { hasnorms |= 1<read(&normals[i], sizeof(normalscompat)); } - if(surfaces[i].layer != 0 || surfaces[i].lmid != LMID_AMBIENT) - hassurfs |= 1<>4) | ((hassurfs&0x03)<<4); - } - } - if(mapversion >= 20) - { - if(octsav&0x80) - { - int merged = f->getchar(); - c.merged = merged&0x3F; - if(merged&0x80) - { - int mask = f->getchar(); - if(mask) - { - hasmerges = mask&0x3F; - loopi(6) if(mask&(1<read(m, sizeof(mergecompat)); - lilswap(&m->u1, 4); - if(mapversion <= 25) - { - int uorigin = m->u1 & 0xE000, vorigin = m->v1 & 0xE000; - m->u1 = (m->u1 - uorigin) << 2; - m->u2 = (m->u2 - uorigin) << 2; - m->v1 = (m->v1 - vorigin) << 2; - m->v2 = (m->v2 - vorigin) << 2; - } - } - } - } - } - } - if(hassurfs || hasnorms || hasmerges) - convertoldsurfaces(c, co, size, surfaces, hassurfs, normals, hasnorms, merges, hasmerges); - } - else + { - if(octsav&0x40) - { - if(mapversion <= 32) - { - int mat = f->getchar(); - c.material = convertoldmaterial(mat); - } - else c.material = f->getlil(); - } + if(octsav&0x40) c.material = f->getlil(); if(octsav&0x80) c.merged = f->getchar(); if(octsav&0x20) { @@ -952,7 +697,6 @@ bool save_world(const char *mname, bool nolms) lilswap(&tmp.o.x, 3); lilswap(&tmp.attr1, 5); f->write(&tmp, sizeof(entity)); - entities::writeent(*ents[i], ebuf); if(entities::extraentinfosize()) f->write(ebuf, entities::extraentinfosize()); } } @@ -1003,15 +747,8 @@ bool load_world(const char *mname, const char *cname) // still supports all map if(memcmp(hdr.magic, "OCTA", 4) || hdr.worldsize <= 0|| hdr.numents < 0) { conoutf(CON_ERROR, "map %s has malformatted header", ogzname); delete f; return false; } if(hdr.version>MAPVERSION) { conoutf(CON_ERROR, "map %s requires a newer version of Cube 2: Sauerbraten", ogzname); delete f; return false; } compatheader chdr; - if(hdr.version <= 28) - { - if(f->read(&chdr.lightprecision, sizeof(chdr) - 7*sizeof(int)) != sizeof(chdr) - 7*sizeof(int)) { conoutf(CON_ERROR, "map %s has malformatted header", ogzname); delete f; return false; } - } - else - { - int extra = 0; - if(hdr.version <= 29) extra++; - if(f->read(&hdr.blendmap, sizeof(hdr) - (7+extra)*sizeof(int)) != sizeof(hdr) - (7+extra)*sizeof(int)) { conoutf(CON_ERROR, "map %s has malformatted header", ogzname); delete f; return false; } + if(f->read(&hdr.blendmap, sizeof(hdr) - 7*sizeof(int)) != sizeof(hdr) - 7*sizeof(int)) { + conoutf(CON_ERROR, "map %s has malformatted header", ogzname); delete f; return false; } resetmap(); @@ -1023,36 +760,8 @@ bool load_world(const char *mname, const char *cname) // still supports all map setvar("mapversion", hdr.version, true, false); - if(hdr.version <= 28) - { - lilswap(&chdr.lightprecision, 3); - if(chdr.lightprecision) setvar("lightprecision", chdr.lightprecision); - if(chdr.lighterror) setvar("lighterror", chdr.lighterror); - if(chdr.bumperror) setvar("bumperror", chdr.bumperror); - setvar("lightlod", chdr.lightlod); - if(chdr.ambient) setvar("ambient", chdr.ambient); - setvar("skylight", (int(chdr.skylight[0])<<16) | (int(chdr.skylight[1])<<8) | int(chdr.skylight[2])); - setvar("watercolour", (int(chdr.watercolour[0])<<16) | (int(chdr.watercolour[1])<<8) | int(chdr.watercolour[2]), true); - setvar("waterfallcolour", (int(chdr.waterfallcolour[0])<<16) | (int(chdr.waterfallcolour[1])<<8) | int(chdr.waterfallcolour[2])); - setvar("lavacolour", (int(chdr.lavacolour[0])<<16) | (int(chdr.lavacolour[1])<<8) | int(chdr.lavacolour[2])); - setvar("fullbright", 0, true); - if(chdr.lerpsubdivsize || chdr.lerpangle) setvar("lerpangle", chdr.lerpangle); - if(chdr.lerpsubdivsize) - { - setvar("lerpsubdiv", chdr.lerpsubdiv); - setvar("lerpsubdivsize", chdr.lerpsubdivsize); - } - setsvar("maptitle", chdr.maptitle); - hdr.blendmap = chdr.blendmap; - hdr.numvars = 0; - hdr.numvslots = 0; - } - else - { - lilswap(&hdr.blendmap, 2); - if(hdr.version <= 29) hdr.numvslots = 0; - else lilswap(&hdr.numvslots, 1); - } + lilswap(&hdr.blendmap, 2); + lilswap(&hdr.numvslots, 1); renderprogress(0, "clearing world..."); @@ -1108,7 +817,6 @@ bool load_world(const char *mname, const char *cname) // still supports all map copystring(gametype, "fps"); bool samegame = true; int eif = 0; - if(hdr.version>=16) { int len = f->getchar(); f->read(gametype, len+1); @@ -1118,7 +826,6 @@ bool load_world(const char *mname, const char *cname) // still supports all map samegame = false; conoutf(CON_WARN, "WARNING: loading map from %s game, ignoring entities except for lights/mapmodels", gametype); } - if(hdr.version>=16) { eif = f->getlil(); int extrasize = f->getlil(); @@ -1128,17 +835,8 @@ bool load_world(const char *mname, const char *cname) // still supports all map } texmru.shrink(0); - if(hdr.version<14) - { - uchar oldtl[256]; - f->read(oldtl, sizeof(oldtl)); - loopi(256) texmru.add(oldtl[i]); - } - else - { - ushort nummru = f->getlil(); - loopi(nummru) texmru.add(f->getlil()); - } + ushort nummru = f->getlil(); + loopi(nummru) texmru.add(f->getlil()); renderprogress(0, "loading entities..."); @@ -1152,16 +850,14 @@ bool load_world(const char *mname, const char *cname) // still supports all map f->read(&e, sizeof(entity)); lilswap(&e.o.x, 3); lilswap(&e.attr1, 5); - fixent(e, hdr.version); if(samegame) { if(einfosize > 0) f->read(ebuf, einfosize); - entities::readent(e, ebuf, mapversion); } else { if(eif > 0) f->seek(eif, SEEK_CUR); - if(e.type>=ET_GAMESPECIFIC || hdr.version<=14) + if(e.type>=ET_GAMESPECIFIC) { entities::deleteentity(ents.pop()); continue; @@ -1174,12 +870,6 @@ bool load_world(const char *mname, const char *cname) // still supports all map conoutf(CON_WARN, "warning: ent outside of world: enttype[%s] index %d (%f, %f, %f)", entities::entname(e.type), i, e.o.x, e.o.y, e.o.z); } } - if(hdr.version <= 14 && e.type == ET_MAPMODEL) - { - e.o.z += e.attr3; - if(e.attr4) conoutf(CON_WARN, "warning: mapmodel ent (index %d) uses texture slot %d", i, e.attr4); - e.attr3 = e.attr4 = 0; - } } if(ebuf) delete[] ebuf; @@ -1202,15 +892,14 @@ bool load_world(const char *mname, const char *cname) // still supports all map if(!failed) { - if(hdr.version >= 7) loopi(hdr.lightmaps) + loopi(hdr.lightmaps) { renderprogress(i/(float)hdr.lightmaps, "loading lightmaps..."); LightMap &lm = lightmaps.add(); - if(hdr.version >= 17) { int type = f->getchar(); lm.type = type&0x7F; - if(hdr.version >= 20 && type&0x80) + if(type&0x80) { lm.unlitx = f->getlil(); lm.unlity = f->getlil(); @@ -1222,7 +911,7 @@ bool load_world(const char *mname, const char *cname) // still supports all map lm.finalize(); } - if(hdr.version >= 28 && hdr.blendmap) loadblendmap(f, hdr.blendmap); + if(hdr.blendmap) loadblendmap(f, hdr.blendmap); } mapcrc = f->getcrc(); -- cgit v1.2.3