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_*