X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fworldmap.h;h=a96c4ff27b9592714e1cfbccd5305b97e6c7956c;hb=997685a947eaa0b269873e5956908b734cde1d76;hp=9968ce048b505fdb51901f9814ca783dfa9e9f31;hpb=e59a8e5e758978341d5410f09b705c4e969dc9a0;p=supertux.git diff --git a/src/worldmap.h b/src/worldmap.h index 9968ce048..a96c4ff27 100644 --- a/src/worldmap.h +++ b/src/worldmap.h @@ -17,8 +17,8 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#ifndef HEADER_WORLDMAP_HXX -#define HEADER_WORLDMAP_HXX +#ifndef SUPERTUX_WORLDMAP_H +#define SUPERTUX_WORLDMAP_H #include #include @@ -48,7 +48,7 @@ struct Point struct Tile { - texture_type sprite; + Surface* sprite; // Directions in which Tux is allowed to walk from this tile bool north; @@ -83,7 +83,7 @@ class Tux { private: WorldMap* worldmap; - texture_type sprite; + Surface* sprite; Direction input_direction; Direction direction; @@ -97,12 +97,13 @@ private: public: Tux(WorldMap* worldmap_); - void draw(); + void draw(const Point& offset); void update(float delta); void set_direction(Direction d) { input_direction = d; } bool is_moving() const { return moving; } + Point get_pos(); Point get_tile_pos() const { return tile_pos; } void set_tile_pos(Point p) { tile_pos = p; } }; @@ -113,7 +114,10 @@ class WorldMap private: Tux* tux; - texture_type level_sprite; + Surface* level_sprite; + Surface* leveldot_green; + Surface* leveldot_red; + bool quit; std::string name; @@ -128,6 +132,7 @@ private: int x; int y; std::string name; + bool solved; }; typedef std::vector Levels; @@ -138,6 +143,9 @@ private: Direction input_direction; bool enter_level; + Point offset; + + void draw_status(); public: WorldMap(); ~WorldMap(); @@ -153,7 +161,7 @@ public: void update(); /** Draw one frame */ - void draw(); + void draw(const Point& offset); Point get_next_tile(Point pos, Direction direction); Tile* at(Point pos); @@ -161,6 +169,8 @@ public: /** Check if it is possible to walk from \a pos into \a direction, if possible, write the new position to \a new_pos */ bool path_ok(Direction direction, Point pos, Point* new_pos); + + void savegame(const std::string& filename); }; } // namespace WorldMapNS @@ -171,4 +181,4 @@ void worldmap_run(); /* Local Variables: */ /* mode:c++ */ -/* End */ +/* End: */