X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Ftile_manager.h;h=3e9052f671cc026f125bb41489dfacd0160e15f2;hb=e5f4c975097d8a04bb375b0ef57eeb1618907e9c;hp=a72777b13e065974a629df4249f25b688cfa8d99;hpb=4768775a296265eea1afae5cf971b1706fc049fd;p=supertux.git diff --git a/src/tile_manager.h b/src/tile_manager.h index a72777b13..3e9052f67 100644 --- a/src/tile_manager.h +++ b/src/tile_manager.h @@ -24,6 +24,9 @@ #include #include #include +#include +#include +#include class Tile; @@ -44,9 +47,11 @@ class TileManager TileManager(); ~TileManager(); - std::vector tiles; + typedef std::vector Tiles; + Tiles tiles; + static TileManager* instance_ ; - static std::set* tilegroups_; + std::set tilegroups; void load_tileset(std::string filename); std::string current_tileset; @@ -57,27 +62,20 @@ class TileManager static void destroy_instance() { delete instance_; instance_ = 0; } - void draw_tile(DrawingContext& context, unsigned int id, - const Vector& pos, int layer); - - static std::set* tilegroups() { if(!instance_) { instance_ = new TileManager(); } return tilegroups_ ? tilegroups_ : tilegroups_ = new std::set; } - - unsigned int total_ids() - { return tiles.size(); } + const std::set& get_tilegroups() const + { + return tilegroups; + } - Tile& get(unsigned int id) { + const Tile* get(uint32_t id) const + { + assert(id < tiles.size()); + return tiles[id]; + } - if(id < tiles.size()) - { - return *tiles[id]; - } - else - { - // Never return 0, but return the 0th tile instead so that - // user code doesn't have to check for NULL pointers all over - // the place - return *tiles[0]; - } + uint32_t get_max_tileid() const + { + return tiles.size(); } };