fix(scoring): preserve bumper sound precedence

Bumper flags are dispatched before the variable bumper award in the original
collision response. Rust duplicated the primary- and secondary-ball rule path
and appended WAVE 2006 after score mutation, which hid WAVE 2007 whenever that
award crossed a media/extra-ball threshold.

Share one bumper-rule helper for both ball slots, arm the five-callback visual
countdown, dispatch WAVE 2006, and only then add the weak or kicked bumper score.
An exact event-order regression keeps the threshold sound as the final audible
sample.

Test Plan:
- `cargo test --workspace --all-targets --all-features` -- 116 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:
2026-08-23 19:56:41 +02:00
parent 50764f6151
commit df66530b86
3 changed files with 51 additions and 31 deletions
+3 -2
View File
@@ -153,8 +153,9 @@ and this project adheres to
- Dispatch the original per-call-site sound sequences instead of assigning one
guessed WAV to each logical event. This removes the nonexistent WAV 2022
playback and restores bank, trigger, capture, nudge, tilt, and drain cues.
Type-4 WAVE 2004 now precedes its score mutation so a simultaneously crossed
media marker leaves WAVE 2007 audible, as in the monophonic original.
Type-4 WAVE 2004 and bumper WAVE 2006 now precede their score mutations so a
simultaneously crossed media marker leaves WAVE 2007 audible, as in the
monophonic original.
- Advance media/extra-ball thresholds only from score additions, preserve
32-bit score wrapping, and restore the ninth-diamond ordering: its 24,464
award remains single, then permanent double scoring and all three magnetic