fix(physics): port retail slope landing stop

This commit is contained in:
Erik 2026-07-31 09:10:53 +02:00
parent 1d8371dbe5
commit 5a0f9868a6
13 changed files with 870 additions and 103 deletions

View file

@ -2,9 +2,10 @@
## Phase
Active phase: **L.2 - Movement & Collision Conformance**.
Active phase: **Campaign P — Physics Retail-Feel Parity** (the L.2/R6
foundation is shipped).
Plan: `docs/plans/2026-04-29-movement-collision-conformance.md`.
Plan: `docs/plans/2026-07-29-physics-parity-campaign.md`.
Roadmap: `docs/plans/2026-04-11-roadmap.md`.
@ -78,3 +79,11 @@ InputDispatcher / PlayerMovementController
re-test the adjusted `CheckPos`), not returned to `ValidateTransition`; the
outer validator treats non-OK as a collision and restores `CurPos`, making
edges feel like hard stops even when the tangent was computed.
- 2026-07-31: Campaign P #269 slope-stop parity. A 2,184-quantum live
capture proved the 5% landing reflect and `calc_friction` were correct,
but `ValidateTransition` restored `LastKnownContactPlane` without retail's
preceding `OBJECTINFO::kill_velocity`. Retail consumes that plane only on
a non-OK recovery and overwrites last-known validity from the final contact
plane. Both rules are now ported; focused/full tests and the user's repeated
slope-jump gate pass. See
`docs/research/2026-07-31-269-slope-stop-capture.md`.