2010-02-15 23:26:55 +00:00
|
|
|
/*
|
|
|
|
Copyright (C) 1996-2001 Id Software, Inc.
|
|
|
|
Copyright (C) 2002-2009 John Fitzgibbons and others
|
2014-09-22 08:55:46 +00:00
|
|
|
Copyright (C) 2010-2014 QuakeSpasm developers
|
2010-02-15 23:26:55 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
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 the Free Software
|
|
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
bspfile.h, cdaudio.h, client.h, cmd.h, common.h, console.h, crc.h, cvar.h,
d_ifacea.h, draw.h, gl_texmgr.h, glquake.h, image.h, input.h, keys.h, mathlib.h,
menu.h, modelgen.h, net.h, net_dgrm.h, net_loop.h, net_sdlnet.h, net_udp.h,
net_wins.h, platform.h, pr_comp.h, progdefs.h, progs.h, protocol.h, quakedef.h,
render.h, resource.h, sbar.h, screen.h, server.h, sound.h, spritegn.h, sys.h,
vid.h, view.h, wad.h, world.h, zone.h: added include guards to the headers.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@84 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-02-21 00:01:08 +00:00
|
|
|
#ifndef _QUAKE_KEYS_H
|
|
|
|
#define _QUAKE_KEYS_H
|
|
|
|
|
2010-02-15 23:26:55 +00:00
|
|
|
//
|
|
|
|
// 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
|
|
|
|
|
2012-06-25 11:20:38 +00:00
|
|
|
#define K_KP_NUMLOCK 153
|
|
|
|
#define K_KP_SLASH 154
|
|
|
|
#define K_KP_STAR 155
|
|
|
|
#define K_KP_MINUS 156
|
|
|
|
#define K_KP_HOME 157
|
|
|
|
#define K_KP_UPARROW 158
|
|
|
|
#define K_KP_PGUP 159
|
|
|
|
#define K_KP_PLUS 160
|
|
|
|
#define K_KP_LEFTARROW 161
|
|
|
|
#define K_KP_5 162
|
|
|
|
#define K_KP_RIGHTARROW 163
|
|
|
|
#define K_KP_END 164
|
|
|
|
#define K_KP_DOWNARROW 165
|
|
|
|
#define K_KP_PGDN 166
|
|
|
|
#define K_KP_ENTER 167
|
|
|
|
#define K_KP_INS 168
|
|
|
|
#define K_KP_DEL 169
|
2010-02-15 23:26:55 +00:00
|
|
|
|
2012-09-28 21:41:31 +00:00
|
|
|
#define K_COMMAND 170
|
|
|
|
|
2010-02-15 23:26:55 +00:00
|
|
|
#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
|
2012-06-25 11:20:38 +00:00
|
|
|
// aux29-32: reserved for the HAT (POV) switch motion
|
2010-02-15 23:26:55 +00:00
|
|
|
#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
|
|
|
|
|
|
|
|
// JACK: Intellimouse(c) Mouse Wheel Support
|
|
|
|
|
|
|
|
#define K_MWHEELUP 239
|
2010-07-25 10:36:14 +00:00
|
|
|
#define K_MWHEELDOWN 240
|
2010-02-15 23:26:55 +00:00
|
|
|
|
2011-02-10 16:10:53 +00:00
|
|
|
// thumb buttons
|
|
|
|
#define K_MOUSE4 241
|
|
|
|
#define K_MOUSE5 242
|
|
|
|
|
2016-03-01 21:58:08 +00:00
|
|
|
// SDL2 game controller keys
|
|
|
|
#define K_LTHUMB 243
|
|
|
|
#define K_RTHUMB 244
|
|
|
|
#define K_LSHOULDER 245
|
|
|
|
#define K_RSHOULDER 246
|
|
|
|
#define K_ABUTTON 247
|
|
|
|
#define K_BBUTTON 248
|
|
|
|
#define K_XBUTTON 249
|
|
|
|
#define K_YBUTTON 250
|
|
|
|
#define K_LTRIGGER 251
|
|
|
|
#define K_RTRIGGER 252
|
|
|
|
|
2016-08-21 17:37:21 +00:00
|
|
|
#define MAX_KEYS 256
|
2018-07-07 14:05:34 +00:00
|
|
|
#define MAX_BINDMAPS 8
|
2010-02-15 23:26:55 +00:00
|
|
|
|
2012-10-21 09:55:16 +00:00
|
|
|
#define MAXCMDLINE 256
|
2010-02-15 23:26:55 +00:00
|
|
|
|
2012-10-21 09:55:16 +00:00
|
|
|
typedef enum {key_game, key_console, key_message, key_menu} keydest_t;
|
2010-07-25 10:36:14 +00:00
|
|
|
|
2010-02-15 23:26:55 +00:00
|
|
|
extern keydest_t key_dest;
|
2018-07-07 14:05:34 +00:00
|
|
|
extern char *keybindings[MAX_BINDMAPS][MAX_KEYS];
|
2010-02-15 23:26:55 +00:00
|
|
|
|
2018-01-10 04:40:31 +00:00
|
|
|
#define CMDLINES 64
|
|
|
|
|
|
|
|
extern char key_lines[CMDLINES][MAXCMDLINE];
|
2012-10-21 09:55:16 +00:00
|
|
|
extern int edit_line;
|
|
|
|
extern int key_linepos;
|
|
|
|
extern int key_insert;
|
|
|
|
extern double key_blinktime;
|
2018-07-07 14:05:34 +00:00
|
|
|
extern int key_bindmap[2];
|
2012-10-21 09:55:16 +00:00
|
|
|
|
2012-10-23 08:44:20 +00:00
|
|
|
extern qboolean chat_team;
|
|
|
|
|
2010-02-15 23:26:55 +00:00
|
|
|
void Key_Init (void);
|
|
|
|
void Key_ClearStates (void);
|
2012-10-23 08:44:20 +00:00
|
|
|
void Key_UpdateForDest (void);
|
|
|
|
|
2014-10-02 19:00:42 +00:00
|
|
|
void Key_BeginInputGrab (void);
|
|
|
|
void Key_EndInputGrab (void);
|
|
|
|
void Key_GetGrabbedInput (int *lastkey, int *lastchar);
|
|
|
|
|
2014-09-12 04:27:54 +00:00
|
|
|
void Key_Event (int key, qboolean down);
|
2023-03-13 09:48:35 +00:00
|
|
|
void Key_EventWithKeycode (int key, qboolean down, int keycode);
|
2014-09-12 04:27:54 +00:00
|
|
|
void Char_Event (int key);
|
2014-10-08 18:30:17 +00:00
|
|
|
qboolean Key_TextEntry (void);
|
chase.c, cl_input.c, cl_parse.c, client.h, common.c, common.h, console.h,
cvar.h, draw.h, gl_draw.c, gl_fog.c, gl_mesh.c, gl_model.c, gl_model.h,
gl_rmain.c, gl_rmisc.c, gl_screen.c, gl_sky.c, gl_texmgr.c, glquake.h,
host.c, keys.c, keys.h, main.c, menu.c, menu.h, pr_cmds.c, quakedef.h,
r_alias.c, r_brush.c, r_part.c, r_sprite.c, r_world.c, sbar.c, sbar.h,
screen.h, snd_dma.c, snd_mem.c, snd_mix.c, sv_main.c, sys_sdl.c, vid.h,
view.h, world.c, world.h: Loads of warning fixes about missing function
prototypes, missing parens around &, missing braces leading to ambiguous
else statements and unused and uninitialized variables. There are still a
couple of unitialised variables here and there, but not much. The warnings
about strict aliasing violations need taking care of.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@21 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-02-16 12:01:07 +00:00
|
|
|
|
2018-07-07 14:05:34 +00:00
|
|
|
void Key_SetBinding (int keynum, const char *binding, int bindmap);
|
2012-10-21 09:55:16 +00:00
|
|
|
const char *Key_KeynumToString (int keynum);
|
2018-05-01 00:35:14 +00:00
|
|
|
int Key_StringToKeynum (const char *str);
|
|
|
|
int Key_NativeToQC(int code);
|
|
|
|
int Key_QCToNative(int code); //warning: will return negative values for unknown qc keys.
|
2012-10-23 08:44:20 +00:00
|
|
|
void Key_WriteBindings (FILE *f);
|
2012-10-21 09:55:16 +00:00
|
|
|
|
|
|
|
void Key_EndChat (void);
|
|
|
|
const char *Key_GetChatBuffer (void);
|
|
|
|
int Key_GetChatMsgLen (void);
|
|
|
|
|
2010-06-26 00:15:22 +00:00
|
|
|
void History_Init (void);
|
|
|
|
void History_Shutdown (void);
|
|
|
|
|
bspfile.h, cdaudio.h, client.h, cmd.h, common.h, console.h, crc.h, cvar.h,
d_ifacea.h, draw.h, gl_texmgr.h, glquake.h, image.h, input.h, keys.h, mathlib.h,
menu.h, modelgen.h, net.h, net_dgrm.h, net_loop.h, net_sdlnet.h, net_udp.h,
net_wins.h, platform.h, pr_comp.h, progdefs.h, progs.h, protocol.h, quakedef.h,
render.h, resource.h, sbar.h, screen.h, server.h, sound.h, spritegn.h, sys.h,
vid.h, view.h, wad.h, world.h, zone.h: added include guards to the headers.
git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@84 af15c1b1-3010-417e-b628-4374ebc0bcbd
2010-02-21 00:01:08 +00:00
|
|
|
#endif /* _QUAKE_KEYS_H */
|
2010-02-15 23:26:55 +00:00
|
|
|
|