Backed out changeset: b5969264060e

This commit is contained in:
Nicholas Hastings 2011-07-08 07:55:20 -04:00
parent 258a9c636a
commit 264ffa80ce
2 changed files with 20 additions and 17 deletions

View File

@ -111,6 +111,7 @@ PlayerManager::PlayerManager()
{
m_AuthQueue = NULL;
m_FirstPass = false;
m_maxClients = 0;
m_UserIdLookUp = new int[USHRT_MAX+1];
memset(m_UserIdLookUp, 0, sizeof(int) * (USHRT_MAX+1));
@ -231,12 +232,12 @@ ConfigResult PlayerManager::OnSourceModConfigChanged(const char *key,
void PlayerManager::OnServerActivate(edict_t *pEdictList, int edictCount, int clientMax)
{
int maxClients = gpGlobals->maxClients;
if (!m_FirstPass)
{
/* Initialize all players */
// clientMax will not necessarily be correct here (such as on late SourceTV enable)
m_maxClients = gpGlobals->maxClients;
m_PlayerCount = 0;
m_Players = new CPlayer[ABSOLUTE_PLAYER_LIMIT + 1];
@ -247,9 +248,9 @@ void PlayerManager::OnServerActivate(edict_t *pEdictList, int edictCount, int cl
g_NumPlayersToAuth = &m_AuthQueue[0];
g_PluginSys.SyncMaxClients(maxClients);
g_PluginSys.SyncMaxClients(clientMax);
}
g_Extensions.CallOnCoreMapStart(pEdictList, edictCount, maxClients);
g_Extensions.CallOnCoreMapStart(pEdictList, edictCount, clientMax);
m_onActivate->Execute(NULL);
m_onActivate2->Execute(NULL);
@ -258,7 +259,7 @@ void PlayerManager::OnServerActivate(edict_t *pEdictList, int edictCount, int cl
{
if ((*iter)->GetClientListenerVersion() >= 5)
{
(*iter)->OnServerActivated(maxClients);
(*iter)->OnServerActivated(clientMax);
}
}
@ -581,8 +582,7 @@ void PlayerManager::OnClientPutInServer(edict_t *pEntity, const char *playername
void PlayerManager::OnSourceModLevelEnd()
{
/* Disconnect all bots still in game */
int maxClients = gpGlobals->maxClients;
for (int i=1; i<=maxClients; i++)
for (int i=1; i<=m_maxClients; i++)
{
if (m_Players[i].IsConnected())
{
@ -851,12 +851,12 @@ void PlayerManager::OnClientSettingsChanged(edict_t *pEntity)
int PlayerManager::GetMaxClients()
{
return gpGlobals->maxClients;
return m_maxClients;
}
CPlayer *PlayerManager::GetPlayerByIndex(int client) const
{
if (client > gpGlobals->maxClients || client < 1)
if (client > m_maxClients || client < 1)
{
return NULL;
}
@ -896,8 +896,7 @@ int PlayerManager::GetClientOfUserId(int userid)
/* If we can't verify the userid, we have to do a manual loop */
CPlayer *player;
int maxClients = gpGlobals->maxClients;
for (int i = 1; i <= maxClients; i++)
for (int i = 1; i <= m_maxClients; i++)
{
player = GetPlayerByIndex(i);
if (!player || !player->IsConnected())
@ -937,8 +936,7 @@ IGamePlayer *PlayerManager::GetGamePlayer(int client)
void PlayerManager::ClearAdminId(AdminId id)
{
int maxClients = gpGlobals->maxClients;
for (int i=1; i<=maxClients; i++)
for (int i=1; i<=m_maxClients; i++)
{
if (m_Players[i].m_Admin == id)
{
@ -949,8 +947,7 @@ void PlayerManager::ClearAdminId(AdminId id)
void PlayerManager::ClearAllAdmins()
{
int maxClients = gpGlobals->maxClients;
for (int i=1; i<=maxClients; i++)
for (int i=1; i<=m_maxClients; i++)
{
m_Players[i].DumpAdmin(true);
}
@ -963,8 +960,7 @@ const char *PlayerManager::GetPassInfoVar()
void PlayerManager::RecheckAnyAdmins()
{
int maxClients = gpGlobals->maxClients;
for (int i=1; i<=maxClients; i++)
for (int i=1; i<=m_maxClients; i++)
{
if (m_Players[i].IsInGame() && m_Players[i].IsAuthorized())
{
@ -1358,6 +1354,11 @@ void PlayerManager::ProcessCommandTarget(cmd_target_info_t *info)
}
}
void PlayerManager::OnSourceModMaxPlayersChanged( int newvalue )
{
m_maxClients = newvalue;
}
void PlayerManager::MaxPlayersChanged( int newvalue /*= -1*/ )
{
if (!m_FirstPass)

View File

@ -135,6 +135,7 @@ public: //SMGlobalClass
void OnSourceModShutdown();
void OnSourceModLevelEnd();
ConfigResult OnSourceModConfigChanged(const char *key, const char *value, ConfigSource source, char *error, size_t maxlength);
void OnSourceModMaxPlayersChanged(int newvalue);
public:
CPlayer *GetPlayerByIndex(int client) const;
void RunAuthChecks();
@ -171,7 +172,7 @@ public: //IPlayerManager
public:
inline int MaxClients()
{
return gpGlobals->maxClients;
return m_maxClients;
}
inline int NumPlayers()
{
@ -205,6 +206,7 @@ private:
IForward *m_onActivate2;
CPlayer *m_Players;
int *m_UserIdLookUp;
int m_maxClients;
int m_PlayerCount;
bool m_FirstPass;
unsigned int *m_AuthQueue;