From 23e4c46684a3fbbe3dcc1cf7dcc04e0afe48f265 Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Wed, 14 May 2025 13:26:10 +0200 Subject: [PATCH] Restrict light-only changes to only happen in sectors with the SECF_LM_DYNAMIC flag --- src/rendering/hwrenderer/scene/hw_drawinfo.h | 24 +++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/rendering/hwrenderer/scene/hw_drawinfo.h b/src/rendering/hwrenderer/scene/hw_drawinfo.h index 483eeea83..af1caea77 100644 --- a/src/rendering/hwrenderer/scene/hw_drawinfo.h +++ b/src/rendering/hwrenderer/scene/hw_drawinfo.h @@ -252,11 +252,33 @@ public: tile->LastSeen = TileSeenCounter; if (tile->GeometryUpdate) + { VisibleTiles.Geometry.Push(tile); + } else if (tile->NeedsInitialBake) + { VisibleTiles.Background.Push(tile); + } else if (tile->ReceivedNewLight) - VisibleTiles.ReceivedNewLight.Push(tile); + { + // Only update light changes if the mapper requested it + if (tile->Binding.Type == ST_UPPERSIDE || tile->Binding.Type == ST_MIDDLESIDE || tile->Binding.Type == ST_LOWERSIDE) + { + sector_t* sector = Level->sides[tile->Binding.TypeIndex].sector; + if (sector && sector->Flags & SECF_LM_DYNAMIC) + { + VisibleTiles.ReceivedNewLight.Push(tile); + } + } + else if (tile->Binding.Type == ST_CEILING || tile->Binding.Type == ST_FLOOR) + { + sector_t* sector = Level->subsectors[tile->Binding.TypeIndex].sector; + if (sector && sector->Flags & SECF_LM_DYNAMIC) + { + VisibleTiles.ReceivedNewLight.Push(tile); + } + } + } } }