//  // // ##### # # #### -= Nuclex Library =-  // //  # ## ## # # GameServer.h - Game management  // //  # ### # #  // //  # ### # # Manages the overall game state and objects  // //  # ## ## # #  // //  # # # #### R1 (C)2002-2004 Markus Ewald -> License.txt  // //  // #ifndef TOXID_GAME_GAMESERVER_H #define TOXID_GAME_GAMESERVER_H #include "Toxid/Toxid.h" #include "Toxid/Game/Player.h" #include "Nuclex/Storage/Stream.h" #include namespace Toxid { class Map; class Planet; //  // //  Toxid::GameServer  // //  // class GameServer { public: class PlanetEnumerator; /// Constructor GameServer(); /// Destructor ~GameServer(); // // GameServer implementation // public: /// Add episode to list of episodes void addPlanet(const string &sName, const shared_ptr &spPlanet); /// Remove episode from list void clearPlanets(); /// Enumerate all episodes shared_ptr enumPlanets(); /// Start a new game void startGame(const string &sPlanet); /// Load game from stream void loadGame(const shared_ptr &spSource); /// Save game to stream void saveGame(const shared_ptr &spDestination); /// Restart the current map void restartMap(); /// Get player Player &getPlayer() { return m_Player; } /// Get active map (may return NULL) const shared_ptr &getActiveMap() { return m_spActiveMap; } private: typedef std::map > PlanetMap; PlanetMap m_Planets; ///< All episodes Player m_Player; ///< The player shared_ptr m_spActiveMap; ///< Current map }; } // namespace Toxid #endif // TOXID_GAME_GAMESERVER_H