feat(menu): navegació del menú de servei amb sticks
This commit is contained in:
1 parent
2c1c1a442b
commit
fddea0c449
2 files changed
+76
No files matched your search
@@ -208,6 +208,12 @@ class ServiceMenu {
|
||||
// sota el llindar de clang-tidy.
|
||||
void handleGamepadButtonDown(const SDL_GamepadButtonEvent& ev);
|
||||
|
||||
// Navegació via sticks analògics. Treballa per edge-detection: cada
|
||||
// eix recorda en quina "zona" està (negativa / neutra / positiva) i
|
||||
// sols dispara una acció quan creua de neutra a un extrem, igual que
|
||||
// un botó del DPAD. Aplicada tant al stick esquerre com al dret.
|
||||
void handleGamepadAxisMotion(const SDL_GamepadAxisEvent& ev);
|
||||
|
||||
// Sons d'UI: SELECT acompanya navegació (amunt/avall) i back; ACCEPT
|
||||
// acompanya modificació d'opció (esquerra/dreta/retorn). Els noms de
|
||||
// recurs venen d'`UiConfig` i el preload el fa el Director.
|
||||
@@ -270,6 +276,14 @@ class ServiceMenu {
|
||||
float transition_progress_{0.0F}; // 0 → 1 durant la transició de pàgina.
|
||||
bool capturing_{false}; // True mentre esperem una tecla per a un KEY_BIND.
|
||||
|
||||
// Estat per eix del stick per a edge-detection: -1, 0, +1 segons la
|
||||
// zona on viu el valor actual. Un canvi de zona dispara una acció
|
||||
// (només quan entra a un extrem); reset a 0 quan torna al centre.
|
||||
std::int8_t lx_zone_{0};
|
||||
std::int8_t ly_zone_{0};
|
||||
std::int8_t rx_zone_{0};
|
||||
std::int8_t ry_zone_{0};
|
||||
|
||||
// Sub-mòdul de captura de botons del mando. Quan està actiu absorbeix
|
||||
// tots els events de mando (BUTTON_DOWN/UP, AXIS_MOTION) i, en acabar,
|
||||
// persisteix la nova configuració via `GamepadBindings`. Replica el
|
||||
|
||||
Reference in new issue
Block a user