#include <ai_town.hpp>
Public Types | |
enum | TownAction { TOWN_ACTION_ADVERTISE_SMALL = 0, TOWN_ACTION_ADVERTISE_MEDIUM = 1, TOWN_ACTION_ADVERTISE_LARGE = 2, TOWN_ACTION_ROAD_REBUILD = 3, TOWN_ACTION_BUILD_STATUE = 4, TOWN_ACTION_FUND_BUILDINGS = 5, TOWN_ACTION_BUY_RIGHTS = 6, TOWN_ACTION_BRIBE = 7 } |
Actions that one can perform on a town. More... | |
enum | TownRating { TOWN_RATING_NONE, TOWN_RATING_APPALLING, TOWN_RATING_VERY_POOR, TOWN_RATING_POOR, TOWN_RATING_MEDIOCRE, TOWN_RATING_GOOD, TOWN_RATING_VERY_GOOD, TOWN_RATING_EXCELLENT, TOWN_RATING_OUTSTANDING, TOWN_RATING_INVALID = -1 } |
Different ratings one could have in a town. More... | |
enum | RoadLayout { ROAD_LAYOUT_ORIGINAL, ROAD_LAYOUT_BETTER_ROADS, ROAD_LAYOUT_2x2, ROAD_LAYOUT_3x3, ROAD_LAYOUT_INVALID = -1 } |
Possible layouts for the roads in a town. More... | |
Static Public Member Functions | |
static const char * | GetClassName () |
static int32 | GetTownCount () |
Gets the number of towns. | |
static bool | IsValidTown (TownID town_id) |
Checks whether the given town index is valid. | |
static char * | GetName (TownID town_id) |
Get the name of the town. | |
static int32 | GetPopulation (TownID town_id) |
Gets the number of inhabitants in the town. | |
static int32 | GetHouseCount (TownID town_id) |
Gets the number of houses in the town. | |
static TileIndex | GetLocation (TownID town_id) |
Gets the location of the town. | |
static int32 | GetLastMonthProduction (TownID town_id, CargoID cargo_id) |
Get the total last month's production of the given cargo at a town. | |
static int32 | GetLastMonthTransported (TownID town_id, CargoID cargo_id) |
Get the total amount of cargo transported from a town last month. | |
static int32 | GetLastMonthTransportedPercentage (TownID town_id, CargoID cargo_id) |
Get the percentage of transported production of the given cargo at a town. | |
static int32 | GetDistanceManhattanToTile (TownID town_id, TileIndex tile) |
Get the manhattan distance from the tile to the AITown::GetLocation() of the town. | |
static int32 | GetDistanceSquareToTile (TownID town_id, TileIndex tile) |
Get the square distance from the tile to the AITown::GetLocation() of the town. | |
static bool | IsWithinTownInfluence (TownID town_id, TileIndex tile) |
Find out if this tile is within the rating influence of a town. | |
static bool | HasStatue (TownID town_id) |
Find out if this town has a statue for the current company. | |
static int | GetRoadReworkDuration (TownID town_id) |
Find out how long the town is undergoing road reconstructions. | |
static AICompany::CompanyID | GetExclusiveRightsCompany (TownID town_id) |
Find out which company currently has the exclusive rights of this town. | |
static int32 | GetExclusiveRightsDuration (TownID town_id) |
Find out how long the town is under influence of the exclusive rights. | |
static bool | IsActionAvailable (TownID town_id, TownAction town_action) |
Find out if an action can currently be performed on the town. | |
static bool | PerformTownAction (TownID town_id, TownAction town_action) |
Perform a town action on this town. | |
static TownRating | GetRating (TownID town_id, AICompany::CompanyID company_id) |
Get the rating of a company within a town. | |
static int | GetAllowedNoise (TownID town_id) |
Get the maximum level of noise that still can be added by airports before the town start to refuse building a new airport. | |
static RoadLayout | GetRoadLayout (TownID town_id) |
Get the road layout for a town. |
Definition at line 21 of file ai_town.hpp.
enum AITown::TownAction |
Actions that one can perform on a town.
Definition at line 28 of file ai_town.hpp.
enum AITown::TownRating |
Different ratings one could have in a town.
Definition at line 81 of file ai_town.hpp.
enum AITown::RoadLayout |
Possible layouts for the roads in a town.
Definition at line 97 of file ai_town.hpp.
int32 AITown::GetTownCount | ( | ) | [static] |
Gets the number of towns.
Definition at line 22 of file ai_town.cpp.
bool AITown::IsValidTown | ( | TownID | town_id | ) | [static] |
Checks whether the given town index is valid.
town_id | The index to check. |
Definition at line 27 of file ai_town.cpp.
Referenced by GetAllowedNoise(), GetExclusiveRightsCompany(), GetExclusiveRightsDuration(), GetHouseCount(), GetLastMonthProduction(), GetLastMonthTransported(), GetLastMonthTransportedPercentage(), GetLocation(), GetName(), GetPopulation(), GetRating(), GetRoadLayout(), GetRoadReworkDuration(), HasStatue(), IsActionAvailable(), IsWithinTownInfluence(), and PerformTownAction().
char * AITown::GetName | ( | TownID | town_id | ) | [static] |
Get the name of the town.
town_id | The town to get the name of. |
Definition at line 32 of file ai_town.cpp.
References IsValidTown(), and SetDParam().
int32 AITown::GetPopulation | ( | TownID | town_id | ) | [static] |
Gets the number of inhabitants in the town.
town_id | The town to get the population of. |
Definition at line 44 of file ai_town.cpp.
References IsValidTown().
int32 AITown::GetHouseCount | ( | TownID | town_id | ) | [static] |
Gets the number of houses in the town.
town_id | The town to get the number of houses of. |
Definition at line 51 of file ai_town.cpp.
References IsValidTown().
Gets the location of the town.
town_id | The town to get the location of. |
Definition at line 58 of file ai_town.cpp.
References INVALID_TILE, and IsValidTown().
Referenced by GetDistanceManhattanToTile(), and GetDistanceSquareToTile().
Get the total last month's production of the given cargo at a town.
town_id | The index of the town. | |
cargo_id | The index of the cargo. |
AICargo::IsValidCargo(cargo_id).
AICargo::GetTownEffect(cargo_id) == TE_PASSENGERS || AICargo::GetTownEffect(cargo_id) == TE_MAIL.
Definition at line 65 of file ai_town.cpp.
References AICargo::GetTownEffect(), AICargo::IsValidCargo(), IsValidTown(), AICargo::TE_MAIL, and AICargo::TE_PASSENGERS.
Get the total amount of cargo transported from a town last month.
town_id | The index of the industry. | |
cargo_id | The index of the cargo. |
AICargo::IsValidCargo(cargo_id).
AICargo::GetTownEffect(cargo_id) == TE_PASSENGERS || AICargo::GetTownEffect(cargo_id) == TE_MAIL.
Definition at line 79 of file ai_town.cpp.
References AICargo::GetTownEffect(), AICargo::IsValidCargo(), IsValidTown(), AICargo::TE_MAIL, and AICargo::TE_PASSENGERS.
Get the percentage of transported production of the given cargo at a town.
town_id | The index of the town. | |
cargo_id | The index of the cargo. |
AICargo::IsValidCargo(cargo_id).
AICargo::GetTownEffect(cargo_id) == TE_PASSENGERS || AICargo::GetTownEffect(cargo_id) == TE_MAIL.
Definition at line 93 of file ai_town.cpp.
References AICargo::GetTownEffect(), AICargo::IsValidCargo(), IsValidTown(), AICargo::TE_MAIL, AICargo::TE_PASSENGERS, and ToPercent8().
Get the manhattan distance from the tile to the AITown::GetLocation() of the town.
town_id | The town to get the distance to. | |
tile | The tile to get the distance to. |
Definition at line 107 of file ai_town.cpp.
References AIMap::DistanceManhattan(), and GetLocation().
Get the square distance from the tile to the AITown::GetLocation() of the town.
town_id | The town to get the distance to. | |
tile | The tile to get the distance to. |
Definition at line 112 of file ai_town.cpp.
References AIMap::DistanceSquare(), and GetLocation().
Referenced by IsWithinTownInfluence().
Find out if this tile is within the rating influence of a town.
Stations on this tile influence the rating of the town.
town_id | The town to check. | |
tile | The tile to check. |
Definition at line 117 of file ai_town.cpp.
References GetDistanceSquareToTile(), and IsValidTown().
Referenced by AITile::IsWithinTownInfluence(), and AIStation::IsWithinTownInfluence().
bool AITown::HasStatue | ( | TownID | town_id | ) | [static] |
Find out if this town has a statue for the current company.
town_id | The town to check. |
Definition at line 125 of file ai_town.cpp.
References HasBit(), and IsValidTown().
int AITown::GetRoadReworkDuration | ( | TownID | town_id | ) | [static] |
Find out how long the town is undergoing road reconstructions.
town_id | The town to check. |
Definition at line 132 of file ai_town.cpp.
References IsValidTown().
AICompany::CompanyID AITown::GetExclusiveRightsCompany | ( | TownID | town_id | ) | [static] |
Find out which company currently has the exclusive rights of this town.
town_id | The town to check. |
Definition at line 139 of file ai_town.cpp.
References AICompany::COMPANY_INVALID, and IsValidTown().
int32 AITown::GetExclusiveRightsDuration | ( | TownID | town_id | ) | [static] |
Find out how long the town is under influence of the exclusive rights.
town_id | The town to check. |
Definition at line 146 of file ai_town.cpp.
References IsValidTown().
bool AITown::IsActionAvailable | ( | TownID | town_id, | |
TownAction | town_action | |||
) | [static] |
Find out if an action can currently be performed on the town.
town_id | The town to perform the action on. | |
town_action | The action to perform on the town. |
Definition at line 153 of file ai_town.cpp.
References GetMaskOfTownActions(), HasBit(), and IsValidTown().
Referenced by PerformTownAction().
bool AITown::PerformTownAction | ( | TownID | town_id, | |
TownAction | town_action | |||
) | [static] |
Perform a town action on this town.
town_id | The town to perform the action on. | |
town_action | The action to perform on the town. |
IsActionAvailable(town_id, town_action).
Definition at line 160 of file ai_town.cpp.
References CMD_DO_TOWN_ACTION, AIObject::DoCommand(), EnforcePrecondition, IsActionAvailable(), and IsValidTown().
AITown::TownRating AITown::GetRating | ( | TownID | town_id, | |
AICompany::CompanyID | company_id | |||
) | [static] |
Get the rating of a company within a town.
town_id | The town to get the rating for. | |
company_id | The company to get the rating for. |
AICompany.ResolveCompanyID(company) != AICompany::COMPANY_INVALID.
Definition at line 168 of file ai_town.cpp.
References AICompany::COMPANY_INVALID, HasBit(), IsValidTown(), max(), AICompany::ResolveCompanyID(), TOWN_RATING_APPALLING, TOWN_RATING_INVALID, and TOWN_RATING_NONE.
int AITown::GetAllowedNoise | ( | TownID | town_id | ) | [static] |
Get the maximum level of noise that still can be added by airports before the town start to refuse building a new airport.
town_id | The town to get the allowed noise from. |
Definition at line 179 of file ai_town.cpp.
References _settings_game, Station::airport_type, GameSettings::economy, FACIL_AIRPORT, BaseStation::facilities, IsValidTown(), max(), EconomySettings::station_noise_level, and BaseStation::town.
AITown::RoadLayout AITown::GetRoadLayout | ( | TownID | town_id | ) | [static] |
Get the road layout for a town.
town_id | The town to get the road layout from. |
Definition at line 196 of file ai_town.cpp.
References IsValidTown(), and ROAD_LAYOUT_INVALID.