This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
*/
+#ifndef KEYS_H
+#define KEYS_H
+
+//
// these are the key numbers that should be passed to Key_Event
+//
+#define K_TAB 9
+#define K_ENTER 13
+#define K_ESCAPE 27
+#define K_SPACE 32
+
+// normal keys should be passed as lowercased ascii
+
+#define K_BACKSPACE 127
+#define K_UPARROW 128
+#define K_DOWNARROW 129
+#define K_LEFTARROW 130
+#define K_RIGHTARROW 131
+
+#define K_ALT 132
+#define K_CTRL 133
+#define K_SHIFT 134
+#define K_F1 135
+#define K_F2 136
+#define K_F3 137
+#define K_F4 138
+#define K_F5 139
+#define K_F6 140
+#define K_F7 141
+#define K_F8 142
+#define K_F9 143
+#define K_F10 144
+#define K_F11 145
+#define K_F12 146
+#define K_INS 147
+#define K_DEL 148
+#define K_PGDN 149
+#define K_PGUP 150
+#define K_HOME 151
+#define K_END 152
+
+#define K_KP_HOME 160
+#define K_KP_UPARROW 161
+#define K_KP_PGUP 162
+#define K_KP_LEFTARROW 163
+#define K_KP_5 164
+#define K_KP_RIGHTARROW 165
+#define K_KP_END 166
+#define K_KP_DOWNARROW 167
+#define K_KP_PGDN 168
+#define K_KP_ENTER 169
+#define K_KP_INS 170
+#define K_KP_DEL 171
+#define K_KP_SLASH 172
+#define K_KP_MINUS 173
+#define K_KP_PLUS 174
+
+#define K_PAUSE 255
+
+//
+// mouse buttons generate virtual keys
+//
+#define K_MOUSE1 200
+#define K_MOUSE2 201
+#define K_MOUSE3 202
+
+//
+// joystick buttons
+//
+#define K_JOY1 203
+#define K_JOY2 204
+#define K_JOY3 205
+#define K_JOY4 206
+
+//
+// aux keys are for multi-buttoned joysticks to generate so they can use
+// the normal binding process
+//
+#define K_AUX1 207
+#define K_AUX2 208
+#define K_AUX3 209
+#define K_AUX4 210
+#define K_AUX5 211
+#define K_AUX6 212
+#define K_AUX7 213
+#define K_AUX8 214
+#define K_AUX9 215
+#define K_AUX10 216
+#define K_AUX11 217
+#define K_AUX12 218
+#define K_AUX13 219
+#define K_AUX14 220
+#define K_AUX15 221
+#define K_AUX16 222
+#define K_AUX17 223
+#define K_AUX18 224
+#define K_AUX19 225
+#define K_AUX20 226
+#define K_AUX21 227
+#define K_AUX22 228
+#define K_AUX23 229
+#define K_AUX24 230
+#define K_AUX25 231
+#define K_AUX26 232
+#define K_AUX27 233
+#define K_AUX28 234
+#define K_AUX29 235
+#define K_AUX30 236
+#define K_AUX31 237
+#define K_AUX32 238
+
+#define K_MWHEELDOWN 239
+#define K_MWHEELUP 240
-typedef enum {
- K_TAB = 9,
- K_ENTER = 13,
- K_ESCAPE = 27,
- K_SPACE = 32,
-
- // normal keys should be passed as lowercased ascii
-
- K_BACKSPACE = 127,
-
- K_CAPSLOCK,
- K_PRNTSCR,
- K_SCRLCK,
- K_PAUSE,
-
- K_UPARROW,
- K_DOWNARROW,
- K_LEFTARROW,
- K_RIGHTARROW,
-
- K_ALT,
- K_CTRL,
- K_SHIFT,
- K_F1,
- K_F2,
- K_F3,
- K_F4,
- K_F5,
- K_F6,
- K_F7,
- K_F8,
- K_F9,
- K_F10,
- K_F11,
- K_F12,
- K_INS,
- K_DEL,
- K_PGDN,
- K_PGUP,
- K_HOME,
- K_END,
-
-
- // Keypad stuff..
-
- KP_NUMLCK,
- KP_DIVIDE,
- KP_MULTIPLY,
-
- KP_HOME,
- KP_UPARROW,
- KP_PGUP,
- KP_MINUS,
-
- KP_LEFTARROW,
- KP_5,
- KP_RIGHTARROW,
- KP_PLUS,
-
- KP_END,
- KP_DOWNARROW,
- KP_PGDN,
-
-
- KP_INS,
- KP_DEL,
- KP_ENTER,
-
- // mouse buttons generate virtual keys
- K_MOUSE1 = 200,
- K_MOUSE2,
- K_MOUSE3,
-
- // joystick buttons
- K_JOY1,
- K_JOY2,
- K_JOY3,
- K_JOY4,
-
- //
- //// aux keys are for multi-buttoned joysticks to generate so they can use
- //// the normal binding process
- ////
- //
- K_AUX1,
- K_AUX2,
- K_AUX3,
- K_AUX4,
- K_AUX5,
- K_AUX6,
- K_AUX7,
- K_AUX8,
- K_AUX9,
- K_AUX10,
- K_AUX11,
- K_AUX12,
- K_AUX13,
- K_AUX14,
- K_AUX15,
- K_AUX16,
- K_AUX17,
- K_AUX18,
- K_AUX19,
- K_AUX20,
- K_AUX21,
- K_AUX22,
- K_AUX23,
- K_AUX24,
- K_AUX25,
- K_AUX26,
- K_AUX27,
- K_AUX28,
- K_AUX29,
- K_AUX30,
- K_AUX31,
- K_AUX32,
-
- // JACK: Intellimouse(c) Mouse Wheel Support
-
- K_MWHEELUP,
- K_MWHEELDOWN
-} keynum_t;
-
-
-typedef enum {key_game, key_console, key_message, key_menu} keydest_t;
-
-extern keydest_t key_dest;
extern char *keybindings[256];
-extern int key_repeats[256];
-extern int key_count; // incremented every key event
-extern int key_lastpress;
+extern int key_repeats[256];
+
+extern char chat_buffer[256];
+extern int chat_bufferlen;
+extern qboolean chat_team;
+
+typedef enum {key_game, key_message, key_menu} keydest_t;
+
+// key_consoleactive bits
+// user wants console (halfscreen)
+#define KEY_CONSOLEACTIVE_USER 1
+// console forced because there's nothing else active (fullscreen)
+#define KEY_CONSOLEACTIVE_FORCED 2
+extern int key_consoleactive;
+extern keydest_t key_dest;
void Key_Event (int key, qboolean down);
void Key_Init (void);
void Key_SetBinding (int keynum, char *binding);
void Key_ClearStates (void);
+#endif
+