OpenTTD Source: CargoPayment Struct Reference

OpenTTD Source 14.0-beta1

Public Member Functions | Data Fields
CargoPayment Struct Reference

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

`#include <economy_base.h>`

Inheritance diagram for CargoPayment:

## 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.
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...

## 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

  front | The front of the train

Definition at line 1199 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

  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 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

  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.

Returns
  The amount of money paid for the transfer.

Definition at line 1260 of file economy.cpp.

References CargoPacket::GetFeederShare().

## ◆ SetCargo()

void CargoPayment::SetCargo | ( | CargoID | ct | ) |
| inline

Sets the currently handled cargo type.

Parameters

  ct | the 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:

- src/economy_base.h
- src/economy.cpp