diff --git a/src/AcDream.Core/Physics/PhysicsDiagnostics.cs b/src/AcDream.Core/Physics/PhysicsDiagnostics.cs index 2cf8224..5942a19 100644 --- a/src/AcDream.Core/Physics/PhysicsDiagnostics.cs +++ b/src/AcDream.Core/Physics/PhysicsDiagnostics.cs @@ -386,6 +386,34 @@ public static class PhysicsDiagnostics walkInterpEntry, returnState)); } + /// + /// A6.P1 emission helper for the CheckOtherCells multi-cell + /// BSP iteration site. One line per off-cell hit: from-cell, to-cell, + /// BSP result (Ok / Adjusted / Slid / Collided), and the iteration + /// outcome. Direct paired comparison to retail's + /// CTransition::check_other_cells loop at decomp line + /// 272717. Augments the existing A4 multi-cell BSP instrumentation + /// with explicit per-iteration outcome telemetry. + /// + /// + /// Caller MUST guard with if (!ProbePushBackEnabled) return; + /// before calling. + /// + /// + public static void LogPushBackCellTransit( + uint primaryCellId, + uint otherCellId, + int bspResult, + bool halted) + { + var ci = System.Globalization.CultureInfo.InvariantCulture; + Console.WriteLine(string.Format(ci, + "[push-back-cell] site=other_cell " + + "primary=0x{0:X8} other=0x{1:X8} " + + "bspResult={2} halted={3}", + primaryCellId, otherCellId, bspResult, halted)); + } + public static void LogCpBoolWrite(string field, bool oldValue, bool newValue) { var caller = GetCpCallerName();