From d0bee8b16abe5d50eaf98a446874024a44d6098c Mon Sep 17 00:00:00 2001 From: terencehill Date: Thu, 6 Jun 2013 00:35:16 +0200 Subject: [PATCH] Fix implementation of CA score rules --- qcsrc/server/mutators/gamemode_ca.qc | 28 ++++++++-------------------- qcsrc/server/mutators/gamemode_ca.qh | 6 ------ qcsrc/server/scores_rules.qc | 8 ++++++++ 3 files changed, 16 insertions(+), 26 deletions(-) diff --git a/qcsrc/server/mutators/gamemode_ca.qc b/qcsrc/server/mutators/gamemode_ca.qc index 7c8c1cb77c..b5c1a42998 100644 --- a/qcsrc/server/mutators/gamemode_ca.qc +++ b/qcsrc/server/mutators/gamemode_ca.qc @@ -182,12 +182,8 @@ MUTATOR_HOOKFUNCTION(ca_reset_map_global) MUTATOR_HOOKFUNCTION(ca_GetTeamCount) { - ca_teams = autocvar_g_ca_teams_override; - if(ca_teams < 2) - ca_teams = autocvar_g_ca_teams; - ca_teams = bound(2, ca_teams, 4); ret_float = ca_teams; - return 1; + return 0; } MUTATOR_HOOKFUNCTION(ca_PlayerDies) @@ -238,23 +234,17 @@ MUTATOR_HOOKFUNCTION(ca_SetStartItems) return 0; } -// scoreboard setup -void ca_ScoreRules() -{ - ScoreRules_basics(2, SFL_SORT_PRIO_PRIMARY, 0, TRUE); - ScoreInfo_SetLabel_TeamScore (ST_CA_ROUNDS, "rounds", SFL_SORT_PRIO_PRIMARY); - ScoreRules_basics_end(); -} - -void ca_DelayedInit() // Do this check with a delay so we can wait for teams to be set up. -{ - ca_ScoreRules(); -} - void ca_Initialize() { allowed_to_spawn = TRUE; + ca_teams = autocvar_g_ca_teams_override; + if(ca_teams < 2) + ca_teams = autocvar_g_ca_teams; + ca_teams = bound(2, ca_teams, 4); + ret_float = ca_teams; + ScoreRules_ca(ca_teams); + round_handler_Spawn(CA_CheckTeams, CA_CheckWinner, CA_RoundStart); round_handler_Init(5, autocvar_g_ca_warmup, autocvar_g_ca_round_timelimit); @@ -262,8 +252,6 @@ void ca_Initialize() addstat(STAT_BLUEALIVE, AS_INT, bluealive_stat); addstat(STAT_YELLOWALIVE, AS_INT, yellowalive_stat); addstat(STAT_PINKALIVE, AS_INT, pinkalive_stat); - - InitializeEntity(world, ca_DelayedInit, INITPRIO_GAMETYPE); } MUTATOR_DEFINITION(gamemode_ca) diff --git a/qcsrc/server/mutators/gamemode_ca.qh b/qcsrc/server/mutators/gamemode_ca.qh index a33395254b..a7c1edfc53 100644 --- a/qcsrc/server/mutators/gamemode_ca.qh +++ b/qcsrc/server/mutators/gamemode_ca.qh @@ -1,8 +1,2 @@ // should be removed in the future, as other code should not have to care .float caplayer; // 0.5 if scheduled to join the next round - -#ifdef SVQC - -#define ST_CA_ROUNDS 1 - -#endif diff --git a/qcsrc/server/scores_rules.qc b/qcsrc/server/scores_rules.qc index d60f4563c1..133178a205 100644 --- a/qcsrc/server/scores_rules.qc +++ b/qcsrc/server/scores_rules.qc @@ -115,3 +115,11 @@ void ScoreRules_freezetag() ScoreInfo_SetLabel_PlayerScore(SP_FREEZETAG_REVIVALS, "revivals", 0); ScoreRules_basics_end(); } +#define ST_CA_ROUNDS 1 +void ScoreRules_ca(float teams) +{ + CheckAllowedTeams(world); + ScoreRules_basics(teams, SFL_SORT_PRIO_PRIMARY, 0, TRUE); + ScoreInfo_SetLabel_TeamScore(ST_CA_ROUNDS, "rounds", SFL_SORT_PRIO_PRIMARY); + ScoreRules_basics_end(); +} -- 2.39.2