From 376ab3d66f0020b923e15c163f90c19d9fff4e62 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sun, 15 May 2011 00:33:39 -0500 Subject: [PATCH] more changes to mousewheel code; still not working properly --- .../InputHandler/InputHandler_DirectInput.cpp | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/arch/InputHandler/InputHandler_DirectInput.cpp b/src/arch/InputHandler/InputHandler_DirectInput.cpp index 3dc80a0717..9817a88d0d 100644 --- a/src/arch/InputHandler/InputHandler_DirectInput.cpp +++ b/src/arch/InputHandler/InputHandler_DirectInput.cpp @@ -536,20 +536,31 @@ void InputHandler_DInput::UpdateBuffered( DIDevice &device, const RageTimer &tm INPUTFILTER->UpdateMouseWheel(l); { up = MOUSE_WHEELUP; down = MOUSE_WHEELDOWN; + float fWheelDelta = l; //l = SCALE( int(evtbuf[i].dwData), -WHEEL_DELTA, WHEEL_DELTA, 1.0f, -1.0f ); - if( int(evtbuf[i].dwData) > 0 ) + if( l > 0 ) { DeviceInput diUp = DeviceInput(dev, up, 1.0f, tm); - ButtonPressed( diUp ); DeviceInput diDown = DeviceInput(dev, down, 0.0f, tm); - ButtonPressed( diDown ); + while( fWheelDelta >= WHEEL_DELTA ) + { + ButtonPressed( diUp ); + ButtonPressed( diDown ); + INPUTFILTER->UpdateMouseWheel(fWheelDelta); + fWheelDelta -= WHEEL_DELTA; + } } - else if( int(evtbuf[i].dwData) < 0 ) + else if( l < 0 ) { DeviceInput diDown = DeviceInput(dev, down, 1.0f, tm); - ButtonPressed( diDown ); DeviceInput diUp = DeviceInput(dev, up, 0.0f, tm); - ButtonPressed( diUp ); + while( fWheelDelta <= -WHEEL_DELTA ) + { + ButtonPressed( diDown ); + ButtonPressed( diUp ); + INPUTFILTER->UpdateMouseWheel(fWheelDelta); + fWheelDelta += WHEEL_DELTA; + } } else {