<divclass="line"><aid="l00051"name="l00051"></a><spanclass="lineno"> 51</span><spanclass="comment">// calls remove_player for every used player input slot</span></div>
<divclass="line"><aid="l00085"name="l00085"></a><spanclass="lineno"> 85</span><spanclass="comment">// remove a spawnpoint so it can't be used to spawn players</span></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html">utils::GameRoot3D</a></div><divclass="ttdoc">The root of a game.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:28</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a0fc164bad77a192ff2209eee18e5104b"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a0fc164bad77a192ff2209eee18e5104b">utils::GameRoot3D::grab_singleton</a></div><divclass="ttdeci">void grab_singleton()</div><divclass="ttdoc">Attempt to make 'this' the current singleton instance.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:249</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a105011a591cf09368958d4be350ed352"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a105011a591cf09368958d4be350ed352">utils::GameRoot3D::get_game_state</a></div><divclass="ttdeci">GameState * get_game_state() const</div><divclass="ttdoc">Get the current active game state.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:203</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a116245a9c4e7edf53ec03c6fe78c8462"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a116245a9c4e7edf53ec03c6fe78c8462">utils::GameRoot3D::spawn_points</a></div><divclass="ttdeci">gd::Vector< SpawnPoint3D * > spawn_points</div><divclass="ttdoc">all currently available spawn points.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:136</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a13e110d60dffd924248af9c3f6943706"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a13e110d60dffd924248af9c3f6943706">utils::GameRoot3D::has_singleton</a></div><divclass="ttdeci">static bool has_singleton()</div><divclass="ttdoc">returns true if there is currently a singleton active for GameRoot</div><divclass="ttdef"><b>Definition</b> game_root.cpp:35</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a1937044fe05a903610308f8d382de975"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a1937044fe05a903610308f8d382de975">utils::GameRoot3D::register_spawn_point</a></div><divclass="ttdeci">void register_spawn_point(SpawnPoint3D *spawn_point)</div><divclass="ttdoc">Register a spawnpoint for use when spawning players.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:146</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a27492f37140fa8af6c6955f2147f5521"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a27492f37140fa8af6c6955f2147f5521">utils::GameRoot3D::get_player</a></div><divclass="ttdeci">IPlayer * get_player(uint32_t id)</div><divclass="ttdoc">Get the player instance associated with id.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:211</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a3e74ac9841575d9a915cf7ac6735b42b"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a3e74ac9841575d9a915cf7ac6735b42b">utils::GameRoot3D::spawn_player</a></div><divclass="ttdeci">IPlayer * spawn_player(uint32_t id)</div><divclass="ttdoc">Spawn a player to be associated with id.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:275</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a4053b12af23cef53eb294729f1cb3aa8"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a4053b12af23cef53eb294729f1cb3aa8">utils::GameRoot3D::unload_all_levels</a></div><divclass="ttdeci">void unload_all_levels()</div><divclass="ttdoc">Unload all currently loaded levels.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:133</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a453c8aa3920d7d0adaf2490c63a7d92c"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a453c8aa3920d7d0adaf2490c63a7d92c">utils::GameRoot3D::replace_levels</a></div><divclass="ttdeci">void replace_levels(gd::Ref< gd::PackedScene > level)</div><divclass="ttdoc">Replace all currently loaded levels with a new level.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:141</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a623230c72ced578d7be1b9141b54fbd4"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a623230c72ced578d7be1b9141b54fbd4">utils::GameRoot3D::rng</a></div><divclass="ttdeci">gd::RandomNumberGenerator rng</div><divclass="ttdoc">Global random number generator.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:134</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a6c2a1aa2c35808a1b003ae79eac348c2"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a6c2a1aa2c35808a1b003ae79eac348c2">utils::GameRoot3D::set_game_mode</a></div><divclass="ttdeci">void set_game_mode(gd::Ref< GameMode > prototype)</div><divclass="ttdoc">Override the current gamemode.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:175</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a77e4726bb8fec522669cbb2c068e47d9"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a77e4726bb8fec522669cbb2c068e47d9">utils::GameRoot3D::is_valid_level</a></div><divclass="ttdeci">static bool is_valid_level(gd::Ref< gd::PackedScene >&level)</div><divclass="ttdoc">Check if a scene is a valid level.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:299</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a800421c3b82947156eebcbf730a680db"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a800421c3b82947156eebcbf730a680db">utils::GameRoot3D::levels</a></div><divclass="ttdeci">gd::HashMap< gd::StringName, Level3D * > levels</div><divclass="ttdoc">all currently active levels identified by their resource paths.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:135</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a85eee9cb258971abe9fe8577314b2556"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a85eee9cb258971abe9fe8577314b2556">utils::GameRoot3D::player_input_connected</a></div><divclass="ttdeci">void player_input_connected()</div><divclass="ttdoc">Instantiate a new PlayerInput.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:53</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a865e6d9fe4f9422c0fb974bd6b1222ce"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a865e6d9fe4f9422c0fb974bd6b1222ce">utils::GameRoot3D::initialize_player</a></div><divclass="ttdeci">bool initialize_player(IPlayer *player, uint32_t id)</div><divclass="ttdoc">Initialize and register a player instance.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:84</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a896b4e4d3b9465a83a10249dbd559662"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a896b4e4d3b9465a83a10249dbd559662">utils::GameRoot3D::get_game_mode</a></div><divclass="ttdeci">GameMode * get_game_mode() const</div><divclass="ttdoc">get the current active game mode.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:199</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_a89953130655a618aefa8f3ea0db63a53"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#a89953130655a618aefa8f3ea0db63a53">utils::GameRoot3D::remove_player</a></div><divclass="ttdeci">void remove_player(uint32_t player_id)</div><divclass="ttdoc">Force-disconnect a player.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:60</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_aa9ed453a0b416641dfa5154a0b69c79e"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#aa9ed453a0b416641dfa5154a0b69c79e">utils::GameRoot3D::get_levels</a></div><divclass="ttdeci">gd::HashMap< gd::StringName, Level3D * >& get_levels()</div><divclass="ttdoc">Returns all currently active levels.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:207</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_ab3895b9b48c4646a876e188d226c5723"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#ab3895b9b48c4646a876e188d226c5723">utils::GameRoot3D::find_empty_player_slot</a></div><divclass="ttdeci">uint32_t find_empty_player_slot() const</div><divclass="ttdoc">Find a Player Input device not yet associated with a player.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:266</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_abb25b7613e1c7cd4f056020e6990d8e1"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#abb25b7613e1c7cd4f056020e6990d8e1">utils::GameRoot3D::game_mode</a></div><divclass="ttdeci">gd::Ref< GameMode > game_mode</div><divclass="ttdoc">current active gamemode.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:137</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_abf16d0f3b8030b758942397dcff1d46a"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#abf16d0f3b8030b758942397dcff1d46a">utils::GameRoot3D::first_boot_level</a></div><divclass="ttdeci">gd::Ref< gd::PackedScene > first_boot_level</div><divclass="ttdoc">The level to boot into on startup.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:144</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_acbec3f7b39c8c991a725e611dd8b869e"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#acbec3f7b39c8c991a725e611dd8b869e">utils::GameRoot3D::load_level</a></div><divclass="ttdeci">Level3D * load_level(gd::Ref< gd::PackedScene > level)</div><divclass="ttdoc">shorthand for load_level(level, Transform3D())</div><divclass="ttdef"><b>Definition</b> game_root.cpp:102</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_acf48cbe3b2b6dd064cd1665ea8df2b9a"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#acf48cbe3b2b6dd064cd1665ea8df2b9a">utils::GameRoot3D::players</a></div><divclass="ttdeci">gd::HashMap< uint32_t, gd::Pair< PlayerInput *, IPlayer * >> players</div><divclass="ttdoc">all players by id by input device.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:132</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_ad1c9387dee7919a8ab5d60b19cba2140"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#ad1c9387dee7919a8ab5d60b19cba2140">utils::GameRoot3D::get_singleton</a></div><divclass="ttdeci">static GameRoot3D * get_singleton()</div><divclass="ttdoc">get the current active singleton instance of GameRoot</div><divclass="ttdef"><b>Definition</b> game_root.cpp:31</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_ad53d50b5b35e4c13bf84f2d9c0f45a0b"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#ad53d50b5b35e4c13bf84f2d9c0f45a0b">utils::GameRoot3D::load_level_at</a></div><divclass="ttdeci">Level3D * load_level_at(gd::Ref< gd::PackedScene > level, gd::Transform3D at)</div><divclass="ttdoc">Load a level, only works if 'level' is a valid scene where the root Node can cast to 'Level3D'.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:106</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_ad62b2be46770ba99aa6c2a7800c52aa8"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#ad62b2be46770ba99aa6c2a7800c52aa8">utils::GameRoot3D::game_state_prototype</a></div><divclass="ttdeci">gd::Ref< GameState > game_state_prototype</div><divclass="ttdoc">The default game state data used for game_state if no save data is available.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:145</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_adc4455c11d39f8a267091f29ead441ee"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#adc4455c11d39f8a267091f29ead441ee">utils::GameRoot3D::release_singleton</a></div><divclass="ttdeci">void release_singleton()</div><divclass="ttdoc">Attempt to stop being the active singleton instance.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:258</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_add087bf071383383e68e919173670c47"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#add087bf071383383e68e919173670c47">utils::GameRoot3D::reset_game_mode</a></div><divclass="ttdeci">void reset_game_mode()</div><divclass="ttdoc">Un-set game mode.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:98</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_af176a558f2a3b972c970087c2a1e3d7b"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#af176a558f2a3b972c970087c2a1e3d7b">utils::GameRoot3D::get_players</a></div><divclass="ttdeci">gd::Vector< IPlayer * > get_players()</div><divclass="ttdoc">Get all players in a list.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:215</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_af34016620adcdc2654358b463769a85f"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#af34016620adcdc2654358b463769a85f">utils::GameRoot3D::level_unloaded</a></div><divclass="ttdeci">void level_unloaded(gd::StringName scene_path)</div><divclass="ttdoc">Callback for a level exiting the tree.</div><divclass="ttdef"><b>Definition</b> game_root.cpp:295</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_af508cc9852b123ea37b94651da0f3c19"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#af508cc9852b123ea37b94651da0f3c19">utils::GameRoot3D::next_player_id</a></div><divclass="ttdeci">uint32_t next_player_id</div><divclass="ttdoc">Next available player ID.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:131</div></div>
<divclass="ttc"id="aclassutils_1_1GameRoot3D_html_af73d3a598b72fcdc7dce372ea3af6e44"><divclass="ttname"><ahref="classutils_1_1GameRoot3D.html#af73d3a598b72fcdc7dce372ea3af6e44">utils::GameRoot3D::game_state</a></div><divclass="ttdeci">gd::Ref< GameState > game_state</div><divclass="ttdoc">Active game state.</div><divclass="ttdef"><b>Definition</b> game_root.hpp:142</div></div>
<divclass="ttc"id="aclassutils_1_1GameState_html"><divclass="ttname"><ahref="classutils_1_1GameState.html">utils::GameState</a></div><divclass="ttdoc">Parent class for saved game state.</div><divclass="ttdef"><b>Definition</b> game_state.hpp:11</div></div>
<divclass="ttc"id="aclassutils_1_1IPlayer_html"><divclass="ttname"><ahref="classutils_1_1IPlayer.html">utils::IPlayer</a></div><divclass="ttdoc">Interface required for player nodes.</div><divclass="ttdef"><b>Definition</b> player.hpp:19</div></div>
<divclass="ttc"id="aclassutils_1_1Level3D_html"><divclass="ttname"><ahref="classutils_1_1Level3D.html">utils::Level3D</a></div><divclass="ttdoc">3D level root to be used with GameRoot3D.</div><divclass="ttdef"><b>Definition</b> level.hpp:14</div></div>
<divclass="ttc"id="aclassutils_1_1SpawnPoint3D_html"><divclass="ttname"><ahref="classutils_1_1SpawnPoint3D.html">utils::SpawnPoint3D</a></div><divclass="ttdoc">A location in the game world that the player can spawn at.</div><divclass="ttdef"><b>Definition</b> spawn_point.hpp:13</div></div>