// common team values
set g_tdm 0 "Team Deathmatch: the team who kills their opponents most often wins"
+set g_tdm_on_dm_maps 0 "when this is set, all DM maps automatically support TDM"
seta teamplay_mode 4 "default teamplay setting in team games. 1 = no friendly fire, self damage. 2 = friendly fire and self damage enabled. 3 = no friendly fire, but self damage enabled. 4 = obey the following four cvars"
seta g_mirrordamage 0.700000 "for teamplay 4: mirror damage factor"
seta g_teamdamage_threshold 40 "for teamplay 4: threshold over which to apply mirror damage"
seta g_teamdamage_resetspeed 20 "for teamplay 4: how fast player's teamdamage count decreases"
-set deathmatch_force_teamplay 0 "Always play TDM instead of DM"
seta g_balance_teams 0 "automatically balance out players entering instead of asking them for their preferred team"
seta g_balance_teams_force 0 "automatically balance out teams when players move or disconnect"
seta g_balance_teams_prevent_imbalance 0 "prevent players from changing to larger teams"
MapInfo_Map_supportedGametypes = stof(bufstr_get(_MapInfo_Cache_Buf_IndexToMapData, ++i));
MapInfo_Map_supportedFeatures = stof(bufstr_get(_MapInfo_Cache_Buf_IndexToMapData, ++i));
MapInfo_Map_flags = stof(bufstr_get(_MapInfo_Cache_Buf_IndexToMapData, ++i));
+
return 1;
}
}
// load info about a map by name into the MapInfo_Map_* globals
-float MapInfo_Get_ByName(string pFilename, float pAllowGenerate, float pGametypeToSet)
+float MapInfo_Get_ByName_NoFallbacks(string pFilename, float pAllowGenerate, float pGametypeToSet)
{
string fn;
string s, t;
}
fclose(fh);
- if(pGametypeToSet)
- {
- if(!(MapInfo_Map_supportedGametypes & pGametypeToSet))
- {
- error("Can't select the requested game type. This should never happen as the caller should prevent it!\n");
- //_MapInfo_Map_ApplyGametypeEx("", pGametypeToSet, MAPINFO_TYPE_DEATHMATCH);
- //return;
- }
- }
-
if(MapInfo_Map_title == "<TITLE>")
MapInfo_Map_titlestring = MapInfo_Map_bspname;
else if(MapInfo_isRedundant(MapInfo_Map_bspname, MapInfo_Map_title))
dprint("Map ", pFilename, " supports no game types, ignored\n");
return 0;
}
+float MapInfo_Get_ByName(string pFilename, float pAllowGenerate, float pGametypeToSet)
+{
+ float r = MapInfo_Get_ByName_NoFallbacks(pFilename, pAllowGenerate, pGametypeToSet);
+
+#ifdef SVQC
+ if(autocvar_g_tdm_on_dm_maps)
+ {
+ // if this is set, all DM maps support TDM too
+ if not(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_TEAM_DEATHMATCH)
+ if(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_DEATHMATCH)
+ _MapInfo_Map_ApplyGametypeEx ("", pGametypeToSet, MAPINFO_TYPE_TEAM_DEATHMATCH);
+ }
+#endif
+
+ if(pGametypeToSet)
+ {
+ if(!(MapInfo_Map_supportedGametypes & pGametypeToSet))
+ {
+ error("Can't select the requested game type. This should never happen as the caller should prevent it!\n");
+ //_MapInfo_Map_ApplyGametypeEx("", pGametypeToSet, MAPINFO_TYPE_DEATHMATCH);
+ //return;
+ }
+ }
+
+ return r;
+}
float MapInfo_FindName(string s)
{
float autocvar_bot_wander_enable;
float autocvar_captureleadlimit_override;
#define autocvar_capturelimit_override cvar("capturelimit_override")
-float autocvar_deathmatch_force_teamplay;
#define autocvar_developer cvar("developer")
float autocvar_developer_fteqccbugs;
float autocvar_ekg;
float autocvar_g_sandbox_object_scale_max;
float autocvar_g_sandbox_object_material_velocity_min;
float autocvar_g_sandbox_object_material_velocity_factor;
+float autocvar_g_tdm_on_dm_maps;