File diff r27779:653ba52c002e → r27780:26377b959bf0
src/cargopacket.h
Show inline comments
 
@@ -34,7 +34,12 @@ template <class Tinst, class Tcont> clas
 
class StationCargoList; // forward-declare, so we can use it in VehicleCargoList.
 
extern SaveLoadTable GetCargoPacketDesc();
 

	
 
typedef uint32_t TileOrStationID;
 
/**
 
 * To make alignment in the union in CargoPacket a bit easier, create a new type
 
 * that is a StationID, but stored as 32bit.
 
 */
 
typedef uint32_t StationID_32bit;
 
static_assert(sizeof(TileIndex) == sizeof(StationID_32bit));
 

	
 
/**
 
 * Container for cargo from the same location and time.
 
@@ -49,8 +54,8 @@ private:
 
	StationID source;       ///< The station where the cargo came from first.
 
	TileIndex source_xy;    ///< The origin of the cargo (first station in feeder chain).
 
	union {
 
		TileOrStationID loaded_at_xy; ///< Location where this cargo has been loaded into the vehicle.
 
		TileOrStationID next_station; ///< Station where the cargo wants to go next.
 
		TileIndex loaded_at_xy;       ///< Location where this cargo has been loaded into the vehicle.
 
		StationID_32bit next_station; ///< Station where the cargo wants to go next.
 
	};
 

	
 
	/** The CargoList caches, thus needs to know about it. */
 
@@ -416,7 +421,7 @@ public:
 
	 * applicable), return value is amount of cargo actually moved. */
 

	
 
	template<MoveToAction Tfrom, MoveToAction Tto>
 
	uint Reassign(uint max_move, TileOrStationID update = INVALID_TILE);
 
	uint Reassign(uint max_move, StationID update = INVALID_STATION);
 
	uint Return(uint max_move, StationCargoList *dest, StationID next_station);
 
	uint Unload(uint max_move, StationCargoList *dest, CargoPayment *payment);
 
	uint Shift(uint max_move, VehicleCargoList *dest);