some new GhostTree stuff
[supertux.git] / src / sector.cpp
index 29a0aa1..aa95d7c 100644 (file)
@@ -889,9 +889,12 @@ void check_collisions(collision::Constraints* constraints,
   if(!collision::intersects(r1, r2))
     return;
 
+  MovingObject *moving_object = dynamic_cast<MovingObject*> (object);
   CollisionHit dummy;
   if(other != NULL && !other->collides(*object, dummy))
     return;
+  if(moving_object != NULL && !moving_object->collides(*other, dummy))
+    return;
 
   // calculate intersection
   float itop = r1.get_bottom() - r2.get_top();
@@ -1300,9 +1303,9 @@ Sector::handle_collisions()
         get_hit_normal(moving_object->dest, moving_object_2->dest,
                        hit, normal);
         if(!moving_object->collides(*moving_object_2, hit))
-          return;
+          continue;
         if(!moving_object_2->collides(*moving_object, hit))
-          return;
+          continue;
 
         moving_object->collision(*moving_object_2, hit);
         moving_object_2->collision(*moving_object, hit);