OpenTTD
|
Types/functions related to cargoes. More...
#include "economy_type.h"
#include "cargo_type.h"
#include "gfx_type.h"
#include "strings_type.h"
#include "landscape_type.h"
Go to the source code of this file.
Data Structures | |
struct | CargoSpec |
Specification of a cargo type. More... |
Macros | |
#define | FOR_ALL_CARGOSPECS_FROM(var, start) |
#define | FOR_ALL_CARGOSPECS(var) FOR_ALL_CARGOSPECS_FROM(var, 0) |
#define | FOR_EACH_SET_CARGO_ID(var, cargo_bits) FOR_EACH_SET_BIT_EX(CargoID, var, uint, cargo_bits) |
#define | FOR_ALL_SORTED_CARGOSPECS(var) for (uint8 index = 0; index < _sorted_cargo_specs_size && (var = _sorted_cargo_specs[index], true) ; index++) |
Loop header for iterating over cargoes, sorted by name. | |
#define | FOR_ALL_SORTED_STANDARD_CARGOSPECS(var) for (uint8 index = 0; index < _sorted_standard_cargo_specs_size && (var = _sorted_cargo_specs[index], true); index++) |
Loop header for iterating over 'real' cargoes, sorted by name. |
Typedefs | |
typedef uint32 | CargoLabel |
Globally unique label of a cargo type. |
Enumerations | |
enum | TownEffect { TE_BEGIN = 0, TE_NONE = TE_BEGIN, TE_PASSENGERS, TE_MAIL, TE_GOODS, TE_WATER, TE_FOOD, TE_END, NUM_TE = TE_END } |
Town growth effect when delivering cargo. More... | |
enum | CargoClass { CC_NOAVAILABLE = 0, CC_PASSENGERS = 1 << 0, CC_MAIL = 1 << 1, CC_EXPRESS = 1 << 2, CC_ARMOURED = 1 << 3, CC_BULK = 1 << 4, CC_PIECE_GOODS = 1 << 5, CC_LIQUID = 1 << 6, CC_REFRIGERATED = 1 << 7, CC_HAZARDOUS = 1 << 8, CC_COVERED = 1 << 9, CC_SPECIAL = 1 << 15 } |
Cargo classes. More... |
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. | |
void | InitializeSortedCargoSpecs () |
Initialize the list of sorted cargo specifications. | |
static bool | IsCargoInClass (CargoID c, CargoClass cc) |
Does cargo c have cargo class cc? |
Variables | |
static const byte | INVALID_CARGO = 0xFF |
Constant representing invalid cargo. | |
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. |
Types/functions related to cargoes.
Definition in file cargotype.h.
#define FOR_ALL_CARGOSPECS_FROM | ( | var, | |
start | |||
) |
Definition at line 155 of file cargotype.h.
#define FOR_ALL_SORTED_CARGOSPECS | ( | var | ) | for (uint8 index = 0; index < _sorted_cargo_specs_size && (var = _sorted_cargo_specs[index], true) ; index++) |
Loop header for iterating over cargoes, sorted by name.
This includes phony cargoes like regearing cargoes.
var | Reference getting the cargospec. |
Definition at line 166 of file cargotype.h.
Referenced by RefitWindow::BuildRefitList(), FormatString(), and InitializeSortedCargoSpecs().
#define FOR_ALL_SORTED_STANDARD_CARGOSPECS | ( | var | ) | for (uint8 index = 0; index < _sorted_standard_cargo_specs_size && (var = _sorted_cargo_specs[index], true); index++) |
Loop header for iterating over 'real' cargoes, sorted by name.
Phony cargoes like regearing cargoes are skipped.
var | Reference getting the cargospec. |
Definition at line 173 of file cargotype.h.
Referenced by StationViewWindow::DrawCargoRatings(), PaymentRatesGraphWindow::OnClick(), IndustryCargoesWindow::OnClick(), PaymentRatesGraphWindow::OnHundredthTick(), and BuildVehicleWindow::SetCargoFilterArray().
typedef uint32 CargoLabel |
Globally unique label of a cargo type.
Definition at line 22 of file cargotype.h.
enum CargoClass |
Cargo classes.
Definition at line 38 of file cargotype.h.
enum TownEffect |
Town growth effect when delivering cargo.
Definition at line 25 of file cargotype.h.
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().
|
inlinestatic |
Does cargo c have cargo class cc?
c | Cargo type. |
cc | Cargo class. |
Definition at line 150 of file cargotype.h.
References CargoSpec::Get().
Referenced by Vehicle::Crash(), Engine::DetermineCapacity(), DrawStationCoverageAreaText(), GetEngineLiveryScheme(), RoadVehicle::IsBus(), LoadUnloadVehicle(), and UpdateStationAcceptance().
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().