classRakNet_1_1TeamManager.html 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <title>RakNet: RakNet::TeamManager Class Reference</title>
  7. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  8. <script type="text/javascript" src="jquery.js"></script>
  9. <script type="text/javascript" src="dynsections.js"></script>
  10. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  11. </head>
  12. <body>
  13. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  14. <div id="titlearea">
  15. <table cellspacing="0" cellpadding="0">
  16. <tbody>
  17. <tr style="height: 56px;">
  18. <td style="padding-left: 0.5em;">
  19. <div id="projectname">RakNet
  20. &#160;<span id="projectnumber">4.0</span>
  21. </div>
  22. </td>
  23. </tr>
  24. </tbody>
  25. </table>
  26. </div>
  27. <!-- end header part -->
  28. <!-- Generated by Doxygen 1.8.2 -->
  29. <div id="navrow1" class="tabs">
  30. <ul class="tablist">
  31. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  32. <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
  33. <li><a href="modules.html"><span>Modules</span></a></li>
  34. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  35. <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
  36. <li><a href="files.html"><span>Files</span></a></li>
  37. </ul>
  38. </div>
  39. <div id="navrow2" class="tabs2">
  40. <ul class="tablist">
  41. <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
  42. <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
  43. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  44. <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
  45. </ul>
  46. </div>
  47. <div id="nav-path" class="navpath">
  48. <ul>
  49. <li class="navelem"><a class="el" href="namespaceRakNet.html">RakNet</a></li><li class="navelem"><a class="el" href="classRakNet_1_1TeamManager.html">TeamManager</a></li> </ul>
  50. </div>
  51. </div><!-- top -->
  52. <div class="header">
  53. <div class="summary">
  54. <a href="#pub-methods">Public Member Functions</a> &#124;
  55. <a href="#pro-methods">Protected Member Functions</a> &#124;
  56. <a href="classRakNet_1_1TeamManager-members.html">List of all members</a> </div>
  57. <div class="headertitle">
  58. <div class="title">RakNet::TeamManager Class Reference<div class="ingroups"><a class="el" href="group__TEAM__MANAGER__GROUP.html">TeamManager</a></div></div> </div>
  59. </div><!--header-->
  60. <div class="contents">
  61. <p>Automates networking and list management for teams.
  62. <a href="classRakNet_1_1TeamManager.html#details">More...</a></p>
  63. <p><code>#include &lt;TeamManager.h&gt;</code></p>
  64. <div class="dynheader">
  65. Inheritance diagram for RakNet::TeamManager:</div>
  66. <div class="dyncontent">
  67. <div class="center">
  68. <img src="classRakNet_1_1TeamManager.png" usemap="#RakNet::TeamManager_map" alt=""/>
  69. <map id="RakNet::TeamManager_map" name="RakNet::TeamManager_map">
  70. <area href="classRakNet_1_1PluginInterface2.html" alt="RakNet::PluginInterface2" shape="rect" coords="0,0,150,24"/>
  71. </map>
  72. </div></div>
  73. <table class="memberdecls">
  74. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  75. Public Member Functions</h2></td></tr>
  76. <tr class="memitem:a329c459c522b5e3204424499fe4f8bd7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a329c459c522b5e3204424499fe4f8bd7">AddWorld</a> (<a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga44b59af8e882248f61aa41d8ace38bf7">WorldId</a> worldId)</td></tr>
  77. <tr class="memdesc:a329c459c522b5e3204424499fe4f8bd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a world to hold a list of teams and players for that team. Use the returned <a class="el" href="classRakNet_1_1TM__World.html" title="Stores a list of teams which may be enforcing a balanced number of members.">TM_World</a> object for actual team functionality. <a href="#a329c459c522b5e3204424499fe4f8bd7"></a><br/></td></tr>
  78. <tr class="separator:a329c459c522b5e3204424499fe4f8bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  79. <tr class="memitem:a5cfcd5a350a1b1d7ea1460d45ec87678"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a5cfcd5a350a1b1d7ea1460d45ec87678">RemoveWorld</a> (<a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga44b59af8e882248f61aa41d8ace38bf7">WorldId</a> worldId)</td></tr>
  80. <tr class="memdesc:a5cfcd5a350a1b1d7ea1460d45ec87678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deallocate a world created with <a class="el" href="classRakNet_1_1TeamManager.html#a329c459c522b5e3204424499fe4f8bd7" title="Allocate a world to hold a list of teams and players for that team. Use the returned TM_World object ...">AddWorld()</a> <a href="#a5cfcd5a350a1b1d7ea1460d45ec87678"></a><br/></td></tr>
  81. <tr class="separator:a5cfcd5a350a1b1d7ea1460d45ec87678"><td class="memSeparator" colspan="2">&#160;</td></tr>
  82. <tr class="memitem:ac2b9fc40570ad1342f4a330141a18d12"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#ac2b9fc40570ad1342f4a330141a18d12">GetWorldCount</a> (void) const </td></tr>
  83. <tr class="separator:ac2b9fc40570ad1342f4a330141a18d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
  84. <tr class="memitem:a2dae07e3f4360801e1eae592e81a9f9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a2dae07e3f4360801e1eae592e81a9f9d">GetWorldAtIndex</a> (unsigned int index) const </td></tr>
  85. <tr class="separator:a2dae07e3f4360801e1eae592e81a9f9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  86. <tr class="memitem:a6bf583d8eac750b9910d983852e1a0b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a6bf583d8eac750b9910d983852e1a0b1">GetWorldWithId</a> (<a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga44b59af8e882248f61aa41d8ace38bf7">WorldId</a> worldId) const </td></tr>
  87. <tr class="separator:a6bf583d8eac750b9910d983852e1a0b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  88. <tr class="memitem:a4646991e21f478677fa0eda9fa0f91ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a4646991e21f478677fa0eda9fa0f91ad">SetAutoManageConnections</a> (bool autoAdd)</td></tr>
  89. <tr class="memdesc:a4646991e21f478677fa0eda9fa0f91ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">When auto managing connections, call <a class="el" href="classRakNet_1_1TM__World.html#a75531795fd1adc74d7edae660c4ecc17" title="Add a new system to send team and team member updates to.">TM_World::AddParticipant()</a> on all worlds for all new connections automatically Defaults to true. <a href="#a4646991e21f478677fa0eda9fa0f91ad"></a><br/></td></tr>
  90. <tr class="separator:a4646991e21f478677fa0eda9fa0f91ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
  91. <tr class="memitem:a863260b06e910fc8b352e8c97b90d173"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a863260b06e910fc8b352e8c97b90d173">SetTopology</a> (TMTopology _topology)</td></tr>
  92. <tr class="memdesc:a863260b06e910fc8b352e8c97b90d173"><td class="mdescLeft">&#160;</td><td class="mdescRight">If <em>_topology</em> is set to TM_CLIENT_SERVER, the host will relay messages to participants. <a href="#a863260b06e910fc8b352e8c97b90d173"></a><br/></td></tr>
  93. <tr class="separator:a863260b06e910fc8b352e8c97b90d173"><td class="memSeparator" colspan="2">&#160;</td></tr>
  94. <tr class="memitem:a47aa6ab98611642ae31e60f91ea3a4fc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a47aa6ab98611642ae31e60f91ea3a4fc">DecomposeTeamFull</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet, <a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **world, <a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **teamMember, <a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> **team, uint16_t &amp;currentMembers, uint16_t &amp;memberLimitIncludingBalancing, bool &amp;balancingIsActive, JoinPermissions &amp;joinPermissions)</td></tr>
  95. <tr class="memdesc:a47aa6ab98611642ae31e60f91ea3a4fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">When you get ID_TEAM_BALANCER_REQUESTED_TEAM_FULL, pass the packet to this function to read out parameters. <a href="#a47aa6ab98611642ae31e60f91ea3a4fc"></a><br/></td></tr>
  96. <tr class="separator:a47aa6ab98611642ae31e60f91ea3a4fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  97. <tr class="memitem:a850f25565938281baf0c1b3cba64560d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a850f25565938281baf0c1b3cba64560d">DecomposeTeamLocked</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet, <a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **world, <a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **teamMember, <a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> **team, uint16_t &amp;currentMembers, uint16_t &amp;memberLimitIncludingBalancing, bool &amp;balancingIsActive, JoinPermissions &amp;joinPermissions)</td></tr>
  98. <tr class="memdesc:a850f25565938281baf0c1b3cba64560d"><td class="mdescLeft">&#160;</td><td class="mdescRight">When you get ID_TEAM_BALANCER_REQUESTED_TEAM_LOCKED, pass the packet to this function to read out parameters. <a href="#a850f25565938281baf0c1b3cba64560d"></a><br/></td></tr>
  99. <tr class="separator:a850f25565938281baf0c1b3cba64560d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  100. <tr class="memitem:a20a0b1ba056f1c77006e32e4a493b8f3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a20a0b1ba056f1c77006e32e4a493b8f3">Clear</a> (void)</td></tr>
  101. <tr class="memdesc:a20a0b1ba056f1c77006e32e4a493b8f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all memory and reset everything. <a href="#a20a0b1ba056f1c77006e32e4a493b8f3"></a><br/></td></tr>
  102. <tr class="separator:a20a0b1ba056f1c77006e32e4a493b8f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103. <tr class="memitem:aafd7ed390a40daf5e00ae14e2139bf84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#aafd7ed390a40daf5e00ae14e2139bf84">DecodeTeamAssigned</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet, <a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **world, <a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **teamMember)</td></tr>
  104. <tr class="memdesc:aafd7ed390a40daf5e00ae14e2139bf84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads out the world and teamMember from ID_TEAM_BALANCER_TEAM_ASSIGNED. <a href="#aafd7ed390a40daf5e00ae14e2139bf84"></a><br/></td></tr>
  105. <tr class="separator:aafd7ed390a40daf5e00ae14e2139bf84"><td class="memSeparator" colspan="2">&#160;</td></tr>
  106. <tr class="memitem:afc6ce119bf87ca50988b7338ae6003f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#afc6ce119bf87ca50988b7338ae6003f0">DecodeTeamCancelled</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet, <a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **world, <a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **teamMember, <a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> **teamCancelled)</td></tr>
  107. <tr class="separator:afc6ce119bf87ca50988b7338ae6003f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  108. <tr class="inherit_header pub_methods_classRakNet_1_1PluginInterface2"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classRakNet_1_1PluginInterface2')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classRakNet_1_1PluginInterface2.html">RakNet::PluginInterface2</a></td></tr>
  109. <tr class="memitem:a550529f3753c4acf22c3b5c3e203552c inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a550529f3753c4acf22c3b5c3e203552c"></a>
  110. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a550529f3753c4acf22c3b5c3e203552c">OnAttach</a> (void)</td></tr>
  111. <tr class="memdesc:a550529f3753c4acf22c3b5c3e203552c inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the interface is attached. <br/></td></tr>
  112. <tr class="separator:a550529f3753c4acf22c3b5c3e203552c inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. <tr class="memitem:a73d686ffe9a04a74e5a0ce78422c60f2 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a73d686ffe9a04a74e5a0ce78422c60f2"></a>
  114. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a73d686ffe9a04a74e5a0ce78422c60f2">OnDetach</a> (void)</td></tr>
  115. <tr class="memdesc:a73d686ffe9a04a74e5a0ce78422c60f2 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the interface is detached. <br/></td></tr>
  116. <tr class="separator:a73d686ffe9a04a74e5a0ce78422c60f2 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  117. <tr class="memitem:a14825e69f0560996327e4dd351842c06 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a14825e69f0560996327e4dd351842c06"></a>
  118. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a14825e69f0560996327e4dd351842c06">OnRakPeerStartup</a> (void)</td></tr>
  119. <tr class="memdesc:a14825e69f0560996327e4dd351842c06 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> is initialized. <br/></td></tr>
  120. <tr class="separator:a14825e69f0560996327e4dd351842c06 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  121. <tr class="memitem:a37c873a1879871722e06acfc45923883 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37c873a1879871722e06acfc45923883"></a>
  122. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a37c873a1879871722e06acfc45923883">OnRakPeerShutdown</a> (void)</td></tr>
  123. <tr class="memdesc:a37c873a1879871722e06acfc45923883 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> is shutdown. <br/></td></tr>
  124. <tr class="separator:a37c873a1879871722e06acfc45923883 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. <tr class="memitem:a9504489498df14b6efa5ca9bd39aede4 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a9504489498df14b6efa5ca9bd39aede4">OnFailedConnectionAttempt</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet, <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga3e92f686bace869b78c10508c58e0825">PI2_FailedConnectionAttemptReason</a> failedConnectionAttemptReason)</td></tr>
  126. <tr class="separator:a9504489498df14b6efa5ca9bd39aede4 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  127. <tr class="memitem:accfca7d25262c48a87a30114383284aa inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#accfca7d25262c48a87a30114383284aa">UsesReliabilityLayer</a> (void) const </td></tr>
  128. <tr class="separator:accfca7d25262c48a87a30114383284aa inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129. <tr class="memitem:a7a6f69c6fc3a121e3676298a63a9ef78 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a7a6f69c6fc3a121e3676298a63a9ef78">OnDirectSocketSend</a> (const char *data, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress)</td></tr>
  130. <tr class="separator:a7a6f69c6fc3a121e3676298a63a9ef78 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:a9aac1101ad58e8443516588e96e066ec inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a9aac1101ad58e8443516588e96e066ec">OnDirectSocketReceive</a> (const char *data, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress)</td></tr>
  132. <tr class="separator:a9aac1101ad58e8443516588e96e066ec inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. <tr class="memitem:abf51e60546bd74d21c91dc0d6f9f3a4b inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#abf51e60546bd74d21c91dc0d6f9f3a4b">OnReliabilityLayerNotification</a> (const char *errorMessage, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress, bool isError)</td></tr>
  134. <tr class="separator:abf51e60546bd74d21c91dc0d6f9f3a4b inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:a399b8c93daa0236599961e754742e2f7 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a399b8c93daa0236599961e754742e2f7">OnInternalPacket</a> (<a class="el" href="structRakNet_1_1InternalPacket.html">InternalPacket</a> *internalPacket, unsigned frameNumber, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress, RakNet::TimeMS time, int isSend)</td></tr>
  136. <tr class="separator:a399b8c93daa0236599961e754742e2f7 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. <tr class="memitem:ae0b0cad31cfc209c48197c77d6b46345 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#ae0b0cad31cfc209c48197c77d6b46345">OnAck</a> (unsigned int messageNumber, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress, RakNet::TimeMS time)</td></tr>
  138. <tr class="separator:ae0b0cad31cfc209c48197c77d6b46345 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="memitem:a5c976aea56ed85055a17c19d91b90727 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a5c976aea56ed85055a17c19d91b90727">OnPushBackPacket</a> (const char *data, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress)</td></tr>
  140. <tr class="separator:a5c976aea56ed85055a17c19d91b90727 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. </table><table class="memberdecls">
  142. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  143. Protected Member Functions</h2></td></tr>
  144. <tr class="memitem:aa347824c887a1032b383143a96855218"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa347824c887a1032b383143a96855218"></a>
  145. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#aa347824c887a1032b383143a96855218">Update</a> (void)</td></tr>
  146. <tr class="memdesc:aa347824c887a1032b383143a96855218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update is called every time a packet is checked for . <br/></td></tr>
  147. <tr class="separator:aa347824c887a1032b383143a96855218"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:a6e2cc8a3ca194ab60c74e11f1e6edb80"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga89998adaafb29e5d879113b992161085">PluginReceiveResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a6e2cc8a3ca194ab60c74e11f1e6edb80">OnReceive</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet)</td></tr>
  149. <tr class="separator:a6e2cc8a3ca194ab60c74e11f1e6edb80"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150. <tr class="memitem:a0d27bb1f13806b2413ec067f872b4410"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a0d27bb1f13806b2413ec067f872b4410">OnClosedConnection</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;systemAddress, <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> rakNetGUID, <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga376cc546fd6892c2ead48cd51796c8b8">PI2_LostConnectionReason</a> lostConnectionReason)</td></tr>
  151. <tr class="separator:a0d27bb1f13806b2413ec067f872b4410"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152. <tr class="memitem:a87d0516651f2ee7e24867e528d854e0f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#a87d0516651f2ee7e24867e528d854e0f">OnNewConnection</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;systemAddress, <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> rakNetGUID, bool isIncoming)</td></tr>
  153. <tr class="separator:a87d0516651f2ee7e24867e528d854e0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:ab13fe5e3538ade5e2e713be93e5641f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1TeamManager.html#ab13fe5e3538ade5e2e713be93e5641f9">DecodeTeamAssigned</a> (<a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *bsIn, <a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **world, <a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **teamMember, <a class="el" href="group__TEAM__MANAGER__GROUP.html#gadd1e99b7724ceb0f6794f46de31a6b02">NoTeamId</a> &amp;noTeamSubcategory, <a class="el" href="group__TEAM__MANAGER__GROUP.html#ga8a8704b992ae17ee4789b2ba4cc4b34b">JoinTeamType</a> &amp;joinTeamType, <a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> * &gt; &amp;newTeam, <a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> * &gt; &amp;teamsLeft, <a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> * &gt; &amp;teamsJoined)</td></tr>
  155. <tr class="memdesc:ab13fe5e3538ade5e2e713be93e5641f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">When you get ID_TEAM_BALANCER_TEAM_ASSIGNED, pass the packet to this function to read out parameters. <a href="#ab13fe5e3538ade5e2e713be93e5641f9"></a><br/></td></tr>
  156. <tr class="separator:ab13fe5e3538ade5e2e713be93e5641f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  157. </table>
  158. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  159. <div class="textblock"><p>Automates networking and list management for teams. </p>
  160. <p><a class="el" href="classRakNet_1_1TeamManager.html" title="Automates networking and list management for teams.">TeamManager</a> provides support for teams. A team is a list of team members. Teams contain properties including the number of team members per team, whether or not tagged teams must have equal numbers of members, and if a team is locked or not to certain entry conditions Team members contain properties including which teams they are on and which teams they want to join if a team is not immediately joinable Advanced functionality includes the ability for a team member to be on multiple teams simultaneously, the ability to swap teams with other members, and the ability to resize the number of members supported per team The architecture is designed for easy integration with <a class="el" href="classRakNet_1_1ReplicaManager3.html" title="System to help automate game object construction, destruction, and serialization.">ReplicaManager3</a></p>
  161. <p>Usage:<br/>
  162. </p>
  163. <ol type="1">
  164. <li>Define your game classes to represent teams and team members. Your game classes should hold game-specific information such as team name and color.<br/>
  165. </li>
  166. <li>Have those game classes contain a corresponding <a class="el" href="classRakNet_1_1TM__Team.html" title="A team, containing a list of TM_TeamMember instances.">TM_Team</a> or <a class="el" href="classRakNet_1_1TM__TeamMember.html" title="A member of one or more teams.">TM_TeamMember</a> instance. Operations on teams will be performed by those instances. Use SetOwner() to refer to the parent object when using composition.<br/>
  167. </li>
  168. <li>Call <a class="el" href="classRakNet_1_1TeamManager.html#a863260b06e910fc8b352e8c97b90d173" title="If _topology is set to TM_CLIENT_SERVER, the host will relay messages to participants.">TeamManager::SetTopology()</a> for client/server or peer to peer.<br/>
  169. </li>
  170. <li>Call <a class="el" href="classRakNet_1_1TeamManager.html#a329c459c522b5e3204424499fe4f8bd7" title="Allocate a world to hold a list of teams and players for that team. Use the returned TM_World object ...">AddWorld()</a> to instantiate a <a class="el" href="classRakNet_1_1TM__World.html" title="Stores a list of teams which may be enforcing a balanced number of members.">TM_World</a> object which will contain references to your <a class="el" href="classRakNet_1_1TM__TeamMember.html" title="A member of one or more teams.">TM_TeamMember</a> and <a class="el" href="classRakNet_1_1TM__Team.html" title="A team, containing a list of TM_TeamMember instances.">TM_Team</a> instances.<br/>
  171. </li>
  172. <li>When you instantiate a <a class="el" href="classRakNet_1_1TM__TeamMember.html" title="A member of one or more teams.">TM_TeamMember</a> or <a class="el" href="classRakNet_1_1TM__Team.html" title="A team, containing a list of TM_TeamMember instances.">TM_Team</a> object, call ReferenceTeam() and ReferenceTeamMember() for each corresponding object<br/>
  173. </li>
  174. <li>When sending world state to a new connection, for example in ReplicaManager3::SerializeConstruction(), call TM_SerializeConstruction() on the corresponding <a class="el" href="classRakNet_1_1TM__TeamMember.html" title="A member of one or more teams.">TM_TeamMember</a> and <a class="el" href="classRakNet_1_1TM__Team.html" title="A team, containing a list of TM_TeamMember instances.">TM_Team</a> objects. <a class="el" href="classRakNet_1_1TM__Team.html" title="A team, containing a list of TM_TeamMember instances.">TM_Team</a> instances on the new connection must be created before <a class="el" href="classRakNet_1_1TM__TeamMember.html" title="A member of one or more teams.">TM_TeamMember</a> instances.<br/>
  175. </li>
  176. <li>Call TM_DeserializeConstruction() on your new corresponding <a class="el" href="classRakNet_1_1TM__TeamMember.html" title="A member of one or more teams.">TM_TeamMember</a> and <a class="el" href="classRakNet_1_1TM__Team.html" title="A team, containing a list of TM_TeamMember instances.">TM_Team</a> instances.<br/>
  177. </li>
  178. <li>Execute team operations. ID_TEAM_BALANCER_REQUESTED_TEAM_FULL, ID_TEAM_BALANCER_REQUESTED_TEAM_LOCKED, ID_TEAM_BALANCER_TEAM_REQUESTED_CANCELLED, and ID_TEAM_BALANCER_TEAM_ASSIGNED are returned to all systems when the corresponding event occurs for a team member.<br/>
  179. </li>
  180. <li>As the peer to peer session host changes, call SetHost() (Not necessary if using FullyConnectedMesh2). If using client/server, you must set the host<br/>
  181. <dl class="section note"><dt>Note</dt><dd>This replaces <a class="el" href="classRakNet_1_1TeamBalancer.html" title="Set and network team selection (supports peer to peer or client/server)">TeamBalancer</a>. You cannot use <a class="el" href="classRakNet_1_1TeamBalancer.html" title="Set and network team selection (supports peer to peer or client/server)">TeamBalancer</a> and <a class="el" href="classRakNet_1_1TeamManager.html" title="Automates networking and list management for teams.">TeamManager</a> at the same time. </dd></dl>
  182. </li>
  183. </ol>
  184. </div><h2 class="groupheader">Member Function Documentation</h2>
  185. <a class="anchor" id="a329c459c522b5e3204424499fe4f8bd7"></a>
  186. <div class="memitem">
  187. <div class="memproto">
  188. <table class="memname">
  189. <tr>
  190. <td class="memname"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a>* RakNet::TeamManager::AddWorld </td>
  191. <td>(</td>
  192. <td class="paramtype"><a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga44b59af8e882248f61aa41d8ace38bf7">WorldId</a>&#160;</td>
  193. <td class="paramname"><em>worldId</em></td><td>)</td>
  194. <td></td>
  195. </tr>
  196. </table>
  197. </div><div class="memdoc">
  198. <p>Allocate a world to hold a list of teams and players for that team. Use the returned <a class="el" href="classRakNet_1_1TM__World.html" title="Stores a list of teams which may be enforcing a balanced number of members.">TM_World</a> object for actual team functionality. </p>
  199. <dl class="section note"><dt>Note</dt><dd>The world is tracked by <a class="el" href="classRakNet_1_1TeamManager.html" title="Automates networking and list management for teams.">TeamManager</a> and deallocated by calling <a class="el" href="classRakNet_1_1TeamManager.html#a20a0b1ba056f1c77006e32e4a493b8f3" title="Clear all memory and reset everything.">Clear()</a> </dd></dl>
  200. <dl class="params"><dt>Parameters</dt><dd>
  201. <table class="params">
  202. <tr><td class="paramdir">[in]</td><td class="paramname">worldId</td><td>Arbitrary user-defined id of the world to create. Each world instance must have a unique id. </td></tr>
  203. </table>
  204. </dd>
  205. </dl>
  206. </div>
  207. </div>
  208. <a class="anchor" id="a20a0b1ba056f1c77006e32e4a493b8f3"></a>
  209. <div class="memitem">
  210. <div class="memproto">
  211. <table class="memname">
  212. <tr>
  213. <td class="memname">void RakNet::TeamManager::Clear </td>
  214. <td>(</td>
  215. <td class="paramtype">void&#160;</td>
  216. <td class="paramname"></td><td>)</td>
  217. <td></td>
  218. </tr>
  219. </table>
  220. </div><div class="memdoc">
  221. <p>Clear all memory and reset everything. </p>
  222. <p>Deallocates <a class="el" href="classRakNet_1_1TM__World.html" title="Stores a list of teams which may be enforcing a balanced number of members.">TM_World</a> instances. It is up to the user to deallocate pointers passed to ReferenceTeamMember() or ReferenceTeam(), if so desired. </p>
  223. </div>
  224. </div>
  225. <a class="anchor" id="aafd7ed390a40daf5e00ae14e2139bf84"></a>
  226. <div class="memitem">
  227. <div class="memproto">
  228. <table class="memname">
  229. <tr>
  230. <td class="memname">void RakNet::TeamManager::DecodeTeamAssigned </td>
  231. <td>(</td>
  232. <td class="paramtype"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td>
  233. <td class="paramname"><em>packet</em>, </td>
  234. </tr>
  235. <tr>
  236. <td class="paramkey"></td>
  237. <td></td>
  238. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **&#160;</td>
  239. <td class="paramname"><em>world</em>, </td>
  240. </tr>
  241. <tr>
  242. <td class="paramkey"></td>
  243. <td></td>
  244. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **&#160;</td>
  245. <td class="paramname"><em>teamMember</em>&#160;</td>
  246. </tr>
  247. <tr>
  248. <td></td>
  249. <td>)</td>
  250. <td></td><td></td>
  251. </tr>
  252. </table>
  253. </div><div class="memdoc">
  254. <p>Reads out the world and teamMember from ID_TEAM_BALANCER_TEAM_ASSIGNED. </p>
  255. <dl class="section note"><dt>Note</dt><dd>You can get the current and prior team list from the teamMember itself </dd></dl>
  256. <dl class="params"><dt>Parameters</dt><dd>
  257. <table class="params">
  258. <tr><td class="paramdir">[in]</td><td class="paramname">A</td><td>packet where packet-&gt;data[0]==ID_TEAM_BALANCER_TEAM_ASSIGNED </td></tr>
  259. <tr><td class="paramdir">[out]</td><td class="paramname">world</td><td>Set to the world this <em>teamMember</em> is on. 0 on bad lookup. </td></tr>
  260. <tr><td class="paramdir">[out]</td><td class="paramname">teamMember</td><td>Set to the teamMember affected. 0 on bad lookup. </td></tr>
  261. </table>
  262. </dd>
  263. </dl>
  264. </div>
  265. </div>
  266. <a class="anchor" id="ab13fe5e3538ade5e2e713be93e5641f9"></a>
  267. <div class="memitem">
  268. <div class="memproto">
  269. <table class="mlabels">
  270. <tr>
  271. <td class="mlabels-left">
  272. <table class="memname">
  273. <tr>
  274. <td class="memname">void RakNet::TeamManager::DecodeTeamAssigned </td>
  275. <td>(</td>
  276. <td class="paramtype"><a class="el" href="classRakNet_1_1BitStream.html">RakNet::BitStream</a> *&#160;</td>
  277. <td class="paramname"><em>bsIn</em>, </td>
  278. </tr>
  279. <tr>
  280. <td class="paramkey"></td>
  281. <td></td>
  282. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **&#160;</td>
  283. <td class="paramname"><em>world</em>, </td>
  284. </tr>
  285. <tr>
  286. <td class="paramkey"></td>
  287. <td></td>
  288. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **&#160;</td>
  289. <td class="paramname"><em>teamMember</em>, </td>
  290. </tr>
  291. <tr>
  292. <td class="paramkey"></td>
  293. <td></td>
  294. <td class="paramtype"><a class="el" href="group__TEAM__MANAGER__GROUP.html#gadd1e99b7724ceb0f6794f46de31a6b02">NoTeamId</a> &amp;&#160;</td>
  295. <td class="paramname"><em>noTeamSubcategory</em>, </td>
  296. </tr>
  297. <tr>
  298. <td class="paramkey"></td>
  299. <td></td>
  300. <td class="paramtype"><a class="el" href="group__TEAM__MANAGER__GROUP.html#ga8a8704b992ae17ee4789b2ba4cc4b34b">JoinTeamType</a> &amp;&#160;</td>
  301. <td class="paramname"><em>joinTeamType</em>, </td>
  302. </tr>
  303. <tr>
  304. <td class="paramkey"></td>
  305. <td></td>
  306. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> * &gt; &amp;&#160;</td>
  307. <td class="paramname"><em>newTeam</em>, </td>
  308. </tr>
  309. <tr>
  310. <td class="paramkey"></td>
  311. <td></td>
  312. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> * &gt; &amp;&#160;</td>
  313. <td class="paramname"><em>teamsLeft</em>, </td>
  314. </tr>
  315. <tr>
  316. <td class="paramkey"></td>
  317. <td></td>
  318. <td class="paramtype"><a class="el" href="classDataStructures_1_1List.html">DataStructures::List</a>&lt; <a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> * &gt; &amp;&#160;</td>
  319. <td class="paramname"><em>teamsJoined</em>&#160;</td>
  320. </tr>
  321. <tr>
  322. <td></td>
  323. <td>)</td>
  324. <td></td><td></td>
  325. </tr>
  326. </table>
  327. </td>
  328. <td class="mlabels-right">
  329. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  330. </tr>
  331. </table>
  332. </div><div class="memdoc">
  333. <p>When you get ID_TEAM_BALANCER_TEAM_ASSIGNED, pass the packet to this function to read out parameters. </p>
  334. <dl class="params"><dt>Parameters</dt><dd>
  335. <table class="params">
  336. <tr><td class="paramdir">[in]</td><td class="paramname">A</td><td>packet where packet-&gt;data[0]==ID_TEAM_BALANCER_TEAM_ASSIGNED </td></tr>
  337. </table>
  338. </dd>
  339. </dl>
  340. <dl class="section return"><dt>Returns</dt><dd>true on success, false on read error </dd></dl>
  341. </div>
  342. </div>
  343. <a class="anchor" id="afc6ce119bf87ca50988b7338ae6003f0"></a>
  344. <div class="memitem">
  345. <div class="memproto">
  346. <table class="memname">
  347. <tr>
  348. <td class="memname">void RakNet::TeamManager::DecodeTeamCancelled </td>
  349. <td>(</td>
  350. <td class="paramtype"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td>
  351. <td class="paramname"><em>packet</em>, </td>
  352. </tr>
  353. <tr>
  354. <td class="paramkey"></td>
  355. <td></td>
  356. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **&#160;</td>
  357. <td class="paramname"><em>world</em>, </td>
  358. </tr>
  359. <tr>
  360. <td class="paramkey"></td>
  361. <td></td>
  362. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **&#160;</td>
  363. <td class="paramname"><em>teamMember</em>, </td>
  364. </tr>
  365. <tr>
  366. <td class="paramkey"></td>
  367. <td></td>
  368. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> **&#160;</td>
  369. <td class="paramname"><em>teamCancelled</em>&#160;</td>
  370. </tr>
  371. <tr>
  372. <td></td>
  373. <td>)</td>
  374. <td></td><td></td>
  375. </tr>
  376. </table>
  377. </div><div class="memdoc">
  378. <dl class="section note"><dt>Note</dt><dd>You can get the requested team list from the teamMember itself </dd></dl>
  379. <dl class="params"><dt>Parameters</dt><dd>
  380. <table class="params">
  381. <tr><td class="paramdir">[in]</td><td class="paramname">A</td><td>packet where packet-&gt;data[0]==ID_TEAM_BALANCER_TEAM_REQUESTED_CANCELLED </td></tr>
  382. <tr><td class="paramdir">[out]</td><td class="paramname">world</td><td>Set to the world this <em>teamMember</em> is on. 0 on bad lookup. </td></tr>
  383. <tr><td class="paramdir">[out]</td><td class="paramname">teamMember</td><td>Set to the teamMember affected. 0 on bad lookup. </td></tr>
  384. <tr><td class="paramdir">[out]</td><td class="paramname">teamCancelled</td><td>Set to the team that was cancelled. 0 for all teams. </td></tr>
  385. </table>
  386. </dd>
  387. </dl>
  388. </div>
  389. </div>
  390. <a class="anchor" id="a47aa6ab98611642ae31e60f91ea3a4fc"></a>
  391. <div class="memitem">
  392. <div class="memproto">
  393. <table class="memname">
  394. <tr>
  395. <td class="memname">void RakNet::TeamManager::DecomposeTeamFull </td>
  396. <td>(</td>
  397. <td class="paramtype"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td>
  398. <td class="paramname"><em>packet</em>, </td>
  399. </tr>
  400. <tr>
  401. <td class="paramkey"></td>
  402. <td></td>
  403. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **&#160;</td>
  404. <td class="paramname"><em>world</em>, </td>
  405. </tr>
  406. <tr>
  407. <td class="paramkey"></td>
  408. <td></td>
  409. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **&#160;</td>
  410. <td class="paramname"><em>teamMember</em>, </td>
  411. </tr>
  412. <tr>
  413. <td class="paramkey"></td>
  414. <td></td>
  415. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> **&#160;</td>
  416. <td class="paramname"><em>team</em>, </td>
  417. </tr>
  418. <tr>
  419. <td class="paramkey"></td>
  420. <td></td>
  421. <td class="paramtype">uint16_t &amp;&#160;</td>
  422. <td class="paramname"><em>currentMembers</em>, </td>
  423. </tr>
  424. <tr>
  425. <td class="paramkey"></td>
  426. <td></td>
  427. <td class="paramtype">uint16_t &amp;&#160;</td>
  428. <td class="paramname"><em>memberLimitIncludingBalancing</em>, </td>
  429. </tr>
  430. <tr>
  431. <td class="paramkey"></td>
  432. <td></td>
  433. <td class="paramtype">bool &amp;&#160;</td>
  434. <td class="paramname"><em>balancingIsActive</em>, </td>
  435. </tr>
  436. <tr>
  437. <td class="paramkey"></td>
  438. <td></td>
  439. <td class="paramtype">JoinPermissions &amp;&#160;</td>
  440. <td class="paramname"><em>joinPermissions</em>&#160;</td>
  441. </tr>
  442. <tr>
  443. <td></td>
  444. <td>)</td>
  445. <td></td><td></td>
  446. </tr>
  447. </table>
  448. </div><div class="memdoc">
  449. <p>When you get ID_TEAM_BALANCER_REQUESTED_TEAM_FULL, pass the packet to this function to read out parameters. </p>
  450. <dl class="params"><dt>Parameters</dt><dd>
  451. <table class="params">
  452. <tr><td class="paramdir">[in]</td><td class="paramname">A</td><td>packet where packet-&gt;data[0]==ID_TEAM_BALANCER_REQUESTED_TEAM_FULL </td></tr>
  453. </table>
  454. </dd>
  455. </dl>
  456. <dl class="section return"><dt>Returns</dt><dd>true on success, false on read error </dd></dl>
  457. </div>
  458. </div>
  459. <a class="anchor" id="a850f25565938281baf0c1b3cba64560d"></a>
  460. <div class="memitem">
  461. <div class="memproto">
  462. <table class="memname">
  463. <tr>
  464. <td class="memname">void RakNet::TeamManager::DecomposeTeamLocked </td>
  465. <td>(</td>
  466. <td class="paramtype"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td>
  467. <td class="paramname"><em>packet</em>, </td>
  468. </tr>
  469. <tr>
  470. <td class="paramkey"></td>
  471. <td></td>
  472. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a> **&#160;</td>
  473. <td class="paramname"><em>world</em>, </td>
  474. </tr>
  475. <tr>
  476. <td class="paramkey"></td>
  477. <td></td>
  478. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__TeamMember.html">TM_TeamMember</a> **&#160;</td>
  479. <td class="paramname"><em>teamMember</em>, </td>
  480. </tr>
  481. <tr>
  482. <td class="paramkey"></td>
  483. <td></td>
  484. <td class="paramtype"><a class="el" href="classRakNet_1_1TM__Team.html">TM_Team</a> **&#160;</td>
  485. <td class="paramname"><em>team</em>, </td>
  486. </tr>
  487. <tr>
  488. <td class="paramkey"></td>
  489. <td></td>
  490. <td class="paramtype">uint16_t &amp;&#160;</td>
  491. <td class="paramname"><em>currentMembers</em>, </td>
  492. </tr>
  493. <tr>
  494. <td class="paramkey"></td>
  495. <td></td>
  496. <td class="paramtype">uint16_t &amp;&#160;</td>
  497. <td class="paramname"><em>memberLimitIncludingBalancing</em>, </td>
  498. </tr>
  499. <tr>
  500. <td class="paramkey"></td>
  501. <td></td>
  502. <td class="paramtype">bool &amp;&#160;</td>
  503. <td class="paramname"><em>balancingIsActive</em>, </td>
  504. </tr>
  505. <tr>
  506. <td class="paramkey"></td>
  507. <td></td>
  508. <td class="paramtype">JoinPermissions &amp;&#160;</td>
  509. <td class="paramname"><em>joinPermissions</em>&#160;</td>
  510. </tr>
  511. <tr>
  512. <td></td>
  513. <td>)</td>
  514. <td></td><td></td>
  515. </tr>
  516. </table>
  517. </div><div class="memdoc">
  518. <p>When you get ID_TEAM_BALANCER_REQUESTED_TEAM_LOCKED, pass the packet to this function to read out parameters. </p>
  519. <dl class="params"><dt>Parameters</dt><dd>
  520. <table class="params">
  521. <tr><td class="paramdir">[in]</td><td class="paramname">A</td><td>packet where packet-&gt;data[0]==ID_TEAM_BALANCER_REQUESTED_TEAM_LOCKED </td></tr>
  522. </table>
  523. </dd>
  524. </dl>
  525. <dl class="section return"><dt>Returns</dt><dd>true on success, false on read error </dd></dl>
  526. </div>
  527. </div>
  528. <a class="anchor" id="a2dae07e3f4360801e1eae592e81a9f9d"></a>
  529. <div class="memitem">
  530. <div class="memproto">
  531. <table class="memname">
  532. <tr>
  533. <td class="memname"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a>* RakNet::TeamManager::GetWorldAtIndex </td>
  534. <td>(</td>
  535. <td class="paramtype">unsigned int&#160;</td>
  536. <td class="paramname"><em>index</em></td><td>)</td>
  537. <td> const</td>
  538. </tr>
  539. </table>
  540. </div><div class="memdoc">
  541. <dl class="params"><dt>Parameters</dt><dd>
  542. <table class="params">
  543. <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>A value beteween 0 and <a class="el" href="classRakNet_1_1TeamManager.html#ac2b9fc40570ad1342f4a330141a18d12">GetWorldCount()</a>-1 inclusive. </td></tr>
  544. </table>
  545. </dd>
  546. </dl>
  547. <dl class="section return"><dt>Returns</dt><dd>Returns a world created with <a class="el" href="classRakNet_1_1TeamManager.html#a329c459c522b5e3204424499fe4f8bd7" title="Allocate a world to hold a list of teams and players for that team. Use the returned TM_World object ...">AddWorld()</a> </dd></dl>
  548. </div>
  549. </div>
  550. <a class="anchor" id="ac2b9fc40570ad1342f4a330141a18d12"></a>
  551. <div class="memitem">
  552. <div class="memproto">
  553. <table class="memname">
  554. <tr>
  555. <td class="memname">unsigned int RakNet::TeamManager::GetWorldCount </td>
  556. <td>(</td>
  557. <td class="paramtype">void&#160;</td>
  558. <td class="paramname"></td><td>)</td>
  559. <td> const</td>
  560. </tr>
  561. </table>
  562. </div><div class="memdoc">
  563. <dl class="section return"><dt>Returns</dt><dd>Returns the number of worlds created with <a class="el" href="classRakNet_1_1TeamManager.html#a329c459c522b5e3204424499fe4f8bd7" title="Allocate a world to hold a list of teams and players for that team. Use the returned TM_World object ...">AddWorld()</a> </dd></dl>
  564. </div>
  565. </div>
  566. <a class="anchor" id="a6bf583d8eac750b9910d983852e1a0b1"></a>
  567. <div class="memitem">
  568. <div class="memproto">
  569. <table class="memname">
  570. <tr>
  571. <td class="memname"><a class="el" href="classRakNet_1_1TM__World.html">TM_World</a>* RakNet::TeamManager::GetWorldWithId </td>
  572. <td>(</td>
  573. <td class="paramtype"><a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga44b59af8e882248f61aa41d8ace38bf7">WorldId</a>&#160;</td>
  574. <td class="paramname"><em>worldId</em></td><td>)</td>
  575. <td> const</td>
  576. </tr>
  577. </table>
  578. </div><div class="memdoc">
  579. <dl class="params"><dt>Parameters</dt><dd>
  580. <table class="params">
  581. <tr><td class="paramdir">[in]</td><td class="paramname">worldId</td><td><em>worldId</em> value passed to <a class="el" href="classRakNet_1_1TeamManager.html#a329c459c522b5e3204424499fe4f8bd7" title="Allocate a world to hold a list of teams and players for that team. Use the returned TM_World object ...">AddWorld()</a> </td></tr>
  582. </table>
  583. </dd>
  584. </dl>
  585. <dl class="section return"><dt>Returns</dt><dd>Returns a world created with <a class="el" href="classRakNet_1_1TeamManager.html#a329c459c522b5e3204424499fe4f8bd7" title="Allocate a world to hold a list of teams and players for that team. Use the returned TM_World object ...">AddWorld()</a>, or 0 if no such <em>worldId</em> </dd></dl>
  586. </div>
  587. </div>
  588. <a class="anchor" id="a0d27bb1f13806b2413ec067f872b4410"></a>
  589. <div class="memitem">
  590. <div class="memproto">
  591. <table class="mlabels">
  592. <tr>
  593. <td class="mlabels-left">
  594. <table class="memname">
  595. <tr>
  596. <td class="memname">virtual void RakNet::TeamManager::OnClosedConnection </td>
  597. <td>(</td>
  598. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;&#160;</td>
  599. <td class="paramname"><em>systemAddress</em>, </td>
  600. </tr>
  601. <tr>
  602. <td class="paramkey"></td>
  603. <td></td>
  604. <td class="paramtype"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>&#160;</td>
  605. <td class="paramname"><em>rakNetGUID</em>, </td>
  606. </tr>
  607. <tr>
  608. <td class="paramkey"></td>
  609. <td></td>
  610. <td class="paramtype"><a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga376cc546fd6892c2ead48cd51796c8b8">PI2_LostConnectionReason</a>&#160;</td>
  611. <td class="paramname"><em>lostConnectionReason</em>&#160;</td>
  612. </tr>
  613. <tr>
  614. <td></td>
  615. <td>)</td>
  616. <td></td><td></td>
  617. </tr>
  618. </table>
  619. </td>
  620. <td class="mlabels-right">
  621. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  622. </tr>
  623. </table>
  624. </div><div class="memdoc">
  625. <p>Called when a connection is dropped because the user called <a class="el" href="classRakNet_1_1RakPeer.html#a95e3806fce8552e322236abcf105cbf9" title="Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out).">RakPeer::CloseConnection()</a> for a particular system </p>
  626. <dl class="params"><dt>Parameters</dt><dd>
  627. <table class="params">
  628. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The system whose connection was closed </td></tr>
  629. <tr><td class="paramdir">[in]</td><td class="paramname">rakNetGuid</td><td>The guid of the specified system </td></tr>
  630. <tr><td class="paramdir">[in]</td><td class="paramname">lostConnectionReason</td><td>How the connection was closed: manually, connection lost, or notification of disconnection </td></tr>
  631. </table>
  632. </dd>
  633. </dl>
  634. <p>Reimplemented from <a class="el" href="classRakNet_1_1PluginInterface2.html#a80c7612ca1a5dcfeec0b52d8049a71ea">RakNet::PluginInterface2</a>.</p>
  635. </div>
  636. </div>
  637. <a class="anchor" id="a87d0516651f2ee7e24867e528d854e0f"></a>
  638. <div class="memitem">
  639. <div class="memproto">
  640. <table class="mlabels">
  641. <tr>
  642. <td class="mlabels-left">
  643. <table class="memname">
  644. <tr>
  645. <td class="memname">virtual void RakNet::TeamManager::OnNewConnection </td>
  646. <td>(</td>
  647. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;&#160;</td>
  648. <td class="paramname"><em>systemAddress</em>, </td>
  649. </tr>
  650. <tr>
  651. <td class="paramkey"></td>
  652. <td></td>
  653. <td class="paramtype"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>&#160;</td>
  654. <td class="paramname"><em>rakNetGUID</em>, </td>
  655. </tr>
  656. <tr>
  657. <td class="paramkey"></td>
  658. <td></td>
  659. <td class="paramtype">bool&#160;</td>
  660. <td class="paramname"><em>isIncoming</em>&#160;</td>
  661. </tr>
  662. <tr>
  663. <td></td>
  664. <td>)</td>
  665. <td></td><td></td>
  666. </tr>
  667. </table>
  668. </td>
  669. <td class="mlabels-right">
  670. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  671. </tr>
  672. </table>
  673. </div><div class="memdoc">
  674. <p>Called when we got a new connection </p>
  675. <dl class="params"><dt>Parameters</dt><dd>
  676. <table class="params">
  677. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>Address of the new connection </td></tr>
  678. <tr><td class="paramdir">[in]</td><td class="paramname">rakNetGuid</td><td>The guid of the specified system </td></tr>
  679. <tr><td class="paramdir">[in]</td><td class="paramname">isIncoming</td><td>If true, this is ID_NEW_INCOMING_CONNECTION, or the equivalent </td></tr>
  680. </table>
  681. </dd>
  682. </dl>
  683. <p>Reimplemented from <a class="el" href="classRakNet_1_1PluginInterface2.html#abf13327cc10f772ba06dff8f2687f8ae">RakNet::PluginInterface2</a>.</p>
  684. </div>
  685. </div>
  686. <a class="anchor" id="a6e2cc8a3ca194ab60c74e11f1e6edb80"></a>
  687. <div class="memitem">
  688. <div class="memproto">
  689. <table class="mlabels">
  690. <tr>
  691. <td class="mlabels-left">
  692. <table class="memname">
  693. <tr>
  694. <td class="memname">virtual <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga89998adaafb29e5d879113b992161085">PluginReceiveResult</a> RakNet::TeamManager::OnReceive </td>
  695. <td>(</td>
  696. <td class="paramtype"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td>
  697. <td class="paramname"><em>packet</em></td><td>)</td>
  698. <td></td>
  699. </tr>
  700. </table>
  701. </td>
  702. <td class="mlabels-right">
  703. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
  704. </tr>
  705. </table>
  706. </div><div class="memdoc">
  707. <p>OnReceive is called for every packet. </p>
  708. <dl class="params"><dt>Parameters</dt><dd>
  709. <table class="params">
  710. <tr><td class="paramdir">[in]</td><td class="paramname">packet</td><td>the packet that is being returned to the user </td></tr>
  711. </table>
  712. </dd>
  713. </dl>
  714. <dl class="section return"><dt>Returns</dt><dd>True to allow the game and other plugins to get this message, false to absorb it </dd></dl>
  715. <p>Reimplemented from <a class="el" href="classRakNet_1_1PluginInterface2.html#aa86f33263c1648f11b8a006469272639">RakNet::PluginInterface2</a>.</p>
  716. </div>
  717. </div>
  718. <a class="anchor" id="a5cfcd5a350a1b1d7ea1460d45ec87678"></a>
  719. <div class="memitem">
  720. <div class="memproto">
  721. <table class="memname">
  722. <tr>
  723. <td class="memname">void RakNet::TeamManager::RemoveWorld </td>
  724. <td>(</td>
  725. <td class="paramtype"><a class="el" href="group__REPLICA__MANAGER__GROUP3.html#ga44b59af8e882248f61aa41d8ace38bf7">WorldId</a>&#160;</td>
  726. <td class="paramname"><em>worldId</em></td><td>)</td>
  727. <td></td>
  728. </tr>
  729. </table>
  730. </div><div class="memdoc">
  731. <p>Deallocate a world created with <a class="el" href="classRakNet_1_1TeamManager.html#a329c459c522b5e3204424499fe4f8bd7" title="Allocate a world to hold a list of teams and players for that team. Use the returned TM_World object ...">AddWorld()</a> </p>
  732. <dl class="params"><dt>Parameters</dt><dd>
  733. <table class="params">
  734. <tr><td class="paramdir">[in]</td><td class="paramname">worldId</td><td>The world to deallocate </td></tr>
  735. </table>
  736. </dd>
  737. </dl>
  738. </div>
  739. </div>
  740. <a class="anchor" id="a4646991e21f478677fa0eda9fa0f91ad"></a>
  741. <div class="memitem">
  742. <div class="memproto">
  743. <table class="memname">
  744. <tr>
  745. <td class="memname">void RakNet::TeamManager::SetAutoManageConnections </td>
  746. <td>(</td>
  747. <td class="paramtype">bool&#160;</td>
  748. <td class="paramname"><em>autoAdd</em></td><td>)</td>
  749. <td></td>
  750. </tr>
  751. </table>
  752. </div><div class="memdoc">
  753. <p>When auto managing connections, call <a class="el" href="classRakNet_1_1TM__World.html#a75531795fd1adc74d7edae660c4ecc17" title="Add a new system to send team and team member updates to.">TM_World::AddParticipant()</a> on all worlds for all new connections automatically Defaults to true. </p>
  754. <dl class="section note"><dt>Note</dt><dd>You probably want this set to false if using multiple worlds </dd></dl>
  755. <dl class="params"><dt>Parameters</dt><dd>
  756. <table class="params">
  757. <tr><td class="paramdir">[in]</td><td class="paramname">autoAdd</td><td>Automatically call <a class="el" href="classRakNet_1_1TM__World.html#a75531795fd1adc74d7edae660c4ecc17" title="Add a new system to send team and team member updates to.">TM_World::AddParticipant()</a> all worlds each new connection. Defaults to true. </td></tr>
  758. </table>
  759. </dd>
  760. </dl>
  761. </div>
  762. </div>
  763. <a class="anchor" id="a863260b06e910fc8b352e8c97b90d173"></a>
  764. <div class="memitem">
  765. <div class="memproto">
  766. <table class="memname">
  767. <tr>
  768. <td class="memname">void RakNet::TeamManager::SetTopology </td>
  769. <td>(</td>
  770. <td class="paramtype">TMTopology&#160;</td>
  771. <td class="paramname"><em>_topology</em></td><td>)</td>
  772. <td></td>
  773. </tr>
  774. </table>
  775. </div><div class="memdoc">
  776. <p>If <em>_topology</em> is set to TM_CLIENT_SERVER, the host will relay messages to participants. </p>
  777. <p>If topology is set to TM_PEER_TO_PEER, the host assumes the original message source was connected to all other participants and does not relay messages. </p>
  778. <dl class="section note"><dt>Note</dt><dd>If TM_PEER_TO_PEER, this plugin will listen for ID_FCM2_NEW_HOST and call SetHost() on all worlds automatically </dd>
  779. <dd>
  780. Defaults to TM_PEER_TO_PEER </dd></dl>
  781. <dl class="params"><dt>Parameters</dt><dd>
  782. <table class="params">
  783. <tr><td class="paramdir">[in]</td><td class="paramname">_topology</td><td>Topology to use </td></tr>
  784. </table>
  785. </dd>
  786. </dl>
  787. </div>
  788. </div>
  789. <hr/>The documentation for this class was generated from the following file:<ul>
  790. <li>D:/temp/RakNet_PC/Source/<a class="el" href="TeamManager_8h.html">TeamManager.h</a></li>
  791. </ul>
  792. </div><!-- contents -->
  793. <!-- start footer part -->
  794. <hr class="footer"/><address class="footer"><small>
  795. Generated on Mon Jun 2 2014 20:10:29 for RakNet by &#160;<a href="http://www.doxygen.org/index.html">
  796. <img class="footer" src="doxygen.png" alt="doxygen"/>
  797. </a> 1.8.2
  798. </small></address>
  799. </body>
  800. </html>
粤ICP备19079148号