hedgewars/GSHandlers.inc
changeset 3032 9c190d3c165b
parent 3020 9b443edb8dd1
child 3036 c6ba6531cb4b
--- 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;