OpenTTD
|
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"
#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. | |
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. | |
uint32 | _standard_cargo_mask |
Bitmask of real 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. |
Implementation of cargoes.
Definition in file cargotype.cpp.
|
static |
Sort cargo specifications by their cargo class.
Definition at line 156 of file cargotype.cpp.
References CargoSpecNameSorter(), CC_MAIL, CC_PASSENGERS, and CC_SPECIAL.
Referenced by InitializeSortedCargoSpecs().
|
static |
Sort cargo specifications by their name.
Definition at line 141 of file cargotype.cpp.
References lastof, and strnatcmp().
Referenced by CargoSpecClassSorter().
CargoID GetCargoIDByBitnum | ( | uint8 | bitnum | ) |
Find the CargoID of a 'bitnum' value.
bitnum | 'bitnum' to find. |
Definition at line 105 of file cargotype.cpp.
References CargoSpec::bitnum, CT_INVALID, CargoSpec::Index(), and INVALID_CARGO.
Referenced by GetCargoTranslation().
CargoID GetCargoIDByLabel | ( | CargoLabel | cl | ) |
Get the cargo ID by cargo label.
cl | Cargo type to get. |
Definition at line 88 of file cargotype.cpp.
References CT_INVALID, CargoSpec::Index(), and CargoSpec::label.
Referenced by CalculateRefitMasks(), and GetCargoTranslation().
void InitializeSortedCargoSpecs | ( | ) |
Initialize the list of sorted cargo specifications.
Definition at line 173 of file cargotype.cpp.
References _sorted_cargo_specs_size, _sorted_standard_cargo_specs_size, _standard_cargo_mask, CargoSpecClassSorter(), CC_SPECIAL, CargoSpec::classes, FOR_ALL_SORTED_CARGOSPECS, CargoSpec::Index(), QSortT(), and SetBit().
Referenced by AfterLoadGRFs(), and ReadLanguagePack().
void SetupCargoForClimate | ( | LandscapeID | l | ) |
Set up the default cargo types for the given landscape type.
l | Landscape |
Definition at line 42 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().
uint32 _cargo_mask |
Bitmask of cargo types available.
This includes phony cargoes like regearing cargoes. Initialized during a call to SetupCargoForClimate.
Definition at line 31 of file cargotype.cpp.
Referenced by CalculateRefitMasks(), CargoChangeInfo(), CompanyStationsWindow::OnClick(), SetupCargoForClimate(), and ShowRefitOptionsList().
uint32 _standard_cargo_mask |
Bitmask of real cargo types available.
Phony cargoes like regearing cargoes are excluded.
Definition at line 36 of file cargotype.cpp.
Referenced by CargoFilter(), and InitializeSortedCargoSpecs().