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; |