X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fcollision_grid.h;h=7822c31e3b4b359cbc7ef6930faa12c15f5fe6fe;hb=abf179b33deb4040bb583e29207eaf1dd2ee0780;hp=fe3f8314f3f360f8ea2c0e729c5813efc1e6a856;hpb=62ff7f7776875e9389d10ae2e7b6348e9e5cb9c7;p=supertux.git diff --git a/src/collision_grid.h b/src/collision_grid.h index fe3f8314f..7822c31e3 100644 --- a/src/collision_grid.h +++ b/src/collision_grid.h @@ -20,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; @@ -45,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 GridEntries; GridEntries grid; @@ -58,6 +60,7 @@ private: float height; float cell_width; float cell_height; + int iterator_timestamp; }; extern CollisionGrid* bla;