fix(input): restore original nudge and tilt behavior

Replace the float nudge direction, cooldown, and decaying meter with the
scan-code-specific Win16 behavior. Left Shift and keypad 3 now use the original
random directional impulse, while Space uses the reconstructed random horizontal
and vertical formulas with scalar 15 and wrapping millipixel velocities.

Track the original 16-bit tilt counter: each nudge adds 25, compares against
30 + Random(10), and the selected detail timer decrements a nonzero counter once
per callback. Allow the same input while a ball waits in the launcher, retain
bonus state when tilt latches, clear flippers immediately, and keep Right Shift
only as a documented modern alias for keypad 3.

Test Plan:
- `cargo test --all-targets` -- passed, 57 tests
- `cargo clippy --all-targets -- -D warnings` -- passed
- `rumdl check tdkpin-rs/CHANGELOG.md tdkpin-rs/README.md tdkpin-rs/RECONSTRUCTION.md` -- passed
- `git diff --cached --check` -- passed
This commit is contained in:
2026-08-23 16:55:02 +02:00
parent c25287186a
commit aae4671586
5 changed files with 140 additions and 65 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ validation runs.
| Charge launcher | Hold Down arrow, release to launch | - |
| Left flipper | Left Ctrl | `A` or Left arrow |
| Right flipper | Keypad Enter | Right Ctrl, `D`, or Right arrow |
| Nudge | Space, either Shift, keypad `3` | - |
| Nudge | Space, Left Shift, keypad `3` | Right Shift aliases keypad `3` |
| Help | F1 | Enter/Escape returns |
| Settings | F2 | - |
| High scores | F3 | - |