From f570e338e4f861aa53cd44a4014a077105cefe72 Mon Sep 17 00:00:00 2001 From: TimePath Date: Sun, 27 Aug 2017 15:53:28 +1000 Subject: [PATCH] GameRules: make `GameRules_teams(true)` imply `have_team_spawns = -1` --- qcsrc/common/gamemodes/gamemode/nexball/nexball.qc | 1 - qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qh | 1 - qcsrc/common/gamemodes/sv_rules.qc | 7 +++++++ qcsrc/common/gamemodes/sv_rules.qh | 5 +++++ qcsrc/server/mutators/mutator/gamemode_assault.qh | 1 - qcsrc/server/mutators/mutator/gamemode_ca.qh | 3 +-- qcsrc/server/mutators/mutator/gamemode_ctf.qc | 1 - qcsrc/server/mutators/mutator/gamemode_domination.qh | 1 - qcsrc/server/mutators/mutator/gamemode_freezetag.qh | 3 +-- qcsrc/server/mutators/mutator/gamemode_invasion.qh | 3 +-- qcsrc/server/mutators/mutator/gamemode_keyhunt.qh | 3 +-- qcsrc/server/mutators/mutator/gamemode_race.qc | 2 -- qcsrc/server/mutators/mutator/gamemode_tdm.qh | 3 +-- 13 files changed, 17 insertions(+), 17 deletions(-) diff --git a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc index be00469cf..163cc3854 100644 --- a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc +++ b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc @@ -1158,7 +1158,6 @@ REGISTER_MUTATOR(nb, g_nexball) GameRules_teams(true); GameRules_limit_score(autocvar_g_nexball_goallimit); GameRules_limit_lead(autocvar_g_nexball_goalleadlimit); - have_team_spawns = -1; // request team spawns } MUTATOR_ONROLLBACK_OR_REMOVE diff --git a/qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qh b/qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qh index f27689503..7f2434915 100644 --- a/qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qh +++ b/qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qh @@ -13,7 +13,6 @@ REGISTER_MUTATOR(ons, false) GameRules_teams(true); GameRules_limit_score(autocvar_g_onslaught_point_limit); - have_team_spawns = -1; // request team spawns } MUTATOR_ONROLLBACK_OR_REMOVE diff --git a/qcsrc/common/gamemodes/sv_rules.qc b/qcsrc/common/gamemodes/sv_rules.qc index 38e3fb2ab..a4041f047 100644 --- a/qcsrc/common/gamemodes/sv_rules.qc +++ b/qcsrc/common/gamemodes/sv_rules.qc @@ -8,13 +8,20 @@ void GameRules_teams(bool value) serverflags |= SERVERFLAG_TEAMPLAY; teamplay = 1; cvar_set("teamplay", "2"); // DP needs this for sending proper getstatus replies. + GameRules_spawning_teams(true); } else { serverflags &= ~SERVERFLAG_TEAMPLAY; teamplay = 0; cvar_set("teamplay", "0"); // DP needs this for sending proper getstatus replies. + GameRules_spawning_teams(false); } } +void GameRules_spawning_teams(bool value) +{ + have_team_spawns = value ? -1 : 0; +} + bool _GameRules_score_enabled = true; void GameRules_score_enabled(bool value) { diff --git a/qcsrc/common/gamemodes/sv_rules.qh b/qcsrc/common/gamemodes/sv_rules.qh index 588d8da70..33083b367 100644 --- a/qcsrc/common/gamemodes/sv_rules.qh +++ b/qcsrc/common/gamemodes/sv_rules.qh @@ -3,6 +3,11 @@ // todo: accept the number of teams as a parameter void GameRules_teams(bool value); +/** + * Used to disable team spawns in team modes + */ +void GameRules_spawning_teams(bool value); + /** * Disabling score disables the "score" column on the scoreboard */ diff --git a/qcsrc/server/mutators/mutator/gamemode_assault.qh b/qcsrc/server/mutators/mutator/gamemode_assault.qh index dc46279e8..abe89ecca 100644 --- a/qcsrc/server/mutators/mutator/gamemode_assault.qh +++ b/qcsrc/server/mutators/mutator/gamemode_assault.qh @@ -7,7 +7,6 @@ void assault_ScoreRules(); REGISTER_MUTATOR(as, false) { GameRules_teams(true); - have_team_spawns = -1; // request team spawns MUTATOR_ONADD { diff --git a/qcsrc/server/mutators/mutator/gamemode_ca.qh b/qcsrc/server/mutators/mutator/gamemode_ca.qh index 5069c010d..6d4786ee5 100644 --- a/qcsrc/server/mutators/mutator/gamemode_ca.qh +++ b/qcsrc/server/mutators/mutator/gamemode_ca.qh @@ -56,8 +56,7 @@ REGISTER_MUTATOR(ca, false) GameRules_limit_score(autocvar_g_ca_point_limit); GameRules_limit_lead(autocvar_g_ca_point_leadlimit); - if (autocvar_g_ca_team_spawns) - have_team_spawns = -1; // request team spawns + GameRules_spawning_teams(autocvar_g_ca_team_spawns); } MUTATOR_ONREMOVE diff --git a/qcsrc/server/mutators/mutator/gamemode_ctf.qc b/qcsrc/server/mutators/mutator/gamemode_ctf.qc index 930e93b83..f54511f2c 100644 --- a/qcsrc/server/mutators/mutator/gamemode_ctf.qc +++ b/qcsrc/server/mutators/mutator/gamemode_ctf.qc @@ -15,7 +15,6 @@ REGISTER_MUTATOR(ctf, false) GameRules_teams(true); GameRules_limit_score(autocvar_capturelimit_override); GameRules_limit_lead(autocvar_captureleadlimit_override); - have_team_spawns = -1; // request team spawns } MUTATOR_ONROLLBACK_OR_REMOVE diff --git a/qcsrc/server/mutators/mutator/gamemode_domination.qh b/qcsrc/server/mutators/mutator/gamemode_domination.qh index 3fcca2e89..19ba2f9a3 100644 --- a/qcsrc/server/mutators/mutator/gamemode_domination.qh +++ b/qcsrc/server/mutators/mutator/gamemode_domination.qh @@ -24,7 +24,6 @@ REGISTER_MUTATOR(dom, false) GameRules_teams(true); GameRules_limit_score(fraglimit_override); GameRules_limit_lead(autocvar_g_domination_point_leadlimit); - have_team_spawns = -1; // request team spawns } MUTATOR_ONREMOVE diff --git a/qcsrc/server/mutators/mutator/gamemode_freezetag.qh b/qcsrc/server/mutators/mutator/gamemode_freezetag.qh index 2274180aa..69b857758 100644 --- a/qcsrc/server/mutators/mutator/gamemode_freezetag.qh +++ b/qcsrc/server/mutators/mutator/gamemode_freezetag.qh @@ -19,8 +19,7 @@ REGISTER_MUTATOR(ft, false) GameRules_limit_score(autocvar_g_freezetag_point_limit); GameRules_limit_lead(autocvar_g_freezetag_point_leadlimit); - if (autocvar_g_freezetag_team_spawns) - have_team_spawns = -1; // request team spawns + GameRules_spawning_teams(autocvar_g_freezetag_team_spawns); } MUTATOR_ONROLLBACK_OR_REMOVE diff --git a/qcsrc/server/mutators/mutator/gamemode_invasion.qh b/qcsrc/server/mutators/mutator/gamemode_invasion.qh index aad484cbf..1b5853d30 100644 --- a/qcsrc/server/mutators/mutator/gamemode_invasion.qh +++ b/qcsrc/server/mutators/mutator/gamemode_invasion.qh @@ -25,8 +25,7 @@ REGISTER_MUTATOR(inv, false) if (autocvar_g_invasion_teams >= 2) { GameRules_teams(true); - if (autocvar_g_invasion_team_spawns) - have_team_spawns = -1; // request team spawns + GameRules_spawning_teams(autocvar_g_invasion_team_spawns); } } diff --git a/qcsrc/server/mutators/mutator/gamemode_keyhunt.qh b/qcsrc/server/mutators/mutator/gamemode_keyhunt.qh index 3903caa98..5b0fb5bbb 100644 --- a/qcsrc/server/mutators/mutator/gamemode_keyhunt.qh +++ b/qcsrc/server/mutators/mutator/gamemode_keyhunt.qh @@ -18,8 +18,7 @@ REGISTER_MUTATOR(kh, false) GameRules_teams(true); GameRules_limit_score(autocvar_g_keyhunt_point_limit); GameRules_limit_lead(autocvar_g_keyhunt_point_leadlimit); - if (autocvar_g_keyhunt_team_spawns) - have_team_spawns = -1; // request team spawns + GameRules_spawning_teams(autocvar_g_keyhunt_team_spawns); } MUTATOR_ONROLLBACK_OR_REMOVE diff --git a/qcsrc/server/mutators/mutator/gamemode_race.qc b/qcsrc/server/mutators/mutator/gamemode_race.qc index 84ca96fae..2dae1012a 100644 --- a/qcsrc/server/mutators/mutator/gamemode_race.qc +++ b/qcsrc/server/mutators/mutator/gamemode_race.qc @@ -448,8 +448,6 @@ void rc_SetLimits() if(race_teams >= 4) teams |= BIT(3); race_teams = teams; // now set it? - - have_team_spawns = -1; // request team spawns } else race_teams = 0; diff --git a/qcsrc/server/mutators/mutator/gamemode_tdm.qh b/qcsrc/server/mutators/mutator/gamemode_tdm.qh index 5946f84a8..bfff9cca1 100644 --- a/qcsrc/server/mutators/mutator/gamemode_tdm.qh +++ b/qcsrc/server/mutators/mutator/gamemode_tdm.qh @@ -18,8 +18,7 @@ REGISTER_MUTATOR(tdm, false) GameRules_teams(true); GameRules_limit_score(autocvar_g_tdm_point_limit); GameRules_limit_lead(autocvar_g_tdm_point_leadlimit); - if (autocvar_g_tdm_team_spawns) - have_team_spawns = -1; // request team spawns + GameRules_spawning_teams(autocvar_g_tdm_team_spawns); } MUTATOR_ONROLLBACK_OR_REMOVE -- 2.39.2