#include "video/surface.hpp"
#include "util/reader_fwd.hpp"
-class TileSet;
class DrawingContext;
class Tile
{
public:
+ static bool draw_editor_images;
/// bitset for tile attributes
enum {
/** solid tile that is indestructible by Tux */
Rectf rect;
};
+ enum
+ {
+ UNI_DIR_NORTH = 0,
+ UNI_DIR_SOUTH = 1,
+ UNI_DIR_WEST = 2,
+ UNI_DIR_EAST = 3,
+ UNI_DIR_MASK = 3
+ };
+
private:
- const TileSet& tileset;
std::vector<ImageSpec> imagespecs;
- std::vector<Surface*> images;
+ std::vector<SurfacePtr> images;
+ std::vector<ImageSpec> editor_imagespecs;
+ std::vector<SurfacePtr> editor_images;
/// tile attributes
uint32_t attributes;
/** General purpose data attached to a tile (content of a box, type of coin)*/
int data;
- float anim_fps;
+ float fps;
public:
- Tile(const TileSet& tileset);
- Tile(const TileSet& tileset, const std::vector<ImageSpec>& images,
- uint32_t attributes, uint32_t data, float animfps);
+ Tile();
+ Tile(const std::vector<ImageSpec>& images, const std::vector<ImageSpec>& editor_images,
+ uint32_t attributes, uint32_t data, float fps);
~Tile();
/** load Surfaces, if not already loaded */
int getData() const
{ return data; }
+ bool is_slope (void) const
+ {
+ return ((attributes & SLOPE) != 0);
+ }
+
+ bool is_unisolid (void) const
+ {
+ return ((attributes & UNISOLID) != 0);
+ }
+
void print_debug(int id) const;
private: