fix(render): draw look-in dynamics only at retail walk turns

This commit is contained in:
Erik 2026-08-31 03:22:01 +02:00
parent 572de1ec30
commit 966836895f
5 changed files with 84 additions and 37 deletions

View file

@ -193,10 +193,14 @@ public sealed class RenderScenePViewFrameProductTests
0x0100_0000_0000_0022,
RenderProjectionClass.LiveDynamicRoot,
parentCell: lookInCell);
RenderProjectionRecord outdoorDynamic = Record(
0x0100_0000_0000_0023,
RenderProjectionClass.LiveDynamicRoot);
scene.Apply(
[
RenderProjectionDelta.Register(Generation, 1, rootDynamic),
RenderProjectionDelta.Register(Generation, 2, lookInDynamic),
RenderProjectionDelta.Register(Generation, 3, outdoorDynamic),
]);
PortalVisibilityFrame portal = Portal(Cell);
@ -235,6 +239,18 @@ public sealed class RenderScenePViewFrameProductTests
.ToArray()
.Select(static record => record.Id));
RenderFrameCandidateRange outside = Assert.Single(
frame.RouteRanges.ToArray(),
range => range.Route
== RenderFrameCandidateRoute.LandscapeOutsideDynamic);
RenderProjectionId[] outsideIds = frame.RouteCandidates
.Slice(outside.Offset, outside.Count)
.ToArray()
.Select(static record => record.Id)
.ToArray();
Assert.Contains(outdoorDynamic.Id, outsideIds);
Assert.DoesNotContain(lookInDynamic.Id, outsideIds);
RenderFrameCandidateRange dynamicLast = Assert.Single(
frame.RouteRanges.ToArray(),
range => range.Route == RenderFrameCandidateRoute.DynamicLast);