hedgewars/GSHandlers.inc
changeset 8962 9780e79619ed
parent 8958 3818b38d72c0
child 8971 fcb29a13b1b1
--- a/hedgewars/GSHandlers.inc	Sat May 04 21:58:42 2013 -0400
+++ b/hedgewars/GSHandlers.inc	Sun May 05 22:50:17 2013 -0400
@@ -1427,7 +1427,7 @@
     if (Gear^.Health = 0) then
         begin
         dxdy:= hwAbs(Gear^.dX)+hwAbs(Gear^.dY);
-        if (dxdy > _0_3) and 
+        if (dxdy > _0_35) and 
            ((TestCollisionYwithGear(Gear, 1) <> 0) or
              TestCollisionXwithGear(Gear, 1) or
             (TestCollisionYwithGear(Gear, -1) <> 0) or
@@ -1566,11 +1566,6 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-(*
-TODO
-Increase damage as barrel smokes?
-Try tweaking friction some more
-*)
 procedure doStepRollingBarrel(Gear: PGear);
 var
     i: LongInt;
@@ -1587,7 +1582,7 @@
         DeleteCI(Gear);
         AllInactive := false;
         dxdy:= hwAbs(Gear^.dX)+hwAbs(Gear^.dY);
-        if (dxdy > _0_3) then
+        if (dxdy > _0_35) then
             begin
             if (TestCollisionYwithGear(Gear, 1) <> 0) then
                 begin
@@ -1676,7 +1671,10 @@
         begin
         //if V > _0_03 then Gear^.State:= Gear^.State or gstAnimation;
         if (hwAbs(Gear^.dX) > _0_15) or ((hwAbs(Gear^.dY) > _0_15) and (hwAbs(Gear^.dX) > _0_02)) then
-            Gear^.doStep := @doStepRollingBarrel
+            begin
+            Gear^.doStep := @doStepRollingBarrel;
+            exit;
+            end
         else Gear^.dX:= _0;
 
         if (Gear^.Health > 0) and ((Gear^.Health * 100 div cBarrelHealth) < random(90)) and ((GameTicks and $FF) = 0) then