fix(scoring): restore marker comparison and hit sound order
The original score helper compares signed high words and unsigned low words, which is a signed 32-bit comparison of the wrapped score bits. Rust used an unsigned comparison and could award a media marker after the score crossed the sign bit. Type-four trigger handling also queued WAVE 2004 after score mutation, so it replaced WAVE 2007 when the same hit crossed an extra-ball threshold. Use the binary's comparison semantics and dispatch the type-four hit sound before both ordinary target and player-effect score mutations. Regression tests cover both trigger paths, the exact monophonic event order, and a score with the high bit set. Test Plan: - `cargo test --workspace --all-targets --all-features` -- 115 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:
@@ -153,11 +153,14 @@ 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.
|
||||
- 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
|
||||
fields activate before the collision's static score. Every later completed
|
||||
bank adds 100,000 to the secondary score.
|
||||
bank adds 100,000 to the secondary score. Marker comparisons retain the
|
||||
binary's signed-high/unsigned-low 32-bit ordering after score wrap.
|
||||
- Match the original 640x460 window, native 16x28 score glyphs, and
|
||||
`TDK Pinball Machine 1.00` title so the recovered artwork is presented
|
||||
one-for-one instead of enlarged or resampled.
|
||||
|
||||
Reference in New Issue
Block a user