fix(world): restore portal and distant use lifecycles

This commit is contained in:
Erik 2026-07-25 09:59:25 +02:00
parent c730632075
commit 1a14812c44
18 changed files with 401 additions and 196 deletions

View file

@ -17,12 +17,16 @@ retained-source re-gate is tracked separately below.
## Retail and protocol anchors
- `gmSmartBoxUI::UseTime @ 0x004D6E30`: the
- `SmartBox::DoSetState` clears `waiting_for_teleport` when the player becomes
visible. The next `SmartBox::UseTime` resumes `CObjectMaint` and `CPhysics`
while the portal viewport may still be active.
- `gmSmartBoxUI::UseTime @ 0x004D6E30`: the later
`TunnelFadeOut -> WorldFadeIn` edge hides the portal viewport, shows the
world viewport, releases cell blocking, and starts the final one-second
WorldFadeIn state.
- The later WorldFadeIn completion sends LoginComplete and ends logical
teleport state. Viewport release and protocol completion are distinct.
world viewport, releases the destination render reservation, and starts the
final one-second WorldFadeIn state.
- WorldFadeIn completion sends LoginComplete and ends logical teleport state.
Materialization, viewport release, and protocol completion are three
distinct edges.
- `gmPaperDollUI::RedressCreature @ 0x004A3BC0` creates the private inventory
object only when absent and a SmartBox player is available; temporary player
absence does not delete an existing private object.