コード例 #1
0
        private static void FrameStepping(GamePadState padState)
        {
            bool rightTrigger = padState.Triggers.Right > 0.5f;
            bool dpadUp       = padState.DPad.Up == ButtonState.Pressed || (IsKeyDown(settings.KeyFrameAdvance) && !IsKeyDown(settings.KeyStart));
            bool dpadDown     = padState.DPad.Down == ButtonState.Pressed || (IsKeyDown(settings.KeyPause) && !IsKeyDown(settings.KeyStart));

            if (HasFlag(state, State.Enable) && !HasFlag(state, State.Record) && !rightTrigger)
            {
                if (HasFlag(nextState, State.FrameStep))
                {
                    state     |= State.FrameStep;
                    nextState &= ~State.FrameStep;
                }

                if (!dpadUp && frameStepWasDpadUp)
                {
                    if (!HasFlag(state, State.FrameStep))
                    {
                        state     |= State.FrameStep;
                        nextState &= ~State.FrameStep;
                    }
                    else
                    {
                        state     &= ~State.FrameStep;
                        nextState |= State.FrameStep;
                        controller.ReloadPlayback();
                        if (ExportSyncData)
                        {
                            ExportPlayerInfo();
                        }
                    }
                    FrameStepCooldown = 60;
                }
                else if (!dpadDown && frameStepWasDpadDown)
                {
                    state     &= ~State.FrameStep;
                    nextState &= ~State.FrameStep;
                }
                else if (HasFlag(state, State.FrameStep) && (padState.ThumbSticks.Right.X > 0.1 || IsKeyDown(settings.KeyFastForward)))
                {
                    float rStick = padState.ThumbSticks.Right.X;
                    if (rStick < 0.1f)
                    {
                        rStick = 0.5f;
                    }
                    FrameStepCooldown -= (int)((rStick - 0.1) * 80f);
                    if (FrameStepCooldown <= 0)
                    {
                        FrameStepCooldown = 60;
                        state            &= ~State.FrameStep;
                        nextState        |= State.FrameStep;
                        controller.ReloadPlayback();
                    }
                }
            }

            frameStepWasDpadUp   = dpadUp;
            frameStepWasDpadDown = dpadDown;
        }
コード例 #2
0
ファイル: Manager.cs プロジェクト: CMDRNuffin/CelesteTAS
        private static void FrameStepping(GamePadState padState)
        {
            bool rightTrigger = padState.Triggers.Right > 0.5f;
            bool dpadUp       = padState.DPad.Up == ButtonState.Pressed || (IsKeyDown(Keys.OemOpenBrackets) && !IsKeyDown(Keys.RightControl));
            bool dpadDown     = padState.DPad.Down == ButtonState.Pressed || (IsKeyDown(Keys.OemCloseBrackets) && !IsKeyDown(Keys.RightControl));

            if (HasFlag(state, State.Enable) && !HasFlag(state, State.Record) && !rightTrigger)
            {
                if (HasFlag(nextState, State.FrameStep))
                {
                    state     |= State.FrameStep;
                    nextState &= ~State.FrameStep;
                }

                if (!dpadUp && frameStepWasDpadUp)
                {
                    if (!HasFlag(state, State.FrameStep))
                    {
                        state     |= State.FrameStep;
                        nextState &= ~State.FrameStep;
                    }
                    else
                    {
                        state     &= ~State.FrameStep;
                        nextState |= State.FrameStep;
                        controller.ReloadPlayback();
                    }
                    FrameStepCooldown = 60;
                }
                else if (!dpadDown && frameStepWasDpadDown)
                {
                    state     &= ~State.FrameStep;
                    nextState &= ~State.FrameStep;
                }
                else if (HasFlag(state, State.FrameStep) && (padState.ThumbSticks.Right.X > 0.1 || (IsKeyDown(Keys.RightShift) && IsKeyDown(Keys.RightControl))))
                {
                    float rStick = padState.ThumbSticks.Right.X;
                    if (rStick < 0.1f)
                    {
                        rStick = 0.5f;
                    }
                    FrameStepCooldown -= (int)((rStick - 0.1) * 80f);
                    if (FrameStepCooldown <= 0)
                    {
                        FrameStepCooldown = 60;
                        state            &= ~State.FrameStep;
                        nextState        |= State.FrameStep;
                        controller.ReloadPlayback();
                    }
                }
            }

            frameStepWasDpadUp   = dpadUp;
            frameStepWasDpadDown = dpadDown;
        }
コード例 #3
0
ファイル: Manager.cs プロジェクト: ShootMe/TeslagradTAS
 private static void ReloadRun()
 {
     controller.ReloadPlayback();
 }
コード例 #4
0
        private static void FrameStepping()
        {
            bool dpadUp    = padState.DPad.Up == ButtonState.Pressed || (IsKeyDown(Keys.OemCloseBrackets) && !IsKeyDown(Keys.RightControl));
            bool dpadDown  = padState.DPad.Down == ButtonState.Pressed || (IsKeyDown(Keys.OemOpenBrackets) && !IsKeyDown(Keys.RightControl));
            bool leftStick = padState.Buttons.LeftStick == ButtonState.Pressed;

            if (HasFlag(state, State.Enable))
            {
                if (HasFlag(nextState, State.FrameStep))
                {
                    state     |= State.FrameStep;
                    nextState &= ~State.FrameStep;
                }

                if (!dpadUp && frameStepWasDpadUp)
                {
                    if (!HasFlag(state, State.FrameStep))
                    {
                        state     |= State.FrameStep;
                        nextState &= ~State.FrameStep;
                    }
                    else
                    {
                        state     &= ~State.FrameStep;
                        nextState |= State.FrameStep;
                        controller.ReloadPlayback();
                    }
                    FrameStepCooldown = 60;
                }
                else if (!dpadDown && frameStepWasDpadDown)
                {
                    StepBack();
                }
                else if (!leftStick && frameStepWasLeftStick)
                {
                    state     &= ~State.FrameStep;
                    nextState &= ~State.FrameStep;
                    controller.ReloadPlayback();
                }
                else if (HasFlag(state, State.FrameStep) && (padState.ThumbSticks.Right.X > 0.1 || (IsKeyDown(Keys.RightShift) && IsKeyDown(Keys.RightControl))))
                {
                    float rStick = padState.ThumbSticks.Right.X;
                    if (rStick < 0.1f)
                    {
                        rStick = 0.5f;
                    }
                    FrameStepCooldown -= (int)((rStick - 0.1) * 80f);
                    if (FrameStepCooldown <= 0)
                    {
                        FrameStepCooldown = 60;
                        state            &= ~State.FrameStep;
                        nextState        |= State.FrameStep;
                        controller.ReloadPlayback();
                    }
                }
                else if (HasFlag(state, State.FrameStep) && padState.ThumbSticks.Right.X < -0.1)
                {
                    float rStick = padState.ThumbSticks.Right.X;
                    FrameStepCooldown += (int)((rStick + 0.1) * 80f);
                    if (FrameStepCooldown <= 0)
                    {
                        FrameStepCooldown = 60;
                        StepBack();
                    }
                }
            }

            frameStepWasDpadUp    = dpadUp;
            frameStepWasDpadDown  = dpadDown;
            frameStepWasLeftStick = leftStick;
        }