Subversion Repositories Games.Rick Dangerous

Rev

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 redraw_screen;
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.sym;
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 == SDLK_LALT)
42
      if (key == SDL_SCANCODE_LALT)
48
         alt_pressed = TRUE;
43
         alt_pressed = TRUE;
49
      else if (alt_pressed && key == SDLK_RETURN)
44
      else if (alt_pressed && key == SDL_SCANCODE_RETURN)
50
      {
45
      {
51
         want_fullscreen ^= TRUE;
46
         want_fullscreen ^= TRUE;
52
         redraw_screen = TRUE;
47
         recreate_screen = TRUE;
53
      }
48
      }
54
      else if (alt_pressed && key == SDLK_F4)
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 == SDLK_o || key == SDLK_UP)
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 == SDLK_k || key == SDLK_DOWN)
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 == SDLK_z || key == SDLK_LEFT)
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 == SDLK_x || key == SDLK_RIGHT)
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 == SDLK_PAUSE)
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 == SDLK_END)
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 == SDLK_ESCAPE)
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 == SDLK_SPACE)
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 == SDLK_F4)
94
      else if (key == SDL_SCANCODE_F4)
100
         syssnd_toggleMute();
95
         syssnd_toggleMute();
101
      else if (key == SDLK_F5)
96
      else if (key == SDL_SCANCODE_F5)
102
         syssnd_vol(-1);
97
         syssnd_vol(-1);
103
      else if (key == SDLK_F6)
98
      else if (key == SDL_SCANCODE_F6)
104
         syssnd_vol(+1);
99
         syssnd_vol(+1);
105
      else if (key == SDLK_F7)
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 == SDLK_F10)
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 == SDLK_LALT)
109
      if (key == SDL_SCANCODE_LALT)
118
         alt_pressed = FALSE;
110
         alt_pressed = FALSE;
119
      else if (key == SDLK_o || key == SDLK_UP)
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 == SDLK_k || key == SDLK_DOWN)
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 == SDLK_z || key == SDLK_LEFT)
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 == SDLK_x || key == SDLK_RIGHT)
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 == SDLK_PAUSE)
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 == SDLK_END)
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 == SDLK_ESCAPE)
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 == SDLK_SPACE)
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;