OpenTTD Source  1.11.0-beta2
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
clCargo 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
lLandscape

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 CargoFilter().