| 52 | | static int mapKey(SDLKey key, SDLMod mod, Uint16 unicode) |
| 53 | | { |
| 54 | | if (key >= SDLK_F1 && key <= SDLK_F9) { |
| 55 | | return key - SDLK_F1 + 315; |
| 56 | | } else if (key >= SDLK_KP0 && key <= SDLK_KP9) { |
| 57 | | return key - SDLK_KP0 + '0'; |
| 58 | | } else if (key >= SDLK_UP && key <= SDLK_PAGEDOWN) { |
| 59 | | return key; |
| 60 | | } else if (unicode) { |
| 61 | | return unicode; |
| 62 | | } else if (key >= 'a' && key <= 'z' && mod & KMOD_SHIFT) { |
| 63 | | return key & ~0x20; |
| 64 | | } else if (key >= SDLK_NUMLOCK && key <= SDLK_EURO) { |
| 65 | | return 0; |
| | 52 | static int mapKey(SDLKey key, SDLMod mod, Uint16 unicode) { |
| | 53 | switch (key) { |
| | 54 | case SDLK_KP0: return Common::ASCII_KP0; |
| | 55 | case SDLK_KP1: return Common::ASCII_KP1; |
| | 56 | case SDLK_KP2: return Common::ASCII_KP2; |
| | 57 | case SDLK_KP3: return Common::ASCII_KP3; |
| | 58 | case SDLK_KP4: return Common::ASCII_KP4; |
| | 59 | case SDLK_KP5: return Common::ASCII_KP5; |
| | 60 | case SDLK_KP6: return Common::ASCII_KP6; |
| | 61 | case SDLK_KP7: return Common::ASCII_KP7; |
| | 62 | case SDLK_KP8: return Common::ASCII_KP8; |
| | 63 | case SDLK_KP9: return Common::ASCII_KP9; |
| | 64 | case SDLK_F1: return Common::ASCII_F1; |
| | 65 | case SDLK_F2: return Common::ASCII_F2; |
| | 66 | case SDLK_F3: return Common::ASCII_F3; |
| | 67 | case SDLK_F4: return Common::ASCII_F4; |
| | 68 | case SDLK_F5: return Common::ASCII_F5; |
| | 69 | case SDLK_F6: return Common::ASCII_F6; |
| | 70 | case SDLK_F7: return Common::ASCII_F7; |
| | 71 | case SDLK_F8: return Common::ASCII_F8; |
| | 72 | case SDLK_F9: return Common::ASCII_F9; |
| | 73 | default: |
| | 74 | if (unicode) { |
| | 75 | return unicode; |
| | 76 | } else if (key >= 'a' && key <= 'z' && mod & KMOD_SHIFT) { |
| | 77 | return key & ~0x20; |
| | 78 | } else if (key >= SDLK_NUMLOCK && key <= SDLK_EURO) { |
| | 79 | return 0; |
| | 80 | } |
| | 81 | return key; |