# HG changeset patch
# User sheepluva
# Date 1441144453 -7200
# Node ID adb5ef54da5419c750df1d41f426328c71681bbf
# Parent  62cc7f67105f9aa594e66832ce144ceb5fe01de4
global variable for defining construction distance limit. value smaller 1 means no limit (wip)

diff -r 62cc7f67105f -r adb5ef54da54 hedgewars/uGearsHandlersMess.pas
--- a/hedgewars/uGearsHandlersMess.pas	Sun Aug 30 18:03:44 2015 +0300
+++ b/hedgewars/uGearsHandlersMess.pas	Tue Sep 01 23:54:13 2015 +0200
@@ -2769,10 +2769,10 @@
     if Gear^.AmmoType = amRubber then LandFlags:= lfBouncy
     else if cIce then LandFlags:= lfIce;
 
-    distFail:= ((Distance(tx - x, ty - y) > _256) and ((WorldEdge <> weWrap) or
+    distFail:= (cBuildMaxDist > 0) and ((hwRound(Distance(tx - x, ty - y)) > cBuildMaxDist) and ((WorldEdge <> weWrap) or
             (
-            (Distance(tx - int2hwFloat(rightX+(rx-leftX)), ty - y) > _256) and
-            (Distance(tx - int2hwFloat(leftX-(rightX-rx)), ty - y) > _256)
+            (hwRound(Distance(tx - int2hwFloat(rightX+(rx-leftX)), ty - y)) > cBuildMaxDist) and
+            (hwRound(Distance(tx - int2hwFloat(leftX-(rightX-rx)), ty - y)) > cBuildMaxDist)
             )));
     if distFail
     or (not TryPlaceOnLand(Gear^.Target.X - SpritesData[Ammoz[Gear^.AmmoType].PosSprite].Width div 2, Gear^.Target.Y - SpritesData[Ammoz[Gear^.AmmoType].PosSprite].Height div 2, Ammoz[Gear^.AmmoType].PosSprite, Gear^.State, true, LandFlags)) then
diff -r 62cc7f67105f -r adb5ef54da54 hedgewars/uVariables.pas
--- a/hedgewars/uVariables.pas	Sun Aug 30 18:03:44 2015 +0300
+++ b/hedgewars/uVariables.pas	Tue Sep 01 23:54:13 2015 +0200
@@ -179,6 +179,7 @@
     cElastic        : hwFloat;
     cGravity        : hwFloat;
     cGravityf       : real;
+    cBuildMaxDist   : LongInt;
     cDamageModifier : hwFloat;
     cLaserSighting  : boolean;
     cVampiric       : boolean;
@@ -2565,6 +2566,7 @@
     cElastic                := _0_9;
     cGravity                := cMaxWindSpeed * 2;
     cGravityf               := 0.00025 * 2;
+    cBuildMaxDist           := 256;
     cDamageModifier         := _1;
     TargetPoint             := cTargetPointRef;