#ifndef HEADER_SUPERTUX_OBJECT_TILEMAP_HPP
#define HEADER_SUPERTUX_OBJECT_TILEMAP_HPP
+#include <boost/shared_ptr.hpp>
+
#include "object/path_walker.hpp"
#include "supertux/game_object.hpp"
#include "supertux/script_interface.hpp"
/**
* This class is responsible for drawing the level tiles
*/
-class TileMap : public GameObject,
+class TileMap : public GameObject,
public ScriptInterface
{
public:
Vector get_offset() const
{ return offset; }
- Vector get_movement(bool actual = false) const
+ /** Get the movement of this tilemap. The collision detection code may need a
+ * non-negative y-movement. Passing `false' as the `actual' argument will
+ * provide that. Used exclusively in src/supertux/sector.cpp. */
+ Vector get_movement(bool actual) const
{
if(actual) {
return movement;
}
}
- Path *get_path()
- { return path.get(); }
+ boost::shared_ptr<Path> get_path()
+ { return path; }
+
+ boost::shared_ptr<PathWalker> get_walker()
+ { return walker; }
- void set_offset(const Vector &offset)
- { this->offset = offset; }
+ void set_offset(const Vector &offset_)
+ { this->offset = offset_; }
/* Returns the position of the upper-left corner of
* tile (x, y) in the sector. */
float current_alpha; /**< current tilemap opacity */
float remaining_fade_time; /**< seconds until requested tilemap opacity is reached */
- std::auto_ptr<Path> path;
- std::auto_ptr<PathWalker> walker;
+ boost::shared_ptr<Path> path;
+ boost::shared_ptr<PathWalker> walker;
DrawingContext::Target draw_target; /**< set to LIGHTMAP to draw to lightmap */