]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Change map support cvar to allow Keepaway maps to be played in Team Keepaway rather...
authorMario <mario.mario@y7mail.com>
Thu, 30 Jun 2022 13:37:03 +0000 (23:37 +1000)
committerMario <mario.mario@y7mail.com>
Thu, 30 Jun 2022 13:37:03 +0000 (23:37 +1000)
Add a separate cvar to allow Team Deathmatch maps to be played in Team Keepaway, disabled by default

gamemodes-server.cfg
qcsrc/common/gamemodes/gamemode/tka/tka.qh
qcsrc/server/world.qc

index 56cb88a7484dcbc5dd345960425024ace1e196a9..548ca34788c70214f46107097d01850175486654 100644 (file)
@@ -574,7 +574,8 @@ set g_duel_not_dm_maps 0 "when this is set, DM maps will NOT be listed in duel"
 //  team keepaway
 // ===============
 set g_tka 0 "another game mode which focuses around a ball"
-set g_tka_on_dm_maps 0 "when this is set, all DM and KA maps automatically support TKA"
+set g_tka_on_ka_maps 1 "when this is set, all KA maps automatically support TKA"
+set g_tka_on_tdm_maps 0 "when this is set, all TDM maps automatically support TKA"
 set g_tka_teams 2 "how many teams are in team keepaway (set by mapinfo)"
 set g_tka_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any"
 set g_tka_teams_override 0     "how many teams are in team keepaway"
index 33b17ed72fc24cffff0cf91794d055c3cf143bf7..8a07f5f6578d00a432ae42a3a551264dbe55428f 100644 (file)
@@ -33,10 +33,16 @@ CLASS(TeamKeepaway, Gametype)
     }
     METHOD(TeamKeepaway, m_isForcedSupported, bool(Gametype this))
     {
-        if(cvar("g_tka_on_dm_maps"))
+        if(cvar("g_tka_on_ka_maps"))
         {
-            // if this is set, all DM and KA maps support TKA too
-            if(!(MapInfo_Map_supportedGametypes & this.m_flags) && ((MapInfo_Map_supportedGametypes & MAPINFO_TYPE_DEATHMATCH.m_flags) || (MapInfo_Map_supportedGametypes & MAPINFO_TYPE_KEEPAWAY.m_flags)))
+            // if this is set, all KA maps support TKA too
+            if(!(MapInfo_Map_supportedGametypes & this.m_flags) && (MapInfo_Map_supportedGametypes & MAPINFO_TYPE_KEEPAWAY.m_flags))
+                return true; // TODO: references another gametype (alternatively, we could check which gamemodes are always enabled and append this if any are supported)
+        }
+        if(cvar("g_tka_on_tdm_maps"))
+        {
+            // if this is set, all TDM maps support TKA too
+            if(!(MapInfo_Map_supportedGametypes & this.m_flags) && (MapInfo_Map_supportedGametypes & MAPINFO_TYPE_TEAM_DEATHMATCH.m_flags))
                 return true; // TODO: references another gametype (alternatively, we could check which gamemodes are always enabled and append this if any are supported)
         }
         return false;
index b2f3ad7fb0f12855a5070b327f04729babd47d1a..d86f597b30074830cdea2c0292eefff1eb884b4f 100644 (file)
@@ -299,7 +299,8 @@ void cvar_changes_init()
                BADCVAR("g_tdm_on_dm_maps");
                BADCVAR("g_tdm_teams");
                BADCVAR("g_tka");
-               BADCVAR("g_tka_on_dm_maps");
+               BADCVAR("g_tka_on_ka_maps");
+               BADCVAR("g_tka_on_tdm_maps");
                BADCVAR("g_tka_teams");
                BADCVAR("g_vip");
                BADCVAR("leadlimit");