forked from Simnation/Main
234 lines
7.2 KiB
Lua
234 lines
7.2 KiB
Lua
-- Partially based on this snippet: https://gist.github.com/DemmyDemon/69d53b78b005a7c1a6fdb9036e401f4c
|
|
local KEY_CODES <const> = {
|
|
-- b_0 = "",
|
|
-- b_1 = "",
|
|
-- b_2 = "",
|
|
-- b_3 = "",
|
|
b_4 = "D-pad Up", -- LUP_INDEX - D-pad Up
|
|
b_5 = "D-pad Down", -- LDOWN_INDEX - D-pad Down
|
|
b_6 = "D-pad Left", -- LLEFT_INDEX - D-pad Left
|
|
b_7 = "D-pad Right", -- LRIGHT_INDEX - D-pad Right
|
|
-- b_8 = "",
|
|
-- b_9 = "",
|
|
-- b_10 = "",
|
|
-- b_11 = "",
|
|
-- b_12 = "",
|
|
-- b_13 = "",
|
|
-- b_14 = "",
|
|
-- b_15 = "",
|
|
b_16 = "Left Stick Press", -- L3_INDEX - Left Stick Press
|
|
-- b_17 = "",
|
|
b_18 = "Left Stick Up/Down", -- FIXME: Up and down on left stick on controller (but only triggers on down?)
|
|
b_19 = "Left Stick Left/Right", -- FIXME: Left and right on left stick on controller (but only triggers on right?)
|
|
-- b_20 = "",
|
|
-- b_21 = "",
|
|
-- b_22 = "",
|
|
-- b_23 = "",
|
|
-- b_24 = "",
|
|
b_25 = "Right Stick Press", -- R3_INDEX - Right Stick Press
|
|
-- b_26 = "",
|
|
b_27 = "Right Stick Up/Down", -- FIXME: Up and down on right stick on controller (but only triggers on down?)
|
|
b_28 = "Right Stick Left/Right", -- FIXME: Left and right on right stick on controller (but only triggers on right?)
|
|
-- b_29 = "",
|
|
b_30 = "A", -- RDOWN_INDEX - A / Cross
|
|
b_31 = "B", -- RRIGHT_INDEX - B / Circle
|
|
b_32 = "X", -- RLEFT_INDEX - X / Square
|
|
b_33 = "Y", -- RUP_INDEX - Y / Triangle
|
|
b_34 = "LB", -- L1_INDEX - Left Shoulder Button
|
|
b_35 = "LT", -- L2_INDEX - Left Trigger
|
|
b_36 = "RB", -- R1_INDEX - Right Shoulder Button
|
|
b_37 = "RT", -- R2_INDEX - Right Trigger
|
|
b_38 = "Start", -- FIXME: "Start" on my xbox controller
|
|
b_39 = "Back", -- FIXME: "Back" on my xbox controller
|
|
-- b_40 = "",
|
|
-- b_41 = "",
|
|
-- b_42 = "",
|
|
-- b_43 = "",
|
|
-- b_44 = "",
|
|
-- b_45 = "",
|
|
-- b_46 = "",
|
|
-- b_47 = "",
|
|
b_100 = "LMB", -- MOUSE_LEFT - Mouse Button 0 (Left Click)
|
|
b_101 = "RMB", -- MOUSE_RIGHT - Mouse Button 1 (Right Click)
|
|
b_102 = "MMB", -- MOUSE_MIDDLE - Mouse Button 2 (Middle Click)
|
|
b_103 = "Mouse 4",
|
|
b_104 = "Mouse 5",
|
|
b_105 = "Mouse 6",
|
|
b_106 = "Mouse 7",
|
|
b_107 = "Mouse 8",
|
|
b_108 = "Mouse Left",
|
|
b_109 = "Mouse Right",
|
|
b_110 = "Mouse Up",
|
|
b_111 = "Mouse Down",
|
|
b_112 = "Mouse Left/Right",
|
|
b_113 = "Mouse Up/Down",
|
|
b_114 = "Mouse",
|
|
b_115 = "Scroll Up",
|
|
b_116 = "Scroll Down",
|
|
b_117 = "Scroll Wheel",
|
|
b_130 = "Num -",
|
|
b_131 = "Num +",
|
|
b_134 = "Num *",
|
|
b_135 = "Num Enter", -- FIXME: This may be wrong
|
|
b_136 = "Num 0",
|
|
b_137 = "Num 1",
|
|
b_138 = "Num 2",
|
|
b_139 = "Num 3",
|
|
b_140 = "Num 4",
|
|
b_141 = "Num 5",
|
|
b_142 = "Num 6",
|
|
b_143 = "Num 7",
|
|
b_144 = "Num 8",
|
|
b_145 = "Num 9",
|
|
b_146 = "Num =",
|
|
b_147 = "Num ,",
|
|
b_148 = "Num ÷", -- FIXME: Do the fonts have ÷ in them?
|
|
b_149 = "Num x",
|
|
b_150 = "Intro",
|
|
b_151 = "???",-- FIXME some sort of upper line?!
|
|
b_170 = "F1",
|
|
b_171 = "F2",
|
|
b_172 = "F3",
|
|
b_173 = "F4",
|
|
b_174 = "F5",
|
|
b_175 = "F6",
|
|
b_176 = "F7",
|
|
b_177 = "F8",
|
|
b_178 = "F9",
|
|
b_179 = "F10",
|
|
b_180 = "F11",
|
|
b_181 = "F12",
|
|
b_182 = "F13",
|
|
b_183 = "F14",
|
|
b_184 = "F15",
|
|
b_185 = "F16",
|
|
b_186 = "F17",
|
|
b_187 = "F18",
|
|
b_188 = "F19",
|
|
b_189 = "F20",
|
|
b_190 = "F21",
|
|
b_191 = "F22",
|
|
b_192 = "F23",
|
|
b_193 = "F24",
|
|
b_194 = "Up Arrow",
|
|
b_195 = "Down Arrow",
|
|
b_196 = "Left Arrow",
|
|
b_197 = "Right Arrow",
|
|
b_198 = "Del",
|
|
b_199 = "Esc",
|
|
b_200 = "Ins",
|
|
b_201 = "End",
|
|
b_202 = "Suppr",
|
|
b_203 = "Échap",
|
|
b_204 = "Fin",
|
|
b_205 = "Entf",
|
|
b_206 = "Einfg",
|
|
b_207 = "Ende",
|
|
b_208 = "Canc",
|
|
b_209 = "Fine",
|
|
b_210 = "Delete",
|
|
b_211 = "Insert",
|
|
b_212 = "End",
|
|
b_213 = "Supr",
|
|
b_214 = "Insertar",
|
|
b_215 = "Fin",
|
|
b_216 = "¨",
|
|
b_217 = "`",
|
|
b_995 = "???", -- Literally says so on the sprite. In red. (Button shown when a key has been removed from the keymapping)
|
|
-- b_996 = "", -- Button outline sprite
|
|
-- b_997 = "", -- Button outline sprite
|
|
b_998 = "+", -- The + in things like Ctrl+A?
|
|
-- b_999 = "", -- Button outline sprite
|
|
b_1000 = "L Shift", -- Left Shift - FIXME Fonts do not have ⇑ in them. What can be used for Shift?
|
|
b_1001 = "R Shift", -- Right Shift - FIXME Same problem as above
|
|
b_1002 = "Tab",
|
|
b_1003 = "Enter", -- FIXME Common key, undrawable glyph. Fonts to not have ↲ in them.
|
|
b_1004 = "Backspace", -- FIXME ← is easily confused with left arrow...
|
|
b_1005 = "Print Screen",
|
|
b_1006 = "Scroll Lock",
|
|
b_1007 = "Pause",
|
|
b_1008 = "Home",
|
|
b_1009 = "Page Up",
|
|
b_1010 = "Page Down",
|
|
b_1011 = "Num Lock",
|
|
b_1012 = "Caps Lock",
|
|
b_1013 = "L Ctrl", -- Left Control
|
|
b_1014 = "R Ctrl", -- Right Control
|
|
b_1015 = "L Alt",
|
|
b_1016 = "R Alt",
|
|
b_1017 = "Menu",
|
|
b_1018 = "L Win",
|
|
b_1019 = "R Win",
|
|
b_1020 = "Imppr écran",
|
|
b_1021 = "Arrèt défil",
|
|
b_1022 = "↖", -- FIXME: Check if the fonts have this symbol.
|
|
b_1023 = "⇞", -- FIXME: Do the fonts even have this symbol? What *is* this?
|
|
b_1024 = "⇟", -- FIXME: Do the fonts even have this symbol? What *is* this?
|
|
b_1025 = "Verr Numm",
|
|
b_1026 = "Verr Maj",
|
|
b_1027 = "Ctrl G",
|
|
b_1028 = "Ctrl D",
|
|
b_1029 = "Druck",
|
|
b_1030 = "Rollen ↓",
|
|
b_1031 = "Pos 1",
|
|
b_1032 = "Bild ↑",
|
|
b_1033 = "Bild ↓",
|
|
b_1034 = "Num ↓",
|
|
b_1035 = "⇓", -- FIXME: Probably an invisible glyph again. WTF even is this?
|
|
b_1036 = "Strg L",
|
|
b_1037 = "Strg R",
|
|
b_1038 = "Maiusc sx",
|
|
b_1039 = "Maiusc dx",
|
|
b_1040 = "Invio",
|
|
b_1041 = "Stampa",
|
|
b_1042 = "Bloc Scorr",
|
|
b_1043 = "Pausa",
|
|
b_1044 = "↖", -- FIXME: Do the fonts even have this symbol? What *is* this?
|
|
b_1045 = "Pag ↑",
|
|
b_1046 = "Pag ↓",
|
|
b_1047 = "Bloc Num",
|
|
b_1048 = "Bloc Maiusc",
|
|
b_1049 = "Ctrl sx",
|
|
b_1050 = "Ctrl dx",
|
|
b_1051 = "Alt gr",
|
|
b_1052 = "Impr Pant",
|
|
b_1053 = "Bloq Despl",
|
|
b_1054 = "Pausa",
|
|
b_1055 = "Home",
|
|
b_1056 = "Page Up",
|
|
b_1057 = "Av Pág",
|
|
b_1058 = "Bloq Num",
|
|
b_1059 = "Bloq Mayús",
|
|
b_1060 = "Ctrl I",
|
|
b_1061 = "Ctrl D",
|
|
b_1062 = "Menú",
|
|
b_1063 = "Impr Pant",
|
|
b_1064 = "Bloq Despl",
|
|
b_1065 = "Pausa",
|
|
b_1066 = "Inicio",
|
|
b_1067 = "Re Pág",
|
|
b_1068 = "Av Pág",
|
|
b_1069 = "Bloq Num",
|
|
b_1070 = "Mayús",
|
|
b_1071 = "Opsciones",
|
|
b_1072 = "Maj G",
|
|
b_1073 = "Maj D",
|
|
b_1074 = "Alt",
|
|
b_1075 = "Alt D",
|
|
b_1076 = "I Shift",
|
|
b_1077 = "D Shift",
|
|
b_2000 = "Space"
|
|
}
|
|
|
|
---Get's the label of a key mapped command
|
|
---@param commandHash any
|
|
---@return string
|
|
function GetKeyMappingKey(commandHash)
|
|
local key = GetControlInstructionalButton(0, commandHash | 0x80000000, true)
|
|
if string.find(key, "t_") then
|
|
local label, _count = string.gsub(key, "t_", "")
|
|
return label
|
|
else
|
|
return KEY_CODES[key] or string.format("unknown (%s)", key)
|
|
end
|
|
end
|