Made SpriteParticle's action configurable
[supertux.git] / src / object / scripted_object.cpp
index 009b4a5..ba0d114 100644 (file)
@@ -74,7 +74,9 @@ ScriptedObject::move(float x, float y)
 void
 ScriptedObject::set_pos(float x, float y)
 {
+  printf("SetPos: %f %f\n", x, y);
   bbox.set_pos(Vector(x, y));
+  physic.reset();
 }
 
 float
@@ -121,6 +123,23 @@ ScriptedObject::is_visible()
 }
 
 void
+ScriptedObject::set_solid(bool solid)
+{
+  this->solid = solid;
+  if(solid)
+    flags |= FLAG_SOLID;
+  else
+    flags ^= FLAG_SOLID;
+}
+
+bool
+ScriptedObject::is_solid()
+{
+  return solid;
+}
+
+
+void
 ScriptedObject::set_action(const std::string& animation)
 {
   sprite->set_action(animation);
@@ -171,7 +190,7 @@ ScriptedObject::collision(GameObject& other, const CollisionHit& hit)
 
   if(other.get_flags() & FLAG_SOLID) {
     if(hit.normal.y < 0) { // landed on floor
-      if(physic.get_velocity_y() < 0)
+      if(physic.get_velocity_y() > 0)
         physic.set_velocity_y(0);
     } else if(hit.normal.y > 0) { // bumped against roof
       physic.set_velocity_y(.1);