# HG changeset patch
# User nemo
# Date 1346644854 14400
# Node ID e7bef1a4fda77b2f9c1d5007c150f44bca5fa38a
# Parent  b993257902d37ee98dc8366b4dfd4a24e8c2b1d3
So, unc0rr won't let me revert to pre-e496587db93e, but reverting db731c523653 makes the rope less-sticky-enough to actually be usable in an ordinary game without my screaming at the monitor as I drown for the nth time...

diff -r b993257902d3 -r e7bef1a4fda7 hedgewars/uGearsHandlersRope.pas
--- a/hedgewars/uGearsHandlersRope.pas	Sun Sep 02 22:27:01 2012 +0200
+++ b/hedgewars/uGearsHandlersRope.pas	Mon Sep 03 00:00:54 2012 -0400
@@ -101,7 +101,7 @@
     len, tx, ty, nx, ny, ropeDx, ropeDy, mdX, mdY, sDx, sDy: hwFloat;
     i, lx, ly, cd: LongInt;
     haveCollision,
-    haveDivided, bx, by: boolean;
+    haveDivided: boolean;
 
 begin
     if GameTicks mod 8 <> 0 then exit;
@@ -180,29 +180,23 @@
     HHGear^.dX := Gear^.X + mdX * Gear^.Elasticity - tx;
     HHGear^.dY := Gear^.Y + mdY * Gear^.Elasticity - ty;
 
-    sDx:= HHGear^.dX / 4;
-    sDy:= HHGear^.dY / 4;
+    sDx:= HHGear^.dX / 8;
+    sDy:= HHGear^.dY / 8;
 
     HHGear^.X:= tx;
     HHGear^.Y:= ty;
 
     i:= 0;
-    bx:= TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX));
-    by:= TestCollisionYwithGear(HHGear, hwSign(HHGear^.dY)) <> 0;
-    while not ((i = 4)
-        or bx
-        or by) do
+    while not ((i = 8)
+        or TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX))
+        or (TestCollisionYwithGear(HHGear, hwSign(HHGear^.dY)) <> 0)) do
         begin
         inc(i);
         HHGear^.X:= HHGear^.X + sDx;
         HHGear^.Y:= HHGear^.Y + sDy;
-        bx:= TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX));
-        by:= TestCollisionYwithGear(HHGear, hwSign(HHGear^.dY)) <> 0;
         end;
     ////
 
-    if not bx then HHGear^.dX:= HHGear^.X - tx;
-    if not by then HHGear^.dY:= HHGear^.Y - ty;
 
     haveDivided := false;
     // check whether rope needs dividing