- void draw_tile(DrawingContext& context, unsigned int id,
- const Vector& pos, int layer);
-
- static std::set<TileGroup>* tilegroups() { if(!instance_) { instance_ = new TileManager(); } return tilegroups_ ? tilegroups_ : tilegroups_ = new std::set<TileGroup>; }
+public:
+ TileManager(const std::string& filename);
+ ~TileManager();
+
+ const std::set<TileGroup>& get_tilegroups() const
+ {
+ return tilegroups;
+ }
+
+ const Tile* get(uint32_t id) const
+ {
+ assert(id < tiles.size());
+ Tile* tile = tiles[id];
+ if(!tile) {
+ std::cout << "TileManager: Invalid tile: " << id << std::endl;
+ return tiles[0];
+ }