NScumm.Sky.SkyEngine.Delay C# (CSharp) Method

Delay() private method

private Delay ( int amount ) : void
amount int
return void
        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);
        }