Phase B.4c closes #58 (filed during B.4b ship). When a door's state flips via ACE Door.ActOnUse, the L.2g chain handles the SetState collision-bit flip but no UpdateMotion handler ever animated the door visually. Investigation traced the gap to the spawn-time registration gate at GameWindow.cs:2692 which requires a multi-frame idle cycle — doors have no idle. Design: door-specific spawn-time branch that bypasses the gate, builds an AnimationSequencer, seeds it with Off (closed) or On (open) cycle based on spawn PhysicsState. ACE Door.cs:43 sets the same initial state. ~40 LOC in one file. Reuses the existing AnimationSequencer + per-frame tick + WB renderer pipeline. No changes downstream. Discovered during self-review that the per-frame tick at GameWindow.cs:7691-7697 unconditionally overwrites ae.Entity.MeshRefs with sequencer-derived transforms; an empty sequencer would collapse the door to origin. The state-seeded SetCycle at spawn keeps the sequencer always producing valid frames. Also documented: ae.Animation = null is safe because the tick's sequencer branch at line 7497 never reads it (only the legacy slerp else branch does). Diagnostic tags renamed from phase-named [B.4c] to durable [door-anim] / [door-cycle] per Opus reviewer feedback on B.4b. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| architecture | ||
| audit | ||
| plans | ||
| research | ||
| superpowers | ||
| bugs.md | ||
| ISSUES.md | ||