diff --git a/source/src/worldrender.cpp b/source/src/worldrender.cpp index 156fcb56..6d6bb5a5 100644 --- a/source/src/worldrender.cpp +++ b/source/src/worldrender.cpp @@ -147,6 +147,7 @@ void render_seg_new(float vx, float vy, float vh, int mip, int x, int y, int xs, sqr *u = SWS(s,1,1,mfactor); \ sqr *v = SWS(s,0,1,mfactor); + int rendered = 0; LOOPH // floors { int start = xx; @@ -155,26 +156,41 @@ void render_seg_new(float vx, float vy, float vh, int mip, int x, int y, int xs, render_seg_new(vx, vy, vh, mip-1, start*2, yy*2, xx*2+2, yy*2+2); continue; } - stats[mip]++; + rendered++; LOOPD - if((s->type==SPACE || s->type==CHF) && s->floor<=vh && render_floor) + switch(s->type) { - render_flat(s->ftex, xx<floor, s, t, u, v, false); - if(s->floortype==FHF) - { - render_flatdelta(s->ftex, xx<floor-s->vdelta/4.0ffloor<=vh && render_floor) + { + render_flat(s->ftex, xx<floor, s, t, u, v, false); + if(s->floorftex, xx<floor-s->vdelta/4.0ftype==SPACE || s->type==FHF) && s->ceil>=vh && render_ceil) - render_flat(s->ctex, xx<ceil, s, t, u, v, true); - if(s->type==CHF) //if(s->ceil>=vh) - render_flatdelta(s->ctex, xx<type) + { + case SPACE: + case FHF: + if(s->ceil>=vh && render_ceil) + render_flat(s->ctex, xx<ceil, s, t, u, v, true); + break; + case CHF: + render_flatdelta(s->ctex, xx<