(svn r9147) -Fix (r1770, r8161): when loadin games, enroute_from and enroute_from_xy were updated in the wrong place, causing issues with TTD savegames/scenarios.

This commit is contained in:
peter1138
2007-03-13 21:31:09 +00:00
parent c7bcdb69b1
commit 4177215b41
2 changed files with 19 additions and 12 deletions

View File

@@ -1792,6 +1792,25 @@ bool AfterLoadGame()
FOR_ALL_VEHICLES(v) {
v->cargo_source_xy = IsValidStationID(v->cargo_source) ? GetStation(v->cargo_source)->xy : v->tile;
}
/* 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 */
Station *st;
FOR_ALL_STATIONS(st) {
for (CargoID c = 0; c < NUM_CARGO; c++) {
GoodsEntry *ge = &st->goods[c];
/* In old versions, enroute_from used 0xFF as INVALID_STATION */
if (CheckSavegameVersion(7) && ge->enroute_from == 0xFF) {
ge->enroute_from = INVALID_STATION;
}
ge->enroute_from_xy = IsValidStationID(ge->enroute_from) ? GetStation(ge->enroute_from)->xy : st->xy;
}
}
}
if (CheckSavegameVersion(45)) {