Patch by Matt McCutchen to prevent division by zero when Tux spawns exactly at a...
authorwolfgangb <wolfgangb@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Sun, 30 Aug 2009 12:10:24 +0000 (12:10 +0000)
committerwolfgangb <wolfgangb@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Sun, 30 Aug 2009 12:10:24 +0000 (12:10 +0000)
git-svn-id: http://supertux.lethargik.org/svn/supertux/trunk/supertux@5910 837edb03-e0f3-0310-88ca-d4d4e8b29345

src/badguy/willowisp.cpp

index 0e55486..db467e7 100644 (file)
@@ -106,11 +106,14 @@ WillOWisp::active_update(float elapsed_time)
     break;
 
   case STATE_TRACKING:
-    if (dist.norm() <= vanish_range) {
+    if (dist.norm() > vanish_range) {
+      vanish();
+    } else if (dist.norm() >= 1) {
       Vector dir = dist.unit();
       movement = dir * elapsed_time * flyspeed;
     } else {
-      vanish();
+      /* We somehow landed right on top of the player without colliding.
+       * Sit tight and avoid a division by zero. */
     }
     sound_source->set_position(get_pos());
     break;