X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fworldmap.h;h=c2a7154a887bfe311047cff41687c11958f6d970;hb=599adb53dbdfdcc4ac4e4dfab1e0868ff0412110;hp=9f0e08525b7c216899a28e407f5cbce6a081fda3;hpb=bc0492a3da607f7ee777eff4e78aaa2dd95a50e0;p=supertux.git diff --git a/src/worldmap.h b/src/worldmap.h index 9f0e08525..c2a7154a8 100644 --- a/src/worldmap.h +++ b/src/worldmap.h @@ -46,8 +46,12 @@ struct Point int y; }; -struct Tile +class Tile { +public: + Tile(); + ~Tile(); + Surface* sprite; // Directions in which Tux is allowed to walk from this tile @@ -58,6 +62,10 @@ struct Tile /** Stop on this tile or walk over it? */ bool stop; + + /** When set automatically turn directions when walked over such a + tile (ie. walk smoothly a curve) */ + bool auto_walk; }; class TileManager @@ -65,13 +73,11 @@ class TileManager private: typedef std::vector Tiles; Tiles tiles; - static TileManager* instance_ ; - TileManager(); public: - static TileManager* instance() { return instance_ ? instance_ : instance_ = new TileManager(); } + TileManager(); + ~TileManager(); - void load(); Tile* get(int i); }; @@ -89,7 +95,9 @@ public: Direction back_direction; private: WorldMap* worldmap; - Surface* sprite; + Surface* largetux_sprite; + Surface* firetux_sprite; + Surface* smalltux_sprite; Direction input_direction; Direction direction; @@ -102,6 +110,7 @@ private: void stop(); public: Tux(WorldMap* worldmap_); + ~Tux(); void draw(const Point& offset); void update(float delta); @@ -133,6 +142,8 @@ private: int width; int height; + TileManager* tile_manager; + public: struct Level {