fix(world): remove non-retail portal exit fade
This commit is contained in:
parent
842bd89c16
commit
dded9e6b17
21 changed files with 919 additions and 347 deletions
|
|
@ -599,7 +599,7 @@ This is the asynchronous adapter for retail's direct full-`Position` placement
|
|||
|
||||
`TeleportAnimSequencer` is the pure Core owner of retail's seven-state
|
||||
teleport lifecycle, exact 1/2/5-second thresholds, frame-aligned exit window,
|
||||
and 100-sample `UIGlobals::GetAnimLevel` fade curve. App-layer
|
||||
and 100-sample `UIGlobals::GetAnimLevel` view-plane curve. App-layer
|
||||
`PortalTunnelPresentation` owns the synthetic DAT Setup (`0x02000306`), its
|
||||
40-frame/s animation (`0x030005AC`), `CSequence`, SmartBox-FOV camera, distant light, mesh
|
||||
references, and animation-hook delivery. It renders through the existing
|
||||
|
|
@ -613,12 +613,32 @@ enters `LiveEntityRuntime`, collision, picking, radar, or server GUID state.
|
|||
`SmartBox::SetOverrideFovDistance` / `Render::set_vdst`. It captures the active
|
||||
game projection at teleport begin, then applies the same table-eased
|
||||
view-plane distance and near plane to the portal and world viewports through
|
||||
the four fade states. Portal camera direction is a roll around its local AC
|
||||
the four retail `FADE` states. Those states do not drive a black alpha layer:
|
||||
the portal and world 3-D viewports switch directly at the transition view
|
||||
distance, while retained UI remains independently composed. Portal camera
|
||||
direction is a roll around its local AC
|
||||
`+Y` forward axis, so the animated scene remains a passage rather than yawing
|
||||
away from it. Destination placement also calls the retail chase camera's
|
||||
`set_viewer(player, reset_sought=1)` equivalent; the normal damped/swept camera
|
||||
path then re-extends from the arriving player.
|
||||
|
||||
One reset seam ends a logical transit on successful completion, replacement
|
||||
by a newer teleport sequence, or session teardown. It clears the destination,
|
||||
streaming priority, sequencer edges, projection override, and portal scene
|
||||
together, preventing transition state from crossing destination or session
|
||||
lifetimes. `TeleportTransitCoordinator` correlates each fresh F751 sequence
|
||||
with exactly one accepted `UpdatePosition`. Because the Position can arrive on
|
||||
either side of F751, a pre-notification packet is buffered only when it advances
|
||||
retail's `TELEPORT_TS`; after notification, the first accepted matching packet
|
||||
is consumed even if that timestamp already advanced. Duplicate/older F751
|
||||
notifications are rejected with wrap-safe ordering. Canonical physics remains
|
||||
independent, and streaming recentering compares destination identity with the
|
||||
actual current streaming center rather than the player's still-unplaced source
|
||||
cell. A live teleport received while acdream's developer fly/orbit camera is
|
||||
active re-enters the existing player-mode lifecycle first; retail has no
|
||||
detached camera mode, and destination placement therefore always retains the
|
||||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue