27#include "Tow_Entities.h"
29extern cvar_t *g_tempaxisscore;
30extern cvar_t *g_tempaxiswinsinrow;
31extern cvar_t *g_tempalliesscore;
32extern cvar_t *g_tempallieswinsinrow;
37class DM_Team :
public Listener
54 qboolean m_bHasSpawnedPlayers;
57 CLASS_PROTOTYPE(DM_Team);
64 void AddPlayer(
Player *player);
65 void RemovePlayer(
Player *player);
67 void setName(
str name);
69 void setNumber(
int num);
71 void setIndex(
int index);
76 void AddDeaths(
Player *player,
int numDeaths);
77 void AddKills(
Player *player,
int numKills);
78 void UpdateTeamStatus(
void);
80 void TeamInvulnerable(
void);
81 void BeginFight(
void);
85 bool IsDead(
void)
const;
86 bool IsEmpty(
void)
const;
87 bool IsReady(
void)
const;
89 int NumNotReady(
void)
const;
90 int NumLivePlayers(
void)
const;
91 int TotalPlayersKills(
void)
const;
101 Player *player,
float (*MetricFunction)(
const float *, DM_Team *dmTeam,
const Player *player)
107inline void DM_Team::setName(
str name)
112inline str DM_Team::getName(
void)
117inline void DM_Team::setNumber(
int num)
122inline int DM_Team::getNumber(
void)
127inline void DM_Team::setIndex(
int index)
132inline int DM_Team::getIndex(
void)
137inline bool DM_Team::IsReady(
void)
const
139 return g_forceready->integer || NumNotReady() == 0;
142class SimpleAmmoType :
public Class
154class DM_Manager :
public Listener
166 float m_fRoundEndTime;
168 bool m_bAllowRespawns;
169 bool m_bRoundBasedGame;
170 bool m_bIgnoringClockForBomb;
172 int m_iDefaultRoundLimit;
174 const_str m_csTeamClockSide;
175 const_str m_csTeamBombPlantSide;
177 int m_iNumTargetsToDestroy;
178 int m_iNumTargetsDestroyed;
179 int m_iNumBombsPlanted;
182 bool m_bAllowAlliedRespawn;
183 bool m_bAllowAxisRespawn;
187 char scoreString[MAX_STRING_CHARS];
192 void BuildTeamInfo(
DM_Team *dmTeam);
193 void BuildTeamInfo_ver6(
DM_Team *dmTeam);
194 void BuildTeamInfo_ver15(
DM_Team *dmTeam);
195 void BuildPlayerTeamInfo(
DM_Team *dmTeam,
int *iPlayerList,
DM_Team *ignoreTeam = NULL);
196 void InsertEntry(
const char *entry);
197 void InsertEntryNoCount(
const char *entry);
198 void InsertEmpty(
void);
199 bool IsAlivePlayer(
Player* player)
const;
202 CLASS_PROTOTYPE(DM_Manager);
208 void AddPlayer(
Player *player);
209 bool JoinTeam(
Player *player, teamtype_t teamType);
210 void LeaveTeam(
Player *player);
211 void RebuildTeamConfigstrings(
void);
212 void RemovePlayer(
Player *player);
213 void PlayerKilled(
Player *player);
215 void Countdown(
Event *ev);
217 void Score(
Player *player);
219 void PrintAllClients(
str s);
220 bool CheckEndMatch(
void);
221 bool TeamHitScoreLimit(
void);
222 bool PlayerHitScoreLimit(
void);
223 void EventDoRoundTransition(
Event *ev);
224 void EventFinishRoundTransition(
Event *ev);
225 void TeamWin(
int teamnum);
226 void StartRound(
void);
228 bool RoundActive(
void)
const;
229 bool GameHasRounds(
void)
const;
230 bool GameAllowsRespawns(
void)
const;
231 void SetGameAllowsRespawns(
bool bAllow);
232 bool AllowRespawn(
void)
const;
233 int GetRoundLimit(
void)
const;
234 void SetDefaultRoundLimit(
int round_limit);
235 const_str GetClockSide(
void)
const;
236 void SetClockSide(const_str s);
237 const_str GetBombPlantTeam(
void)
const;
238 void SetBombPlantTeam(const_str s);
239 int GetTargetsToDestroy(
void)
const;
240 void SetTargetsToDestroy(
int);
241 int GetTargetsDestroyed(
void)
const;
242 void SetTargetsDestroyed(
int);
243 int GetBombsPlanted(
void)
const;
244 void SetBombsPlanted(
int);
245 int GetTeamWin(
void);
246 bool WaitingForPlayers(
void)
const;
247 bool IsGameActive(
void)
const;
248 int PlayerCount(
void)
const;
249 Player *GetPlayer(
int index)
const;
250 teamtype_t GetAutoJoinTeam(
void);
255 float GetMatchStartTime(
void);
256 void StopTeamRespawn(eController controller);
257 bool AllowTeamRespawn(
int teamnum)
const;
258 int GetTeamSpawnTimeLeft()
const;
261 DM_Team *GetTeam(teamtype_t team);
264 static int compareScores(
const void *elem1,
const void *elem2);
267inline int DM_Manager::GetTeamWin(
void)
272inline DM_Team *DM_Manager::GetTeamAllies(
void)
274 return &m_team_allies;
277inline DM_Team *DM_Manager::GetTeamAxis(
void)
282inline bool DM_Manager::RoundActive(
void)
const
284 return m_bRoundActive;
287inline bool DM_Manager::GameHasRounds(
void)
const
289 return m_bRoundBasedGame;
292inline bool DM_Manager::GameAllowsRespawns(
void)
const
294 return m_bAllowRespawns;
297inline void DM_Manager::SetGameAllowsRespawns(
bool bAllow)
299 m_bAllowRespawns = bAllow;
304class CTeamSpawnClock {
313 int GetSecondsLeft();
Definition container.h:85
Definition dm_manager.h:155
Definition dm_manager.h:38
Definition listener.h:246
Definition playerstart.h:34