From 9234eeb1d2954a3dae6c84ffa8ed8643953272c5 Mon Sep 17 00:00:00 2001 From: xolatile Date: Tue, 5 Aug 2025 15:27:57 +0200 Subject: Experimental MD3 to OBJ to IQM converter and code removal, shit compiles... --- src/engine/octarender.cpp | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) (limited to 'src/engine/octarender.cpp') diff --git a/src/engine/octarender.cpp b/src/engine/octarender.cpp index d577193..9253379 100644 --- a/src/engine/octarender.cpp +++ b/src/engine/octarender.cpp @@ -169,15 +169,15 @@ enum struct sortkey { - ushort tex, lmid, envmap; + ushort tex, lmid; uchar dim, layer, alpha; sortkey() {} - sortkey(ushort tex, ushort lmid, uchar dim, uchar layer = LAYER_TOP, ushort envmap = EMID_NONE, uchar alpha = NO_ALPHA) - : tex(tex), lmid(lmid), envmap(envmap), dim(dim), layer(layer), alpha(alpha) + sortkey(ushort tex, ushort lmid, uchar dim, uchar layer = LAYER_TOP, uchar alpha = NO_ALPHA) + : tex(tex), lmid(lmid), dim(dim), layer(layer), alpha(alpha) {} - bool operator==(const sortkey &o) const { return tex==o.tex && lmid==o.lmid && envmap==o.envmap && dim==o.dim && layer==o.layer && alpha==o.alpha; } + bool operator==(const sortkey &o) const { return tex==o.tex && lmid==o.lmid && dim==o.dim && layer==o.layer && alpha==o.alpha; } }; struct sortval @@ -301,7 +301,7 @@ struct vacollect : verthash t.tris[l][j] = addvert(vtx2); } } - sortval *dst = indices.access(sortkey(k.tex, t.unlit, k.dim, k.layer, k.envmap, k.alpha)); + sortval *dst = indices.access(sortkey(k.tex, t.unlit, k.dim, k.layer, k.alpha)); if(dst) loopl(2) loopvj(t.tris[l]) dst->tris[l].add(t.tris[l][j]); } } @@ -314,7 +314,7 @@ struct vacollect : verthash { if(k.lmid>=LMID_RESERVED && lightmaptexs[k.lmid].unlitx>=0) { - sortkey ukey(k.tex, LMID_AMBIENT, k.dim, k.layer, k.envmap, k.alpha); + sortkey ukey(k.tex, LMID_AMBIENT, k.dim, k.layer, k.alpha); sortval *uval = indices.access(ukey); if(uval && uval->unlit<=0) { @@ -349,8 +349,6 @@ struct vacollect : verthash { if(x.lmid < y.lmid) return true; if(x.lmid > y.lmid) return false; - if(x.envmap < y.envmap) return true; - if(x.envmap > y.envmap) return false; if(x.dim < y.dim) return true; if(x.dim > y.dim) return false; return false; @@ -435,7 +433,6 @@ struct vacollect : verthash e.lmid = t.unlit>0 ? t.unlit : k.lmid; e.dim = k.dim; e.layer = k.layer; - e.envmap = k.envmap; ushort *startbuf = curbuf; loopl(2) { @@ -463,7 +460,6 @@ struct vacollect : verthash Slot &slot = *lookupvslot(k.tex, false).slot; loopvj(slot.sts) va->texmask |= 1<type&SHADER_ENVMAP) va->texmask |= 1<= LMID_RESERVED) lmid = lm ? lm->tex : LMID_AMBIENT; - sortkey key(texture, lmid, !vslot.scroll.iszero() ? dim : 3, layer == LAYER_BLEND ? LAYER_BLEND : LAYER_TOP, envmap, alpha ? (vslot.alphaback ? ALPHA_BACK : (vslot.alphafront ? ALPHA_FRONT : NO_ALPHA)) : NO_ALPHA); + sortkey key(texture, lmid, !vslot.scroll.iszero() ? dim : 3, layer == LAYER_BLEND ? LAYER_BLEND : LAYER_TOP, alpha ? (vslot.alphaback ? ALPHA_BACK : (vslot.alphafront ? ALPHA_FRONT : NO_ALPHA)) : NO_ALPHA); addtris(key, orient, verts, index, numverts, convex, shadowmask, tj); } @@ -954,19 +950,17 @@ void gencubeverts(cube &c, const ivec &co, int size, int csi) VSlot &vslot = lookupvslot(c.texture[i], true), *layer = vslot.layer && !(c.material&MAT_ALPHA) ? &lookupvslot(vslot.layer, true) : NULL; - ushort envmap = vslot.slot->shader->type&SHADER_ENVMAP ? (int) (vslot.slot->texmask&(1<slot->shader->type&SHADER_ENVMAP ? (int) (layer->slot->texmask&(1<= 0 && tjoints[tj].edge < i*(MAXFACEVERTS+1)) tj = tjoints[tj].next; int hastj = tj >= 0 && tjoints[tj].edge < (i+1)*(MAXFACEVERTS+1) ? tj : -1; if(!c.ext) - addcubeverts(vslot, i, size, pos, convex, c.texture[i], LMID_AMBIENT, NULL, numverts, hastj, envmap, 0, (c.material&MAT_ALPHA)!=0); + addcubeverts(vslot, i, size, pos, convex, c.texture[i], LMID_AMBIENT, NULL, numverts, hastj, 0, (c.material&MAT_ALPHA)!=0); else { const surfaceinfo &surf = c.ext->surfaces[i]; if(!surf.numverts || surf.numverts&LAYER_TOP) - addcubeverts(vslot, i, size, pos, convex, c.texture[i], surf.lmid[0], verts, numverts, hastj, envmap, 0, (c.material&MAT_ALPHA)!=0, LAYER_TOP|(surf.numverts&LAYER_BLEND)); + addcubeverts(vslot, i, size, pos, convex, c.texture[i], surf.lmid[0], verts, numverts, hastj, 0, (c.material&MAT_ALPHA)!=0, LAYER_TOP|(surf.numverts&LAYER_BLEND)); if(surf.numverts&LAYER_BOTTOM) - addcubeverts(layer ? *layer : vslot, i, size, pos, convex, vslot.layer, surf.lmid[1], surf.numverts&LAYER_DUP ? verts + numverts : verts, numverts, hastj, envmap2); + addcubeverts(layer ? *layer : vslot, i, size, pos, convex, vslot.layer, surf.lmid[1], surf.numverts&LAYER_DUP ? verts + numverts : verts, numverts, hastj); } } } @@ -1074,7 +1068,7 @@ void updatevabbs(bool force) struct mergedface { uchar orient, lmid, numverts; - ushort mat, tex, envmap; + ushort mat, tex; vertinfo *verts; int tjoints; }; @@ -1100,7 +1094,6 @@ int genmergedfaces(cube &c, const ivec &co, int size, int minlevel = -1) mf.orient = i; mf.mat = c.material; mf.tex = c.texture[i]; - mf.envmap = EMID_NONE; mf.lmid = surf.lmid[0]; mf.numverts = surf.numverts; mf.verts = c.ext->verts() + surf.verts; @@ -1115,15 +1108,11 @@ int genmergedfaces(cube &c, const ivec &co, int size, int minlevel = -1) VSlot &vslot = lookupvslot(mf.tex, true), *layer = vslot.layer && !(c.material&MAT_ALPHA) ? &lookupvslot(vslot.layer, true) : NULL; - if(vslot.slot->shader->type&SHADER_ENVMAP) - mf.envmap = vslot.slot->texmask&(1<slot->shader->type&SHADER_ENVMAP ? (int) (layer->slot->texmask&(1<