diff -r a9f18c66ce34 -r 2f2f78fc65a3 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Fri Jul 20 21:30:53 2012 -0400 +++ b/hedgewars/GSHandlers.inc Sun Jul 22 00:48:48 2012 +0400 @@ -3007,7 +3007,6 @@ //////////////////////////////////////////////////////////////////////////////// const cakeh = 27; - cakeDmg = 75; var CakePoints: array[0..Pred(cakeh)] of record x, y: hwFloat; @@ -3091,6 +3090,19 @@ if Gear^.Tag < 7 then exit; + dec(Gear^.Health); + Gear^.Timer := Gear^.Health*10; + if Gear^.Health mod 100 = 0 then + Gear^.PortalCounter:= 0; + // This is not seconds, but at least it is *some* feedback + if (Gear^.Health = 0) or ((Gear^.Message and gmAttack) <> 0) then + begin + FollowGear := Gear; + Gear^.RenderTimer := false; + Gear^.doStep := @doStepCakeDown; + exit + end; + cakeStep(Gear); if Gear^.Tag = 0 then @@ -3102,18 +3114,6 @@ CakePoints[CakeI].y := Gear^.Y; Gear^.DirAngle := DxDy2Angle(tdx, tdy); end; - - dec(Gear^.Health); - Gear^.Timer := Gear^.Health*10; - if Gear^.Health mod 100 = 0 then - Gear^.PortalCounter:= 0; - // This is not seconds, but at least it is *some* feedback - if (Gear^.Health = 0) or ((Gear^.Message and gmAttack) <> 0) then - begin - FollowGear := Gear; - Gear^.RenderTimer := false; - Gear^.doStep := @doStepCakeDown - end end; procedure doStepCakeUp(Gear: PGear);