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 |