dinput: Clamp lMagnitude
Vincent Pelletier
plr.vincent at gmail.com
Fri Jan 23 20:46:09 CST 2009
--
Vincent Pelletier
-------------- next part --------------
From 810776409d69af8a9f66539cfe65fd39494e3057 Mon Sep 17 00:00:00 2001
From: Vincent Pelletier <plr.vincent at gmail.com>
Date: Sat, 24 Jan 2009 03:45:11 +0100
Subject: Clamp lMagnitude into -10000..10000 range.
Microsoft test application from DXSDK (FFConst) sends out of range values when approaching corners.
---
dlls/dinput/effect_linuxinput.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/dlls/dinput/effect_linuxinput.c b/dlls/dinput/effect_linuxinput.c
index 225960d..9e3b5af 100644
--- a/dlls/dinput/effect_linuxinput.c
+++ b/dlls/dinput/effect_linuxinput.c
@@ -664,7 +664,7 @@ static HRESULT WINAPI LinuxInputEffectImpl_SetParameters(
if (peff->cbTypeSpecificParams != sizeof(DICONSTANTFORCE))
return DIERR_INVALIDPARAM;
tsp = (LPCDICONSTANTFORCE)(peff->lpvTypeSpecificParams);
- This->effect.u.constant.level = (tsp->lMagnitude / 10) * 32;
+ This->effect.u.constant.level = (max(min(tsp->lMagnitude, 10000), -10000) / 10) * 32;
} else if (type == DIEFT_RAMPFORCE) {
LPCDIRAMPFORCE tsp;
if (peff->cbTypeSpecificParams != sizeof(DIRAMPFORCE))
--
1.5.6.5
More information about the wine-patches
mailing list