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
1 changed files with 13 additions and 13 deletions

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
if ((maplightbottomleft<ztop[0] && maplightbottomright>ztop[1]) ||
(maplightbottomleft > ztop[0] && maplightbottomright < ztop[1]) ||
(maplightbottomleft<zbottom[0] && maplightbottomright>zbottom[1]) ||
(maplightbottomleft > zbottom[0] && maplightbottomright < zbottom[1]))
{ {
// check for an intersection with the upper and lower planes of the wall segment if (gl.glslversion >= 1.3f)
if ((maplightbottomleft<ztop[0] && maplightbottomright>ztop[1]) ||
(maplightbottomleft > ztop[0] && maplightbottomright < ztop[1]) ||
(maplightbottomleft<zbottom[0] && maplightbottomright>zbottom[1]) ||
(maplightbottomleft > zbottom[0] && maplightbottomright < zbottom[1]))
{ {
// 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