(svn r8161) -Fix (FS#555, r8144): enroute_from_xy was not set properly for old savegames.
authorrubidium
Tue, 16 Jan 2007 18:31:58 +0000
changeset 5948 f835a89667df
parent 5947 45b168de41f3
child 5949 883a28d8043f
(svn r8161) -Fix (FS#555, r8144): enroute_from_xy was not set properly for old savegames.
src/station_cmd.cpp
--- a/src/station_cmd.cpp	Tue Jan 16 17:44:59 2007 +0000
+++ b/src/station_cmd.cpp	Tue Jan 16 18:31:58 2007 +0000
@@ -3011,6 +3011,13 @@
 		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) {