X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Ftilemap.hpp;h=d6ee518deb78f55bb410962451afaae8517375a0;hb=a98f7cee9f6a2593c0e1f3442800f159bad410df;hp=e80fb733567550ddc5e93101f3c5a0bc07cbac1e;hpb=5fbb18dfd418f0ffc99d757f676504b9ed1aea71;p=supertux.git diff --git a/src/object/tilemap.hpp b/src/object/tilemap.hpp index e80fb7335..d6ee518de 100644 --- a/src/object/tilemap.hpp +++ b/src/object/tilemap.hpp @@ -39,6 +39,7 @@ class Lisp; class Level; class TileManager; class Tile; +class TileSet; /** * This class is reponsible for drawing the level tiles @@ -46,9 +47,10 @@ class Tile; class TileMap : public GameObject, public Serializable, public ScriptInterface { public: - TileMap(); - TileMap(const lisp::Lisp& reader, TileManager* tile_manager = 0); - TileMap(std::string name, int z_pos, bool solid_, size_t width_, size_t height_); + TileMap(const TileSet *tileset); + TileMap(const lisp::Lisp& reader); + TileMap(const TileSet *tileset, std::string name, int z_pos, bool solid_, + size_t width_, size_t height_); virtual ~TileMap(); virtual void write(lisp::Writer& writer); @@ -109,6 +111,10 @@ public: const Tile* get_tile(int x, int y) const; /// returns tile at position pos (in world coordinates) const Tile* get_tile_at(const Vector& pos) const; + /// returns tile in row y and column y (of the tilemap) + uint32_t get_tile_id(int x, int y) const; + /// returns tile at position pos (in world coordinates) + uint32_t get_tile_id_at(const Vector& pos) const; void change(int x, int y, uint32_t newtile); @@ -117,11 +123,6 @@ public: /// changes all tiles with the given ID void change_all(uint32_t oldtile, uint32_t newtile); - TileManager* get_tilemanager() const - { - return tilemanager; - } - void set_drawing_effect(DrawingEffect effect) { drawing_effect = effect; @@ -149,11 +150,11 @@ public: float get_alpha(); private: + const TileSet *tileset; + typedef std::vector Tiles; Tiles tiles; -private: - TileManager* tilemanager; bool solid; float speed_x; float speed_y;