return;
s = db_get(_MapInfo_Cache_DB_NameToIndex, MapInfo_Map_bspname);
- if(!s) // empty string is NOT valid here!
+ if(s == "")
{
i = buf_getsize(_MapInfo_Cache_Buf_IndexToMapData);
db_put(_MapInfo_Cache_DB_NameToIndex, MapInfo_Map_bspname, ftos(i));
return 0;
s = db_get(_MapInfo_Cache_DB_NameToIndex, map);
- if(!s)
+ if(s == "")
return 0;
i = stof(s);
string _MapInfo_GlobItem(float i)
{
string s;
+ if(!_MapInfo_globopen)
+ return string_null;
s = search_getfilename(_MapInfo_globhandle, i);
return substring(s, 5, strlen(s) - 9); // without maps/ and .bsp
}
void MapInfo_Enumerate()
{
if(_MapInfo_globopen)
+ {
search_end(_MapInfo_globhandle);
+ _MapInfo_globopen = 0;
+ }
MapInfo_Cache_Invalidate();
_MapInfo_globhandle = search_begin("maps/*.bsp", TRUE, TRUE);
- _MapInfo_globcount = search_getsize(_MapInfo_globhandle);
- _MapInfo_globopen = 1;
+ if(_MapInfo_globhandle >= 0)
+ {
+ _MapInfo_globcount = search_getsize(_MapInfo_globhandle);
+ _MapInfo_globopen = 1;
+ }
+ else
+ _MapInfo_globcount = 0;
}
// filter the info by game type mask (updates MapInfo_count)
spawnpoints = 0;
spawnplaces = 0;
_MapInfo_Map_worldspawn_music = "";
+ mapMins = '0 0 0';
+ mapMaxs = '0 0 0';
for(;;)
{
MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_CTF;
else if(v == "team_CTF_blueflag")
MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_CTF;
- else if(v == "runematch_spawn_point")
- MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_RUNEMATCH;
else if(v == "target_assault_roundend")
MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_ASSAULT;
else if(v == "onslaught_generator")
else
{
MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_DEATHMATCH; // DM always works
- MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_RUNEMATCH; // Rune always works
MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_LMS; // LMS always works
MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_KEEPAWAY; // Keepaway always works
if(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_RACE)
if(!spawnplaces)
{
- MapInfo_Map_supportedGametypes &~= MAPINFO_TYPE_RACE;
+ MapInfo_Map_supportedGametypes &= ~MAPINFO_TYPE_RACE;
MapInfo_Map_supportedGametypes |= MAPINFO_TYPE_CTS;
}
case MAPINFO_TYPE_TEAM_DEATHMATCH: return "50 20 2 0";
case MAPINFO_TYPE_DOMINATION: return "200 20 0";
case MAPINFO_TYPE_CTF: return "300 20 10 0";
- case MAPINFO_TYPE_RUNEMATCH: return "200 20 0";
case MAPINFO_TYPE_LMS: return "9 20 0";
case MAPINFO_TYPE_ARENA: return "10 20 0";
case MAPINFO_TYPE_CA: return "10 20 0";
s = cdr(s);
}
+ if(pWantedType == MAPINFO_TYPE_CA)
+ {
+ sa = car(s);
+ if(sa != "")
+ cvar_set("g_ca_teams", sa);
+ s = cdr(s);
+ }
+
+ if(pWantedType == MAPINFO_TYPE_FREEZETAG)
+ {
+ sa = car(s);
+ if(sa != "")
+ cvar_set("g_freezetag_teams", sa);
+ s = cdr(s);
+ }
+
if(pWantedType == MAPINFO_TYPE_CTF)
{
sa = car(s);
cvar_set("leadlimit", cvar_defstring("leadlimit"));
cvar_set("fraglimit", cvar_defstring("fraglimit"));
cvar_set("g_tdm_teams", cvar_defstring("g_tdm_teams"));
+ cvar_set("g_ca_teams", cvar_defstring("g_ca_teams"));
+ cvar_set("g_freezetag_teams", cvar_defstring("g_freezetag_teams"));
cvar_set("g_keyhunt_teams", cvar_defstring("g_keyhunt_teams"));
cvar_set("g_domination_default_teams", cvar_defstring("g_domination_default_teams"));
cvar_set("g_race_qualifying_timelimit", cvar_defstring("g_race_qualifying_timelimit"));
else if(k == "teams")
{
cvar_set("g_tdm_teams", v);
+ cvar_set("g_ca_teams", v);
+ cvar_set("g_freezetag_teams", v);
cvar_set("g_keyhunt_teams", v);
cvar_set("g_domination_default_teams", v);
}
for(e = MapInfo_Type_first; e; e = e.enemy)
if(t == e.items)
return e.message;
+ /* xgettext:no-c-format */
return _("@!#%'n Tuba Throwing");
}
else
fputs(fh, "// uncomment this if you added turrets: has turrets\n");
if(MapInfo_Map_supportedFeatures & MAPINFO_FEATURE_VEHICLES)
- fputs(fh, "has weapons\n");
+ fputs(fh, "has vehicles\n");
else
fputs(fh, "// uncomment this if you added vehicles: has vehicles\n");
if(MapInfo_Map_flags & MAPINFO_FLAG_FRUSTRATING)
MapInfo_Map_author = s;
else if(t == "has")
{
- t = car(s); s = cdr(s);
+ t = car(s); // s = cdr(s);
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;
{
MapInfo_Map_flags |= MAPINFO_FLAG_FRUSTRATING;
}
+ else if(t == "noautomaplist")
+ {
+ MapInfo_Map_flags |= MAPINFO_FLAG_NOAUTOMAPLIST;
+ }
else if(t == "type")
{
t = car(s); s = cdr(s);
}
else if(t == "fog")
{
- if not(cvar_value_issafe(t))
+ if not(cvar_value_issafe(s))
print("Map ", pFilename, " contains a potentially harmful fog setting, ignored\n");
else
MapInfo_Map_fog = s;
}
else if(t == "cdtrack")
{
- if(pGametypeToSet)
+ t = car(s); s = cdr(s);
+ if(pGametypeToSet) // FIXME is this check right here?
{
if not(cvar_value_issafe(t))
print("Map ", pFilename, " contains a potentially harmful cdtrack, ignored\n");
else
MapInfo_Map_clientstuff = strcat(
- MapInfo_Map_clientstuff, "cd loop \"", s, "\"\n"
+ MapInfo_Map_clientstuff, "cd loop \"", t, "\"\n"
);
}
}