core/CPlayerManager.h
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--
Added CPlayer class
Added new player natives
Fixed floatround returning a float instead of an int
Added new float.inc file
Added OnClientSettingsChanged forward
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_