merged new collision detection branch back into mainline
[supertux.git] / src / badguy / sspiky.cpp
index 3827ae2..2999535 100644 (file)
@@ -48,28 +48,25 @@ SSpiky::activate()
   sprite->set_action(dir == LEFT ? "sleeping-left" : "sleeping-right");
 }
 
-
-
-HitResponse
-SSpiky::collision_solid(GameObject& , const CollisionHit& hit)
+void
+SSpiky::collision_solid(const CollisionHit& hit)
 {
-  if(fabsf(hit.normal.y) > .5) { // hit floor or roof?
+  if(hit.top || hit.bottom) { // hit floor or roof?
     physic.set_velocity_y(0);
   } else { // hit right or left
     dir = dir == LEFT ? RIGHT : LEFT;
     sprite->set_action(dir == LEFT ? "left" : "right");
     physic.set_velocity_x(-physic.get_velocity_x());
   }
-
-  return CONTINUE;
 }
 
 HitResponse
 SSpiky::collision_badguy(BadGuy& , const CollisionHit& hit)
 {
-  if(state != SSPIKY_WALKING) return CONTINUE;
+  if(state != SSPIKY_WALKING)
+    return CONTINUE;
 
-  if(fabsf(hit.normal.x) > .8) { // left or right
+  if(hit.left || hit.right) {
     dir = dir == LEFT ? RIGHT : LEFT;
     sprite->set_action(dir == LEFT ? "left" : "right");
     physic.set_velocity_x(-physic.get_velocity_x());