]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Define a better HUD_QuickMenu_Open
authorterencehill <piuntn@gmail.com>
Thu, 21 Mar 2013 07:57:32 +0000 (08:57 +0100)
committerterencehill <piuntn@gmail.com>
Thu, 21 Mar 2013 08:22:48 +0000 (09:22 +0100)
qcsrc/client/command/cl_cmd.qc
qcsrc/client/hud.qc

index 714ddc69c0523ab52ec00c1500ad8df4aaa064ba..a2c720324825025c859681398d17b5fb67eff2eb 100644 (file)
@@ -192,8 +192,7 @@ void LocalCommand_hud(float request, float argc)
                                        if(argc == 2 && HUD_QuickMenu_IsOpened())
                                                HUD_QuickMenu_Close();
                                        else
-                                               if (HUD_QuickMenu_Buffer_Init())
-                                                       HUD_QuickMenu_Open("", 0);
+                                               HUD_QuickMenu_Open();
                                        return;
                                }
 
index ec0131e68d220ae4a2e476c86f0847c9fe7e71a5..6755aafc1c0a49c708dadc471b6259103ec430d9 100644 (file)
@@ -4432,6 +4432,7 @@ float HUD_QuickMenu_Buffer_Init()
        fclose(fh);
        return true;
 }
+
 void HUD_QuickMenu_Buffer_Close()
 {
        if (QuickMenu_Buffer >= 0)
@@ -4441,6 +4442,7 @@ void HUD_QuickMenu_Buffer_Close()
                QuickMenu_Buffer_Size = 0;
        }
 }
+
 void HUD_QuickMenu_Close()
 {
        if (QuickMenu_CurrentSubMenu)
@@ -4480,7 +4482,6 @@ void HUD_QuickMenu_skip_submenu(string submenu)
        strunzone(z_submenu);
 }
 
-
 float HUD_QuickMenu_IsOpened()
 {
        return (QuickMenu_Entries > 0);
@@ -4488,7 +4489,7 @@ float HUD_QuickMenu_IsOpened()
 
 // new_page 0 means page 0, new_page != 0 means next page
 float QuickMenu_Buffer_Index_Prev;
-void HUD_QuickMenu_Open(string target_submenu, float new_page)
+float HUD_QuickMenu_Page(string target_submenu, float new_page)
 {
        string s, z_submenu;
 
@@ -4565,12 +4566,20 @@ void HUD_QuickMenu_Open(string target_submenu, float new_page)
        if (QuickMenu_Entries == 0)
        {
                HUD_QuickMenu_Close();
-               return;
+               return 0;
        }
+       return 1;
+}
+
+void HUD_QuickMenu_Open()
+{
+       if(!HUD_QuickMenu_Buffer_Init()) return;
 
        hud_panel_quickmenu = 1;
        if(autocvar_hud_cursormode)
                setcursormode(1);
+
+       HUD_QuickMenu_Page("", 0);
 }
 
 float HUD_QuickMenu_ActionForNumber(float num)
@@ -4583,7 +4592,7 @@ float HUD_QuickMenu_ActionForNumber(float num)
                        return 0;
                if (num == 0)
                {
-                       HUD_QuickMenu_Open(QuickMenu_CurrentSubMenu, +1);
+                       HUD_QuickMenu_Page(QuickMenu_CurrentSubMenu, +1);
                        return 0;
                }
        } else if (num <= 0 || num > QuickMenu_Entries)
@@ -4595,9 +4604,10 @@ float HUD_QuickMenu_ActionForNumber(float num)
                return 1;
        }
        if (QuickMenu_Description[num] != "")
-               HUD_QuickMenu_Open(QuickMenu_Description[num], 0);
+               HUD_QuickMenu_Page(QuickMenu_Description[num], 0);
        return 0;
 }
+
 float HUD_QuickMenu_InputEvent(float bInputType, float nPrimary, float nSecondary)
 {
        // we only care for keyboard events