OpenTTD Source: CargoRemoval< Tsource > Class Template Reference

OpenTTD Source 14.0-beta1

Public Member Functions | Protected Member Functions | Protected Attributes
CargoRemoval< Tsource > Class Template Reference

Abstract action of removing cargo from a vehicle or a station. More...

`#include <cargoaction.h>`

## Public Member Functions
| CargoRemoval (Tsource *source, uint max_move)
uint | MaxMove ()
| Returns how much more cargo can be removed with this action. More...
bool | operator() (CargoPacket *cp)
bool | operator() (CargoPacket *cp)
| Removes some cargo from a StationCargoList. More...

## Protected Member Functions
uint | Preprocess (CargoPacket *cp)
| Determines the amount of cargo to be removed from a packet and removes that from the metadata of the list. More...
bool | Postprocess (CargoPacket *cp, uint remove)
| Finalize cargo removal. More...

## Protected Attributes
Tsource * | source
| Source of the cargo.
uint | max_move
| Maximum amount of cargo to be removed with this action.

## Detailed Description

### template<class Tsource>
class CargoRemoval< Tsource >

Abstract action of removing cargo from a vehicle or a station.

Template Parameters

  Tsource | CargoList subclass to remove cargo from.

Definition at line 20 of file cargoaction.h.

## Member Function Documentation

## ◆ MaxMove()

template<class Tsource >

uint CargoRemoval< Tsource >::MaxMove | ( |  | ) |
| inline

Returns how much more cargo can be removed with this action.

Returns
  Amount of cargo this action can still remove.

Definition at line 33 of file cargoaction.h.

## ◆ operator()()

bool CargoRemoval< StationCargoList >::operator() | ( | CargoPacket * | cp | ) |

Removes some cargo from a StationCargoList.

Parameters

  cp | Packet to be removed.

Returns
  True if the packet was completely delivered, false if only part of it was.

Definition at line 79 of file cargoaction.cpp.

## ◆ Postprocess()

template<class Tsource >

template bool CargoRemoval< Tsource >::Postprocess | ( | CargoPacket * | cp,
|  | uint | remove
| ) |  |
| protected

Finalize cargo removal.

Either delete the packet or reduce it.

Parameters

  cp | Packet to be removed or reduced.
  remove | Amount of cargo to be removed.

Returns
  True if the packet was deleted, False if it was reduced.

Definition at line 61 of file cargoaction.cpp.

## ◆ Preprocess()

template<class Tsource >

template uint CargoRemoval< Tsource >::Preprocess | ( | CargoPacket * | cp | ) |
| protected

Determines the amount of cargo to be removed from a packet and removes that from the metadata of the list.

Parameters

  cp | Packet to be removed completely or partially.

Returns
  Amount of cargo to be removed.

Definition at line 42 of file cargoaction.cpp.

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

- src/cargoaction.h
- src/cargoaction.cpp