From b89f0044e325e2ada5f63c782512e9aab0ad88f4 Mon Sep 17 00:00:00 2001 From: Erik Date: Thu, 14 May 2026 07:05:05 +0200 Subject: [PATCH] feat(B.4c): [door-cycle] diagnostic in OnLiveMotionUpdated Logs one line per UpdateMotion arriving for an entity named "Door" when ACDREAM_PROBE_BUILDING=1. Greppable trail for the B.4c visual test: confirms the dispatcher hit the sequencer for door open / close. Durable subsystem-named tag per the Opus reviewer's B.4b feedback ([B.4c] would rot after phase archival; [door-cycle] survives). Co-Authored-By: Claude Opus 4.7 (1M context) --- src/AcDream.App/Rendering/GameWindow.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/AcDream.App/Rendering/GameWindow.cs b/src/AcDream.App/Rendering/GameWindow.cs index 2b673bc..28de8fd 100644 --- a/src/AcDream.App/Rendering/GameWindow.cs +++ b/src/AcDream.App/Rendering/GameWindow.cs @@ -3149,6 +3149,15 @@ public sealed class GameWindow : IDisposable $"| seq now style=0x{seqStyle:X8} motion=0x{seqMotion:X8}"); } + // Phase B.4c — durable per-Door UM dispatch trail for visual-test grep. + if (AcDream.Core.Physics.PhysicsDiagnostics.ProbeBuildingEnabled + && _liveEntityInfoByGuid.TryGetValue(update.Guid, out var doorInfo) + && doorInfo.Name == "Door") + { + Console.WriteLine(System.FormattableString.Invariant( + $"[door-cycle] guid=0x{update.Guid:X8} stance=0x{update.MotionState.Stance:X4} cmd=0x{(update.MotionState.ForwardCommand ?? 0u):X4}")); + } + // Wire server-echoed RunRate first — used for the player's own // locomotion tuning regardless of whether a cycle resolves. if (_playerController is not null