From 814eb8da7779e327abe6f4bc13848a5ee426e753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= Date: Thu, 15 May 2025 03:02:00 -0300 Subject: [PATCH] flag only skies as skies --- src/rendering/hwrenderer/doom_levelmesh.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/rendering/hwrenderer/doom_levelmesh.cpp b/src/rendering/hwrenderer/doom_levelmesh.cpp index 4e8787f82..498d49f19 100644 --- a/src/rendering/hwrenderer/doom_levelmesh.cpp +++ b/src/rendering/hwrenderer/doom_levelmesh.cpp @@ -1609,7 +1609,15 @@ void DoomLevelMesh::CreateFlatSurface(HWFlatDispatcher& disp, MeshBuilder& state surf.Texture = flatpart.texture; surf.PipelineID = pipelineID; surf.PortalIndex = sectorPortals[flatpart.ceiling][flatpart.sector->Index()]; - surf.IsSky = (drawType == LevelMeshDrawType::Portal); + if(drawType == LevelMeshDrawType::Portal) + { + auto * port = flatpart.sector->GetPortal(flatpart.ceiling ? sector_t::ceiling : sector_t::floor); + surf.IsSky = port->mType == PORTS_SKYVIEWPOINT; // might not work for all skies, needs more testing, but works for the example map + } + else + { + surf.IsSky = false; + } auto plane = info.ControlSector ? info.ControlSector->GetSecPlane(!flatpart.ceiling) : flatpart.sector->GetSecPlane(flatpart.ceiling); surf.Plane = FVector4((float)plane.Normal().X, (float)plane.Normal().Y, (float)plane.Normal().Z, -(float)plane.D);