@@ -368,38 +368,36 @@ protected override LibWaterboxCore.FrameInfo FrameAdvancePrep(IController contro
368
368
// Setting mouse inputs
369
369
if ( _syncSettings . EnableMouse )
370
370
{
371
+ // Getting new mouse state values
372
+ DOSBox . MouseState nextState = new ( )
373
+ {
374
+ PosX = controller . AxisValue ( $ "{ Inputs . Mouse } { MouseInputs . PosX } ") ,
375
+ PosY = controller . AxisValue ( $ "{ Inputs . Mouse } { MouseInputs . PosY } ") ,
376
+ LeftButtonHeld = controller . IsPressed ( $ "{ Inputs . Mouse } { MouseInputs . LeftButton } ") ,
377
+ MiddleButtonHeld = controller . IsPressed ( $ "{ Inputs . Mouse } { MouseInputs . MiddleButton } ") ,
378
+ RightButtonHeld = controller . IsPressed ( $ "{ Inputs . Mouse } { MouseInputs . RightButton } ") ,
379
+ } ;
380
+
371
381
var deltaX = controller . AxisValue ( $ "{ Inputs . Mouse } { MouseInputs . SpeedX } ") ;
372
382
var deltaY = controller . AxisValue ( $ "{ Inputs . Mouse } { MouseInputs . SpeedY } ") ;
373
- fi . Mouse . PosX = controller . AxisValue ( $ " { Inputs . Mouse } { MouseInputs . PosX } " ) ;
374
- fi . Mouse . PosY = controller . AxisValue ( $ " { Inputs . Mouse } { MouseInputs . PosY } " ) ;
383
+ fi . Mouse . PosX = nextState . PosX ;
384
+ fi . Mouse . PosY = nextState . PosY ;
375
385
fi . Mouse . DeltaX = deltaX != 0 ? deltaX : fi . Mouse . PosX - _mouseState . PosX ;
376
386
fi . Mouse . DeltaY = deltaY != 0 ? deltaY : fi . Mouse . PosY - _mouseState . PosY ;
377
387
378
388
// Button pressed criteria:
379
- bool isMouseLeftButtonPressed = controller . IsPressed ( $ "{ Inputs . Mouse } { MouseInputs . LeftButton } ") ;
380
- bool isMouseMiddleButtonPressed = controller . IsPressed ( $ "{ Inputs . Mouse } { MouseInputs . MiddleButton } ") ;
381
- bool isMouseRightButtonPressed = controller . IsPressed ( $ "{ Inputs . Mouse } { MouseInputs . RightButton } ") ;
382
-
383
389
// If the input is made in this frame and the button is not held from before
384
- fi . Mouse . LeftButtonPressed = isMouseLeftButtonPressed && ! _mouseState . LeftButtonHeld ? 1 : 0 ;
385
- fi . Mouse . MiddleButtonPressed = isMouseMiddleButtonPressed && ! _mouseState . MiddleButtonHeld ? 1 : 0 ;
386
- fi . Mouse . RightButtonPressed = isMouseRightButtonPressed && ! _mouseState . RightButtonHeld ? 1 : 0 ;
390
+ fi . Mouse . LeftButtonPressed = nextState . LeftButtonHeld && ! _mouseState . LeftButtonHeld ? 1 : 0 ;
391
+ fi . Mouse . MiddleButtonPressed = nextState . MiddleButtonHeld && ! _mouseState . MiddleButtonHeld ? 1 : 0 ;
392
+ fi . Mouse . RightButtonPressed = nextState . RightButtonHeld && ! _mouseState . RightButtonHeld ? 1 : 0 ;
387
393
388
394
// Button released criteria:
389
395
// If the input is not pressed in this frame and the button is held from before
390
- fi . Mouse . LeftButtonReleased = ! isMouseLeftButtonPressed && _mouseState . LeftButtonHeld ? 1 : 0 ;
391
- fi . Mouse . MiddleButtonReleased = ! isMouseMiddleButtonPressed && _mouseState . MiddleButtonHeld ? 1 : 0 ;
392
- fi . Mouse . RightButtonReleased = ! isMouseRightButtonPressed && _mouseState . RightButtonHeld ? 1 : 0 ;
396
+ fi . Mouse . LeftButtonReleased = ! nextState . LeftButtonHeld && _mouseState . LeftButtonHeld ? 1 : 0 ;
397
+ fi . Mouse . MiddleButtonReleased = ! nextState . MiddleButtonHeld && _mouseState . MiddleButtonHeld ? 1 : 0 ;
398
+ fi . Mouse . RightButtonReleased = ! nextState . RightButtonHeld && _mouseState . RightButtonHeld ? 1 : 0 ;
393
399
fi . Mouse . Sensitivity = _syncSettings . MouseSensitivity ;
394
400
395
- // Getting new mouse state values
396
- var nextState = new DOSBox . MouseState ( ) ;
397
- nextState . PosX = fi . Mouse . PosX ;
398
- nextState . PosY = fi . Mouse . PosY ;
399
- nextState . LeftButtonHeld = isMouseLeftButtonPressed ;
400
- nextState . MiddleButtonHeld = isMouseMiddleButtonPressed ;
401
- nextState . RightButtonHeld = isMouseRightButtonPressed ;
402
-
403
401
// Updating mouse state
404
402
_mouseState = nextState ;
405
403
}
0 commit comments