Fixed splitting of walls in compatibility renderer

Any wall adjacent to 3D floor sector were not rendered at all
This commit is contained in:
alexey.lysiuk 2016-06-05 12:38:23 +03:00
parent 18ebe92cfc
commit 56ce6abbc2

View file

@ -395,25 +395,25 @@ void GLWall::SplitWall(sector_t * frontsector, bool translucent)
continue; continue;
} }
if (gl.glslversion >= 1.3f)
{
// check for an intersection with the upper and lower planes of the wall segment // check for an intersection with the upper and lower planes of the wall segment
if ((maplightbottomleft<ztop[0] && maplightbottomright>ztop[1]) || if ((maplightbottomleft<ztop[0] && maplightbottomright>ztop[1]) ||
(maplightbottomleft > ztop[0] && maplightbottomright < ztop[1]) || (maplightbottomleft > ztop[0] && maplightbottomright < ztop[1]) ||
(maplightbottomleft<zbottom[0] && maplightbottomright>zbottom[1]) || (maplightbottomleft<zbottom[0] && maplightbottomright>zbottom[1]) ||
(maplightbottomleft > zbottom[0] && maplightbottomright < zbottom[1])) (maplightbottomleft > zbottom[0] && maplightbottomright < zbottom[1]))
{
if (gl.glslversion >= 1.3f)
{ {
// Use hardware clipping if this cannot be done cleanly. // Use hardware clipping if this cannot be done cleanly.
this->lightlist = &lightlist; this->lightlist = &lightlist;
PutWall(translucent); PutWall(translucent);
goto out;
}
} }
else else
{ {
// crappy fallback if no clip planes available // crappy fallback if no clip planes available
SplitWallComplex(frontsector, translucent, maplightbottomleft, maplightbottomright); SplitWallComplex(frontsector, translucent, maplightbottomleft, maplightbottomright);
return; }
goto out;
} }
// 3D floor is completely within this light // 3D floor is completely within this light