feat(R2-Q2): verbatim CMotionTable — the GetObjectSequence dispatcher
CMotionTable (Core/Physics/Motion, 692 lines) wrapping the dat MotionTable, per r2-motiontable-decomp.md + Q0 pins: - GetObjectSequence (0x00522860): entry guards; modifier-class no-op fast path; Branch 1 style-change (exit link + style link + default_style double-hop + re_modify); Branch 2 cycle (UNCONDITIONAL default-style retry per label_522ae6, is_allowed gate, same-substate re-speed fast path = ChangeCycleSpeed + SubtractMotion(old) + CombineMotion(new), clear-modifiers bit0, direct-link vs !SameSign double-hop, A2 signedSpeed, outgoing-modifier re-registration, re_modify, outTicks per A3); Branch 3 action (direct link OR the 4-layer out-and-back with the base cycle re-added at the OLD substate_mod; outTicks WITHOUT ACE's double-count, A4-#1); Branch 4 modifier (PHYSICS-ONLY CombineMotion + AddModifier stop-then-re-add — the AP-73 retirement mechanism). - get_link (A1 pin: either-negative -> swapped keys — the adapter's field-validated port re-homed), is_allowed (Bitfield & 2; A5 CONFIRMED on DatReaderWriter 2.1.7), re_modify (deep-copy snapshot termination bound), StopSequenceMotion, SetDefaultState, DoObjectMotion/StopObjectMotion/StopObjectCompletely (A4-#4 return). - Free functions: AddMotion (UNCONDITIONAL velocity/omega set — the G17 core), CombineMotion/SubtractMotion (physics-only), ChangeCycleSpeed (verbatim incl. the A4-#2 retail gap), SameSign. 44 conformance tests pinning H1/H4/H5/H7/H8/H10-H14 + all Q0 pins, incl. the run-while-turning gated-cycle -> Branch-4 physics-only test (retail's actual turn-blend mechanism) and missing-cycle -> sequence-untouched (retires the HasCycle fallback rationale). Implemented by a dedicated agent against the Q2 spec; diff + key branches reviewed, suite re-verified (3934 green) before commit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
2345da30e9
commit
98f58db913
2 changed files with 1737 additions and 0 deletions
1045
tests/AcDream.Core.Tests/Physics/Motion/CMotionTableTests.cs
Normal file
1045
tests/AcDream.Core.Tests/Physics/Motion/CMotionTableTests.cs
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue