From: Lyberta Date: Fri, 9 Mar 2018 13:53:18 +0000 (+0300) Subject: Used team indexes in Player_ChangedTeam. X-Git-Tag: xonotic-v0.8.5~1953^2~37 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=ec6b37f6dbc1fe8376dcbc90a75c699b15756ad1;p=xonotic%2Fxonotic-data.pk3dir.git Used team indexes in Player_ChangedTeam. --- diff --git a/qcsrc/server/client.qc b/qcsrc/server/client.qc index 410245460..bbaca9cc5 100644 --- a/qcsrc/server/client.qc +++ b/qcsrc/server/client.qc @@ -282,9 +282,9 @@ void PutObserverInServer(entity this) if (mutator_returnvalue) { // mutator prevents resetting teams+score } else { - int oldteam = this.team; + int old_team_index = Team_TeamToIndex(this.team); this.team = -1; // move this as it is needed to log the player spectating in eventlog - MUTATOR_CALLHOOK(Player_ChangedTeam, this, oldteam, this.team); + MUTATOR_CALLHOOK(Player_ChangedTeam, this, old_team_index, -1); this.frags = FRAGS_SPECTATOR; PlayerScore_Clear(this); // clear scores when needed } diff --git a/qcsrc/server/mutators/events.qh b/qcsrc/server/mutators/events.qh index 35f69fa0b..b9046515d 100644 --- a/qcsrc/server/mutators/events.qh +++ b/qcsrc/server/mutators/events.qh @@ -968,9 +968,9 @@ MUTATOR_HOOKABLE(MonsterModel, EV_MonsterModel); * Called before player changes their team. Return true to block team change. */ #define EV_Player_ChangeTeam(i, o) \ - /** player */ i(entity, MUTATOR_ARGV_0_entity) \ - /** current team */ i(float, MUTATOR_ARGV_1_float) \ - /** new team */ i(float, MUTATOR_ARGV_2_float) \ + /** player */ i(entity, MUTATOR_ARGV_0_entity) \ + /** current team index */ i(float, MUTATOR_ARGV_1_float) \ + /** new team index */ i(float, MUTATOR_ARGV_2_float) \ /**/ MUTATOR_HOOKABLE(Player_ChangeTeam, EV_Player_ChangeTeam); @@ -978,9 +978,9 @@ MUTATOR_HOOKABLE(Player_ChangeTeam, EV_Player_ChangeTeam); * Called after player has changed their team. */ #define EV_Player_ChangedTeam(i, o) \ - /** player */ i(entity, MUTATOR_ARGV_0_entity) \ - /** old team */ i(float, MUTATOR_ARGV_1_float) \ - /** current team */ i(float, MUTATOR_ARGV_2_float) \ + /** player */ i(entity, MUTATOR_ARGV_0_entity) \ + /** old team index */ i(float, MUTATOR_ARGV_1_float) \ + /** current team index */ i(float, MUTATOR_ARGV_2_float) \ /**/ MUTATOR_HOOKABLE(Player_ChangedTeam, EV_Player_ChangedTeam); diff --git a/qcsrc/server/teamplay.qc b/qcsrc/server/teamplay.qc index d239ec32d..5e8d8c825 100644 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@ -263,15 +263,17 @@ bool SetPlayerTeamSimple(entity player, int team_num) SetPlayerColors(player, team_num - 1); return true; } - if (MUTATOR_CALLHOOK(Player_ChangeTeam, player, Team_TeamToIndex( - player.team), Team_TeamToIndex(team_num)) == true) + int old_team_index = Team_TeamToIndex(player.team); + int new_team_index = Team_TeamToIndex(team_num); + if (MUTATOR_CALLHOOK(Player_ChangeTeam, player, old_team_index, + new_team_index) == true) { // Mutator has blocked team change. return false; } - int old_team_num = player.team; SetPlayerColors(player, team_num - 1); - MUTATOR_CALLHOOK(Player_ChangedTeam, player, old_team_num, player.team); + MUTATOR_CALLHOOK(Player_ChangedTeam, player, old_team_index, + new_team_index); return true; }