fix(rules): retain active target rotation across drains
The original timer advances DAT600 target rotation only from active_ball_tick. A normal ball end does not clear its phase, so a pending rotation pauses while the next ball waits in the launcher and resumes after launch. Rust advanced the phase during launcher idle and then discarded it on drain. Gate rotation updates with the active-ball state and stop clearing rotation, panel, or claw mechanism state in the normal drain path where the binary leaves them untouched. Seed the deterministic target scenario with an active ball so it continues to exercise all six recovered phases. Test Plan: - `cargo test --workspace --all-targets --all-features` -- 118 passed - `cargo clippy --workspace --all-targets --all-features -- -D warnings` -- passed - `rumdl check --flavor commonmark RECONSTRUCTION.md CHANGELOG.md` -- passed - `git diff --cached --check` -- passed
This commit is contained in:
@@ -94,7 +94,8 @@ and this project adheres to
|
||||
51-53 and targets 140-147/150-152.
|
||||
- Replace the free-running wheel animation with the original six-callback
|
||||
91x90 target rotation, WAVE 2011 start, exact DAT600 frames/target positions,
|
||||
and state-6 rotation of the five per-player contact/item values.
|
||||
and state-6 rotation of the five per-player contact/item values. It advances
|
||||
only for an active ball, pauses in the launcher, and survives a normal drain.
|
||||
- Restore the complete 281-callback DAT600 panel sequence after the fifth lock
|
||||
hole, including physics suspension, contact/item cleanup, all nine image
|
||||
phases, and the original WAVE 2013/2012/stop boundaries.
|
||||
|
||||
Reference in New Issue
Block a user