diff options
-rw-r--r-- | src/misc_gui.cpp | 9 | ||||
-rw-r--r-- | src/openttd.cpp | 4 | ||||
-rw-r--r-- | src/saveload.cpp | 17 | ||||
-rw-r--r-- | src/saveload.h | 1 | ||||
-rw-r--r-- | src/screenshot.cpp | 10 |
5 files changed, 22 insertions, 19 deletions
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 1e11f9349..b38fcc6d3 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -1426,14 +1426,7 @@ struct SaveLoadWindow : public QueryStringBaseWindow { void GenerateFileName() { - /* Check if we are not a spectator who wants to generate a name.. - * Let's use the name of company #0 for now. */ - const Company *c = GetCompany(IsValidCompanyID(_local_company) ? _local_company : COMPANY_FIRST); - - SetDParam(0, c->index); - SetDParam(1, _date); - GetString(this->edit_str_buf, STR_4004, &this->edit_str_buf[this->edit_str_size - 1]); - SanitizeFilename(this->edit_str_buf); + GenerateDefaultSaveName(this->edit_str_buf, &this->edit_str_buf[this->edit_str_size - 1]); } SaveLoadWindow(const WindowDesc *desc, SaveLoadDialogMode mode) : QueryStringBaseWindow(64, desc) diff --git a/src/openttd.cpp b/src/openttd.cpp index a8f08bb9c..488c969bd 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1110,9 +1110,7 @@ static void DoAutosave() #endif /* PSP */ if (_settings_client.gui.keep_all_autosave && _local_company != COMPANY_SPECTATOR) { - SetDParam(0, _local_company); - SetDParam(1, _date); - GetString(buf, STR_4004, lastof(buf)); + GenerateDefaultSaveName(buf, lastof(buf)); strecat(buf, ".sav", lastof(buf)); } else { /* generate a savegame name and number according to _settings_client.gui.max_num_autosaves */ diff --git a/src/saveload.cpp b/src/saveload.cpp index 968e48911..79c81731c 100644 --- a/src/saveload.cpp +++ b/src/saveload.cpp @@ -29,6 +29,8 @@ #include "functions.h" #include "core/endian_func.hpp" #include "vehicle_base.h" +#include "company_func.h" +#include "date_func.h" #include "autoreplace_base.h" #include "statusbar_gui.h" #include "fileio_func.h" @@ -1817,6 +1819,21 @@ void DoExitSave() SaveOrLoad("exit.sav", SL_SAVE, AUTOSAVE_DIR); } +/** + * Fill the buffer with the default name for a savegame *or* screenshot. + * @param buf the buffer to write to. + * @param last the last element in the buffer. + */ +void GenerateDefaultSaveName(char *buf, const char *last) +{ + /* Check if we are not a spectator who wants to generate a name.. + * Let's use the name of company #0 for now. */ + SetDParam(0, IsValidCompanyID(_local_company) ? _local_company : COMPANY_FIRST); + SetDParam(1, _date); + GetString(buf, STR_4004, last); + SanitizeFilename(buf); +} + #if 0 /** * Function to get the type of the savegame by looking at the file header. diff --git a/src/saveload.h b/src/saveload.h index 68e55afa7..e52045a83 100644 --- a/src/saveload.h +++ b/src/saveload.h @@ -35,6 +35,7 @@ enum SavegameType { SGT_OTTD ///< OTTD savegame }; +void GenerateDefaultSaveName(char *buf, const char *last); void SetSaveLoadError(uint16 str); const char *GetSaveLoadErrorString(); SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb); diff --git a/src/screenshot.cpp b/src/screenshot.cpp index f667ecf2f..ced474d91 100644 --- a/src/screenshot.cpp +++ b/src/screenshot.cpp @@ -17,7 +17,7 @@ #include "core/alloc_func.hpp" #include "core/endian_func.hpp" #include "map_func.h" -#include "date_func.h" +#include "saveload.h" #include "company_func.h" #include "table/strings.h" @@ -550,13 +550,10 @@ static char *MakeScreenshotName(const char *ext) if (_game_mode == GM_EDITOR || _game_mode == GM_MENU || _local_company == COMPANY_SPECTATOR) { strecpy(_screenshot_name, "screenshot", lastof(_screenshot_name)); } else { - SetDParam(0, _local_company); - SetDParam(1, _date); - GetString(_screenshot_name, STR_4004, lastof(_screenshot_name)); + GenerateDefaultSaveName(_screenshot_name, lastof(_screenshot_name)); } /* Add extension to screenshot file */ - SanitizeFilename(_screenshot_name); len = strlen(_screenshot_name); snprintf(&_screenshot_name[len], lengthof(_screenshot_name) - len, ".%s", ext); @@ -619,6 +616,3 @@ bool MakeScreenshot() default: return false; } } - - - |