From 6d9c7ef31528f9442fdeeb38dfb6345f0ef06ed2 Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 27 Mar 2008 15:29:42 +0000 Subject: (svn r12443) -Add: OpenTTDs version to openttd.cfg, just so we do not need to keep to ask people for their version number because it's likely they give you the wrong answer anyway. --- src/settings.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/settings.cpp') diff --git a/src/settings.cpp b/src/settings.cpp index 2debd509f..46dfd72d9 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1753,6 +1753,36 @@ static void NewsDisplaySaveConfig(IniFile *ini, const char *grpname, uint news_d } } +/** + * Save the version of OpenTTD to the ini file. + * @param ini the ini to write to + */ +static void SaveVersionInConfig(IniFile *ini) +{ + extern const char _openttd_revision[]; + extern uint32 _openttd_newgrf_version; + + IniGroup *group = ini_getgroup(ini, "version", -1); + + if (group == NULL) return; + group->item = NULL; + IniItem **item = &group->item; + + char version[9]; + snprintf(version, lengthof(version), "%08X", _openttd_newgrf_version); + + const char *versions[][2] = { + { "version_string", _openttd_revision }, + { "version_number", version } + }; + + for (uint i = 0; i < lengthof(versions); i++) { + *item = ini_item_alloc(group, versions[i][0], strlen(versions[i][0])); + (*item)->value = (char*)pool_strdup(&ini->pool, versions[i][1], strlen(versions[i][1])); + item = &(*item)->next; + } +} + /* Save a GRF configuration to the given group name */ static void GRFSaveConfig(IniFile *ini, const char *grpname, const GRFConfig *list) { @@ -1817,6 +1847,7 @@ void SaveToConfig() GRFSaveConfig(ini, "newgrf", _grfconfig_newgame); GRFSaveConfig(ini, "newgrf-static", _grfconfig_static); NewsDisplaySaveConfig(ini, "news_display", _news_display_opt); + SaveVersionInConfig(ini); ini_save(_config_file, ini); ini_free(ini); } -- cgit v1.2.3-54-g00ecf