Last active
October 16, 2020 14:38
-
-
Save ericoporto/d280a7c77806d9d5d1c6976f2d11796c to your computer and use it in GitHub Desktop.
AGS Keycode equivalents in SDL Keycodes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SDL_Keysym SDLKeysymFromAgsKey (int key) | |
{ | |
SDL_Keysym sk; | |
sk.scancode = SDL_SCANCODE_UNKNOWN; | |
sk.sym = SDLK_UNKNOWN; | |
switch (key) { | |
// ctrl-[A-Z] keys are numbered 1-26 for A-Z | |
case eAGSKeyCodeCtrlA: { sk.scancode = SDL_SCANCODE_A; sk.sym = SDLK_a; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlB: { sk.scancode = SDL_SCANCODE_B; sk.sym = SDLK_b; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlC: { sk.scancode = SDL_SCANCODE_C; sk.sym = SDLK_c; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlD: { sk.scancode = SDL_SCANCODE_D; sk.sym = SDLK_d; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlE: { sk.scancode = SDL_SCANCODE_E; sk.sym = SDLK_e; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlF: { sk.scancode = SDL_SCANCODE_F; sk.sym = SDLK_f; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlG: { sk.scancode = SDL_SCANCODE_G; sk.sym = SDLK_g; sk.mod = KMOD_CTRL; } break; | |
// case eAGSKeyCodeCtrlH: // overlap with backspace | |
// case eAGSKeyCodeCtrlI: // overlap with tab | |
case eAGSKeyCodeCtrlJ: { sk.scancode = SDL_SCANCODE_J; sk.sym = SDLK_j; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlK: { sk.scancode = SDL_SCANCODE_K; sk.sym = SDLK_k; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlL: { sk.scancode = SDL_SCANCODE_L; sk.sym = SDLK_l; sk.mod = KMOD_CTRL; } break; | |
// case eAGSKeyCodeCtrlM: // overlap with return | |
case eAGSKeyCodeCtrlN: { sk.scancode = SDL_SCANCODE_N; sk.sym = SDLK_n; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlO: { sk.scancode = SDL_SCANCODE_O; sk.sym = SDLK_o; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlP: { sk.scancode = SDL_SCANCODE_P; sk.sym = SDLK_p; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlQ: { sk.scancode = SDL_SCANCODE_Q; sk.sym = SDLK_q; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlR: { sk.scancode = SDL_SCANCODE_R; sk.sym = SDLK_r; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlS: { sk.scancode = SDL_SCANCODE_S; sk.sym = SDLK_s; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlT: { sk.scancode = SDL_SCANCODE_T; sk.sym = SDLK_t; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlU: { sk.scancode = SDL_SCANCODE_U; sk.sym = SDLK_u; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlV: { sk.scancode = SDL_SCANCODE_V; sk.sym = SDLK_v; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlW: { sk.scancode = SDL_SCANCODE_W; sk.sym = SDLK_w; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlX: { sk.scancode = SDL_SCANCODE_X; sk.sym = SDLK_x; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlY: { sk.scancode = SDL_SCANCODE_Y; sk.sym = SDLK_y; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeCtrlZ: { sk.scancode = SDL_SCANCODE_Z; sk.sym = SDLK_z; sk.mod = KMOD_CTRL; } break; | |
case eAGSKeyCodeBackspace: { sk.scancode = SDL_SCANCODE_BACKSPACE; sk.sym = SDLK_BACKSPACE; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeTab: { sk.scancode = SDL_SCANCODE_TAB; sk.sym = SDLK_TAB; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeReturn: { sk.scancode = SDL_SCANCODE_RETURN; sk.sym = SDLK_RETURN; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeEscape: { sk.scancode = SDL_SCANCODE_ESCAPE; sk.sym = SDLK_ESCAPE; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeSpace: { sk.scancode = SDL_SCANCODE_SPACE; sk.sym = SDLK_SPACE; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeExclamationMark: { sk.scancode = SDL_SCANCODE_KP_EXCLAM; sk.sym = SDLK_KP_EXCLAM; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeDoubleQuote: { sk.sym = SDLK_QUOTEDBL; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeHash: { sk.sym = SDLK_HASH; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeDollar: { sk.sym = SDLK_DOLLAR; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodePercent: { sk.sym = SDLK_PERCENT; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeAmpersand: { sk.sym = SDLK_AMPERSAND; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeSingleQuote: { sk.scancode = SDL_SCANCODE_APOSTROPHE; sk.sym = SDLK_QUOTE; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeOpenParenthesis: { sk.sym = SDLK_LEFTPAREN; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeCloseParenthesis: { sk.sym = SDLK_RIGHTPAREN; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeAsterisk: { sk.sym = SDLK_ASTERISK; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodePlus: { sk.sym = SDLK_PLUS; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeComma: { sk.scancode = SDL_SCANCODE_COMMA; sk.sym = SDLK_COMMA; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeHyphen: { sk.scancode = SDL_SCANCODE_MINUS; sk.sym = SDLK_MINUS; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodePeriod: { sk.scancode = SDL_SCANCODE_PERIOD; sk.sym = SDLK_PERIOD; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeForwardSlash: { sk.scancode = SDL_SCANCODE_SLASH; sk.sym = SDLK_SLASH; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeColon: { sk.sym = SDLK_COLON; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeSemiColon: { sk.scancode = SDL_SCANCODE_SEMICOLON; sk.sym = SDLK_SEMICOLON; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeLessThan: { sk.sym = SDLK_LESS; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeEquals: { sk.scancode = SDL_SCANCODE_EQUALS; sk.sym = SDLK_EQUALS; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeGreaterThan: { sk.sym = SDLK_GREATER; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeQuestionMark: { sk.sym = SDLK_QUESTION; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeAt: { sk.sym = SDLK_AT; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeOpenBracket: { sk.scancode = SDL_SCANCODE_LEFTBRACKET; sk.sym = SDLK_LEFTBRACKET; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeBackSlash: { sk.scancode = SDL_SCANCODE_BACKSLASH; sk.sym = SDLK_BACKSLASH; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeCloseBracket: { sk.scancode = SDL_SCANCODE_RIGHTBRACKET; sk.sym = SDLK_RIGHTBRACKET; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeUnderscore: { sk.sym = SDLK_UNDERSCORE; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode0: { sk.scancode = SDL_SCANCODE_0; sk.sym = SDLK_0; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode1: { sk.scancode = SDL_SCANCODE_1; sk.sym = SDLK_1; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode2: { sk.scancode = SDL_SCANCODE_2; sk.sym = SDLK_2; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode3: { sk.scancode = SDL_SCANCODE_3; sk.sym = SDLK_3; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode4: { sk.scancode = SDL_SCANCODE_4; sk.sym = SDLK_4; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode5: { sk.scancode = SDL_SCANCODE_5; sk.sym = SDLK_5; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode6: { sk.scancode = SDL_SCANCODE_6; sk.sym = SDLK_6; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode7: { sk.scancode = SDL_SCANCODE_7; sk.sym = SDLK_7; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode8: { sk.scancode = SDL_SCANCODE_8; sk.sym = SDLK_8; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCode9: { sk.scancode = SDL_SCANCODE_9; sk.sym = SDLK_9; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeA: { sk.scancode = SDL_SCANCODE_A; sk.sym = SDLK_a; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeB: { sk.scancode = SDL_SCANCODE_B; sk.sym = SDLK_b; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeC: { sk.scancode = SDL_SCANCODE_C; sk.sym = SDLK_c; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeD: { sk.scancode = SDL_SCANCODE_D; sk.sym = SDLK_d; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeE: { sk.scancode = SDL_SCANCODE_E; sk.sym = SDLK_e; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF: { sk.scancode = SDL_SCANCODE_F; sk.sym = SDLK_f; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeG: { sk.scancode = SDL_SCANCODE_G; sk.sym = SDLK_g; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeH: { sk.scancode = SDL_SCANCODE_H; sk.sym = SDLK_h; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeI: { sk.scancode = SDL_SCANCODE_I; sk.sym = SDLK_i; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeJ: { sk.scancode = SDL_SCANCODE_J; sk.sym = SDLK_j; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeK: { sk.scancode = SDL_SCANCODE_K; sk.sym = SDLK_k; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeL: { sk.scancode = SDL_SCANCODE_L; sk.sym = SDLK_l; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeM: { sk.scancode = SDL_SCANCODE_M; sk.sym = SDLK_m; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeN: { sk.scancode = SDL_SCANCODE_N; sk.sym = SDLK_n; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeO: { sk.scancode = SDL_SCANCODE_O; sk.sym = SDLK_o; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeP: { sk.scancode = SDL_SCANCODE_P; sk.sym = SDLK_p; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeQ: { sk.scancode = SDL_SCANCODE_Q; sk.sym = SDLK_q; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeR: { sk.scancode = SDL_SCANCODE_R; sk.sym = SDLK_r; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeS: { sk.scancode = SDL_SCANCODE_S; sk.sym = SDLK_s; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeT: { sk.scancode = SDL_SCANCODE_T; sk.sym = SDLK_t; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeU: { sk.scancode = SDL_SCANCODE_U; sk.sym = SDLK_u; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeV: { sk.scancode = SDL_SCANCODE_V; sk.sym = SDLK_v; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeW: { sk.scancode = SDL_SCANCODE_W; sk.sym = SDLK_w; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeX: { sk.scancode = SDL_SCANCODE_X; sk.sym = SDLK_x; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeY: { sk.scancode = SDL_SCANCODE_Y; sk.sym = SDLK_y; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeZ: { sk.scancode = SDL_SCANCODE_Z; sk.sym = SDLK_z; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF1: { sk.scancode = SDL_SCANCODE_F1; sk.sym = SDLK_F1; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF2: { sk.scancode = SDL_SCANCODE_F2; sk.sym = SDLK_F2; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF3: { sk.scancode = SDL_SCANCODE_F3; sk.sym = SDLK_F3; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF4: { sk.scancode = SDL_SCANCODE_F4; sk.sym = SDLK_F4; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF5: { sk.scancode = SDL_SCANCODE_F5; sk.sym = SDLK_F5; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF6: { sk.scancode = SDL_SCANCODE_F6; sk.sym = SDLK_F6; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF7: { sk.scancode = SDL_SCANCODE_F7; sk.sym = SDLK_F7; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF8: { sk.scancode = SDL_SCANCODE_F8; sk.sym = SDLK_F8; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF9: { sk.scancode = SDL_SCANCODE_F9; sk.sym = SDLK_F9; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF10: { sk.scancode = SDL_SCANCODE_F10; sk.sym = SDLK_F10; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF11: { sk.scancode = SDL_SCANCODE_F11; sk.sym = SDLK_F11; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeF12: { sk.scancode = SDL_SCANCODE_F12; sk.sym = SDLK_F12; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeHome: { sk.scancode = SDL_SCANCODE_HOME; sk.sym = SDLK_HOME; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeUpArrow: { sk.scancode = SDL_SCANCODE_UP; sk.sym = SDLK_UP; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodePageUp: { sk.scancode = SDL_SCANCODE_PAGEUP; sk.sym = SDLK_PAGEUP; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeLeftArrow: { sk.scancode = SDL_SCANCODE_LEFT; sk.sym = SDLK_LEFT; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeNumPad5: { sk.scancode = SDL_SCANCODE_KP_5; sk.sym = SDLK_KP_5; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeRightArrow: { sk.scancode = SDL_SCANCODE_RIGHT; sk.sym = SDLK_RIGHT; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeEnd: { sk.scancode = SDL_SCANCODE_END; sk.sym = SDLK_END; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeDownArrow: { sk.scancode = SDL_SCANCODE_DOWN; sk.sym = SDLK_DOWN; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodePageDown: { sk.scancode = SDL_SCANCODE_PAGEDOWN; sk.sym = SDLK_PAGEDOWN; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeInsert: { sk.scancode = SDL_SCANCODE_INSERT; sk.sym = SDLK_INSERT; sk.mod = KMOD_NONE; } break; | |
case eAGSKeyCodeDelete: { sk.scancode = SDL_SCANCODE_DELETE; sk.sym = SDLK_DELETE; sk.mod = KMOD_NONE; } break; | |
} | |
return sk; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment