#include <vector>
#include <stdint.h>
-#include "math/rect.hpp"
+#include "math/rectf.hpp"
#include "video/surface.hpp"
#include "util/reader_fwd.hpp"
class Tile
{
public:
- friend class TileSetParser;
-
+ static bool draw_editor_images;
/// bitset for tile attributes
enum {
/** solid tile that is indestructible by Tux */
};
struct ImageSpec {
- ImageSpec(const std::string& newfile, const Rect& newrect)
+ ImageSpec(const std::string& newfile, const Rectf& newrect)
: file(newfile), rect(newrect)
{ }
std::string file;
- Rect rect;
+ Rectf rect;
};
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, std::vector<std::string> images, Rect rect,
- uint32_t attributes, uint32_t data, float animfps);
+ Tile(const TileSet& tileset, 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; }
- /// returns the width of the tile in pixels
- int getWidth() const
- {
- if(!images.size())
- {
- return 0;
- }
- else
- {
- return (int) images[0]->get_width();
- }
- }
-
- /// returns the height of the tiles in pixels
- int getHeight() const
- {
- if(!images.size())
- {
- return 0;
- }
- else
- {
- return (int) images[0]->get_height();
- }
- }
-
void print_debug(int id) const;
private: