summaryrefslogtreecommitdiff
path: root/src/cargopacket.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cargopacket.h')
-rw-r--r--src/cargopacket.h26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/cargopacket.h b/src/cargopacket.h
index 23203bc04..414003faa 100644
--- a/src/cargopacket.h
+++ b/src/cargopacket.h
@@ -29,7 +29,6 @@ struct CargoPacket : CargoPacketPool::PoolItem<&_cargopacket_pool> {
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::PoolItem<&_cargopacket_pool> {
*/
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();