* The "time needed" statistic now works again. You might need to delete your savegame...
[supertux.git] / src / object / powerup.cpp
index 9d3ff93..ad0f3df 100644 (file)
@@ -36,9 +36,13 @@ PowerUp::PowerUp(const lisp::Lisp& lisp)
   lisp.get("y", bbox.p1.y);
   lisp.get("sprite", sprite_name);
   lisp.get("script", script);
+  no_physics = false;
+  lisp.get("disable-physics", no_physics);
   bbox.set_size(32, 32);   
   sprite = sprite_manager->create(sprite_name);
   physic.enable_gravity(true);
+
+  set_group(COLGROUP_MOVING);
 }
 
 PowerUp::~PowerUp()
@@ -53,6 +57,8 @@ PowerUp::collision(GameObject& other, const CollisionHit& hit)
     if(fabsf(hit.normal.y) > .5) { // roof or ground
       physic.set_velocity_y(0);
     } else { // bumped left or right
+      printf("Normal: %f %f\n", hit.normal.x, hit.normal.y);
+      printf("LRbounce, new speed. %f\n", physic.get_velocity_x());
       physic.set_velocity_x(-physic.get_velocity_x());
     }
 
@@ -89,7 +95,8 @@ PowerUp::collision(GameObject& other, const CollisionHit& hit)
 void
 PowerUp::update(float elapsed_time)
 {
-  movement = physic.get_movement(elapsed_time);
+  if (!no_physics)
+    movement = physic.get_movement(elapsed_time);
 }
 
 void