]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - keys.c
-Added support for 515]'s BX_COLOREDTEXT extension.
[xonotic/darkplaces.git] / keys.c
diff --git a/keys.c b/keys.c
index be721de86f9c8ac0598fe834d55742bb37586ab8..8dffbe90b6a692b587c027c4bc728f7ecfcb8a6c 100644 (file)
--- a/keys.c
+++ b/keys.c
@@ -804,8 +804,8 @@ Key_Init (void)
        consolekeys[K_KP_MINUS] = true;
        consolekeys[K_KP_DIVIDE] = true;
        consolekeys[K_KP_MULTIPLY] = true;
-       consolekeys['`'] = true;
-       consolekeys['~'] = true;
+       consolekeys['`'] = false;
+       consolekeys['~'] = false;
 
        menubound[K_ESCAPE] = true;
        for (i = 0; i < 12; i++)
@@ -833,11 +833,10 @@ Should NOT be called during an interrupt!
 void
 Key_Event (int key, char ascii, qboolean down)
 {
-#if 0
+#if 1
 #define USERPLAYING()  ( !key_consoleactive && key_dest == key_game && (cls.state == ca_connected && cls.signon == SIGNONS) )
-//#define CONSOLEKEY() (key_consoleactive && !consolekeys[key])
-#define CONSOLEKEY()   ( key_dest == key_console)
        const char *bind;
+       static qboolean shift_down = false;
 
        // get key binding
        bind = keybindings[ key_bmap ][ key ];
@@ -859,8 +858,8 @@ Key_Event (int key, char ascii, qboolean down)
                key_repeats[ key ] = 0;
        }
 
-       if( key == K_CTRL ) {
-               ctrl_down = down;
+       if( key == K_SHIFT ) {
+               shift_down = down;
        }
 
        if( !down ) {
@@ -870,8 +869,8 @@ Key_Event (int key, char ascii, qboolean down)
        } else {
                // handle ESCAPE specially, so unbinding wont help
                if( key == K_ESCAPE ) {
-                       // ctrl-escape is a safety measure for users who cant toggle the console otherwise
-                       if( ctrl_down ) {
+                       // shift-escape is a safety measure for users who cant toggle the console otherwise
+                       if( shift_down ) {
                                Con_ToggleConsole_f();
                                return;
                        }
@@ -883,6 +882,11 @@ Key_Event (int key, char ascii, qboolean down)
                                        MR_Keydown( key, ascii );
                                        break;
                                case key_game:
+                                       if (COM_CheckParm ("-demolooponly"))
+                                       {
+                                               CL_Disconnect ();
+                                               return;
+                                       }
                                        MR_ToggleMenu_f();
                                        break;
                                default:
@@ -891,21 +895,24 @@ Key_Event (int key, char ascii, qboolean down)
                        return;
                }
 
-               if (bind && !strncmp( bind, "toggleconsole", strlen( "toggleconsole" ) ) )
-               {
+               if( !(key_consoleactive && consolekeys[ key ]) && bind && !strncmp( bind, "toggleconsole", strlen( "toggleconsole" ) ) ) {
                        Cbuf_AddText( bind );
                        Cbuf_AddText( "\n" );
+                       if( ascii != STRING_COLOR_TAG ) {
+                               return;
+                       }
                } else {
                        // during demo playback, all keys ingame bring up the main menu
                        if( cls.demoplayback && !key_consoleactive && key_dest == key_game ) {
-                               MR_ToggleMenu_f ();
+                               if (!COM_CheckParm ("-demolooponly"))
+                                       MR_ToggleMenu_f ();
                                return;
                        }
 
                        // menu bind/function keys or normal binds
                        if( (key_dest == key_menu && menubound[key]) || USERPLAYING() ) {
                                if( bind ) {
-                                       if( bind[0] == '+' ) {                  // button commands add keynum as a parm
+                                       if( bind[0] == '+' ) { // button commands add keynum as a parm
                                                Cbuf_AddText( va( "%s %i\n", bind, key ) );
                                        } else {
                                                Cbuf_AddText( bind );
@@ -927,7 +934,7 @@ Key_Event (int key, char ascii, qboolean down)
                                case key_menu:
                                        MR_Keydown( key, ascii );
                                        break;
-                               case key_game:
+                               case key_game:                          
                                        // unbound key
                                        break;
                                default: