icculus quake2 doxygen  1.0 dev
keys.h File Reference

Go to the source code of this file.

Enumerations

enum  QKEYS {
  K_TAB = 9, K_ENTER = 13, K_ESCAPE = 27, K_SPACE = 32,
  K_BACKSPACE = 127, K_UPARROW = 128, K_DOWNARROW = 129, K_LEFTARROW = 130,
  K_RIGHTARROW = 131, K_ALT = 132, K_CTRL = 133, K_SHIFT = 134,
  K_F1 = 135, K_F2 = 136, K_F3 = 137, K_F4 = 138,
  K_F5 = 139, K_F6 = 140, K_F7 = 141, K_F8 = 142,
  K_F9 = 143, K_F10 = 144, K_F11 = 145, K_F12 = 146,
  K_INS = 147, K_DEL = 148, K_PGDN = 149, K_PGUP = 150,
  K_HOME = 151, K_END = 152, K_KP_HOME = 160, K_KP_UPARROW = 161,
  K_KP_PGUP = 162, K_KP_LEFTARROW = 163, K_KP_5 = 164, K_KP_RIGHTARROW = 165,
  K_KP_END = 166, K_KP_DOWNARROW = 167, K_KP_PGDN = 168, K_KP_ENTER = 169,
  K_KP_INS = 170, K_KP_DEL = 171, K_KP_SLASH = 172, K_KP_MINUS = 173,
  K_KP_PLUS = 174, K_MOUSE1 = 200, K_MOUSE2 = 201, K_MOUSE3 = 202,
  K_MOUSE4 = 241, K_MOUSE5 = 242, K_JOY1 = 203, K_JOY2 = 204,
  K_JOY3 = 205, K_JOY4 = 206, K_AUX1 = 207, K_AUX2 = 208,
  K_AUX3 = 209, K_AUX4 = 210, K_AUX5 = 211, K_AUX6 = 212,
  K_AUX7 = 213, K_AUX8 = 214, K_AUX9 = 215, K_AUX10 = 216,
  K_AUX11 = 217, K_AUX12 = 218, K_AUX13 = 219, K_AUX14 = 220,
  K_AUX15 = 221, K_AUX16 = 222, K_AUX17 = 223, K_AUX18 = 224,
  K_AUX19 = 225, K_AUX20 = 226, K_AUX21 = 227, K_AUX22 = 228,
  K_AUX23 = 229, K_AUX24 = 230, K_AUX25 = 231, K_AUX26 = 232,
  K_AUX27 = 233, K_AUX28 = 234, K_AUX29 = 235, K_AUX30 = 236,
  K_AUX31 = 237, K_AUX32 = 238, K_MWHEELDOWN = 239, K_MWHEELUP = 240,
  K_PAUSE = 255, K_LAST
}
 

Functions

void Key_Event (int key, qboolean down, unsigned time)
 
void Key_Init (void)
 
void Key_WriteBindings (FILE *f)
 
void Key_SetBinding (int keynum, char *binding)
 
void Key_ClearStates (void)
 
int Key_GetKey (void)
 

Variables

char * keybindings [K_LAST]
 
int key_repeats [K_LAST]
 
int anykeydown
 
char chat_buffer []
 
int chat_bufferlen
 
qboolean chat_team
 

Enumeration Type Documentation

◆ QKEYS

enum QKEYS
Enumerator
K_TAB 
K_ENTER 
K_ESCAPE 
K_SPACE 
K_BACKSPACE 
K_UPARROW 
K_DOWNARROW 
K_LEFTARROW 
K_RIGHTARROW 
K_ALT 
K_CTRL 
K_SHIFT 
K_F1 
K_F2 
K_F3 
K_F4 
K_F5 
K_F6 
K_F7 
K_F8 
K_F9 
K_F10 
K_F11 
K_F12 
K_INS 
K_DEL 
K_PGDN 
K_PGUP 
K_HOME 
K_END 
K_KP_HOME 
K_KP_UPARROW 
K_KP_PGUP 
K_KP_LEFTARROW 
K_KP_5 
K_KP_RIGHTARROW 
K_KP_END 
K_KP_DOWNARROW 
K_KP_PGDN 
K_KP_ENTER 
K_KP_INS 
K_KP_DEL 
K_KP_SLASH 
K_KP_MINUS 
K_KP_PLUS 
K_MOUSE1 
K_MOUSE2 
K_MOUSE3 
K_MOUSE4 
K_MOUSE5 
K_JOY1 
K_JOY2 
K_JOY3 
K_JOY4 
K_AUX1 
K_AUX2 
K_AUX3 
K_AUX4 
K_AUX5 
K_AUX6 
K_AUX7 
K_AUX8 
K_AUX9 
K_AUX10 
K_AUX11 
K_AUX12 
K_AUX13 
K_AUX14 
K_AUX15 
K_AUX16 
K_AUX17 
K_AUX18 
K_AUX19 
K_AUX20 
K_AUX21 
K_AUX22 
K_AUX23 
K_AUX24 
K_AUX25 
K_AUX26 
K_AUX27 
K_AUX28 
K_AUX29 
K_AUX30 
K_AUX31 
K_AUX32 
K_MWHEELDOWN 
K_MWHEELUP 
K_PAUSE 
K_LAST 

Definition at line 24 of file keys.h.

24  {
25  K_TAB = 9,
26  K_ENTER = 13,
27  K_ESCAPE = 27,
28  K_SPACE = 32,
29 
30 // normal keys should be passed as lowercased ascii
31 
32  K_BACKSPACE = 127,
33  K_UPARROW = 128,
34  K_DOWNARROW = 129,
35  K_LEFTARROW = 130,
36  K_RIGHTARROW = 131,
37 
38  K_ALT = 132,
39  K_CTRL = 133,
40  K_SHIFT = 134,
41  K_F1 = 135,
42  K_F2 = 136,
43  K_F3 = 137,
44  K_F4 = 138,
45  K_F5 = 139,
46  K_F6 = 140,
47  K_F7 = 141,
48  K_F8 = 142,
49  K_F9 = 143,
50  K_F10 = 144,
51  K_F11 = 145,
52  K_F12 = 146,
53  K_INS = 147,
54  K_DEL = 148,
55  K_PGDN = 149,
56  K_PGUP = 150,
57  K_HOME = 151,
58  K_END = 152,
59 
60  K_KP_HOME = 160,
61  K_KP_UPARROW = 161,
62  K_KP_PGUP = 162,
63  K_KP_LEFTARROW = 163,
64  K_KP_5 = 164,
65  K_KP_RIGHTARROW = 165,
66  K_KP_END = 166,
67  K_KP_DOWNARROW = 167,
68  K_KP_PGDN = 168,
69  K_KP_ENTER = 169,
70  K_KP_INS = 170,
71  K_KP_DEL = 171,
72  K_KP_SLASH = 172,
73  K_KP_MINUS = 173,
74  K_KP_PLUS = 174,
75 
76 //
77 // mouse buttons generate virtual keys
78 //
79  K_MOUSE1 = 200,
80  K_MOUSE2 = 201,
81  K_MOUSE3 = 202,
82  K_MOUSE4 = 241,
83  K_MOUSE5 = 242,
84 
85 //
86 // joystick buttons
87 //
88  K_JOY1 = 203,
89  K_JOY2 = 204,
90  K_JOY3 = 205,
91  K_JOY4 = 206,
92 
93 //
94 // aux keys are for multi-buttoned joysticks to generate so they can use
95 // the normal binding process
96 //
97  K_AUX1 = 207,
98  K_AUX2 = 208,
99  K_AUX3 = 209,
100  K_AUX4 = 210,
101  K_AUX5 = 211,
102  K_AUX6 = 212,
103  K_AUX7 = 213,
104  K_AUX8 = 214,
105  K_AUX9 = 215,
106  K_AUX10 = 216,
107  K_AUX11 = 217,
108  K_AUX12 = 218,
109  K_AUX13 = 219,
110  K_AUX14 = 220,
111  K_AUX15 = 221,
112  K_AUX16 = 222,
113  K_AUX17 = 223,
114  K_AUX18 = 224,
115  K_AUX19 = 225,
116  K_AUX20 = 226,
117  K_AUX21 = 227,
118  K_AUX22 = 228,
119  K_AUX23 = 229,
120  K_AUX24 = 230,
121  K_AUX25 = 231,
122  K_AUX26 = 232,
123  K_AUX27 = 233,
124  K_AUX28 = 234,
125  K_AUX29 = 235,
126  K_AUX30 = 236,
127  K_AUX31 = 237,
128  K_AUX32 = 238,
129 
130  K_MWHEELDOWN = 239,
131  K_MWHEELUP = 240,
132 
133  K_PAUSE = 255,
134 
135  K_LAST
136 };

Function Documentation

◆ Key_ClearStates()

void Key_ClearStates ( void  )

Definition at line 919 of file keys.c.

920 {
921  int i;
922 
923  anykeydown = false;
924 
925  for (i=0 ; i<K_LAST ; i++)
926  {
927  if ( keydown[i] || key_repeats[i] )
928  Key_Event( i, false, 0 );
929  keydown[i] = 0;
930  key_repeats[i] = 0;
931  }
932 }

Referenced by AppActivate(), and M_ForceMenuOff().

◆ Key_Event()

void Key_Event ( int  key,
qboolean  down,
unsigned  time 
)

Definition at line 745 of file keys.c.

746 {
747  char *kb;
748  char cmd[1024];
749 
750  // hack for modal presses
751  if (key_waiting == -1)
752  {
753  if (down)
754  key_waiting = key;
755  return;
756  }
757 
758  // update auto-repeat status
759  if (down)
760  {
761  key_repeats[key]++;
762  if (key != K_BACKSPACE
763  && key != K_PAUSE
764  && key != K_PGUP
765  && key != K_KP_PGUP
766  && key != K_PGDN
767  && key != K_KP_PGDN
768  && key_repeats[key] > 1)
769  return; // ignore most autorepeats
770 
771  if (key >= 200 && !keybindings[key])
772  Com_Printf ("%s is unbound, hit F4 to set.\n", Key_KeynumToString (key) );
773  }
774  else
775  {
776  key_repeats[key] = 0;
777  }
778 
779  if (key == K_SHIFT)
780  shift_down = down;
781 
782  // console key is hardcoded, so the user can never unbind it
783  if (key == '`' || key == '~')
784  {
785  if (!down)
786  return;
788  return;
789  }
790 
791  // any key during the attract mode will bring up the menu
792  if (cl.attractloop && cls.key_dest != key_menu &&
793  !(key >= K_F1 && key <= K_F12))
794  key = K_ESCAPE;
795 
796  // menu key is hardcoded, so the user can never unbind it
797  if (key == K_ESCAPE)
798  {
799  if (!down)
800  return;
801 
803  { // put away help computer / inventory
804  Cbuf_AddText ("cmd putaway\n");
805  return;
806  }
807  switch (cls.key_dest)
808  {
809  case key_message:
810  Key_Message (key);
811  break;
812  case key_menu:
813  M_Keydown (key);
814  break;
815  case key_game:
816  case key_console:
817  M_Menu_Main_f ();
818  break;
819  default:
820  Com_Error (ERR_FATAL, "Bad cls.key_dest");
821  }
822  return;
823  }
824 
825  // track if any key is down for BUTTON_ANY
826  keydown[key] = down;
827  if (down)
828  {
829  if (key_repeats[key] == 1)
830  anykeydown++;
831  }
832  else
833  {
834  anykeydown--;
835  if (anykeydown < 0)
836  anykeydown = 0;
837  }
838 
839 //
840 // key up events only generate commands if the game key binding is
841 // a button command (leading + sign). These will occur even in console mode,
842 // to keep the character from continuing an action started before a console
843 // switch. Button commands include the kenum as a parameter, so multiple
844 // downs can be matched with ups
845 //
846  if (!down)
847  {
848  kb = keybindings[key];
849  if (kb && kb[0] == '+')
850  {
851  Com_sprintf (cmd, sizeof(cmd), "-%s %i %i\n", kb+1, key, time);
852  Cbuf_AddText (cmd);
853  }
854  if (keyshift[key] != key)
855  {
856  kb = keybindings[keyshift[key]];
857  if (kb && kb[0] == '+')
858  {
859  Com_sprintf (cmd, sizeof(cmd), "-%s %i %i\n", kb+1, key, time);
860  Cbuf_AddText (cmd);
861  }
862  }
863  return;
864  }
865 
866 //
867 // if not a consolekey, send to the interpreter no matter what mode is
868 //
869  if ( (cls.key_dest == key_menu && menubound[key])
870  || (cls.key_dest == key_console && !consolekeys[key])
871  || (cls.key_dest == key_game && ( cls.state == ca_active || !consolekeys[key] ) ) )
872  {
873  kb = keybindings[key];
874  if (kb)
875  {
876  if (kb[0] == '+')
877  { // button commands add keynum and time as a parm
878  Com_sprintf (cmd, sizeof(cmd), "%s %i %i\n", kb, key, time);
879  Cbuf_AddText (cmd);
880  }
881  else
882  {
883  Cbuf_AddText (kb);
884  Cbuf_AddText ("\n");
885  }
886  }
887  return;
888  }
889 
890  if (!down)
891  return; // other systems only care about key down events
892 
893  if (shift_down)
894  key = keyshift[key];
895 
896  switch (cls.key_dest)
897  {
898  case key_message:
899  Key_Message (key);
900  break;
901  case key_menu:
902  M_Keydown (key);
903  break;
904 
905  case key_game:
906  case key_console:
907  Key_Console (key);
908  break;
909  default:
910  Com_Error (ERR_FATAL, "Bad cls.key_dest");
911  }
912 }

Referenced by IN_Commands(), IN_MouseEvent(), Key_ClearStates(), and MainWndProc().

◆ Key_GetKey()

int Key_GetKey ( void  )

Definition at line 940 of file keys.c.

941 {
942  key_waiting = -1;
943 
944  while (key_waiting == -1)
946 
947  return key_waiting;
948 }

◆ Key_Init()

void Key_Init ( void  )

Definition at line 650 of file keys.c.

651 {
652  int i;
653 
654  for (i=0 ; i<32 ; i++)
655  {
656  key_lines[i][0] = ']';
657  key_lines[i][1] = 0;
658  }
659  key_linepos = 1;
660 
661 //
662 // init ascii characters in console mode
663 //
664  for (i=32 ; i<128 ; i++)
665  consolekeys[i] = true;
666  consolekeys[K_ENTER] = true;
667  consolekeys[K_KP_ENTER] = true;
668  consolekeys[K_TAB] = true;
669  consolekeys[K_LEFTARROW] = true;
670  consolekeys[K_KP_LEFTARROW] = true;
671  consolekeys[K_RIGHTARROW] = true;
673  consolekeys[K_UPARROW] = true;
674  consolekeys[K_KP_UPARROW] = true;
675  consolekeys[K_DOWNARROW] = true;
676  consolekeys[K_KP_DOWNARROW] = true;
677  consolekeys[K_BACKSPACE] = true;
678  consolekeys[K_HOME] = true;
679  consolekeys[K_KP_HOME] = true;
680  consolekeys[K_END] = true;
681  consolekeys[K_KP_END] = true;
682  consolekeys[K_PGUP] = true;
683  consolekeys[K_KP_PGUP] = true;
684  consolekeys[K_PGDN] = true;
685  consolekeys[K_KP_PGDN] = true;
686  consolekeys[K_SHIFT] = true;
687  consolekeys[K_INS] = true;
688  consolekeys[K_KP_INS] = true;
689  consolekeys[K_KP_DEL] = true;
690  consolekeys[K_KP_SLASH] = true;
691  consolekeys[K_KP_PLUS] = true;
692  consolekeys[K_KP_MINUS] = true;
693  consolekeys[K_KP_5] = true;
694 
695  consolekeys['`'] = false;
696  consolekeys['~'] = false;
697 
698  for (i=0 ; i<K_LAST ; i++)
699  keyshift[i] = i;
700  for (i='a' ; i<='z' ; i++)
701  keyshift[i] = i - 'a' + 'A';
702  keyshift['1'] = '!';
703  keyshift['2'] = '@';
704  keyshift['3'] = '#';
705  keyshift['4'] = '$';
706  keyshift['5'] = '%';
707  keyshift['6'] = '^';
708  keyshift['7'] = '&';
709  keyshift['8'] = '*';
710  keyshift['9'] = '(';
711  keyshift['0'] = ')';
712  keyshift['-'] = '_';
713  keyshift['='] = '+';
714  keyshift[','] = '<';
715  keyshift['.'] = '>';
716  keyshift['/'] = '?';
717  keyshift[';'] = ':';
718  keyshift['\''] = '"';
719  keyshift['['] = '{';
720  keyshift[']'] = '}';
721  keyshift['`'] = '~';
722  keyshift['\\'] = '|';
723 
724  menubound[K_ESCAPE] = true;
725  for (i=0 ; i<12 ; i++)
726  menubound[K_F1+i] = true;
727 
728 //
729 // register our functions
730 //
731  Cmd_AddCommand ("bind",Key_Bind_f);
732  Cmd_AddCommand ("unbind",Key_Unbind_f);
733  Cmd_AddCommand ("unbindall",Key_Unbindall_f);
734  Cmd_AddCommand ("bindlist",Key_Bindlist_f);
735 }

◆ Key_SetBinding()

void Key_SetBinding ( int  keynum,
char *  binding 
)

Definition at line 509 of file keys.c.

510 {
511  char *new;
512  int l;
513 
514  if (keynum == -1)
515  return;
516 
517 // free old bindings
518  if (keybindings[keynum])
519  {
520  Z_Free (keybindings[keynum]);
521  keybindings[keynum] = NULL;
522  }
523 
524 // allocate memory for new binding
525  l = strlen (binding);
526  new = Z_Malloc (l+1);
527  strcpy (new, binding);
528  new[l] = 0;
529  keybindings[keynum] = new;
530 }

Referenced by Key_Bind_f(), Key_Unbind_f(), Key_Unbindall_f(), and M_UnbindCommand().

◆ Key_WriteBindings()

void Key_WriteBindings ( FILE *  f)

Definition at line 619 of file keys.c.

620 {
621  int i;
622 
623  for (i=0 ; i<K_LAST ; i++)
624  if (keybindings[i] && keybindings[i][0])
625  fprintf (f, "bind %s \"%s\"\n", Key_KeynumToString(i), keybindings[i]);
626 }

Referenced by CL_WriteConfiguration().

Variable Documentation

◆ anykeydown

int anykeydown

Definition at line 33 of file keys.c.

Referenced by CL_FinishMove(), Key_ClearStates(), and Key_Event().

◆ chat_buffer

char chat_buffer[]

Definition at line 395 of file keys.c.

Referenced by Con_DrawNotify(), and Key_Message().

◆ chat_bufferlen

int chat_bufferlen

Definition at line 396 of file keys.c.

Referenced by Con_DrawNotify(), and Key_Message().

◆ chat_team

qboolean chat_team

Definition at line 394 of file keys.c.

Referenced by Con_DrawNotify(), Con_MessageMode2_f(), Con_MessageMode_f(), and Key_Message().

◆ key_repeats

int key_repeats[K_LAST]

Definition at line 43 of file keys.c.

Referenced by Key_ClearStates(), and Key_Event().

◆ keybindings

K_KP_PLUS
@ K_KP_PLUS
Definition: keys.h:74
K_AUX3
@ K_AUX3
Definition: keys.h:99
K_END
@ K_END
Definition: keys.h:58
keydown
qboolean keydown[K_LAST]
Definition: keys.c:44
K_DOWNARROW
@ K_DOWNARROW
Definition: keys.h:34
K_AUX31
@ K_AUX31
Definition: keys.h:127
K_KP_UPARROW
@ K_KP_UPARROW
Definition: keys.h:61
client_state_t::attractloop
qboolean attractloop
Definition: client.h:173
K_MOUSE4
@ K_MOUSE4
Definition: keys.h:82
Key_Event
void Key_Event(int key, qboolean down, unsigned time)
Definition: keys.c:745
K_KP_PGDN
@ K_KP_PGDN
Definition: keys.h:68
K_MOUSE5
@ K_MOUSE5
Definition: keys.h:83
M_Menu_Main_f
void M_Menu_Main_f(void)
Definition: menu.c:494
K_AUX26
@ K_AUX26
Definition: keys.h:122
K_AUX28
@ K_AUX28
Definition: keys.h:124
K_AUX13
@ K_AUX13
Definition: keys.h:109
keyshift
int keyshift[K_LAST]
Definition: keys.c:42
i
int i
Definition: q_shared.c:305
keybindings
char * keybindings[K_LAST]
Definition: keys.c:39
anykeydown
int anykeydown
Definition: keys.c:33
K_AUX18
@ K_AUX18
Definition: keys.h:114
K_AUX4
@ K_AUX4
Definition: keys.h:100
K_KP_LEFTARROW
@ K_KP_LEFTARROW
Definition: keys.h:63
K_AUX23
@ K_AUX23
Definition: keys.h:119
K_F12
@ K_F12
Definition: keys.h:52
ca_active
@ ca_active
Definition: client.h:209
K_AUX2
@ K_AUX2
Definition: keys.h:98
Con_ToggleConsole_f
void Con_ToggleConsole_f(void)
Definition: console.c:75
K_F7
@ K_F7
Definition: keys.h:47
K_AUX8
@ K_AUX8
Definition: keys.h:104
K_AUX12
@ K_AUX12
Definition: keys.h:108
K_AUX11
@ K_AUX11
Definition: keys.h:107
K_MWHEELDOWN
@ K_MWHEELDOWN
Definition: keys.h:130
key_waiting
int key_waiting
Definition: keys.c:38
K_HOME
@ K_HOME
Definition: keys.h:57
K_AUX17
@ K_AUX17
Definition: keys.h:113
K_KP_HOME
@ K_KP_HOME
Definition: keys.h:60
K_ENTER
@ K_ENTER
Definition: keys.h:26
key_menu
@ key_menu
Definition: client.h:220
K_JOY3
@ K_JOY3
Definition: keys.h:90
K_AUX29
@ K_AUX29
Definition: keys.h:125
K_KP_INS
@ K_KP_INS
Definition: keys.h:70
K_F8
@ K_F8
Definition: keys.h:48
K_LEFTARROW
@ K_LEFTARROW
Definition: keys.h:35
K_KP_MINUS
@ K_KP_MINUS
Definition: keys.h:73
K_AUX6
@ K_AUX6
Definition: keys.h:102
K_F6
@ K_F6
Definition: keys.h:46
K_AUX27
@ K_AUX27
Definition: keys.h:123
K_AUX20
@ K_AUX20
Definition: keys.h:116
K_ESCAPE
@ K_ESCAPE
Definition: keys.h:27
K_AUX21
@ K_AUX21
Definition: keys.h:117
K_F2
@ K_F2
Definition: keys.h:42
key_repeats
int key_repeats[K_LAST]
Definition: keys.c:43
K_PGUP
@ K_PGUP
Definition: keys.h:56
consolekeys
qboolean consolekeys[K_LAST]
Definition: keys.c:40
K_JOY1
@ K_JOY1
Definition: keys.h:88
K_AUX30
@ K_AUX30
Definition: keys.h:126
shift_down
int shift_down
Definition: keys.c:32
K_F10
@ K_F10
Definition: keys.h:50
Sys_SendKeyEvents
void Sys_SendKeyEvents(void)
Definition: sys_win.c:376
K_KP_RIGHTARROW
@ K_KP_RIGHTARROW
Definition: keys.h:65
Cmd_AddCommand
void Cmd_AddCommand(char *cmd_name, xcommand_t function)
Definition: cmd.c:691
Key_Bindlist_f
void Key_Bindlist_f(void)
Definition: keys.c:635
K_PGDN
@ K_PGDN
Definition: keys.h:55
key_game
@ key_game
Definition: client.h:220
K_AUX5
@ K_AUX5
Definition: keys.h:101
Cbuf_AddText
void Cbuf_AddText(char *text)
Definition: cmd.c:90
K_INS
@ K_INS
Definition: keys.h:53
K_JOY4
@ K_JOY4
Definition: keys.h:91
Key_Unbind_f
void Key_Unbind_f(void)
Definition: keys.c:537
K_F9
@ K_F9
Definition: keys.h:49
key_console
@ key_console
Definition: client.h:220
NULL
#define NULL
Definition: q_shared.h:60
client_state_t::frame
frame_t frame
Definition: client.h:136
K_CTRL
@ K_CTRL
Definition: keys.h:39
K_KP_END
@ K_KP_END
Definition: keys.h:66
Com_Error
void Com_Error(int code, char *fmt,...)
Definition: common.c:203
Key_KeynumToString
char * Key_KeynumToString(int keynum)
Definition: keys.c:482
Z_Malloc
void * Z_Malloc(int size)
Definition: common.c:1223
K_MOUSE3
@ K_MOUSE3
Definition: keys.h:81
K_AUX1
@ K_AUX1
Definition: keys.h:97
menubound
qboolean menubound[K_LAST]
Definition: keys.c:41
K_F3
@ K_F3
Definition: keys.h:43
K_KP_ENTER
@ K_KP_ENTER
Definition: keys.h:69
Key_Message
void Key_Message(int key)
Definition: keys.c:398
ERR_FATAL
#define ERR_FATAL
Definition: qcommon.h:735
key_linepos
int key_linepos
Definition: keys.c:31
K_AUX19
@ K_AUX19
Definition: keys.h:115
K_KP_DEL
@ K_KP_DEL
Definition: keys.h:71
K_MOUSE2
@ K_MOUSE2
Definition: keys.h:80
frame_t::playerstate
player_state_t playerstate
Definition: client.h:70
K_JOY2
@ K_JOY2
Definition: keys.h:89
Key_Unbindall_f
void Key_Unbindall_f(void)
Definition: keys.c:557
Z_Free
void Z_Free(void *ptr)
Definition: common.c:1141
client_static_t::state
connstate_t state
Definition: client.h:224
K_F4
@ K_F4
Definition: keys.h:44
K_AUX22
@ K_AUX22
Definition: keys.h:118
K_KP_SLASH
@ K_KP_SLASH
Definition: keys.h:72
K_TAB
@ K_TAB
Definition: keys.h:25
K_UPARROW
@ K_UPARROW
Definition: keys.h:33
M_Keydown
void M_Keydown(int key)
Definition: menu.c:4077
K_AUX7
@ K_AUX7
Definition: keys.h:103
K_AUX10
@ K_AUX10
Definition: keys.h:106
K_SHIFT
@ K_SHIFT
Definition: keys.h:40
K_SPACE
@ K_SPACE
Definition: keys.h:28
K_AUX32
@ K_AUX32
Definition: keys.h:128
Key_Bind_f
void Key_Bind_f(void)
Definition: keys.c:572
K_KP_5
@ K_KP_5
Definition: keys.h:64
K_KP_PGUP
@ K_KP_PGUP
Definition: keys.h:62
K_LAST
@ K_LAST
Definition: keys.h:135
key_lines
char key_lines[32][MAXCMDLINE]
Definition: keys.c:30
client_static_t::key_dest
keydest_t key_dest
Definition: client.h:225
K_PAUSE
@ K_PAUSE
Definition: keys.h:133
K_ALT
@ K_ALT
Definition: keys.h:38
K_AUX25
@ K_AUX25
Definition: keys.h:121
Com_Printf
void Com_Printf(char *fmt,...)
Definition: common.c:102
K_AUX9
@ K_AUX9
Definition: keys.h:105
K_F11
@ K_F11
Definition: keys.h:51
STAT_LAYOUTS
#define STAT_LAYOUTS
Definition: q_shared.h:1038
K_RIGHTARROW
@ K_RIGHTARROW
Definition: keys.h:36
K_AUX14
@ K_AUX14
Definition: keys.h:110
K_DEL
@ K_DEL
Definition: keys.h:54
K_AUX24
@ K_AUX24
Definition: keys.h:120
Key_Console
void Key_Console(int key)
Definition: keys.c:197
cls
client_static_t cls
Definition: cl_main.c:105
K_MOUSE1
@ K_MOUSE1
Definition: keys.h:79
K_AUX15
@ K_AUX15
Definition: keys.h:111
key_message
@ key_message
Definition: client.h:220
K_F5
@ K_F5
Definition: keys.h:45
K_MWHEELUP
@ K_MWHEELUP
Definition: keys.h:131
cl
client_state_t cl
Definition: cl_main.c:106
K_BACKSPACE
@ K_BACKSPACE
Definition: keys.h:32
K_KP_DOWNARROW
@ K_KP_DOWNARROW
Definition: keys.h:67
K_F1
@ K_F1
Definition: keys.h:41
Com_sprintf
void Com_sprintf(char *dest, int size, char *fmt,...)
Definition: q_shared.c:1236
K_AUX16
@ K_AUX16
Definition: keys.h:112
player_state_t::stats
short stats[MAX_STATS]
Definition: q_shared.h:1220