OpenTTD
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.
bool operator() (CargoPacket *cp)
template<>
bool operator() (CargoPacket *cp)

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.
bool Postprocess (CargoPacket *cp, uint remove)
 Finalize cargo removal.

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
TsourceCargoList subclass to remove cargo from.

Definition at line 22 of file cargoaction.h.

Member Function Documentation

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 35 of file cargoaction.h.

template<>
bool CargoRemoval< StationCargoList >::operator() ( CargoPacket cp)
Parameters
cpPacket to be removed.
Returns
True if the packet was completely delivered, false if only part of it was.

Definition at line 81 of file cargoaction.cpp.

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

Finalize cargo removal.

Either delete the packet or reduce it.

Parameters
cpPacket to be removed or reduced.
removeAmount of cargo to be removed.
Returns
True if the packet was deleted, False if it was reduced.

Definition at line 63 of file cargoaction.cpp.

References CargoPacket::Count(), and CargoPacket::Reduce().

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
cpPacket to be removed completely or partially.
Returns
Amount of cargo to be removed.

Definition at line 44 of file cargoaction.cpp.

References CargoPacket::Count().


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