OpenTTD Source
20241121-master-g67a0fccfad
|
Data Structures | |
struct | EngineTypeFilter |
Public Member Functions | |
Engine (VehicleType type, EngineID base) | |
bool | IsEnabled () const |
Checks whether the engine is a valid (non-articulated part of an) engine. More... | |
CargoID | GetDefaultCargoType () const |
Determines the default cargo type of an engine. More... | |
uint | DetermineCapacity (const Vehicle *v, uint16_t *mail_capacity=nullptr) const |
Determines capacity of a given vehicle from scratch. More... | |
bool | CanCarryCargo () const |
Determines whether an engine can carry something. More... | |
uint | GetDisplayDefaultCapacity (uint16_t *mail_capacity=nullptr) const |
Determines the default cargo capacity of an engine for display purposes. More... | |
Money | GetRunningCost () const |
Return how much the running costs of this engine are. More... | |
Money | GetCost () const |
Return how much a new engine costs. More... | |
uint | GetDisplayMaxSpeed () const |
Returns max speed of the engine for display purposes. More... | |
uint | GetPower () const |
Returns the power of the engine for display and sorting purposes. More... | |
uint | GetDisplayWeight () const |
Returns the weight of the engine for display purposes. More... | |
uint | GetDisplayMaxTractiveEffort () const |
Returns the tractive effort of the engine for display purposes. More... | |
TimerGameCalendar::Date | GetLifeLengthInDays () const |
Returns the vehicle's (not model's!) life length in days. More... | |
uint16_t | GetRange () const |
Get the range of an aircraft type. More... | |
StringID | GetAircraftTypeText () const |
Get the name of the aircraft type for display purposes. More... | |
bool | IsHidden (CompanyID c) const |
Check whether the engine is hidden in the GUI for the given company. More... | |
const Engine * | GetDisplayVariant () const |
Get the last display variant for an engine. More... | |
bool | IsVariantHidden (CompanyID c) const |
Check whether the engine variant chain is hidden in the GUI for the given company. More... | |
bool | IsGroundVehicle () const |
Check if the engine is a ground vehicle. More... | |
const GRFFile * | GetGRF () const |
Retrieve the NewGRF the engine is tied to. More... | |
uint32_t | GetGRFID () const |
Retrieve the GRF ID of the NewGRF the engine is tied to. More... | |
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool > | |
void * | operator new (size_t size) |
Allocates space for new Titem. More... | |
void * | operator new (size_t size, size_t index) |
Allocates space for new Titem with given index. More... | |
void * | operator new (size_t, void *ptr) |
Allocates space for new Titem at given memory address. More... | |
void | operator delete (void *p) |
Marks Titem as free. More... | |
Static Public Member Functions | |
static Pool::IterateWrapperFiltered< Engine, EngineTypeFilter > | IterateType (VehicleType vt, size_t from=0) |
Returns an iterable ensemble of all valid engines of the given type. More... | |
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool > | |
static bool | CanAllocateItem (size_t n=1) |
Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function() More... | |
static bool | CleaningPool () |
Returns current state of pool cleaning - yes or no. More... | |
static bool | IsValidID (size_t index) |
Tests whether given index can be used to get valid (non-nullptr) Titem. More... | |
static Titem * | Get (size_t index) |
Returns Titem with given index. More... | |
static Titem * | GetIfValid (size_t index) |
Returns Titem with given index. More... | |
static size_t | GetPoolSize () |
Returns first unused index. More... | |
static size_t | GetNumItems () |
Returns number of valid items in the pool. More... | |
static void | PostDestructor ([[maybe_unused]] size_t index) |
Dummy function called after destructor of each member. More... | |
static Pool::IterateWrapper< Titem > | Iterate (size_t from=0) |
Returns an iterable ensemble of all valid Titem. More... | |
Data Fields | |
std::string | name |
Custom name of engine. | |
TimerGameCalendar::Date | intro_date |
Date of introduction of the engine. | |
int32_t | age |
Age of the engine in months. | |
uint16_t | reliability |
Current reliability of the engine. | |
uint16_t | reliability_spd_dec |
Speed of reliability decay between services (per day). | |
uint16_t | reliability_start |
Initial reliability of the engine. | |
uint16_t | reliability_max |
Maximal reliability of the engine. | |
uint16_t | reliability_final |
Final reliability of the engine. | |
uint16_t | duration_phase_1 |
First reliability phase in months, increasing reliability from reliability_start to reliability_max. | |
uint16_t | duration_phase_2 |
Second reliability phase in months, keeping reliability_max. | |
uint16_t | duration_phase_3 |
Third reliability phase in months, decaying to reliability_final. | |
uint8_t | flags |
Flags of the engine. More... | |
CompanyMask | preview_asked |
Bit for each company which has already been offered a preview. | |
CompanyID | preview_company |
Company which is currently being offered a preview INVALID_COMPANY means no company. | |
uint8_t | preview_wait |
Daily countdown timer for timeout of offering the engine to the preview_company company. | |
CompanyMask | company_avail |
Bit for each company whether the engine is available for that company. | |
CompanyMask | company_hidden |
Bit for each company whether the engine is normally hidden in the build gui for that company. | |
uint8_t | original_image_index |
Original vehicle image index, thus the image index of the overridden vehicle. | |
VehicleType | type |
Vehicle type, ie VEH_ROAD, VEH_TRAIN, etc. | |
EngineDisplayFlags | display_flags |
NOSAVE client-side-only display flags for build engine list. | |
EngineID | display_last_variant |
NOSAVE client-side-only last variant selected. | |
EngineInfo | info |
union { | |
RailVehicleInfo rail | |
RoadVehicleInfo road | |
ShipVehicleInfo ship | |
AircraftVehicleInfo air | |
} | u |
GRFFilePropsBase< NUM_CARGO+2 > | grf_prop |
Properties related the the grf file. More... | |
std::vector< WagonOverride > | overrides |
uint16_t | list_position |
Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool > | |
Tindex | index |
Index of this pool item. | |
Additional Inherited Members | |
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool > | |
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > | Pool |
Type of the pool this item is going to be part of. | |
Definition at line 37 of file engine_base.h.
bool Engine::CanCarryCargo | ( | ) | const |
Determines whether an engine can carry something.
A vehicle cannot carry anything if its capacity is zero, or none of the possible cargoes is available in the climate.
Definition at line 168 of file engine.cpp.
References VEH_AIRCRAFT, VEH_ROAD, VEH_SHIP, and VEH_TRAIN.
Referenced by RefitWindow::BuildRefitList(), GetAvailableVehicleCargoTypes(), GetBestFittingSubType(), GetCargoSummaryOfArticulatedVehicle(), IsEngineRefittable(), and RefitVehicle().
uint Engine::DetermineCapacity | ( | const Vehicle * | v, |
uint16_t * | mail_capacity = nullptr |
||
) | const |
Determines capacity of a given vehicle from scratch.
For aircraft the main capacity is determined. Mail might be present as well.
v | Vehicle of interest; nullptr in purchase list |
mail_capacity | returns secondary cargo (mail) capacity of aircraft |
Definition at line 201 of file engine.cpp.
Referenced by RefitVehicle().
StringID Engine::GetAircraftTypeText | ( | ) | const |
Get the name of the aircraft type for display purposes.
Definition at line 467 of file engine.cpp.
References VEH_AIRCRAFT.
Money Engine::GetCost | ( | ) | const |
Return how much a new engine costs.
Definition at line 318 of file engine.cpp.
References VEH_ROAD.
Referenced by CmdBuildVehicle().
|
inline |
Determines the default cargo type of an engine.
Usually a valid cargo is returned, even though the vehicle has zero capacity, and can therefore not carry anything. But the cargotype is still used for livery selection etc..
Vehicles with INVALID_CARGO as default cargo are usually not available, but it can appear as default cargo of articulated parts.
Definition at line 96 of file engine_base.h.
Referenced by CmdBuildVehicle(), GetAvailableVehicleCargoTypes(), VehicleScopeResolver::GetVariable(), and IsEngineRefittable().
|
inline |
Determines the default cargo capacity of an engine for display purposes.
For planes carrying both passenger and mail this is the passenger capacity. For multiheaded engines this is the capacity of both heads. For articulated engines use GetCapacityOfArticulatedParts
mail_capacity | returns secondary cargo (mail) capacity of aircraft |
Definition at line 116 of file engine_base.h.
Referenced by ShipEngineCapacitySorter().
uint Engine::GetDisplayMaxSpeed | ( | ) | const |
Returns max speed of the engine for display purposes.
Definition at line 358 of file engine.cpp.
References VEH_TRAIN.
uint Engine::GetDisplayMaxTractiveEffort | ( | ) | const |
Returns the tractive effort of the engine for display purposes.
For dual-headed train-engines this is the tractive effort of both heads
Definition at line 426 of file engine.cpp.
References GetDisplayWeight(), GROUND_ACCELERATION, and VEH_TRAIN.
|
inline |
Get the last display variant for an engine.
Definition at line 145 of file engine_base.h.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::index, and INVALID_ENGINE.
Referenced by IsVariantHidden().
uint Engine::GetDisplayWeight | ( | ) | const |
Returns the weight of the engine for display purposes.
For dual-headed train-engines this is the weight of both heads
Definition at line 408 of file engine.cpp.
References VEH_TRAIN.
Referenced by GetDisplayMaxTractiveEffort().
|
inline |
Retrieve the NewGRF the engine is tied to.
This is the GRF providing the Action 3.
Definition at line 167 of file engine_base.h.
References GRFFilePropsBase< Tcnt >::grffile.
Referenced by FinaliseEngineArray(), GetEngineGrfFile(), Vehicle::GetGRF(), GetGRFID(), and GetRefitCostFactor().
uint32_t Engine::GetGRFID | ( | ) | const |
Retrieve the GRF ID of the NewGRF the engine is tied to.
This is the GRF providing the Action 3.
Definition at line 157 of file engine.cpp.
References GetGRF().
Referenced by Vehicle::GetGRFID(), ShowNewGrfVehicleError(), and StartupOneEngine().
TimerGameCalendar::Date Engine::GetLifeLengthInDays | ( | ) | const |
Returns the vehicle's (not model's!) life length in days.
Definition at line 443 of file engine.cpp.
References _settings_game, TimerGameConst< struct Calendar >::DAYS_IN_LEAP_YEAR, VehicleSettings::extend_vehicle_life, EngineInfo::lifelength, and GameSettings::vehicle.
uint Engine::GetPower | ( | ) | const |
Returns the power of the engine for display and sorting purposes.
Only trains and road vehicles have power
Definition at line 390 of file engine.cpp.
References VEH_TRAIN.
Referenced by EnginePowerVsRunningCostSorter().
uint16_t Engine::GetRange | ( | ) | const |
Get the range of an aircraft type.
Definition at line 453 of file engine.cpp.
Money Engine::GetRunningCost | ( | ) | const |
Return how much the running costs of this engine are.
Definition at line 281 of file engine.cpp.
References VEH_ROAD.
Referenced by EnginePowerVsRunningCostSorter().
bool Engine::IsEnabled | ( | ) | const |
Checks whether the engine is a valid (non-articulated part of an) engine.
Definition at line 147 of file engine.cpp.
References _settings_game, EngineInfo::climates, GameSettings::game_creation, HasBit(), GameCreationSettings::landscape, and EngineInfo::string_id.
Referenced by IsEngineBuildable().
|
inline |
Check if the engine is a ground vehicle.
Definition at line 157 of file engine_base.h.
References VEH_ROAD, and VEH_TRAIN.
Referenced by IsArticulatedVehicleRefittable().
|
inline |
Check whether the engine is hidden in the GUI for the given company.
c | Company to check. |
true
iff the engine is hidden in the GUI for the given company. Definition at line 136 of file engine_base.h.
References HasBit(), and MAX_COMPANIES.
Referenced by IsVariantHidden().
bool Engine::IsVariantHidden | ( | CompanyID | c | ) | const |
Check whether the engine variant chain is hidden in the GUI for the given company.
c | Company to check. |
true
iff the engine variant chain is hidden in the GUI for the given company. Definition at line 487 of file engine.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_engine_pool >::Get(), GetDisplayVariant(), INVALID_ENGINE, IsHidden(), MAX_COMPANIES, and EngineInfo::variant_id.
|
inlinestatic |
Returns an iterable ensemble of all valid engines of the given type.
vt | the VehicleType for engines to be valid |
from | index of the first engine to consider |
Definition at line 186 of file engine_base.h.
Referenced by AcceptEnginePreview(), CheckValidVehicles(), ClearLastVariant(), ReplaceVehicleWindow::GenerateReplaceVehList(), GetCompanyRailTypes(), GetCompanyRoadTypes(), GetRailTypes(), and GetRoadTypes().
uint8_t Engine::flags |
Flags of the engine.
Definition at line 49 of file engine_base.h.
Referenced by CmdWantEnginePreview(), IsEngineBuildable(), NewVehicleAvailable(), and StartupOneEngine().
GRFFilePropsBase<NUM_CARGO + 2> Engine::grf_prop |
Properties related the the grf file.
NUM_CARGO real cargo plus two pseudo cargo sprite groups. Used for obtaining the sprite offset of custom sprites, and for evaluating callbacks.
Definition at line 77 of file engine_base.h.
Referenced by SetEngineGRF(), and VehicleLengthChanged().