fix(world): complete recall before teleport hide
Match retail's update ordering so object animation, particles, and scripts advance before inbound teleport state is applied. Separate input-originated movement from post-network autonomous position output, and reconcile presentation without a second physics tick so recall cannot resume after arrival. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
dded9e6b17
commit
75acae02d6
13 changed files with 1068 additions and 332 deletions
|
|
@ -206,6 +206,7 @@ src/
|
|||
LiveEntityRuntime.cs -> canonical identity/state/body/projectile/spatial ownership
|
||||
LiveEntityPresentationController.cs -> Hidden/NoDraw/effect/collision presentation
|
||||
LiveEntityTeardown.cs -> failure-isolated multi-owner lifecycle drain
|
||||
RetailLiveFrameCoordinator.cs -> object/physics-before-network frame barrier
|
||||
Rendering/
|
||||
GameWindow.cs -> still owns too much runtime wiring
|
||||
TerrainModernRenderer.cs -> mandatory bindless+MDI terrain path
|
||||
|
|
@ -642,7 +643,19 @@ canonical local physics controller and chase-camera handoff.
|
|||
The destination residency gate supplies retail's `EndTeleportAnimation` edge
|
||||
once asynchronous streaming is ready. Player placement remains authoritative
|
||||
and separate from presentation; arrival resets camera viewer state but does
|
||||
not reset the character animation sequence. See
|
||||
not reset the character animation sequence. `RetailLiveFrameCoordinator`
|
||||
matches `SmartBox::UseTime @ 0x00455410`: it advances local and remote object/
|
||||
projectile runtime, composes final animated/equipped poses, drains animation
|
||||
hooks, then advances particles before owner scripts and inbound network dispatch.
|
||||
`RetailLocalPlayerFrameController` owns the player's exactly-once tick and sends
|
||||
input-originated movement/jump output on the object side of that barrier. After
|
||||
inbound dispatch, the retail command-interpreter phase evaluates periodic
|
||||
AutonomousPosition from current authoritative state, then a non-advancing spatial
|
||||
reconciliation updates equipped children and live effect/light anchors. Consequently a
|
||||
teleport Hidden transition cannot freeze the last fraction of recall and replay
|
||||
it after UnHide, and ForcePosition/F751 cannot combine old one-shot input with a new cell.
|
||||
The draw pass consumes that completed update snapshot and never advances live
|
||||
animation independently. See
|
||||
`docs/research/2026-07-15-retail-portal-space-pseudocode.md`.
|
||||
|
||||
## Roadmap Model
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue