diff options
| author | 2020-02-01 14:02:41 -0500 | |
|---|---|---|
| committer | 2020-02-01 14:02:41 -0500 | |
| commit | 69a6796de10357947d3e0411126b13c59628cb51 (patch) | |
| tree | 4478c6e702785340b1d453ed55da23448d88e8f5 /src/input_common/sdl/sdl_impl.cpp | |
| parent | Merge pull request #3364 from lioncash/thread (diff) | |
| parent | Moved analog direction logic to sdl_impl (diff) | |
| download | yuzu-69a6796de10357947d3e0411126b13c59628cb51.tar.gz yuzu-69a6796de10357947d3e0411126b13c59628cb51.tar.xz yuzu-69a6796de10357947d3e0411126b13c59628cb51.zip | |
Merge pull request #3284 from CJBok/hid-fix
hid: Fix analog sticks directional states
Diffstat (limited to 'src/input_common/sdl/sdl_impl.cpp')
| -rw-r--r-- | src/input_common/sdl/sdl_impl.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp index d2e9d278f..a2e0c0bd2 100644 --- a/src/input_common/sdl/sdl_impl.cpp +++ b/src/input_common/sdl/sdl_impl.cpp | |||
| @@ -342,6 +342,22 @@ public: | |||
| 342 | return std::make_tuple<float, float>(0.0f, 0.0f); | 342 | return std::make_tuple<float, float>(0.0f, 0.0f); |
| 343 | } | 343 | } |
| 344 | 344 | ||
| 345 | bool GetAnalogDirectionStatus(Input::AnalogDirection direction) const override { | ||
| 346 | const auto [x, y] = GetStatus(); | ||
| 347 | const float directional_deadzone = 0.4f; | ||
| 348 | switch (direction) { | ||
| 349 | case Input::AnalogDirection::RIGHT: | ||
| 350 | return x > directional_deadzone; | ||
| 351 | case Input::AnalogDirection::LEFT: | ||
| 352 | return x < -directional_deadzone; | ||
| 353 | case Input::AnalogDirection::UP: | ||
| 354 | return y > directional_deadzone; | ||
| 355 | case Input::AnalogDirection::DOWN: | ||
| 356 | return y < -directional_deadzone; | ||
| 357 | } | ||
| 358 | return false; | ||
| 359 | } | ||
| 360 | |||
| 345 | private: | 361 | private: |
| 346 | std::shared_ptr<SDLJoystick> joystick; | 362 | std::shared_ptr<SDLJoystick> joystick; |
| 347 | const int axis_x; | 363 | const int axis_x; |