summaryrefslogtreecommitdiff
path: root/src/economy_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/economy_base.h')
-rw-r--r--src/economy_base.h36
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 */