mirror of https://github.com/OpenTTD/OpenTTD.git
The save/load error messages were combined using string parameters, rather than using the built-in functionality of error dialogs.
This commit is contained in:
parent
92a171c3e0
commit
6f36f3d714
|
@ -4899,9 +4899,9 @@ STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Estimate
|
||||||
STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Saving still in progress,{}please wait until it is finished!
|
STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Saving still in progress,{}please wait until it is finished!
|
||||||
STR_ERROR_AUTOSAVE_FAILED :{WHITE}Autosave failed
|
STR_ERROR_AUTOSAVE_FAILED :{WHITE}Autosave failed
|
||||||
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Unable to read drive
|
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Unable to read drive
|
||||||
STR_ERROR_GAME_SAVE_FAILED :{WHITE}Game Save Failed{}{STRING1}
|
STR_ERROR_GAME_SAVE_FAILED :{WHITE}Game save failed...
|
||||||
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Unable to delete file
|
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Unable to delete file
|
||||||
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Game Load Failed{}{STRING1}
|
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Game load failed...
|
||||||
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Internal error: {RAW_STRING}
|
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Internal error: {RAW_STRING}
|
||||||
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Broken savegame - {RAW_STRING}
|
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Broken savegame - {RAW_STRING}
|
||||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Savegame is made with newer version
|
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Savegame is made with newer version
|
||||||
|
|
|
@ -1132,8 +1132,7 @@ void SwitchToMode(SwitchMode new_mode)
|
||||||
ResetWindowSystem();
|
ResetWindowSystem();
|
||||||
|
|
||||||
if (!SafeLoad(_file_to_saveload.name, _file_to_saveload.file_op, _file_to_saveload.detail_ftype, GM_NORMAL, NO_DIRECTORY)) {
|
if (!SafeLoad(_file_to_saveload.name, _file_to_saveload.file_op, _file_to_saveload.detail_ftype, GM_NORMAL, NO_DIRECTORY)) {
|
||||||
SetDParamStr(0, GetSaveLoadErrorString());
|
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WL_CRITICAL);
|
||||||
ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_CRITICAL);
|
|
||||||
} else {
|
} else {
|
||||||
if (_file_to_saveload.abstract_ftype == FT_SCENARIO) {
|
if (_file_to_saveload.abstract_ftype == FT_SCENARIO) {
|
||||||
OnStartScenario();
|
OnStartScenario();
|
||||||
|
@ -1175,8 +1174,7 @@ void SwitchToMode(SwitchMode new_mode)
|
||||||
/* Cancel the saveload pausing */
|
/* Cancel the saveload pausing */
|
||||||
Command<CMD_PAUSE>::Post(PM_PAUSED_SAVELOAD, false);
|
Command<CMD_PAUSE>::Post(PM_PAUSED_SAVELOAD, false);
|
||||||
} else {
|
} else {
|
||||||
SetDParamStr(0, GetSaveLoadErrorString());
|
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WL_CRITICAL);
|
||||||
ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_CRITICAL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateSocialIntegration(GM_EDITOR);
|
UpdateSocialIntegration(GM_EDITOR);
|
||||||
|
@ -1211,8 +1209,7 @@ void SwitchToMode(SwitchMode new_mode)
|
||||||
case SM_SAVE_GAME: // Save game.
|
case SM_SAVE_GAME: // Save game.
|
||||||
/* Make network saved games on pause compatible to singleplayer mode */
|
/* Make network saved games on pause compatible to singleplayer mode */
|
||||||
if (SaveOrLoad(_file_to_saveload.name, SLO_SAVE, DFT_GAME_FILE, NO_DIRECTORY) != SL_OK) {
|
if (SaveOrLoad(_file_to_saveload.name, SLO_SAVE, DFT_GAME_FILE, NO_DIRECTORY) != SL_OK) {
|
||||||
SetDParamStr(0, GetSaveLoadErrorString());
|
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WL_ERROR);
|
||||||
ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_ERROR);
|
|
||||||
} else {
|
} else {
|
||||||
CloseWindowById(WC_SAVELOAD, 0);
|
CloseWindowById(WC_SAVELOAD, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2760,22 +2760,23 @@ void SetSaveLoadError(StringID str)
|
||||||
_sl.error_str = str;
|
_sl.error_str = str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get the string representation of the error message */
|
/** Return the appropriate initial string for an error depending on whether we are saving or loading. */
|
||||||
const char *GetSaveLoadErrorString()
|
StringID GetSaveLoadErrorType()
|
||||||
{
|
{
|
||||||
SetDParam(0, _sl.error_str);
|
return _sl.action == SLA_SAVE ? STR_ERROR_GAME_SAVE_FAILED : STR_ERROR_GAME_LOAD_FAILED;
|
||||||
SetDParamStr(1, _sl.extra_msg);
|
}
|
||||||
|
|
||||||
static std::string err_str;
|
/** Return the description of the error. **/
|
||||||
err_str = GetString(_sl.action == SLA_SAVE ? STR_ERROR_GAME_SAVE_FAILED : STR_ERROR_GAME_LOAD_FAILED);
|
StringID GetSaveLoadErrorMessage()
|
||||||
return err_str.c_str();
|
{
|
||||||
|
SetDParamStr(0, _sl.extra_msg);
|
||||||
|
return _sl.error_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Show a gui message when saving has failed */
|
/** Show a gui message when saving has failed */
|
||||||
static void SaveFileError()
|
static void SaveFileError()
|
||||||
{
|
{
|
||||||
SetDParamStr(0, GetSaveLoadErrorString());
|
ShowErrorMessage(GetSaveLoadErrorType(), GetSaveLoadErrorMessage(), WL_ERROR);
|
||||||
ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_ERROR);
|
|
||||||
SaveFileDone();
|
SaveFileDone();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2810,7 +2811,7 @@ static SaveOrLoadResult SaveFileToDisk(bool threaded)
|
||||||
* cancelled due to a client disconnecting. */
|
* cancelled due to a client disconnecting. */
|
||||||
if (_sl.error_str != STR_NETWORK_ERROR_LOSTCONNECTION) {
|
if (_sl.error_str != STR_NETWORK_ERROR_LOSTCONNECTION) {
|
||||||
/* Skip the "colour" character */
|
/* Skip the "colour" character */
|
||||||
Debug(sl, 0, "{}", GetSaveLoadErrorString() + 3);
|
Debug(sl, 0, "{}", GetString(GetSaveLoadErrorType()).substr(3) + GetString(GetSaveLoadErrorMessage()));
|
||||||
asfp = SaveFileError;
|
asfp = SaveFileError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3128,7 +3129,7 @@ SaveOrLoadResult SaveOrLoad(const std::string &filename, SaveLoadOperation fop,
|
||||||
ClearSaveLoadState();
|
ClearSaveLoadState();
|
||||||
|
|
||||||
/* Skip the "colour" character */
|
/* Skip the "colour" character */
|
||||||
if (fop != SLO_CHECK) Debug(sl, 0, "{}", GetSaveLoadErrorString() + 3);
|
if (fop != SLO_CHECK) Debug(sl, 0, "{}", GetString(GetSaveLoadErrorType()).substr(3) + GetString(GetSaveLoadErrorMessage()));
|
||||||
|
|
||||||
/* A saver/loader exception!! reinitialize all variables to prevent crash! */
|
/* A saver/loader exception!! reinitialize all variables to prevent crash! */
|
||||||
return (fop == SLO_LOAD) ? SL_REINIT : SL_ERROR;
|
return (fop == SLO_LOAD) ? SL_REINIT : SL_ERROR;
|
||||||
|
|
|
@ -416,7 +416,8 @@ extern FileToSaveLoad _file_to_saveload;
|
||||||
|
|
||||||
std::string GenerateDefaultSaveName();
|
std::string GenerateDefaultSaveName();
|
||||||
void SetSaveLoadError(StringID str);
|
void SetSaveLoadError(StringID str);
|
||||||
const char *GetSaveLoadErrorString();
|
StringID GetSaveLoadErrorType();
|
||||||
|
StringID GetSaveLoadErrorMessage();
|
||||||
SaveOrLoadResult SaveOrLoad(const std::string &filename, SaveLoadOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded = true);
|
SaveOrLoadResult SaveOrLoad(const std::string &filename, SaveLoadOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded = true);
|
||||||
void WaitTillSaved();
|
void WaitTillSaved();
|
||||||
void ProcessAsyncSaveFinish();
|
void ProcessAsyncSaveFinish();
|
||||||
|
|
Loading…
Reference in New Issue