Better gamepad axis event injection.
In the core input handling code we have checks to make sure that if axis rapidly change sign we inject mid-points to release any pending inputmap action. The function though, did not correctly insert the mid-point causing dpads mapped to an axis that behaves like tri-state buttons (-1,0,1) to not be released correctly. This commit fixes that by including in the check the case where the axis swtiches from abs(1) to 0.
This commit is contained in:
parent
16fa4201f1
commit
a1533f2c44
@ -886,10 +886,10 @@ void Input::joy_axis(int p_device, int p_axis, const JoyAxis &p_value) {
|
||||
jx.min = p_value.min;
|
||||
jx.value = p_value.value < 0.5 ? 0.6 : 0.4;
|
||||
joy_axis(p_device, p_axis, jx);
|
||||
} else if (ABS(last) > 0.5 && last * p_value.value < 0) {
|
||||
} else if (ABS(last) > 0.5 && last * p_value.value <= 0) {
|
||||
JoyAxis jx;
|
||||
jx.min = p_value.min;
|
||||
jx.value = p_value.value < 0 ? 0.1 : -0.1;
|
||||
jx.value = last > 0 ? 0.1 : -0.1;
|
||||
joy_axis(p_device, p_axis, jx);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user