]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/util.qc
start loading update URL earlier
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / util.qc
index e733b7460b38d3d4de90203b5a34da2cc169f417..78ac9de46c1bc96aeda3db938b27d8bc29b49cfd 100644 (file)
@@ -352,55 +352,8 @@ void UpdateNotification_URI_Get_Callback(float id, float status, string data)
 
 // END OF URI SYSTEM ////////////////////////////////////////////////////////
 
-float preMenuInit()
-{
-       vector sz;
-       vector boxA, boxB;
-
-       MapInfo_Cache_Create();
-       MapInfo_Enumerate();
-       if(!MapInfo_FilterGametype(MAPINFO_TYPE_ALL, 0, 0, 0, 1))
-       {
-               draw_reset_cropped();
-
-               sz = eX * 0.025 + eY * 0.025 * (draw_scale_x / draw_scale_y);
-               draw_CenterText('0.5 0.5 0' - 1.25 * sz_y * eY, _("Autogenerating mapinfo for newly added maps..."), sz, '1 1 1', 1, 0);
-
-               boxA = '0.05 0.5 0' + 0.25 * sz_y * eY;
-               boxB = '0.95 0.5 0' + 1.25 * sz_y * eY;
-               draw_Fill(boxA, boxB - boxA, '1 1 1', 1);
-               
-               boxA += sz * 0.1;
-               boxB -= sz * 0.1;
-               draw_Fill(boxA, boxB - boxA, '0.1 0.1 0.1', 1);
-
-               boxB_x = boxA_x * (1 - MapInfo_progress) + boxB_x * MapInfo_progress;
-               draw_Fill(boxA, boxB - boxA, '0 0 1', 1);
-
-               return FALSE;
-       }
-       return TRUE;
-}
-
-string campaign_name_previous;
-float campaign_won_previous;
-#ifdef WATERMARK
-var string autocvar_menu_watermark = WATERMARK();
-#else
-var string autocvar_menu_watermark = "";
-#endif
-void postMenuDraw()
-{
-       if(autocvar_menu_watermark != "")
-       {
-               vector fs = '48 48 0';
-               draw_CenterText('0.5 0.1 0', sprintf(_("^1%s TEST BUILD"), autocvar_menu_watermark), globalToBoxSize('32 32 0', draw_scale), '1 1 1', 0.05, 1);
-       }
-}
-void preMenuDraw()
+void updateCheck()
 {
-       vector fs, sz, line, mid;
-
        if(cvar("menu_updatecheck"))
        {
                if(!_Nex_ExtResponseSystem_Queried)
@@ -448,7 +401,7 @@ void preMenuDraw()
 
        if(_Nex_ExtResponseSystem_PacksStep > 0)
        {
-               float n;
+               float n, i;
                float allgood;
                n = tokenize_console(_Nex_ExtResponseSystem_Packs);
                allgood = TRUE;
@@ -463,13 +416,73 @@ void preMenuDraw()
                if(allgood)
                {
                        if(_Nex_ExtResponseSystem_PacksStep == 2)
+                       {
+                               if(!Menu_Active)
+                                       cvar_set("_menu_initialized", "0");
+                                       // HACK: cause m_hide call on next start
                                localcmd("\nmenu_restart\n");
+                       }
                        _Nex_ExtResponseSystem_PacksStep = 0;
                }
                else
                        _Nex_ExtResponseSystem_PacksStep = 2;
        }
 
+}
+
+float preMenuInit()
+{
+       vector sz;
+       vector boxA, boxB;
+
+       updateCheck();
+
+       MapInfo_Cache_Create();
+       MapInfo_Enumerate();
+       if(!MapInfo_FilterGametype(MAPINFO_TYPE_ALL, 0, 0, 0, 1))
+       {
+               draw_reset_cropped();
+
+               sz = eX * 0.025 + eY * 0.025 * (draw_scale_x / draw_scale_y);
+               draw_CenterText('0.5 0.5 0' - 1.25 * sz_y * eY, _("Autogenerating mapinfo for newly added maps..."), sz, '1 1 1', 1, 0);
+
+               boxA = '0.05 0.5 0' + 0.25 * sz_y * eY;
+               boxB = '0.95 0.5 0' + 1.25 * sz_y * eY;
+               draw_Fill(boxA, boxB - boxA, '1 1 1', 1);
+               
+               boxA += sz * 0.1;
+               boxB -= sz * 0.1;
+               draw_Fill(boxA, boxB - boxA, '0.1 0.1 0.1', 1);
+
+               boxB_x = boxA_x * (1 - MapInfo_progress) + boxB_x * MapInfo_progress;
+               draw_Fill(boxA, boxB - boxA, '0 0 1', 1);
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+string campaign_name_previous;
+float campaign_won_previous;
+#ifdef WATERMARK
+var string autocvar_menu_watermark = WATERMARK();
+#else
+var string autocvar_menu_watermark = "";
+#endif
+void postMenuDraw()
+{
+       if(autocvar_menu_watermark != "")
+       {
+               vector fs = '48 48 0';
+               draw_CenterText('0.5 0.1 0', sprintf(_("^1%s TEST BUILD"), autocvar_menu_watermark), globalToBoxSize('32 32 0', draw_scale), '1 1 1', 0.05, 1);
+       }
+}
+void preMenuDraw()
+{
+       vector fs, sz, line, mid;
+
+       updateCheck();
+
        if(_Nex_ExtResponseSystem_UpdateTo != "")
        {
                // TODO rather turn this into a dialog