hedgewars/uScript.pas
changeset 10618 7b72cf27cd04
parent 10617 457730f03c47
child 10634 35d059bd0932
equal deleted inserted replaced
10617:457730f03c47 10618:7b72cf27cd04
  2317         if length(PointsBuffer) > 0 then
  2317         if length(PointsBuffer) > 0 then
  2318             ScriptFlushPoints();
  2318             ScriptFlushPoints();
  2319     lc_flushPoints:= 0
  2319     lc_flushPoints:= 0
  2320 end;
  2320 end;
  2321 
  2321 
  2322 // stuff for testing the lua API
  2322 // stuff for lua tests
  2323 function lc_endluatest(L : Plua_State) : LongInt; Cdecl;
  2323 function lc_endluatest(L : Plua_State) : LongInt; Cdecl;
  2324 begin
  2324 var rstring: shortstring;
  2325     if CheckLuaParamCount(L, 1, 'EndLuaAPITest', 'LUA_API_TEST_SUCCESSFUL or LUA_API_TEST_FAILED') then
  2325 const
  2326         begin
  2326     call = 'EndLuaTest';
  2327         WriteLnToConsole('Lua test finished');
  2327     params = 'TEST_SUCCESSFUL or TEST_FAILED';
  2328         halt(lua_tointeger(L, 1));
  2328 begin
  2329         end
  2329     if CheckLuaParamCount(L, 1, call, params) then
  2330     else
  2330         begin
  2331         lua_pushnil(L);
  2331 
       
  2332         case lua_tointeger(L, 1) of
       
  2333             HaltTestSuccess : rstring:= 'Success';
       
  2334             HaltTestLuaError: rstring:= 'FAILED';
       
  2335         else
       
  2336             begin
       
  2337             LuaCallError('Parameter must be either ' + params, call, params);
       
  2338             exit(0);
       
  2339             end;
       
  2340         end;
       
  2341 
       
  2342         if cTestLua then
       
  2343             begin
       
  2344             WriteLnToConsole('Lua test finished, result: ' + rstring);
       
  2345             halt(lua_tointeger(L, 1));
       
  2346             end
       
  2347         else LuaError('Not in lua test mode, engine will keep running. Reported test result: ' + rstring);
       
  2348 
       
  2349         end;
       
  2350 
  2332     lc_endluatest:= 0;
  2351     lc_endluatest:= 0;
  2333 end;
  2352 end;
  2334 ///////////////////
  2353 ///////////////////
  2335 
  2354 
  2336 procedure ScriptPrintStack;
  2355 procedure ScriptPrintStack;
  3020 
  3039 
  3021 lua_register(luaState, _P'SetGearAIHints', @lc_setaihintsongear);
  3040 lua_register(luaState, _P'SetGearAIHints', @lc_setaihintsongear);
  3022 lua_register(luaState, _P'HedgewarsScriptLoad', @lc_hedgewarsscriptload);
  3041 lua_register(luaState, _P'HedgewarsScriptLoad', @lc_hedgewarsscriptload);
  3023 lua_register(luaState, _P'DeclareAchievement', @lc_declareachievement);
  3042 lua_register(luaState, _P'DeclareAchievement', @lc_declareachievement);
  3024 
  3043 
  3025 if cTestLua then
  3044 ScriptSetInteger('TEST_SUCCESSFUL'   , HaltTestSuccess);
  3026     begin
  3045 ScriptSetInteger('TEST_FAILED'       , HaltTestFailed);
  3027     ScriptSetInteger('TEST_SUCCESSFUL'   , HaltTestSuccess);
  3046 lua_register(luaState, _P'EndLuaTest', @lc_endluatest);
  3028     ScriptSetInteger('TEST_FAILED'       , HaltTestFailed);
       
  3029     lua_register(luaState, _P'EndLuaTest', @lc_endluatest);
       
  3030     end;
       
  3031 
  3047 
  3032 ScriptClearStack; // just to be sure stack is empty
  3048 ScriptClearStack; // just to be sure stack is empty
  3033 ScriptLoaded:= false;
  3049 ScriptLoaded:= false;
  3034 end;
  3050 end;
  3035 
  3051