Add handling for drawfullheight flag

Parse drawfullheight flag in UDMF
Draw full height for walls if the linedef has this flag
This commit is contained in:
Kevin Caccamo 2020-01-10 18:08:01 -05:00 committed by Christoph Oelckers
commit 7ca6e7e5c1
4 changed files with 19 additions and 7 deletions

View file

@ -2023,11 +2023,14 @@ void HWWall::Process(HWDrawInfo *di, seg_t *seg, sector_t * frontsector, sector_
float bch1a = bch1, bch2a = bch2;
if (frontsector->GetTexture(sector_t::floor) != skyflatnum || backsector->GetTexture(sector_t::floor) != skyflatnum)
{
// the back sector's floor obstructs part of this wall
if (ffh1 > bch1 && ffh2 > bch2)
// the back sector's floor obstructs part of this wall
if (!seg->linedef->flags & ML_DRAWFULLHEIGHT)
{
bch2a = ffh2;
bch1a = ffh1;
if (ffh1 > bch1 && ffh2 > bch2)
{
bch2a = ffh2;
bch1a = ffh1;
}
}
}
@ -2105,10 +2108,13 @@ void HWWall::Process(HWDrawInfo *di, seg_t *seg, sector_t * frontsector, sector_
/* bottom texture */
// the back sector's ceiling obstructs part of this wall (specially important for sky sectors)
if (fch1 < bfh1 && fch2 < bfh2)
if (!seg->linedef->flags & ML_DRAWFULLHEIGHT)
{
bfh1 = fch1;
bfh2 = fch2;
if (fch1 < bfh1 && fch2 < bfh2)
{
bfh1 = fch1;
bfh2 = fch2;
}
}
if (bfh1 > ffh1 || bfh2 > ffh2)