X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsupertux%2Fworld.hpp;h=6ce0ab17b332856ff377214e3dae73b3b31a1edd;hb=b1b2c3c00fab1d4ac6af6e133b488b40e96ad877;hp=f9764a4a1e23b27823f51d0824716a74e2c6b5bf;hpb=08d3c0e7410d7dde59d2d981c77ef7ce1090b80d;p=supertux.git diff --git a/src/supertux/world.hpp b/src/supertux/world.hpp index f9764a4a1..6ce0ab17b 100644 --- a/src/supertux/world.hpp +++ b/src/supertux/world.hpp @@ -17,57 +17,51 @@ #ifndef HEADER_SUPERTUX_SUPERTUX_WORLD_HPP #define HEADER_SUPERTUX_SUPERTUX_WORLD_HPP +#include #include #include #include -#include "util/currenton.hpp" +#include "supertux/savegame.hpp" -class PlayerStatus; - -class World : public Currenton +class World { -public: +private: World(); - ~World(); - void set_savegame_filename(const std::string& filename); - void load(const std::string& filename); + void load_(const std::string& directory); + +public: + /** + Load a World - void save_state(); - void load_state(); + @param directory Directory containing the info file, e.g. "levels/world1" + */ + static std::unique_ptr load(const std::string& directory); - unsigned int get_num_levels() const; - int get_num_solved_levels() const; +public: + ~World(); - const std::string& get_level_filename(unsigned int i) const; - const std::string& get_basedir() const; - const std::string& get_title() const; + std::string get_basedir() const; + std::string get_title() const; - PlayerStatus* get_player_status() const { return player_status.get(); } + bool hide_from_contribs() const { return m_hide_from_contribs; } - void run(); + bool is_levelset() const { return m_is_levelset; } + bool is_worldmap() const { return !m_is_levelset; } + + std::string get_worldmap_filename() const { return m_worldmap_filename; } + std::string get_savegame_filename() const { return m_savegame_filename; } private: + std::string m_basedir; std::string m_worldmap_filename; - struct Level - { - Level() : fullpath(), name() {} - std::string fullpath; - std::string name; - }; - - std::vector levels; - std::string basedir; - std::string savegame_filename; - HSQOBJECT world_thread; - std::string title; - std::string description; - std::unique_ptr player_status; + std::string m_savegame_filename; -public: - bool hide_from_contribs; - bool is_levelset; + std::string m_title; + std::string m_description; + bool m_hide_from_contribs; + bool m_is_levelset; private: World(const World&) = delete;