28 #if _RAKNET_SUPPORT_TeamManager==1
30 #ifndef __TEAM_MANAGER_H
31 #define __TEAM_MANAGER_H
44 class RakPeerInterface;
64 #define ALLOW_JOIN_ANY_AVAILABLE_TEAM (1<<0)
66 #define ALLOW_JOIN_SPECIFIC_TEAM (1<<1)
68 #define ALLOW_JOIN_REBALANCING (1<<2)
159 bool RequestTeamSwitch(
TM_Team *teamToJoin,
TM_Team *teamToLeave);
172 bool HasRequestedTeam(
TM_Team *team)
const;
177 unsigned int GetRequestedTeamIndex(
TM_Team *team)
const;
180 unsigned int GetRequestedTeamCount(
void)
const;
187 bool CancelTeamRequest(
TM_Team *specificTeamToCancel);
202 bool LeaveAllTeams(
NoTeamId inNoTeamSubcategory);
205 TM_Team* GetCurrentTeam(
void)
const;
208 unsigned int GetCurrentTeamCount(
void)
const;
211 TM_Team* GetCurrentTeamByIndex(
unsigned int index);
223 bool IsOnTeam(
TM_Team *team)
const;
237 void SerializeConstruction(
BitStream *constructionBitstream);
247 void SetOwner(
void *o);
250 void *GetOwner(
void)
const;
256 unsigned int GetWorldIndex(
void)
const;
259 static unsigned long ToUint32(
const NetworkID &g );
290 void UpdateListsToNoTeam(
NoTeamId nti);
291 bool JoinAnyTeamCheck(
void)
const;
292 bool JoinSpecificTeamCheck(
TM_Team *specificTeamToJoin,
bool ignoreRequested)
const;
293 bool SwitchSpecificTeamCheck(
TM_Team *teamToJoin,
TM_Team *teamToLeave,
bool ignoreRequested)
const;
294 bool LeaveTeamCheck(
TM_Team *team)
const;
295 void UpdateTeamsRequestedToAny(
void);
296 void UpdateTeamsRequestedToNone(
void);
297 void AddToRequestedTeams(
TM_Team *teamToJoin);
298 void AddToRequestedTeams(
TM_Team *teamToJoin,
TM_Team *teamToLeave);
299 bool RemoveFromRequestedTeams(
TM_Team *team);
300 void AddToTeamList(
TM_Team *team);
301 void RemoveFromSpecificTeamInternal(
TM_Team *team);
302 void RemoveFromAllTeamsInternal(
void);
303 void StoreLastTeams(
void);
359 bool GetBalancingApplies(
void)
const;
365 unsigned int GetTeamMembersCount(
void)
const;
369 TM_TeamMember *GetTeamMemberByIndex(
unsigned int index)
const;
380 void SerializeConstruction(
BitStream *constructionBitstream);
388 void SetOwner(
void *o);
391 void *GetOwner(
void)
const;
394 unsigned int GetWorldIndex(
void)
const;
397 static unsigned long ToUint32(
const NetworkID &g );
415 unsigned int GetMemberWithRequestedSingleTeamSwitch(
TM_Team *team);
643 void RemoveWorld(
WorldId worldId);
646 unsigned int GetWorldCount(
void)
const;
650 TM_World* GetWorldAtIndex(
unsigned int index)
const;
660 void SetAutoManageConnections(
bool autoAdd);
672 void DecomposeTeamFull(
Packet *packet,
679 void DecomposeTeamLocked(
Packet *packet,
704 virtual void Update(
void);
721 void OnUpdateTeamsRequestedToAny(
Packet *packet,
TM_World *world);
724 void OnUpdateTeamsRequestedToNoneAndAddTeam(
Packet *packet,
TM_World *world);
725 void OnRemoveFromTeamsRequestedAndAddTeam(
Packet *packet,
TM_World *world);
759 #endif // __TEAM_MANAGER_H
761 #endif // _RAKNET_SUPPORT_*