MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_CTF;
else if(v == "team_CTF_blueflag")
MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_CTF;
+ else if(v == "invasion_spawnpoint")
+ MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_INVASION;
else if(v == "target_assault_roundend")
MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_ASSAULT;
else if(v == "onslaught_generator")
MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_TURRETS;
else if(startsWith(v, "vehicle_"))
MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_VEHICLES;
+ else if(startsWith(v, "monster_"))
+ MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_MONSTERS;
else if(v == "target_music" || v == "trigger_music")
_MapInfo_Map_worldspawn_music = string_null; // don't use regular BGM
}
p = strstrofs(sa, "=", 0);
if(p < 0)
{
- k = "timelimit";
- v = s;
- }
- else
- {
- k = substring(sa, 0, p);
- v = substring(sa, p+1, -1);
+ print("Invalid gametype setting in mapinfo for gametype ", MapInfo_Type_ToString(pWantedType), ": ", sa, "\n");
+ continue;
}
+ k = substring(sa, 0, p);
+ v = substring(sa, p+1, -1);
if(k == "timelimit")
{
cvar_set("g_freezetag_teams", v);
cvar_set("g_keyhunt_teams", v);
cvar_set("g_domination_default_teams", v);
+ cvar_set("g_invasion_teams", v);
}
else if(k == "qualifying_timelimit")
{
}
else
{
- print("Invalid gametype key in mapinfo: ", k, "\n");
+ print("Invalid gametype setting in mapinfo for gametype ", MapInfo_Type_ToString(pWantedType), ": ", sa, "\n");
}
}
t = "ka";
print("'. Should use '", t, "'.\n");
}
+ if(t == "invasion")
+ {
+ print("MapInfo_Type_FromString (probably ", MapInfo_Map_bspname, "): using deprecated name '", t);
+ t = "inv";
+ print("'. Should use '", t, "'.\n");
+ }
if(t == "all")
return MAPINFO_TYPE_ALL;
for(e = MapInfo_Type_first; e; e = e.enemy)
return 0;
}
+string MapInfo_Type_Description(float t)
+{
+ entity e;
+ for(e = MapInfo_Type_first; e; e = e.enemy)
+ if(t == e.items)
+ return e.gametype_description;
+ return "";
+}
+
string MapInfo_Type_ToString(float t)
{
entity e;
if (t == "weapons") MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_WEAPONS;
else if(t == "turrets") MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_TURRETS;
else if(t == "vehicles") MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_VEHICLES;
+ else if(t == "monsters") MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_MONSTERS;
else if(t == "new_toys") MapInfo_Map_supportedFeatures |= MAPINFO_FEATURE_WEAPONS;
else
dprint("Map ", pFilename, " supports unknown feature ", t, ", ignored\n");
{
if(!(MapInfo_Map_supportedGametypes & pGametypeToSet))
{
- error("Can't select the requested game type. This should never happen as the caller should prevent it!\n");
+ //error("Can't select the requested game type. This should never happen as the caller should prevent it!\n");
+ return 0;
//_MapInfo_Map_ApplyGametypeEx("", pGametypeToSet, MAPINFO_TYPE_DEATHMATCH);
//return;
}
localcmd(strcat("\nchangelevel ", s, "\n"));
}
-string MapInfo_ListAllowedMaps(float pRequiredFlags, float pForbiddenFlags)
+string MapInfo_ListAllowedMaps(float type, float pRequiredFlags, float pForbiddenFlags)
{
string out;
float i;
// to make absolutely sure:
MapInfo_Enumerate();
- MapInfo_FilterGametype(MapInfo_CurrentGametype(), MapInfo_CurrentFeatures(), pRequiredFlags, pForbiddenFlags, 0);
+ MapInfo_FilterGametype(type, MapInfo_CurrentFeatures(), pRequiredFlags, pForbiddenFlags, 0);
out = "";
for(i = 0; i < MapInfo_count; ++i)