Initial revision
[divverent/darkplaces.git] / keys.h
1 /*
2 Copyright (C) 1996-1997 Id Software, Inc.
3
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
12
13 See the GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18
19 */
20
21 //
22 // these are the key numbers that should be passed to Key_Event
23 //
24 #define K_TAB                   9
25 #define K_ENTER                 13
26 #define K_ESCAPE                27
27 #define K_SPACE                 32
28
29 // normal keys should be passed as lowercased ascii
30
31 #define K_BACKSPACE             127
32 #define K_UPARROW               128
33 #define K_DOWNARROW             129
34 #define K_LEFTARROW             130
35 #define K_RIGHTARROW    131
36
37 #define K_ALT                   132
38 #define K_CTRL                  133
39 #define K_SHIFT                 134
40 #define K_F1                    135
41 #define K_F2                    136
42 #define K_F3                    137
43 #define K_F4                    138
44 #define K_F5                    139
45 #define K_F6                    140
46 #define K_F7                    141
47 #define K_F8                    142
48 #define K_F9                    143
49 #define K_F10                   144
50 #define K_F11                   145
51 #define K_F12                   146
52 #define K_INS                   147
53 #define K_DEL                   148
54 #define K_PGDN                  149
55 #define K_PGUP                  150
56 #define K_HOME                  151
57 #define K_END                   152
58
59 #define K_PAUSE                 255
60
61 //
62 // mouse buttons generate virtual keys
63 //
64 #define K_MOUSE1                200
65 #define K_MOUSE2                201
66 #define K_MOUSE3                202
67
68 //
69 // joystick buttons
70 //
71 #define K_JOY1                  203
72 #define K_JOY2                  204
73 #define K_JOY3                  205
74 #define K_JOY4                  206
75
76 //
77 // aux keys are for multi-buttoned joysticks to generate so they can use
78 // the normal binding process
79 //
80 #define K_AUX1                  207
81 #define K_AUX2                  208
82 #define K_AUX3                  209
83 #define K_AUX4                  210
84 #define K_AUX5                  211
85 #define K_AUX6                  212
86 #define K_AUX7                  213
87 #define K_AUX8                  214
88 #define K_AUX9                  215
89 #define K_AUX10                 216
90 #define K_AUX11                 217
91 #define K_AUX12                 218
92 #define K_AUX13                 219
93 #define K_AUX14                 220
94 #define K_AUX15                 221
95 #define K_AUX16                 222
96 #define K_AUX17                 223
97 #define K_AUX18                 224
98 #define K_AUX19                 225
99 #define K_AUX20                 226
100 #define K_AUX21                 227
101 #define K_AUX22                 228
102 #define K_AUX23                 229
103 #define K_AUX24                 230
104 #define K_AUX25                 231
105 #define K_AUX26                 232
106 #define K_AUX27                 233
107 #define K_AUX28                 234
108 #define K_AUX29                 235
109 #define K_AUX30                 236
110 #define K_AUX31                 237
111 #define K_AUX32                 238
112
113 // JACK: Intellimouse(c) Mouse Wheel Support
114
115 #define K_MWHEELUP              239
116 #define K_MWHEELDOWN    240
117
118
119
120 typedef enum {key_game, key_console, key_message, key_menu} keydest_t;
121
122 extern keydest_t        key_dest;
123 extern char *keybindings[256];
124 extern  int             key_repeats[256];
125 extern  int             key_count;                      // incremented every key event
126 extern  int             key_lastpress;
127
128 void Key_Event (int key, qboolean down);
129 void Key_Init (void);
130 void Key_WriteBindings (FILE *f);
131 void Key_SetBinding (int keynum, char *binding);
132 void Key_ClearStates (void);
133