acdream/tests/AcDream.Core.Tests/Physics/Motion
Erik addc8e97a8 feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core)
The retail server-directed-movement brain (0x00529010-0x0052a987),
Core-only with every App dependency as a ctor/property seam for the
V4/V5 cutovers: node-plan builders for all four movement types
(TurnToObject's desired-heading clobber quirk VERBATIM; TurnToHeading's
immediate BeginNextNode - ACE's one-tick-late gap not copied),
PerformMovement (cancel 0x36 + unstick first), BeginNextNode with the
sticky handoff order (radius/height/tlid read BEFORE CleanUp),
BeginMoveForward (GetCommand walk/run cascade + stored-params
write-back + progress-clock seed), HandleMoveToPosition (chase arrival
dist <= distance_to_object per the adjudicated BN inversion; fail
distance -> 0x3D; progress >= 0.25 units/s over >= 1 s, incremental AND
overall; fail_progress_count write-only - retail has NO give-up
threshold and none was invented), HandleTurnToHeading (20/340 aux
deadband; the Ghidra-confirmed heading_diff mirror), HandleUpdateTarget
0x0052a7d0 (deferred-start: object moves wait for the first Ok
callback; retargets reset the progress clock without requeueing),
UseTime's initialized gate, InitializeLocalVariables per retail (flags
word + context_id zeroed, floats stale, FLT_MAX resets - not ACE's
transpositions).

TDD catch: default(Quaternion) is the ZERO quaternion, not identity -
a fresh manager's heading computations would silently read 90 degrees;
explicit IdentityPosition resets match the decomp's identity-Frame
semantics. Also pinned: retail's explicit double adjust_motion in
_DoMotion/_StopMotion; entry points never drain pending_actions (only
PerformMovement's cancel does) - re-issues must route through
PerformMovement, documented + tested.

101 new conformance tests incl. three end-to-end scripted drives
(chase turn->run->walk-demote->arrive; flee; frozen-heading
TurnToObject through retarget). Full suite: 3,961 passed.

Implemented by a dedicated agent against the V0-pinned spec; scope +
suite independently verified.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 11:43:50 +02:00
..
AnimSequenceNodeTests.cs feat(R1-P0/P1): CSequence research base + verbatim AnimSequenceNode 2026-07-02 19:45:56 +02:00
CMotionTableTests.cs feat(R2-Q2): verbatim CMotionTable — the GetObjectSequence dispatcher 2026-07-02 20:48:26 +02:00
CSequencePhysicsTests.cs feat(R1-P3): verbatim apply_physics + Frame rotate/grotate 2026-07-02 19:53:32 +02:00
CSequenceTests.cs feat(R1-P2): verbatim CSequence container + list surgery 2026-07-02 19:50:19 +02:00
CSequenceUpdateTests.cs feat(R1-P4): verbatim update_internal / update / advance_to_next_animation 2026-07-02 20:05:04 +02:00
InterpretedMotionStateActionFifoTests.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
MotionNodeTests.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
MotionStateTests.cs feat(R2-Q1): verbatim MotionState (gap H2) 2026-07-02 20:31:16 +02:00
MotionTableDispatchSinkTests.cs feat(R2-Q5): RemoteMotionSink DELETED — funnel dispatches straight into PerformMovement; AP-73 retired 2026-07-02 21:55:13 +02:00
MotionTableManagerTests.cs feat(R2-Q3): verbatim MotionTableManager — the pending-animation queue (closes H3, H15-core) 2026-07-02 21:01:50 +02:00
MovementParametersFromWireTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementParametersGetCommandTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementParametersGetDesiredHeadingTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementParametersTests.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
MovementParametersTowardsAndAwayTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementStructWideningTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MovementTypeWideningTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MoveToManagerArrivalAndProgressTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerAuxTurnTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerBeginMoveForwardTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerEndToEndTableDriveTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerHandleUpdateTargetTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerLifecycleTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerNodePlanTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerStickyAndCancelTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerTestHarness.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerTurnToHeadingTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToManagerUseTimeGateTests.cs feat(R4-V2): MoveToManager verbatim - all 33 members + conformance harness (closes M1/M3/M4/M5/M6/M10/M14-core) 2026-07-03 11:43:50 +02:00
MoveToMathCylinderDistanceTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MoveToMathHeadingDiffTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MoveToMathHeadingGreaterTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
MoveToMathPositionHeadingTests.cs feat(R4-V1): command-selection family + state widening (closes M2-mechanics, M11, M12, M15) 2026-07-03 11:13:15 +02:00
RawMotionStateActionFifoTests.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