summaryrefslogtreecommitdiff
path: root/src/engine/renderparticles.cpp
diff options
context:
space:
mode:
authorxolatile2025-08-05 15:27:57 +0200
committerxolatile2025-08-05 15:27:57 +0200
commit9234eeb1d2954a3dae6c84ffa8ed8643953272c5 (patch)
treef2253bac389d743ba8582139901c782f7afde4cc /src/engine/renderparticles.cpp
parenta2a16b85572b1d28b0cd4901ea7348750732a740 (diff)
downloadxolatile-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.cpp74
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;