From cf63f2c28e3aba2dec283ed182fe5fa5cddf242c Mon Sep 17 00:00:00 2001 From: Randy Heit Date: Fri, 19 May 2006 06:22:36 +0000 Subject: [PATCH] - 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) --- docs/rh-log.txt | 5 +++++ src/r_segs.cpp | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) 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; }