new editor image for infoblock
[supertux.git] / src / collision_grid.h
index 09cc87a..7822c31 100644 (file)
@@ -6,6 +6,8 @@
 
 using namespace SuperTux;
 
+class CollisionGridIterator;
+
 /**
  * A rectangular grid to keep track of all moving game objects. It allows fast
  * queries for all objects in a rectangular area.
@@ -18,11 +20,12 @@ public:
 
   void add_object(MovingObject* object);
   void remove_object(MovingObject* object);
-  void move_object(MovingObject* object);
 
   void check_collisions();
 
 private:
+  friend class CollisionGridIterator;
+  
   struct ObjectWrapper
   {
     MovingObject* object;
@@ -43,9 +46,10 @@ private:
     ObjectWrapper* object_wrapper;
   };
 
-  void remove_object_from_gridcell(int gridcell, MovingObject* object);
+  void remove_object_from_gridcell(int gridcell, ObjectWrapper* wrapper);
   void collide_object(ObjectWrapper* wrapper);
   void collide_object_object(ObjectWrapper* wrapper, ObjectWrapper* wrapper2);
+  void move_object(ObjectWrapper* wrapper);
   
   typedef std::vector<GridEntry*> GridEntries;
   GridEntries grid;
@@ -56,6 +60,7 @@ private:
   float height;
   float cell_width;
   float cell_height;
+  int iterator_timestamp;
 };
 
 extern CollisionGrid* bla;