OpenTTD Source: src/cargotype.cpp File Reference

OpenTTD Source 1.11.0-RC1

Functions | Variables
cargotype.cpp File Reference
`#include "stdafx.h"`
`#include "cargotype.h"`
`#include "newgrf_cargo.h"`
`#include "string_func.h"`
`#include "strings_func.h"`
`#include "table/sprites.h"`
`#include "table/strings.h"`
`#include "table/cargo_const.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Functions
void | SetupCargoForClimate (LandscapeID l)
| Set up the default cargo types for the given landscape type. More...
CargoID | GetCargoIDByLabel (CargoLabel cl)
| Get the cargo ID by cargo label. More...
CargoID | GetCargoIDByBitnum (uint8 bitnum)
| Find the CargoID of a 'bitnum' value. More...
static bool | CargoSpecNameSorter (const CargoSpec *const &a, const CargoSpec *const &b)
| Sort cargo specifications by their name.
static bool | CargoSpecClassSorter (const CargoSpec *const &a, const CargoSpec *const &b)
| Sort cargo specifications by their cargo class.
void | InitializeSortedCargoSpecs ()
| Initialize the list of sorted cargo specifications.

## Variables
CargoTypes | _cargo_mask
| Bitmask of cargo types available. More...
CargoTypes | _standard_cargo_mask
| Bitmask of real cargo types available. More...
std::vector< const CargoSpec * > | _sorted_cargo_specs
| Cargo specifications sorted alphabetically by name.
uint8 | _sorted_standard_cargo_specs_size
| Number of standard cargo specifications stored in the _sorted_cargo_specs array.

## Detailed Description

Implementation of cargoes.

Definition in file cargotype.cpp.

## Function Documentation

## ◆ GetCargoIDByBitnum()

CargoID GetCargoIDByBitnum | ( | uint8 | bitnum | ) |

Find the CargoID of a 'bitnum' value.

Parameters

  bitnum | 'bitnum' to find.

Returns
  First CargoID with the given bitnum, or CT_INVALID if not found or if the provided bitnum is invalid.

Definition at line 102 of file cargotype.cpp.

References CT_INVALID, and INVALID_CARGO.

Referenced by GetCargoTranslation().

## ◆ GetCargoIDByLabel()

CargoID GetCargoIDByLabel | ( | CargoLabel | cl | ) |

Get the cargo ID by cargo label.

Parameters

  cl | Cargo type to get.

Returns
  ID number if the cargo exists, else CT_INVALID

Definition at line 85 of file cargotype.cpp.

Referenced by GetCargoTranslation().

## ◆ SetupCargoForClimate()

void SetupCargoForClimate | ( | LandscapeID | l | ) |

Set up the default cargo types for the given landscape type.

Parameters

  l | Landscape

Definition at line 39 of file cargotype.cpp.

References _cargo_mask, _default_cargo, _default_climate_cargo, CargoSpec::array, CargoSpec::bitnum, CargoSpec::Get(), INVALID_CARGO, lengthof, CargoSpec::multiplier, and SetBit().

## Variable Documentation

## ◆ _cargo_mask

CargoTypes _cargo_mask

Bitmask of cargo types available.

This includes phony cargoes like regearing cargoes. Initialized during a call to SetupCargoForClimate.

Definition at line 28 of file cargotype.cpp.

Referenced by CompanyStationsWindow::OnClick(), and SetupCargoForClimate().

## ◆ _standard_cargo_mask

CargoTypes _standard_cargo_mask

Bitmask of real cargo types available.

Phony cargoes like regearing cargoes are excluded.

Definition at line 33 of file cargotype.cpp.

Referenced by CargoAndEngineFilter().