]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mapinfo.qc
Sanity (probable fix for maps not showing up when using legacy gametype names)
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mapinfo.qc
index 8c381fb6067bd9cd29c9b362f7dd287ecaafeb99..617bfe85e2cde2c78d3b0f1c8fd1e617732c34df 100644 (file)
@@ -11,7 +11,7 @@
 
 bool autocvar_g_mapinfo_ignore_warnings;
 #ifdef MENUQC
-#define WARN_COND !autocvar_g_mapinfo_ignore_warnings
+#define WARN_COND (!autocvar_g_mapinfo_ignore_warnings)
 #else
 #define WARN_COND (!autocvar_g_mapinfo_ignore_warnings && MapInfo_Map_bspname == mi_shortname)
 #endif
@@ -589,25 +589,25 @@ void _MapInfo_Map_ApplyGametypeEx(string s, Gametype pWantedType, Gametype pThis
        }
 }
 
-Gametype MapInfo_Type_FromString(string t)
+Gametype MapInfo_Type_FromString(string gtype)
 {
-#define deprecate(from, to) MACRO_BEGIN { \
-       if (t == #from) { \
-               string replacement = #to; \
-               if(WARN_COND) \
-                       LOG_WARNF("MapInfo_Type_FromString (probably %s): using deprecated name '%s'. Should use '%s'.", MapInfo_Map_bspname, t, replacement); \
-               t = replacement; \
-       } \
-} MACRO_END
-       deprecate(nexball, nb);
-       deprecate(freezetag, ft);
-       deprecate(keepaway, ka);
-       deprecate(invasion, inv);
-       deprecate(assault, as);
-       deprecate(race, rc);
-       FOREACH(Gametypes, it.mdl == t, return it);
+       string replacement = "";
+       switch (gtype)
+       {
+               case "nexball":   replacement = "nb"; break;
+               case "freezetag": replacement = "ft"; break;
+               case "keepaway":  replacement = "ka"; break;
+               case "invasion":  replacement = "inv"; break;
+               case "assault":   replacement = "as"; break;
+               case "race":      replacement = "rc"; break;
+       }
+       if (replacement != "" && WARN_COND)
+       {
+               LOG_WARNF("MapInfo_Type_FromString (probably %s): using deprecated name '%s'. Should use '%s'.", MapInfo_Map_bspname, gtype, replacement);
+               gtype = replacement;
+       }
+       FOREACH(Gametypes, it.mdl == gtype, return it);
        return NULL;
-#undef deprecate
 }
 
 string MapInfo_Type_Description(Gametype t)
@@ -665,8 +665,10 @@ void _MapInfo_Parse_Settemp(string pFilename, string acl, float type, string s,
                {
                        fh = fopen(s, FILE_READ);
                        if(fh < 0)
+                       {
                                if(WARN_COND)
                                        LOG_WARN("Map ", pFilename, " references not existing config file ", s);
+                       }
                        else
                        {
                                for (;;)
@@ -951,19 +953,25 @@ float MapInfo_Get_ByName_NoFallbacks(string pFilename, int pAllowGenerate, Gamet
                        t = car(s); s = cdr(s); d = stof(t);
                        t = car(s); s = cdr(s); e = stof(t);
                        if(s == "")
+                       {
                                if(WARN_COND)
                                        LOG_WARN("Map ", pFilename, " contains an incorrect size line (not enough params), syntax: size mins_x mins_y mins_z maxs_x maxs_y maxs_z");
+                       }
                        else
                        {
                                t = car(s); s = cdr(s); f = stof(t);
                                if(s != "")
+                               {
                                        if(WARN_COND)
                                                LOG_WARN("Map ", pFilename, " contains an incorrect size line (too many params), syntax: size mins_x mins_y mins_z maxs_x maxs_y maxs_z");
+                               }
                                else
                                {
                                        if(a >= d || b >= e || c >= f)
+                                       {
                                                if(WARN_COND)
                                                        LOG_WARN("Map ", pFilename, " contains an incorrect size line, mins have to be < maxs");
+                                       }
                                        else
                                        {
                                                MapInfo_Map_mins.x = a;
@@ -1013,8 +1021,10 @@ float MapInfo_Get_ByName_NoFallbacks(string pFilename, int pAllowGenerate, Gamet
                else if(t == "fog")
                {
                        if (!cvar_value_issafe(s))
+                       {
                                if(WARN_COND)
                                        LOG_WARN("Map ", pFilename, " contains a potentially harmful fog setting, ignored");
+                       }
                        else
                                MapInfo_Map_fog = s;
                }
@@ -1030,8 +1040,10 @@ float MapInfo_Get_ByName_NoFallbacks(string pFilename, int pAllowGenerate, Gamet
                        if(pGametypeToSet)
                        {
                                if (!cvar_value_issafe(t))
+                               {
                                        if(WARN_COND)
                                                LOG_WARN("Map ", pFilename, " contains a potentially harmful cdtrack, ignored");
+                               }
                                else
                                        MapInfo_Map_clientstuff = strcat(
                                                MapInfo_Map_clientstuff, "cd loop \"", t, "\"\n"