X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flevel.h;h=0f81e910da93a81776da0a9bd0a5745cc1895dc6;hb=546364c9567ef212ea9276201facf73f5ada696a;hp=091d9b25d65750bc91b560424a697d1d27f60616;hpb=308f11e38981077626fe0ea9887094f3c28b02f9;p=supertux.git diff --git a/src/level.h b/src/level.h index 091d9b25d..0f81e910d 100644 --- a/src/level.h +++ b/src/level.h @@ -24,38 +24,14 @@ #include #include -#include "screen/texture.h" -#include "lispreader.h" -#include "musicref.h" - -class Tile; - -/** This type holds meta-information about a level-subset. - It could be extended to handle manipulation of subsets. */ -class LevelSubset -{ -public: - LevelSubset(); - ~LevelSubset(); - - static void create(const std::string& subset_name); - void load(const char* subset); - void save(); - - std::string get_level_filename(unsigned int i); - - std::string name; - std::string title; - std::string description; - Surface* image; - int levels; - -private: - void parse(lisp_object_t* cursor); -}; +using namespace SuperTux; class Sector; +namespace SuperTux { +class LispReader; +} + class Level { public: @@ -71,6 +47,7 @@ public: void load(const std::string& filename); void save(const std::string& filename); + static void create(const std::string& filename); const std::string& get_name() const { return name; } @@ -78,10 +55,21 @@ public: const std::string& get_author() const { return author; } + /** Flips the level vertically */ + void do_vertical_flip(); + void add_sector(Sector* sector); Sector* get_sector(const std::string& name); + Sector* get_next_sector(const Sector* sector); + Sector* get_previous_sector(const Sector* sector); + + int get_total_sectors(); + + int get_total_badguys(); + int get_total_coins(); + private: void load_old_format(LispReader& reader); };