From 5022b90ca35089a16597ce67dbed9b5600cd9657 Mon Sep 17 00:00:00 2001 From: Lyberta Date: Wed, 2 Aug 2017 06:31:29 +0300 Subject: [PATCH] SetPlayerTeam now returns bool. --- qcsrc/server/teamplay.qc | 18 ++++++++++++------ qcsrc/server/teamplay.qh | 4 ++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/qcsrc/server/teamplay.qc b/qcsrc/server/teamplay.qc index 8f06ec67d..61e2690c8 100644 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@ -204,19 +204,20 @@ bool SetPlayerTeamSimple(entity player, int teamnum) return true; } -void SetPlayerTeam(entity player, int destinationteam, int sourceteam, bool noprint) +bool SetPlayerTeam(entity player, int destinationteam, int sourceteam, bool noprint) { int teamnum = Team_NumberToTeam(destinationteam); if (!SetPlayerTeamSimple(player, teamnum)) { - return; + return false; } LogTeamchange(player.playerid, player.team, 3); // log manual team join if (noprint) { - return; + return true; } bprint(playername(player, false), "^7 has changed from ", Team_NumberToColoredFullName(sourceteam), "^7 to ", Team_NumberToColoredFullName(destinationteam), "\n"); + return true; } // set c1...c4 to show what teams are allowed @@ -862,7 +863,10 @@ void SV_ChangeTeam(entity this, float _color) // reduce frags during a team change TeamchangeFrags(this); } - SetPlayerTeam(this, destinationteam, sourceteam, !IS_CLIENT(this)); + if (!SetPlayerTeam(this, destinationteam, sourceteam, !IS_CLIENT(this))) + { + return; + } AutoBalanceBots(sourceteam, destinationteam); if (!IS_PLAYER(this) || (sourceteam == destinationteam)) { @@ -1086,8 +1090,10 @@ void ShufflePlayerOutOfTeam (float source_team) // move the player to the new team TeamchangeFrags(selected); - SetPlayerTeam(selected, smallestteam, source_team, false); - + if (!SetPlayerTeam(selected, smallestteam, source_team, false)) + { + return; + } if (IS_DEAD(selected) || MUTATOR_CALLHOOK(Player_ChangeTeamKill, selected) == true) { return; diff --git a/qcsrc/server/teamplay.qh b/qcsrc/server/teamplay.qh index df5605ef9..5d1130d5e 100644 --- a/qcsrc/server/teamplay.qh +++ b/qcsrc/server/teamplay.qh @@ -50,8 +50,8 @@ bool SetPlayerTeamSimple(entity player, int teamnum); /// \param[in] destinationteam Team to set. /// \param[in] sourceteam Previous team of the player. /// \param[in] noprint Whether to print this event to players' console. -/// \return No return. -void SetPlayerTeam(entity player, int destinationteam, int sourceteam, bool noprint); +/// \return True if team switch was successful, false otherwise. +bool SetPlayerTeam(entity player, int destinationteam, int sourceteam, bool noprint); // set c1...c4 to show what teams are allowed void CheckAllowedTeams (entity for_whom); -- 2.39.2