]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Used team indexes in Player_ChangedTeam.
authorLyberta <lyberta@lyberta.net>
Fri, 9 Mar 2018 13:53:18 +0000 (16:53 +0300)
committerLyberta <lyberta@lyberta.net>
Fri, 9 Mar 2018 13:53:18 +0000 (16:53 +0300)
qcsrc/server/client.qc
qcsrc/server/mutators/events.qh
qcsrc/server/teamplay.qc

index 410245460b8c17e8ea57369a2859d774c1cde2b9..bbaca9cc5e1088f606bbf0c4688c5f05620b0b37 100644 (file)
@@ -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
     }
index 35f69fa0bd7b047eddafd3cbc72c5b248c63a2e8..b9046515dbf07e52cc32b06e73b5e0c468010068 100644 (file)
@@ -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);
 
index d239ec32dd1173e91b7bf49cc1cdbb0bfa7e1396..5e8d8c82561f265fd47bc25ec8d284c82fe04f43 100644 (file)
@@ -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;
 }