- Added a check against rw_havelow in the "sky hack" part of R_NewWall().

This prevents the front ceiling from being moved up if there has been no
  texture defined to draw on the wall. This makes various parts of The
  Darkest Hour render properly again while still allowing the crosses in
  heroes2.wad and lamasery.wad to render correctly.

SVN r130 (trunk)
This commit is contained in:
Randy Heit 2006-05-19 06:22:36 +00:00
parent 93c5753270
commit cf63f2c28e
2 changed files with 10 additions and 2 deletions

View file

@ -1,4 +1,9 @@
May 18, 2006 May 18, 2006
- Added a check against rw_havelow in the "sky hack" part of R_NewWall().
This prevents the front ceiling from being moved up if there has been no
texture defined to draw on the wall. This makes various parts of The
Darkest Hour render properly again while still allowing the crosses in
heroes2.wad and lamasery.wad to render correctly.
- Added a NULL sector check to P_CheckFakeFloorTrigger() because there was - Added a NULL sector check to P_CheckFakeFloorTrigger() because there was
a crash report indicating that an actor being pushed up by a moving floor a crash report indicating that an actor being pushed up by a moving floor
had a NULL sector. Since this field should be valid for every actor, the had a NULL sector. Since this field should be valid for every actor, the

View file

@ -1247,13 +1247,16 @@ void R_NewWall (bool needlights)
memcpy (&walltop[WallSX1], &wallupper[WallSX1], (WallSX2 - WallSX1)*sizeof(walltop[0])); memcpy (&walltop[WallSX1], &wallupper[WallSX1], (WallSX2 - WallSX1)*sizeof(walltop[0]));
rw_havehigh = false; rw_havehigh = false;
} }
else else if (rw_havelow && frontsector->ceilingplane != backsector->ceilingplane)
{ // back ceiling is above front ceiling { // back ceiling is above front ceiling
// The check for rw_havelow is not Doom-compliant, but it avoids HoM that
// would otherwise occur because there is space made available for this
// wall but nothing to draw for it.
// Recalculate walltop so that the wall is clipped by the back sector's // Recalculate walltop so that the wall is clipped by the back sector's
// ceiling instead of the front sector's ceiling. // ceiling instead of the front sector's ceiling.
WallMost (walltop, backsector->ceilingplane); WallMost (walltop, backsector->ceilingplane);
} }
// Putting sky ceilins on the front and back of a line alters the way unpegged // Putting sky ceilings on the front and back of a line alters the way unpegged
// positioning works. // positioning works.
rw_frontlowertop = backsector->ceilingtexz; rw_frontlowertop = backsector->ceilingtexz;
} }