diff -r 5657cd89668d -r 0a62938e695a hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Sun Dec 28 15:58:40 2008 +0000 +++ b/hedgewars/GSHandlers.inc Sun Dec 28 20:57:51 2008 +0000 @@ -151,7 +151,16 @@ AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMelonPiece, 0, dX, dY, 75)^.DirAngle:= i * 60; end end; - gtHellishBomb: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 90, EXPLAutoSound); + gtHellishBomb: begin + doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 90, EXPLAutoSound); + for i:= 0 to 127 do + begin + dX:= AngleCos(i * 16) * _0_5 * (GetRandom + _1); + dY:= AngleSin(i * 16) * _0_5 * (GetRandom + _1); + AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtFlame, 0, dX, dY, 0); + AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtFlame, 0, dX, -dY, 0); + end + end; end; DeleteGear(Gear); exit @@ -1131,7 +1140,7 @@ Gear^.dX:= (Gear^.dX - cWindFactor) * _0_995 + cWindFactor; Gear^.dY:= Gear^.dY + cGravity; - if Gear^.dY > _0_1 then Gear^.dY:= Gear^.dY * _0_995; + if hwAbs(Gear^.dY) > _0_1 then Gear^.dY:= Gear^.dY * _0_995; Gear^.X:= Gear^.X + Gear^.dX; Gear^.Y:= Gear^.Y + Gear^.dY;