hedgewars/uGearsHandlersRope.pas
changeset 12651 5e115ed19e27
parent 11831 dd18d8100afd
child 12692 cb6b70392459
equal deleted inserted replaced
12650:eaf719616c7b 12651:5e115ed19e27
   439         DeleteGear(Gear);
   439         DeleteGear(Gear);
   440         exit()
   440         exit()
   441         end
   441         end
   442     else if not CurrentTeam^.ExtDriven and (FollowGear <> nil) then FollowGear := HHGear;
   442     else if not CurrentTeam^.ExtDriven and (FollowGear <> nil) then FollowGear := HHGear;
   443 
   443 
       
   444     // Destroy rope if it touched bouncy or world wrap world edge.
       
   445     // TODO: Allow to shoot rope through the world wrap edge and rope normally.
       
   446     if (WorldWrap(Gear) and (WorldEdge = weWrap)) or
       
   447        ((WorldEdge = weBounce) and ((hwRound(Gear^.X) <= LeftX) or (hwRound(Gear^.X) >= RightX))) then
       
   448         begin
       
   449         HHGear^.State := HHGear^.State and (not (gstAttacking or gstHHJumping or gstHHHJump));
       
   450         HHGear^.Message := HHGear^.Message and (not gmAttack);
       
   451         DeleteGear(Gear);
       
   452         exit()
       
   453         end;
       
   454 
   444     DeleteCI(HHGear);
   455     DeleteCI(HHGear);
   445 
   456 
   446     if (HHGear^.State and gstMoving) <> 0 then
   457     if (HHGear^.State and gstMoving) <> 0 then
   447         begin
   458         begin
   448         if TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX)) <> 0 then
   459         if TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX)) <> 0 then