From f2bdd8d96c5b0f3cf1f12568677d2ff57e7e6c31 Mon Sep 17 00:00:00 2001 From: Vitaliy Margolen Date: Tue, 13 May 2008 07:33:31 -0600 Subject: [PATCH] dinput: Clamp joystick position values to min-max range. --- dlls/dinput/joystick_linuxinput.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c index 50befd913db..13bc1fbd61f 100644 --- a/dlls/dinput/joystick_linuxinput.c +++ b/dlls/dinput/joystick_linuxinput.c @@ -110,6 +110,10 @@ LONG joystick_map_axis(ObjProps *props, int val) ret = MulDiv( val, props->lMax - props->lMin, dev_range ) + (props->lMin + props->lMax) / 2; + /* Clamp in case or rounding errors */ + if (ret > props->lMax) ret = props->lMax; + else if (ret < props->lMin) ret = props->lMin; + TRACE( "(%d <%d> %d) -> (%d <%d> %d): val=%d ret=%d\n", props->lDevMin, dead_zone, props->lDevMax, props->lMin, props->lDeadZone, props->lMax,