]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mapinfo.qc
Merge branch 'master' into Mario/q3compat_sanity
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mapinfo.qc
index 08db62281e958b6b4f4f2447e19440110857a330..a166d82602b0d1a7828b735b42739d808d857b64 100644 (file)
@@ -1,11 +1,11 @@
 #include "mapinfo.qh"
 #if defined(CSQC)
-    #include "util.qh"
-    #include <common/weapons/_all.qh>
+       #include <common/util.qh>
+       #include <common/weapons/_all.qh>
 #elif defined(MENUQC)
 #elif defined(SVQC)
-    #include "util.qh"
-    #include <common/monsters/_mod.qh>
+       #include <common/util.qh>
+       #include <common/monsters/_mod.qh>
 #endif
 
 bool autocvar_g_mapinfo_arena_compat = true;
@@ -256,11 +256,9 @@ string unquote(string s)
        return "";
 }
 
-float MapInfo_Get_ByID(float i)
+bool MapInfo_Get_ByID(int i)
 {
-       if(MapInfo_Get_ByName(MapInfo_BSPName_ByID(i), 0, NULL))
-               return 1;
-       return 0;
+       return MapInfo_Get_ByName(MapInfo_BSPName_ByID(i), 0, NULL) ? true : false;
 }
 
 string _MapInfo_Map_worldspawn_music;
@@ -626,7 +624,6 @@ Gametype MapInfo_Type_FromString(string gtype, bool dowarn, bool is_q3compat)
                case "ffa":       replacement = "dm"; do_warn = false; break;
                case "cctf":
                case "oneflag":   replacement = "ctf"; do_warn = false; break;
-               case "team":      replacement = "tdm"; do_warn = false; break;
                case "tourney":   replacement = "duel"; do_warn = false; break;
                case "arena":     if(is_q3compat) { replacement = "ca"; do_warn = false; } break;
        }
@@ -899,7 +896,8 @@ bool _MapInfo_ParseArena(string arena_filename, int fh, string pFilename, Gamety
                        // if there is a valid gametype in this .arena file, include it in the menu
                        stored_supportedFeatures |= MAPINFO_FEATURE_WEAPONS;
                        // type in quake 3 holds all the supported gametypes, so we must loop through all of them
-                       FOREACH_WORD(s, true,
+                       string types = strreplace("team", "tdm ft", s); // TODO: handle support here better to include more Xonotic teamplay modes
+                       FOREACH_WORD(types, true,
                        {
                                Gametype f = MapInfo_Type_FromString(it, false, true);
                                if(f)
@@ -1376,7 +1374,7 @@ int MapInfo_CurrentFeatures()
 {
        int req = 0;
     // TODO: find a better way to check if weapons are required on the map
-       if(!(cvar("g_instagib") || cvar("g_overkill") || cvar("g_nix") || cvar("g_weaponarena") || !cvar("g_pickup_items") 
+       if(!(cvar("g_instagib") || cvar("g_overkill") || cvar("g_nix") || cvar("g_weaponarena") || !cvar("g_pickup_items") || !cvar("g_melee_only") 
                || cvar("g_race") || cvar("g_cts") || cvar("g_nexball") || cvar("g_ca") || cvar("g_freezetag") || cvar("g_lms")))
                req |= MAPINFO_FEATURE_WEAPONS;
        return req;