721 exit |
721 exit |
722 end; |
722 end; |
723 DeleteCI(Gear); // must be after exit!! (see previous line) |
723 DeleteCI(Gear); // must be after exit!! (see previous line) |
724 |
724 |
725 Gear^.Hedgehog^.visStepPos:= (Gear^.Hedgehog^.visStepPos + 1) and 7; |
725 Gear^.Hedgehog^.visStepPos:= (Gear^.Hedgehog^.visStepPos + 1) and 7; |
726 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then |
726 |
727 begin |
727 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then if (TestCollisionYwithGear(Gear, -1) = 0) then |
728 if not (TestCollisionXwithXYShift(Gear, _0, -6, hwSign(Gear^.dX)) |
728 begin |
729 or (TestCollisionYwithGear(Gear, -1) <> 0)) then |
729 Gear^.Y:= Gear^.Y - _1; |
730 Gear^.Y:= Gear^.Y - _1; |
730 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then if (TestCollisionYwithGear(Gear, -1) = 0) then |
731 if not (TestCollisionXwithXYShift(Gear, _0, -5, hwSign(Gear^.dX)) |
731 begin |
732 or (TestCollisionYwithGear(Gear, -1) <> 0)) then |
732 Gear^.Y:= Gear^.Y - _1; |
733 Gear^.Y:= Gear^.Y - _1; |
733 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then if (TestCollisionYwithGear(Gear, -1) = 0) then |
734 if not (TestCollisionXwithXYShift(Gear, _0, -4, hwSign(Gear^.dX)) |
734 begin |
735 or (TestCollisionYwithGear(Gear, -1) <> 0)) then |
735 Gear^.Y:= Gear^.Y - _1; |
736 Gear^.Y:= Gear^.Y - _1; |
736 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then if (TestCollisionYwithGear(Gear, -1) = 0) then |
737 if not (TestCollisionXwithXYShift(Gear, _0, -3, hwSign(Gear^.dX)) |
737 begin |
738 or (TestCollisionYwithGear(Gear, -1) <> 0)) then |
738 Gear^.Y:= Gear^.Y - _1; |
739 Gear^.Y:= Gear^.Y - _1; |
739 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then if (TestCollisionYwithGear(Gear, -1) = 0) then |
740 if not (TestCollisionXwithXYShift(Gear, _0, -2, hwSign(Gear^.dX)) |
740 begin |
741 or (TestCollisionYwithGear(Gear, -1) <> 0)) then |
741 Gear^.Y:= Gear^.Y - _1; |
742 Gear^.Y:= Gear^.Y - _1; |
742 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then if (TestCollisionYwithGear(Gear, -1) = 0) then |
743 if not (TestCollisionXwithXYShift(Gear, _0, -1, hwSign(Gear^.dX)) |
743 begin |
744 or (TestCollisionYwithGear(Gear, -1) <> 0)) then |
744 Gear^.Y:= Gear^.Y - _1; |
745 Gear^.Y:= Gear^.Y - _1; |
745 if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then |
|
746 Gear^.Y:= Gear^.Y + _6 |
|
747 end else Gear^.Y:= Gear^.Y + _5 else |
|
748 end else Gear^.Y:= Gear^.Y + _4 else |
|
749 end else Gear^.Y:= Gear^.Y + _3 else |
|
750 end else Gear^.Y:= Gear^.Y + _2 else |
|
751 end else Gear^.Y:= Gear^.Y + _1 |
746 end; |
752 end; |
747 |
753 |
748 if (not cArtillery) and ((Gear^.Message and gmPrecise) = 0) and (not TestCollisionXwithGear(Gear, hwSign(Gear^.dX))) then |
754 if (not cArtillery) and ((Gear^.Message and gmPrecise) = 0) and (not TestCollisionXwithGear(Gear, hwSign(Gear^.dX))) then |
749 Gear^.X:= Gear^.X + SignAs(_1, Gear^.dX); |
755 Gear^.X:= Gear^.X + SignAs(_1, Gear^.dX); |
750 |
756 |