mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-21 19:51:27 +00:00
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:
parent
b443d0755e
commit
7ca6e7e5c1
4 changed files with 19 additions and 7 deletions
|
@ -141,6 +141,7 @@ Note: All <bool> fields default to false unless mentioned otherwise.
|
|||
// 13: Portal line.
|
||||
revealed = <bool>; // true = line is initially visible on automap.
|
||||
noskywalls = <bool>; // true = skies are not drawn above or below this line
|
||||
drawfullheight = <bool>; // true = draw the maximum height instead of the minimum height
|
||||
|
||||
health = <int>; // Amount of hitpoints for this line.
|
||||
healthgroup = <int>; // ID of destructible object to synchronize hitpoints (optional, default is 0)
|
||||
|
|
|
@ -1078,6 +1078,10 @@ public:
|
|||
Flag(ld->flags, ML_NOSKYWALLS, key);
|
||||
continue;
|
||||
|
||||
case NAME_DrawFullHeight:
|
||||
Flag(ld->flags, ML_DRAWFULLHEIGHT, key);
|
||||
continue;
|
||||
|
||||
case NAME_MoreIds:
|
||||
// delay parsing of the tag string until parsing of the sector is complete
|
||||
// This ensures that the ID is always the first tag in the list.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -551,6 +551,7 @@ xx(Locknumber)
|
|||
xx(Midtex3dimpassible)
|
||||
xx(Revealed)
|
||||
xx(AutomapStyle)
|
||||
xx(DrawFullHeight)
|
||||
|
||||
xx(Playercross)
|
||||
xx(Playeruse)
|
||||
|
|
Loading…
Reference in a new issue