2010-08-28 13:47:52 +00:00
|
|
|
#ifndef GAME_SERVER_TEAMS_H
|
|
|
|
#define GAME_SERVER_TEAMS_H
|
|
|
|
|
|
|
|
#include <game/server/entities/character.h>
|
|
|
|
#include <game/server/gamecontext.h>
|
|
|
|
|
|
|
|
class CTeams {
|
|
|
|
int m_Team[MAX_CLIENTS];
|
|
|
|
int m_TeamState[MAX_CLIENTS];
|
|
|
|
bool m_TeeFinished[MAX_CLIENTS];
|
2010-08-28 20:53:42 +00:00
|
|
|
|
|
|
|
class CGameContext * m_pGameContext;
|
2010-08-28 13:47:52 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
enum {
|
|
|
|
EMPTY,
|
|
|
|
OPEN,
|
|
|
|
CLOSED,
|
|
|
|
STARTED,
|
|
|
|
FINISHED
|
|
|
|
};
|
|
|
|
|
2010-08-28 20:53:42 +00:00
|
|
|
CTeams(CGameContext *pGameContext);
|
2010-08-28 13:47:52 +00:00
|
|
|
|
|
|
|
//helper methods
|
2010-08-28 20:53:42 +00:00
|
|
|
CCharacter* Character(int id) { return GameServer()->GetPlayerChar(id); }
|
|
|
|
|
|
|
|
class CGameContext *GameServer() { return m_pGameContext; }
|
|
|
|
class IServer *Server() { return m_pGameContext->Server(); }
|
2010-08-28 13:47:52 +00:00
|
|
|
|
|
|
|
void OnCharacterStart(int id);
|
|
|
|
void OnCharacterFinish(int id);
|
|
|
|
|
|
|
|
bool SetCharacterTeam(int id, int Team);
|
|
|
|
|
|
|
|
void ChangeTeamState(int Team, int State);
|
|
|
|
|
|
|
|
bool TeamFinished(int Team);
|
|
|
|
|
2010-08-28 20:53:42 +00:00
|
|
|
bool SameTeam(int Cid1, int Cid2);
|
|
|
|
|
|
|
|
int GetTeam(int Cid) {
|
|
|
|
return m_Team[Cid];
|
|
|
|
}
|
2010-08-28 13:47:52 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|