diff options
| author | xolatile | 2025-08-05 15:27:57 +0200 |
|---|---|---|
| committer | xolatile | 2025-08-05 15:27:57 +0200 |
| commit | 9234eeb1d2954a3dae6c84ffa8ed8643953272c5 (patch) | |
| tree | f2253bac389d743ba8582139901c782f7afde4cc /src/engine/renderparticles.cpp | |
| parent | a2a16b85572b1d28b0cd4901ea7348750732a740 (diff) | |
| download | xolatile-badassbug-9234eeb1d2954a3dae6c84ffa8ed8643953272c5.tar.xz xolatile-badassbug-9234eeb1d2954a3dae6c84ffa8ed8643953272c5.tar.zst | |
Experimental MD3 to OBJ to IQM converter and code removal, shit compiles...
Diffstat (limited to 'src/engine/renderparticles.cpp')
| -rw-r--r-- | src/engine/renderparticles.cpp | 74 |
1 files changed, 3 insertions, 71 deletions
diff --git a/src/engine/renderparticles.cpp b/src/engine/renderparticles.cpp index 5bb709d..392e943 100644 --- a/src/engine/renderparticles.cpp +++ b/src/engine/renderparticles.cpp @@ -168,7 +168,6 @@ struct partrenderer virtual void reset() = 0; virtual void resettracked(physent *owner) { } virtual particle *addpart(const vec &o, const vec &d, int fade, int color, float size, int gravity = 0) = 0; - virtual int adddepthfx(vec &bbmin, vec &bbmax) { return 0; } virtual void update() { } virtual void render() = 0; virtual bool haswork() = 0; @@ -835,7 +834,6 @@ typedef varenderer<PT_PART> quadrenderer; typedef varenderer<PT_TAPE> taperenderer; typedef varenderer<PT_TRAIL> trailrenderer; -#include "depthfx.h" #include "explosion.h" #include "lightning.h" @@ -845,30 +843,6 @@ struct softquadrenderer : quadrenderer : quadrenderer(texname, type|PT_SOFT, collide) { } - - int adddepthfx(vec &bbmin, vec &bbmax) - { - if(!depthfxtex.highprecision() && !depthfxtex.emulatehighprecision()) return 0; - int numsoft = 0; - loopi(numparts) - { - particle &p = parts[i]; - float radius = p.size*SQRT2; - vec o, d; - int blend, ts; - calc(&p, blend, ts, o, d, false); - if((depthfxscissor!=2 || depthfxtex.addscissorbox(p.o, radius))) - { - numsoft++; - loopk(3) - { - bbmin[k] = min(bbmin[k], o[k] - radius); - bbmax[k] = max(bbmax[k], o[k] + radius); - } - } - } - return numsoft; - } }; static partrenderer *parts[] = @@ -899,36 +873,6 @@ static partrenderer *parts[] = &metervs, // meter vs. }; -void finddepthfxranges() -{ - depthfxmin = vec(1e16f, 1e16f, 1e16f); - depthfxmax = vec(0, 0, 0); - numdepthfxranges = fireballs.finddepthfxranges(depthfxowners, depthfxranges, 0, MAXDFXRANGES, depthfxmin, depthfxmax); - numdepthfxranges = bluefireballs.finddepthfxranges(depthfxowners, depthfxranges, numdepthfxranges, MAXDFXRANGES, depthfxmin, depthfxmax); - loopk(3) - { - depthfxmin[k] -= depthfxmargin; - depthfxmax[k] += depthfxmargin; - } - if(depthfxparts) - { - loopi(sizeof(parts)/sizeof(parts[0])) - { - partrenderer *p = parts[i]; - if(p->type&PT_SOFT && p->adddepthfx(depthfxmin, depthfxmax)) - { - if(!numdepthfxranges) - { - numdepthfxranges = 1; - depthfxowners[0] = NULL; - depthfxranges[0] = 0; - } - } - } - } - if(depthfxscissor<2 && numdepthfxranges>0) depthfxtex.addscissorbox(depthfxmin, depthfxmax); -} - VARFP(maxparticles, 10, 4000, 40000, initparticles()); VARFP(fewparticles, 10, 100, 40000, initparticles()); @@ -961,7 +905,6 @@ void renderparticles(bool mainpass) loopi(sizeof(parts)/sizeof(parts[0])) { - if(glaring && !(parts[i]->type&PT_GLARE)) continue; parts[i]->update(); } @@ -969,8 +912,6 @@ void renderparticles(bool mainpass) uint lastflags = PT_LERP|PT_SHADER, flagmask = PT_LERP|PT_MOD|PT_SHADER|PT_NOTEX; - if(binddepthfxtex()) flagmask |= PT_SOFT; - loopi(sizeof(parts)/sizeof(parts[0])) { partrenderer *p = parts[i]; @@ -1002,10 +943,7 @@ void renderparticles(bool mainpass) { if(flags&PT_SOFT) { - if(!depthfxtex.highprecision()) SETSHADER(particlesoft8); - else SETSHADER(particlesoft); - - binddepthfxparams(depthfxpartblend); + SETSHADER(particlesoft); } else if(flags&PT_NOTEX) particlenotextureshader->set(); else particleshader->set(); @@ -1332,14 +1270,8 @@ static void makeparticles(entity &e) if(e.attr3 > 0) color = colorfromattr(e.attr3); else { - int mat = MAT_WATER + clamp(-e.attr3, 0, 3); - const bvec &wfcol = { 0 }; - color = (int(wfcol[0])<<16) | (int(wfcol[1])<<8) | int(wfcol[2]); - if(!color) - { - const bvec &wcol = { 0 }; - color = (int(wcol[0])<<16) | (int(wcol[1])<<8) | int(wcol[2]); - } + int mat = clamp(-e.attr3, 0, 3); + color = 0xff7700; } regularsplash(PART_WATER, color, 150, 4, 200, offsetvec(e.o, e.attr2, rnd(10)), 0.6f, 2); break; |
