diff -r 542444bfe37d -r 9c190d3c165b hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Sun Mar 21 13:53:47 2010 +0000 +++ b/hedgewars/GSHandlers.inc Sun Mar 21 15:50:38 2010 +0000 @@ -2858,3 +2858,26 @@ Message:= Message and not (gm_Attack or gm_Up or gm_Precise or gm_Left or gm_Right) end end; + +//////////////////////////////////////////////////////////////////////////////// +procedure doStepBigExplosionWork(Gear: PGear); +var maxMovement: LongInt; +begin +inc(Gear^.Timer); +if (Gear^.Timer and 5) = 0 then + begin + maxMovement := max(1, 13 - ((Gear^.Timer * 15) div 250)); + ShakeCamera(maxMovement); + end; +if Gear^.Timer > 250 then DeleteGear(Gear); +end; + +procedure doStepBigExplosion(Gear: PGear); +var i: LongWord; +begin +AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeRing); +for i:= 0 to 46 do AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtFire); +for i:= 0 to 15 do AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtExplPart); +for i:= 0 to 15 do AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtExplPart2); +Gear^.doStep:= @doStepBigExplosionWork +end;