diff --git a/src/AcDream.Core/Physics/BSPQuery.cs b/src/AcDream.Core/Physics/BSPQuery.cs index cafb0616..54007754 100644 --- a/src/AcDream.Core/Physics/BSPQuery.cs +++ b/src/AcDream.Core/Physics/BSPQuery.cs @@ -1236,20 +1236,9 @@ public static class BSPQuery ResolvedPolygon? polyHit = null; ushort _polyId = 0; // step-down doesn't need the id, but the signature requires it - // TEMP diagnostic (cellar-lip wedge dispatch trace, 2026-06-05): Path 3 - // reached — log the step-down probe inputs + the walkable-finder result so - // we can see whether the cottage floor is tested + accepted. STRIP after fix. - if (PhysicsDiagnostics.ProbeIndoorBspEnabled) - Console.WriteLine(System.FormattableString.Invariant( - $"[step-sphere-down] ENTER cell=0x{path.CheckCellId:X8} stepDownAmt={path.StepDownAmt:F3} walkInterp={path.WalkInterp:F3} move=({movement.X:F3},{movement.Y:F3},{movement.Z:F3}) center=({checkPos.Center.X:F3},{checkPos.Center.Y:F3},{checkPos.Center.Z:F3}) r={checkPos.Radius:F3}")); - FindWalkableInternal(root, resolved, path, validPos, movement, up, ref polyHit, ref _polyId, ref changed); - if (PhysicsDiagnostics.ProbeIndoorBspEnabled) - Console.WriteLine(System.FormattableString.Invariant( - $"[step-sphere-down] RESULT cell=0x{path.CheckCellId:X8} changed={changed} poly={(polyHit is null ? "n/a" : $"0x{polyHit.Id:X4} n=({polyHit.Plane.Normal.X:F3},{polyHit.Plane.Normal.Y:F3},{polyHit.Plane.Normal.Z:F3})")}")); - if (changed && polyHit is not null) { // ACE: path.LocalSpacePos.LocalToGlobalVec(adjusted) * scale @@ -1718,23 +1707,6 @@ public static class BSPQuery returnState: -1); } - // TEMP diagnostic (cellar-lip wedge dispatch trace, 2026-06-05): which of - // the 6 paths does this cell take? The path is flag-driven (BSP-independent), - // so the synthetic-leaf test reproduces it faithfully. Deduce the path from - // the dispatch order so a single line names path + every gating flag. - // Gated on ACDREAM_PROBE_INDOOR_BSP. STRIP once the wedge fix lands. - if (PhysicsDiagnostics.ProbeIndoorBspEnabled) - { - int _p = (path.InsertType == InsertType.Placement || obj.Ethereal) ? 1 - : path.CheckWalkable ? 2 - : path.StepDown ? 3 - : path.Collide ? 4 - : obj.State.HasFlag(ObjectInfoState.Contact) ? 5 - : 6; - Console.WriteLine(System.FormattableString.Invariant( - $"[fc-dispatch] cell=0x{path.CheckCellId:X8} PATH={_p} stepUp={path.StepUp} stepDown={path.StepDown} chkWalk={path.CheckWalkable} insert={path.InsertType} collide={path.Collide} contact={obj.State.HasFlag(ObjectInfoState.Contact)} ethereal={obj.Ethereal} c0=({sphere0.Center.X:F3},{sphere0.Center.Y:F3},{sphere0.Center.Z:F3}) hasS1={sphere1 is not null}")); - } - // Helper: transform a local-space vector to world space. // ACE: path.LocalSpacePos.LocalToGlobalVec(v) Vector3 L2W(Vector3 v) => Vector3.Transform(v, localToWorld); diff --git a/tests/AcDream.Core.Tests/Physics/CellarLipWedgeTests.cs b/tests/AcDream.Core.Tests/Physics/CellarLipWedgeTests.cs index c88c872f..4f837936 100644 --- a/tests/AcDream.Core.Tests/Physics/CellarLipWedgeTests.cs +++ b/tests/AcDream.Core.Tests/Physics/CellarLipWedgeTests.cs @@ -339,47 +339,6 @@ public class CellarLipWedgeTests } } - /// - /// TEMP diagnostic (2026-06-05): trace ONE record by index with full probes, - /// to a per-index %TEMP%/lip-trace-{idx}.log. Used to compare a ramp record - /// (no sliding normal) against a floor record. STRIP after fix. - /// - [Theory] - [InlineData(6)] // STILL 0% post-footCenter-fix: flat floor, sliding normal (0,-1,0) - [InlineData(13)] // STILL 0% post-footCenter-fix: ramp, NO sliding normal, motion -X,+Y - [InlineData(0)] // STILL 0% post-footCenter-fix: ramp, sliding normal (0,-1,0) - [InlineData(21)] // STILL 0% post-footCenter-fix: ramp, NO slide, motion -X,-Y (away?) - public void Diagnostic_TraceRecordByIndex(int idx) - { - var rec = LoadWedgeRecords()[idx]; - var saved = Console.Out; - var sw = new StringWriter(); - PhysicsDiagnostics.ProbeIndoorBspEnabled = true; - PhysicsDiagnostics.ProbeStepWalkEnabled = true; - Environment.SetEnvironmentVariable("ACDREAM_DUMP_STEPUP", "1"); - Console.SetOut(sw); - try - { - var (res, req, adv) = ReplayRecord(rec); - Console.SetOut(saved); - var bb = rec.BodyBefore!; - File.WriteAllText(Path.Combine(Path.GetTempPath(), $"lip-trace-{idx}.log"), - $"record #{idx} cur=({rec.Input.CurrentPos.X:F4},{rec.Input.CurrentPos.Y:F4},{rec.Input.CurrentPos.Z:F4}) " + - $"tgt=({rec.Input.TargetPos.X:F4},{rec.Input.TargetPos.Y:F4},{rec.Input.TargetPos.Z:F4}) " + - $"cp=({bb.ContactPlane.Normal.X:F2},{bb.ContactPlane.Normal.Y:F2},{bb.ContactPlane.Normal.Z:F2}) " + - $"slide=({bb.SlidingNormal.X:F2},{bb.SlidingNormal.Y:F2},{bb.SlidingNormal.Z:F2}) ts=0x{bb.TransientState:X2} " + - $"req={req:F3} adv={adv:F3} res=({res.X:F4},{res.Y:F4},{res.Z:F4})\n\n" + sw.ToString()); - Assert.True(true); - } - finally - { - Console.SetOut(saved); - Environment.SetEnvironmentVariable("ACDREAM_DUMP_STEPUP", null); - PhysicsDiagnostics.ProbeIndoorBspEnabled = false; - PhysicsDiagnostics.ProbeStepWalkEnabled = false; - } - } - /// /// FIX VALIDATION (2026-06-05) — the stale-footCenter fix in /// RunCheckOtherCellsAndAdvance. Retail's check_other_cells