OpenTTD AI API  20240420-master-g08140fdca3
Public Types | Static Public Member Functions
AIBaseStation Class Reference

Base class for stations and waypoints. More...

Inheritance diagram for AIBaseStation:
AIStation AIWaypoint

Public Types

enum  SpecialStationIDs {
  STATION_NEW,
  STATION_JOIN_ADJACENT,
  STATION_INVALID
}
 Special station IDs for building adjacent/new stations when the adjacent/distant join features are enabled. More...
 

Static Public Member Functions

static bool IsValidBaseStation (StationID station_id)
 Checks whether the given basestation is valid and owned by you. More...
 
static std::optional< std::string > GetName (StationID station_id)
 Get the name of a basestation. More...
 
static bool SetName (StationID station_id, Text *name)
 Set the name this basestation. More...
 
static TileIndex GetLocation (StationID station_id)
 Get the current location of a basestation. More...
 
static AIDate::Date GetConstructionDate (StationID station_id)
 Get the last date a station part was added to this station. More...
 

Detailed Description

Base class for stations and waypoints.

Member Enumeration Documentation

◆ SpecialStationIDs

Special station IDs for building adjacent/new stations when the adjacent/distant join features are enabled.

Enumerator
STATION_NEW 

Build a new station.

STATION_JOIN_ADJACENT 

Join an neighbouring station if one exists.

STATION_INVALID 

Invalid station id.

Member Function Documentation

◆ GetConstructionDate()

static AIDate::Date AIBaseStation::GetConstructionDate ( StationID  station_id)
static

Get the last date a station part was added to this station.

Parameters
station_idThe station to look at.
Returns
The last date some part of this station was build.

◆ GetLocation()

static TileIndex AIBaseStation::GetLocation ( StationID  station_id)
static

Get the current location of a basestation.

Parameters
station_idThe basestation to get the location of.
Precondition
IsValidBaseStation(station_id).
Returns
The tile the basestation sign above it.
Note
The tile is not necessarily a station tile (and if it is, it could also belong to another station).
See also
AITileList_StationType.

◆ GetName()

static std::optional<std::string> AIBaseStation::GetName ( StationID  station_id)
static

Get the name of a basestation.

Parameters
station_idThe basestation to get the name of.
Precondition
IsValidBaseStation(station_id).
Returns
The name of the station.

◆ IsValidBaseStation()

static bool AIBaseStation::IsValidBaseStation ( StationID  station_id)
static

Checks whether the given basestation is valid and owned by you.

Parameters
station_idThe station to check.
Returns
True if and only if the basestation is valid.
Note
IsValidBaseStation == (IsValidStation || IsValidWaypoint).

◆ SetName()

static bool AIBaseStation::SetName ( StationID  station_id,
Text *  name 
)
static

Set the name this basestation.

Parameters
station_idThe basestation to set the name of.
nameThe new name of the station (can be either a raw string, or a AIText object).
Precondition
IsValidBaseStation(station_id).
name != null && len(name) != 0.
Exceptions
AIError::ERR_NAME_IS_NOT_UNIQUE
Returns
True if the name was changed.