#include <ai_station.hpp>
Public Types | |
enum | ErrorMessages { ERR_STATION_BASE = AIError::ERR_CAT_STATION << AIError::ERR_CAT_BIT_SIZE, ERR_STATION_TOO_LARGE, ERR_STATION_TOO_CLOSE_TO_ANOTHER_STATION, ERR_STATION_TOO_MANY_STATIONS, ERR_STATION_TOO_MANY_STATIONS_IN_TOWN } |
All station related error messages. More... | |
enum | StationType { STATION_TRAIN = 0x01, STATION_TRUCK_STOP = 0x02, STATION_BUS_STOP = 0x04, STATION_AIRPORT = 0x08, STATION_DOCK = 0x10, STATION_ANY = 0x1F } |
Type of stations known in the game. More... | |
enum | SpecialStationIDs { STATION_NEW = 0xFFFD, STATION_JOIN_ADJACENT = 0xFFFE, STATION_INVALID = 0xFFFF } |
Special station IDs for building adjacent/new stations when the adjacent/distant join features are enabled. More... | |
Static Public Member Functions | |
static const char * | GetClassName () |
static bool | IsValidStation (StationID station_id) |
Checks whether the given station is valid and owned by you. | |
static StationID | GetStationID (TileIndex tile) |
Get the StationID of a tile, if there is a station. | |
static char * | GetName (StationID station_id) |
Get the name of a station. | |
static bool | SetName (StationID station_id, const char *name) |
Set the name this station. | |
static TileIndex | GetLocation (StationID station_id) |
Get the current location of a station. | |
static int32 | GetCargoWaiting (StationID station_id, CargoID cargo_id) |
See how much cargo there is waiting on a station. | |
static int32 | GetCargoRating (StationID station_id, CargoID cargo_id) |
See how high the rating is of a cargo on a station. | |
static int32 | GetCoverageRadius (AIStation::StationType station_type) |
Get the coverage radius of this type of station. | |
static int32 | GetDistanceManhattanToTile (StationID station_id, TileIndex tile) |
Get the manhattan distance from the tile to the AIStation::GetLocation() of the station. | |
static int32 | GetDistanceSquareToTile (StationID station_id, TileIndex tile) |
Get the square distance from the tile to the AIStation::GetLocation() of the station. | |
static bool | IsWithinTownInfluence (StationID station_id, TownID town_id) |
Find out if this station is within the rating influence of a town. | |
static bool | HasStationType (StationID station_id, StationType station_type) |
Check if any part of the station contains a station of the type StationType. | |
static bool | HasRoadType (StationID station_id, AIRoad::RoadType road_type) |
Check if any part of the station contains a station of the type RoadType. | |
static TownID | GetNearestTown (StationID station_id) |
Get the town that was nearest to the given station when the station was built. |
Definition at line 15 of file ai_station.hpp.
All station related error messages.
Definition at line 22 of file ai_station.hpp.
Type of stations known in the game.
STATION_TRAIN | Train station. |
STATION_TRUCK_STOP | Truck station. |
STATION_BUS_STOP | Bus station. |
STATION_AIRPORT | Airport. |
STATION_DOCK | Dock. |
STATION_ANY | All station types. |
Definition at line 42 of file ai_station.hpp.
Special station IDs for building adjacent/new stations when the adjacent/distant join features are enabled.
STATION_NEW | Build a new station. |
STATION_JOIN_ADJACENT | Join an neighbouring station if one exists. |
STATION_INVALID | Invalid station id. |
Definition at line 56 of file ai_station.hpp.
bool AIStation::IsValidStation | ( | StationID | station_id | ) | [static] |
Checks whether the given station is valid and owned by you.
station_id | The station to check. |
Definition at line 18 of file ai_station.cpp.
References Station::owner, and OWNER_NONE.
Referenced by AIRoad::_BuildRoadStationInternal(), AITileList_StationType::AITileList_StationType(), AIVehicleList_Station::AIVehicleList_Station(), AIAirport::BuildAirport(), AIMarine::BuildDock(), AIRail::BuildNewGRFRailStation(), AIRail::BuildRailStation(), GetCargoRating(), GetCargoWaiting(), GetDistanceManhattanToTile(), GetDistanceSquareToTile(), GetLocation(), GetName(), GetNearestTown(), HasRoadType(), HasStationType(), IsWithinTownInfluence(), and SetName().
Get the StationID of a tile, if there is a station.
tile | The tile to find the stationID of |
Definition at line 24 of file ai_station.cpp.
References GetStationIndex(), IsTileType(), IsValidTile(), and MP_STATION.
char * AIStation::GetName | ( | StationID | station_id | ) | [static] |
Get the name of a station.
station_id | The station to get the name of. |
Definition at line 30 of file ai_station.cpp.
References IsValidStation().
bool AIStation::SetName | ( | StationID | station_id, | |
const char * | name | |||
) | [static] |
Set the name this station.
station_id | The station to set the name of. | |
name | The new name of the station. |
'name' must have at least one character.
'name' must have at most 30 characters.
AIError::ERR_NAME_IS_NOT_UNIQUE |
Definition at line 42 of file ai_station.cpp.
References CMD_RENAME_STATION, AIObject::DoCommand(), EnforcePrecondition, EnforcePreconditionCustomError, AIError::ERR_PRECONDITION_STRING_TOO_LONG, IsValidStation(), MAX_LENGTH_STATION_NAME_BYTES, and StrEmpty().
Get the current location of a station.
station_id | The station to get the location of. |
Definition at line 51 of file ai_station.cpp.
References INVALID_TILE, and IsValidStation().
Referenced by GetDistanceManhattanToTile(), GetDistanceSquareToTile(), and IsWithinTownInfluence().
See how much cargo there is waiting on a station.
station_id | The station to get the cargo-waiting of. | |
cargo_id | The cargo to get the cargo-waiting of. |
IsValidCargo(cargo_id).
Definition at line 58 of file ai_station.cpp.
References AICargo::IsValidCargo(), and IsValidStation().
See how high the rating is of a cargo on a station.
station_id | The station to get the cargo-rating of. | |
cargo_id | The cargo to get the cargo-rating of. |
IsValidCargo(cargo_id).
Definition at line 66 of file ai_station.cpp.
References AICargo::IsValidCargo(), and IsValidStation().
int32 AIStation::GetCoverageRadius | ( | AIStation::StationType | station_type | ) | [static] |
Get the coverage radius of this type of station.
station_type | The type of station. |
Definition at line 74 of file ai_station.cpp.
References _settings_game, CA_UNMODIFIED, CountBits(), StationSettings::modified_catchment, GameSettings::station, STATION_AIRPORT, STATION_BUS_STOP, STATION_DOCK, STATION_TRAIN, and STATION_TRUCK_STOP.
Get the manhattan distance from the tile to the AIStation::GetLocation() of the station.
station_id | The station to get the distance to. | |
tile | The tile to get the distance to. |
Definition at line 92 of file ai_station.cpp.
References AIMap::DistanceManhattan(), GetLocation(), and IsValidStation().
Get the square distance from the tile to the AIStation::GetLocation() of the station.
station_id | The station to get the distance to. | |
tile | The tile to get the distance to. |
Definition at line 99 of file ai_station.cpp.
References AIMap::DistanceSquare(), GetLocation(), and IsValidStation().
Find out if this station is within the rating influence of a town.
Stations within the radius influence the rating of the town.
station_id | The station to check. | |
town_id | The town to check. |
Definition at line 106 of file ai_station.cpp.
References GetLocation(), IsValidStation(), and AITown::IsWithinTownInfluence().
bool AIStation::HasStationType | ( | StationID | station_id, | |
StationType | station_type | |||
) | [static] |
Check if any part of the station contains a station of the type StationType.
station_id | The station to look at. | |
station_type | The StationType to look for. |
Definition at line 113 of file ai_station.cpp.
References CountBits(), and IsValidStation().
Referenced by AIAirport::GetAirportType().
bool AIStation::HasRoadType | ( | StationID | station_id, | |
AIRoad::RoadType | road_type | |||
) | [static] |
Check if any part of the station contains a station of the type RoadType.
station_id | The station to look at. | |
road_type | The RoadType to look for. |
Definition at line 121 of file ai_station.cpp.
References AIRoad::IsRoadTypeAvailable(), IsValidStation(), ROADSTOP_BUS, ROADSTOP_TRUCK, and RoadTypeToRoadTypes().
Get the town that was nearest to the given station when the station was built.
station_id | The station to look at. |
Definition at line 138 of file ai_station.cpp.
References IsValidStation().