File diff r12268:648ce2db6af7 → r12269:f94731e7dc53
src/cargopacket.h
Show inline comments
 
@@ -29,7 +29,6 @@ struct CargoPacket : CargoPacketPool::Po
 

	
 
	uint16 count;           ///< The amount of cargo in this packet
 
	byte days_in_transit;   ///< Amount of days this packet has been in transit
 
	bool paid_for;          ///< Have we been paid for this cargo packet?
 

	
 
	/**
 
	 * Creates a new cargo packet
 
@@ -50,7 +49,7 @@ struct CargoPacket : CargoPacketPool::Po
 
	 */
 
	FORCEINLINE bool SameSource(const CargoPacket *cp) const
 
	{
 
		return this->source_xy == cp->source_xy && this->days_in_transit == cp->days_in_transit && this->paid_for == cp->paid_for;
 
		return this->source_xy == cp->source_xy && this->days_in_transit == cp->days_in_transit;
 
	}
 
};
 

	
 
@@ -81,7 +80,8 @@ public:
 
	enum MoveToAction {
 
		MTA_FINAL_DELIVERY, ///< "Deliver" the packet to the final destination, i.e. destroy the packet
 
		MTA_CARGO_LOAD,     ///< Load the packet onto a vehicle, i.e. set the last loaded station ID
 
		MTA_OTHER           ///< "Just" move the packet to another cargo list
 
		MTA_TRANSFER,       ///< The cargo is moved as part of a transfer
 
		MTA_UNLOAD,         ///< The cargo is moved as part of a forced unload
 
	};
 

	
 
private:
 
@@ -89,7 +89,6 @@ private:
 

	
 
	bool empty;           ///< Cache for whether this list is empty or not
 
	uint count;           ///< Cache for the number of cargo entities
 
	bool unpaid_cargo;    ///< Cache for the unpaid cargo
 
	Money feeder_share;   ///< Cache for the feeder share
 
	StationID source;     ///< Cache for the source of the packet
 
	uint days_in_transit; ///< Cache for the number of days in transit
 
@@ -126,12 +125,6 @@ public:
 
	FORCEINLINE uint Count() const { return this->count; }
 

	
 
	/**
 
	 * Is there some cargo that has not been paid for?
 
	 * @return true if and only if there is such a cargo
 
	 */
 
	FORCEINLINE bool UnpaidCargo() const { return this->unpaid_cargo; }
 

	
 
	/**
 
	 * Returns total sum of the feeder share for all packets
 
	 * @return the before mentioned number
 
	 */
 
@@ -171,18 +164,23 @@ public:
 
	 * Depending on the value of mta the side effects of this function differ:
 
	 *  - MTA_FINAL_DELIVERY: destroys the packets that do not originate from a specific station
 
	 *  - MTA_CARGO_LOAD:     sets the loaded_at_xy value of the moved packets
 
	 *  - MTA_OTHER:          just move without side effects
 
	 *  - MTA_TRANSFER:       just move without side effects
 
	 *  - MTA_UNLOAD:         just move without side effects
 
	 * @param dest  the destination to move the cargo to
 
	 * @param count the amount of cargo entities to move
 
	 * @param mta   how to handle the moving (side effects)
 
	 * @param data  Depending on mta the data of this variable differs:
 
	 *              - MTA_FINAL_DELIVERY - station ID of packet's origin not to remove
 
	 *              - MTA_CARGO_LOAD     - station's tile index of load
 
	 *              - MTA_OTHER          - unused
 
	 * @param mta == MTA_FINAL_DELIVERY || dest != NULL
 
	 *              - MTA_TRANSFER       - unused
 
	 *              - MTA_UNLOAD         - unused
 
	 * @param payment The payment helper
 
	 *
 
	 * @pre mta == MTA_FINAL_DELIVERY || dest != NULL
 
	 * @pre mta == MTA_UNLOAD || mta == MTA_CARGO_LOAD || payment != NULL
 
	 * @return true if there are still packets that might be moved from this cargo list
 
	 */
 
	bool MoveTo(CargoList *dest, uint count, CargoList::MoveToAction mta = MTA_OTHER, uint data = 0);
 
	bool MoveTo(CargoList *dest, uint count, CargoList::MoveToAction mta, CargoPayment *payment, uint data = 0);
 

	
 
	/** Invalidates the cached data and rebuild it */
 
	void InvalidateCache();