/** * @brief Saves all the player's game data. * * @param writer XML writer to use. * @return 0 on success. */ static int save_data( xmlTextWriterPtr writer ) { /* the data itself */ if (diff_save(writer) < 0) return -1; /* Must save first or can get cleared. */ if (player_save(writer) < 0) return -1; if (missions_saveActive(writer) < 0) return -1; if (var_save(writer) < 0) return -1; if (pfaction_save(writer) < 0) return -1; if (hook_save(writer) < 0) return -1; if (space_sysSave(writer) < 0) return -1; return 0; }
/** * @brief Saves all the player's game data. * * @param writer XML writer to use. * @return 0 on success. */ static int save_data( xmlTextWriterPtr writer ) { /* the data itself */ if (diff_save(writer) < 0) return -1; /* Must save first or can get cleared. */ if (player_save(writer) < 0) return -1; if (missions_saveActive(writer) < 0) return -1; if (events_saveActive(writer) < 0) return -1; if (news_saveArticles( writer ) < 0) return -1; if (var_save(writer) < 0) return -1; if (pfaction_save(writer) < 0) return -1; if (hook_save(writer) < 0) return -1; if (space_transientAssetsSave(writer) < 0) return -1; if (space_transientSystemsSave(writer) < 0) return -1; if (space_transientJumpsSave(writer) < 0) return -1; if (space_customData(writer) < 0) return -1; if (space_sysSave(writer) < 0) return -1; return 0; }
void lj_vmevent_call(lua_State *L, ptrdiff_t argbase, int keeponstack) { global_State *g = G(L); uint8_t oldmask = g->vmevmask; uint8_t oldh = hook_save(g); int status; g->vmevmask = 0; /* Disable all events. */ hook_vmevent(g); status = lj_vm_pcall(L, restorestack(L, argbase), 0+1+keeponstack, 0); if (LJ_UNLIKELY(status)) { /* Really shouldn't use stderr here, but where else to complain? */ L->top--; fprintf(stderr, "VM handler failed: %s\n", tvisstr(L->top) ? strVdata(L->top) : "?"); } hook_restore(g, oldh); if (g->vmevmask != VMEVENT_NOCACHE) g->vmevmask = oldmask; /* Restore event mask, but not if not modified. */ }