UFO: Alien Invasion
Loading...
Searching...
No Matches
cl_keys.h
Go to the documentation of this file.
1
5
6/*
7All original material Copyright (C) 2002-2025 UFO: Alien Invasion.
8
9Original file from Quake 2 v3.21: quake2-2.31/client/keys.h
10Copyright (C) 1997-2001 Id Software, Inc.
11
12This program is free software; you can redistribute it and/or
13modify it under the terms of the GNU General Public License
14as published by the Free Software Foundation; either version 2
15of the License, or (at your option) any later version.
16
17This program is distributed in the hope that it will be useful,
18but WITHOUT ANY WARRANTY; without even the implied warranty of
19MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20
21See the GNU General Public License for more details.
22
23You should have received a copy of the GNU General Public License
24along with this program; if not, write to the Free Software
25Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26
27*/
28
29#pragma once
30
31/* these are the key numbers that should be passed to KeyEvent */
32
33/* normal keys should be passed as lowercased ascii */
34
35typedef enum {
37
39 K_TAB = 9,
40 K_ENTER = 13,
41 K_PAUSE = 19,
43 K_SPACE = 32,
44 K_DEL = 127,
45
46 K_MOUSE1 = 200,
47 K_MOUSE2 = 201,
48 K_MOUSE3 = 202,
51 K_MOUSE4 = 241,
52 K_MOUSE5 = 242,
53
54 K_KP_INS = 256,
55 K_KP_END = 257,
57 K_KP_PGDN = 259,
59 K_KP_5 = 261,
61 K_KP_HOME = 263,
63 K_KP_PGUP = 265,
64 K_KP_DEL = 266,
68 K_KP_PLUS = 270,
71
72 K_UPARROW = 273,
76
77 K_HOME = 278,
78 K_END = 279,
79 K_PGUP = 280,
80 K_PGDN = 281,
81 K_F1 = 282,
82 K_F2 = 283,
83 K_F3 = 284,
84 K_F4 = 285,
85 K_F5 = 286,
86 K_F6 = 287,
87 K_F7 = 288,
88 K_F8 = 289,
89 K_F9 = 290,
90 K_F10 = 291,
91 K_F11 = 292,
92 K_F12 = 293,
93 K_F13 = 294,
94 K_F14 = 295,
95 K_F15 = 296,
96 K_INS = 277,
97 K_SHIFT = 304,
98 K_CTRL = 306,
99 K_ALT = 308,
100
133
150
163
168
169 K_LAST_KEY = 511, /* to support as many chars as posible */
171} keyNum_t;
172
180
185
186#define MAXKEYLINES 32
187
188extern int msgMode;
189extern char msgBuffer[MAXCMDLINE];
190extern size_t msgBufferLen;
191extern char keyLines[MAXKEYLINES][MAXCMDLINE];
192extern uint32_t keyLinePos;
193extern int historyLine;
194extern int editLine;
195extern char* keyBindings[K_KEY_SIZE];
196extern char* menuKeyBindings[K_KEY_SIZE];
197extern char* battleKeyBindings[K_KEY_SIZE];
198
199bool Key_IsDown(unsigned int key);
200bool Key_IsNumlock(void);
201void Key_SetDest(keydest_t key_dest);
202void Key_Event(unsigned int key, unsigned short unicode, bool down, unsigned time);
203void Key_Init(void);
204void Key_WriteBindings(const char* filename);
205const char* Key_GetBinding(const char* binding, keyBindSpace_t space);
206const char* Key_KeynumToString(int keynum);
207int Key_StringToKeynum(const char* str);
208void Key_SetBinding(int keynum, const char* binding, keyBindSpace_t space);
unsigned int key
Definition cl_input.cpp:64
int down
Definition cl_input.cpp:66
unsigned short unicode
Definition cl_input.cpp:65
char keyLines[MAXKEYLINES][MAXCMDLINE]
Definition cl_keys.cpp:37
char * keyBindings[K_KEY_SIZE]
Definition cl_keys.cpp:63
int editLine
Definition cl_keys.cpp:42
char msgBuffer[MAXCMDLINE]
Definition cl_keys.cpp:46
char * menuKeyBindings[K_KEY_SIZE]
Definition cl_keys.cpp:64
uint32_t keyLinePos
Definition cl_keys.cpp:38
int historyLine
Definition cl_keys.cpp:43
size_t msgBufferLen
Definition cl_keys.cpp:47
int msgMode
Definition cl_keys.cpp:45
char * battleKeyBindings[K_KEY_SIZE]
Definition cl_keys.cpp:65
void Key_Init(void)
Definition cl_keys.cpp:776
bool Key_IsDown(unsigned int key)
Checks whether a given key is currently pressed.
Definition cl_keys.cpp:214
const char * Key_GetBinding(const char *binding, keyBindSpace_t space)
Return the key binding for a given script command.
Definition cl_keys.cpp:511
void Key_SetBinding(int keynum, const char *binding, keyBindSpace_t space)
Bind a keynum to script command.
Definition cl_keys.cpp:547
void Key_WriteBindings(const char *filename)
Writes lines containing "bind key value".
Definition cl_keys.cpp:664
void Key_SetDest(keydest_t key_dest)
Sets the keyDest in cls.
Definition cl_keys.cpp:815
bool Key_IsNumlock(void)
Definition cl_keys.cpp:221
keydest_t
Definition cl_keys.h:181
@ key_game
Definition cl_keys.h:182
@ key_console
Definition cl_keys.h:183
const char * Key_KeynumToString(int keynum)
Convert a given keynum to string.
Definition cl_keys.cpp:485
void Key_Event(unsigned int key, unsigned short unicode, bool down, unsigned time)
Called by the system between frames for both key up and key down events.
Definition cl_keys.cpp:841
keyNum_t
Definition cl_keys.h:35
@ K_F2
Definition cl_keys.h:82
@ K_FIRST_KEY
Definition cl_keys.h:36
@ K_F1
Definition cl_keys.h:81
@ K_MOUSE4
Definition cl_keys.h:51
@ K_JOY19
Definition cl_keys.h:119
@ K_SHIFT
Definition cl_keys.h:97
@ K_KP_5
Definition cl_keys.h:59
@ K_F12
Definition cl_keys.h:92
@ K_KP_RIGHTARROW
Definition cl_keys.h:60
@ K_DEL
Definition cl_keys.h:44
@ K_JOY22
Definition cl_keys.h:122
@ K_KP_MINUS
Definition cl_keys.h:67
@ K_JOY21
Definition cl_keys.h:121
@ K_F6
Definition cl_keys.h:86
@ K_JOY32
Definition cl_keys.h:132
@ K_F4
Definition cl_keys.h:84
@ K_JOY7
Definition cl_keys.h:107
@ K_AUX15
Definition cl_keys.h:148
@ K_KP_PGDN
Definition cl_keys.h:57
@ K_JOY12
Definition cl_keys.h:112
@ K_EURO
Definition cl_keys.h:161
@ K_JOY25
Definition cl_keys.h:125
@ K_MOUSE5
Definition cl_keys.h:52
@ K_KP_DEL
Definition cl_keys.h:64
@ K_KP_PGUP
Definition cl_keys.h:63
@ K_MENU
Definition cl_keys.h:160
@ K_LAST_KEY
Definition cl_keys.h:169
@ K_JOY17
Definition cl_keys.h:117
@ K_KP_UPARROW
Definition cl_keys.h:62
@ K_KP_INS
Definition cl_keys.h:54
@ K_KP_PLUS
Definition cl_keys.h:68
@ K_NUMLOCK
Definition cl_keys.h:151
@ K_COMPOSE
Definition cl_keys.h:153
@ K_ALT
Definition cl_keys.h:99
@ K_JOY23
Definition cl_keys.h:123
@ K_MWHEELUP
Definition cl_keys.h:50
@ K_KP_END
Definition cl_keys.h:55
@ K_JOY30
Definition cl_keys.h:130
@ K_F13
Definition cl_keys.h:93
@ K_JOY10
Definition cl_keys.h:110
@ K_SUPER
Definition cl_keys.h:152
@ K_JOY4
Definition cl_keys.h:104
@ K_JOY13
Definition cl_keys.h:113
@ K_JOY14
Definition cl_keys.h:114
@ K_COMMAND
Definition cl_keys.h:164
@ K_JOY15
Definition cl_keys.h:115
@ K_JOY16
Definition cl_keys.h:116
@ K_ENTER
Definition cl_keys.h:40
@ K_F9
Definition cl_keys.h:89
@ K_F14
Definition cl_keys.h:94
@ K_MOUSE2
Definition cl_keys.h:47
@ K_MOUSE1
Definition cl_keys.h:46
@ K_MODE
Definition cl_keys.h:154
@ K_AUX13
Definition cl_keys.h:146
@ K_AUX2
Definition cl_keys.h:135
@ K_UPARROW
Definition cl_keys.h:72
@ K_F8
Definition cl_keys.h:88
@ K_AUX9
Definition cl_keys.h:142
@ K_ESCAPE
Definition cl_keys.h:42
@ K_F5
Definition cl_keys.h:85
@ K_UNDO
Definition cl_keys.h:162
@ K_JOY18
Definition cl_keys.h:118
@ K_JOY5
Definition cl_keys.h:105
@ K_JOY31
Definition cl_keys.h:131
@ K_JOY29
Definition cl_keys.h:129
@ K_POWER
Definition cl_keys.h:166
@ K_JOY3
Definition cl_keys.h:103
@ K_JOY9
Definition cl_keys.h:109
@ K_AUX3
Definition cl_keys.h:136
@ K_JOY28
Definition cl_keys.h:128
@ K_JOY26
Definition cl_keys.h:126
@ K_AUX5
Definition cl_keys.h:138
@ K_SYSREQ
Definition cl_keys.h:157
@ K_JOY27
Definition cl_keys.h:127
@ K_AUX6
Definition cl_keys.h:139
@ K_AUX7
Definition cl_keys.h:140
@ K_PGUP
Definition cl_keys.h:79
@ K_AUX11
Definition cl_keys.h:144
@ K_PAUSE
Definition cl_keys.h:41
@ K_JOY20
Definition cl_keys.h:120
@ K_KP_DOWNARROW
Definition cl_keys.h:56
@ K_KP_NUMLOCK
Definition cl_keys.h:70
@ K_JOY24
Definition cl_keys.h:124
@ K_AUX1
Definition cl_keys.h:134
@ K_BACKSPACE
Definition cl_keys.h:38
@ K_JOY2
Definition cl_keys.h:102
@ K_CAPSLOCK
Definition cl_keys.h:165
@ K_KP_SLASH
Definition cl_keys.h:65
@ K_HELP
Definition cl_keys.h:155
@ K_MOUSE3
Definition cl_keys.h:48
@ K_END
Definition cl_keys.h:78
@ K_JOY11
Definition cl_keys.h:111
@ K_F15
Definition cl_keys.h:95
@ K_APPS
Definition cl_keys.h:167
@ K_SCROLLOCK
Definition cl_keys.h:158
@ K_INS
Definition cl_keys.h:96
@ K_F10
Definition cl_keys.h:90
@ K_KP_ENTER
Definition cl_keys.h:69
@ K_CTRL
Definition cl_keys.h:98
@ K_AUX14
Definition cl_keys.h:147
@ K_KP_LEFTARROW
Definition cl_keys.h:58
@ K_JOY8
Definition cl_keys.h:108
@ K_MWHEELDOWN
Definition cl_keys.h:49
@ K_F11
Definition cl_keys.h:91
@ K_KP_MULTIPLY
Definition cl_keys.h:66
@ K_SPACE
Definition cl_keys.h:43
@ K_HOME
Definition cl_keys.h:77
@ K_AUX10
Definition cl_keys.h:143
@ K_PRINT
Definition cl_keys.h:156
@ K_TAB
Definition cl_keys.h:39
@ K_JOY6
Definition cl_keys.h:106
@ K_AUX8
Definition cl_keys.h:141
@ K_RIGHTARROW
Definition cl_keys.h:74
@ K_KEY_SIZE
Definition cl_keys.h:170
@ K_F3
Definition cl_keys.h:83
@ K_F7
Definition cl_keys.h:87
@ K_DOWNARROW
Definition cl_keys.h:73
@ K_KP_HOME
Definition cl_keys.h:61
@ K_AUX16
Definition cl_keys.h:149
@ K_JOY1
Definition cl_keys.h:101
@ K_BREAK
Definition cl_keys.h:159
@ K_AUX4
Definition cl_keys.h:137
@ K_AUX12
Definition cl_keys.h:145
@ K_PGDN
Definition cl_keys.h:80
@ K_LEFTARROW
Definition cl_keys.h:75
keyBindSpace_t
Definition cl_keys.h:173
@ KEYSPACE_UI
Definition cl_keys.h:174
@ KEYSPACE_MAX
Definition cl_keys.h:178
@ KEYSPACE_BATTLE
Definition cl_keys.h:176
@ KEYSPACE_GAME
Definition cl_keys.h:175
#define MAXKEYLINES
Definition cl_keys.h:186
int Key_StringToKeynum(const char *str)
Convert to given string to keynum.
Definition cl_keys.cpp:462
#define MAXCMDLINE
Definition common.h:285
const char * filename
Definition ioapi.h:41
const uiKeyBinding_t * binding