summaryrefslogtreecommitdiff
path: root/src/economy_base.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-06-28 15:12:59 +0000
committerrubidium <rubidium@openttd.org>2009-06-28 15:12:59 +0000
commit18bc39d00b844ca60307d4628fb489c6cd556f67 (patch)
tree2d51100c9efe36e6b3fc17617d801ca4ad7f1793 /src/economy_base.h
parent043af83a03cadc232ef165e7b8d1a0a7fc0650dc (diff)
downloadopenttd-18bc39d00b844ca60307d4628fb489c6cd556f67.tar.xz
(svn r16683) -Codechange: move the cargo payment handling to a seperate class. Based on ideas of fonso/fonsinchen.
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 */