public static GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode) { Controller controller = GamePad.GetController(playerIndex); if (!controller.IsConnected) { return(new GamePadState()); } Gamepad gamepad = controller.GetState().Gamepad; GamePadThumbSticks gamePadThumbSticks1; // ISSUE: explicit reference operation // ISSUE: variable of a reference type GamePadThumbSticks& local1 = @gamePadThumbSticks1; Vector2 vector2_1 = GamePad.ConvertThumbStick(gamepad.LeftThumbX, gamepad.LeftThumbY, (short)7849, deadZoneMode); Vector2 vector2_2 = GamePad.ConvertThumbStick(gamepad.RightThumbX, gamepad.RightThumbY, (short)8689, deadZoneMode); Vector2 leftPosition = vector2_1; Vector2 rightPosition = vector2_2;
public static GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode = GamePadDeadZone.IndependentAxes) { Controller controller = GamePad.GetController(playerIndex); if (!controller.IsConnected) { return(new GamePadState()); } Gamepad gamepad = controller.GetState().Gamepad; GamePadThumbSticks gamePadThumbSticks1 = new GamePadThumbSticks(GamePad.ConvertThumbStick(gamepad.LeftThumbX, gamepad.LeftThumbY, (short)7849, deadZoneMode), GamePad.ConvertThumbStick(gamepad.RightThumbX, gamepad.RightThumbY, (short)8689, deadZoneMode)); GamePadTriggers gamePadTriggers1 = new GamePadTriggers((float)gamepad.LeftTrigger / (float)byte.MaxValue, (float)gamepad.RightTrigger / (float)byte.MaxValue); GamePadState gamePadState; // ISSUE: explicit reference operation // ISSUE: variable of a reference type GamePadState& local = @gamePadState; GamePadThumbSticks gamePadThumbSticks2 = gamePadThumbSticks1; GamePadTriggers gamePadTriggers2 = gamePadTriggers1; GamePadButtons gamePadButtons = GamePad.ConvertToButtons(gamepad.Buttons, gamepad.LeftThumbX, gamepad.LeftThumbY, gamepad.RightThumbX, gamepad.RightThumbY, gamepad.LeftTrigger, gamepad.RightTrigger); GamePadDPad gamePadDpad = GamePad.ConvertToGamePadDPad(gamepad.Buttons); GamePadThumbSticks thumbSticks = gamePadThumbSticks2; GamePadTriggers triggers = gamePadTriggers2; GamePadButtons buttons = gamePadButtons; GamePadDPad dPad = gamePadDpad;
public static GamePadCapabilities GetCapabilities(PlayerIndex playerIndex) { Controller controller = GamePad.GetController(playerIndex); if (!controller.IsConnected) { return(new GamePadCapabilities()); } SharpDX.XInput.Capabilities capabilities = controller.GetCapabilities(DeviceQueryType.Any); GamePadCapabilities gamePadCapabilities = new GamePadCapabilities(); switch (capabilities.SubType) { case DeviceSubType.Gamepad: gamePadCapabilities.GamePadType = GamePadType.GamePad; break; case DeviceSubType.Wheel: gamePadCapabilities.GamePadType = GamePadType.Wheel; break; case DeviceSubType.ArcadeStick: gamePadCapabilities.GamePadType = GamePadType.ArcadeStick; break; case DeviceSubType.DancePad: gamePadCapabilities.GamePadType = GamePadType.DancePad; break; case DeviceSubType.Guitar: gamePadCapabilities.GamePadType = GamePadType.Guitar; break; case DeviceSubType.DrumKit: gamePadCapabilities.GamePadType = GamePadType.DrumKit; break; default: gamePadCapabilities.GamePadType = GamePadType.Unknown; break; } Gamepad gamepad = capabilities.Gamepad; GamepadButtonFlags gamepadButtonFlags = gamepad.Buttons; gamePadCapabilities.HasAButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.A); gamePadCapabilities.HasBackButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.Back); gamePadCapabilities.HasBButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.B); gamePadCapabilities.HasBigButton = false; gamePadCapabilities.HasDPadDownButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.DPadDown); gamePadCapabilities.HasDPadLeftButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.DPadLeft); gamePadCapabilities.HasDPadRightButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.DPadLeft); gamePadCapabilities.HasDPadUpButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.DPadUp); gamePadCapabilities.HasLeftShoulderButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.LeftShoulder); gamePadCapabilities.HasLeftStickButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.LeftThumb); gamePadCapabilities.HasRightShoulderButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.RightShoulder); gamePadCapabilities.HasRightStickButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.RightThumb); gamePadCapabilities.HasStartButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.Start); gamePadCapabilities.HasXButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.X); gamePadCapabilities.HasYButton = gamepadButtonFlags.HasFlag((Enum)GamepadButtonFlags.Y); gamePadCapabilities.HasRightTrigger = (int)gamepad.LeftTrigger > 0; gamePadCapabilities.HasRightXThumbStick = (int)gamepad.RightThumbX != 0; gamePadCapabilities.HasRightYThumbStick = (int)gamepad.RightThumbY != 0; gamePadCapabilities.HasLeftTrigger = (int)gamepad.LeftTrigger > 0; gamePadCapabilities.HasLeftXThumbStick = (int)gamepad.LeftThumbX != 0; gamePadCapabilities.HasLeftYThumbStick = (int)gamepad.LeftThumbY != 0; gamePadCapabilities.HasLeftVibrationMotor = (int)capabilities.Vibration.LeftMotorSpeed > 0; gamePadCapabilities.HasRightVibrationMotor = (int)capabilities.Vibration.RightMotorSpeed > 0; gamePadCapabilities.IsConnected = controller.IsConnected; gamePadCapabilities.HasVoiceSupport = capabilities.Flags.HasFlag((Enum)CapabilityFlags.VoiceSupported); return(gamePadCapabilities); }