private void LockDPadX(ControllerInputBinding ControllerInputX) { int ToggleButtonID = ControllerInputX.ButtonID; bool ToggleLoop = true; while (ControllerDPad[0] == ToggleButtonID) { GetControllerState(); Thread.Sleep(15); } // Wait until user releases button while (ToggleLoop) { ExecuteAction((int)ControllerInputX.ActionToPerform); GetControllerState(); if (ControllerDPad[0] == ToggleButtonID) { ToggleLoop = false; } // Poll for re-press Thread.Sleep(15); } while (ControllerDPad[0] == ToggleButtonID) { GetControllerState(); Thread.Sleep(15); } // Wait until user releases button DPADButtonsIgnoreID.RemoveAll(FindToggleButton => FindToggleButton == ToggleButtonID); }
public void LockButtonX(ControllerInputBinding ControllerInputX, Joystick PlayerControllerX) { int ToggleButtonID = ControllerInputX.ButtonID; bool ToggleLoop = true; do { { GetControllerState(PlayerControllerX); Thread.Sleep(15); } } while (ControllerButtons[ToggleButtonID]); // Wait until user releases button do { ExecuteAction((int)ControllerInputX.ActionToPerform); GetControllerState(PlayerControllerX); if (ControllerButtons[ToggleButtonID] == true) { ToggleLoop = false; } // Poll for re-press Thread.Sleep(15); }while (ToggleLoop); do { GetControllerState(PlayerControllerX); Thread.Sleep(15); } while (ControllerButtons[ToggleButtonID]); // Wait until user releases button ButtonsIgnoreID.RemoveAll(FindToggleButton => FindToggleButton == ToggleButtonID); }