OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Functions | Variables
cargomonitor.cpp File Reference

Implementation of the cargo transport monitoring. More...

`#include "stdafx.h"`
`#include "cargomonitor.h"`
`#include "station_base.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Functions
static void | ClearCargoMonitoring (CargoMonitorMap &cargo_monitor_map, CompanyID company=INVALID_OWNER)
| Helper method for ClearCargoPickupMonitoring and ClearCargoDeliveryMonitoring.
void | ClearCargoPickupMonitoring (CompanyID company)
| Clear all pick-up cargo monitors.
void | ClearCargoDeliveryMonitoring (CompanyID company)
| Clear all delivery cargo monitors.
static int32 | GetAmount (CargoMonitorMap &monitor_map, CargoMonitorID monitor, bool keep_monitoring)
| Get and reset the amount associated with a cargo monitor.
int32 | GetDeliveryAmount (CargoMonitorID monitor, bool keep_monitoring)
| Get the amount of cargo delivered for the given cargo monitor since activation or last query.
int32 | GetPickupAmount (CargoMonitorID monitor, bool keep_monitoring)
| Get the amount of cargo picked up for the given cargo monitor since activation or last query.
void | AddCargoDelivery (CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st)
| Cargo was delivered to its final destination, update the pickup and delivery maps.

## Variables
CargoMonitorMap | _cargo_pickups
| Map of monitored pick-ups to the amount since last query/activation.
CargoMonitorMap | _cargo_deliveries
| Map of monitored deliveries to the amount since last query/activation.

## Detailed Description

Implementation of the cargo transport monitoring.

Definition in file cargomonitor.cpp.

## Function Documentation

void AddCargoDelivery | ( | CargoID | cargo_type,
|  | CompanyID | company,
|  | uint32 | amount,
|  | SourceType | src_type,
|  | SourceID | src,
|  | const Station * | st
| ) |  |

Cargo was delivered to its final destination, update the pickup and delivery maps.

Parameters

  cargo_type | type of cargo.
  company | company delivering the cargo.
  amount | Amount of cargo delivered.
  src_type | type of src.
  src | index of source.
  st | station where the cargo is delivered to.

Definition at line 121 of file cargomonitor.cpp.

References _cargo_deliveries, _cargo_pickups, SmallVector< T, S >::Begin(), EncodeCargoIndustryMonitor(), EncodeCargoTownMonitor(), SmallVector< T, S >::End(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Station::industries_near, INVALID_SOURCE, ST_INDUSTRY, ST_TOWN, and BaseStation::town.

Referenced by DeliverGoods().

void ClearCargoDeliveryMonitoring | ( | CompanyID | company | ) |

Clear all delivery cargo monitors.

Parameters

  company | clear all delivery monitors for this company or if INVALID_OWNER is passed, all delivery monitors are cleared regardless of company.

Definition at line 60 of file cargomonitor.cpp.

References _cargo_deliveries, and ClearCargoMonitoring().

Referenced by ChangeOwnershipOfCompanyItems(), InitializeEconomy(), and LoadDelivery().

static void ClearCargoMonitoring | ( | CargoMonitorMap & | cargo_monitor_map,
|  | CompanyID | company = `INVALID_OWNER`
| ) |  |
| static

Helper method for ClearCargoPickupMonitoring and ClearCargoDeliveryMonitoring.

Clears all monitors that belong to the specified company or all if INVALID_OWNER is specified as company.

Parameters

  cargo_monitor_map | reference to the cargo monitor map to operate on.
  company | company to clear cargo monitors for or INVALID_OWNER if all cargo monitors should be cleared.

Definition at line 28 of file cargomonitor.cpp.

References DecodeMonitorCompany(), and INVALID_OWNER.

Referenced by ClearCargoDeliveryMonitoring(), and ClearCargoPickupMonitoring().

void ClearCargoPickupMonitoring | ( | CompanyID | company | ) |

Clear all pick-up cargo monitors.

Parameters

  company | clear all pick-up monitors for this company or if INVALID_OWNER is passed, all pick-up monitors are cleared regardless of company.

Definition at line 50 of file cargomonitor.cpp.

References _cargo_pickups, and ClearCargoMonitoring().

Referenced by ChangeOwnershipOfCompanyItems(), InitializeEconomy(), and LoadPickup().

static int32 GetAmount | ( | CargoMonitorMap & | monitor_map,
|  | CargoMonitorID | monitor,
|  | bool | keep_monitoring
| ) |  |
| static

Get and reset the amount associated with a cargo monitor.

Parameters

  [in,out] | monitor_map | Monitoring map to search (and reset for the queried entry).
  | monitor | Cargo monitor to query/reset.
  | keep_monitoring | After returning from this call, continue monitoring.

Returns
  Amount collected since last query/activation for the monitored combination.

Definition at line 72 of file cargomonitor.cpp.

Referenced by GetDeliveryAmount(), and GetPickupAmount().

int32 GetDeliveryAmount | ( | CargoMonitorID | monitor,
|  | bool | keep_monitoring
| ) |  |

Get the amount of cargo delivered for the given cargo monitor since activation or last query.

Parameters

  monitor | Cargo monitor to query.
  keep_monitoring | After returning from this call, continue monitoring.

Returns
  Amount of delivered cargo for the monitored combination.

Definition at line 95 of file cargomonitor.cpp.

References _cargo_deliveries, and GetAmount().

int32 GetPickupAmount | ( | CargoMonitorID | monitor,
|  | bool | keep_monitoring
| ) |  |

Get the amount of cargo picked up for the given cargo monitor since activation or last query.

Parameters

  monitor | Monitoring number to query.
  keep_monitoring | After returning from this call, continue monitoring.

Returns
  Amount of picked up cargo for the monitored combination.

Note
  Cargo pick up is counted on final delivery, to prevent users getting credit for picking up cargo without delivering it.

Definition at line 107 of file cargomonitor.cpp.

References _cargo_pickups, and GetAmount().