about summary refs log tree commit diff
path: root/src/game/server/player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/server/player.cpp')
-rw-r--r--src/game/server/player.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp
index d2d621b7..91a75c9d 100644
--- a/src/game/server/player.cpp
+++ b/src/game/server/player.cpp
@@ -421,6 +421,7 @@ void CPlayer::AddZCatchVictim(int ClientID, int reason)
 		// set victim's status
 		victim->m_CaughtBy = m_ClientID;
 		victim->m_SpecExplicit = false;
+		victim->m_zCatchJoinSpecWhenReleased = false;
 		victim->SetTeamDirect(TEAM_SPECTATORS);
 		victim->m_SpectatorID = m_ClientID;
 	}
@@ -443,6 +444,9 @@ void CPlayer::ReleaseZCatchVictim(int ClientID, int limit)
 				victim->m_CaughtBy = ZCATCH_NOT_CAUGHT;
 				victim->SetTeamDirect(GameServer()->m_pController->ClampTeam(1));
 				victim->m_SpectatorID = SPEC_FREEVIEW;
+				// SetTeam after SetTeamDirect, otherwise it would skip the message for joining the spectators
+				if(victim->m_zCatchJoinSpecWhenReleased)
+					victim->SetTeam(GameServer()->m_pController->ClampTeam(TEAM_SPECTATORS));
 			}
 			// delete from list
 			tmp = (*v)->prev;