diff --git a/docs/rh-log.txt b/docs/rh-log.txt index a7ccb3c46..076a85ff9 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,9 @@ 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 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 diff --git a/src/r_segs.cpp b/src/r_segs.cpp index c4f3d4ac0..f4e21fbf4 100644 --- a/src/r_segs.cpp +++ b/src/r_segs.cpp @@ -1247,13 +1247,16 @@ void R_NewWall (bool needlights) memcpy (&walltop[WallSX1], &wallupper[WallSX1], (WallSX2 - WallSX1)*sizeof(walltop[0])); rw_havehigh = false; } - else + else if (rw_havelow && frontsector->ceilingplane != backsector->ceilingplane) { // 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 // ceiling instead of the front sector's ceiling. 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. rw_frontlowertop = backsector->ceilingtexz; }