hedgewars/uGearsHedgehog.pas
changeset 13399 3d6aae2ae698
parent 13324 543ab994c9bc
child 13463 f1d349a52bc7
equal deleted inserted replaced
13398:d5db8f71e52e 13399:3d6aae2ae698
   786 end;
   786 end;
   787 
   787 
   788 procedure HedgehogStep(Gear: PGear);
   788 procedure HedgehogStep(Gear: PGear);
   789 var PrevdX: LongInt;
   789 var PrevdX: LongInt;
   790     CurWeapon: PAmmo;
   790     CurWeapon: PAmmo;
   791     portals: PGearArrayS;
       
   792 begin
   791 begin
   793 CurWeapon:= GetCurAmmoEntry(Gear^.Hedgehog^);
   792 CurWeapon:= GetCurAmmoEntry(Gear^.Hedgehog^);
   794 if ((Gear^.State and (gstAttacking or gstMoving)) = 0) then
   793 if ((Gear^.State and (gstAttacking or gstMoving)) = 0) then
   795     begin
   794     begin
   796     if isCursorVisible then
   795     if isCursorVisible then
   849         Gear^.State:= Gear^.State or gstMoving or gstHHJumping;
   848         Gear^.State:= Gear^.State or gstMoving or gstHHJumping;
   850         PlaySoundV(sndJump3, Gear^.Hedgehog^.Team^.voicepack);
   849         PlaySoundV(sndJump3, Gear^.Hedgehog^.Team^.voicepack);
   851         exit
   850         exit
   852         end;
   851         end;
   853 
   852 
   854     if (Gear^.Message and (gmLeft or gmRight) <> 0) and (Gear^.State and gstMoving = 0) then
   853     if (Gear^.Message and (gmLeft or gmRight) <> 0) and (Gear^.State and gstMoving = 0) and 
   855         begin
   854 		(CheckGearNear(Gear, gtPortal, 26, 26) <> nil) then 
   856         // slightly inefficient since it doesn't halt after one portal, maybe could add a param to GearsNear for number desired.
   855 		Gear^.PortalCounter:= 0;
   857         portals:= GearsNear(Gear^.X, Gear^.Y, gtPortal, 26);
       
   858         if portals.size = 0 then Gear^.PortalCounter:= 0
       
   859         end;
       
   860     PrevdX:= hwSign(Gear^.dX);
   856     PrevdX:= hwSign(Gear^.dX);
   861     if (Gear^.Message and gmLeft  )<>0 then
   857     if (Gear^.Message and gmLeft  )<>0 then
   862         Gear^.dX:= -cLittle else
   858         Gear^.dX:= -cLittle else
   863     if (Gear^.Message and gmRight )<>0 then
   859     if (Gear^.Message and gmRight )<>0 then
   864         Gear^.dX:=  cLittle
   860         Gear^.dX:=  cLittle