X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud%2Fpanel%2Fquickmenu.qc;h=a3141c225dc88e945e3cc3b68d2fc8678911fb2a;hb=b5183381a035603863e3b2c04df3d1c67499bea8;hp=02259f8ee04743acb56fdd359ca0582a5cf7b2af;hpb=e7e4e095eaeac5b8dbc60723f239547bdee88ef5;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/hud/panel/quickmenu.qc b/qcsrc/client/hud/panel/quickmenu.qc index 02259f8ee0..a3141c225d 100644 --- a/qcsrc/client/hud/panel/quickmenu.qc +++ b/qcsrc/client/hud/panel/quickmenu.qc @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -57,8 +58,21 @@ void QuickMenu_Page_ClearEntry(int i) QuickMenu_Page_Command_Type[i] = 0; } +bool HUD_QuickMenu_Forbidden() +{ + return (mv_active + || (hud_configure_prev && hud_configure_prev != -1) + || HUD_MinigameMenu_IsOpened() + || (QuickMenu_TimeOut && time > QuickMenu_TimeOut)); +} + +// returns true if succeded, false otherwise bool QuickMenu_Open(string mode, string submenu, string file) { + QuickMenu_TimeOut = 0; + if (HUD_QuickMenu_Forbidden()) + return false; + int fh = -1; string s; @@ -166,7 +180,6 @@ bool QuickMenu_Open(string mode, string submenu, string file) else QuickMenu_Page_Load("", 0); - hud_panel_quickmenu = 1; hudShiftState = 0; QuickMenu_TimeOut = ((autocvar_hud_panel_quickmenu_time > 0) ? time + autocvar_hud_panel_quickmenu_time : 0); @@ -190,7 +203,6 @@ void QuickMenu_Close() for (i = 0; i < QUICKMENU_MAXLINES; ++i) QuickMenu_Page_ClearEntry(i); QuickMenu_Page_Entries = 0; - hud_panel_quickmenu = 0; mouseClicked = 0; prevMouseClicked = 0; QuickMenu_Buffer_Close(); @@ -558,16 +570,10 @@ void HUD_QuickMenu() { if(!autocvar__hud_configure) { - if (hud_configure_prev && hud_configure_prev != -1) - QuickMenu_Close(); - - if(!hud_draw_maximized) return; - if(mv_active) return; - //if(!autocvar_hud_panel_quickmenu) return; - if(!hud_panel_quickmenu) return; + if (!hud_draw_maximized || !QuickMenu_IsOpened()) + return; - if(QuickMenu_TimeOut) - if(time > QuickMenu_TimeOut) + if (HUD_QuickMenu_Forbidden()) { QuickMenu_Close(); return;