summaryrefslogtreecommitdiff
path: root/src/station_cmd.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-01-16 18:31:58 +0000
committerrubidium <rubidium@openttd.org>2007-01-16 18:31:58 +0000
commit3d6b021faa048776fae169396f75b803dc664e31 (patch)
tree20cce5f3a9cb7995c8e02a5d09802ff754d4ff8a /src/station_cmd.cpp
parenteeaf5c1f1c7b6d21d67a955aefa891b04feed470 (diff)
downloadopenttd-3d6b021faa048776fae169396f75b803dc664e31.tar.xz
(svn r8161) -Fix (FS#555, r8144): enroute_from_xy was not set properly for old savegames.
Diffstat (limited to 'src/station_cmd.cpp')
-rw-r--r--src/station_cmd.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
index 864ddd873..36ec79d12 100644
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -3011,6 +3011,13 @@ static void SaveLoad_STNS(Station *st)
if (CheckSavegameVersion(7) && st->goods[i].enroute_from == 0xFF) {
st->goods[i].enroute_from = INVALID_STATION;
}
+ if (CheckSavegameVersion(44)) {
+ /* Store position of the station where the goods come from, so there are no
+ * very high payments when stations get removed. However, if the station
+ * where the goods came from is already removed, the source information is
+ * lost. In that case we set it to the position of this station */
+ st->goods[i].enroute_from_xy = IsValidStationID(st->goods[i].enroute_from) ? GetStation(st->goods[i].enroute_from)->xy : st->xy;
+ }
}
if (st->num_specs != 0) {