Fixes Q3/QL maps that support 2v2 and duel also getting CA enabled.
The "tournament" string never matched, it's "tourney" in Q3 and "duel"
in QL, "tournament" is only used in the Q3 .gametype entity field.
int autocvar_g_mapinfo_q3compat = 1;
int autocvar_g_mapinfo_q3compat = 1;
-#ifdef MENUQC
-#define WARN_COND false
+#ifdef SVQC
+ bool autocvar_g_mapinfo_ignore_warnings;
+ #define WARN_COND (!autocvar_g_mapinfo_ignore_warnings && MapInfo_Map_bspname == mi_shortname)
-bool autocvar_g_mapinfo_ignore_warnings;
-#define WARN_COND (!autocvar_g_mapinfo_ignore_warnings && MapInfo_Map_bspname == mi_shortname)
+ #define WARN_COND false
#endif
// generic string stuff
#endif
// generic string stuff
Gametype MapInfo_Type_FromString(string gtype, bool dowarn, bool is_q3compat)
{
string replacement = "";
Gametype MapInfo_Type_FromString(string gtype, bool dowarn, bool is_q3compat)
{
string replacement = "";
switch (gtype)
{
case "nexball": replacement = "nb"; break;
switch (gtype)
{
case "nexball": replacement = "nb"; break;
case "invasion": replacement = "inv"; break;
case "assault": replacement = "as"; break;
case "race": replacement = "rc"; break;
case "invasion": replacement = "inv"; break;
case "assault": replacement = "as"; break;
case "race": replacement = "rc"; break;
- // quake 3 compat
- case "ffa": replacement = "dm"; do_warn = false; break;
- case "cctf":
- case "oneflag": replacement = "ctf"; do_warn = false; break;
- case "tournament":
- case "tourney": replacement = "duel"; do_warn = false; break;
- case "arena": if(is_q3compat) { replacement = "ca"; do_warn = false; } break;
+ // Q3/QL compat, see DoesQ3ARemoveThisEntity() in quake3.qc for complete lists
+ case "ffa": replacement = "dm"; break;
+ case "cctf": // from ThreeWave, maps with this should all have "ctf" too
+ case "oneflag": replacement = "ctf"; break;
+ case "tourney": replacement = "duel"; break;
+ case "arena": // which Q3 mod is this from? In Nexuiz it was 'duel with rounds'.
+ if(is_q3compat) { replacement = "ca"; } break;
}
if (replacement != "")
{
}
if (replacement != "")
{
string types = s;
types = strreplace("team", "tdm ft", types);
types = strreplace("ffa", "dm lms ka", types);
string types = s;
types = strreplace("team", "tdm ft", types);
types = strreplace("ffa", "dm lms ka", types);
- if(strstrofs(types, "tournament", 0) < 0 && strstrofs(types, "tdm", 0) >= 0) // larger team map, support additional gamemodes!
+ types = strreplace("tourney", "duel", types); // QL used duel so the following check must support it
+ if(strstrofs(types, "duel", 0) < 0 && strstrofs(types, "tdm", 0) >= 0) // larger team map, support additional gamemodes!
types = cons(types, "ca kh");
FOREACH_WORD(types, true,
{
types = cons(types, "ca kh");
FOREACH_WORD(types, true,
{