hedgewars/VGSHandlers.inc
changeset 4473 b6487d2c15ad
parent 4452 258945553b18
child 4475 54e78c40970b
equal deleted inserted replaced
4472:9cf7ec8fdb71 4473:b6487d2c15ad
   556     end;
   556     end;
   557 end;
   557 end;
   558 
   558 
   559 procedure doStepExplosion(Gear: PVisualGear; Steps: Longword);
   559 procedure doStepExplosion(Gear: PVisualGear; Steps: Longword);
   560 var i: LongWord;
   560 var i: LongWord;
   561 gX,gY: LongInt;
   561     gX,gY: LongInt;
       
   562     vg: PVisualGear;
   562 begin
   563 begin
   563 gX:= round(Gear^.X);
   564 gX:= round(Gear^.X);
   564 gY:= round(Gear^.Y);
   565 gY:= round(Gear^.Y);
   565 for i:= 0 to 31 do AddVisualGear(gX, gY, vgtFire);
   566 for i:= 0 to 31 do 
       
   567     begin
       
   568     vg:= AddVisualGear(gX, gY, vgtFire);
       
   569     if vg <> nil then vg^.State:= 1;
       
   570     end;
   566 for i:= 0 to  8 do AddVisualGear(gX, gY, vgtExplPart);
   571 for i:= 0 to  8 do AddVisualGear(gX, gY, vgtExplPart);
   567 for i:= 0 to  8 do AddVisualGear(gX, gY, vgtExplPart2);
   572 for i:= 0 to  8 do AddVisualGear(gX, gY, vgtExplPart2);
   568 Gear^.doStep:= @doStepExplosionWork;
   573 Gear^.doStep:= @doStepExplosionWork;
   569 if Steps > 1 then Gear^.doStep(Gear, Steps-1);
   574 if Steps > 1 then Gear^.doStep(Gear, Steps-1);
   570 end;
   575 end;
   588 if Gear^.Timer > 250 then DeleteVisualGear(Gear);
   593 if Gear^.Timer > 250 then DeleteVisualGear(Gear);
   589 end;
   594 end;
   590 
   595 
   591 procedure doStepBigExplosion(Gear: PVisualGear; Steps: Longword);
   596 procedure doStepBigExplosion(Gear: PVisualGear; Steps: Longword);
   592 var i: LongWord;
   597 var i: LongWord;
   593 gX,gY: LongInt;
   598     gX,gY: LongInt;
       
   599     vg: PVisualGear;
   594 begin
   600 begin
   595 gX:= round(Gear^.X);
   601 gX:= round(Gear^.X);
   596 gY:= round(Gear^.Y);
   602 gY:= round(Gear^.Y);
   597 AddVisualGear(gX, gY, vgtSmokeRing);
   603 AddVisualGear(gX, gY, vgtSmokeRing);
   598 for i:= 0 to 46 do AddVisualGear(gX, gY, vgtFire);
   604 for i:= 0 to 46 do 
       
   605     begin
       
   606     vg:= AddVisualGear(gX, gY, vgtFire);
       
   607     if vg <> nil then vg^.State:= 1;
       
   608     end;
   599 for i:= 0 to 15 do AddVisualGear(gX, gY, vgtExplPart);
   609 for i:= 0 to 15 do AddVisualGear(gX, gY, vgtExplPart);
   600 for i:= 0 to 15 do AddVisualGear(gX, gY, vgtExplPart2);
   610 for i:= 0 to 15 do AddVisualGear(gX, gY, vgtExplPart2);
   601 Gear^.doStep:= @doStepBigExplosionWork;
   611 Gear^.doStep:= @doStepBigExplosionWork;
   602 if Steps > 1 then Gear^.doStep(Gear, Steps-1);
   612 if Steps > 1 then Gear^.doStep(Gear, Steps-1);
   603 performRumble();
   613 performRumble();