Changeset - r13288:93fbc02f05b0
[Not reviewed]
master
0 5 0
rubidium - 15 years ago 2009-10-18 17:52:44
rubidium@openttd.org
(svn r17807) -Codechange: move all 'updates' just after the 'load' constructor of CargoPackets to the constructor call itself
5 files changed with 19 insertions and 28 deletions:
0 comments (0 inline, 0 general)
src/cargopacket.cpp
Show inline comments
 
@@ -40,11 +40,14 @@ CargoPacket::CargoPacket(StationID sourc
 
	}
 
}
 

	
 
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),
 
		count(count),
 
		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;
 
}
 
@@ -224,12 +227,7 @@ bool CargoList<Tinst>::MoveTo(Tother_ins
 
			Money fs = cp->feeder_share * max_move / static_cast<uint>(cp->count);
 
			cp->feeder_share -= fs;
 

	
 
			CargoPacket *cp_new = new CargoPacket(max_move, cp->days_in_transit, 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;
 

	
 
			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);
 
			this->RemoveFromCache(cp_new); // this reflects the changes in cp.
 

	
 
			if (mta == MTA_TRANSFER) {
src/cargopacket.h
Show inline comments
 
@@ -74,11 +74,14 @@ public:
 
	 * Used when loading or splitting packets.
 
	 * @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 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 source_type     the 'type' of source the packet comes from (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 */
 
	~CargoPacket() { }
src/saveload/oldloader_sl.cpp
Show inline comments
 
@@ -698,9 +698,7 @@ static bool LoadOldGood(LoadgameState *l
 
	SB(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15));
 
	SB(ge->acceptance_pickup, GoodsEntry::PICKUP, 1, _cargo_source != 0xFF);
 
	if (GB(_waiting_acceptance, 0, 12) != 0) {
 
		CargoPacket *cp = new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days);
 
		cp->source = (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
 
		ge->cargo.Append(cp);
 
		ge->cargo.Append(new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days, (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source, 0, 0));
 
	}
 

	
 
	return true;
 
@@ -1330,13 +1328,9 @@ bool LoadOldVehicle(LoadgameState *ls, i
 
		v->next = (Vehicle *)(size_t)_old_next_ptr;
 

	
 
		if (_cargo_count != 0) {
 
			CargoPacket *cp = new CargoPacket(_cargo_count, _cargo_days);
 
			cp->source       = (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
 
			cp->source_xy    = (cp->source != INVALID_STATION) ? Station::Get(cp->source)->xy : 0;
 
			cp->loaded_at_xy = cp->source_xy;
 
			cp->source_type  = ST_INDUSTRY;
 
			cp->source_id    = INVALID_SOURCE;
 
			v->cargo.Append(cp);
 
			StationID source =    (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source;
 
			TileIndex source_xy = (source != INVALID_STATION) ? Station::Get(source)->xy : 0;
 
			v->cargo.Append(new CargoPacket(_cargo_count, _cargo_days, source, source_xy, source_xy));
 
		}
 
	}
 

	
src/saveload/station_sl.cpp
Show inline comments
 
@@ -243,13 +243,12 @@ static void Load_STNS()
 
			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);
 
				}
 
			}
 
		}
src/saveload/vehicle_sl.cpp
Show inline comments
 
@@ -719,10 +719,7 @@ void Load_VEHS()
 

	
 
		if (_cargo_count != 0 && IsCompanyBuildableVehicleType(v)) {
 
			/* 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);
 
			cp->source          = _cargo_source;
 
			cp->source_xy       = _cargo_source_xy;
 
			cp->loaded_at_xy    = _cargo_loaded_at_xy;
 
			CargoPacket *cp = new CargoPacket(_cargo_count, _cargo_days, _cargo_source, _cargo_source_xy, _cargo_loaded_at_xy, _cargo_feeder_share);
 
			v->cargo.Append(cp);
 
		}
 

	
0 comments (0 inline, 0 general)