00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef HEADER_SUPERTUX_SUPERTUX_TILE_SET_HPP
00018 #define HEADER_SUPERTUX_SUPERTUX_TILE_SET_HPP
00019
00020 #include <stdint.h>
00021
00022 #include "supertux/tile.hpp"
00023 #include "util/log.hpp"
00024
00025 class Tile;
00026
00027 class TileSet
00028 {
00029 private:
00030 typedef std::vector<Tile*> Tiles;
00031 Tiles tiles;
00032
00033 bool tiles_loaded;
00034
00035 friend class TileManager;
00036 friend class Tile;
00037 friend class TileSetParser;
00038
00039 TileSet(const std::string& filename);
00040
00041 public:
00042 TileSet();
00043 ~TileSet();
00044
00045 void merge(const TileSet *tileset, uint32_t start, uint32_t end,
00046 uint32_t offset);
00047
00048 const Tile* get(const uint32_t id) const
00049 {
00050 assert(id < tiles.size());
00051 Tile* tile = tiles[id];
00052 if(!tile) {
00053 log_warning << "Invalid tile: " << id << std::endl;
00054 return tiles[0];
00055 }
00056
00057 tile->load_images();
00058
00059 return tile;
00060 }
00061
00062 uint32_t get_max_tileid() const
00063 {
00064 return tiles.size();
00065 }
00066 };
00067
00068 #endif
00069
00070