summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-03-27 15:29:42 +0000
committerrubidium <rubidium@openttd.org>2008-03-27 15:29:42 +0000
commit6d9c7ef31528f9442fdeeb38dfb6345f0ef06ed2 (patch)
tree826e422a8c419570d4de6ad81686f1aec0718072 /src/settings.cpp
parent5d06dcb37e669bce664975cf8698efb6566f3bcf (diff)
downloadopenttd-6d9c7ef31528f9442fdeeb38dfb6345f0ef06ed2.tar.xz
(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.
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp31
1 files changed, 31 insertions, 0 deletions
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);
}