#include <string>
#include <vector>
+#include "util/currenton.hpp"
+
class PlayerStatus;
-class World
+class World : public Currenton<World>
{
public:
- static World* current()
- {
- return current_;
- }
-
-private:
- static World* current_;
-
-public:
World();
~World();
const std::string& get_level_filename(unsigned int i) const;
const std::string& get_basedir() const;
const std::string& get_title() const;
- /** returns player status */
- PlayerStatus* get_player_status() const { return player_status.get(); }
+
+ PlayerStatus* get_player_status() const { return m_player_status.get(); }
void run();
+ bool hide_from_contribs() const { return m_hide_from_contribs; }
+ bool is_levelset() const { return m_is_levelset; }
+
private:
- std::string worldname;
+ std::string m_worldmap_filename;
struct Level
{
+ Level() : fullpath(), name() {}
std::string fullpath;
std::string name;
};
- std::vector<Level> levels;
- std::string basedir;
- std::string savegame_filename;
- /// squirrel table that saves persistent state (about the world)
- HSQOBJECT state_table;
- HSQOBJECT world_thread;
- std::string title;
- std::string description;
- std::unique_ptr<PlayerStatus> player_status;
+ std::vector<Level> m_levels;
+ std::string m_basedir;
+ std::string m_savegame_filename;
+ HSQOBJECT m_world_thread;
+ std::string m_title;
+ std::string m_description;
+ std::unique_ptr<PlayerStatus> m_player_status;
-public:
- bool hide_from_contribs;
- bool is_levelset;
+ bool m_hide_from_contribs;
+ bool m_is_levelset;
private:
World(const World&) = delete;