AIBridge Class Reference

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


Public Types

enum  ErrorMessages {
  ERR_BRIDGE_BASE,
  ERR_BRIDGE_TYPE_UNAVAILABLE,
  ERR_BRIDGE_CANNOT_END_IN_WATER,
  ERR_BRIDGE_HEADS_NOT_ON_SAME_HEIGHT
}
 All bridge related error messages. More...

Static Public Member Functions

static bool IsValidBridge (BridgeID bridge_id)
 Checks whether the given bridge type is valid.
static bool IsBridgeTile (TileIndex tile)
 Checks whether the given tile is actually a bridge start or end tile.
static BridgeID GetBridgeID (TileIndex tile)
 Get the BridgeID of a bridge at a given tile.
static char * GetName (BridgeID bridge_id)
 Get the name of a bridge.
static int32 GetMaxSpeed (BridgeID bridge_id)
 Get the maximum speed of a bridge.
static Money GetPrice (BridgeID bridge_id, uint length)
 Get the new cost of a bridge, excluding the road and/or rail.
static int32 GetMaxLength (BridgeID bridge_id)
 Get the maximum length of a bridge.
static int32 GetMinLength (BridgeID bridge_id)
 Get the minimum length of a bridge.
static bool BuildBridge (AIVehicle::VehicleType vehicle_type, BridgeID bridge_id, TileIndex start, TileIndex end)
 Build a bridge from one tile to the other.
static bool RemoveBridge (TileIndex tile)
 Removes a bridge, by executing it on either the start or end tile.
static TileIndex GetOtherBridgeEnd (TileIndex tile)
 Get the tile that is on the other end of a bridge starting at tile.


Detailed Description

Class that handles all bridge related functions.

Member Enumeration Documentation

All bridge related error messages.

Enumerator:
ERR_BRIDGE_BASE  Base for bridge related errors.
ERR_BRIDGE_TYPE_UNAVAILABLE  The bridge you want to build is not available yet, or it is not available for the requested length.
ERR_BRIDGE_CANNOT_END_IN_WATER  One (or more) of the bridge head(s) ends in water.

ERR_BRIDGE_HEADS_NOT_ON_SAME_HEIGHT  The bride heads need to be on the same height.


Member Function Documentation

static bool AIBridge::IsValidBridge ( BridgeID  bridge_id  )  [static]

Checks whether the given bridge type is valid.

Parameters:
bridge_id The bridge to check.
Returns:
True if and only if the bridge type is valid.

static bool AIBridge::IsBridgeTile ( TileIndex  tile  )  [static]

Checks whether the given tile is actually a bridge start or end tile.

Parameters:
tile The tile to check.
Precondition:
AIMap::IsValidTile(tile).
Returns:
True if and only if the tile is the beginning or end of a bridge.

static BridgeID AIBridge::GetBridgeID ( TileIndex  tile  )  [static]

Get the BridgeID of a bridge at a given tile.

Parameters:
tile The tile to get the BridgeID from.
Precondition:
IsBridgeTile(tile).
Returns:
The BridgeID from the bridge at tile 'tile'.

static char* AIBridge::GetName ( BridgeID  bridge_id  )  [static]

Get the name of a bridge.

Parameters:
bridge_id The bridge to get the name of.
Precondition:
IsValidBridge(bridge_id).
Returns:
The name the bridge has.

static int32 AIBridge::GetMaxSpeed ( BridgeID  bridge_id  )  [static]

Get the maximum speed of a bridge.

Parameters:
bridge_id The bridge to get the maximum speed of.
Precondition:
IsValidBridge(bridge_id).
Returns:
The maximum speed the bridge 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.

static Money AIBridge::GetPrice ( BridgeID  bridge_id,
uint  length 
) [static]

Get the new cost of a bridge, excluding the road and/or rail.

Parameters:
bridge_id The bridge to get the new cost of.
length The length of the bridge.
Precondition:
IsValidBridge(bridge_id).
Returns:
The new cost the bridge has.

static int32 AIBridge::GetMaxLength ( BridgeID  bridge_id  )  [static]

Get the maximum length of a bridge.

Parameters:
bridge_id The bridge to get the maximum length of.
Precondition:
IsValidBridge(bridge_id).
Returns:
The maximum length the bridge has.

static int32 AIBridge::GetMinLength ( BridgeID  bridge_id  )  [static]

Get the minimum length of a bridge.

Parameters:
bridge_id The bridge to get the minimum length of.
Precondition:
IsValidBridge(bridge_id).
Returns:
The minimum length the bridge has.

static bool AIBridge::BuildBridge ( AIVehicle::VehicleType  vehicle_type,
BridgeID  bridge_id,
TileIndex  start,
TileIndex  end 
) [static]

Build a bridge from one tile to the other.

As an extra for road, this functions builds two half-pieces of road on each end of the bridge, making it easier for you to connect it to your network.

Parameters:
vehicle_type The vehicle-type of bridge to build.
bridge_id The bridge-type to build.
start Where to start the bridge.
end Where to end the bridge.
Precondition:
AIMap::IsValidTile(start).

AIMap::IsValidTile(end).

'start' and 'end' are in a straight line, i.e. AIMap::GetTileX(start) == AIMap::GetTileX(end) or AIMap::GetTileY(start) == AIMap::GetTileY(end).

vehicle_type == AIVehicle::VT_WATER || (vehicle_type == AIVehicle::VT_ROAD && AIRoad::IsRoadTypeAvailable(AIRoad::GetCurrentRoadType())) || (vehicle_type == AIVehicle::VT_RAIL && AIRail::IsRailTypeAvailable(AIRail::GetCurrentRailType())).

Exceptions:
AIError::ERR_ALREADY_BUILT 
AIError::ERR_AREA_NOT_CLEAR 
AIError::ERR_LAND_SLOPED_WRONG 
AIError::ERR_VEHICLE_IN_THE_WAY 
AIBridge::ERR_BRIDGE_TYPE_UNAVAILABLE 
AIBridge::ERR_BRIDGE_CANNOT_END_IN_WATER 
AIBridge::ERR_BRIDGE_HEADS_NOT_ON_SAME_HEIGHT 
Returns:
Whether the bridge has been/can be build or not.
Note:
No matter if the road pieces were build or not, if building the bridge succeeded, this function returns true.

static bool AIBridge::RemoveBridge ( TileIndex  tile  )  [static]

Removes a bridge, by executing it on either the start or end tile.

Parameters:
tile An end or start tile of the bridge.
Precondition:
AIMap::IsValidTile(tile).
Exceptions:
AIError::ERR_OWNED_BY_ANOTHER_COMPANY 
Returns:
Whether the bridge has been/can be removed or not.

static TileIndex AIBridge::GetOtherBridgeEnd ( TileIndex  tile  )  [static]

Get the tile that is on the other end of a bridge starting at tile.

Parameters:
tile The tile that is an end of a bridge.
Precondition:
AIMap::IsValidTile(tile).

IsBridgeTile(tile).

Returns:
The TileIndex that is the other end of the bridge.


Generated on Thu Jun 30 21:53:52 2016 for OpenTTD NoAI API by  doxygen 1.5.6