From 093d3e32e61a3da93c8ff2b2dece1a4b458a2fc0 Mon Sep 17 00:00:00 2001 From: "Dileep V. Reddy" Date: Mon, 17 Feb 2025 20:18:33 -0700 Subject: [PATCH] Small correction to OoB viewpoint stacked-sector portal visibility. OoB is not the same as Ortho. --- src/rendering/hwrenderer/scene/hw_sky.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rendering/hwrenderer/scene/hw_sky.cpp b/src/rendering/hwrenderer/scene/hw_sky.cpp index b39df6695..2aef16c8f 100644 --- a/src/rendering/hwrenderer/scene/hw_sky.cpp +++ b/src/rendering/hwrenderer/scene/hw_sky.cpp @@ -157,7 +157,9 @@ void HWWall::SkyPlane(HWWallDispatcher *di, sector_t *sector, int plane, bool al if (di->di && di->di->Viewpoint.IsAllowedOoB()) { secplane_t myplane = plane ? sector->ceilingplane : sector->floorplane; - if (di->di->Viewpoint.ViewVector3D.dot(myplane.Normal()) > 0.0) return; + if (di->di->Viewpoint.IsOrtho() && di->di->Viewpoint.ViewVector3D.dot(myplane.Normal()) > 0.0) return; + else if (plane==1 && di->di->Viewpoint.Pos.Z >= myplane.ZatPoint(di->di->Viewpoint.Pos)) return; + else if (plane==0 && di->di->Viewpoint.Pos.Z <= myplane.ZatPoint(di->di->Viewpoint.Pos)) return; } auto glport = sector->GetPortalGroup(plane); if (glport != NULL)