OpenTTD Source 20241224-master-gf74b0cf984
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.
 
Money PayTransfer (CargoID cargo, const CargoPacket *cp, uint count, TileIndex current_tile)
 Handle payment for transfer of the given cargo packet.
 
void PayFinalDelivery (CargoID cargo, const CargoPacket *cp, uint count, TileIndex current_tile)
 Handle payment for final delivery of the given cargo packet.
 
- 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.
 
void * operator new (size_t size, size_t index)
 Allocates space for new Titem with given index.
 
void * operator new (size_t, void *ptr)
 Allocates space for new Titem at given memory address.
 
void operator delete (void *p)
 Marks Titem as free.
 

Data Fields

StationID current_station
 NOSAVE: The current station.
 
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()
 
static bool CleaningPool ()
 Returns current state of pool cleaning - yes or no.
 
static bool IsValidID (size_t index)
 Tests whether given index can be used to get valid (non-nullptr) Titem.
 
static Titem * Get (size_t index)
 Returns Titem with given index.
 
static Titem * GetIfValid (size_t index)
 Returns Titem with given index.
 
static size_t GetPoolSize ()
 Returns first unused index.
 
static size_t GetNumItems ()
 Returns number of valid items in the pool.
 
static void PostDestructor (size_t index)
 Dummy function called after destructor of each member.
 
static Pool::IterateWrapper< Titem > Iterate (size_t from=0)
 Returns an iterable ensemble of all valid Titem.
 

Detailed Description

Helper class to perform the cargo payment.

Definition at line 24 of file economy_base.h.

Constructor & Destructor Documentation

◆ CargoPayment() [1/2]

CargoPayment::CargoPayment ( )
inline

Constructor for pool saveload.

Definition at line 35 of file economy_base.h.

◆ CargoPayment() [2/2]

CargoPayment::CargoPayment ( Vehicle front)

Makes us a new cargo payment helper.

Parameters
frontThe front of the train

Definition at line 1195 of file economy.cpp.

◆ ~CargoPayment()

CargoPayment::~CargoPayment ( )

Definition at line 1201 of file economy.cpp.

Member Function Documentation

◆ PayFinalDelivery()

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

Handle payment for final delivery of the given cargo packet.

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

Definition at line 1236 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()().

◆ PayTransfer()

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

Handle payment for transfer of the given cargo packet.

Parameters
cargoThe cargo type of the cargo.
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 1258 of file economy.cpp.

References _settings_game, GameSettings::economy, EconomySettings::feeder_payment_share, CargoPacket::GetDistance(), CargoPacket::GetFeederShare(), CargoPacket::GetPeriodsInTransit(), and visual_transfer.

Referenced by VehicleCargoList::Stage().

Field Documentation

◆ current_station

StationID CargoPayment::current_station

NOSAVE: The current station.

Definition at line 26 of file economy_base.h.

Referenced by PayFinalDelivery().

◆ front

Vehicle* CargoPayment::front

The front vehicle to do the payment of.

Definition at line 29 of file economy_base.h.

Referenced by PayFinalDelivery().

◆ owner

Company* CargoPayment::owner

NOSAVE: The owner of the vehicle.

Definition at line 27 of file economy_base.h.

Referenced by PayFinalDelivery().

◆ route_profit

Money CargoPayment::route_profit

The amount of money to add/remove from the bank account.

Definition at line 30 of file economy_base.h.

Referenced by PayFinalDelivery().

◆ visual_profit

Money CargoPayment::visual_profit

The visual profit to show.

Definition at line 31 of file economy_base.h.

Referenced by PayFinalDelivery().

◆ visual_transfer

Money CargoPayment::visual_transfer

The transfer credits to be shown.

Definition at line 32 of file economy_base.h.

Referenced by PayTransfer().


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