OpenTTD Source: src/newgrf_cargo.cpp File Reference

OpenTTD Source 15.0-beta1

Data Structures | Functions
newgrf_cargo.cpp File Reference

Implementation of NewGRF cargoes. More...

`#include "stdafx.h"`
`#include "debug.h"`
`#include "newgrf_cargo.h"`
`#include "newgrf_spritegroup.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | CargoResolverObject
| Resolver of cargo. More...

## 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)
| Translate a GRF-local cargo slot/bitnum into a CargoID.

## Detailed Description

Implementation of NewGRF cargoes.

Definition in file newgrf_cargo.cpp.

## 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

  cargo | GRF-local cargo slot/bitnum.
  grffile | Originating GRF file.
  usebit | Defines 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().

## ◆ GetCustomCargoSprite()

SpriteID GetCustomCargoSprite | ( | const CargoSpec * | cs | ) |

Get the custom sprite for the given cargo type.

Parameters

  cs | Cargo 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().