#include <stdint.h>
#include "video/surface.hpp"
#include "math/rect.hpp"
-#include "lisp/lisp.hpp"
+namespace lisp { class Lisp; }
+
+class TileSet;
class DrawingContext;
/**
};
private:
- unsigned int id;
-
+ const TileSet *tileset;
std::vector<ImageSpec> imagespecs;
- std::vector<Surface*> images;
+ std::vector<Surface*> images;
/// tile attributes
uint32_t attributes;
/** Draw a tile on the screen */
void draw(DrawingContext& context, const Vector& pos, int z_pos) const;
- unsigned int getID() const
- { return id; }
-
uint32_t getAttributes() const
{ return attributes; }
}
protected:
- friend class TileManager;
- Tile();
- Tile(unsigned int id, Uint32 attributes, const ImageSpec& imagespec);
+ friend class TileSet;
+ Tile(const TileSet *tileset);
+ Tile(const TileSet *tileset, Uint32 attributes, const ImageSpec& imagespec);
- void load_images(const std::string& tilesetpath);
+ void load_images();
/// parses the tile and returns it's id number
- void parse(const lisp::Lisp& reader);
+ uint32_t parse(const lisp::Lisp& reader);
void parse_images(const lisp::Lisp& cur);
};