feat(vfx): decode retail hooks and typed tables
Replace the incomplete package path with one DatCollection-backed compatibility seam for PhysicsScripts and Animations. Preserve CreateBlockingParticle's inherited payload and following cursor, route every production and audit consumer through the corrected loaders, and apply retail's post-UnPack StartTime ordering. Add exact stored-order PhysicsScriptTable upper-threshold resolution, high-byte DID and embedded-ID validation, plus live effect profiles with Setup-to-PhysicsDesc precedence across top-level and attached entity lifetimes. Keep blocking execution deferred and narrow TS-11 accordingly. Pin synthetic malformed/cursor/order fixtures, installed-DAT blocking and recall audits, high-index IDs, IEEE boundaries, profile teardown, and ordinary decoder parity; synchronize architecture, inventory, milestones, roadmap, research, and memory. Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
parent
8dd996053d
commit
363e046112
31 changed files with 1102 additions and 73 deletions
|
|
@ -339,6 +339,11 @@ Oracles:
|
|||
- `ScriptManager::NextHook` at `0x0051B3F0`
|
||||
- `ScriptManager::UpdateScripts` at `0x0051B480`
|
||||
|
||||
`PhysicsScript::UnPack` at `0x005218B0` first sorts its decoded hook records
|
||||
by ascending `StartTime` with `PhysicsScriptData::Sort` at `0x00521600`.
|
||||
This sort applies to PhysicsScript hook time, not to PhysicsScriptTable `Mod`
|
||||
thresholds (which must remain in stored DAT order).
|
||||
|
||||
```text
|
||||
add(script):
|
||||
node = new ScriptData
|
||||
|
|
@ -661,11 +666,13 @@ noncopyrighted fixtures:
|
|||
- `tests/AcDream.Core.Net.Tests/Messages/ProjectileVfxPacketFixtures.cs`:
|
||||
exact F754/F755, a broad projectile-field CreateObject, isolated Movement
|
||||
and AnimationFrame branches, and absent-versus-present-zero PeTable shapes.
|
||||
Step 1 adds truncation at each gated cursor.
|
||||
Step 1 tests include truncation at each gated cursor.
|
||||
- `tests/AcDream.Content.Tests/Vfx/ProjectileVfxDatFixtures.cs`: a synthetic raw
|
||||
PhysicsScript and Animation container, each containing a complete
|
||||
CreateBlocking payload followed by an AnimationDone hook at the exact
|
||||
expected cursor.
|
||||
expected cursor. `RetailDatLoaderTests` verifies both corrected containers,
|
||||
ordinary-hook parity with the package decoder, malformed-entry rejection,
|
||||
and representative installed blocking scripts.
|
||||
|
||||
Representative installed raw-entry identities are pinned as metadata, not
|
||||
copied bytes:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue