hedgewars/uScript.pas
changeset 13726 a62408ee8281
parent 13723 61095cb5f58a
child 13727 eeeea1cfaf08
--- a/hedgewars/uScript.pas	Fri Aug 31 20:35:13 2018 +0200
+++ b/hedgewars/uScript.pas	Fri Aug 31 21:07:07 2018 +0200
@@ -34,7 +34,7 @@
 procedure ScriptPrintStack;
 procedure ScriptClearStack;
 
-procedure ScriptLoad(name : shortstring; mustExist : boolean);
+function  ScriptLoad(name : shortstring; mustExist : boolean) : boolean;
 procedure ScriptOnPreviewInit;
 procedure ScriptOnGameInit;
 procedure ScriptOnScreenResize;
@@ -3066,12 +3066,16 @@
 
 
 function lc_hedgewarsscriptload(L : Plua_State) : LongInt; Cdecl;
+var success : boolean;
 begin
     if CheckLuaParamCount(L, 1, 'HedgewarsScriptLoad', 'scriptPath') then
-        ScriptLoad(lua_tostring(L, 1), true)
+        begin
+        success:= ScriptLoad(lua_tostring(L, 1), false);
+        lua_pushboolean(L, success);
+        end
     else
-        lua_pushnil(L);
-    lc_hedgewarsscriptload:= 0;
+        lua_pushboolean(L, false);
+    lc_hedgewarsscriptload:= 1;
 end;
 
 
@@ -3560,7 +3564,7 @@
 end;
 // ⭒⭐⭒✨⭐⭒✨⭐☆✨⭐✨✧✨☆✨✧✨☆⭒✨☆⭐⭒☆✧✨⭒✨⭐✧⭒☆⭒✧☆✨✧⭐☆✨☆✧⭒✨✧⭒☆⭐☆✧
 
-procedure ScriptLoad(name : shortstring; mustExist : boolean);
+function ScriptLoad(name : shortstring; mustExist : boolean) : boolean;
 var ret : LongInt;
       s : shortstring;
       f : PFSFile;
@@ -3579,6 +3583,7 @@
         OutError('Script not found: ' + name, true)
     else
         AddFileLog('[LUA] Script not found: ' + name);
+    ScriptLoad:= false;
     exit;
     end;
 
@@ -3602,13 +3607,15 @@
     begin
     LuaError('Failed to load ' + name + '(error ' + IntToStr(ret) + ')');
     LuaError(lua_tostring(luaState, -1));
+    ScriptLoad:= false;
     end
 else
     begin
     WriteLnToConsole('Lua: ' + name + ' loaded');
     // call the script file
     lua_pcall(luaState, 0, 0, 0);
-    ScriptLoaded:= true
+    ScriptLoaded:= true;
+    ScriptLoad:= true;
     end;
 end;