diff -r ed713652afae -r 1636a3c7c061 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Sun Jul 27 20:03:07 2008 +0000 +++ b/hedgewars/GSHandlers.inc Sun Jul 27 21:01:11 2008 +0000 @@ -1176,15 +1176,20 @@ begin AllInactive:= false; Gear^.X:= Gear^.X + cAirPlaneSpeed * Gear^.Tag; + if (Gear^.Health > 0)and(not (Gear^.X < Gear^.dX))and(Gear^.X < Gear^.dX + cAirPlaneSpeed) then - begin - dec(Gear^.Health); - case Gear^.State of - 0: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, cBombsSpeed * Gear^.Tag, _0, 0); - 1: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine, 0, cBombsSpeed * Gear^.Tag, _0, 0); - end; - Gear^.dX:= Gear^.dX + int2hwFloat(30 * Gear^.Tag) - end; + begin + dec(Gear^.Health); + case Gear^.State of + 0: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, cBombsSpeed * Gear^.Tag, _0, 0); + 1: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine, 0, cBombsSpeed * Gear^.Tag, _0, 0); + end; + Gear^.dX:= Gear^.dX + int2hwFloat(30 * Gear^.Tag) + end; + +if (GameTicks and $3F) = 0 then + AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtSmokeTrace, 0, _0, _0, 0); + if (hwRound(Gear^.X) > 3072) or (hwRound(Gear^.X) < -1024) then DeleteGear(Gear) end; @@ -1195,7 +1200,7 @@ if Gear^.X.QWordValue = 0 then Gear^.Tag:= 1 else Gear^.Tag:= -1; Gear^.X:= _1024 - _2048 * Gear^.Tag; -Gear^.Y:= -_128; +Gear^.Y:= -_300; Gear^.dX:= int2hwFloat(TargetPoint.X - 5 * Gear^.Tag * 15); if int2hwFloat(TargetPoint.Y) - Gear^.Y > _0 then