Bug #1826 » 0024-savegame-Restore-sane-state-after-failures-in-savega.patch
| 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 */
|
||
- « Previous
- 1
- 2
- 3
- 4
- Next »