research(vfx): pin retail projectile and effect oracle
Establish the executable-backed PhysicsDesc, sequence-gate, PhysicsScript, CreateBlocking, particle-anchor, projectile, and Hidden-state behavior before changing runtime code. Correct stale blocking/threshold claims and synchronize the project instructions with the current UI architecture and matching retail binary. Add copyright-safe packet and DAT-container fixtures plus a failing installed-DAT conformance audit for projectile shapes, typed tables, recall motion, default scripts, and raw CreateBlocking inventory. Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
parent
bb5acab9e6
commit
d53fe30ffe
14 changed files with 1545 additions and 53 deletions
|
|
@ -22,10 +22,11 @@ namespace AcDream.Core.Vfx;
|
|||
/// renderer exposes per-part world transforms.
|
||||
/// </description></item>
|
||||
/// <item><description>
|
||||
/// <see cref="CreateBlockingParticleHook"/> — same as
|
||||
/// CreateParticleHook but the retail sequencer blocks animation
|
||||
/// progression until the particle is done. We spawn the emitter
|
||||
/// identically; the "blocking" semantics belong to the sequencer.
|
||||
/// <see cref="CreateBlockingParticleHook"/> — has the same payload
|
||||
/// as CreateParticleHook, but suppresses creation while the same nonzero
|
||||
/// logical emitter ID is live. It does not pause animation. The dependency
|
||||
/// currently omits that inherited payload; the retail compatibility reader
|
||||
/// owns its decoding.
|
||||
/// </description></item>
|
||||
/// <item><description>
|
||||
/// <see cref="DestroyParticleHook"/> — stop the most-recent emitter
|
||||
|
|
@ -110,11 +111,11 @@ public sealed class ParticleHookSink : IAnimationHookSink
|
|||
break;
|
||||
|
||||
case CreateBlockingParticleHook:
|
||||
// Retail's CreateBlockingParticleHook is a sentinel (no
|
||||
// payload) — the sequencer pauses advancement until the
|
||||
// current particle emitter finishes. We surface this as
|
||||
// "no spawn needed, just keep the current particle alive";
|
||||
// blocking semantics live in the sequencer, not here.
|
||||
// Retail gives this the full CreateParticle payload and
|
||||
// suppresses creation only while the same nonzero logical ID
|
||||
// is live; it never pauses animation. The dependency loses
|
||||
// that payload, so TS-11 remains a no-op until the centralized
|
||||
// raw-hook compatibility reader supplies the retail shape.
|
||||
break;
|
||||
|
||||
case DestroyParticleHook dph:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue