diff options
Diffstat (limited to 'src/economy_base.h')
-rw-r--r-- | src/economy_base.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/economy_base.h b/src/economy_base.h new file mode 100644 index 000000000..433a4e821 --- /dev/null +++ b/src/economy_base.h @@ -0,0 +1,36 @@ +/* $Id$ */ + +/** @file economy_base.h Base classes related to the economy. */ + +#ifndef ECONOMY_BASE_H +#define ECONOMY_BASE_H + +#include "cargopacket.h" + +/** + * Helper class to perform the cargo payment. + */ +struct CargoPayment { + Vehicle *front; ///< The front vehicle to do the payment of + Money route_profit; ///< The amount of money to add/remove from the bank account + Money visual_profit; ///< The visual profit to show + + Company *owner; ///< The owner of the vehicle + StationID current_station; ///< The current station + CargoID ct; ///< The currently handled cargo type + + /** Constructor for pool saveload */ + CargoPayment(Vehicle *front); + ~CargoPayment(); + + void PayTransfer(CargoPacket *cp, uint count); + void PayFinalDelivery(CargoPacket *cp, uint count); + + /** + * Sets the currently handled cargo type. + * @param ct the cargo type to handle from now on. + */ + void SetCargo(CargoID ct) { this->ct = ct; } +}; + +#endif /* ECONOMY_BASE_H */ |