OpenTTD Source
20241108-master-g80f628063a
|
Helper class to perform the cargo payment. More...
#include <economy_base.h>
Public Member Functions | |
CargoPayment () | |
Constructor for pool saveload. | |
CargoPayment (Vehicle *front) | |
Makes us a new cargo payment helper. More... | |
Money | PayTransfer (CargoID cargo, const CargoPacket *cp, uint count, TileIndex current_tile) |
Handle payment for transfer of the given cargo packet. More... | |
void | PayFinalDelivery (CargoID cargo, const CargoPacket *cp, uint count, TileIndex current_tile) |
Handle payment for final delivery of the given cargo packet. More... | |
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_cargo_payment_pool > | |
void * | operator new (size_t size) |
Allocates space for new Titem. More... | |
void * | operator new (size_t size, size_t index) |
Allocates space for new Titem with given index. More... | |
void * | operator new (size_t, void *ptr) |
Allocates space for new Titem at given memory address. More... | |
void | operator delete (void *p) |
Marks Titem as free. More... | |
Data Fields | |
StationID | current_station |
NOSAVE: The current station. | |
Company * | owner |
NOSAVE: The owner of the vehicle. | |
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. | |
Money | visual_transfer |
The transfer credits to be shown. | |
Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_cargo_payment_pool > | |
Tindex | index |
Index of this pool item. | |
Additional Inherited Members | |
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_cargo_payment_pool > | |
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > | Pool |
Type of the pool this item is going to be part of. | |
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_cargo_payment_pool > | |
static bool | CanAllocateItem (size_t n=1) |
Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function() More... | |
static bool | CleaningPool () |
Returns current state of pool cleaning - yes or no. More... | |
static bool | IsValidID (size_t index) |
Tests whether given index can be used to get valid (non-nullptr) Titem. More... | |
static Titem * | Get (size_t index) |
Returns Titem with given index. More... | |
static Titem * | GetIfValid (size_t index) |
Returns Titem with given index. More... | |
static size_t | GetPoolSize () |
Returns first unused index. More... | |
static size_t | GetNumItems () |
Returns number of valid items in the pool. More... | |
static void | PostDestructor ([[maybe_unused]] size_t index) |
Dummy function called after destructor of each member. More... | |
static Pool::IterateWrapper< Titem > | Iterate (size_t from=0) |
Returns an iterable ensemble of all valid Titem. More... | |
Helper class to perform the cargo payment.
Definition at line 24 of file economy_base.h.
CargoPayment::CargoPayment | ( | Vehicle * | front | ) |
Makes us a new cargo payment helper.
front | The front of the train |
Definition at line 1198 of file economy.cpp.
void CargoPayment::PayFinalDelivery | ( | CargoID | cargo, |
const CargoPacket * | cp, | ||
uint | count, | ||
TileIndex | current_tile | ||
) |
Handle payment for final delivery of the given cargo packet.
cargo | The cargo type of the cargo. |
cp | The cargo packet to pay for. |
count | The number of packets to pay for. |
current_tile | Current tile the payment is happening on. |
Definition at line 1239 of file economy.cpp.
References current_station, DeliverGoods(), front, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), CargoPacket::GetDistance(), CargoPacket::GetFeederShare(), CargoPacket::GetPeriodsInTransit(), CargoPacket::GetSourceID(), CargoPacket::GetSourceType(), owner, Vehicle::owner, route_profit, and visual_profit.
Referenced by CargoDelivery::operator()().
Money CargoPayment::PayTransfer | ( | CargoID | cargo, |
const CargoPacket * | cp, | ||
uint | count, | ||
TileIndex | current_tile | ||
) |
Handle payment for transfer of the given cargo packet.
cargo | The cargo type of the cargo. |
cp | The cargo packet to pay for; actual payment won't be made!. |
count | The number of packets to pay for. |
current_tile | Current tile the payment is happening on. |
Definition at line 1261 of file economy.cpp.
References CargoPacket::GetFeederShare().