diff --git a/src/r_segs.c b/src/r_segs.c index ca24df586..9b1533daa 100644 --- a/src/r_segs.c +++ b/src/r_segs.c @@ -1903,9 +1903,11 @@ void R_StoreWallRange(INT32 start, INT32 stop) && backsector->ceilingpic == skyflatnum) { #ifdef ESLOPE - worldtopslope = worldhighslope = + worldtopslope = max(worldtopslope, worldhighslope); + worldhighslope = worldtopslope; #endif - worldtop = worldhigh; + worldtop = max(worldtop, worldhigh); + worldhigh = worldtop; } ds_p->sprtopclip = ds_p->sprbottomclip = NULL; @@ -2065,8 +2067,13 @@ void R_StoreWallRange(INT32 start, INT32 stop) markceiling = false; } +#ifdef ESLOPE + if ((worldhigh <= worldbottom && worldhighslope <= worldbottomslope) || + (worldlow >= worldtop && worldlowslope >= worldtopslope)) +#else if (backsector->ceilingheight <= frontsector->floorheight || backsector->floorheight >= frontsector->ceilingheight) +#endif { // closed door markceiling = markfloor = true;