Class that handles all town related functions. More...
#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. |
Class that handles all town related functions.
Definition at line 21 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.
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.
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, GameSettings::economy, FACIL_AIRPORT, BaseStation::facilities, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), IsValidTown(), max(), Town::MaxTownNoise(), EconomySettings::station_noise_level, and BaseStation::town.
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 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 DistanceSquare(), and GetLocation().
Referenced by IsWithinTownInfluence().
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, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), 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().
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 Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), and IsValidTown().
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. |
Definition at line 65 of file ai_town.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), 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. |
Definition at line 79 of file ai_town.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), 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. |
Definition at line 93 of file ai_town.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), AICargo::GetTownEffect(), AICargo::IsValidCargo(), IsValidTown(), AICargo::TE_MAIL, AICargo::TE_PASSENGERS, and ToPercent8().
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 Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), INVALID_TILE, and IsValidTown().
Referenced by GetDistanceManhattanToTile(), and GetDistanceSquareToTile().
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 Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), 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. |
Definition at line 168 of file ai_town.cpp.
References AICompany::COMPANY_INVALID, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), HasBit(), IsValidTown(), max(), AICompany::ResolveCompanyID(), TOWN_RATING_APPALLING, TOWN_RATING_INVALID, and TOWN_RATING_NONE.
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 Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), IsValidTown(), and ROAD_LAYOUT_INVALID.
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().
int32 AITown::GetTownCount | ( | ) | [static] |
Gets the number of towns.
Definition at line 22 of file ai_town.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::GetNumItems().
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 Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), HasBit(), and 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 Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), GetMaskOfTownActions(), HasBit(), and IsValidTown().
Referenced by PerformTownAction().
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().
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 Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), GetDistanceSquareToTile(), and IsValidTown().
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. |
Definition at line 160 of file ai_town.cpp.
References CMD_DO_TOWN_ACTION, AIObject::DoCommand(), EnforcePrecondition, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), IsActionAvailable(), and IsValidTown().