/*
- $RCSfile$
-
Copyright (C) 1996-1997 Id Software, Inc.
This program is free software; you can redistribute it and/or
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
-
*/
-static const char rcsid[] =
- "$Id$";
#include "quakedef.h"
-#include <ctype.h>
-extern void SCR_UpdateScreen (void);
/*
key up events are sent even if in console mode
{"KP_ENTER", K_KP_ENTER},
{"KP_EQUALS", K_KP_EQUALS},
- {"JOY1", K_JOY1},
- {"JOY2", K_JOY2},
- {"JOY3", K_JOY3},
- {"JOY4", K_JOY4},
+ {"JOY1", K_JOY1},
+ {"JOY2", K_JOY2},
+ {"JOY3", K_JOY3},
+ {"JOY4", K_JOY4},
+ {"JOY5", K_JOY5},
+ {"JOY6", K_JOY6},
+ {"JOY7", K_JOY7},
+ {"JOY8", K_JOY8},
+ {"JOY9", K_JOY9},
+ {"JOY10", K_JOY10},
+ {"JOY11", K_JOY11},
+ {"JOY12", K_JOY12},
+ {"JOY13", K_JOY13},
+ {"JOY14", K_JOY14},
+ {"JOY15", K_JOY15},
+ {"JOY16", K_JOY16},
{"AUX1", K_AUX1},
{"AUX2", K_AUX2},
break;
}
- // LordHavoc: FIXME: implement this sometime
- #if 0
if ((toupper(key) == 'V' && keydown[K_CTRL]) || ((key == K_INS || key == K_KP_INS) && keydown[K_SHIFT]))
{
char *cbd;
}
return;
}
- #endif
if (key == 'l')
{
{
Cbuf_AddText (key_lines[edit_line]+1); // skip the ]
Cbuf_AddText ("\n");
- Con_Printf ("%s\n",key_lines[edit_line]);
+ Con_Printf("%s\n",key_lines[edit_line]);
edit_line = (edit_line + 1) & 31;
history_line = edit_line;
key_lines[edit_line][0] = ']';
Key_Message (int key, char ascii)
{
- if (key == K_ENTER) {
- if (chat_team)
- Cbuf_AddText ("say_team \"");
- else
- Cbuf_AddText ("say \"");
- Cbuf_AddText (chat_buffer);
- Cbuf_AddText ("\"\n");
+ if (key == K_ENTER)
+ {
+ Cmd_ForwardStringToServer(va("%s %s", chat_team ? "say_team" : "say ", chat_buffer));
key_dest = key_game;
chat_bufferlen = 0;
the K_* names are matched up.
===================
*/
-static int
+int
Key_StringToKeynum (const char *str)
{
const keyname_t *kn;
int b, m;
if (Cmd_Argc () != 3) {
- Con_Printf ("in_unbind <bindmap> <key> : remove commands from a key\n");
+ Con_Print("in_unbind <bindmap> <key> : remove commands from a key\n");
return;
}
m = strtol(Cmd_Argv (1), NULL, 0);
if ((m < 0) || (m >= 8)) {
- Con_Printf ("%d isn't a valid bindmap\n", m);
+ Con_Printf("%d isn't a valid bindmap\n", m);
return;
}
b = Key_StringToKeynum (Cmd_Argv (2));
if (b == -1) {
- Con_Printf ("\"%s\" isn't a valid key\n", Cmd_Argv (2));
+ Con_Printf("\"%s\" isn't a valid key\n", Cmd_Argv (2));
return;
}
c = Cmd_Argc ();
if (c != 3 && c != 4) {
- Con_Printf ("in_bind <bindmap> <key> [command] : attach a command to a key\n");
+ Con_Print("in_bind <bindmap> <key> [command] : attach a command to a key\n");
return;
}
m = strtol(Cmd_Argv (1), NULL, 0);
if ((m < 0) || (m >= 8)) {
- Con_Printf ("%d isn't a valid bindmap\n", m);
+ Con_Printf("%d isn't a valid bindmap\n", m);
return;
}
b = Key_StringToKeynum (Cmd_Argv (2));
if (b == -1) {
- Con_Printf ("\"%s\" isn't a valid key\n", Cmd_Argv (2));
+ Con_Printf("\"%s\" isn't a valid key\n", Cmd_Argv (2));
return;
}
if (c == 3) {
if (keybindings[m][b])
- Con_Printf ("\"%s\" = \"%s\"\n", Cmd_Argv (2), keybindings[m][b]);
+ Con_Printf("\"%s\" = \"%s\"\n", Cmd_Argv (2), keybindings[m][b]);
else
- Con_Printf ("\"%s\" is not bound\n", Cmd_Argv (2));
+ Con_Printf("\"%s\" is not bound\n", Cmd_Argv (2));
return;
}
// copy the rest of the command line
c = Cmd_Argc ();
if (c != 3) {
- Con_Printf ("in_bindmap <bindmap> <fallback>: set current bindmap and fallback\n");
+ Con_Print("in_bindmap <bindmap> <fallback>: set current bindmap and fallback\n");
return;
}
m1 = strtol(Cmd_Argv (1), NULL, 0);
if ((m1 < 0) || (m1 >= 8)) {
- Con_Printf ("%d isn't a valid bindmap\n", m1);
+ Con_Printf("%d isn't a valid bindmap\n", m1);
return;
}
m2 = strtol(Cmd_Argv (2), NULL, 0);
if ((m2 < 0) || (m2 >= 8)) {
- Con_Printf ("%d isn't a valid bindmap\n", m2);
+ Con_Printf("%d isn't a valid bindmap\n", m2);
return;
}
int b;
if (Cmd_Argc () != 2) {
- Con_Printf ("unbind <key> : remove commands from a key\n");
+ Con_Print("unbind <key> : remove commands from a key\n");
return;
}
b = Key_StringToKeynum (Cmd_Argv (1));
if (b == -1) {
- Con_Printf ("\"%s\" isn't a valid key\n", Cmd_Argv (1));
+ Con_Printf("\"%s\" isn't a valid key\n", Cmd_Argv (1));
return;
}
int i, j;
for (j = 0; j < 8; j++)
- for (i = 0; i < sizeof(keybindings[0])/sizeof(keybindings[0][0]); i++)
+ for (i = 0; i < (int)(sizeof(keybindings[0])/sizeof(keybindings[0][0])); i++)
if (keybindings[j][i])
Key_SetBinding (i, j, "");
}
c = Cmd_Argc ();
if (c != 2 && c != 3) {
- Con_Printf ("bind <key> [command] : attach a command to a key\n");
+ Con_Print("bind <key> [command] : attach a command to a key\n");
return;
}
b = Key_StringToKeynum (Cmd_Argv (1));
if (b == -1) {
- Con_Printf ("\"%s\" isn't a valid key\n", Cmd_Argv (1));
+ Con_Printf("\"%s\" isn't a valid key\n", Cmd_Argv (1));
return;
}
if (c == 2) {
if (keybindings[0][b])
- Con_Printf ("\"%s\" = \"%s\"\n", Cmd_Argv (1), keybindings[0][b]);
+ Con_Printf("\"%s\" = \"%s\"\n", Cmd_Argv (1), keybindings[0][b]);
else
- Con_Printf ("\"%s\" is not bound\n", Cmd_Argv (1));
+ Con_Printf("\"%s\" is not bound\n", Cmd_Argv (1));
return;
}
// copy the rest of the command line
{
int i, j;
- for (i = 0; i < sizeof(keybindings[0])/sizeof(keybindings[0][0]); i++)
+ for (i = 0; i < (int)(sizeof(keybindings[0])/sizeof(keybindings[0][0])); i++)
if (keybindings[0][i])
- FS_Printf (f, "bind %s \"%s\"\n",
+ FS_Printf(f, "bind \"%s\" \"%s\"\n",
Key_KeynumToString (i), keybindings[0][i]);
for (j = 1; j < 8; j++)
- for (i = 0; i < sizeof(keybindings[0])/sizeof(keybindings[0][0]); i++)
+ for (i = 0; i < (int)(sizeof(keybindings[0])/sizeof(keybindings[0][0])); i++)
if (keybindings[j][i])
- FS_Printf (f, "in_bind %d %s \"%s\"\n",
+ FS_Printf(f, "in_bind %d \"%s\" \"%s\"\n",
j, Key_KeynumToString (i), keybindings[j][i]);
}
consolekeys[K_DOWNARROW] = true; consolekeys[K_KP_DOWNARROW] = true;
consolekeys[K_BACKSPACE] = true;
consolekeys[K_DEL] = true; consolekeys[K_KP_DEL] = true;
+ consolekeys[K_INS] = true; consolekeys[K_KP_INS] = true;
consolekeys[K_HOME] = true; consolekeys[K_KP_HOME] = true;
consolekeys[K_END] = true; consolekeys[K_KP_END] = true;
consolekeys[K_PGUP] = true; consolekeys[K_KP_PGUP] = true;
consolekeys[K_SHIFT] = true;
consolekeys[K_MWHEELUP] = true;
consolekeys[K_MWHEELDOWN] = true;
+ consolekeys[K_KP_PLUS] = true;
+ consolekeys[K_KP_MINUS] = true;
+ consolekeys[K_KP_DIVIDE] = true;
+ consolekeys[K_KP_MULTIPLY] = true;
consolekeys['`'] = false;
consolekeys['~'] = false;
key_repeats[key]++;
if (key_repeats[key] > 1) {
if ((key_consoleactive && !consolekeys[key]) ||
- (key_dest == key_game &&
+ (!key_consoleactive && key_dest == key_game &&
(cls.state == ca_connected && cls.signon == SIGNONS)))
return; // ignore most autorepeats
}
case key_menu:
MR_Keydown (key, ascii);
break;
-
case key_game:
Key_Console (key, ascii);
break;
{
int i;
- for (i = 0; i < sizeof(keydown)/sizeof(keydown[0]); i++)
+ for (i = 0; i < (int)(sizeof(keydown)/sizeof(keydown[0])); i++)
{
keydown[i] = false;
key_repeats[i] = 0;