/*
-Copyright (C) 1996-1997 Id Software, Inc.
+ $RCSfile$
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
+ Copyright (C) 1996-1997 Id Software, Inc.
-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.
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
-See the GNU General Public License for more details.
+ 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.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ See the GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to:
+
+ Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330
+ Boston, MA 02111-1307, USA
+
+ $Id$
*/
-#ifndef KEYS_H
-#define KEYS_H
+#ifndef __KEYS_H
+#define __KEYS_H
-// these are the key numbers that should be passed to Key_Event
+#include "qtypes.h"
-typedef enum {
- K_TAB = 9,
- K_ENTER = 13,
- K_ESCAPE = 27,
- K_SPACE = 32,
+//
+// these are the key numbers that should be passed to Key_Event
+//
+extern 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_BACKSPACE = 127,
K_UPARROW,
K_DOWNARROW,
K_LEFTARROW,
K_HOME,
K_END,
+ K_PAUSE,
- // 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,
+ K_NUMLOCK,
+ K_CAPSLOCK,
+ K_SCROLLOCK,
+
+ K_KP_0,
+ K_KP_INS = K_KP_0,
+ K_KP_1,
+ K_KP_END = K_KP_1,
+ K_KP_2,
+ K_KP_DOWNARROW = K_KP_2,
+ K_KP_3,
+ K_KP_PGDN = K_KP_3,
+ K_KP_4,
+ K_KP_LEFTARROW = K_KP_4,
+ K_KP_5,
+ K_KP_6,
+ K_KP_RIGHTARROW = K_KP_6,
+ K_KP_7,
+ K_KP_HOME = K_KP_7,
+ K_KP_8,
+ K_KP_UPARROW = K_KP_8,
+ K_KP_9,
+ K_KP_PGUP = K_KP_9,
+ K_KP_PERIOD,
+ K_KP_DEL = K_KP_PERIOD,
+ K_KP_DIVIDE,
+ K_KP_SLASH = K_KP_DIVIDE,
+ K_KP_MULTIPLY,
+ K_KP_MINUS,
+ K_KP_PLUS,
+ K_KP_ENTER,
+ K_KP_EQUALS,
// mouse buttons generate virtual keys
- K_MOUSE1 = 200,
+
+ K_MOUSE1 = 512,
K_MOUSE2,
K_MOUSE3,
-
- // joystick buttons
- K_JOY1,
+ K_MOUSE4,
+ K_MWHEELUP = K_MOUSE4,
+ K_MOUSE5,
+ K_MWHEELDOWN = K_MOUSE5,
+ K_MOUSE6,
+ K_MOUSE7,
+ K_MOUSE8,
+ K_MOUSE9,
+ K_MOUSE10,
+ K_MOUSE11,
+ K_MOUSE12,
+ K_MOUSE13,
+ K_MOUSE14,
+ K_MOUSE15,
+ K_MOUSE16,
+
+//
+// joystick buttons
+//
+ K_JOY1 = 768,
K_JOY2,
K_JOY3,
K_JOY4,
- //
- //// aux keys are for multi-buttoned joysticks to generate so they can use
- //// the normal binding process
- ////
- //
+//
+// aux keys are for multi-buttoned joysticks to generate so they can use
+// the normal binding process
+//
K_AUX1,
K_AUX2,
K_AUX3,
K_AUX31,
K_AUX32,
- // JACK: Intellimouse(c) Mouse Wheel Support
-
- K_MWHEELUP,
- K_MWHEELDOWN
} keynum_t;
-
-typedef enum {key_game, key_message, key_menu} keydest_t;
-
+typedef enum { key_game, key_message, key_menu } keydest_t;
+
+extern char *keybindings[8][1024];
+extern char key_lines[32][256];
+extern int key_linepos;
+extern int edit_line;
+extern int history_line;
+extern void Key_ClearEditLine(int edit_line);
+extern qboolean chat_team;
+extern char chat_buffer[256];
+extern unsigned int chat_bufferlen;
+
+// 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 4
extern int key_consoleactive;
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;
-
-void Key_Event (int key, qboolean down);
-void Key_Init (void);
-void Key_WriteBindings (QFile *f);
-void Key_SetBinding (int keynum, char *binding);
+
+void Key_WriteBindings(qfile_t *f);
+void Key_Init(void);
+void Key_Init_Cvars(void);
+void Key_Event(int key, char ascii, qboolean down);
void Key_ClearStates (void);
+void Key_SetBinding (int keynum, int bindmap, const char *binding);
-#endif
+#endif // __KEYS_H