diff --git a/src/arch/InputHandler/InputHandler_DirectInput.cpp b/src/arch/InputHandler/InputHandler_DirectInput.cpp index 4fb78dee35..3dc80a0717 100644 --- a/src/arch/InputHandler/InputHandler_DirectInput.cpp +++ b/src/arch/InputHandler/InputHandler_DirectInput.cpp @@ -417,17 +417,24 @@ void InputHandler_DInput::UpdatePolled( DIDevice &device, const RageTimer &tm ) val = state.lZ; //LOG->Trace("MouseWheel polled: %i",val); INPUTFILTER->UpdateMouseWheel(val); - - /* - if( (int)val != 0 ) + if( val == 0 ) + { + // release all + ButtonPressed( DeviceInput(dev, pos, 0, tm) ); + ButtonPressed( DeviceInput(dev, neg, 0, tm) ); + } + else if( int(val) > 0 ) { // positive values: WheelUp - // negative values: WheelDown - float l = SCALE( int(val), -120.0f, 120.0f, -1.0f, 1.0f ); - ButtonPressed( DeviceInput(dev, neg, max(-l,0), tm) ); - ButtonPressed( DeviceInput(dev, pos, max(+l,0), tm) ); + ButtonPressed( DeviceInput(dev, pos, 1, tm) ); + ButtonPressed( DeviceInput(dev, neg, 0, tm) ); + } + else if( int(val) < 0 ) + { + // negative values: WheelDown + ButtonPressed( DeviceInput(dev, neg, 1, tm) ); + ButtonPressed( DeviceInput(dev, pos, 0, tm) ); } - */ } break; default: LOG->MapLog( "unknown input", @@ -532,23 +539,23 @@ void InputHandler_DInput::UpdateBuffered( DIDevice &device, const RageTimer &tm //l = SCALE( int(evtbuf[i].dwData), -WHEEL_DELTA, WHEEL_DELTA, 1.0f, -1.0f ); if( int(evtbuf[i].dwData) > 0 ) { - DeviceInput diUp = DeviceInput(dev, up, 1, tm); + DeviceInput diUp = DeviceInput(dev, up, 1.0f, tm); ButtonPressed( diUp ); - DeviceInput diDown = DeviceInput(dev, down, 0, tm); + DeviceInput diDown = DeviceInput(dev, down, 0.0f, tm); ButtonPressed( diDown ); } else if( int(evtbuf[i].dwData) < 0 ) { - DeviceInput diDown = DeviceInput(dev, down, 1, tm); + DeviceInput diDown = DeviceInput(dev, down, 1.0f, tm); ButtonPressed( diDown ); - DeviceInput diUp = DeviceInput(dev, up, 0, tm); + DeviceInput diUp = DeviceInput(dev, up, 0.0f, tm); ButtonPressed( diUp ); } else { - DeviceInput diUp = DeviceInput(dev, up, 0, tm); + DeviceInput diUp = DeviceInput(dev, up, 0.0f, tm); ButtonPressed( diUp ); - DeviceInput diDown = DeviceInput(dev, down, 0, tm); + DeviceInput diDown = DeviceInput(dev, down, 0.0f, tm); ButtonPressed( diDown ); } }