From a68b28fc1466ecfc5ecc740c3128f47659f960be Mon Sep 17 00:00:00 2001 From: Kyle Bradley Date: Wed, 17 Mar 2021 21:23:41 +0200 Subject: [PATCH] Further tests and edge cases dealt with --- src/game/server/teams.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/game/server/teams.cpp b/src/game/server/teams.cpp index 39fc284fd..52af850e9 100644 --- a/src/game/server/teams.cpp +++ b/src/game/server/teams.cpp @@ -309,9 +309,12 @@ void CGameTeams::SetForceCharacterTeam(int ClientID, int Team) for(int LoopClientID = 0; LoopClientID < MAX_CLIENTS; ++LoopClientID) if(GetPlayer(LoopClientID)) SendTeamsState(LoopClientID); - + if(GetPlayer(ClientID)) + { GetPlayer(ClientID)->m_VotedForPractice = false; + GetPlayer(ClientID)->m_ClientSwapID = -1; + } } if(Team != TEAM_SUPER && (m_TeamState[Team] == TEAMSTATE_EMPTY || m_TeamLocked[Team])) @@ -721,7 +724,8 @@ void CGameTeams::SwapTeamCharacters(CPlayer *Player, CPlayer *TargetPlayer, int return; } - if(Since > g_Config.m_SvSwapTimeout) + int TimeoutAfterDelay = g_Config.m_SvSaveGamesDelay + g_Config.m_SvSwapTimeout; + if(Since > TimeoutAfterDelay) { str_format(aBuf, sizeof(aBuf), "Your swap request timed out %d seconds ago.",