diff options
author | rubidium <rubidium@openttd.org> | 2008-07-17 13:47:04 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-07-17 13:47:04 +0000 |
commit | 5a94972c2db660c9cc5fe5d79ea095af04456a21 (patch) | |
tree | c5968a407194cba5120766750d96971df91cde2f /src/openttd.cpp | |
parent | 31d283c6c88464837dd57b78f75394367c4d40f7 (diff) | |
download | openttd-5a94972c2db660c9cc5fe5d79ea095af04456a21.tar.xz |
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
-Codechange: remove all BindCString and related functions and replace it by RAW_STRING which prints the C-string raw pointer that is on the 'print stack'.
Diffstat (limited to 'src/openttd.cpp')
-rw-r--r-- | src/openttd.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp index 817aace13..8c71b390e 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -758,7 +758,8 @@ static void StartScenario() /* invalid type */ if (_file_to_saveload.mode == SL_INVALID) { DEBUG(sl, 0, "Savegame is obsolete or invalid format: '%s'", _file_to_saveload.name); - SetDParamStr(0, GetSaveLoadErrorString()); + SetDParam(0, STR_JUST_RAW_STRING); + SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0); _game_mode = GM_MENU; return; @@ -774,7 +775,8 @@ static void StartScenario() /* Load game */ if (SaveOrLoad(_file_to_saveload.name, _file_to_saveload.mode, SCENARIO_DIR) != SL_OK) { LoadIntroGame(); - SetDParamStr(0, GetSaveLoadErrorString()); + SetDParam(0, STR_JUST_RAW_STRING); + SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0); } @@ -886,7 +888,8 @@ void SwitchMode(int new_mode) if (!SafeSaveOrLoad(_file_to_saveload.name, _file_to_saveload.mode, GM_NORMAL, NO_DIRECTORY)) { LoadIntroGame(); - SetDParamStr(0, GetSaveLoadErrorString()); + SetDParam(0, STR_JUST_RAW_STRING); + SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0); } else { if (_saveload_mode == SLD_LOAD_SCENARIO) { @@ -927,7 +930,8 @@ void SwitchMode(int new_mode) SetLocalPlayer(OWNER_NONE); _settings_newgame.game_creation.starting_year = _cur_year; } else { - SetDParamStr(0, GetSaveLoadErrorString()); + SetDParam(0, STR_JUST_RAW_STRING); + SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0); } break; @@ -941,7 +945,8 @@ void SwitchMode(int new_mode) /* Make network saved games on pause compatible to singleplayer */ if (_networking && _pause_game == 1) _pause_game = 2; if (SaveOrLoad(_file_to_saveload.name, SL_SAVE, NO_DIRECTORY) != SL_OK) { - SetDParamStr(0, GetSaveLoadErrorString()); + SetDParam(0, STR_JUST_RAW_STRING); + SetDParamStr(1, GetSaveLoadErrorString()); ShowErrorMessage(INVALID_STRING_ID, STR_012D, 0, 0); } else { DeleteWindowById(WC_SAVELOAD, 0); |