-Apply door fix to hatch as well (evil code duplication here...)
[supertux.git] / src / badguy / jumpy.cpp
index 4d32164..4059219 100644 (file)
@@ -3,6 +3,8 @@
 #include "jumpy.h"
 
 static const float JUMPSPEED=600;
+static const float JUMPY_MID_TOLERANCE=8;
+static const float JUMPY_LOW_TOLERANCE=2;
 
 Jumpy::Jumpy(const lisp::Lisp& reader)
 {
@@ -56,7 +58,13 @@ Jumpy::active_action(float elapsed_time)
   dir = Sector::current()->player->get_pos().x > get_pos().x
     ? RIGHT : LEFT;
     //FIXME: add middle and up here
-  sprite->set_action(dir == LEFT ? "left-down" : "right-down");
+  
+  if ( get_pos().y >= (start_position.y - JUMPY_MID_TOLERANCE) )
+    sprite->set_action(dir == LEFT ? "left-middle" : "right-middle");
+  else if ( get_pos().y >= (start_position.y - JUMPY_LOW_TOLERANCE) )
+    sprite->set_action(dir == LEFT ? "left-down" : "right-down");
+  else
+    sprite->set_action(dir == LEFT ? "left-up" : "right-up");
 }
 
 IMPLEMENT_FACTORY(Jumpy, "jumpy")