814 exit(false); |
814 exit(false); |
815 |
815 |
816 jmpLJump: |
816 jmpLJump: |
817 begin |
817 begin |
818 if TestCollisionYwithGear(Gear, -1) <> 0 then |
818 if TestCollisionYwithGear(Gear, -1) <> 0 then |
819 if not TestCollisionXwithXYShift(Gear, _0, -2, hwSign(Gear^.dX)) then |
819 if TestCollisionXwithXYShift(Gear, _0, -2, hwSign(Gear^.dX)) = 0 then |
820 Gear^.Y:= Gear^.Y - int2hwFloat(2) |
820 Gear^.Y:= Gear^.Y - int2hwFloat(2) |
821 else |
821 else |
822 if not TestCollisionXwithXYShift(Gear, _0, -1, hwSign(Gear^.dX)) then |
822 if TestCollisionXwithXYShift(Gear, _0, -1, hwSign(Gear^.dX)) = 0 then |
823 Gear^.Y:= Gear^.Y - _1; |
823 Gear^.Y:= Gear^.Y - _1; |
824 if not (TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) or |
824 if (TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) = 0) and |
825 (TestCollisionYwithGear(Gear, -1) <> 0)) then |
825 (TestCollisionYwithGear(Gear, -1) = 0) then |
826 begin |
826 begin |
827 Gear^.dY:= -_0_15; |
827 Gear^.dY:= -_0_15; |
828 Gear^.dX:= SignAs(_0_15, Gear^.dX); |
828 Gear^.dX:= SignAs(_0_15, Gear^.dX); |
829 Gear^.State:= Gear^.State or gstMoving or gstHHJumping |
829 Gear^.State:= Gear^.State or gstMoving or gstHHJumping |
830 end |
830 end |
848 if (not (hwAbs(Gear^.dX) > cLittle)) and (Gear^.dY < -_0_02) then |
848 if (not (hwAbs(Gear^.dX) > cLittle)) and (Gear^.dY < -_0_02) then |
849 begin |
849 begin |
850 Gear^.dY:= -_0_25; |
850 Gear^.dY:= -_0_25; |
851 Gear^.dX:= SignAs(_0_02, Gear^.dX) |
851 Gear^.dX:= SignAs(_0_02, Gear^.dX) |
852 end; |
852 end; |
853 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then SetLittle(Gear^.dX); |
853 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) <> 0 then SetLittle(Gear^.dX); |
854 Gear^.X:= Gear^.X + Gear^.dX; |
854 Gear^.X:= Gear^.X + Gear^.dX; |
855 inc(GoInfo.Ticks); |
855 inc(GoInfo.Ticks); |
856 Gear^.dY:= Gear^.dY + cGravity; |
856 Gear^.dY:= Gear^.dY + cGravity; |
857 if Gear^.dY > _0_4 then |
857 if Gear^.dY > _0_4 then |
858 exit(false); |
858 exit(false); |