summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryexo <yexo@openttd.org>2010-09-01 23:41:56 +0000
committeryexo <yexo@openttd.org>2010-09-01 23:41:56 +0000
commit7b0fd807fb50df320debdd8ce5661cae625b04d9 (patch)
tree2201753a22d5fdbc45046110d692497471e6b274
parentc07fdab16c4a89dda13efa72fdb5c081872de1ce (diff)
downloadopenttd-7b0fd807fb50df320debdd8ce5661cae625b04d9.tar.xz
(svn r20717) -Fix [FS#4103]: water class was not set for stations
-rw-r--r--src/saveload/afterload.cpp9
-rw-r--r--src/station_map.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp
index f636c0cc8..61183f30c 100644
--- a/src/saveload/afterload.cpp
+++ b/src/saveload/afterload.cpp
@@ -2288,6 +2288,15 @@ bool AfterLoadGame()
}
}
+ if (CheckSavegameVersion(149)) {
+ for (TileIndex t = 0; t < map_size; t++) {
+ if (!IsTileType(t, MP_STATION)) continue;
+ if (!IsBuoy(t) && !IsOilRig(t) && !(IsDock(t) && GetTileSlope(t, NULL) == SLOPE_FLAT)) {
+ SetWaterClass(t, WATER_CLASS_INVALID);
+ }
+ }
+ }
+
/* Road stops is 'only' updating some caches */
AfterLoadRoadStops();
AfterLoadLabelMaps();
diff --git a/src/station_map.h b/src/station_map.h
index c8204c40e..8d3bcb54d 100644
--- a/src/station_map.h
+++ b/src/station_map.h
@@ -533,6 +533,7 @@ static inline void MakeStation(TileIndex t, Owner o, StationID sid, StationType
{
SetTileType(t, MP_STATION);
SetTileOwner(t, o);
+ SetWaterClass(t, wc);
_m[t].m2 = sid;
_m[t].m3 = 0;
_m[t].m4 = 0;