hedgewars/GSHandlers.inc
changeset 211 558476056205
parent 183 57c2ef19f719
child 212 c8c650b23e32
equal deleted inserted replaced
210:440575778475 211:558476056205
   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