From c46daa31f8e0339aed12736699d0003d27f1fc7e Mon Sep 17 00:00:00 2001 From: xolatile Date: Sun, 20 Jul 2025 12:18:48 +0200 Subject: Most warnings fixed, ignoring one warning for now... --- src/engine/worldio.cpp | 102 ------------------------------------------------- 1 file changed, 102 deletions(-) (limited to 'src/engine/worldio.cpp') diff --git a/src/engine/worldio.cpp b/src/engine/worldio.cpp index 393bfa5..ee936f0 100644 --- a/src/engine/worldio.cpp +++ b/src/engine/worldio.cpp @@ -1282,107 +1282,5 @@ void savemap(char *mname) { save_world(mname); } COMMAND(savemap, "s"); COMMAND(savecurrentmap, ""); -void writeobj(char *name) -{ - defformatstring(fname, "%s.obj", name); - stream *f = openfile(path(fname), "w"); - if(!f) return; - f->printf("# obj file of Cube 2 level\n\n"); - defformatstring(mtlname, "%s.mtl", name); - path(mtlname); - f->printf("mtllib %s\n\n", mtlname); - vector verts; - vector texcoords; - hashtable shareverts(1<<16); - hashtable sharetc(1<<16); - hashtable > mtls(1<<8); - vector usedmtl; - vec bbmin(1e16f, 1e16f, 1e16f), bbmax(-1e16f, -1e16f, -1e16f); - loopv(valist) - { - vtxarray &va = *valist[i]; - ushort *edata = NULL; - vertex *vdata = NULL; - if(!readva(&va, edata, vdata)) continue; - ushort *idx = edata; - loopj(va.texs) - { - elementset &es = va.eslist[j]; - if(usedmtl.find(es.texture) < 0) usedmtl.add(es.texture); - vector &keys = mtls[es.texture]; - loopk(es.length[1]) - { - int n = idx[k] - va.voffset; - const vertex &v = vdata[n]; - const vec &pos = v.pos; - const vec2 &tc = v.tc; - ivec2 &key = keys.add(); - key.x = shareverts.access(pos, verts.length()); - if(key.x == verts.length()) - { - verts.add(pos); - loopl(3) - { - bbmin[l] = min(bbmin[l], pos[l]); - bbmax[l] = max(bbmax[l], pos[l]); - } - } - key.y = sharetc.access(tc, texcoords.length()); - if(key.y == texcoords.length()) texcoords.add(tc); - } - idx += es.length[1]; - } - delete[] edata; - delete[] vdata; - } - - vec center(-(bbmax.x + bbmin.x)/2, -(bbmax.y + bbmin.y)/2, -bbmin.z); - loopv(verts) - { - vec v = verts[i]; - v.add(center); - if(v.y != floor(v.y)) f->printf("v %.3f ", -v.y); else f->printf("v %d ", int(-v.y)); - if(v.z != floor(v.z)) f->printf("%.3f ", v.z); else f->printf("%d ", int(v.z)); - if(v.x != floor(v.x)) f->printf("%.3f\n", v.x); else f->printf("%d\n", int(v.x)); - } - f->printf("\n"); - loopv(texcoords) - { - const vec2 &tc = texcoords[i]; - f->printf("vt %.6f %.6f\n", tc.x, 1-tc.y); - } - f->printf("\n"); - - usedmtl.sort(); - loopv(usedmtl) - { - vector &keys = mtls[usedmtl[i]]; - f->printf("g slot%d\n", usedmtl[i]); - f->printf("usemtl slot%d\n\n", usedmtl[i]); - for(int i = 0; i < keys.length(); i += 3) - { - f->printf("f"); - loopk(3) f->printf(" %d/%d", keys[i+2-k].x+1, keys[i+2-k].y+1); - f->printf("\n"); - } - f->printf("\n"); - } - delete f; - - f = openfile(mtlname, "w"); - if(!f) return; - f->printf("# mtl file of Cube 2 level\n\n"); - loopv(usedmtl) - { - VSlot &vslot = lookupvslot(usedmtl[i], false); - f->printf("newmtl slot%d\n", usedmtl[i]); - f->printf("map_Kd %s\n", vslot.slot->sts.empty() ? notexture->name : path(makerelpath("packages", vslot.slot->sts[0].name))); - f->printf("\n"); - } - delete f; -} - -COMMAND(writeobj, "s"); - #endif -- cgit v1.2.3