diff -r d7b2f0bbd0ec -r 1127b484af20 src/settings.cpp --- a/src/settings.cpp Fri Mar 28 11:51:58 2008 +0000 +++ b/src/settings.cpp Fri Mar 28 19:01:57 2008 +0000 @@ -1750,6 +1750,36 @@ } } +/** + * 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) { @@ -1814,6 +1844,7 @@ 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); }