Matt's patch for Stalactite shaking (bug 543)
authormathnerd314 <mathnerd314@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Thu, 21 Jan 2010 00:09:05 +0000 (00:09 +0000)
committermathnerd314 <mathnerd314@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Thu, 21 Jan 2010 00:09:05 +0000 (00:09 +0000)
git-svn-id: http://supertux.lethargik.org/svn/supertux/trunk/supertux@6267 837edb03-e0f3-0310-88ca-d4d4e8b29345

src/badguy/stalactite.cpp
src/badguy/stalactite.hpp

index 6742c73..20eea8c 100644 (file)
@@ -28,7 +28,8 @@ static const float SHAKE_RANGE_Y = 400;
 Stalactite::Stalactite(const Reader& lisp) :
   BadGuy(lisp, "images/creatures/stalactite/stalactite.sprite", LAYER_TILES - 1),
   timer(),
-  state(STALACTITE_HANGING)
+  state(STALACTITE_HANGING),
+  shake_delta()
 {
   countMe = false;
   set_colgroup_active(COLGROUP_TOUCHABLE);
@@ -49,6 +50,7 @@ Stalactite::active_update(float elapsed_time)
       }
     }
   } else if(state == STALACTITE_SHAKING) {
+    shake_delta = Vector(systemRandom.rand(-3,3), 0);
     if(timer.check()) {
       state = STALACTITE_FALLING;
       physic.enable_gravity(true);
@@ -130,7 +132,7 @@ Stalactite::draw(DrawingContext& context)
   }
 
   if(state == STALACTITE_SHAKING) {
-    sprite->draw(context, get_pos() + Vector(systemRandom.rand(-3,3), 0), layer);
+    sprite->draw(context, get_pos() + shake_delta, layer);
   } else {
     sprite->draw(context, get_pos(), layer);
   }
index b396fbc..1835d93 100644 (file)
@@ -46,6 +46,7 @@ protected:
 protected:
   Timer timer;
   StalactiteState state;
+  Vector shake_delta;
 };
 
 #endif