pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] r3947 - trunk/pingus/src/actions


From: jsalmon3
Subject: [Pingus-CVS] r3947 - trunk/pingus/src/actions
Date: Mon, 15 Dec 2008 02:42:11 +0100

Author: jsalmon3
Date: 2008-12-15 02:42:04 +0100 (Mon, 15 Dec 2008)
New Revision: 3947

Modified:
   trunk/pingus/src/actions/blocker.cpp
   trunk/pingus/src/actions/faller.cpp
   trunk/pingus/src/actions/rocket_launcher.cpp
   trunk/pingus/src/actions/waiter.cpp
Log:
Fixed a bug when a bridger is done building and while waiting is given an order 
to block it falls then walks off. See savannah bug 21176.
After pingu->set_action is called the old action gets deleted so we can't do 
any more actions with it.



Modified: trunk/pingus/src/actions/blocker.cpp
===================================================================
--- trunk/pingus/src/actions/blocker.cpp        2008-12-14 04:14:07 UTC (rev 
3946)
+++ trunk/pingus/src/actions/blocker.cpp        2008-12-15 01:42:04 UTC (rev 
3947)
@@ -47,6 +47,7 @@
   if (!standing_on_ground())
     {
       pingu->set_action(Actions::FALLER);
+      return;
     }
   else
     {

Modified: trunk/pingus/src/actions/faller.cpp
===================================================================
--- trunk/pingus/src/actions/faller.cpp 2008-12-14 04:14:07 UTC (rev 3946)
+++ trunk/pingus/src/actions/faller.cpp 2008-12-15 01:42:04 UTC (rev 3947)
@@ -114,7 +114,10 @@
             {
               // This is where the jumper bug happens
               //std::cout << "Reached the unreachable: " << 
pingu->get_velocity().y << std::endl;
-              pingu->set_action(Actions::WALKER);
+              if (pingu->get_previous_action() == Actions::BLOCKER)
+                pingu->set_action(pingu->get_previous_action());
+              else
+                pingu->set_action(Actions::WALKER);
             }
         }
       // If the Pingu collided into something while moving up...

Modified: trunk/pingus/src/actions/rocket_launcher.cpp
===================================================================
--- trunk/pingus/src/actions/rocket_launcher.cpp        2008-12-14 04:14:07 UTC 
(rev 3946)
+++ trunk/pingus/src/actions/rocket_launcher.cpp        2008-12-15 01:42:04 UTC 
(rev 3947)
@@ -48,6 +48,7 @@
   if (sprite[pingu->direction].is_finished())
     {
       pingu->set_action(Actions::WALKER);
+      return;
     }
 
   sprite.update();

Modified: trunk/pingus/src/actions/waiter.cpp
===================================================================
--- trunk/pingus/src/actions/waiter.cpp 2008-12-14 04:14:07 UTC (rev 3946)
+++ trunk/pingus/src/actions/waiter.cpp 2008-12-15 01:42:04 UTC (rev 3947)
@@ -34,7 +34,10 @@
   sprite.update();
 
   if (countdown < 0)
-    pingu->set_action(Actions::WALKER);
+    {
+      pingu->set_action(Actions::WALKER);
+      return;
+    }
 
   countdown -= 0.025f;
 }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]