OpenTTD Source  20240919-master-gdf0233f4c2
CargoPayment Struct Reference

Helper class to perform the cargo payment. More...

#include <economy_base.h>

Inheritance diagram for CargoPayment:
Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_cargo_payment_pool >

Public Member Functions

 CargoPayment ()
 Constructor for pool saveload.
 
 CargoPayment (Vehicle *front)
 Makes us a new cargo payment helper. More...
 
Money PayTransfer (const CargoPacket *cp, uint count, TileIndex current_tile)
 Handle payment for transfer of the given cargo packet. More...
 
void PayFinalDelivery (const CargoPacket *cp, uint count, TileIndex current_tile)
 Handle payment for final delivery of the given cargo packet. More...
 
void SetCargo (CargoID ct)
 Sets the currently handled cargo type. 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.
 
CargoID ct
 NOSAVE: The currently handled cargo type.
 
Companyowner
 NOSAVE: The owner of the vehicle.
 
Vehiclefront
 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...
 

Detailed Description

Helper class to perform the cargo payment.

Definition at line 24 of file economy_base.h.

Constructor & Destructor Documentation

◆ CargoPayment()

CargoPayment::CargoPayment ( Vehicle front)

Makes us a new cargo payment helper.

Parameters
frontThe front of the train

Definition at line 1198 of file economy.cpp.

Member Function Documentation

◆ PayFinalDelivery()

void CargoPayment::PayFinalDelivery ( const CargoPacket cp,
uint  count,
TileIndex  current_tile 
)

Handle payment for final delivery of the given cargo packet.

Parameters
cpThe cargo packet to pay for.
countThe number of packets to pay for.
current_tileCurrent tile the payment is happening on.

Definition at line 1238 of file economy.cpp.

References ct, 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()().

◆ PayTransfer()

Money CargoPayment::PayTransfer ( const CargoPacket cp,
uint  count,
TileIndex  current_tile 
)

Handle payment for transfer of the given cargo packet.

Parameters
cpThe cargo packet to pay for; actual payment won't be made!.
countThe number of packets to pay for.
current_tileCurrent tile the payment is happening on.
Returns
The amount of money paid for the transfer.

Definition at line 1259 of file economy.cpp.

References CargoPacket::GetFeederShare().

◆ SetCargo()

void CargoPayment::SetCargo ( CargoID  ct)
inline

Sets the currently handled cargo type.

Parameters
ctthe cargo type to handle from now on.

Definition at line 47 of file economy_base.h.

References ct.


The documentation for this struct was generated from the following files: