mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-21 18:14:19 +00:00
60 lines
1.1 KiB
C++
60 lines
1.1 KiB
C++
#ifndef GAME_SERVER_TEAMS_H
|
|
#define GAME_SERVER_TEAMS_H
|
|
|
|
#include <game/teamscore.h>
|
|
#include <game/server/gamecontext.h>
|
|
|
|
class CGameTeams
|
|
{
|
|
int m_TeamState[MAX_CLIENTS];
|
|
int m_MembersCount[MAX_CLIENTS];
|
|
bool m_TeeFinished[MAX_CLIENTS];
|
|
|
|
class CGameContext * m_pGameContext;
|
|
|
|
|
|
public:
|
|
enum
|
|
{
|
|
TEAMSTATE_EMPTY,
|
|
TEAMSTATE_OPEN,
|
|
TEAMSTATE_CLOSED,
|
|
TEAMSTATE_STARTED,
|
|
TEAMSTATE_FINISHED
|
|
};
|
|
|
|
CTeamsCore m_Core;
|
|
|
|
CGameTeams(CGameContext *pGameContext);
|
|
|
|
//helper methods
|
|
CCharacter* Character(int ClientID) { return GameServer()->GetPlayerChar(ClientID); }
|
|
|
|
class CGameContext *GameServer() { return m_pGameContext; }
|
|
class IServer *Server() { return m_pGameContext->Server(); }
|
|
|
|
void OnCharacterStart(int ClientID);
|
|
void OnCharacterFinish(int ClientID);
|
|
|
|
bool SetCharacterTeam(int ClientID, int Team);
|
|
|
|
void ChangeTeamState(int Team, int State);
|
|
|
|
bool TeamFinished(int Team);
|
|
|
|
int TeamMask(int Team, int ExceptID = -1);
|
|
|
|
int Count(int Team) const;
|
|
|
|
//need to be very carefull using this method
|
|
void SetForceCharacterTeam(int id, int Team);
|
|
|
|
void Reset();
|
|
|
|
void SendTeamsState(int Cid);
|
|
|
|
int m_LastChat[MAX_CLIENTS];
|
|
};
|
|
|
|
#endif
|