fix(input): match original low-byte key scans
The Win16 handlers mask the keyboard scan to its low byte. Main and keypad Enter therefore both produce the right-flipper scan 0x1c, both Ctrl keys produce the left-flipper scan 0x1d, and scan 0x1b is the physical main-keyboard plus/right-bracket position accepted alongside keypad plus. Rust omitted main Enter and scan 0x1b, and incorrectly assigned Right Ctrl to the right flipper. Map the native keys to those recovered scan semantics. Keep A/D, arrows, and Equal only as explicit modern aliases and document the distinction. Test Plan: - `cargo test --workspace --all-targets --all-features` -- 125 passed - `cargo clippy --workspace --all-targets --all-features -- -D warnings` -- passed - `rumdl check --flavor commonmark README.md RECONSTRUCTION.md CHANGELOG.md` -- passed - `git diff --cached --check` -- passed
This commit is contained in:
@@ -175,6 +175,9 @@ and this project adheres to
|
||||
and a player's final ball now clear the key latch, release a raised flipper
|
||||
through its normal WAVE 2021 timer edge, and require physical key-up before
|
||||
the same key can raise it again.
|
||||
- Match the original low-byte keyboard scans: both Ctrl keys operate the left
|
||||
flipper, both Enter keys operate the right, and the physical `0x1b`
|
||||
main-keyboard plus/right-bracket position starts or adds players.
|
||||
- Route a single-ball type-3 completion during Tilt through `1000:ae6e` instead
|
||||
of granting a free launcher reset: lock holes consume the ball, while record
|
||||
148 can still take its required-state special-respawn branch.
|
||||
|
||||
Reference in New Issue
Block a user