diff --git a/src/engine/server.h b/src/engine/server.h index ac290f417..7708807ac 100644 --- a/src/engine/server.h +++ b/src/engine/server.h @@ -55,6 +55,7 @@ public: virtual const char *ClientName(int ClientID) const = 0; virtual const char *ClientClan(int ClientID) const = 0; virtual int ClientCountry(int ClientID) const = 0; + virtual bool ClientEmpty(int ClientID) const = 0; virtual bool ClientIngame(int ClientID) const = 0; virtual bool ClientAuthed(int ClientID) const = 0; virtual bool GetClientInfo(int ClientID, CClientInfo *pInfo) const = 0; diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp index 129f7ccf0..ef2bf1e8c 100644 --- a/src/engine/server/server.cpp +++ b/src/engine/server/server.cpp @@ -646,6 +646,11 @@ int CServer::ClientCountry(int ClientID) const return -1; } +bool CServer::ClientEmpty(int ClientID) const +{ + return ClientID >= 0 && ClientID < MAX_CLIENTS && m_aClients[ClientID].m_State == CServer::CClient::STATE_EMPTY; +} + bool CServer::ClientIngame(int ClientID) const { return ClientID >= 0 && ClientID < MAX_CLIENTS && m_aClients[ClientID].m_State == CServer::CClient::STATE_INGAME; diff --git a/src/engine/server/server.h b/src/engine/server/server.h index 68977c4e1..29c87c49d 100644 --- a/src/engine/server/server.h +++ b/src/engine/server/server.h @@ -298,6 +298,7 @@ public: const char *ClientName(int ClientID) const override; const char *ClientClan(int ClientID) const override; int ClientCountry(int ClientID) const override; + bool ClientEmpty(int ClientID) const override; bool ClientIngame(int ClientID) const override; bool ClientAuthed(int ClientID) const override; int Port() const override; diff --git a/src/game/server/gamecontext.cpp b/src/game/server/gamecontext.cpp index b5c0a98af..4794b399a 100644 --- a/src/game/server/gamecontext.cpp +++ b/src/game/server/gamecontext.cpp @@ -1521,7 +1521,7 @@ void CGameContext::OnClientEnter(int ClientID) int Empty = -1; for(int i = 0; i < MAX_CLIENTS; i++) { - if(!Server()->ClientIngame(i)) + if(Server()->ClientEmpty(i)) { Empty = i; break;