(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.
authorrubidium
Thu, 27 Mar 2008 15:29:42 +0000
changeset 8747 d6c53cb184f3
parent 8746 cbb81aadd0b7
child 8748 72c372800b54
(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/road_cmd.cpp
src/settings.cpp
--- a/src/road_cmd.cpp	Thu Mar 27 14:46:27 2008 +0000
+++ b/src/road_cmd.cpp	Thu Mar 27 15:29:42 2008 +0000
@@ -235,9 +235,9 @@
 			 * @li on steep slopes
 			 * @li if the bits of the other roadtypes result in another foundation
 			 * @li if build on slopes is disabled */
-			if (IsSteepSlope(tileh) || IsStraightRoad(other) &&
-					(other & _invalid_tileh_slopes_road[0][tileh & SLOPE_ELEVATED]) != ROAD_NONE ||
-					tileh != SLOPE_FLAT && !_patches.build_on_slopes) {
+			if (IsSteepSlope(tileh) || (IsStraightRoad(other) &&
+					(other & _invalid_tileh_slopes_road[0][tileh & SLOPE_ELEVATED]) != ROAD_NONE) ||
+					(tileh != SLOPE_FLAT && !_patches.build_on_slopes)) {
 				pieces |= MirrorRoadBits(pieces);
 			}
 
--- a/src/settings.cpp	Thu Mar 27 14:46:27 2008 +0000
+++ b/src/settings.cpp	Thu Mar 27 15:29:42 2008 +0000
@@ -1753,6 +1753,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)
 {
@@ -1817,6 +1847,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);
 }