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 = "inv";
print("'. Should use '", t, "'.\n");
}
+ if(t == "assault")
+ {
+ print("MapInfo_Type_FromString (probably ", MapInfo_Map_bspname, "): using deprecated name '", t);
+ t = "as";
+ print("'. Should use '", t, "'.\n");
+ }
+ if(t == "race")
+ {
+ print("MapInfo_Type_FromString (probably ", MapInfo_Map_bspname, "): using deprecated name '", t);
+ t = "rc";
+ 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");
{
t = car(s); s = cdr(s);
f = MapInfo_Type_FromString(t);
- print("Map ", pFilename, " contains the legacy 'type' keyword which is deprecated and will be removed in the future. Please migrate the mapinfo file to 'gametype'.\n");
+ dprint("Map ", pFilename, " contains the legacy 'type' keyword which is deprecated and will be removed in the future. Please migrate the mapinfo file to 'gametype'.\n");
if(f)
_MapInfo_Map_ApplyGametype (s, pGametypeToSet, f, TRUE);
else
else if(MapInfo_isRedundant(MapInfo_Map_bspname, MapInfo_Map_title))
MapInfo_Map_titlestring = MapInfo_Map_title;
else
- MapInfo_Map_titlestring = sprintf(_("%s: %s"), MapInfo_Map_bspname, MapInfo_Map_title);
+ MapInfo_Map_titlestring = sprintf("%s: %s", MapInfo_Map_bspname, MapInfo_Map_title);
MapInfo_Cache_Store();
if(MapInfo_Map_supportedGametypes != 0)
{
float req;
req = 0;
- if(!(cvar("g_lms") || cvar("g_minstagib") || cvar("g_nix") || cvar("g_weaponarena") || !cvar("g_pickup_items") || cvar("g_race") || cvar("g_cts") || cvar("g_nexball")))
+ if(!(cvar("g_lms") || cvar("g_instagib") || cvar("g_nix") || cvar("g_weaponarena") || !cvar("g_pickup_items") || cvar("g_race") || cvar("g_cts") || cvar("g_nexball")))
req |= MAPINFO_FEATURE_WEAPONS;
return req;
}
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)