This is a patch from Elric greatly cleaning up the filesystem portions of the engine...
[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 #ifndef KEYS_H
22 #define KEYS_H
23
24 //
25 // these are the key numbers that should be passed to Key_Event
26 //
27 #define K_TAB                   9
28 #define K_ENTER                 13
29 #define K_ESCAPE                27
30 #define K_SPACE                 32
31
32 // normal keys should be passed as lowercased ascii
33
34 #define K_BACKSPACE             127
35 #define K_UPARROW               128
36 #define K_DOWNARROW             129
37 #define K_LEFTARROW             130
38 #define K_RIGHTARROW    131
39
40 #define K_ALT                   132
41 #define K_CTRL                  133
42 #define K_SHIFT                 134
43 #define K_F1                    135
44 #define K_F2                    136
45 #define K_F3                    137
46 #define K_F4                    138
47 #define K_F5                    139
48 #define K_F6                    140
49 #define K_F7                    141
50 #define K_F8                    142
51 #define K_F9                    143
52 #define K_F10                   144
53 #define K_F11                   145
54 #define K_F12                   146
55 #define K_INS                   147
56 #define K_DEL                   148
57 #define K_PGDN                  149
58 #define K_PGUP                  150
59 #define K_HOME                  151
60 #define K_END                   152
61
62 #define K_KP_HOME               160
63 #define K_KP_UPARROW    161
64 #define K_KP_PGUP               162
65 #define K_KP_LEFTARROW  163
66 #define K_KP_5                  164
67 #define K_KP_RIGHTARROW 165
68 #define K_KP_END                166
69 #define K_KP_DOWNARROW  167
70 #define K_KP_PGDN               168
71 #define K_KP_ENTER              169
72 #define K_KP_INS                170
73 #define K_KP_DEL                171
74 #define K_KP_SLASH              172
75 #define K_KP_MINUS              173
76 #define K_KP_PLUS               174
77
78 #define K_PAUSE                 255
79
80 //
81 // mouse buttons generate virtual keys
82 //
83 #define K_MOUSE1                200
84 #define K_MOUSE2                201
85 #define K_MOUSE3                202
86
87 //
88 // joystick buttons
89 //
90 #define K_JOY1                  203
91 #define K_JOY2                  204
92 #define K_JOY3                  205
93 #define K_JOY4                  206
94
95 //
96 // aux keys are for multi-buttoned joysticks to generate so they can use
97 // the normal binding process
98 //
99 #define K_AUX1                  207
100 #define K_AUX2                  208
101 #define K_AUX3                  209
102 #define K_AUX4                  210
103 #define K_AUX5                  211
104 #define K_AUX6                  212
105 #define K_AUX7                  213
106 #define K_AUX8                  214
107 #define K_AUX9                  215
108 #define K_AUX10                 216
109 #define K_AUX11                 217
110 #define K_AUX12                 218
111 #define K_AUX13                 219
112 #define K_AUX14                 220
113 #define K_AUX15                 221
114 #define K_AUX16                 222
115 #define K_AUX17                 223
116 #define K_AUX18                 224
117 #define K_AUX19                 225
118 #define K_AUX20                 226
119 #define K_AUX21                 227
120 #define K_AUX22                 228
121 #define K_AUX23                 229
122 #define K_AUX24                 230
123 #define K_AUX25                 231
124 #define K_AUX26                 232
125 #define K_AUX27                 233
126 #define K_AUX28                 234
127 #define K_AUX29                 235
128 #define K_AUX30                 236
129 #define K_AUX31                 237
130 #define K_AUX32                 238
131
132 #define K_MWHEELDOWN    239
133 #define K_MWHEELUP              240
134
135 extern char *keybindings[256];
136 extern int key_repeats[256];
137
138 extern char chat_buffer[256];
139 extern int chat_bufferlen;
140 extern qboolean chat_team;
141
142 typedef enum {key_game, key_message, key_menu} keydest_t;
143
144 // key_consoleactive bits
145 // user wants console (halfscreen)
146 #define KEY_CONSOLEACTIVE_USER 1
147 // console forced because there's nothing else active (fullscreen)
148 #define KEY_CONSOLEACTIVE_FORCED 2
149 extern int key_consoleactive;
150 extern keydest_t key_dest;
151
152 void Key_Event (int key, qboolean down);
153 void Key_Init (void);
154 void Key_WriteBindings (qfile_t *f);
155 void Key_SetBinding (int keynum, char *binding);
156 void Key_ClearStates (void);
157
158 #endif
159