ddnet/src/game/server/teams.h

50 lines
942 B
C
Raw Normal View History

2010-08-28 13:47:52 +00:00
#ifndef GAME_SERVER_TEAMS_H
#define GAME_SERVER_TEAMS_H
#include <game/teamscore.h>
2010-08-28 13:47:52 +00:00
#include <game/server/gamecontext.h>
class CGameTeams {
2010-08-28 13:47:52 +00:00
int m_TeamState[MAX_CLIENTS];
bool m_TeeFinished[MAX_CLIENTS];
class CGameContext * m_pGameContext;
2010-08-28 13:47:52 +00:00
public:
enum {
EMPTY,
OPEN,
CLOSED,
STARTED,
FINISHED
};
CTeamsCore m_Core;
CGameTeams(CGameContext *pGameContext);
2010-08-28 13:47:52 +00:00
//helper methods
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);
int TeamMask(int Team);
2010-09-22 10:43:59 +00:00
//need to be very carefull using this method
void SetForceCharacterTeam(int id, int Team);
void Reset();
2010-08-28 13:47:52 +00:00
};
#endif