X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=keys.c;h=8dffbe90b6a692b587c027c4bc728f7ecfcb8a6c;hp=be721de86f9c8ac0598fe834d55742bb37586ab8;hb=e88a73794afa1f0fe65fc70d318f4e288cabc0d1;hpb=517644e441512ced88706bc63edc38ec3ca8784a diff --git a/keys.c b/keys.c index be721de8..8dffbe90 100644 --- 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: