Spider Mastermind
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > HOM in sky in ZDoom SVN >= r4225 [patch]
 
Author
All times are GMT. The time now is 12:33. Post New Thread    Post A Reply
RjY
anARCHy


Posts: 967
Registered: 05-02


Recently, ZDoom has begun to show large HOM effects in places above sky floors, e.g. outside in E1M1 (shown below, shot taken in r4244)

http://i.imgur.com/PKDaVPh.png

This misbehaviour can be traced to r4225, which made the following change:
code:
r4225 | rheit | 2013-04-23 04:51:51 +0100 (Tue, 23 Apr 2013) | 2 lines - Fixed: r4220 broke 3D floor rendering, because 3D floors have the floor and ceiling orientations reversed compared to normal conventions. Index: src/r_segs.cpp =================================================================== --- src/r_segs.cpp (revision 4224) +++ src/r_segs.cpp (revision 4225) @@ -2242,10 +2242,18 @@ // killough 3/7/98: add deep water check if (frontsector->GetHeightSec() == NULL) { - if (frontsector->floorplane.PointOnSide(viewx, viewy, viewz) <= 0) // above view plane + int planeside; + + planeside = frontsector->floorplane.PointOnSide(viewx, viewy, viewz); + if (frontsector->floorplane.c < 0) // 3D floors have the floor backwards + planeside = -planeside; + if (planeside <= 0) // above view plane markfloor = false; - if (frontsector->ceilingplane.PointOnSide(viewx, viewy, viewz) <= 0 && - frontsector->GetTexture(sector_t::ceiling) != skyflatnum) // below view plane + + planeside = frontsector->ceilingplane.PointOnSide(viewx, viewy, viewz); + if (frontsector->ceilingplane.c > 0) // 3D floors have the ceiling backwards + planeside = -planeside; + if (planeside <= 0) // below view plane markceiling = false; }
in which we see a check for sky ceilings removed in the deleted lines, and not restored in their replacements.

Restoring the check for skyflatnum fixes the bug, for example by the following patch
code:
diff --git a/src/r_segs.cpp b/src/r_segs.cpp index 9d9f197..ce47921 100644 --- a/src/r_segs.cpp +++ b/src/r_segs.cpp @@ -2253,7 +2253,8 @@ void R_NewWall (bool needlights) planeside = frontsector->ceilingplane.PointOnSide(viewx, viewy, viewz); if (frontsector->ceilingplane.c > 0) // 3D floors have the ceiling backwards planeside = -planeside; - if (planeside <= 0) // below view plane + if (planeside <= 0 && // below view plane + frontsector->GetTexture(sector_t::ceiling) != skyflatnum) markceiling = false; }
I don't have an account on zdoom.org, but I believe several of its developers read this forum so I hope the message can be passed along.

Thanks!

Old Post 05-04-13 18:08 #
RjY is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Gez
Why don't I have a custom title by now?!


Posts: 11223
Registered: 07-07


Hey, thanks! :)

Old Post 05-04-13 18:20 #
Gez is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
All times are GMT. The time now is 12:33. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > HOM in sky in ZDoom SVN >= r4225 [patch]

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.