--- a/hedgewars/uScript.pas Fri Sep 16 17:36:05 2011 +0200
+++ b/hedgewars/uScript.pas Fri Sep 16 18:17:16 2011 +0200
@@ -36,6 +36,7 @@
procedure ScriptLoad(name : shortstring);
procedure ScriptOnGameInit;
+procedure ScriptOnScreenResize();
procedure ScriptCall(fname : shortstring);
function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
@@ -1505,6 +1506,29 @@
lua_pushinteger(L, ord(CurrentHedgehog^.CurAmmoType));
lc_getcurammotype := 1;
end;
+
+// boolean TestRectForObstacle(x1, y1, x2, y2, landOnly)
+function lc_testrectforobstacle(L : Plua_State) : LongInt; Cdecl;
+var rtn: Boolean;
+begin
+ if lua_gettop(L) <> 5 then
+ begin
+ LuaError('Lua: Wrong number of parameters passed to TestRectForObstacle!');
+ lua_pushnil(L); // return value on stack (nil)
+ end
+ else
+ begin
+ rtn:= TestRectancleForObstacle(
+ lua_tointeger(L, 1),
+ lua_tointeger(L, 2),
+ lua_tointeger(L, 3),
+ lua_tointeger(L, 4),
+ lua_toboolean(L, 5)
+ );
+ lua_pushboolean(L, rtn);
+ end;
+ lc_testrectforobstacle:= 1
+end;
///////////////////
procedure ScriptPrintStack;
@@ -1627,6 +1651,16 @@
ScriptSetInteger('TeamsCount', TeamsCount)
end;
+
+// Update values of screen dimensions and allow script to react to resolution change
+procedure ScriptOnScreenResize();
+begin
+ScriptSetInteger('ScreenHeight', cScreenHeight);
+ScriptSetInteger('ScreenWidth', cScreenWidth);
+ScriptCall('onScreenResize');
+end;
+
+
procedure ScriptLoad(name : shortstring);
var ret : LongInt;
s : shortstring;
@@ -1820,7 +1854,6 @@
// import some variables
ScriptSetInteger('LAND_WIDTH', LAND_WIDTH);
ScriptSetInteger('LAND_HEIGHT', LAND_HEIGHT);
-
ScriptSetString('L', cLocale);
// import game flags
@@ -1994,6 +2027,7 @@
lua_register(luaState, 'SetHogHat', @lc_sethoghat);
lua_register(luaState, 'PlaceGirder', @lc_placegirder);
lua_register(luaState, 'GetCurAmmoType', @lc_getcurammotype);
+lua_register(luaState, 'TestRectForObstacle', @lc_testrectforobstacle);
ScriptClearStack; // just to be sure stack is empty