OpenTTD Source: src/newgrf_engine.h File Reference

OpenTTD Source 14.0-RC3

Data Structures | Macros | Enumerations | Functions | Variables
newgrf_engine.h File Reference
`#include "direction_type.h"`
`#include "newgrf_callbacks.h"`
`#include "newgrf_properties.h"`
`#include "vehicle_type.h"`
`#include "engine_type.h"`
`#include "gfx_type.h"`
`#include "newgrf_spritegroup.h"`

Go to the source code of this file.

## Data Structures
struct | VehicleScopeResolver
| Resolver for a vehicle scope. More...
struct | VehicleResolverObject
| Resolver for a vehicle (chain) More...

## Macros
#define | GetCustomVehicleSprite(v, direction, image_type, result) GetCustomEngineSprite(v->engine_type, v, direction, image_type, result)
#define | GetCustomVehicleIcon(et, direction, image_type, result) GetCustomEngineSprite(et, nullptr, direction, image_type, result)
#define | GetCustomRotorSprite(v, image_type, result) GetRotorOverrideSprite(v->engine_type, v, image_type, result)
#define | GetCustomRotorIcon(et, image_type, result) GetRotorOverrideSprite(et, nullptr, image_type, result)

## Enumerations
enum | BuildProbabilityType { Reversed = 0 }
enum | VehicleTrigger { VEHICLE_TRIGGER_NEW_CARGO = 0x01, VEHICLE_TRIGGER_DEPOT = 0x02, VEHICLE_TRIGGER_EMPTY = 0x04, VEHICLE_TRIGGER_ANY_NEW_CARGO = 0x08, VEHICLE_TRIGGER_CALLBACK_32 = 0x10 }

## Functions
void | SetWagonOverrideSprites (EngineID engine, CargoID cargo, const struct SpriteGroup *group, EngineID *train_id, uint trains)
const SpriteGroup * | GetWagonOverrideSpriteSet (EngineID engine, CargoID cargo, EngineID overriding_engine)
void | SetCustomEngineSprites (EngineID engine, byte cargo, const struct SpriteGroup *group)
void | GetCustomEngineSprite (EngineID engine, const Vehicle *v, Direction direction, EngineImageType image_type, VehicleSpriteSeq *result)
void | GetRotorOverrideSprite (EngineID engine, const struct Aircraft *v, EngineImageType image_type, VehicleSpriteSeq *result)
void | SetEngineGRF (EngineID engine, const struct GRFFile *file)
uint16_t | GetVehicleCallback (CallbackID callback, uint32_t param1, uint32_t param2, EngineID engine, const Vehicle *v)
| Evaluate a newgrf callback for vehicles. More...
uint16_t | GetVehicleCallbackParent (CallbackID callback, uint32_t param1, uint32_t param2, EngineID engine, const Vehicle *v, const Vehicle *parent)
| Evaluate a newgrf callback for vehicles with a different vehicle for parent scope. More...
bool | UsesWagonOverride (const Vehicle *v)
| Check if a wagon is currently using a wagon override. More...
int | GetVehicleProperty (const Vehicle *v, PropertyID property, int orig_value, bool is_signed=false)
int | GetEngineProperty (EngineID engine, PropertyID property, int orig_value, const Vehicle *v=nullptr, bool is_signed=false)
bool | TestVehicleBuildProbability (Vehicle *v, EngineID engine, BuildProbabilityType type)
| Test for vehicle build probablity type. More...
void | TriggerVehicle (Vehicle *veh, VehicleTrigger trigger)
void | AlterVehicleListOrder (EngineID engine, uint target)
| Record a vehicle ListOrderChange. More...
void | CommitVehicleListOrderChanges ()
| Deternine default engine sorting and execute recorded ListOrderChanges from AlterVehicleListOrder.
EngineID | GetNewEngineID (const GRFFile *file, VehicleType type, uint16_t internal_id)
| Return the ID of a new engine. More...
void | FillNewGRFVehicleCache (const Vehicle *v)
| Fill the grf_cache of the given vehicle. More...

## Variables
static const uint | TRAININFO_DEFAULT_VEHICLE_WIDTH = 29
static const uint | ROADVEHINFO_DEFAULT_VEHICLE_WIDTH = 32
static const uint | VEHICLEINFO_FULL_VEHICLE_WIDTH = 32

## Detailed Description

Functions for NewGRF engines.

Definition in file newgrf_engine.h.

## Function Documentation

## ◆ AlterVehicleListOrder()

void AlterVehicleListOrder | ( | EngineID | engine,
|  | uint | target
| ) |  |

Record a vehicle ListOrderChange.

Parameters

  engine | Engine to move
  target | Local engine ID to move engine in front of

Note
  All sorting is done later in CommitVehicleListOrderChanges

Definition at line 1299 of file newgrf_engine.cpp.

## ◆ FillNewGRFVehicleCache()

void FillNewGRFVehicleCache | ( | const Vehicle * | v | ) |

Fill the grf_cache of the given vehicle.

Parameters

  v | The vehicle to fill the cache for.

Definition at line 1382 of file newgrf_engine.cpp.

References NewGRFCache::cache_valid, Vehicle::engine_type, VehicleResolverObject::GetScope(), ScopeResolver::GetVariable(), Vehicle::grf_cache, HasBit(), lengthof, NCVV_COMPANY_INFORMATION, NCVV_CONSIST_CARGO_INFORMATION, NCVV_END, NCVV_POSITION_CONSIST_LENGTH, NCVV_POSITION_IN_VEHICLE, NCVV_POSITION_SAME_ID_LENGTH, VSG_SCOPE_SELF, and VehicleResolverObject::WO_NONE.

## ◆ GetNewEngineID()

EngineID GetNewEngineID | ( | const GRFFile * | file,
|  | VehicleType | type,
|  | uint16_t | internal_id
| ) |  |

Return the ID of a new engine.

Parameters

  file | The NewGRF file providing the engine.
  type | The Vehicle type.
  internal_id | NewGRF-internal ID of the engine.

Returns
  The new EngineID.

Note
  depending on the dynamic_engine setting and a possible override property the grfID may be unique or overwriting or partially re-defining properties of an existing engine.

Definition at line 690 of file newgrf.cpp.

## ◆ GetVehicleCallback()

uint16_t GetVehicleCallback | ( | CallbackID | callback,
|  | uint32_t | param1,
|  | uint32_t | param2,
|  | EngineID | engine,
|  | const Vehicle * | v
| ) |  |

Evaluate a newgrf callback for vehicles.

Parameters

  callback | The callback to evaluate
  param1 | First parameter of the callback
  param2 | Second parameter of the callback
  engine | Engine type of the vehicle to evaluate the callback for
  v | The vehicle to evaluate the callback for, or nullptr if it doesn't exist yet

Returns
  The value the callback returned, or CALLBACK_FAILED if it failed

Definition at line 1149 of file newgrf_engine.cpp.

## ◆ GetVehicleCallbackParent()

uint16_t GetVehicleCallbackParent | ( | CallbackID | callback,
|  | uint32_t | param1,
|  | uint32_t | param2,
|  | EngineID | engine,
|  | const Vehicle * | v,
|  | const Vehicle * | parent
| ) |  |

Evaluate a newgrf callback for vehicles with a different vehicle for parent scope.

Parameters

  callback | The callback to evaluate
  param1 | First parameter of the callback
  param2 | Second parameter of the callback
  engine | Engine type of the vehicle to evaluate the callback for
  v | The vehicle to evaluate the callback for, or nullptr if it doesn't exist yet
  parent | The vehicle to use for parent scope

Returns
  The value the callback returned, or CALLBACK_FAILED if it failed

Definition at line 1165 of file newgrf_engine.cpp.

## ◆ TestVehicleBuildProbability()

bool TestVehicleBuildProbability | ( | Vehicle * | v,
|  | EngineID | engine,
|  | BuildProbabilityType | type
| ) |  |

Test for vehicle build probablity type.

Parameters

  v | Vehicle whose build probability to test.
  type | Build probability type to test for.

Returns
  True iff the probability result says so.

Definition at line 1201 of file newgrf_engine.cpp.

## ◆ UsesWagonOverride()

bool UsesWagonOverride | ( | const Vehicle * | v | ) |

Check if a wagon is currently using a wagon override.

Parameters

  v | The wagon to check

Returns
  true if it is using an override, false otherwise

Definition at line 1134 of file newgrf_engine.cpp.

References SpecializedVehicle< Train, Type >::From(), BaseVehicle::type, and VEH_TRAIN.