summaryrefslogtreecommitdiff
path: root/src
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
commit63ab877c2763392008c9446dcd172880f2587745 (patch)
tree826e422a8c419570d4de6ad81686f1aec0718072 /src
parent2405ffd8557370d8af8e34e6b7c14e2b69ac19c1 (diff)
downloadopenttd-63ab877c2763392008c9446dcd172880f2587745.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')
-rw-r--r--src/road_cmd.cpp6
-rw-r--r--src/settings.cpp31
2 files changed, 34 insertions, 3 deletions
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
index 60bcf85c2..7906650ab 100644
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -235,9 +235,9 @@ static CommandCost RemoveRoad(TileIndex tile, uint32 flags, RoadBits pieces, Roa
* @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);
}
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);
}