19fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
29fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamCopyright (C) 1996-1997 Id Software, Inc.
39fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
49fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamThis program is free software; you can redistribute it and/or
59fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreammodify it under the terms of the GNU General Public License
69fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamas published by the Free Software Foundation; either version 2
79fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamof the License, or (at your option) any later version.
89fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
99fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamThis program is distributed in the hope that it will be useful,
109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreambut WITHOUT ANY WARRANTY; without even the implied warranty of
119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamSee the GNU General Public License for more details.
149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamYou should have received a copy of the GNU General Public License
169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamalong with this program; if not, write to the Free Software
179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream*/
209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//
229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// these are the key numbers that should be passed to Key_Event
239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//
249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_TAB			9
259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_ENTER			13
269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_ESCAPE		27
279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_SPACE			32
289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// normal keys should be passed as lowercased ascii
309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_BACKSPACE		127
329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_UPARROW		128
339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_DOWNARROW		129
349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_LEFTARROW		130
359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_RIGHTARROW	131
369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_ALT			132
389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_CTRL			133
399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_SHIFT			134
409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F1			135
419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F2			136
429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F3			137
439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F4			138
449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F5			139
459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F6			140
469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F7			141
479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F8			142
489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F9			143
499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F10			144
509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F11			145
519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_F12			146
529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_INS			147
539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_DEL			148
549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_PGDN			149
559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_PGUP			150
569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_HOME			151
579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_END			152
589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define K_PAUSE			255
609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//
629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// mouse buttons generate virtual keys
639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//
649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_MOUSE1		200
659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_MOUSE2		201
669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_MOUSE3		202
679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//
699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// joystick buttons
709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//
719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_JOY1			203
729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_JOY2			204
739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_JOY3			205
749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_JOY4			206
759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//
779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// aux keys are for multi-buttoned joysticks to generate so they can use
789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// the normal binding process
799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream//
809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX1			207
819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX2			208
829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX3			209
839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX4			210
849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX5			211
859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX6			212
869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX7			213
879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX8			214
889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX9			215
899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX10			216
909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX11			217
919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX12			218
929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX13			219
939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX14			220
949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX15			221
959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX16			222
969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX17			223
979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX18			224
989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX19			225
999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX20			226
1009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX21			227
1019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX22			228
1029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX23			229
1039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX24			230
1049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX25			231
1059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX26			232
1069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX27			233
1079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX28			234
1089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX29			235
1099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX30			236
1109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX31			237
1119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define	K_AUX32			238
1129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream// JACK: Intellimouse(c) Mouse Wheel Support
1149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define K_MWHEELUP		239
1169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define K_MWHEELDOWN	240
1179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum {key_game, key_console, key_message, key_menu} keydest_t;
1219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern keydest_t	key_dest;
1239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern char *keybindings[256];
1249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern	int		key_repeats[256];
1259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern	int		key_count;			// incremented every key event
1269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern	int		key_lastpress;
1279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern char chat_buffer[];
1299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern	int chat_bufferlen;
1309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern	qboolean	chat_team;
1319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Key_Event (int key, qboolean down);
1339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Key_Init (void);
1349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Key_WriteBindings (FILE *f);
1359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Key_SetBinding (int keynum, char *binding);
1369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamvoid Key_ClearStates (void);
1379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
138