fix(world): preserve portal materialization effects
Route accepted Hidden and UnHide transitions through retail's internal typed-script path so their DAT scripts queue while the owner is cell-less and resume at the destination. Consume ACE's successful teleport control statuses silently, matching retail HandleFailureEvent. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
bfb4b26dff
commit
4b1bceefbb
12 changed files with 142 additions and 8 deletions
|
|
@ -397,8 +397,11 @@ replacement, including present-zero clearing. Core `PhysicsScriptRunner` mirrors
|
|||
serial FIFO per owner: duplicate plays append, owners progress independently,
|
||||
`CallPES` uses an injected uniform delay, and every hook traverses the shared
|
||||
`AnimationHookRouter`. Existing queues on cell-less or Frozen live roots do
|
||||
not advance; a new play for an already-created cell-less object is dropped as in
|
||||
retail. Attached children advance through their eligible parent. Every effect
|
||||
not advance; a new ordinary F754/F755/default play for an already-created
|
||||
cell-less object is dropped as in retail. Hidden/UnHide is the retail exception:
|
||||
`CPhysicsObj::set_hidden` resolves the typed script and calls
|
||||
`play_script_internal`, queuing it until owner eligibility returns. Attached
|
||||
children advance through their eligible parent. Every effect
|
||||
resource uses the canonical, globally unique `WorldEntity.Id`; static
|
||||
allocators fail before their namespace can wrap. `EntityEffectPoseRegistry`
|
||||
publishes the final root and indexed rigid animated-part transforms after animation
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue