feat(physics): A6.P1 — instrument FindCollisions with [push-back-disp]

Wires LogPushBackDispatch into the modern FindCollisions overload
at the entry block (after path/collisions/obj locals + movement
computed). Legacy overload at line ~1895 delegates to modern, so
single instrumentation site covers all dispatches.

returnState=-1 sentinel marks "entry log" — A6.P2 analysis pairs
each entry with subsequent [push-back] adjust-sphere lines and
the eventual return state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-05-21 18:34:55 +02:00
parent 2d1f27d647
commit 35631d1ec0

View file

@ -1611,6 +1611,23 @@ public static class BSPQuery
var movement = sphere0.Center - localCurrCenter;
// A6.P1: snapshot dispatcher entry for the [push-back-disp] probe.
// Emitted before path selection so the captured state reflects
// the inputs the dispatcher routes on. The returnState=-1 sentinel
// marks "entry log" — A6.P2 analysis pairs entry with the
// subsequent [push-back] adjust-sphere lines and inferred return.
if (PhysicsDiagnostics.ProbePushBackEnabled)
{
PhysicsDiagnostics.LogPushBackDispatch(
sphereCenter: sphere0.Center,
movement: movement,
collide: path.Collide,
insertType: (int)path.InsertType,
objState: unchecked((int)obj.State),
walkInterpEntry: path.WalkInterp,
returnState: -1);
}
// Helper: transform a local-space vector to world space.
// ACE: path.LocalSpacePos.LocalToGlobalVec(v)
Vector3 L2W(Vector3 v) => Vector3.Transform(v, localToWorld);