#pragma once namespace game { enum keyNum_t { K_NONE = 0x00, K_BUTTON_A = 0x01, K_BUTTON_B = 0x02, K_BUTTON_X = 0x03, K_BUTTON_Y = 0x04, K_BUTTON_LSHLDR = 0x05, K_BUTTON_RSHLDR = 0x06, K_UNK7 = 0x07, K_UNK8 = 0x08, K_TAB = 0x09, K_UNK10 = 0x0A, K_UNK11 = 0x0B, K_UNK12 = 0x0C, K_ENTER = 0x0D, K_BUTTON_START = 0x0E, K_BUTTON_BACK = 0x0F, K_BUTTON_LSTICK = 0x10, K_BUTTON_RSTICK = 0x11, K_BUTTON_LTRIG = 0x12, K_BUTTON_RTRIG = 0x13, K_UNK20 = 0x14, K_UNK21 = 0x15, K_DPAD_UP = 0x16, K_DPAD_DOWN = 0x17, K_DPAD_LEFT = 0x18, K_DPAD_RIGHT = 0x19, K_UNK26 = 0x1A, K_ESCAPE = 0x1B, K_APAD_UP = 0x1C, K_APAD_DOWN = 0x1D, K_APAD_LEFT = 0x1E, K_APAD_RIGHT = 0x1F, K_SPACE = 0x20, K_UNK33 = 0x21, K_UNK34 = 0x22, K_UNK35 = 0x23, K_UNK36 = 0x24, K_UNK37 = 0x25, K_UNK38 = 0x26, K_UNK39 = 0x27, K_UNK40 = 0x28, K_UNK41 = 0x29, K_UNK42 = 0x2A, K_UNK43 = 0x2B, K_UNK44 = 0x2C, K_UNK45 = 0x2D, K_UNK46 = 0x2E, K_UNK47 = 0x2F, K_UNK48 = 0x30, K_UNK49 = 0x31, K_UNK50 = 0x32, K_UNK51 = 0x33, K_UNK52 = 0x34, K_UNK53 = 0x35, K_UNK54 = 0x36, K_UNK55 = 0x37, K_UNK56 = 0x38, K_UNK57 = 0x39, K_UNK58 = 0x3A, K_SEMICOLON = 0x3B, K_UNK60 = 0x3C, K_UNK61 = 0x3D, K_UNK62 = 0x3E, K_UNK63 = 0x3F, K_UNK64 = 0x40, K_UNK65 = 0x41, K_UNK66 = 0x42, K_UNK67 = 0x43, K_UNK68 = 0x44, K_UNK69 = 0x45, K_UNK70 = 0x46, K_UNK71 = 0x47, K_UNK72 = 0x48, K_UNK73 = 0x49, K_UNK74 = 0x4A, K_UNK75 = 0x4B, K_UNK76 = 0x4C, K_UNK77 = 0x4D, K_UNK78 = 0x4E, K_UNK79 = 0x4F, K_UNK80 = 0x50, K_UNK81 = 0x51, K_UNK82 = 0x52, K_UNK83 = 0x53, K_UNK84 = 0x54, K_UNK85 = 0x55, K_UNK86 = 0x56, K_UNK87 = 0x57, K_UNK88 = 0x58, K_UNK89 = 0x59, K_UNK90 = 0x5A, K_UNK91 = 0x5B, K_UNK92 = 0x5C, K_UNK93 = 0x5D, K_UNK94 = 0x5E, K_UNK95 = 0x5F, K_GRAVE = 0x60, K_UNK97 = 0x61, K_UNK98 = 0x62, K_UNK99 = 0x63, K_UNK100 = 0x64, K_UNK101 = 0x65, K_UNK102 = 0x66, K_UNK103 = 0x67, K_UNK104 = 0x68, K_UNK105 = 0x69, K_UNK106 = 0x6A, K_UNK107 = 0x6B, K_UNK108 = 0x6C, K_UNK109 = 0x6D, K_UNK110 = 0x6E, K_UNK111 = 0x6F, K_UNK112 = 0x70, K_UNK113 = 0x71, K_UNK114 = 0x72, K_UNK115 = 0x73, K_UNK116 = 0x74, K_UNK117 = 0x75, K_UNK118 = 0x76, K_UNK119 = 0x77, K_UNK120 = 0x78, K_UNK121 = 0x79, K_UNK122 = 0x7A, K_UNK123 = 0x7B, K_UNK124 = 0x7C, K_UNK125 = 0x7D, K_TILDE = 0x7E, K_BACKSPACE = 0x7F, K_CAPSLOCK = 0x80, K_PAUSE = 0x81, K_PRINTSCREEN = 0x82, K_SCROLLLOCK = 0x83, K_UPARROW = 0x84, K_DOWNARROW = 0x85, K_LEFTARROW = 0x86, K_RIGHTARROW = 0x87, K_LALT = 0x88, K_RALT = 0x89, K_LCTRL = 0x8A, K_RCTRL = 0x8B, K_LSHIFT = 0x8C, K_RSHIFT = 0x8D, K_HIRAGANA = 0x8E, K_HENKAN = 0x8F, K_MUHENKAN = 0x90, K_LWIN = 0x91, K_RWIN = 0x92, K_MENU = 0x93, K_INS = 0x94, K_DEL = 0x95, K_PGDN = 0x96, K_PGUP = 0x97, K_HOME = 0x98, K_END = 0x99, K_F1 = 0x9A, K_F2 = 0x9B, K_F3 = 0x9C, K_F4 = 0x9D, K_F5 = 0x9E, K_F6 = 0x9F, K_F7 = 0xA0, K_F8 = 0xA1, K_F9 = 0xA2, K_F10 = 0xA3, K_F11 = 0xA4, K_F12 = 0xA5, K_UNK166 = 0xA6, K_UNK167 = 0xA7, K_UNK168 = 0xA8, K_KP_HOME = 0xA9, K_KP_UPARROW = 0xAA, K_KP_PGUP = 0xAB, K_KP_LEFTARROW = 0xAC, K_KP_5 = 0xAD, K_KP_RIGHTARROW = 0xAE, K_KP_END = 0xAF, K_KP_DOWNARROW = 0xB0, K_KP_PGDN = 0xB1, K_KP_ENTER = 0xB2, K_KP_INS = 0xB3, K_KP_DEL = 0xB4, K_KP_SLASH = 0xB5, K_KP_MINUS = 0xB6, K_KP_PLUS = 0xB7, K_KP_NUMLOCK = 0xB8, K_KP_STAR = 0xB9, K_MOUSE1 = 0xBA, K_MOUSE2 = 0xBB, K_MOUSE3 = 0xBC, K_MOUSE4 = 0xBD, K_MOUSE5 = 0xBE, K_MWHEELDOWN = 0xBF, K_MWHEELUP = 0xC0 }; struct KeyState { int down; int repeats; int binding; char pad[20]; }; // size = 32 struct PlayerKeyState { bool overstrikeMode; int anyKeyDown; KeyState keys[256]; }; }