mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-11 13:10:45 +00:00
(svn r17807) -Codechange: move all 'updates' just after the 'load' constructor of CargoPackets to the constructor call itself
This commit is contained in:
parent
4ad30fecde
commit
f11cebfe9b
@ -40,11 +40,14 @@ CargoPacket::CargoPacket(StationID source, uint16 count, SourceType source_type,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CargoPacket::CargoPacket(uint16 count, byte days_in_transit, Money feeder_share, SourceType source_type, SourceID source_id) :
|
CargoPacket::CargoPacket(uint16 count, byte days_in_transit, StationID source, TileIndex source_xy, TileIndex loaded_at_xy, Money feeder_share, SourceType source_type, SourceID source_id) :
|
||||||
feeder_share(feeder_share),
|
feeder_share(feeder_share),
|
||||||
count(count),
|
count(count),
|
||||||
days_in_transit(days_in_transit),
|
days_in_transit(days_in_transit),
|
||||||
source_id(source_id)
|
source_id(source_id),
|
||||||
|
source(source),
|
||||||
|
source_xy(source_xy),
|
||||||
|
loaded_at_xy(loaded_at_xy)
|
||||||
{
|
{
|
||||||
this->source_type = source_type;
|
this->source_type = source_type;
|
||||||
}
|
}
|
||||||
@ -224,12 +227,7 @@ bool CargoList<Tinst>::MoveTo(Tother_inst *dest, uint max_move, CargoList::MoveT
|
|||||||
Money fs = cp->feeder_share * max_move / static_cast<uint>(cp->count);
|
Money fs = cp->feeder_share * max_move / static_cast<uint>(cp->count);
|
||||||
cp->feeder_share -= fs;
|
cp->feeder_share -= fs;
|
||||||
|
|
||||||
CargoPacket *cp_new = new CargoPacket(max_move, cp->days_in_transit, fs, cp->source_type, cp->source_id);
|
CargoPacket *cp_new = new CargoPacket(max_move, cp->days_in_transit, cp->source, cp->source_xy, (mta == MTA_CARGO_LOAD) ? data : cp->loaded_at_xy, fs, cp->source_type, cp->source_id);
|
||||||
|
|
||||||
cp_new->source = cp->source;
|
|
||||||
cp_new->source_xy = cp->source_xy;
|
|
||||||
cp_new->loaded_at_xy = (mta == MTA_CARGO_LOAD) ? data : cp->loaded_at_xy;
|
|
||||||
|
|
||||||
this->RemoveFromCache(cp_new); // this reflects the changes in cp.
|
this->RemoveFromCache(cp_new); // this reflects the changes in cp.
|
||||||
|
|
||||||
if (mta == MTA_TRANSFER) {
|
if (mta == MTA_TRANSFER) {
|
||||||
|
@ -74,11 +74,14 @@ public:
|
|||||||
* Used when loading or splitting packets.
|
* Used when loading or splitting packets.
|
||||||
* @param count the number of cargo entities to put in this packet
|
* @param count the number of cargo entities to put in this packet
|
||||||
* @param days_in_transit number of days the cargo has been in transit
|
* @param days_in_transit number of days the cargo has been in transit
|
||||||
|
* @param source the station the cargo was initially loaded
|
||||||
|
* @param source_xy the station location the cargo was initially loaded
|
||||||
|
* @param loaded_at_xy the location the cargo was loaded last
|
||||||
* @param feeder_share feeder share the packet has already accumulated
|
* @param feeder_share feeder share the packet has already accumulated
|
||||||
* @param source_type the 'type' of source the packet comes from (for subsidies)
|
* @param source_type the 'type' of source the packet comes from (for subsidies)
|
||||||
* @param source_id the actual source of the packet (for subsidies)
|
* @param source_id the actual source of the packet (for subsidies)
|
||||||
*/
|
*/
|
||||||
CargoPacket(uint16 count, byte days_in_transit, Money feeder_share = 0, SourceType source_type = ST_INDUSTRY, SourceID source_id = INVALID_SOURCE);
|
CargoPacket(uint16 count, byte days_in_transit, StationID source, TileIndex source_xy, TileIndex loaded_at_xy, Money feeder_share = 0, SourceType source_type = ST_INDUSTRY, SourceID source_id = INVALID_SOURCE);
|
||||||
|
|
||||||
/** Destroy the packet */
|
/** Destroy the packet */
|
||||||
~CargoPacket() { }
|
~CargoPacket() { }
|
||||||
|
@ -698,9 +698,7 @@ static bool LoadOldGood(LoadgameState *ls, int num)
|
|||||||
SB(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15));
|
SB(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15));
|
||||||
SB(ge->acceptance_pickup, GoodsEntry::PICKUP, 1, _cargo_source != 0xFF);
|
SB(ge->acceptance_pickup, GoodsEntry::PICKUP, 1, _cargo_source != 0xFF);
|
||||||
if (GB(_waiting_acceptance, 0, 12) != 0) {
|
if (GB(_waiting_acceptance, 0, 12) != 0) {
|
||||||
CargoPacket *cp = new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days);
|
ge->cargo.Append(new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days, (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source, 0, 0));
|
||||||
cp->source = (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
|
|
||||||
ge->cargo.Append(cp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -1330,13 +1328,9 @@ bool LoadOldVehicle(LoadgameState *ls, int num)
|
|||||||
v->next = (Vehicle *)(size_t)_old_next_ptr;
|
v->next = (Vehicle *)(size_t)_old_next_ptr;
|
||||||
|
|
||||||
if (_cargo_count != 0) {
|
if (_cargo_count != 0) {
|
||||||
CargoPacket *cp = new CargoPacket(_cargo_count, _cargo_days);
|
StationID source = (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
|
||||||
cp->source = (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
|
TileIndex source_xy = (source != INVALID_STATION) ? Station::Get(source)->xy : 0;
|
||||||
cp->source_xy = (cp->source != INVALID_STATION) ? Station::Get(cp->source)->xy : 0;
|
v->cargo.Append(new CargoPacket(_cargo_count, _cargo_days, source, source_xy, source_xy));
|
||||||
cp->loaded_at_xy = cp->source_xy;
|
|
||||||
cp->source_type = ST_INDUSTRY;
|
|
||||||
cp->source_id = INVALID_SOURCE;
|
|
||||||
v->cargo.Append(cp);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,13 +243,12 @@ static void Load_STNS()
|
|||||||
if (CheckSavegameVersion(68)) {
|
if (CheckSavegameVersion(68)) {
|
||||||
SB(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15));
|
SB(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15));
|
||||||
if (GB(_waiting_acceptance, 0, 12) != 0) {
|
if (GB(_waiting_acceptance, 0, 12) != 0) {
|
||||||
/* 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 */
|
/* In old versions, enroute_from used 0xFF as INVALID_STATION */
|
||||||
cp->source = (CheckSavegameVersion(7) && _cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
|
StationID source = (CheckSavegameVersion(7) && _cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
|
||||||
cp->source_xy = _cargo_source_xy;
|
|
||||||
|
/* Don't construct the packet with station here, because that'll fail with old savegames */
|
||||||
|
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);
|
SB(ge->acceptance_pickup, GoodsEntry::PICKUP, 1, 1);
|
||||||
ge->cargo.Append(cp);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -719,10 +719,7 @@ void Load_VEHS()
|
|||||||
|
|
||||||
if (_cargo_count != 0 && IsCompanyBuildableVehicleType(v)) {
|
if (_cargo_count != 0 && IsCompanyBuildableVehicleType(v)) {
|
||||||
/* Don't construct the packet with station here, because that'll fail with old savegames */
|
/* Don't construct the packet with station here, because that'll fail with old savegames */
|
||||||
CargoPacket *cp = new CargoPacket(_cargo_count, _cargo_days, _cargo_feeder_share);
|
CargoPacket *cp = new CargoPacket(_cargo_count, _cargo_days, _cargo_source, _cargo_source_xy, _cargo_loaded_at_xy, _cargo_feeder_share);
|
||||||
cp->source = _cargo_source;
|
|
||||||
cp->source_xy = _cargo_source_xy;
|
|
||||||
cp->loaded_at_xy = _cargo_loaded_at_xy;
|
|
||||||
v->cargo.Append(cp);
|
v->cargo.Append(cp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user