equal
deleted
inserted
replaced
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(); |