acdream/src/AcDream.Core/Physics
Erik df7b096d6f feat(R3-W5): DoMotion family verbatim + the ONE DoInterpretedMotion + per-op zero-tick flush (closes J3, J4, J9, J14)
The two parallel DoInterpretedMotion implementations MERGE into one
verbatim pair (0x00528360/@305639): contact gate, StandingLongJump
state-only branch, Dead → RemoveLinkAnimations, the jump_error_code
double-check WITH the DisableJumpDuringLink 0x20000 leg (W2's TODO(W5)
resolved — MovementParameters now flows), ModifyInterpretedState
gating, CurCell-null tail, AddToQueue with the real ContextId;
StopInterpretedMotion's post-stop Ready node + raw-mirror RemoveMotion.
Legacy overloads + ApplyMotionToInterpretedState DELETED. The funnel's
public surface unchanged (183-case suite compiles + passes as-is).

DoMotion 0x00528d20 verbatim: cancel_moveto interrupt; SetHoldKey(key,
cancelMoveToBit) BEFORE adjust_motion; params re-default for the
interpreted call; combat-stance gates on the ORIGINAL id (Crouch/Sit/
Sleep → 0x3f/0x40/0x41; & 0x2000000 → 0x42 outside NonCombat); action
depth cap ≥6 → 0x45; raw mirror ORIGINAL id. StopMotion 0x00528530
mirror shape. StopCompletely 0x00527e40 with the A9 snapshot quirk
(motion_allows_jump on the OLD forward command, stashed in the queued
node) + the J9 fix (sidestep/turn SPEEDS untouched — the 1.0 resets
were a divergence). PerformMovement flushes zero-tick completions after
every dispatched op via the new CheckForCompletedMotions seam
(0x0050fe30) — bound App-side per entity (remotes via
EnsureRemoteMotionBindings, player at the sequencer bind site).

PORT DISCOVERY (not in the W0 pins): retail's DoInterpretedMotion
RESULT gates both add_to_queue AND the state write — a void sink let
the style dispatch's apply-only failure clobber ForwardCommand before
the forward axis read it, regressing 74/183 live-trace cases.
IInterpretedMotionSink.ApplyMotion/StopMotion now return bool
(documented on the interface with the raw anchors); one funnel
assertion corrected with raw-line citations (airborne ForwardCommand
ends at Falling under the fully-wired verbatim algorithm).

62 new gate-table tests. Full suite: 3,729 passed.

Implemented by a dedicated agent against the W0-pinned spec; seam
bound + suite independently re-verified by the orchestrator.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:57:33 +02:00
..
Motion feat(R3-W5): DoMotion family verbatim + the ONE DoInterpretedMotion + per-op zero-tick flush (closes J3, J4, J9, J14) 2026-07-03 08:57:33 +02:00
AceModernCommandCatalog.cs feat(L.1b): dual MotionCommand catalog — AceModern runtime + Retail2013 conformance 2026-06-30 22:13:36 +02:00
AnimationCommandRouter.cs fix(anim): Phase L.1b route motion commands 2026-04-28 10:46:22 +02:00
AnimationHookRouter.cs feat(anim): Phase E.1 hook router + GameWindow wiring 2026-04-18 16:30:23 +02:00
AnimationSequencer.cs feat(R3-W4): ground transitions + lifecycle verbatim; K-fix18 DELETED (closes J8, J10, J11-shape, J12, J13, J18, J19) 2026-07-02 23:01:31 +02:00
BSPQuery.cs fix(physics): #137 Task 3 — port obstruction_ethereal verbatim; retire AD-7 shim 2026-06-24 19:20:02 +02:00
BuildingPhysics.cs T6 (BR-7) C3: per-cell shadow architecture - flood registration, building channel, per-cell query; b3ce505 stopgap DELETED (closes #99) 2026-06-11 14:37:50 +02:00
CellArray.cs feat(physics): Stage 1 — CellArray ordered/deduped cell collection (retail CELLARRAY) 2026-06-03 08:54:45 +02:00
CellDump.cs feat(phys): A6.P3 #98 Step 2 — cell-dump probe + roundtrip test 2026-05-23 15:16:56 +02:00
CellSurface.cs fix(phys): #111 - ground the validated claim via PHYSICS walkable polygons, not the CellSurface triangle soup 2026-06-10 14:21:59 +02:00
CellTransit.cs chore: strip world-load deep-dive diagnostic probes 2026-06-23 00:23:15 +02:00
CollisionExemption.cs fix(physics): #137 Task 3 — port obstruction_ethereal verbatim; retire AD-7 shim 2026-06-24 19:20:02 +02:00
CollisionPrimitives.cs feat(physics): Task 2 — true sphere collision primitive (CSphere::intersects_sphere) 2026-06-24 19:08:53 +02:00
EntityCollisionFlags.cs feat(physics): live-entity collision plumbing (Commit A) 2026-04-29 13:12:56 +02:00
GfxObjDump.cs feat(phys): A6.P3 #98 — GfxObj dump infrastructure (ACDREAM_DUMP_GFXOBJS) 2026-05-23 20:24:26 +02:00
IAnimationHookSink.cs feat(anim): Phase E.1 hook router + GameWindow wiring 2026-04-18 16:30:23 +02:00
IMotionCommandCatalog.cs feat(L.1b): dual MotionCommand catalog — AceModern runtime + Retail2013 conformance 2026-06-30 22:13:36 +02:00
InterpolationManager.cs feat(motion): L.3 M1 — fresh InterpolationManager port + retail spec 2026-05-05 14:56:42 +02:00
InterpretedMotionFunnel.cs feat(R3-W5): DoMotion family verbatim + the ONE DoInterpretedMotion + per-op zero-tick flush (closes J3, J4, J9, J14) 2026-07-03 08:57:33 +02:00
LandDefs.cs feat(physics #145): Slice 1 — Position/Frame types + LandDefs.GetBlockOffset (0x0043e630) 2026-06-21 10:30:20 +02:00
MotionCommandResolver.cs feat(L.1b): dual MotionCommand catalog — AceModern runtime + Retail2013 conformance 2026-06-30 22:13:36 +02:00
MotionInterpreter.cs feat(R3-W5): DoMotion family verbatim + the ONE DoInterpretedMotion + per-op zero-tick flush (closes J3, J4, J9, J14) 2026-07-03 08:57:33 +02:00
MotionSequenceGate.cs feat(L.2g-S1): retail movement-event staleness gate (DEV-6) 2026-07-02 15:44:06 +02:00
PhysicsBody.cs feat(R3-W4): ground transitions + lifecycle verbatim; K-fix18 DELETED (closes J8, J10, J11-shape, J12, J13, J18, J19) 2026-07-02 23:01:31 +02:00
PhysicsDataCache.cs fix(physics): D8 — RemoveCellsForLandblock; cell transforms rebase per apply 2026-06-24 19:34:16 +02:00
PhysicsDiagnostics.cs chore: strip world-load deep-dive diagnostic probes 2026-06-23 00:23:15 +02:00
PhysicsEngine.cs fix(physics): D8 — RemoveCellsForLandblock; cell transforms rebase per apply 2026-06-24 19:34:16 +02:00
PhysicsResolveCapture.cs test: fix PhysicsResolveCapture/PhysicsDiagnostics static-leak isolation 2026-06-02 15:20:24 +02:00
PlayerWeenie.cs feat(R3-W3): verbatim jump family — charge gates, jump_is_allowed chain, epsilon fixes; StandingLongJump misattribution retired (closes J5, J6, J7-interp-side, J16-epsilons) 2026-07-02 22:37:07 +02:00
PortalInfo.cs feat(physics): Phase 2 — wire CellBSP + Portals into CellPhysics 2026-05-19 16:52:20 +02:00
PortalPlane.cs fix(core): Phase B.3 — add centroid + radius bounds to PortalPlane crossing test 2026-04-12 19:08:46 +02:00
Position.cs refactor(physics #145): Slice 1 — rename Frame->CellFrame to avoid DatReaderWriter.Types.Frame collision 2026-06-21 10:34:36 +02:00
PositionManager.cs fix(motion): project anim root motion onto terrain plane (slope staircase) 2026-05-05 21:37:42 +02:00
RawMotionState.cs feat(R3-W1): retail state completion — action FIFOs, MovementParameters, MotionNode, WeenieError renumber (closes J2, J16-codes) 2026-07-02 22:12:33 +02:00
RemoteMoveToDriver.cs fix(retail): rotation rate, useability gate, retail toast strings 2026-05-16 12:17:54 +02:00
ResolveResult.cs feat(A): wire SweepEye to the verbatim update_viewer (start-cell + fallbacks) 2026-06-05 11:10:32 +02:00
Retail2013CommandCatalog.cs feat(L.1b): dual MotionCommand catalog — AceModern runtime + Retail2013 conformance 2026-06-30 22:13:36 +02:00
ServerControlledLocomotion.cs fix(anim): Phase L.1c match MoveTo run speed 2026-04-28 20:58:22 +02:00
ShadowObjectRegistry.cs feat(physics): Task 2 — true sphere collision primitive (CSphere::intersects_sphere) 2026-06-24 19:08:53 +02:00
ShadowShape.cs feat(phys): add ShadowShape record (no callers yet) 2026-05-24 15:07:40 +02:00
ShadowShapeBuilder.cs feat(physics): Task 2 — true sphere collision primitive (CSphere::intersects_sphere) 2026-06-24 19:08:53 +02:00
TerrainSurface.cs fix(scenery): #49 9×9 loop, per-spawn building check, triangle slope 2026-05-07 21:15:11 +02:00
TransitionTypes.cs fix(physics): #150 — skip ethereal targets in the step-down pass (open doors fully passable) 2026-06-25 12:20:54 +02:00
WalkMissDiagnostic.cs feat(physics): WalkMissDiagnostic aggregator for ISSUES #83 probe spike 2026-05-20 10:31:39 +02:00