hedgewars/uGearsHedgehog.pas
changeset 7164 fad64b97947e
parent 7069 bcf9d8e64e92
child 7180 53ffc8853008
child 7187 aff30d80bd7b
equal deleted inserted replaced
7163:7db1e3a7422a 7164:fad64b97947e
   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