AIEngine Class Reference

Class that handles all engine related functions. More...

#include <ai_engine.hpp>

Inheritance diagram for AIEngine:

AIObject SimpleCountedObject

Static Public Member Functions

static const char * GetClassName ()
static bool IsValidEngine (EngineID engine_id)
 Checks whether the given engine type is valid and buildable by you.
static char * GetName (EngineID engine_id)
 Get the name of an engine.
static CargoID GetCargoType (EngineID engine_id)
 Get the cargo-type of an engine.
static bool CanRefitCargo (EngineID engine_id, CargoID cargo_id)
 Check if the cargo of an engine can be refitted to your requested.
static bool CanPullCargo (EngineID engine_id, CargoID cargo_id)
 Check if the engine can pull a wagon with the given cargo.
static int32 GetCapacity (EngineID engine_id)
 Get the capacity of an engine.
static int32 GetReliability (EngineID engine_id)
 Get the reliability of an engine.
static int32 GetMaxSpeed (EngineID engine_id)
 Get the maximum speed of an engine.
static Money GetPrice (EngineID engine_id)
 Get the new cost of an engine.
static int32 GetMaxAge (EngineID engine_id)
 Get the maximum age of a brand new engine.
static Money GetRunningCost (EngineID engine_id)
 Get the running cost of an engine.
static AIVehicle::VehicleType GetVehicleType (EngineID engine_id)
 Get the type of an engine.
static bool IsWagon (EngineID engine_id)
 Check if an engine is a wagon.
static bool CanRunOnRail (EngineID engine_id, AIRail::RailType track_rail_type)
 Check if a train vehicle can run on a RailType.
static bool HasPowerOnRail (EngineID engine_id, AIRail::RailType track_rail_type)
 Check if a train engine has power on a RailType.
static AIRoad::RoadType GetRoadType (EngineID engine_id)
 Get the RoadType of the engine.
static AIRail::RailType GetRailType (EngineID engine_id)
 Get the RailType of the engine.
static bool IsArticulated (EngineID engine_id)
 Check if the engine is articulated.
static AIAirport::PlaneType GetPlaneType (EngineID engine_id)
 Get the PlaneType of the engine.

Detailed Description

Class that handles all engine related functions.

Definition at line 17 of file ai_engine.hpp.


Member Function Documentation

bool AIEngine::IsValidEngine ( EngineID  engine_id  )  [static]

Checks whether the given engine type is valid and buildable by you.

Parameters:
engine_id The engine to check.
Returns:
True if and only if the engine type is valid.

Definition at line 15 of file ai_engine.cpp.

References HasBit().

Referenced by AIVehicle::BuildVehicle(), CanPullCargo(), CanRefitCargo(), CanRunOnRail(), GetCapacity(), GetCargoType(), GetMaxAge(), GetMaxSpeed(), GetName(), GetPlaneType(), GetPrice(), GetRailType(), GetReliability(), GetRoadType(), GetRunningCost(), GetVehicleType(), HasPowerOnRail(), IsArticulated(), IsWagon(), and AIGroup::SetAutoReplace().

char * AIEngine::GetName ( EngineID  engine_id  )  [static]

Get the name of an engine.

Parameters:
engine_id The engine to get the name of.
Precondition:
IsValidEngine(engine_id).
Returns:
The name the engine has.

Definition at line 20 of file ai_engine.cpp.

References IsValidEngine().

CargoID AIEngine::GetCargoType ( EngineID  engine_id  )  [static]

Get the cargo-type of an engine.

In case it can transport 2 cargos, it returns the first.

Parameters:
engine_id The engine to get the cargo-type of.
Precondition:
IsValidEngine(engine_id).
Returns:
The cargo-type of the engine.

Definition at line 32 of file ai_engine.cpp.

References IsValidEngine().

Referenced by CanRefitCargo().

bool AIEngine::CanRefitCargo ( EngineID  engine_id,
CargoID  cargo_id 
) [static]

Check if the cargo of an engine can be refitted to your requested.

If the engine already allows this cargo, the function also returns true.

Parameters:
engine_id The engine to check for refitting.
cargo_id The cargo to check for refitting.
Precondition:
IsValidEngine(engine_id).

AICargo::IsValidCargo(cargo_id).

Returns:
True if the engine can carry this cargo, either via refit, or by default.

Definition at line 60 of file ai_engine.cpp.

References CanRefitTo(), GetCargoType(), AICargo::IsValidCargo(), and IsValidEngine().

bool AIEngine::CanPullCargo ( EngineID  engine_id,
CargoID  cargo_id 
) [static]

Check if the engine can pull a wagon with the given cargo.

Parameters:
engine_id The engine to check.
cargo_id The cargo to check.
Precondition:
IsValidEngine(engine_id).

GetVehicleType(engine_id) == AIVehicle.VEHICLE_RAIL.

AICargo::IsValidCargo(cargo_id).

Returns:
True if the engine can pull wagons carrying this cargo.
Note:
This function is not exhaustive; a true here does not mean that the vehicle can pull the wagons, a false does mean it can't.

Definition at line 71 of file ai_engine.cpp.

References AICargo::CC_PASSENGERS, GetVehicleType(), AICargo::HasCargoClass(), AICargo::IsValidCargo(), IsValidEngine(), and AIVehicle::VT_RAIL.

int32 AIEngine::GetCapacity ( EngineID  engine_id  )  [static]

Get the capacity of an engine.

In case it can transport 2 cargos, it returns the first.

Parameters:
engine_id The engine to get the capacity of.
Precondition:
IsValidEngine(engine_id).
Returns:
The capacity of the engine.

Definition at line 81 of file ai_engine.cpp.

References IsValidEngine().

int32 AIEngine::GetReliability ( EngineID  engine_id  )  [static]

Get the reliability of an engine.

The value is between 0 and 100, where 100 means 100% reliability (never breaks down) and 0 means 0% reliability (you most likely don't want to buy it).

Parameters:
engine_id The engine to get the reliability of.
Precondition:
IsValidEngine(engine_id).
Returns:
The reliability the engine has.

Definition at line 110 of file ai_engine.cpp.

References IsValidEngine().

int32 AIEngine::GetMaxSpeed ( EngineID  engine_id  )  [static]

Get the maximum speed of an engine.

Parameters:
engine_id The engine to get the maximum speed of.
Precondition:
IsValidEngine(engine_id).
Returns:
The maximum speed the engine has.
Note:
The speed is in OpenTTD's internal speed unit. This is mph / 1.6, which is roughly km/h. To get km/h multiply this number by 1.00584.

Definition at line 117 of file ai_engine.cpp.

References _settings_game, IsValidEngine(), VehicleSettings::plane_speed, and GameSettings::vehicle.

Money AIEngine::GetPrice ( EngineID  engine_id  )  [static]

Get the new cost of an engine.

Parameters:
engine_id The engine to get the new cost of.
Precondition:
IsValidEngine(engine_id).
Returns:
The new cost the engine has.

Definition at line 127 of file ai_engine.cpp.

References IsValidEngine().

int32 AIEngine::GetMaxAge ( EngineID  engine_id  )  [static]

Get the maximum age of a brand new engine.

Parameters:
engine_id The engine to get the maximum age of.
Precondition:
IsValidEngine(engine_id).
Returns:
The maximum age of a new engine in days.
Note:
Age is in days; divide by 366 to get per year.

Definition at line 134 of file ai_engine.cpp.

References DAYS_IN_LEAP_YEAR, and IsValidEngine().

Money AIEngine::GetRunningCost ( EngineID  engine_id  )  [static]

Get the running cost of an engine.

Parameters:
engine_id The engine to get the running cost of.
Precondition:
IsValidEngine(engine_id).
Returns:
The running cost of a vehicle per year.
Note:
Cost is per year; divide by 365 to get per day.

Definition at line 141 of file ai_engine.cpp.

References IsValidEngine().

AIVehicle::VehicleType AIEngine::GetVehicleType ( EngineID  engine_id  )  [static]

Get the type of an engine.

Parameters:
engine_id The engine to get the type of.
Precondition:
IsValidEngine(engine_id).
Returns:
The type the engine has.

Definition at line 148 of file ai_engine.cpp.

References IsValidEngine(), AIVehicle::VT_AIR, AIVehicle::VT_INVALID, AIVehicle::VT_RAIL, AIVehicle::VT_ROAD, and AIVehicle::VT_WATER.

Referenced by CanPullCargo(), CanRunOnRail(), GetPlaneType(), GetRailType(), GetRoadType(), HasPowerOnRail(), IsArticulated(), and IsWagon().

bool AIEngine::IsWagon ( EngineID  engine_id  )  [static]

Check if an engine is a wagon.

Parameters:
engine_id The engine to check.
Precondition:
IsValidEngine(engine_id).

GetVehicleType(engine_id) == AIVehicle.VEHICLE_RAIL.

Returns:
Whether or not the engine is a wagon.

Definition at line 161 of file ai_engine.cpp.

References GetVehicleType(), IsValidEngine(), and AIVehicle::VT_RAIL.

bool AIEngine::CanRunOnRail ( EngineID  engine_id,
AIRail::RailType  track_rail_type 
) [static]

Check if a train vehicle can run on a RailType.

Parameters:
engine_id The engine to check.
track_rail_type The type you want to check.
Precondition:
IsValidEngine(engine_id).

GetVehicleType(engine_id) == AIVehicle::VEHICLE_RAIL.

AIRail::IsRailTypeAvailable(track_rail_type).

Returns:
Whether an engine of type 'engine_id' can run on 'track_rail_type'.
Note:
Even if a train can run on a RailType that doesn't mean that it'll be able to power the train. Use HasPowerOnRail for that.

Definition at line 169 of file ai_engine.cpp.

References GetVehicleType(), IsCompatibleRail(), AIRail::IsRailTypeAvailable(), IsValidEngine(), and AIVehicle::VT_RAIL.

bool AIEngine::HasPowerOnRail ( EngineID  engine_id,
AIRail::RailType  track_rail_type 
) [static]

Check if a train engine has power on a RailType.

Parameters:
engine_id The engine to check.
track_rail_type Another RailType.
Precondition:
IsValidEngine(engine_id).

GetVehicleType(engine_id) == AIVehicle::VEHICLE_RAIL.

AIRail::IsRailTypeAvailable(track_rail_type).

Returns:
Whether an engine of type 'engine_id' has power on 'track_rail_type'.

Definition at line 178 of file ai_engine.cpp.

References GetVehicleType(), HasPowerOnRail(), AIRail::IsRailTypeAvailable(), IsValidEngine(), and AIVehicle::VT_RAIL.

AIRoad::RoadType AIEngine::GetRoadType ( EngineID  engine_id  )  [static]

Get the RoadType of the engine.

Parameters:
engine_id The engine to get the RoadType of.
Precondition:
IsValidEngine(engine_id).

GetVehicleType(engine_id) == AIVehicle.VEHICLE_ROAD.

Returns:
The RoadType the engine has.

Definition at line 187 of file ai_engine.cpp.

References EF_ROAD_TRAM, GetVehicleType(), HasBit(), IsValidEngine(), AIRoad::ROADTYPE_INVALID, AIRoad::ROADTYPE_ROAD, AIRoad::ROADTYPE_TRAM, and AIVehicle::VT_ROAD.

AIRail::RailType AIEngine::GetRailType ( EngineID  engine_id  )  [static]

Get the RailType of the engine.

Parameters:
engine_id The engine to get the RailType of.
Precondition:
IsValidEngine(engine_id).

GetVehicleType(engine_id) == AIVehicle.VEHICLE_RAIL.

Returns:
The RailType the engine has.

Definition at line 195 of file ai_engine.cpp.

References GetVehicleType(), IsValidEngine(), AIRail::RAILTYPE_INVALID, and AIVehicle::VT_RAIL.

bool AIEngine::IsArticulated ( EngineID  engine_id  )  [static]

Check if the engine is articulated.

Parameters:
engine_id The engine to check.
Precondition:
IsValidEngine(engine_id).

GetVehicleType(engine_id) == AIVehicle.VEHICLE_ROAD || GetVehicleType(engine_id) == AIVehicle.VEHICLE_RAIL.

Returns:
True if the engine is articulated.

Definition at line 203 of file ai_engine.cpp.

References GetVehicleType(), IsValidEngine(), AIVehicle::VT_RAIL, and AIVehicle::VT_ROAD.

AIAirport::PlaneType AIEngine::GetPlaneType ( EngineID  engine_id  )  [static]

Get the PlaneType of the engine.

Parameters:
engine_id The engine to get the PlaneType of.
Precondition:
IsValidEngine(engine_id).

GetVehicleType(engine_id) == AIVehicle.VEHICLE_AIR.

Returns:
The PlaneType the engine has.

Definition at line 211 of file ai_engine.cpp.

References GetVehicleType(), IsValidEngine(), AIAirport::PT_INVALID, and AIVehicle::VT_AIR.


The documentation for this class was generated from the following files:

Generated on Mon Feb 16 23:12:32 2009 for openttd by  doxygen 1.5.6