From d65f2c6cd98213e078011d0c66dbe3f46745f5a0 Mon Sep 17 00:00:00 2001 From: Chivalrik Date: Sun, 2 May 2021 12:21:49 +0200 Subject: [PATCH] refactor: Use a constant for the gamepad button deletion mask Add Flags-Attribute to GamepadButtons enums. --- Dalamud/Game/ClientState/GamepadButtons.cs | 10 +++++++++- Dalamud/Game/ClientState/GamepadState.cs | 13 +++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Dalamud/Game/ClientState/GamepadButtons.cs b/Dalamud/Game/ClientState/GamepadButtons.cs index e1db685e0..80a745d53 100644 --- a/Dalamud/Game/ClientState/GamepadButtons.cs +++ b/Dalamud/Game/ClientState/GamepadButtons.cs @@ -1,10 +1,18 @@ -namespace Dalamud.Game.ClientState +using System; + +namespace Dalamud.Game.ClientState { /// /// Bitmask of the Button ushort used by the game. /// + [Flags] public enum GamepadButtons : ushort { + /// + /// No buttons pressed. + /// + None = 0, + /// /// Digipad up. /// diff --git a/Dalamud/Game/ClientState/GamepadState.cs b/Dalamud/Game/ClientState/GamepadState.cs index 7e04a7a71..b9711d093 100644 --- a/Dalamud/Game/ClientState/GamepadState.cs +++ b/Dalamud/Game/ClientState/GamepadState.cs @@ -228,12 +228,13 @@ namespace Dalamud.Game.ClientState // `ButtonPressed` while ImGuiConfigFlags.NavEnableGamepad is set. // This is debatable. // ImGui itself does not care either way as it uses the Raw values and does its own state handling. - input->ButtonsRaw &= (ushort)~GamepadButtons.L2; - input->ButtonsRaw &= (ushort)~GamepadButtons.R2; - input->ButtonsRaw &= (ushort)~GamepadButtons.DpadDown; - input->ButtonsRaw &= (ushort)~GamepadButtons.DpadLeft; - input->ButtonsRaw &= (ushort)~GamepadButtons.DpadUp; - input->ButtonsRaw &= (ushort)~GamepadButtons.DpadRight; + const ushort deletionMask = (ushort)(~GamepadButtons.L2 + & ~GamepadButtons.R2 + & ~GamepadButtons.DpadDown + & ~GamepadButtons.DpadLeft + & ~GamepadButtons.DpadUp + & ~GamepadButtons.DpadRight); + input->ButtonsRaw &= deletionMask; input->ButtonsPressed = 0; input->ButtonsReleased = 0; input->ButtonsRepeat = 0;