equal
deleted
inserted
replaced
874 Gear.dY:= -0.9; |
874 Gear.dY:= -0.9; |
875 Gear.doStep:= doStepFirePunchWork; |
875 Gear.doStep:= doStepFirePunchWork; |
876 DrawTunnel(HHGear.X - cHHRadius, HHGear.Y + 1, 0.5, 0.0, cHHRadius * 4, 5); |
876 DrawTunnel(HHGear.X - cHHRadius, HHGear.Y + 1, 0.5, 0.0, cHHRadius * 4, 5); |
877 end; |
877 end; |
878 |
878 |
879 |
879 procedure doStepParachute(Gear: PGear); |
|
880 var HHGear: PGear; |
|
881 begin |
|
882 HHGear:= PHedgehog(Gear.Hedgehog).Gear; |
|
883 |
|
884 if TestCollisionYwithGear(HHGear, 1) or ((HHGear.State and gstHHDriven) = 0) then |
|
885 begin |
|
886 with HHGear^ do |
|
887 begin |
|
888 Message:= 0; |
|
889 dx:= 0.0000001 * hwSign(dX); |
|
890 dY:= 0; |
|
891 State:= State and not (gstAttacking or gstAttacked); |
|
892 State:= State or gstFalling; |
|
893 end; |
|
894 DeleteGear(Gear); |
|
895 OnUsedAmmo(PHedgehog(HHGear.Hedgehog)^.Ammo); |
|
896 ApplyAmmoChanges(PHedgehog(HHGear.Hedgehog)^); |
|
897 exit |
|
898 end; |
|
899 |
|
900 if not TestCollisionXwithGear(HHGear, hwSign(HHGear.dX)) then |
|
901 HHGear.X:= HHGear.X + cWindSpeed * 200; |
|
902 |
|
903 if (Gear.Message and gm_Left) <> 0 then HHGear.X:= HHGear.X - cMaxWindSpeed * 40 |
|
904 else if (Gear.Message and gm_Right) <> 0 then HHGear.X:= HHGear.X + cMaxWindSpeed * 40; |
|
905 if (Gear.Message and gm_Up) <> 0 then HHGear.Y:= HHGear.Y - cGravity * 40 |
|
906 else if (Gear.Message and gm_Down) <> 0 then HHGear.Y:= HHGear.Y + cGravity * 40; |
|
907 |
|
908 HHGear.Y:= HHGear.Y + cGravity * 100; |
|
909 |
|
910 end; |
|
911 |
|
912 |