Made Menu::get_item_by_id(int id) error message sligthly more useful
[supertux.git] / src / object / tilemap.hpp
index 28f9407..da17b5d 100644 (file)
@@ -17,6 +17,8 @@
 #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"
@@ -34,7 +36,7 @@ class TileSet;
 /**
  * This class is responsible for drawing the level tiles
  */
-class TileMap : public GameObject, 
+class TileMap : public GameObject,
                 public ScriptInterface
 {
 public:
@@ -76,7 +78,10 @@ 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;
@@ -85,11 +90,14 @@ public:
     }
   }
 
-  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. */
@@ -185,8 +193,8 @@ private:
   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 */