changeset 17096:a1e788474acf draft

(svn r21833) -Fix [FS#4427]: desync debug savegames might not be actually saved in case threading is enabled, which is enabled by default
author rubidium <rubidium@openttd.org>
date Tue, 18 Jan 2011 18:14:14 +0000
parents f9112c03b14d
children 6d078ffe055b
files src/genworld.cpp src/openttd.cpp src/saveload/saveload.cpp
diffstat 3 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/genworld.cpp
+++ b/src/genworld.cpp
@@ -188,7 +188,7 @@
 		if (_debug_desync_level > 0) {
 			char name[MAX_PATH];
 			snprintf(name, lengthof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date);
-			SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR);
+			SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR, false);
 		}
 	} catch (...) {
 		if (_cur_company.IsValid()) _cur_company.Restore();
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -1258,7 +1258,7 @@
 			/* Save the desync savegame if needed. */
 			char name[MAX_PATH];
 			snprintf(name, lengthof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date);
-			SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR);
+			SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR, false);
 		}
 
 		CheckCaches();
--- a/src/saveload/saveload.cpp
+++ b/src/saveload/saveload.cpp
@@ -2615,7 +2615,7 @@
 SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb, bool threaded)
 {
 	/* An instance of saving is already active, so don't go saving again */
-	if (_sl.saveinprogress && mode == SL_SAVE) {
+	if (_sl.saveinprogress && mode == SL_SAVE && threaded) {
 		/* if not an autosave, but a user action, show error message */
 		if (!_do_autosave) ShowErrorMessage(STR_ERROR_SAVE_STILL_IN_PROGRESS, INVALID_STRING_ID, WL_ERROR);
 		return SL_OK;