Mercurial > hg > openttd
diff src/saveload/station_sl.cpp @ 13298:f590f261c90a draft
(svn r17807) -Codechange: move all 'updates' just after the 'load' constructor of CargoPackets to the constructor call itself
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sun, 18 Oct 2009 17:52:44 +0000 |
parents | d8ddc1b1e866 |
children | d998ec8f4d78 |
line wrap: on
line diff
--- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -243,13 +243,12 @@ if (CheckSavegameVersion(68)) { SB(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15)); if (GB(_waiting_acceptance, 0, 12) != 0) { + /* In old versions, enroute_from used 0xFF as INVALID_STATION */ + StationID source = (CheckSavegameVersion(7) && _cargo_source == 0xFF) ? INVALID_STATION : _cargo_source; + /* Don't construct the packet with station here, because that'll fail with old savegames */ - CargoPacket *cp = new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days, _cargo_feeder_share); - /* In old versions, enroute_from used 0xFF as INVALID_STATION */ - cp->source = (CheckSavegameVersion(7) && _cargo_source == 0xFF) ? INVALID_STATION : _cargo_source; - cp->source_xy = _cargo_source_xy; + ge->cargo.Append(new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days, source, _cargo_source_xy, _cargo_source_xy, _cargo_feeder_share)); SB(ge->acceptance_pickup, GoodsEntry::PICKUP, 1, 1); - ge->cargo.Append(cp); } } }