X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Ftile.h;h=f943a2395be5ca826a1275396cb0d02d2c91472c;hb=6e843b1780f62f45b7021bd8c38181aa211588ee;hp=978ed3a5209a83f081294c5855d601e16e48a3df;hpb=308f11e38981077626fe0ea9887094f3c28b02f9;p=supertux.git diff --git a/src/tile.h b/src/tile.h index 978ed3a52..f943a2395 100644 --- a/src/tile.h +++ b/src/tile.h @@ -21,17 +21,15 @@ #ifndef TILE_H #define TILE_H -#include -#include #include +#include "SDL.h" +#include "video/surface.h" -#include "screen/texture.h" -#include "globals.h" -#include "lispreader.h" -#include "setup.h" -#include "vector.h" +using namespace SuperTux; +namespace SuperTux { class LispReader; +} /** Tile Class @@ -43,9 +41,9 @@ public: ~Tile(); /// parses the tile and returns it's id number - int read(LispReader& reader); + void read(LispReader& reader); - int id; + unsigned int id; std::vector images; std::vector editor_images; @@ -72,7 +70,9 @@ public: * if data is 0 then the endsequence should be triggered, if data is 1 * then we can finish the level instantly. */ - GOAL = 0x0100 + GOAL = 0x0100, + /** slope tile */ + SLOPE = 0x0200 }; /** tile attributes */ @@ -85,10 +85,10 @@ public: been collected or jumped at */ int next_tile; - int anim_speed; - - /** Draw a tile on the screen: */ - static void draw(const Vector& pos, unsigned int c, Uint8 alpha = 255); + float anim_fps; + + /** Draw a tile on the screen */ + void draw(DrawingContext& context, const Vector& pos, int layer) const; /// returns the width of the tile in pixels int getWidth() const @@ -107,53 +107,6 @@ public: } }; -struct TileGroup -{ - friend bool operator<(const TileGroup& lhs, const TileGroup& rhs) - { return lhs.name < rhs.name; }; - friend bool operator>(const TileGroup& lhs, const TileGroup& rhs) - { return lhs.name > rhs.name; }; - - std::string name; - std::vector tiles; -}; - -class TileManager -{ - private: - TileManager(); - ~TileManager(); - - std::vector tiles; - static TileManager* instance_ ; - static std::set* tilegroups_; - void load_tileset(std::string filename); - - std::string current_tileset; - - public: - static TileManager* instance() - { return instance_ ? instance_ : instance_ = new TileManager(); } - static void destroy_instance() - { delete instance_; instance_ = 0; } - - void draw_tile(DrawingContext& context, unsigned int id, - const Vector& pos, int layer); - - static std::set* tilegroups() { if(!instance_) { instance_ = new TileManager(); } return tilegroups_ ? tilegroups_ : tilegroups_ = new std::set; } - Tile* get(unsigned int id) { - if(id < tiles.size()) - { - return tiles[id]; - } - else - { - // Never return 0, but return the 0th tile instead so that - // user code doesn't have to check for NULL pointers all over - // the place - return tiles[0]; - } - } -}; - #endif + +/* EOF */