OpenTTD Source 20241224-master-gf74b0cf984
newgrf_cargo.h File Reference

Cargo support for NewGRFs. More...

#include "newgrf_callbacks.h"
#include "cargo_type.h"
#include "gfx_type.h"

Go to the source code of this file.

Namespaces

namespace  SpriteGroupCargo
 Sprite Group Cargo types.
 

Functions

SpriteID GetCustomCargoSprite (const CargoSpec *cs)
 Get the custom sprite for the given cargo type.
 
uint16_t GetCargoCallback (CallbackID callback, uint32_t param1, uint32_t param2, const CargoSpec *cs)
 
CargoID GetCargoTranslation (uint8_t cargo, const GRFFile *grffile, bool usebit=false)
 Translate a GRF-local cargo slot/bitnum into a CargoID.
 
std::span< const CargoLabelGetClimateDependentCargoTranslationTable ()
 Get default climate-dependent cargo translation table for a NewGRF, used if the NewGRF does not provide its own.
 
std::span< const CargoLabelGetClimateIndependentCargoTranslationTable ()
 Get default climate-independent cargo translation table for a NewGRF, used if the NewGRF does not provide its own.
 

Variables

static constexpr CargoID SpriteGroupCargo::SG_DEFAULT = NUM_CARGO
 Default type used when no more-specific cargo matches.
 
static constexpr CargoID SpriteGroupCargo::SG_PURCHASE = NUM_CARGO + 1
 Used in purchase lists before an item exists.
 
static constexpr CargoID SpriteGroupCargo::SG_DEFAULT_NA = NUM_CARGO + 2
 Used only by stations and roads when no more-specific cargo matches.
 

Detailed Description

Cargo support for NewGRFs.

Definition in file newgrf_cargo.h.

Function Documentation

◆ GetCargoCallback()

uint16_t GetCargoCallback ( CallbackID  callback,
uint32_t  param1,
uint32_t  param2,
const CargoSpec cs 
)

Definition at line 65 of file newgrf_cargo.cpp.

◆ GetCargoTranslation()

CargoID GetCargoTranslation ( uint8_t  cargo,
const GRFFile grffile,
bool  usebit 
)

Translate a GRF-local cargo slot/bitnum into a CargoID.

Parameters
cargoGRF-local cargo slot/bitnum.
grffileOriginating GRF file.
usebitDefines the meaning of cargo for GRF version < 7. If true, then cargo is a bitnum. If false, then cargo is a cargoslot. For GRF version >= 7 cargo is always a translated cargo bit.
Returns
CargoID or INVALID_CARGO if the cargo is not available.

Definition at line 80 of file newgrf_cargo.cpp.

References GRFFile::cargo_list, GetClimateDependentCargoTranslationTable(), and GetClimateIndependentCargoTranslationTable().

Referenced by AddAcceptedCargoOfHouse(), AircraftVehicleChangeInfo(), DoCreateNewIndustry(), HouseScopeResolver::GetVariable(), IndustriesScopeResolver::GetVariable(), IndustriesChangeInfo(), IndustrytilesChangeInfo(), RailVehicleChangeInfo(), RemapNewGRFStringControlCode(), RoadVehicleChangeInfo(), ShipVehicleChangeInfo(), TileLoop_Town(), TownHouseChangeInfo(), and TranslateRefitMask().

◆ GetClimateDependentCargoTranslationTable()

std::span< const CargoLabel > GetClimateDependentCargoTranslationTable ( )

Get default climate-dependent cargo translation table for a NewGRF, used if the NewGRF does not provide its own.

Returns
Default translation table for GRF version.

Definition at line 115 of file cargotype.cpp.

References _climate_dependent_cargo_labels.

Referenced by GetCargoTranslation(), and GetCargoTranslationTable().

◆ GetClimateIndependentCargoTranslationTable()

std::span< const CargoLabel > GetClimateIndependentCargoTranslationTable ( )

Get default climate-independent cargo translation table for a NewGRF, used if the NewGRF does not provide its own.

Returns
Default translation table for GRF version.

Definition at line 124 of file cargotype.cpp.

References _climate_independent_cargo_labels.

Referenced by GetCargoTranslation(), and GetCargoTranslationTable().

◆ GetCustomCargoSprite()

SpriteID GetCustomCargoSprite ( const CargoSpec cs)

Get the custom sprite for the given cargo type.

Parameters
csCargo being queried.
Returns
Custom sprite to draw, or 0 if not available.

Definition at line 55 of file newgrf_cargo.cpp.

References SpriteGroup::Resolve().

Referenced by CargoSpec::GetCargoIcon().