summaryrefslogtreecommitdiff
path: root/src/saveload/afterload.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2010-08-11 14:14:06 +0000
committerrubidium <rubidium@openttd.org>2010-08-11 14:14:06 +0000
commitab5b0ceff219a2b12253dbd3e008cf4551608b8a (patch)
tree015b80c7c79cf97a7de8a1f8d1d82f4577895ea1 /src/saveload/afterload.cpp
parent43d6740f2d68af2223796eb2324086be18487b88 (diff)
downloadopenttd-ab5b0ceff219a2b12253dbd3e008cf4551608b8a.tar.xz
(svn r20446) -Codechange: unify the location of the water class
Diffstat (limited to 'src/saveload/afterload.cpp')
-rw-r--r--src/saveload/afterload.cpp41
1 files changed, 35 insertions, 6 deletions
diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp
index ce2ef047b..12cbf2e3e 100644
--- a/src/saveload/afterload.cpp
+++ b/src/saveload/afterload.cpp
@@ -1543,6 +1543,41 @@ bool AfterLoadGame()
}
}
+ /* The water class was moved/unified. */
+ if (CheckSavegameVersion(146)) {
+ for (TileIndex t = 0; t < map_size; t++) {
+ switch (GetTileType(t)) {
+ case MP_STATION:
+ switch (GetStationType(t)) {
+ case STATION_OILRIG:
+ case STATION_DOCK:
+ case STATION_BUOY:
+ SetWaterClass(t, (WaterClass)GB(_m[t].m3, 0, 2));
+ SB(_m[t].m3, 0, 2, 0);
+ break;
+
+ default:
+ SetWaterClass(t, WATER_CLASS_INVALID);
+ break;
+ }
+ break;
+
+ case MP_WATER:
+ SetWaterClass(t, (WaterClass)GB(_m[t].m3, 0, 2));
+ SB(_m[t].m3, 0, 2, 0);
+ break;
+
+ case MP_OBJECT:
+ SetWaterClass(t, WATER_CLASS_INVALID);
+ break;
+
+ default:
+ /* No water class. */
+ break;
+ }
+ }
+ }
+
if (CheckSavegameVersion(86)) {
for (TileIndex t = 0; t < map_size; t++) {
/* Move river flag and update canals to use water class */
@@ -2153,12 +2188,6 @@ bool AfterLoadGame()
FOR_ALL_DEPOTS(d) d->build_date = _date;
}
- if (CheckSavegameVersion(145)) {
- for (TileIndex t = 0; t < map_size; t++) {
- if (IsAirportTile(t)) SetWaterClass(t, WATER_CLASS_INVALID);
- }
- }
-
/* Road stops is 'only' updating some caches */
AfterLoadRoadStops();
AfterLoadLabelMaps();