X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fworldmap%2Ftux.hpp;h=c34a72135621976092e461fc98ccc41d19effa55;hb=01855433649374b48523f5eb7e6cf204391c36ca;hp=173bbecf7e4eaccc3a03b9fb659fcf386f902750;hpb=112f01454123c94f5627200c6819b219026f0af0;p=supertux.git diff --git a/src/worldmap/tux.hpp b/src/worldmap/tux.hpp index 173bbecf7..c34a72135 100644 --- a/src/worldmap/tux.hpp +++ b/src/worldmap/tux.hpp @@ -1,13 +1,11 @@ -// $Id: worldmap.cpp 3327 2006-04-13 15:02:40Z ravu_al_hemio $ -// // SuperTux - A Jump'n Run -// Copyright (C) 2004 Ingo Ruhnke +// Copyright (C) 2004 Ingo Ruhnke // Copyright (C) 2006 Christoph Sommer // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,19 +13,16 @@ // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#ifndef __WORLDMAP_TUX_HPP__ -#define __WORLDMAP_TUX_HPP__ +// along with this program. If not, see . + +#ifndef HEADER_SUPERTUX_WORLDMAP_TUX_HPP +#define HEADER_SUPERTUX_WORLDMAP_TUX_HPP -#include -#include "game_object.hpp" -#include "worldmap.hpp" +#include "worldmap/worldmap.hpp" class Sprite; -namespace WorldMapNS -{ +namespace worldmap { class WorldMap; @@ -37,7 +32,7 @@ public: Direction back_direction; private: WorldMap* worldmap; - std::auto_ptr sprite; + SpritePtr sprite; Controller* controller; Direction input_direction; @@ -48,29 +43,40 @@ private: float offset; bool moving; - void stop(); + bool ghost_mode; - bool canWalk(const Tile* tile, Direction dir); /**< check if we can leave "tile" in direction "dir" */ +private: + void stop(); + bool canWalk(int tile_data, Direction dir); /**< check if we can leave a tile (with given "tile_data") in direction "dir" */ void updateInputDirection(); /**< if controller was pressed, update input_direction */ void tryStartWalking(); /**< try starting to walk in input_direction */ void tryContinueWalking(float elapsed_time); /**< try to continue walking in current direction */ -public: +public: Tux(WorldMap* worldmap_); ~Tux(); - + + void setup(); /**< called prior to first update */ void draw(DrawingContext& context); void update(float elapsed_time); void set_direction(Direction dir); + void set_ghost_mode(bool enabled); + bool get_ghost_mode(); + bool is_moving() const { return moving; } Vector get_pos(); - Vector get_tile_pos() const { return tile_pos; } - void set_tile_pos(Vector p) { tile_pos = p; } + Vector get_tile_pos() const { return tile_pos; } + void set_tile_pos(Vector p) { tile_pos = p; } + +private: + Tux(const Tux&); + Tux& operator=(const Tux&); }; -} +} // namespace worldmap #endif +/* EOF */