Project

General

Profile

Bug #1826 » 0024-savegame-Restore-sane-state-after-failures-in-savega.patch

S3_2 - Marko Lindqvist, 12/25/2025 09:31 AM

View differences:

server/savegame/savegame2.c
#include "report.h"
#include "ruleset.h"
#include "sanitycheck.h"
#include "savecompat.h"
#include "score.h"
#include "settings.h"
#include "spacerace.h"
......
/* server/scripting */
#include "script_server.h"
/* server/savegame */
#include "savecompat.h"
#include "savemain.h"
/* ai */
#include "aitraits.h"
#include "difficulty.h"
......
if (!sg_success) {
log_error("Failure loading savegame!");
/* Try to get the server back to a vaguely sane state */
server_game_free();
server_game_init(FALSE);
load_rulesets(NULL, NULL, FALSE, NULL, TRUE, FALSE, TRUE);
save_restore_sane_state();
}
}
server/savegame/savegame3.c
#include "report.h"
#include "ruleset.h"
#include "sanitycheck.h"
#include "savecompat.h"
#include "score.h"
#include "settings.h"
#include "spacerace.h"
......
/* server/scripting */
#include "script_server.h"
/* server/savegame */
#include "savecompat.h"
#include "savemain.h"
/* ai */
#include "aitraits.h"
#include "difficulty.h"
......
if (!sg_success) {
log_error("Failure loading savegame!");
/* Try to get the server back to a vaguely sane state */
server_game_free();
server_game_init(FALSE);
load_rulesets(NULL, NULL, FALSE, NULL, TRUE, FALSE, TRUE);
save_restore_sane_state();
}
}
server/savegame/savemain.c
#include "console.h"
#include "notify.h"
#include "plrhand.h"
#include "ruleset.h"
/* server/savegame */
#include "savegame2.h"
......
if (!savefile_options) {
log_error("Missing savefile options. Can not load the savegame.");
save_restore_sane_state();
return;
}
......
log_verbose("loading savefile in 2.3 - 2.6 format ...");
savegame2_load(sfile);
} else {
log_error("Too old savegame format not supported any more.");
log_error("Too old savegame. Format not supported any more.");
save_restore_sane_state();
return;
}
......
}
}
/************************************************************************//**
Restore the server to sane state after savegame loading failure.
****************************************************************************/
void save_restore_sane_state(void)
{
/* Try to get the server back to a vaguely sane state */
server_game_free();
server_game_init(FALSE);
load_rulesets(NULL, NULL, FALSE, NULL, TRUE, FALSE, TRUE);
}
server/savegame/savemain.h
bool scenario);
void save_system_close(void);
void save_restore_sane_state(void);
#endif /* FC__SAVEMAIN_H */
(4-4/4)