Skip to content

Commit 10e4e08

Browse files
YoshiRulzvadosnaprimer
authored andcommitted
Move init of new MouseState to top and eliminate locals
1 parent 90833fc commit 10e4e08

File tree

1 file changed

+18
-20
lines changed
  • src/BizHawk.Emulation.Cores/Computers/DOS

1 file changed

+18
-20
lines changed

src/BizHawk.Emulation.Cores/Computers/DOS/DOSBox.cs

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -368,38 +368,36 @@ protected override LibWaterboxCore.FrameInfo FrameAdvancePrep(IController contro
368368
// Setting mouse inputs
369369
if (_syncSettings.EnableMouse)
370370
{
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+
371381
var deltaX = controller.AxisValue($"{Inputs.Mouse} {MouseInputs.SpeedX}");
372382
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;
375385
fi.Mouse.DeltaX = deltaX != 0 ? deltaX : fi.Mouse.PosX - _mouseState.PosX;
376386
fi.Mouse.DeltaY = deltaY != 0 ? deltaY : fi.Mouse.PosY - _mouseState.PosY;
377387

378388
// 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-
383389
// 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;
387393

388394
// Button released criteria:
389395
// 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;
393399
fi.Mouse.Sensitivity = _syncSettings.MouseSensitivity;
394400

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-
403401
// Updating mouse state
404402
_mouseState = nextState;
405403
}

0 commit comments

Comments
 (0)