]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/minigames/cl_minigames_hud.qc
Fix map timer not being displayed if scoreboard is enabled during map vote; don't...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / minigames / cl_minigames_hud.qc
index a359831dfdd3cb74535c790c34f71b5ba9723721..8cfe69c0bb7acf20681e9c797a514e5c84b2aa3e 100644 (file)
@@ -1,5 +1,6 @@
 #include "cl_minigames_hud.qh"
 
+#include <client/autocvars.qh>
 #include <common/ent_cs.qh>
 
 #include "minigames.qh"
@@ -25,10 +26,17 @@ bool HUD_mouse_over(entity somepanel)
 // Draws the minigame game board
 void HUD_MinigameBoard ()
 {
+       if (!HUD_MinigameMenu_IsOpened())
+               return;
+
        entity hud_minigame = NULL;
 
        if(!autocvar__hud_configure)
+       {
+               if (!active_minigame)
+                       return;
                hud_minigame = active_minigame.descriptor;
+       }
        else
                hud_minigame = minigame_get_descriptor("nmm");
 
@@ -51,10 +59,17 @@ void HUD_MinigameBoard ()
 // Draws the minigame status panel
 void HUD_MinigameStatus ()
 {
+       if (!HUD_MinigameMenu_IsOpened())
+               return;
+
        entity hud_minigame = NULL;
 
        if(!autocvar__hud_configure)
+       {
+               if (!active_minigame)
+                       return;
                hud_minigame = active_minigame.descriptor;
+       }
        else
                hud_minigame = minigame_get_descriptor("nmm");
 
@@ -356,9 +371,6 @@ void HUD_MinigameMenu_Close(entity this, entity actor, entity trigger)
                HUD_MinigameMenu_entries = NULL;
                HUD_MinigameMenu_last_entry = NULL;
                HUD_MinigameMenu_activeitem = NULL;
-               if(autocvar_hud_cursormode)
-               if ( !autocvar__hud_configure )
-                       setcursormode(0);
        }
 }
 
@@ -409,7 +421,7 @@ void HUD_MinigameMenu_CurrentButton()
 // Open the minigame menu panel
 void HUD_MinigameMenu_Open()
 {
-       if ( !HUD_MinigameMenu_IsOpened() )
+       if ( !mv_active && !HUD_MinigameMenu_IsOpened() )
        {
                HUD_MinigameMenu_InsertEntry( HUD_MinigameMenu_SpawnEntry(
                        _("Create"), '0 0 0', hud_fontsize*1.5,'0.7 0.84 1', HUD_MinigameMenu_ClickCreate),
@@ -419,15 +431,13 @@ void HUD_MinigameMenu_Open()
                        HUD_MinigameMenu_last_entry );
                HUD_MinigameMenu_CurrentButton();
                HUD_MinigameMenu_activeitem = NULL;
-               if(autocvar_hud_cursormode)
-                       setcursormode(1);
        }
 }
 
 // Handles mouse input on to minigame menu panel
 void HUD_MinigameMenu_MouseInput()
 {
-       panel = HUD_PANEL(MINIGAME_MENU);
+       panel = HUD_PANEL(MINIGAMEMENU);
 
        HUD_Panel_LoadCvars();
 
@@ -472,6 +482,13 @@ void HUD_MinigameMenu_DrawColoredEntry(vector pos, string s, vector fontsize)
 // Minigame menu panel UI
 void HUD_MinigameMenu ()
 {
+       if (mv_active)
+       {
+               if (HUD_MinigameMenu_IsOpened())
+                       HUD_MinigameMenu_Close(NULL, NULL, NULL);
+               return;
+       }
+
        if ( !HUD_MinigameMenu_IsOpened() )
                return;
 
@@ -535,10 +552,17 @@ void HUD_MinigameMenu ()
 
 void HUD_MinigameHelp()
 {
+       if (!HUD_MinigameMenu_IsOpened())
+               return;
+
        string help_message;
 
        if(!autocvar__hud_configure)
+       {
+               if (!active_minigame)
+                       return;
                help_message = active_minigame.message;
+       }
        else
                help_message = "Minigame message";
 
@@ -575,7 +599,7 @@ float HUD_Minigame_InputEvent(float bInputType, float nPrimary, float nSecondary
        {
                mousepos_x = nPrimary;
                mousepos_y = nSecondary;
-               if ( minigame_isactive() && HUD_mouse_over(HUD_PANEL(MINIGAME_BOARD)) )
+               if ( active_minigame && HUD_mouse_over(HUD_PANEL(MINIGAMEBOARD)) )
                        active_minigame.minigame_event(active_minigame,"mouse_moved",mousepos);
                return true;
 
@@ -607,13 +631,13 @@ float HUD_Minigame_InputEvent(float bInputType, float nPrimary, float nSecondary
                                return false;
                }
 
-               if ( minigame_isactive() && ( bInputType == 0 || bInputType == 1 ) )
+               if ( active_minigame && ( bInputType == 0 || bInputType == 1 ) )
                {
                        string device = "";
                        string action = bInputType == 0 ? "pressed" : "released";
                        if ( nPrimary >= K_MOUSE1 && nPrimary <= K_MOUSE16 )
                        {
-                               if ( HUD_mouse_over(HUD_PANEL(MINIGAME_BOARD)) )
+                               if ( HUD_mouse_over(HUD_PANEL(MINIGAMEBOARD)) )
                                        device = "mouse";
                        }
                        else
@@ -629,7 +653,7 @@ float HUD_Minigame_InputEvent(float bInputType, float nPrimary, float nSecondary
                if ( bInputType == 0 )
                {
                        if ( nPrimary == K_MOUSE1 && HUD_MinigameMenu_activeitem &&
-                               HUD_mouse_over(HUD_PANEL(MINIGAME_MENU)) )
+                               HUD_mouse_over(HUD_PANEL(MINIGAMEMENU)) )
                        {
                                HUD_MinigameMenu_Click(HUD_MinigameMenu_activeitem);
                                return true;
@@ -682,16 +706,6 @@ void HUD_Minigame_Mouse()
        if( !HUD_MinigameMenu_IsOpened() || autocvar__hud_configure || mv_active )
                return;
 
-       if (!autocvar_hud_cursormode)
-               update_mousepos();
-
-       if ( HUD_MinigameMenu_IsOpened() && HUD_mouse_over(HUD_PANEL(MINIGAME_MENU)) )
+       if ( HUD_MinigameMenu_IsOpened() && HUD_mouse_over(HUD_PANEL(MINIGAMEMENU)) )
                HUD_MinigameMenu_MouseInput();
-
-       draw_cursor_normal(mousepos, '1 1 1', panel_fg_alpha);
-}
-
-bool HUD_Minigame_Showpanels()
-{
-       return (HUD_MinigameMenu_IsOpened() && minigame_isactive());
 }