diff --git a/src/AcDream.Core/Physics/PhysicsDiagnostics.cs b/src/AcDream.Core/Physics/PhysicsDiagnostics.cs index 06a3180c..51ee9977 100644 --- a/src/AcDream.Core/Physics/PhysicsDiagnostics.cs +++ b/src/AcDream.Core/Physics/PhysicsDiagnostics.cs @@ -31,6 +31,19 @@ public static class PhysicsDiagnostics public static bool ProbeResolveEnabled { get; set; } = Environment.GetEnvironmentVariable("ACDREAM_PROBE_RESOLVE") == "1"; + /// + /// Retail teleport readiness gate (ยง3.4, 2026-06-21). When true, every transition of + /// the TeleportArrivalReadiness verdict (NotReady โ†’ Ready / Impossible) emits one + /// [arrival-gate] line: the destination cell id, landblock id, verdict, + /// PhysicsEngine.LandblockCount at the moment it flips, and whether the + /// flip was forced (Impossible) or natural (Ready). + /// + /// Initial state from ACDREAM_PROBE_RESOLVE=1 โ€” shares the existing probe + /// flag because this is a readiness-path extension; no new env var needed. + /// + public static bool ProbeArrivalGateEnabled { get; set; } = + Environment.GetEnvironmentVariable("ACDREAM_PROBE_RESOLVE") == "1"; + /// /// When true, every change to PlayerMovementController.CellId /// emits one [cell-transit] line: old โ†’ new cell, current @@ -534,6 +547,7 @@ public static class PhysicsDiagnostics public static void ResetForTest() { ProbeResolveEnabled = false; + ProbeArrivalGateEnabled = false; ProbeCellEnabled = false; ProbeBuildingEnabled = false; ProbeCellSetEnabled = false;