feat(menu): let players choose the keyboard shortcut #1609

Merged
bronze-ff merged 1 commit from feat/menu-keyboard-shortcut into main 2026-11-10 11:25:36 +00:00
bronze-ff commented 2026-11-10 10:57:16 +00:00 (Migrated from github.com)

Summary

Addresses the keyboard shortcut request in #1013, tracked in #1007. Add Controls → Menu shortcut with Insert or F1 (the existing default), Insert only, and F1 only. Selecting F1 only leaves Insert available for overlays such as OptiScaler. The setting is stored in hookshot_options.ini and applies immediately. Gamepad shortcuts and Escape keep their existing behavior.

The menu still samples and drains both keys on every tick so changing the option cannot replay a queued press or create a fresh press from a held key.

Validation

  • The new regression compiles the production keyboard polling block. It reproduces the unconditional shortcut on main and passes with the fix for both queued and polled input, including focus changes and a held key across a mode change.
  • Five related tests passed on Windows with LLVM-MinGW and on Linux with GCC/G++: menu keys, menu hit testing, menu restart, stick dead zone, and rumble menu. The Windows Vulkan menu translation unit also passed a syntax check.
  • A temporary fixture using the production options save and load loops round-tripped all three values and checked out-of-range values. Gameplay and interaction with a live third-party overlay were outside this run.
## Summary Addresses the keyboard shortcut request in #1013, tracked in #1007. Add **Controls → Menu shortcut** with **Insert or F1** (the existing default), **Insert only**, and **F1 only**. Selecting F1 only leaves Insert available for overlays such as OptiScaler. The setting is stored in `hookshot_options.ini` and applies immediately. Gamepad shortcuts and Escape keep their existing behavior. The menu still samples and drains both keys on every tick so changing the option cannot replay a queued press or create a fresh press from a held key. ## Validation - The new regression compiles the production keyboard polling block. It reproduces the unconditional shortcut on `main` and passes with the fix for both queued and polled input, including focus changes and a held key across a mode change. - Five related tests passed on Windows with LLVM-MinGW and on Linux with GCC/G++: menu keys, menu hit testing, menu restart, stick dead zone, and rumble menu. The Windows Vulkan menu translation unit also passed a syntax check. - A temporary fixture using the production options save and load loops round-tripped all three values and checked out-of-range values. Gameplay and interaction with a live third-party overlay were outside this run.
Commenting is not possible because the repository is archived.
No description provided.