X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flevel.hpp;h=889f8f34351ac0226830efcf78df24a3241d0888;hb=41b1a29c10b9c5e799d57356eee0d1701c3828b4;hp=1f988c84fce6359ddccffdbcf79e17c404147592;hpb=07ddaed2a657e4d2a3d038fed223fc5827159caf;p=supertux.git diff --git a/src/level.hpp b/src/level.hpp index 1f988c84f..889f8f343 100644 --- a/src/level.hpp +++ b/src/level.hpp @@ -23,20 +23,35 @@ #include #include - -class Sector; +#include "statistics.hpp" +#include "sector.hpp" namespace lisp { class Lisp; } +class TileSet; + +/** + * Represents a collection of Sectors running in a single GameSession. + * + * Each Sector in turn contains GameObjects, e.g. Badguys and Players. + */ class Level { public: + typedef std::vector Sectors; + std::string name; std::string author; - typedef std::vector Sectors; - Sectors sectors; + std::string contact; + std::string license; + std::string filename; + std::string on_menukey_script; + Sectors sectors; + Statistics stats; + TileSet *tileset; + bool free_tileset; public: Level(); @@ -59,8 +74,21 @@ public: size_t get_sector_count(); Sector* get_sector(size_t num); - int get_total_badguys(); + const TileSet *get_tileset() const + { return tileset; } + int get_total_coins(); + int get_total_badguys(); + + /** Get total number of GameObjects of given type */ + template int get_total_count() + { + int total = 0; + for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i) { + total += (*i)->get_total_count(); + } + return total; + } private: void load_old_format(const lisp::Lisp& reader);