Rev 1 | Rev 10 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1 | Rev 7 | ||
|---|---|---|---|
| Line 7... | Line 7... | ||
| 7 |  * named README, which can be found in the root of this distribution. By | 7 |  * named README, which can be found in the root of this distribution. By | 
| 8 |  * using this software in any fashion, you are agreeing to be bound by the | 8 |  * using this software in any fashion, you are agreeing to be bound by the | 
| 9 |  * terms of this license. | 9 |  * terms of this license. | 
| 10 |  * | 10 |  * | 
| 11 |  * You must not remove this notice, or any other, from this software. | 11 |  * You must not remove this notice, or any other, from this software. | 
| 12 |  */ | - | |
| 13 | - | ||
| 14 | /* | - | |
| 15 |  * 20021010 SDLK_n replaced by SDLK_Fn because some non-US keyboards | - | |
| 16 |  *               requires that SHIFT be pressed to input numbers. | - | |
| 17 |  */ | 12 |  */ | 
| 18 | 13 | ||
| 19 | #include <SDL.h> | 14 | #include <SDL.h> | 
| 20 | 15 | ||
| 21 | #include "system.h" | 16 | #include "system.h" | 
| Line 27... | Line 22... | ||
| 27 | #define SYSJOY_RANGE 3280 | 22 | #define SYSJOY_RANGE 3280 | 
| 28 | 23 | ||
| 29 | static SDL_Event event; | 24 | static SDL_Event event; | 
| 30 | extern U8 want_filter; | 25 | extern U8 want_filter; | 
| 31 | extern U8 want_fullscreen; | 26 | extern U8 want_fullscreen; | 
| 32 | extern U8 | 27 | extern U8 recreate_screen; | 
| 33 | 28 | ||
| 34 | 29 | ||
| 35 | /* | 30 | /* | 
| 36 |  * Process an event | 31 |  * Process an event | 
| 37 |  */ | 32 |  */ | 
| 38 | static void processEvent (void) | 33 | static void processEvent (void) | 
| 39 | { | 34 | { | 
| 40 | static U8 alt_pressed = FALSE; | 35 | static U8 alt_pressed = FALSE; | 
| 41 | 36 | ||
| 42 | U16 key = event.key.keysym. | 37 | U16 key = event.key.keysym.scancode; | 
| 43 | 38 | ||
| 44 | switch (event.type) | 39 | switch (event.type) | 
| 45 |    { | 40 |    { | 
| 46 | case SDL_KEYDOWN: | 41 | case SDL_KEYDOWN: | 
| 47 | if (key == | 42 | if (key == SDL_SCANCODE_LALT) | 
| 48 | alt_pressed = TRUE; | 43 | alt_pressed = TRUE; | 
| 49 | else if (alt_pressed && key == | 44 | else if (alt_pressed && key == SDL_SCANCODE_RETURN) | 
| 50 |       { | 45 |       { | 
| 51 | want_fullscreen ^= TRUE; | 46 | want_fullscreen ^= TRUE; | 
| 52 | 
 | 47 | recreate_screen = TRUE; | 
| 53 |       } | 48 |       } | 
| 54 | else if (alt_pressed && key == | 49 | else if (alt_pressed && key == SDL_SCANCODE_F4) | 
| 55 |       { | 50 |       { | 
| 56 | control_status |= CONTROL_EXIT; | 51 | control_status |= CONTROL_EXIT; | 
| 57 | control_last = CONTROL_EXIT; | 52 | control_last = CONTROL_EXIT; | 
| 58 |       } | 53 |       } | 
| 59 | else if (key == | 54 | else if (key == SDL_SCANCODE_O || key == SDL_SCANCODE_UP) | 
| 60 |       { | 55 |       { | 
| 61 | control_status |= CONTROL_UP; | 56 | control_status |= CONTROL_UP; | 
| 62 | control_last = CONTROL_UP; | 57 | control_last = CONTROL_UP; | 
| 63 |       } | 58 |       } | 
| 64 | else if (key == | 59 | else if (key == SDL_SCANCODE_K || key == SDL_SCANCODE_DOWN) | 
| 65 |       { | 60 |       { | 
| 66 | control_status |= CONTROL_DOWN; | 61 | control_status |= CONTROL_DOWN; | 
| 67 | control_last = CONTROL_DOWN; | 62 | control_last = CONTROL_DOWN; | 
| 68 |       } | 63 |       } | 
| 69 | else if (key == | 64 | else if (key == SDL_SCANCODE_Z || key == SDL_SCANCODE_LEFT) | 
| 70 |       { | 65 |       { | 
| 71 | control_status |= CONTROL_LEFT; | 66 | control_status |= CONTROL_LEFT; | 
| 72 | control_last = CONTROL_LEFT; | 67 | control_last = CONTROL_LEFT; | 
| 73 |       } | 68 |       } | 
| 74 | else if (key == | 69 | else if (key == SDL_SCANCODE_X || key == SDL_SCANCODE_RIGHT) | 
| 75 |       { | 70 |       { | 
| 76 | control_status |= CONTROL_RIGHT; | 71 | control_status |= CONTROL_RIGHT; | 
| 77 | control_last = CONTROL_RIGHT; | 72 | control_last = CONTROL_RIGHT; | 
| 78 |       } | 73 |       } | 
| 79 | else if (key == | 74 | else if (key == SDL_SCANCODE_PAUSE) | 
| 80 |       { | 75 |       { | 
| 81 | control_status |= CONTROL_PAUSE; | 76 | control_status |= CONTROL_PAUSE; | 
| 82 | control_last = CONTROL_PAUSE; | 77 | control_last = CONTROL_PAUSE; | 
| 83 |       } | 78 |       } | 
| 84 | else if (key == | 79 | else if (key == SDL_SCANCODE_END) | 
| 85 |       { | 80 |       { | 
| 86 | control_status |= CONTROL_END; | 81 | control_status |= CONTROL_END; | 
| 87 | control_last = CONTROL_END; | 82 | control_last = CONTROL_END; | 
| 88 |       } | 83 |       } | 
| 89 | else if (key == | 84 | else if (key == SDL_SCANCODE_ESCAPE) | 
| 90 |       { | 85 |       { | 
| 91 | control_status |= CONTROL_EXIT; | 86 | control_status |= CONTROL_EXIT; | 
| 92 | control_last = CONTROL_EXIT; | 87 | control_last = CONTROL_EXIT; | 
| 93 |       } | 88 |       } | 
| 94 | else if (key == | 89 | else if (key == SDL_SCANCODE_SPACE) | 
| 95 |       { | 90 |       { | 
| 96 | control_status |= CONTROL_FIRE; | 91 | control_status |= CONTROL_FIRE; | 
| 97 | control_last = CONTROL_FIRE; | 92 | control_last = CONTROL_FIRE; | 
| 98 |       } | 93 |       } | 
| 99 | else if (key == | 94 | else if (key == SDL_SCANCODE_F4) | 
| 100 | syssnd_toggleMute(); | 95 | syssnd_toggleMute(); | 
| 101 | else if (key == | 96 | else if (key == SDL_SCANCODE_F5) | 
| 102 | syssnd_vol(-1); | 97 | syssnd_vol(-1); | 
| 103 | else if (key == | 98 | else if (key == SDL_SCANCODE_F6) | 
| 104 | syssnd_vol(+1); | 99 | syssnd_vol(+1); | 
| 105 | else if (key == | 100 | else if (key == SDL_SCANCODE_F7) | 
| 106 |       { | - | |
| 107 | want_filter ^= TRUE; | 101 | want_filter ^= TRUE; | 
| 108 | redraw_screen = TRUE; | - | |
| 109 |       } | - | |
| 110 | else if (key == | 102 | else if (key == SDL_SCANCODE_F10) | 
| 111 |       { | 103 |       { | 
| 112 | control_status &= ~CONTROL_EXIT; | 104 | control_status &= ~CONTROL_EXIT; | 
| 113 | control_last = CONTROL_EXIT; | 105 | control_last = CONTROL_EXIT; | 
| 114 |       } | 106 |       } | 
| 115 | break; | 107 | break; | 
| 116 | case SDL_KEYUP: | 108 | case SDL_KEYUP: | 
| 117 | if (key == | 109 | if (key == SDL_SCANCODE_LALT) | 
| 118 | alt_pressed = FALSE; | 110 | alt_pressed = FALSE; | 
| 119 | else if (key == | 111 | else if (key == SDL_SCANCODE_O || key == SDL_SCANCODE_UP) | 
| 120 |       { | 112 |       { | 
| 121 | control_status &= ~CONTROL_UP; | 113 | control_status &= ~CONTROL_UP; | 
| 122 | control_last = CONTROL_UP; | 114 | control_last = CONTROL_UP; | 
| 123 |       } | 115 |       } | 
| 124 | else if (key == | 116 | else if (key == SDL_SCANCODE_K || key == SDL_SCANCODE_DOWN) | 
| 125 |       { | 117 |       { | 
| 126 | control_status &= ~CONTROL_DOWN; | 118 | control_status &= ~CONTROL_DOWN; | 
| 127 | control_last = CONTROL_DOWN; | 119 | control_last = CONTROL_DOWN; | 
| 128 |       } | 120 |       } | 
| 129 | else if (key == | 121 | else if (key == SDL_SCANCODE_Z || key == SDL_SCANCODE_LEFT) | 
| 130 |       { | 122 |       { | 
| 131 | control_status &= ~CONTROL_LEFT; | 123 | control_status &= ~CONTROL_LEFT; | 
| 132 | control_last = CONTROL_LEFT; | 124 | control_last = CONTROL_LEFT; | 
| 133 |       } | 125 |       } | 
| 134 | else if (key == | 126 | else if (key == SDL_SCANCODE_X || key == SDL_SCANCODE_RIGHT) | 
| 135 |       { | 127 |       { | 
| 136 | control_status &= ~CONTROL_RIGHT; | 128 | control_status &= ~CONTROL_RIGHT; | 
| 137 | control_last = CONTROL_RIGHT; | 129 | control_last = CONTROL_RIGHT; | 
| 138 |       } | 130 |       } | 
| 139 | else if (key == | 131 | else if (key == SDL_SCANCODE_PAUSE) | 
| 140 |       { | 132 |       { | 
| 141 | control_status &= ~CONTROL_PAUSE; | 133 | control_status &= ~CONTROL_PAUSE; | 
| 142 | control_last = CONTROL_PAUSE; | 134 | control_last = CONTROL_PAUSE; | 
| 143 |       } | 135 |       } | 
| 144 | else if (key == | 136 | else if (key == SDL_SCANCODE_END) | 
| 145 |       { | 137 |       { | 
| 146 | control_status &= ~CONTROL_END; | 138 | control_status &= ~CONTROL_END; | 
| 147 | control_last = CONTROL_END; | 139 | control_last = CONTROL_END; | 
| 148 |       } | 140 |       } | 
| 149 | else if (key == | 141 | else if (key == SDL_SCANCODE_ESCAPE) | 
| 150 |       { | 142 |       { | 
| 151 | control_status &= ~CONTROL_EXIT; | 143 | control_status &= ~CONTROL_EXIT; | 
| 152 | control_last = CONTROL_EXIT; | 144 | control_last = CONTROL_EXIT; | 
| 153 |       } | 145 |       } | 
| 154 | else if (key == | 146 | else if (key == SDL_SCANCODE_SPACE) | 
| 155 |       { | 147 |       { | 
| 156 | control_status &= ~CONTROL_FIRE; | 148 | control_status &= ~CONTROL_FIRE; | 
| 157 | control_last = CONTROL_FIRE; | 149 | control_last = CONTROL_FIRE; | 
| 158 |       } | 150 |       } | 
| 159 | break; | 151 | break; |