src/PhysicsObject.cc
changeset 370 39e59dd36b6e
parent 336 ef598a3dc1b7
child 408 e6cfc44266af
--- a/src/PhysicsObject.cc	Tue Dec 09 04:49:33 2008 +0000
+++ b/src/PhysicsObject.cc	Mon Dec 15 14:24:38 2008 +0000
@@ -35,10 +35,13 @@
 Vector PhysicsObject::walk_one_step (float partial, bool right) {
     // which way we are walking
     float deltaX = right ? partial : -partial;
+
     Vector reached = this->position;
-    if(reached.roundToInt() == (reached+Vector(deltaX, 0)).roundToInt()) {
-        return reached+Vector(deltaX, 0);
+
+    if (reached.roundToInt() == (reached + Vector(deltaX, 0)).roundToInt()) {
+        return reached + Vector(deltaX, 0);
     }
+
     // Is there upward ramp
     if(!possibleLocation(position+Vector(deltaX, 0))) {
         // Yes. Then we check n pixels up
@@ -211,13 +214,14 @@
                 collisionPoint = reached+shape[i];
 
                 if (inAir)
-                    this->bounce(world.getNormal(reached+shape[i], reached-unitVector+shape[i]));
+                    this->bounce(world.getNormal(reached + shape[i], reached - unitVector + shape[i]));
 
                 reached = reached - unitVector; // Return to last point
                 collided = true;
-
+                
+                // snap velocity to zero once it's below a threshold
                 if (this->velocity.sqrLength() < PLAYER_MIN_SPEED * PLAYER_MIN_SPEED)
-                    this->velocity = Vector(0,0);
+                    this->velocity = Vector(0, 0);
 
                 break;
             }