hedgewars/GSHandlers.inc
changeset 3032 9c190d3c165b
parent 3020 9b443edb8dd1
child 3036 c6ba6531cb4b
equal deleted inserted replaced
3031:542444bfe37d 3032:9c190d3c165b
  2856     begin
  2856     begin
  2857     State:= State and not gstAttacking;
  2857     State:= State and not gstAttacking;
  2858     Message:= Message and not (gm_Attack or gm_Up or gm_Precise or gm_Left or gm_Right)
  2858     Message:= Message and not (gm_Attack or gm_Up or gm_Precise or gm_Left or gm_Right)
  2859     end
  2859     end
  2860 end;
  2860 end;
       
  2861 
       
  2862 ////////////////////////////////////////////////////////////////////////////////
       
  2863 procedure doStepBigExplosionWork(Gear: PGear);
       
  2864 var maxMovement: LongInt;
       
  2865 begin
       
  2866 inc(Gear^.Timer);
       
  2867 if (Gear^.Timer and 5) = 0 then
       
  2868     begin
       
  2869     maxMovement := max(1, 13 - ((Gear^.Timer * 15) div 250));
       
  2870     ShakeCamera(maxMovement);
       
  2871     end;
       
  2872 if Gear^.Timer > 250 then DeleteGear(Gear);
       
  2873 end;
       
  2874 
       
  2875 procedure doStepBigExplosion(Gear: PGear);
       
  2876 var i: LongWord;
       
  2877 begin
       
  2878 AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeRing);
       
  2879 for i:= 0 to 46 do AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtFire);
       
  2880 for i:= 0 to 15 do AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtExplPart);
       
  2881 for i:= 0 to 15 do AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtExplPart2);
       
  2882 Gear^.doStep:= @doStepBigExplosionWork
       
  2883 end;