====================
*/
static void
-Key_Console (int key, char ascii)
+Key_Console (int key, int ascii)
{
// LordHavoc: copied most of this from Q2 to improve keyboard handling
switch (key)
extern int Nicks_CompleteChatLine(char *buffer, size_t size, unsigned int pos);
static void
-Key_Message (int key, char ascii)
+Key_Message (int key, int ascii)
{
if (key == K_ENTER || ascii == 10 || ascii == 13)
{
if(chat_mode < 0)
- Cbuf_AddText(va("%s\n", chat_buffer));
+ Cmd_ExecuteString(chat_buffer, src_command); // not Cbuf_AddText to allow semiclons in args; however, this allows no variables then. Use aliases!
else
Cmd_ForwardStringToServer(va("%s %s", chat_mode ? "say_team" : "say ", chat_buffer));
static keydest_t tbl_keydest[MAX_KEYS];
void
-Key_Event (int key, char ascii, qboolean down)
+Key_Event (int key, int ascii, qboolean down)
{
const char *bind;
qboolean q;
return;
}
+ // handle toggleconsole in menu too
+ if (keydest == key_menu)
+ {
+ if (down && con_closeontoggleconsole.integer && bind && !strncmp(bind, "toggleconsole", strlen("toggleconsole")) && ascii != STRING_COLOR_TAG)
+ {
+ Con_ToggleConsole_f ();
+ tbl_keydest[key] = key_void; // key release should go nowhere (especially not to key_menu or key_game)
+ return;
+ }
+ }
// ignore binds while a video is played, let the video system handle the key event
if (cl_videoplaying)