equal
deleted
inserted
replaced
58 if Angle > 360 then |
58 if Angle > 360 then |
59 Angle:= Angle - 360 |
59 Angle:= Angle - 360 |
60 else |
60 else |
61 if Angle < - 360 then |
61 if Angle < - 360 then |
62 Angle:= Angle + 360; |
62 Angle:= Angle + 360; |
63 |
63 |
64 |
64 |
65 if (round(X) >= cLeftScreenBorder) |
65 if (round(X) >= cLeftScreenBorder) |
66 and (round(X) <= cRightScreenBorder) |
66 and (round(X) <= cRightScreenBorder) |
67 and (round(Y) - 75 <= LAND_HEIGHT) |
67 and (round(Y) - 75 <= LAND_HEIGHT) |
68 and (Timer > 0) and (Timer-Steps > 0) then |
68 and (Timer > 0) and (Timer-Steps > 0) then |
69 begin |
69 begin |
642 gX,gY: LongInt; |
642 gX,gY: LongInt; |
643 vg: PVisualGear; |
643 vg: PVisualGear; |
644 begin |
644 begin |
645 gX:= round(Gear^.X); |
645 gX:= round(Gear^.X); |
646 gY:= round(Gear^.Y); |
646 gY:= round(Gear^.Y); |
647 for i:= 0 to 31 do |
647 for i:= 0 to 31 do |
648 begin |
648 begin |
649 vg:= AddVisualGear(gX, gY, vgtFire); |
649 vg:= AddVisualGear(gX, gY, vgtFire); |
650 if vg <> nil then |
650 if vg <> nil then |
651 begin |
651 begin |
652 vg^.State:= gstTmpFlag; |
652 vg^.State:= gstTmpFlag; |
653 inc(vg^.FrameTicks, vg^.FrameTicks) |
653 inc(vg^.FrameTicks, vg^.FrameTicks) |
654 end |
654 end |
655 end; |
655 end; |
686 //ScreenFadeValue:= round(60 * zoom * zoom); |
686 //ScreenFadeValue:= round(60 * zoom * zoom); |
687 //ScreenFadeSpeed:= 5; |
687 //ScreenFadeSpeed:= 5; |
688 gX:= round(Gear^.X); |
688 gX:= round(Gear^.X); |
689 gY:= round(Gear^.Y); |
689 gY:= round(Gear^.Y); |
690 AddVisualGear(gX, gY, vgtSmokeRing); |
690 AddVisualGear(gX, gY, vgtSmokeRing); |
691 for i:= 0 to 46 do |
691 for i:= 0 to 46 do |
692 begin |
692 begin |
693 vg:= AddVisualGear(gX, gY, vgtFire); |
693 vg:= AddVisualGear(gX, gY, vgtFire); |
694 if vg <> nil then |
694 if vg <> nil then |
695 begin |
695 begin |
696 vg^.State:= gstTmpFlag; |
696 vg^.State:= gstTmpFlag; |
697 inc(vg^.FrameTicks, vg^.FrameTicks) |
697 inc(vg^.FrameTicks, vg^.FrameTicks) |
698 end |
698 end |
699 end; |
699 end; |
702 for i:= 0 to 15 do |
702 for i:= 0 to 15 do |
703 AddVisualGear(gX, gY, vgtExplPart2); |
703 AddVisualGear(gX, gY, vgtExplPart2); |
704 Gear^.doStep:= @doStepBigExplosionWork; |
704 Gear^.doStep:= @doStepBigExplosionWork; |
705 if Steps > 1 then |
705 if Steps > 1 then |
706 Gear^.doStep(Gear, Steps-1); |
706 Gear^.doStep(Gear, Steps-1); |
707 performRumble(); |
707 with mobileRecord do |
|
708 if (performRumble <> nil) and (not fastUntilLag) then |
|
709 performRumble(kSystemSoundID_Vibrate); |
708 end; |
710 end; |
709 |
711 |
710 procedure doStepChunk(Gear: PVisualGear; Steps: Longword); |
712 procedure doStepChunk(Gear: PVisualGear; Steps: Longword); |
711 begin |
713 begin |
712 Gear^.X:= Gear^.X + Gear^.dX * Steps; |
714 Gear^.X:= Gear^.X + Gear^.dX * Steps; |
764 |
766 |
765 //////////////////////////////////////////////////////////////////////////////// |
767 //////////////////////////////////////////////////////////////////////////////// |
766 procedure doStepSmoothWindBar(Gear: PVisualGear; Steps: Longword); |
768 procedure doStepSmoothWindBar(Gear: PVisualGear; Steps: Longword); |
767 begin |
769 begin |
768 inc(Gear^.Timer, Steps); |
770 inc(Gear^.Timer, Steps); |
769 |
771 |
770 while Gear^.Timer >= 10 do |
772 while Gear^.Timer >= 10 do |
771 begin |
773 begin |
772 dec(Gear^.Timer, 10); |
774 dec(Gear^.Timer, 10); |
773 if WindBarWidth < Gear^.Tag then |
775 if WindBarWidth < Gear^.Tag then |
774 inc(WindBarWidth) |
776 inc(WindBarWidth) |
783 else if cWindspeedf < Gear^.dAngle then |
785 else if cWindspeedf < Gear^.dAngle then |
784 begin |
786 begin |
785 cWindspeedf := cWindspeedf + Gear^.Angle*Steps; |
787 cWindspeedf := cWindspeedf + Gear^.Angle*Steps; |
786 if cWindspeedf > Gear^.dAngle then cWindspeedf:= Gear^.dAngle; |
788 if cWindspeedf > Gear^.dAngle then cWindspeedf:= Gear^.dAngle; |
787 end; |
789 end; |
788 |
790 |
789 if (WindBarWidth = Gear^.Tag) and (cWindspeedf = Gear^.dAngle) then |
791 if (WindBarWidth = Gear^.Tag) and (cWindspeedf = Gear^.dAngle) then |
790 DeleteVisualGear(Gear) |
792 DeleteVisualGear(Gear) |
791 end; |
793 end; |
792 //////////////////////////////////////////////////////////////////////////////// |
794 //////////////////////////////////////////////////////////////////////////////// |
793 procedure doStepStraightShot(Gear: PVisualGear; Steps: Longword); |
795 procedure doStepStraightShot(Gear: PVisualGear; Steps: Longword); |
794 begin |
796 begin |
798 if Gear^.FrameTicks <= Steps then |
800 if Gear^.FrameTicks <= Steps then |
799 DeleteVisualGear(Gear) |
801 DeleteVisualGear(Gear) |
800 else |
802 else |
801 begin |
803 begin |
802 dec(Gear^.FrameTicks, Steps); |
804 dec(Gear^.FrameTicks, Steps); |
803 if (Gear^.FrameTicks < 501) and (Gear^.FrameTicks mod 5 = 0) then |
805 if (Gear^.FrameTicks < 501) and (Gear^.FrameTicks mod 5 = 0) then |
804 Gear^.Tint:= (Gear^.Tint and $FFFFFF00) or (((Gear^.Tint and $000000FF) * Gear^.FrameTicks) div 500) |
806 Gear^.Tint:= (Gear^.Tint and $FFFFFF00) or (((Gear^.Tint and $000000FF) * Gear^.FrameTicks) div 500) |
805 end |
807 end |
806 end; |
808 end; |
807 |
809 |