2 Copyright (C) 1996-1997 Id Software, Inc.
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.
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.
13 See the GNU General Public License for more details.
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.
25 // these are the key numbers that should be passed to Key_Event
32 // normal keys should be passed as lowercased ascii
34 #define K_BACKSPACE 127
36 #define K_DOWNARROW 129
37 #define K_LEFTARROW 130
38 #define K_RIGHTARROW 131
63 #define K_KP_UPARROW 161
65 #define K_KP_LEFTARROW 163
67 #define K_KP_RIGHTARROW 165
69 #define K_KP_DOWNARROW 167
71 #define K_KP_ENTER 169
74 #define K_KP_SLASH 172
75 #define K_KP_MINUS 173
89 // aux keys are for multi-buttoned joysticks to generate so they can use
90 // the normal binding process
125 #define K_MWHEELDOWN 239
126 #define K_MWHEELUP 240
129 // mouse buttons generate virtual keys
134 // LordHavoc: thanks to backslash for this MOUSE4 and MOUSE5 code,
135 // LordHavoc: however I renumbered it differently and added MOUSE6 through MOUSE10
136 /* backslash :: imouse explorer buttons */
139 /* backslash :: renumber everything that follows so that the mouse4/5 buttons can be squeezed in */
140 // LordHavoc: added these for completeness
145 #define K_MOUSE10 250
148 extern char *keybindings[256];
149 extern int key_repeats[256];
151 extern char chat_buffer[256];
152 extern int chat_bufferlen;
153 extern qboolean chat_team;
155 typedef enum {key_game, key_message, key_menu} keydest_t;
157 // key_consoleactive bits
158 // user wants console (halfscreen)
159 #define KEY_CONSOLEACTIVE_USER 1
160 // console forced because there's nothing else active (fullscreen)
161 #define KEY_CONSOLEACTIVE_FORCED 2
162 extern int key_consoleactive;
163 extern keydest_t key_dest;
165 void Key_Event (int key, char ascii, qboolean down);
166 void Key_Init (void);
167 void Key_WriteBindings (qfile_t *f);
168 void Key_SetBinding (int keynum, char *binding);
169 void Key_ClearStates (void);