hedgewars/uGearsHandlersRope.pas
changeset 8397 5b273af3ac95
parent 7674 aead327f1e1a
child 8462 19b1de9423ab
equal deleted inserted replaced
8396:5123eac2f9d6 8397:5b273af3ac95
   194         begin
   194         begin
   195         lx := hwRound(nx);
   195         lx := hwRound(nx);
   196         ly := hwRound(ny);
   196         ly := hwRound(ny);
   197         if ((ly and LAND_HEIGHT_MASK) = 0) and ((lx and LAND_WIDTH_MASK) = 0) and ((Land[ly, lx] and $FF00) <> 0) then
   197         if ((ly and LAND_HEIGHT_MASK) = 0) and ((lx and LAND_WIDTH_MASK) = 0) and ((Land[ly, lx] and $FF00) <> 0) then
   198             begin
   198             begin
   199             ny := _1 / Distance(ropeDx, ropeDy);
   199             tx := _1 / Distance(ropeDx, ropeDy);
   200             // old rope pos
   200             // old rope pos
   201             nx := ropeDx * ny;
   201             nx := ropeDx * tx;
   202             ny := ropeDy * ny;
   202             ny := ropeDy * tx;
   203 
   203 
   204             with RopePoints.ar[RopePoints.Count] do
   204             with RopePoints.ar[RopePoints.Count] do
   205                 begin
   205                 begin
   206                 X := Gear^.X;
   206                 X := Gear^.X;
   207                 Y := Gear^.Y;
   207                 Y := Gear^.Y;
   208                 if RopePoints.Count = 0 then
   208                 if RopePoints.Count = 0 then
   209                     RopePoints.HookAngle := DxDy2Angle(Gear^.dY, Gear^.dX);
   209                     RopePoints.HookAngle := DxDy2Angle(Gear^.dY, Gear^.dX);
   210                 b := (nx * HHGear^.dY) > (ny * HHGear^.dX);
   210                 b := (nx * HHGear^.dY) > (ny * HHGear^.dX);
   211                 dLen := len
   211                 dLen := len
   212                 end;
   212                 end;
   213                 
   213 
   214             with RopePoints.rounded[RopePoints.Count] do
   214             with RopePoints.rounded[RopePoints.Count] do
   215                 begin
   215                 begin
   216                 X := hwRound(Gear^.X);
   216                 X := hwRound(Gear^.X);
   217                 Y := hwRound(Gear^.Y);
   217                 Y := hwRound(Gear^.Y);
   218                 end;
   218                 end;