feat(vfx): port retail effect scheduling and delivery
This commit is contained in:
parent
363e046112
commit
96ddfdf175
28 changed files with 2473 additions and 691 deletions
|
|
@ -471,7 +471,7 @@ include dungeons.
|
|||
`PlayerDescription.Options1` preserves retail's player secure-trade
|
||||
preference. See
|
||||
`docs/research/2026-07-13-retail-give-item-pseudocode.md` and issue #216.
|
||||
- **M2/M3 missile, effect, and portal presentation campaign (Steps 0–3
|
||||
- **M2/M3 missile, effect, and portal presentation campaign (Steps 0–4
|
||||
implemented and independently reviewed 2026-07-14)** — named-retail projectile and
|
||||
physics-script behavior is pinned in one oracle, the complete `PhysicsDesc`
|
||||
and F754/F755 wire surfaces are parsed with retail timestamp gates, and
|
||||
|
|
@ -480,9 +480,23 @@ include dungeons.
|
|||
cannot replay create-time scripts. A narrow raw-hook seam now decodes retail's
|
||||
inherited `CreateBlockingParticle` payload for both PhysicsScripts and
|
||||
Animations, while exact stored-order `PhysicsScriptTable` threshold lookup and
|
||||
Setup-versus-network default precedence are pinned by conformance tests. The
|
||||
remaining steps port per-owner effect scheduling, live animated attachment
|
||||
poses, projectile motion and sweeps, and Hidden/UnHide portal presentation.
|
||||
Setup-versus-network default precedence are pinned by conformance tests.
|
||||
`EntityEffectController` now replays pre-create F754/F755 once in mixed order
|
||||
against the canonical local owner; the Core scheduler uses one serial FIFO per
|
||||
owner, preserves duplicates, supports deterministic delayed `CallPES`, and
|
||||
routes default/part-default hooks through the complete hook fan-out. The
|
||||
update-frame clock is published before packet/default dispatch and republished
|
||||
before animation hooks. Existing cell-less/Frozen queues pause and resume with
|
||||
retail eligibility, while new plays on an already-created cell-less owner drop;
|
||||
attached children advance through their parent. Every sink shares canonical
|
||||
`WorldEntity.Id`, and static allocator overflow fails before aliasing another
|
||||
landblock. Live SoundTable ownership is installed independently of animation
|
||||
eligibility and replaced/cleared on each PhysicsDesc application; DAT statics
|
||||
retain Setup defaults. Concurrent-safe DAT reads stay off the streaming lock; malformed
|
||||
zero-time recursive chains fail diagnostically while valid timed weather loops
|
||||
continue. The
|
||||
remaining steps port live animated attachment poses, projectile motion and
|
||||
sweeps, and Hidden/UnHide portal presentation.
|
||||
- **L.1c local attack receive path (implemented 2026-07-11; live gate pending)** —
|
||||
local non-autonomous mt-0 UpdateMotion now uses retail's wholesale interpreted
|
||||
funnel and action-stamp gate, so ACE's server-selected melee/missile action
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue