| author | Borja Ferrer <faluco@alliedmods.net> |
| Mon Jan 01 03:33:14 2007 +0000 (2007-01-01) | |
| changeset 242 | 9dcd59d9014a |
| parent 226 | 4663ea3fc2d3 |
| child 268 | d6fed4f05e07 |
| permissions | -rw-r--r-- |
| faluco@226 | 1 |
#ifndef _INCLUDE_SOURCEMOD_CPLAYERMANAGER_H_ |
| faluco@226 | 2 |
#define _INCLUDE_SOURCEMOD_CPLAYERMANAGER_H_ |
| faluco@226 | 3 |
|
| faluco@242 | 4 |
#include "sm_globals.h" |
| faluco@226 | 5 |
#include <eiface.h> |
| faluco@226 | 6 |
#include "sourcemm_api.h" |
| faluco@226 | 7 |
#include <IForwardSys.h> |
| faluco@242 | 8 |
#include "CPlayer.h" |
| faluco@242 | 9 |
|
| faluco@242 | 10 |
class CPlayer; |
| faluco@226 | 11 |
|
| faluco@226 | 12 |
class CPlayerManager : public SMGlobalClass |
| faluco@226 | 13 |
{ |
| faluco@226 | 14 |
public: //SMGlobalClass |
| faluco@226 | 15 |
virtual void OnSourceModAllInitialized(); |
| faluco@226 | 16 |
virtual void OnSourceModShutdown(); |
| faluco@226 | 17 |
public: |
| faluco@242 | 18 |
int GetMaxClients() const; |
| faluco@242 | 19 |
CPlayer *GetPlayerByIndex(int client) const; |
| faluco@242 | 20 |
int GetPlayerCount() const; |
| faluco@242 | 21 |
public: |
| faluco@226 | 22 |
bool OnClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen); |
| faluco@226 | 23 |
void OnClientPutInServer(edict_t *pEntity, char const *playername); |
| faluco@226 | 24 |
void OnClientDisconnect(edict_t *pEntity); |
| faluco@226 | 25 |
void OnClientDisconnect_Post(edict_t *pEntity); |
| faluco@226 | 26 |
void OnClientAuthorized(); //:TODO: any args needed? |
| faluco@226 | 27 |
void OnClientCommand(edict_t *pEntity); |
| faluco@242 | 28 |
void OnClientSettingsChanged(edict_t *pEntity); |
| faluco@226 | 29 |
private: |
| faluco@226 | 30 |
IForward *m_clconnect; |
| faluco@226 | 31 |
IForward *m_cldisconnect; |
| faluco@226 | 32 |
IForward *m_cldisconnect_post; |
| faluco@226 | 33 |
IForward *m_clputinserver; |
| faluco@226 | 34 |
IForward *m_clcommand; |
| faluco@242 | 35 |
IForward *m_clinfochanged; |
| faluco@242 | 36 |
CPlayer *m_Players; |
| faluco@242 | 37 |
int m_maxClients; |
| faluco@242 | 38 |
int m_PlayerCount; |
| faluco@226 | 39 |
}; |
| faluco@226 | 40 |
|
| faluco@242 | 41 |
extern CPlayerManager g_PlayerManager; |
| faluco@242 | 42 |
|
| faluco@242 | 43 |
inline int CPlayerManager::GetMaxClients() const |
| faluco@242 | 44 |
{ |
| faluco@242 | 45 |
return m_maxClients; |
| faluco@242 | 46 |
} |
| faluco@242 | 47 |
|
| faluco@242 | 48 |
inline CPlayer *CPlayerManager::GetPlayerByIndex(int client) const |
| faluco@242 | 49 |
{ |
| faluco@242 | 50 |
if (client > m_maxClients || client < 0) |
| faluco@242 | 51 |
{ |
| faluco@242 | 52 |
return NULL; |
| faluco@242 | 53 |
} |
| faluco@242 | 54 |
return &m_Players[client]; |
| faluco@242 | 55 |
} |
| faluco@242 | 56 |
|
| faluco@242 | 57 |
inline int CPlayerManager::GetPlayerCount() const |
| faluco@242 | 58 |
{ |
| faluco@242 | 59 |
return m_PlayerCount; |
| faluco@242 | 60 |
} |
| faluco@242 | 61 |
|
| faluco@242 | 62 |
#endif //_INCLUDE_SOURCEMOD_CPLAYERMANAGER_H_ |