Lua API: SetMaxBuildDistance([ distInPx ]) -- set to 0 for no limit; call with no param to reset to default
authorsheepluva
Wed, 02 Sep 2015 00:39:35 +0200
changeset 11058 b91667fd6f20
parent 11057 adb5ef54da54
child 11059 659427d9fd17
Lua API: SetMaxBuildDistance([ distInPx ]) -- set to 0 for no limit; call with no param to reset to default
hedgewars/uConsts.pas
hedgewars/uScript.pas
hedgewars/uVariables.pas
--- a/hedgewars/uConsts.pas	Tue Sep 01 23:54:13 2015 +0200
+++ b/hedgewars/uConsts.pas	Wed Sep 02 00:39:35 2015 +0200
@@ -171,6 +171,8 @@
 
     cFontBorder = 2;
 
+    cDefaultBuildMaxDist = 256;
+
     // do not change this value
     cDefaultZoomLevel = 2.0;
 
--- a/hedgewars/uScript.pas	Tue Sep 01 23:54:13 2015 +0200
+++ b/hedgewars/uScript.pas	Wed Sep 02 00:39:35 2015 +0200
@@ -440,6 +440,26 @@
     lc_setweapon:= 0;
 end;
 
+// no parameter means reset to default (and 0 means unlimited)
+function lc_setmaxbuilddistance(L : Plua_State) : LongInt; Cdecl;
+var np: LongInt;
+const
+    call = 'SetMaxBuildDistance';
+    params = '[ distInPx ]';
+begin
+    if CheckAndFetchParamCountRange(L, 0, 1, call, params, np) then
+        begin
+        if np = 0 then
+            begin
+            // no args? reset
+            cBuildMaxDist:= cDefaultBuildMaxDist;
+            end
+        else
+            CBuildMaxDist:= lua_tointeger(L, 1);
+        end;
+    lc_setmaxbuilddistance:= 0;
+end;
+
 // sets weapon to whatever weapons is next (wraps around, amSkip is skipped)
 function lc_setnextweapon(L : Plua_State) : LongInt; Cdecl;
 var at          : LongInt;
@@ -3301,6 +3321,7 @@
 lua_register(luaState, _P'SetWaterLine', @lc_setwaterline);
 lua_register(luaState, _P'SetNextWeapon', @lc_setnextweapon);
 lua_register(luaState, _P'SetWeapon', @lc_setweapon);
+lua_register(luaState, _P'SetMaxBuildDistance', @lc_setmaxbuilddistance);
 // drawn map functions
 lua_register(luaState, _P'AddPoint', @lc_addPoint);
 lua_register(luaState, _P'FlushPoints', @lc_flushPoints);
--- a/hedgewars/uVariables.pas	Tue Sep 01 23:54:13 2015 +0200
+++ b/hedgewars/uVariables.pas	Wed Sep 02 00:39:35 2015 +0200
@@ -2566,7 +2566,7 @@
     cElastic                := _0_9;
     cGravity                := cMaxWindSpeed * 2;
     cGravityf               := 0.00025 * 2;
-    cBuildMaxDist           := 256;
+    cBuildMaxDist           := cDefaultBuildMaxDist;
     cDamageModifier         := _1;
     TargetPoint             := cTargetPointRef;