diff --git a/Dalamud/Game/ClientState/ClientState.cs b/Dalamud/Game/ClientState/ClientState.cs
index b9e40ccd7..0df4c1f69 100644
--- a/Dalamud/Game/ClientState/ClientState.cs
+++ b/Dalamud/Game/ClientState/ClientState.cs
@@ -1,14 +1,16 @@
using System;
using System.ComponentModel;
+using System.Linq;
using System.Runtime.InteropServices;
using Dalamud.Game.ClientState.Actors;
using Dalamud.Game.ClientState.Actors.Types;
+using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Fates;
-using Dalamud.Game.Internal;
+using Dalamud.Game.ClientState.GamePad;
+using Dalamud.Game.ClientState.Keys;
using Dalamud.Hooking;
using JetBrains.Annotations;
-using Lumina.Excel.GeneratedSheets;
using Serilog;
namespace Dalamud.Game.ClientState
@@ -93,7 +95,7 @@ namespace Dalamud.Game.ClientState
///
/// Event that gets fired when a duty is ready.
///
- public event EventHandler CfPop;
+ public event EventHandler CfPop;
///
/// Gets the table of all present actors.
@@ -194,7 +196,7 @@ namespace Dalamud.Game.ClientState
return this.setupTerritoryTypeHook.Original(manager, terriType);
}
- private void NetworkHandlersOnCfPop(object sender, ContentFinderCondition e)
+ private void NetworkHandlersOnCfPop(object sender, Lumina.Excel.GeneratedSheets.ContentFinderCondition e)
{
this.CfPop?.Invoke(this, e);
}
diff --git a/Dalamud/Game/ClientState/Condition.cs b/Dalamud/Game/ClientState/Conditions/Condition.cs
similarity index 94%
rename from Dalamud/Game/ClientState/Condition.cs
rename to Dalamud/Game/ClientState/Conditions/Condition.cs
index b416c4df4..5a4322532 100644
--- a/Dalamud/Game/ClientState/Condition.cs
+++ b/Dalamud/Game/ClientState/Conditions/Condition.cs
@@ -1,6 +1,6 @@
using System;
-namespace Dalamud.Game.ClientState
+namespace Dalamud.Game.ClientState.Conditions
{
///
/// Provides access to conditions (generally player state). You can check whether a player is in combat, mounted, etc.
@@ -37,7 +37,7 @@ namespace Dalamud.Game.ClientState
{
var idx = (int)flag;
- if (idx > MaxConditionEntries || idx < 0)
+ if (idx < 0 || idx >= MaxConditionEntries)
return false;
return *(bool*)(this.ConditionArrayBase + idx);
diff --git a/Dalamud/Game/ClientState/ConditionFlag.cs b/Dalamud/Game/ClientState/Conditions/ConditionFlag.cs
similarity index 99%
rename from Dalamud/Game/ClientState/ConditionFlag.cs
rename to Dalamud/Game/ClientState/Conditions/ConditionFlag.cs
index dc3d72d61..75c295ed0 100644
--- a/Dalamud/Game/ClientState/ConditionFlag.cs
+++ b/Dalamud/Game/ClientState/Conditions/ConditionFlag.cs
@@ -1,4 +1,4 @@
-namespace Dalamud.Game.ClientState
+namespace Dalamud.Game.ClientState.Conditions
{
///
/// Possible state flags (or conditions as they're called internally) that can be set on the local client.
diff --git a/Dalamud/Game/ClientState/GamepadButtons.cs b/Dalamud/Game/ClientState/GamePad/GamepadButtons.cs
similarity index 97%
rename from Dalamud/Game/ClientState/GamepadButtons.cs
rename to Dalamud/Game/ClientState/GamePad/GamepadButtons.cs
index 80a745d53..7813803c8 100644
--- a/Dalamud/Game/ClientState/GamepadButtons.cs
+++ b/Dalamud/Game/ClientState/GamePad/GamepadButtons.cs
@@ -1,6 +1,6 @@
-using System;
+using System;
-namespace Dalamud.Game.ClientState
+namespace Dalamud.Game.ClientState.GamePad
{
///
/// Bitmask of the Button ushort used by the game.
diff --git a/Dalamud/Game/ClientState/Structs/GamepadInput.cs b/Dalamud/Game/ClientState/GamePad/GamepadInput.cs
similarity index 98%
rename from Dalamud/Game/ClientState/Structs/GamepadInput.cs
rename to Dalamud/Game/ClientState/GamePad/GamepadInput.cs
index df80b0ef4..d6d46a0cc 100644
--- a/Dalamud/Game/ClientState/Structs/GamepadInput.cs
+++ b/Dalamud/Game/ClientState/GamePad/GamepadInput.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace Dalamud.Game.ClientState.Structs
+namespace Dalamud.Game.ClientState.GamePad
{
///
/// Struct which gets populated by polling the gamepads.
diff --git a/Dalamud/Game/ClientState/GamepadState.cs b/Dalamud/Game/ClientState/GamePad/GamepadState.cs
similarity index 97%
rename from Dalamud/Game/ClientState/GamepadState.cs
rename to Dalamud/Game/ClientState/GamePad/GamepadState.cs
index 2d84fdb83..8759673b2 100644
--- a/Dalamud/Game/ClientState/GamepadState.cs
+++ b/Dalamud/Game/ClientState/GamePad/GamepadState.cs
@@ -1,11 +1,10 @@
using System;
-using Dalamud.Game.ClientState.Structs;
using Dalamud.Hooking;
using ImGuiNET;
using Serilog;
-namespace Dalamud.Game.ClientState
+namespace Dalamud.Game.ClientState.GamePad
{
///
/// Exposes the game gamepad state to dalamud.
@@ -24,7 +23,7 @@ namespace Dalamud.Game.ClientState
private int rightStickY;
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// Resolver knowing the pointer to the GamepadPoll function.
public GamepadState(ClientStateAddressResolver resolver)
@@ -43,12 +42,10 @@ namespace Dalamud.Game.ClientState
private delegate int ControllerPoll(IntPtr controllerInput);
-#if DEBUG
///
/// Gets the pointer to the current instance of the GamepadInput struct.
///
- public IntPtr GamepadInput { get; private set; }
-#endif
+ public IntPtr GamepadInputAddress { get; private set; }
///
/// Gets the state of the left analogue stick in the left direction between 0 (not tilted) and 1 (max tilt).
@@ -189,9 +186,7 @@ namespace Dalamud.Game.ClientState
var original = this.gamepadPoll.Original(gamepadInput);
try
{
-#if DEBUG
- this.GamepadInput = gamepadInput;
-#endif
+ this.GamepadInputAddress = gamepadInput;
var input = (GamepadInput*)gamepadInput;
this.leftStickX = input->LeftStickX;
this.leftStickY = input->LeftStickY;
diff --git a/Dalamud/Game/ClientState/KeyState.cs b/Dalamud/Game/ClientState/Keys/KeyState.cs
similarity index 87%
rename from Dalamud/Game/ClientState/KeyState.cs
rename to Dalamud/Game/ClientState/Keys/KeyState.cs
index e17d2cf50..b9d21ef2e 100644
--- a/Dalamud/Game/ClientState/KeyState.cs
+++ b/Dalamud/Game/ClientState/Keys/KeyState.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
using Serilog;
-namespace Dalamud.Game.ClientState
+namespace Dalamud.Game.ClientState.Keys
{
///
/// Wrapper around the game keystate buffer, which contains the pressed state for all keyboard keys, indexed by virtual vkCode.
@@ -52,6 +52,13 @@ namespace Dalamud.Game.ClientState
}
}
+ ///
+ /// Get or set the keypressed state for a given VirtualKey enum.
+ ///
+ /// The virtual key to change.
+ /// Whether the specified key is currently pressed.
+ public bool this[VirtualKey vk] => this[(int)vk];
+
///
/// Clears the pressed state for all keys.
///
diff --git a/Dalamud/Game/ClientState/Keys/VirtualKey.cs b/Dalamud/Game/ClientState/Keys/VirtualKey.cs
new file mode 100644
index 000000000..ab9436822
--- /dev/null
+++ b/Dalamud/Game/ClientState/Keys/VirtualKey.cs
@@ -0,0 +1,1044 @@
+namespace Dalamud.Game.ClientState.Keys
+{
+ ///
+ /// Virtual-key codes.
+ ///
+ ///
+ /// Defined in winuser.h from Windows SDK v6.1.
+ ///
+ public enum VirtualKey : ushort
+ {
+ ///
+ /// This is an addendum to use on functions in which you have to pass a zero value to represent no key code.
+ ///
+ NO_KEY = 0,
+
+ ///
+ /// Left mouse button.
+ ///
+ LBUTTON = 1,
+
+ ///
+ /// Right mouse button.
+ ///
+ RBUTTON = 2,
+
+ ///
+ /// Control-break processing.
+ ///
+ CANCEL = 3,
+
+ ///
+ /// Middle mouse button (three-button mouse).
+ ///
+ ///
+ /// NOT contiguous with L and R buttons.
+ ///
+ MBUTTON = 4,
+
+ ///
+ /// X1 mouse button.
+ ///
+ ///
+ /// NOT contiguous with L and R buttons.
+ ///
+ XBUTTON1 = 5,
+
+ ///
+ /// X2 mouse button.
+ ///
+ ///
+ /// NOT contiguous with L and R buttons.
+ ///
+ XBUTTON2 = 6,
+
+ ///
+ /// BACKSPACE key.
+ ///
+ BACK = 8,
+
+ ///
+ /// TAB key.
+ ///
+ TAB = 9,
+
+ ///
+ /// CLEAR key.
+ ///
+ CLEAR = 12,
+
+ ///
+ /// RETURN key.
+ ///
+ RETURN = 13,
+
+ ///
+ /// SHIFT key.
+ ///
+ SHIFT = 16,
+
+ ///
+ /// CONTROL key.
+ ///
+ CONTROL = 17,
+
+ ///
+ /// ALT key.
+ ///
+ MENU = 18,
+
+ ///
+ /// PAUSE key.
+ ///
+ PAUSE = 19,
+
+ ///
+ /// CAPS LOCK key.
+ ///
+ CAPITAL = 20,
+
+ ///
+ /// IME Kana mode.
+ ///
+ KANA = 21,
+
+ ///
+ /// IME Hanguel mode (maintained for compatibility; use User32.VirtualKey.HANGUL).
+ ///
+ HANGEUL = KANA,
+
+ ///
+ /// IME Hangul mode.
+ ///
+ HANGUL = KANA,
+
+ ///
+ /// IME Junja mode.
+ ///
+ JUNJA = 23,
+
+ ///
+ /// IME final mode.
+ ///
+ FINAL = 24,
+
+ ///
+ /// IME Hanja mode.
+ ///
+ HANJA = 25,
+
+ ///
+ /// IME Kanji mode.
+ ///
+ KANJI = HANJA,
+
+ ///
+ /// ESC key.
+ ///
+ ESCAPE = 27,
+
+ ///
+ /// IME convert.
+ ///
+ CONVERT = 28,
+
+ ///
+ /// IME nonconvert.
+ ///
+ NONCONVERT = 29,
+
+ ///
+ /// IME accept.
+ ///
+ ACCEPT = 30,
+
+ ///
+ /// IME mode change request.
+ ///
+ MODECHANGE = 31,
+
+ ///
+ /// SPACEBAR.
+ ///
+ SPACE = 32,
+
+ ///
+ /// PAGE UP key.
+ ///
+ PRIOR = 33,
+
+ ///
+ /// PAGE DOWN key.
+ ///
+ NEXT = 34,
+
+ ///
+ /// END key.
+ ///
+ END = 35,
+
+ ///
+ /// HOME key.
+ ///
+ HOME = 36,
+
+ ///
+ /// LEFT ARROW key.
+ ///
+ LEFT = 37,
+
+ ///
+ /// UP ARROW key.
+ ///
+ UP = 38,
+
+ ///
+ /// RIGHT ARROW key.
+ ///
+ RIGHT = 39,
+
+ ///
+ /// DOWN ARROW key.
+ ///
+ DOWN = 40,
+
+ ///
+ /// SELECT key.
+ ///
+ SELECT = 41,
+
+ ///
+ /// PRINT key.
+ ///
+ PRINT = 42,
+
+ ///
+ /// EXECUTE key.
+ ///
+ EXECUTE = 43,
+
+ ///
+ /// PRINT SCREEN key.
+ ///
+ SNAPSHOT = 44,
+
+ ///
+ /// INS key.
+ ///
+ INSERT = 45,
+
+ ///
+ /// DEL key.
+ ///
+ DELETE = 46,
+
+ ///
+ /// HELP key.
+ ///
+ HELP = 47,
+
+ ///
+ /// 0 key.
+ ///
+ KEY_0 = 48,
+
+ ///
+ /// 1 key.
+ ///
+ KEY_1 = 49,
+
+ ///
+ /// 2 key.
+ ///
+ KEY_2 = 50,
+
+ ///
+ /// 3 key.
+ ///
+ KEY_3 = 51,
+
+ ///
+ /// 4 key.
+ ///
+ KEY_4 = 52,
+
+ ///
+ /// 5 key.
+ ///
+ KEY_5 = 53,
+
+ ///
+ /// 6 key.
+ ///
+ KEY_6 = 54,
+
+ ///
+ /// 7 key.
+ ///
+ KEY_7 = 55,
+
+ ///
+ /// 8 key.
+ ///
+ KEY_8 = 56,
+
+ ///
+ /// 9 key.
+ ///
+ KEY_9 = 57,
+
+ ///
+ /// A key.
+ ///
+ A = 65,
+
+ ///
+ /// B key.
+ ///
+ B = 66,
+
+ ///
+ /// C key.
+ ///
+ C = 67,
+
+ ///
+ /// D key.
+ ///
+ D = 68,
+
+ ///
+ /// E key.
+ ///
+ E = 69,
+
+ ///
+ /// F key.
+ ///
+ F = 70,
+
+ ///
+ /// G key.
+ ///
+ G = 71,
+
+ ///
+ /// H key.
+ ///
+ H = 72,
+
+ ///
+ /// I key.
+ ///
+ I = 73,
+
+ ///
+ /// J key.
+ ///
+ J = 74,
+
+ ///
+ /// K key.
+ ///
+ K = 75,
+
+ ///
+ /// L key.
+ ///
+ L = 76,
+
+ ///
+ /// M key.
+ ///
+ M = 77,
+
+ ///
+ /// N key.
+ ///
+ N = 78,
+
+ ///
+ /// O key.
+ ///
+ O = 79,
+
+ ///
+ /// P key.
+ ///
+ P = 80,
+
+ ///
+ /// Q key.
+ ///
+ Q = 81,
+
+ ///
+ /// R key.
+ ///
+ R = 82,
+
+ ///
+ /// S key.
+ ///
+ S = 83,
+
+ ///
+ /// T key.
+ ///
+ T = 84,
+
+ ///
+ /// U key.
+ ///
+ U = 85,
+
+ ///
+ /// V key.
+ ///
+ V = 86,
+
+ ///
+ /// W key.
+ ///
+ W = 87,
+
+ ///
+ /// X key.
+ ///
+ X = 88,
+
+ ///
+ /// Y key.
+ ///
+ Y = 89,
+
+ ///
+ /// Z key.
+ ///
+ Z = 90,
+
+ ///
+ /// Left Windows key (Natural keyboard).
+ ///
+ LWIN = 91,
+
+ ///
+ /// Right Windows key (Natural keyboard).
+ ///
+ RWIN = 92,
+
+ ///
+ /// Applications key (Natural keyboard).
+ ///
+ APPS = 93,
+
+ ///
+ /// Computer Sleep key.
+ ///
+ SLEEP = 95,
+
+ ///
+ /// Numeric keypad 0 key.
+ ///
+ NUMPAD0 = 96,
+
+ ///
+ /// Numeric keypad 1 key.
+ ///
+ NUMPAD1 = 97,
+
+ ///
+ /// Numeric keypad 2 key.
+ ///
+ NUMPAD2 = 98,
+
+ ///
+ /// Numeric keypad 3 key.
+ ///
+ NUMPAD3 = 99,
+
+ ///
+ /// Numeric keypad 4 key.
+ ///
+ NUMPAD4 = 100,
+
+ ///
+ /// Numeric keypad 5 key.
+ ///
+ NUMPAD5 = 101,
+
+ ///
+ /// Numeric keypad 6 key.
+ ///
+ NUMPAD6 = 102,
+
+ ///
+ /// Numeric keypad 7 key.
+ ///
+ NUMPAD7 = 103,
+
+ ///
+ /// Numeric keypad 8 key.
+ ///
+ NUMPAD8 = 104,
+
+ ///
+ /// Numeric keypad 9 key.
+ ///
+ NUMPAD9 = 105,
+
+ ///
+ /// Multiply key.
+ ///
+ MULTIPLY = 106,
+
+ ///
+ /// Add key.
+ ///
+ ADD = 107,
+
+ ///
+ /// Separator key.
+ ///
+ SEPARATOR = 108,
+
+ ///
+ /// Subtract key.
+ ///
+ SUBTRACT = 109,
+
+ ///
+ /// Decimal key.
+ ///
+ DECIMAL = 110,
+
+ ///
+ /// Divide key.
+ ///
+ DIVIDE = 111,
+
+ ///
+ /// F1 Key.
+ ///
+ F1 = 112,
+
+ ///
+ /// F2 Key.
+ ///
+ F2 = 113,
+
+ ///
+ /// F3 Key.
+ ///
+ F3 = 114,
+
+ ///
+ /// F4 Key.
+ ///
+ F4 = 115,
+
+ ///
+ /// F5 Key.
+ ///
+ F5 = 116,
+
+ ///
+ /// F6 Key.
+ ///
+ F6 = 117,
+
+ ///
+ /// F7 Key.
+ ///
+ F7 = 118,
+
+ ///
+ /// F8 Key.
+ ///
+ F8 = 119,
+
+ ///
+ /// F9 Key.
+ ///
+ F9 = 120,
+
+ ///
+ /// F10 Key.
+ ///
+ F10 = 121,
+
+ ///
+ /// F11 Key.
+ ///
+ F11 = 122,
+
+ ///
+ /// F12 Key.
+ ///
+ F12 = 123,
+
+ ///
+ /// F13 Key.
+ ///
+ F13 = 124,
+
+ ///
+ /// F14 Key.
+ ///
+ F14 = 125,
+
+ ///
+ /// F15 Key.
+ ///
+ F15 = 126,
+
+ ///
+ /// F16 Key.
+ ///
+ F16 = 127,
+
+ ///
+ /// F17 Key.
+ ///
+ F17 = 128,
+
+ ///
+ /// F18 Key.
+ ///
+ F18 = 129,
+
+ ///
+ /// F19 Key.
+ ///
+ F19 = 130,
+
+ ///
+ /// F20 Key.
+ ///
+ F20 = 131,
+
+ ///
+ /// F21 Key.
+ ///
+ F21 = 132,
+
+ ///
+ /// F22 Key.
+ ///
+ F22 = 133,
+
+ ///
+ /// F23 Key.
+ ///
+ F23 = 134,
+
+ ///
+ /// F24 Key.
+ ///
+ F24 = 135,
+
+ ///
+ /// NUM LOCK key.
+ ///
+ NUMLOCK = 144,
+
+ ///
+ /// SCROLL LOCK key.
+ ///
+ SCROLL = 145,
+
+ ///
+ /// '=' key on numpad (NEC PC-9800 kbd definitions).
+ ///
+ OEM_NEC_EQUAL = 146,
+
+ ///
+ /// 'Dictionary' key (Fujitsu/OASYS kbd definitions).
+ ///
+ OEM_FJ_JISHO = OEM_NEC_EQUAL,
+
+ ///
+ /// 'Unregister word' key (Fujitsu/OASYS kbd definitions).
+ ///
+ OEM_FJ_MASSHOU = 147,
+
+ ///
+ /// 'Register word' key (Fujitsu/OASYS kbd definitions).
+ ///
+ OEM_FJ_TOUROKU = 148,
+
+ ///
+ /// 'Left OYAYUBI' key (Fujitsu/OASYS kbd definitions).
+ ///
+ OEM_FJ_LOYA = 149,
+
+ ///
+ /// 'Right OYAYUBI' key (Fujitsu/OASYS kbd definitions).
+ ///
+ OEM_FJ_ROYA = 150,
+
+ ///
+ /// Left SHIFT key.
+ ///
+ ///
+ /// Used only as parameters to User32.GetAsyncKeyState and User32.GetKeyState. No other API or message will distinguish left and right keys in this way.
+ ///
+ LSHIFT = 160,
+
+ ///
+ /// Right SHIFT key.
+ ///
+ RSHIFT = 161,
+
+ ///
+ /// Left CONTROL key.
+ ///
+ LCONTROL = 162,
+
+ ///
+ /// Right CONTROL key.
+ ///
+ RCONTROL = 163,
+
+ ///
+ /// Left MENU key.
+ ///
+ LMENU = 164,
+
+ ///
+ /// Right MENU key.
+ ///
+ RMENU = 165,
+
+ ///
+ /// Browser Back key.
+ ///
+ BROWSER_BACK = 166,
+
+ ///
+ /// Browser Forward key.
+ ///
+ BROWSER_FORWARD = 167,
+
+ ///
+ /// Browser Refresh key.
+ ///
+ BROWSER_REFRESH = 168,
+
+ ///
+ /// Browser Stop key.
+ ///
+ BROWSER_STOP = 169,
+
+ ///
+ /// Browser Search key.
+ ///
+ BROWSER_SEARCH = 170,
+
+ ///
+ /// Browser Favorites key.
+ ///
+ BROWSER_FAVORITES = 171,
+
+ ///
+ /// Browser Start and Home key.
+ ///
+ BROWSER_HOME = 172,
+
+ ///
+ /// Volume Mute key.
+ ///
+ VOLUME_MUTE = 173,
+
+ ///
+ /// Volume Down key.
+ ///
+ VOLUME_DOWN = 174,
+
+ ///
+ /// Volume Up key.
+ ///
+ VOLUME_UP = 175,
+
+ ///
+ /// Next Track key.
+ ///
+ MEDIA_NEXT_TRACK = 176,
+
+ ///
+ /// Previous Track key.
+ ///
+ MEDIA_PREV_TRACK = 177,
+
+ ///
+ /// Stop Media key.
+ ///
+ MEDIA_STOP = 178,
+
+ ///
+ /// Play/Pause Media key.
+ ///
+ MEDIA_PLAY_PAUSE = 179,
+
+ ///
+ /// Start Mail key.
+ ///
+ LAUNCH_MAIL = 180,
+
+ ///
+ /// Select Media key.
+ ///
+ LAUNCH_MEDIA_SELECT = 181,
+
+ ///
+ /// Start Application 1 key.
+ ///
+ LAUNCH_APP1 = 182,
+
+ ///
+ /// Start Application 2 key.
+ ///
+ LAUNCH_APP2 = 183,
+
+ ///
+ /// Used for miscellaneous characters; it can vary by keyboard..
+ ///
+ ///
+ /// For the US standard keyboard, the ';:' key.
+ ///
+ OEM_1 = 186,
+
+ ///
+ /// For any country/region, the '+' key.
+ ///
+ OEM_PLUS = 187,
+
+ ///
+ /// For any country/region, the ',' key.
+ ///
+ OEM_COMMA = 188,
+
+ ///
+ /// For any country/region, the '-' key.
+ ///
+ OEM_MINUS = 189,
+
+ ///
+ /// For any country/region, the '.' key.
+ ///
+ OEM_PERIOD = 190,
+
+ ///
+ /// Used for miscellaneous characters; it can vary by keyboard..
+ ///
+ ///
+ /// For the US standard keyboard, the '/?' key.
+ ///
+ OEM_2 = 191,
+
+ ///
+ /// Used for miscellaneous characters; it can vary by keyboard..
+ ///
+ ///
+ /// For the US standard keyboard, the '`~' key.
+ ///
+ OEM_3 = 192,
+
+ ///
+ /// Used for miscellaneous characters; it can vary by keyboard..
+ ///
+ ///
+ /// For the US standard keyboard, the '[{' key.
+ ///
+ OEM_4 = 219,
+
+ ///
+ /// Used for miscellaneous characters; it can vary by keyboard..
+ ///
+ ///
+ /// For the US standard keyboard, the '\|' key.
+ ///
+ OEM_5 = 220,
+
+ ///
+ /// Used for miscellaneous characters; it can vary by keyboard..
+ ///
+ ///
+ /// For the US standard keyboard, the ']}' key.
+ ///
+ OEM_6 = 221,
+
+ ///
+ /// Used for miscellaneous characters; it can vary by keyboard..
+ ///
+ ///
+ /// For the US standard keyboard, the 'single-quote/double-quote' (''"') key.
+ ///
+ OEM_7 = 222,
+
+ ///
+ /// Used for miscellaneous characters; it can vary by keyboard..
+ ///
+ OEM_8 = 223,
+
+ ///
+ /// OEM specific.
+ ///
+ ///
+ /// 'AX' key on Japanese AX kbd.
+ ///
+ OEM_AX = 225,
+
+ ///
+ /// Either the angle bracket ("<>") key or the backslash ("\|") key on the RT 102-key keyboard.
+ ///
+ OEM_102 = 226,
+
+ ///
+ /// OEM specific.
+ ///
+ ///
+ /// Help key on ICO.
+ ///
+ ICO_HELP = 227,
+
+ ///
+ /// OEM specific.
+ ///
+ ///
+ /// 00 key on ICO.
+ ///
+ ICO_00 = 228,
+
+ ///
+ /// IME PROCESS key.
+ ///
+ PROCESSKEY = 229,
+
+ ///
+ /// OEM specific.
+ ///
+ ///
+ /// Clear key on ICO.
+ ///
+ ICO_CLEAR = 230,
+
+ ///
+ /// Used to pass Unicode characters as if they were keystrokes. The PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods..
+ ///
+ ///
+ /// For more information, see Remark in User32.KEYBDINPUT, User32.SendInput, User32.WindowMessage.WM_KEYDOWN, and User32.WindowMessage.WM_KEYUP.
+ ///
+ PACKET = 231,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_RESET = 233,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_JUMP = 234,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_PA1 = 235,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_PA2 = 236,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_PA3 = 237,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_WSCTRL = 238,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_CUSEL = 239,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_ATTN = 240,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_FINISH = 241,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_COPY = 242,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_AUTO = 243,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_ENLW = 244,
+
+ ///
+ /// Nokia/Ericsson definition.
+ ///
+ OEM_BACKTAB = 245,
+
+ ///
+ /// Attn key.
+ ///
+ ATTN = 246,
+
+ ///
+ /// CrSel key.
+ ///
+ CRSEL = 247,
+
+ ///
+ /// ExSel key.
+ ///
+ EXSEL = 248,
+
+ ///
+ /// Erase EOF key.
+ ///
+ EREOF = 249,
+
+ ///
+ /// Play key.
+ ///
+ PLAY = 250,
+
+ ///
+ /// Zoom key.
+ ///
+ ZOOM = 251,
+
+ ///
+ /// Reserved constant by Windows headers definition.
+ ///
+ NONAME = 252,
+
+ ///
+ /// PA1 key.
+ ///
+ PA1 = 253,
+
+ ///
+ /// Clear key.
+ ///
+ OEM_CLEAR = 254,
+ }
+}
diff --git a/Dalamud/Interface/Internal/InterfaceManager.cs b/Dalamud/Interface/Internal/InterfaceManager.cs
index 9ebe4ec86..1976ac336 100644
--- a/Dalamud/Interface/Internal/InterfaceManager.cs
+++ b/Dalamud/Interface/Internal/InterfaceManager.cs
@@ -8,6 +8,7 @@ using System.Threading;
using Dalamud.Game;
using Dalamud.Game.ClientState;
+using Dalamud.Game.ClientState.GamePad;
using Dalamud.Game.Internal.DXGI;
using Dalamud.Hooking;
using Dalamud.Hooking.Internal;
diff --git a/Dalamud/Interface/Internal/Windows/DataWindow.cs b/Dalamud/Interface/Internal/Windows/DataWindow.cs
index ac06d5139..75b1e8c18 100644
--- a/Dalamud/Interface/Internal/Windows/DataWindow.cs
+++ b/Dalamud/Interface/Internal/Windows/DataWindow.cs
@@ -8,6 +8,8 @@ using Dalamud.Game;
using Dalamud.Game.ClientState;
using Dalamud.Game.ClientState.Actors.Types;
using Dalamud.Game.ClientState.Actors.Types.NonPlayer;
+using Dalamud.Game.ClientState.Conditions;
+using Dalamud.Game.ClientState.GamePad;
using Dalamud.Game.ClientState.Structs.JobGauge;
using Dalamud.Game.Gui.Addons;
using Dalamud.Game.Gui.Toast;
@@ -758,13 +760,13 @@ namespace Dalamud.Interface.Internal.Windows
$"R3 {resolve(GamepadButtons.R3)} ");
}
#if DEBUG
- ImGui.Text($"GamepadInput 0x{this.dalamud.ClientState.GamepadState.GamepadInput.ToInt64():X}");
+ ImGui.Text($"GamepadInput 0x{this.dalamud.ClientState.GamepadState.GamepadInputAddress.ToInt64():X}");
if (ImGui.IsItemHovered())
ImGui.SetMouseCursor(ImGuiMouseCursor.Hand);
if (ImGui.IsItemClicked())
- ImGui.SetClipboardText($"0x{this.dalamud.ClientState.GamepadState.GamepadInput.ToInt64():X}");
+ ImGui.SetClipboardText($"0x{this.dalamud.ClientState.GamepadState.GamepadInputAddress.ToInt64():X}");
#endif
DrawHelper(
diff --git a/Dalamud/Interface/UiBuilder.cs b/Dalamud/Interface/UiBuilder.cs
index e24ab8bc1..71ce244f7 100644
--- a/Dalamud/Interface/UiBuilder.cs
+++ b/Dalamud/Interface/UiBuilder.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using Dalamud.Game.ClientState;
+using Dalamud.Game.ClientState.Conditions;
using Dalamud.Interface.Internal;
using ImGuiNET;
using ImGuiScene;