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