From 635deb70d4c7b09749d9d7edb9515ede496f7f3e Mon Sep 17 00:00:00 2001 From: CJBok Date: Wed, 15 Jan 2020 11:25:15 +0100 Subject: Moved analog direction logic to sdl_impl --- src/input_common/sdl/sdl_impl.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/input_common') 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: return std::make_tuple(0.0f, 0.0f); } + bool GetAnalogDirectionStatus(Input::AnalogDirection direction) const override { + const auto [x, y] = GetStatus(); + const float directional_deadzone = 0.4f; + switch (direction) { + case Input::AnalogDirection::RIGHT: + return x > directional_deadzone; + case Input::AnalogDirection::LEFT: + return x < -directional_deadzone; + case Input::AnalogDirection::UP: + return y > directional_deadzone; + case Input::AnalogDirection::DOWN: + return y < -directional_deadzone; + } + return false; + } + private: std::shared_ptr joystick; const int axis_x; -- cgit v1.2.3