feat(L.2g-S2b): wire remote entities onto the CMotionInterp funnel (DEV-1 integration)
OnLiveMotionUpdated's remote branch (368 lines of bulk-copy + cycle picker + per-axis DoInterpretedMotion + command-list router) collapses to: build InboundInterpretedState from the wire (retail UnPack defaults; MoveTo packets feed the PlanMoveToStart seed as the forward command) -> MotionInterpreter.MoveToInterpretedState(ims, RemoteMotionSink) -> sink.Commit(). RemoteMotionSink (new, App): receives the funnel's gate-passed dispatches in retail order; the axis-priority pick (fwd > side > turn), Run->Walk->Ready missing-cycle fallback, overlay routing, ObservedOmega seeding, and diag lines are MOVED VERBATIM from the pre-S2 block. Register row AP-73 documents the single-cycle composition approximation (retail blends modifiers via re_modify — DEV-9, retires with S3/S6). Retail-verbatim behavior changes: - Absent stance now defaults to NonCombat 0x8000003D (retail UnPack default, S0-trace-verified) instead of keep-current. - Remote command lists flow through the funnel's 15-bit action-stamp gate — retail's actual mechanism for ACE's re-bundled stale entries; the old skip-SubState router workaround is now local-player-only. - Airborne cycle preservation is the funnel's contact_allows_move gate (K-fix17's guard semantics, now from the retail mechanism). - Stops ride the same path: empty UM -> flat copy -> Ready dispatch -> get_state_velocity 0 (DEV-3 core; the 300ms stop-detection fallback stays until S6 verifies NPC unification). Full suite green (3290). Live smoke next. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
7b0cbbda2c
commit
67506ce988
3 changed files with 289 additions and 315 deletions
|
|
@ -99,7 +99,7 @@ accepted-divergence entries (#96, #49, #50).
|
|||
|
||||
---
|
||||
|
||||
## 3. Documented approximation (AP) — 68 rows
|
||||
## 3. Documented approximation (AP) — 69 rows
|
||||
|
||||
| # | Divergence | Where (file:line) | Why it is safe / justified | Risk if assumption breaks | Retail oracle |
|
||||
|---|---|---|---|---|---|
|
||||
|
|
@ -176,6 +176,8 @@ accepted-divergence entries (#96, #49, #50).
|
|||
|
||||
---
|
||||
|
||||
| AP-73 | **Remote motion sink maps retail's substate+modifier animation model onto ONE cycle** — the L.2g S2 funnel dispatches retail-verbatim (style/forward/sidestep/turn per `apply_interpreted_movement` order + action-stamp gate), but `RemoteMotionSink.Commit` resolves the axes into a single `SetCycle` (forward locomotion > sidestep > turn priority + Run→Walk→Ready missing-cycle fallback); retail BLENDS modifiers over the substate cycle via `CMotionTable::re_modify` (DEV-9) | `src/AcDream.App/Rendering/RemoteMotionSink.cs` (`Commit`) | The pick + fallback are the pre-S2 behavior moved verbatim (user-verified across L.1/L.3); the STATE side is now fully retail through the funnel, so only the visible-animation composition approximates. Retire with the S3/S6 modifier port (`re_modify` + `subtract_motion` omega/velocity combine) | Run-while-turning shows pure run legs (no lean/turn blend); sidestep-while-walking shows one cycle only — animation-composition mismatch vs retail observers, position unaffected | `CMotionTable::re_modify` (GetObjectSequence tail, pc:298636); `StopSequenceMotion` modifier branch pc:298954 |
|
||||
|
||||
## 4. Temporary stopgap (TS) — 33 rows
|
||||
|
||||
| # | Divergence | Where (file:line) | Why it is safe / justified | Risk if assumption breaks | Retail oracle |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue