diff options
author | rubidium <rubidium@openttd.org> | 2007-12-07 21:14:54 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-12-07 21:14:54 +0000 |
commit | cbb2d39860a847687019ab47095646e593fb5bc8 (patch) | |
tree | 564b72840ffd1f1485b52afdcd03fc9e08aaab24 /src/openttd.cpp | |
parent | c21f588a14f30fed3d683b4686975670adaf7ed5 (diff) | |
download | openttd-cbb2d39860a847687019ab47095646e593fb5bc8.tar.xz |
(svn r11589) -Fix [FS#1514]: when ship depots got destroyed they always returned to water, even when it should've been canals.
Diffstat (limited to 'src/openttd.cpp')
-rw-r--r-- | src/openttd.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp index 6a431e629..6df56e31b 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -2203,6 +2203,20 @@ bool AfterLoadGame() } } + /* + * Add the 'previous' owner to the ship depots so we can reset it with + * the correct values when it gets destroyed. This prevents that + * someone can remove canals owned by somebody else and it prevents + * making floods using the removal of ship depots. + */ + if (CheckSavegameVersion(83)) { + for (TileIndex t = 0; t < map_size; t++) { + if (IsTileType(t, MP_WATER) && IsShipDepot(t)) { + _m[t].m4 = (TileHeight(t) == 0) ? OWNER_WATER : OWNER_NONE; + } + } + } + if (CheckSavegameVersion(74)) { Station *st; FOR_ALL_STATIONS(st) { |