private void Delay(int amount)
{
int start = Environment.TickCount;
if (amount < 0)
amount = 0;
do
{
_keyPressed = _system.InputManager.GetState();
var mousePos = _system.InputManager.GetMousePosition();
if (!SystemVars.Instance.SystemFlags.HasFlag(SystemFlags.MouseLocked))
{
_skyMouse.MouseMoved((ushort)mousePos.X, (ushort)mousePos.Y);
}
if (!_lastInput.IsLeftButtonDown && _keyPressed.IsLeftButtonDown)
_skyMouse.ButtonPressed(2);
if (!_lastInput.IsRightButtonDown && _keyPressed.IsRightButtonDown)
_skyMouse.ButtonPressed(1);
_system.GraphicsManager.UpdateScreen();
if (amount > 0)
ServiceLocator.Platform.Sleep(amount > 10 ? 10 : amount);
_lastInput = _keyPressed;
} while (Environment.TickCount < start + amount);
}