/*
- $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')
{
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;
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 < (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;