Defines | Enumerations | Functions | Variables

newgrf_engine.h File Reference

Functions for NewGRF engines. More...

#include "direction_type.h"
#include "newgrf_callbacks.h"
#include "newgrf_properties.h"
#include "vehicle_type.h"
#include "engine_type.h"
#include "gfx_type.h"

Go to the source code of this file.

Defines

#define GetCustomRotorSprite(v, i, image_type)   GetRotorOverrideSprite(v->engine_type, v, i, image_type)
#define GetCustomRotorIcon(et, image_type)   GetRotorOverrideSprite(et, NULL, true, image_type)
#define GetCustomVehicleSprite(v, direction, image_type)   GetCustomEngineSprite(v->engine_type, v, direction, image_type)
#define GetCustomVehicleIcon(et, direction, image_type)   GetCustomEngineSprite(et, NULL, direction, image_type)

Enumerations

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 SpriteGroupGetWagonOverrideSpriteSet (EngineID engine, CargoID cargo, EngineID overriding_engine)
void SetCustomEngineSprites (EngineID engine, byte cargo, const struct SpriteGroup *group)
SpriteID GetCustomEngineSprite (EngineID engine, const Vehicle *v, Direction direction, EngineImageType image_type)
SpriteID GetRotorOverrideSprite (EngineID engine, const struct Aircraft *v, bool info_view, EngineImageType image_type)
void SetEngineGRF (EngineID engine, const struct GRFFile *file)
uint16 GetVehicleCallback (CallbackID callback, uint32 param1, uint32 param2, EngineID engine, const Vehicle *v)
 Evaluate a newgrf callback for vehicles.
uint16 GetVehicleCallbackParent (CallbackID callback, uint32 param1, uint32 param2, EngineID engine, const Vehicle *v, const Vehicle *parent)
 Evaluate a newgrf callback for vehicles with a different vehicle for parent scope.
bool UsesWagonOverride (const Vehicle *v)
 Check if a wagon is currently using a wagon override.
uint GetVehicleProperty (const Vehicle *v, PropertyID property, uint orig_value)
uint GetEngineProperty (EngineID engine, PropertyID property, uint orig_value, const Vehicle *v=NULL)
void TriggerVehicle (Vehicle *veh, VehicleTrigger trigger)
void UnloadWagonOverrides (Engine *e)
 Unload all wagon override sprite groups.
uint ListPositionOfEngine (EngineID engine)
 Get the list position of an engine.
void AlterVehicleListOrder (EngineID engine, EngineID target)
void CommitVehicleListOrderChanges ()
EngineID GetNewEngineID (const GRFFile *file, VehicleType type, uint16 internal_id)
 Return the ID of a new engine.

Variables

static const uint TRAININFO_DEFAULT_VEHICLE_WIDTH = 29
static const uint ROADVEHINFO_DEFAULT_VEHICLE_WIDTH = 28
static const uint VEHICLEINFO_FULL_VEHICLE_WIDTH = 32

Detailed Description

Functions for NewGRF engines.

Definition in file newgrf_engine.h.


Function Documentation

EngineID GetNewEngineID ( const GRFFile file,
VehicleType  type,
uint16  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 576 of file newgrf.cpp.

References _settings_game, VehicleSettings::dynamic_engines, EngineOverrideManager::GetID(), and GameSettings::vehicle.

Referenced by GetNextArticulatedPart().

uint16 GetVehicleCallback ( CallbackID  callback,
uint32  param1,
uint32  param2,
EngineID  engine,
const Vehicle v 
)

Evaluate a newgrf callback for vehicles.

Parameters:
callback The callback to evalute
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 NULL if it doesnt exist yet
Returns:
The value the callback returned, or CALLBACK_FAILED if it failed

Definition at line 1041 of file newgrf_engine.cpp.

References CALLBACK_FAILED, GetVehicleSpriteGroup(), and SpriteGroup::Resolve().

Referenced by RefitWindow::BuildRefitList(), CmdStartStopVehicle(), Engine::DetermineCapacity(), GetBestFittingSubType(), GetCargoSubtypeText(), GetNextArticulatedPart(), GetRefitCostFactor(), GetRoadVehLength(), LoadUnloadVehicle(), PlayVehicleSound(), RunVehicleDayProc(), ShowAdditionalText(), and Vehicle::UpdateVisualEffect().

uint16 GetVehicleCallbackParent ( CallbackID  callback,
uint32  param1,
uint32  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 evalute
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 NULL if it doesnt 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 1068 of file newgrf_engine.cpp.

References CALLBACK_FAILED, GetVehicleSpriteGroup(), and SpriteGroup::Resolve().

Referenced by CheckTrainAttachment().

uint ListPositionOfEngine ( EngineID  engine  ) 

Get the list position of an engine.

Used when sorting a list of engines.

Parameters:
engine ID of the engine.
Returns:
The list position of the engine.

Definition at line 1187 of file newgrf_engine.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), and Engine::GetGRFID().

Referenced by EngineNumberSorter().

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 1026 of file newgrf_engine.cpp.

References BaseVehicle::type, and VEH_TRAIN.

Referenced by GetEngineLiveryScheme().