MCPcopy Create free account
hub / github.com/TASEmulators/fceux / CallRegisteredLuaSaveFunctions

Function CallRegisteredLuaSaveFunctions

src/lua-engine.cpp:1390–1420  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1388
1389
1390void CallRegisteredLuaSaveFunctions(int savestateNumber, LuaSaveData& saveData)
1391{
1392 //lua_State* L = FCEU_GetLuaState();
1393 if(L)
1394 {
1395 lua_settop(L, 0);
1396 lua_getfield(L, LUA_REGISTRYINDEX, luaCallIDStrings[LUACALL_BEFORESAVE]);
1397
1398 if (lua_isfunction(L, -1))
1399 {
1400 lua_pushinteger(L, savestateNumber);
1401 int ret = lua_pcall(L, 1, LUA_MULTRET, 0);
1402 if (ret != 0) {
1403 // This is grounds for trashing the function
1404 lua_pushnil(L);
1405 lua_setfield(L, LUA_REGISTRYINDEX, luaCallIDStrings[LUACALL_BEFORESAVE]);
1406#ifdef __WIN_DRIVER__
1407 MessageBox(hAppWnd, lua_tostring(L, -1), "Lua Error in SAVE function", MB_OK);
1408#else
1409 LuaPrintfToWindowConsole("Lua error in registersave function: %s\n", lua_tostring(L, -1));
1410 fprintf(stderr, "Lua error in registersave function: %s\n", lua_tostring(L, -1));
1411#endif
1412 }
1413 saveData.SaveRecord(L, LUA_DATARECORDKEY);
1414 }
1415 else
1416 {
1417 lua_pop(L, 1);
1418 }
1419 }
1420}
1421
1422
1423void CallRegisteredLuaLoadFunctions(int savestateNumber, const LuaSaveData& saveData)

Callers 1

FCEUSS_SaveFunction · 0.85

Calls 8

lua_settopFunction · 0.85
lua_getfieldFunction · 0.85
lua_pushintegerFunction · 0.85
lua_pcallFunction · 0.85
lua_pushnilFunction · 0.85
lua_setfieldFunction · 0.85
SaveRecordMethod · 0.80
LuaPrintfToWindowConsoleFunction · 0.50

Tested by

no test coverage detected