hedgewars/uAIMisc.pas
branchwebgl
changeset 9950 2759212a27de
parent 9160 fc46e75f6b72
parent 9706 5178d2263521
child 10015 4feced261c68
equal deleted inserted replaced
9521:8054d9d775fd 9950:2759212a27de
   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);