Functions | Variables

# cargotype.cpp File Reference

Implementation of cargoes. More...

`#include "stdafx.h"`
`#include "cargotype.h"`
`#include "newgrf_cargo.h"`
`#include "string_func.h"`
`#include "strings_func.h"`
`#include "core/sort_func.hpp"`
`#include "table/sprites.h"`
`#include "table/strings.h"`
`#include "table/cargo_const.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.
CargoID | GetCargoIDByLabel (CargoLabel cl)
| Get the cargo ID by cargo label.
CargoID | GetCargoIDByBitnum (uint8 bitnum)
| Find the CargoID of a 'bitnum' value.
static int CDECL | CargoSpecNameSorter (const CargoSpec *const *a, const CargoSpec *const *b)
| Sort cargo specifications by their name.
static int CDECL | 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
uint32 | _cargo_mask
| Bitmask of cargo types available.
const CargoSpec * | _sorted_cargo_specs [NUM_CARGO]
| Cargo specifications sorted alphabetically by name.
uint8 | _sorted_cargo_specs_size
| Number of cargo specifications stored at the _sorted_cargo_specs array (including special cargoes).
uint8 | _sorted_standard_cargo_specs_size
| Number of standard cargo specifications stored at the _sorted_cargo_specs array.

## Detailed Description

Implementation of cargoes.

Definition in file cargotype.cpp.

## Function Documentation

static int CDECL CargoSpecClassSorter | ( | const CargoSpec *const * | a,
|  | const CargoSpec *const * | b |
| ) |  |  | `[static]`

Sort cargo specifications by their cargo class.

Definition at line 149 of file cargotype.cpp.

References CargoSpecNameSorter(), CC_MAIL, CC_PASSENGERS, and CC_SPECIAL.

Referenced by InitializeSortedCargoSpecs().

static int CDECL CargoSpecNameSorter | ( | const CargoSpec *const * | a,
|  | const CargoSpec *const * | b |
| ) |  |  | `[static]`

Sort cargo specifications by their name.

Definition at line 134 of file cargotype.cpp.

References lastof, and strnatcmp().

Referenced by CargoSpecClassSorter().

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 98 of file cargotype.cpp.

References CargoSpec::bitnum, CargoSpec::Index(), and INVALID_CARGO.

Referenced by GetCargoTranslation().

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 81 of file cargotype.cpp.

References CargoSpec::Index(), and CargoSpec::label.

Referenced by CalculateRefitMasks(), and GetCargoTranslation().

void InitializeSortedCargoSpecs | ( |  | ) |

Initialize the list of sorted cargo specifications.

Definition at line 166 of file cargotype.cpp.

References _sorted_cargo_specs_size, _sorted_standard_cargo_specs_size, CargoSpecClassSorter(), CC_SPECIAL, CargoSpec::classes, and QSortT().

Referenced by AfterLoadGRFs(), and ReadLanguagePack().

void SetupCargoForClimate | ( | LandscapeID | l | ) |

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

Parameters:

  | l | Landscape

Definition at line 35 of file cargotype.cpp.

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

Referenced by ResetNewGRFData().

## Variable Documentation

uint32 _cargo_mask

Bitmask of cargo types available.

Initialized during a call to SetupCargoForClimate.

Definition at line 29 of file cargotype.cpp.

Referenced by CalculateRefitMasks(), CargoChangeInfo(), CompanyStationsWindow::OnClick(), RailVehicleChangeInfo(), RoadVehicleChangeInfo(), SetupCargoForClimate(), ShipVehicleChangeInfo(), and ShowRefitOptionsList().