diff options
author | Nadia Holmquist Pedersen <nadia@nhp.sh> | 2022-07-07 23:16:28 +0200 |
---|---|---|
committer | Nadia Holmquist Pedersen <nadia@nhp.sh> | 2022-07-07 23:18:56 +0200 |
commit | f5c1094d03c317a93d4f088c34e7a89c16a2b2bf (patch) | |
tree | efbef1b809a38a1864cf768562931b3e0a9e43dd /src/frontend | |
parent | 35cbda900190ef05fd3df2fa2950657d25b654b6 (diff) |
Fix triggers being recognized as negative analog stick values when assigning an input if the axis is moved too slowly.
Diffstat (limited to 'src/frontend')
-rw-r--r-- | src/frontend/qt_sdl/InputConfig/MapButton.h | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/frontend/qt_sdl/InputConfig/MapButton.h b/src/frontend/qt_sdl/InputConfig/MapButton.h index ca210f9..1541521 100644 --- a/src/frontend/qt_sdl/InputConfig/MapButton.h +++ b/src/frontend/qt_sdl/InputConfig/MapButton.h @@ -245,19 +245,21 @@ protected: Sint16 axisval = SDL_JoystickGetAxis(joy, i); int diff = abs(axisval - axesRest[i]); - if (axesRest[i] < -16384 && axisval >= 0) + if (diff >= 16384) { - *mapping = (oldmap & 0xFFFF) | 0x10000 | (2 << 20) | (i << 24); - click(); - return; - } - else if (diff > 16384) - { - int axistype; - if (axisval > 0) axistype = 0; - else axistype = 1; + if (axesRest[i] < -16384) // Trigger + { + *mapping = (oldmap & 0xFFFF) | 0x10000 | (2 << 20) | (i << 24); + } + else // Analog stick + { + int axistype; + if (axisval > 0) axistype = 0; + else axistype = 1; + + *mapping = (oldmap & 0xFFFF) | 0x10000 | (axistype << 20) | (i << 24); + } - *mapping = (oldmap & 0xFFFF) | 0x10000 | (axistype << 20) | (i << 24); click(); return; } |