(svn r14744) -Fix [FS#2474]: don't tell loading a savegame failed in two distinct ways.

pull/155/head
rubidium 16 years ago
parent c88a6199a7
commit 634842525b

@ -799,9 +799,8 @@ static void StartScenario()
/* invalid type */ /* invalid type */
if (_file_to_saveload.mode == SL_INVALID) { if (_file_to_saveload.mode == SL_INVALID) {
DEBUG(sl, 0, "Savegame is obsolete or invalid format: '%s'", _file_to_saveload.name); DEBUG(sl, 0, "Savegame is obsolete or invalid format: '%s'", _file_to_saveload.name);
SetDParam(0, STR_JUST_RAW_STRING); SetDParamStr(0, GetSaveLoadErrorString());
SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_JUST_RAW_STRING, 0, 0);
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
_game_mode = GM_MENU; _game_mode = GM_MENU;
return; return;
} }
@ -816,9 +815,8 @@ static void StartScenario()
/* Load game */ /* Load game */
if (SaveOrLoad(_file_to_saveload.name, _file_to_saveload.mode, SCENARIO_DIR) != SL_OK) { if (SaveOrLoad(_file_to_saveload.name, _file_to_saveload.mode, SCENARIO_DIR) != SL_OK) {
LoadIntroGame(); LoadIntroGame();
SetDParam(0, STR_JUST_RAW_STRING); SetDParamStr(0, GetSaveLoadErrorString());
SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_JUST_RAW_STRING, 0, 0);
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
} }
_settings_game.difficulty = _settings_newgame.difficulty; _settings_game.difficulty = _settings_newgame.difficulty;
@ -929,9 +927,8 @@ void SwitchMode(int new_mode)
if (!SafeSaveOrLoad(_file_to_saveload.name, _file_to_saveload.mode, GM_NORMAL, NO_DIRECTORY)) { if (!SafeSaveOrLoad(_file_to_saveload.name, _file_to_saveload.mode, GM_NORMAL, NO_DIRECTORY)) {
LoadIntroGame(); LoadIntroGame();
SetDParam(0, STR_JUST_RAW_STRING); SetDParamStr(0, GetSaveLoadErrorString());
SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_JUST_RAW_STRING, 0, 0);
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
} else { } else {
if (_saveload_mode == SLD_LOAD_SCENARIO) { if (_saveload_mode == SLD_LOAD_SCENARIO) {
StartupEngines(); StartupEngines();
@ -971,9 +968,8 @@ void SwitchMode(int new_mode)
SetLocalCompany(OWNER_NONE); SetLocalCompany(OWNER_NONE);
_settings_newgame.game_creation.starting_year = _cur_year; _settings_newgame.game_creation.starting_year = _cur_year;
} else { } else {
SetDParam(0, STR_JUST_RAW_STRING); SetDParamStr(0, GetSaveLoadErrorString());
SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_JUST_RAW_STRING, 0, 0);
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
} }
break; break;
} }
@ -986,9 +982,8 @@ void SwitchMode(int new_mode)
/* Make network saved games on pause compatible to singleplayer */ /* Make network saved games on pause compatible to singleplayer */
if (_networking && _pause_game == 1) _pause_game = 2; if (_networking && _pause_game == 1) _pause_game = 2;
if (SaveOrLoad(_file_to_saveload.name, SL_SAVE, NO_DIRECTORY) != SL_OK) { if (SaveOrLoad(_file_to_saveload.name, SL_SAVE, NO_DIRECTORY) != SL_OK) {
SetDParam(0, STR_JUST_RAW_STRING); SetDParamStr(0, GetSaveLoadErrorString());
SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_JUST_RAW_STRING, 0, 0);
ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0);
} else { } else {
DeleteWindowById(WC_SAVELOAD, 0); DeleteWindowById(WC_SAVELOAD, 0);
} }

@ -1551,7 +1551,7 @@ const char *GetSaveLoadErrorString()
static void SaveFileError() static void SaveFileError()
{ {
SetDParamStr(0, GetSaveLoadErrorString()); SetDParamStr(0, GetSaveLoadErrorString());
ShowErrorMessage(STR_012D, STR_NULL, 0, 0); ShowErrorMessage(STR_JUST_RAW_STRING, STR_NULL, 0, 0);
SaveFileDone(); SaveFileDone();
} }
@ -1603,8 +1603,8 @@ static SaveOrLoadResult SaveFileToDisk(bool threaded)
AbortSaveLoad(); AbortSaveLoad();
if (_sl.excpt_uninit != NULL) _sl.excpt_uninit(); if (_sl.excpt_uninit != NULL) _sl.excpt_uninit();
ShowInfo(GetSaveLoadErrorString()); /* Skip the "color" character */
DEBUG(sl, 0, GetSaveLoadErrorString()); DEBUG(sl, 0, GetSaveLoadErrorString() + 3);
if (threaded) { if (threaded) {
SetAsyncSaveFinish(SaveFileError); SetAsyncSaveFinish(SaveFileError);
@ -1803,7 +1803,7 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb)
if (_sl.excpt_uninit != NULL) _sl.excpt_uninit(); if (_sl.excpt_uninit != NULL) _sl.excpt_uninit();
/* Skip the "color" character */ /* Skip the "color" character */
ShowInfoF(GetSaveLoadErrorString() + 3); DEBUG(sl, 0, GetSaveLoadErrorString() + 3);
/* A saver/loader exception!! reinitialize all variables to prevent crash! */ /* A saver/loader exception!! reinitialize all variables to prevent crash! */
return (mode == SL_LOAD) ? SL_REINIT : SL_ERROR; return (mode == SL_LOAD) ? SL_REINIT : SL_ERROR;

Loading…
Cancel
Save