From e788ffff65ca65b6fd8dd84b3822d74e330d68c7 Mon Sep 17 00:00:00 2001 From: Andreas Haas Date: Thu, 15 Sep 2016 19:30:35 +0200 Subject: Fix input action pressed state not changing for quick joystick movements. fixes #6488 Also removes a bunch of dead code related to checking if a joystick axis is pressed. (cherry picked from commit 84783fe77b5dfa89a1bcf5a7e60a3b3ab7d876bd) --- main/input_default.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'main/input_default.cpp') diff --git a/main/input_default.cpp b/main/input_default.cpp index c5fac18e7..d1816da2e 100644 --- a/main/input_default.cpp +++ b/main/input_default.cpp @@ -794,6 +794,13 @@ uint32_t InputDefault::joy_axis(uint32_t p_last_id, int p_device, int p_axis, co return p_last_id; } + if (ABS(joy.last_axis[p_axis]) > 0.5 && joy.last_axis[p_axis] * p_value.value < 0) { + //changed direction quickly, insert fake event to release pending inputmap actions + JoyAxis jx; + jx.min = p_value.min; + jx.value = p_value.value < 0 ? 0.1 : -0.1; + p_last_id = joy_axis(p_last_id, p_device, p_axis, jx); + } joy.last_axis[p_axis] = p_value.value; float val = p_value.min == 0 ? -1.0f + 2.0f * p_value.value : p_value.value; -- cgit v1.2.3-70-g09d2