Beispiel #1
0
        private static void CheckToEnable()
        {
            if (!Savestates.SpeedrunToolInstalled && Hotkeys.HotkeyRestart.Pressed && !Hotkeys.HotkeyRestart.WasPressed)
            {
                DisableRun();
                EnableRun();
                return;
            }

            if (Hotkeys.HotkeyStart.Pressed)
            {
                if (!HasFlag(State, State.Enable) && checkHotkeyStarTask == null)
                {
                    NextState |= State.Enable;
                }
                else
                {
                    NextState |= State.Disable;
                }
            }
            else if (HasFlag(NextState, State.Enable))
            {
                if (Engine.Scene is Level level && (!level.CanPause || Engine.FreezeTimer > 0))
                {
                    Controller.RefreshInputs(true);
                    if (Controller.Current.HasActions(Actions.Restart) || Controller.Current.HasActions(Actions.Start))
                    {
                        NextState |= State.Delay;
                        FrameLoops = FastForward.DefaultFastForwardSpeed;
                        return;
                    }
                }

                EnableRun();
            }
            else if (HasFlag(NextState, State.Disable))
            {
                DisableRun();
            }
        }