]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/util.qc
Merge remote-tracking branch 'origin/master' into samual/combined_updates
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / util.qc
index dd022eb6996059f6a29ddf612b6bc915a816abc0..4fbe824ece8530c3d3176e4d60c02f4063be1bdc 100644 (file)
@@ -87,7 +87,14 @@ void saveCvarsMulti(entity me)
 
        n = tokenize_console(me.cvarNames_Multi);
        for(i = 0; i < n; ++i)
-               cvar_set(argv(i), s);
+       {
+               if(substring(argv(i), 0, 1) == "!")
+                       cvar_set(substring(argv(i), 1, strlen(argv(i))), ((s == "0") ? "1" : "0"));
+               else
+                       cvar_set(argv(i), s);
+
+               CheckSendCvars(me, argv(i));
+       }
 }
 void makeMulti(entity e, string otherCvars)
 {
@@ -280,7 +287,7 @@ void URI_Get_Callback(float id, float status, string data)
        }
        else
        {
-               print(sprintf("Received HTTP request data for an invalid id %d.\n", id));
+               printf("Received HTTP request data for an invalid id %d.\n", id);
        }
 }
 
@@ -300,7 +307,7 @@ void UpdateNotification_URI_Get_Callback(float id, float status, string data)
        }
        if(status != 0)
        {
-               print(sprintf(_("error receiving update notification: status is %d\n"), status));
+               printf(_("error receiving update notification: status is %d\n"), status);
                return;
        }
        if(substring(data, 0, 1) == "<")
@@ -389,7 +396,7 @@ void UpdateNotification_URI_Get_Callback(float id, float status, string data)
                {
                        // update needed
                        _Nex_ExtResponseSystem_UpdateTo = strzone(un_version);
-                       if(un_download) { print(sprintf(_("Update can be downloaded at:\n%s\n"), un_download)); }
+                       if(un_download) { printf(_("Update can be downloaded at:\n%s\n"), un_download); }
                        if(un_url) { _Nex_ExtResponseSystem_UpdateToURL = strzone(un_url); }
                        DisableServerBackwardsCompatibility();
                }
@@ -494,7 +501,7 @@ float preMenuInit()
                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);
@@ -552,7 +559,7 @@ void preMenuDraw()
                draw_CenterText(mid - 1 * line, l1, fs, '1 0 0', 1, 0);
                draw_CenterText(mid - 0 * line, l2, fs, '0 0 1', 1, 0);
        }
-       if not(campaign_name_previous)
+       if (!campaign_name_previous)
                campaign_name_previous = strzone(strcat(campaign_name, "x")); // force unequal
        if(campaign_name == campaign_name_previous)
        {
@@ -640,7 +647,6 @@ float updateCompression()
 
 // note: include only those that should be in the menu!
 #define GAMETYPES \
-       GAMETYPE(MAPINFO_TYPE_ARENA) \
        GAMETYPE(MAPINFO_TYPE_ASSAULT) \
        GAMETYPE(MAPINFO_TYPE_CTF) \
        GAMETYPE(MAPINFO_TYPE_CA) \
@@ -655,19 +661,20 @@ float updateCompression()
        GAMETYPE(MAPINFO_TYPE_RACE) \
        GAMETYPE(MAPINFO_TYPE_CTS) \
        GAMETYPE(MAPINFO_TYPE_TEAM_DEATHMATCH) \
+       //GAMETYPE(MAPINFO_TYPE_INVASION) \
        /* nothing */
 
 float GameType_GetID(float cnt)
 {
        float i;
        i = 0;
-       
+
        #define GAMETYPE(id) if(i++ == cnt) return id;
        GAMETYPES
        #undef GAMETYPE
 
        unused_float = i;
-       
+
        return 0;
 }
 
@@ -675,50 +682,34 @@ float GameType_GetCount()
 {
        float i;
        i = 0;
-       
+
        #define GAMETYPE(id) ++i;
        GAMETYPES
        #undef GAMETYPE
-       
+
        return i;
 }
 
 string GameType_GetName(float cnt)
 {
        float i = GameType_GetID(cnt);
-       
+
        if(i)
                return MapInfo_Type_ToText(i);
-       
+
        return "";
 }
 
 string GameType_GetIcon(float cnt)
 {
        float i = GameType_GetID(cnt);
-       
+
        if(i)
                return strcat("gametype_", MapInfo_Type_ToString(i));
-       
+
        return "";
 }
 
-/*string GameType_GetTeams(float cnt) // poor implementation, later something else could be done that's better?
-{
-       float i = GameType_GetID(cnt);
-       string s = _MapInfo_GetDefaultEx(i);
-       
-       if(i)
-       {
-               if(strstrofs(s, "teams", 0) >= 0)
-                       return _("teamplay");
-               else
-                       return _("free for all");
-       }
-       
-       return _("tuba for all");
-}*/
-
 void dialog_hudpanel_common_notoggle(entity me, string panelname)
 {
        float i;
@@ -777,3 +768,15 @@ void dialog_hudpanel_common_notoggle(entity me, string panelname)
                                        e.addValue(e, strzone(ftos_decimals(i - 5, 0)), strzone(ftos(i - 5)));
                                e.configureXonoticTextSliderValues(e);
 }
+
+void CheckSendCvars(entity me, string cvarnamestring)
+{
+       if(me.sendCvars)
+       {
+               printf("Sending cvar: %s -> %s\n", cvarnamestring, cvar_string(cvarnamestring));
+               if(gamestatus & (GAME_CONNECTED | GAME_ISSERVER))
+               {
+                       cmd(sprintf("\nsendcvar %s\n", cvarnamestring));
+               }
+       }
+}