rubidium@9380: /* $Id$ */ rubidium@9380: rubidium@9430: /** @file ai_town.cpp handles the town-related functions of the AITown class */ rubidium@9380: rubidium@9430: #include "ai_town.hpp" rubidium@9430: #include "../../town.h" rubidium@9430: #include "../../strings.h" rubidium@9430: #include "../../variables.h" /* For SetDParam */ rubidium@9405: #include "table/strings.h" rubidium@9380: rubidium@9380: TownID AITown::GetMaxTownID() rubidium@9380: { rubidium@9380: return ::GetMaxTownIndex(); rubidium@9380: } rubidium@9380: rubidium@9380: int32 AITown::GetTownCount() rubidium@9380: { rubidium@9380: return ::GetNumTowns(); rubidium@9380: } rubidium@9380: rubidium@9497: /* static */ bool AITown::IsValidTown(TownID town_id) rubidium@9380: { rubidium@9380: return ::IsValidTownID(town_id); rubidium@9380: } rubidium@9380: rubidium@9380: char *AITown::GetName(TownID town_id) rubidium@9380: { truelight@9582: if (!AITown::IsValidTown(town_id)) return NULL; rubidium@9380: static const int len = 64; rubidium@9380: char *town_name = MallocT(len); rubidium@9380: rubidium@9405: SetDParam(0, town_id); rubidium@9405: GetString(town_name, STR_TOWN, &town_name[len - 1]); rubidium@9380: rubidium@9380: return town_name; rubidium@9380: } rubidium@9380: rubidium@9380: int32 AITown::GetPopulation(TownID town_id) rubidium@9380: { truelight@9582: if (!AITown::IsValidTown(town_id)) return 0; rubidium@9380: const Town *t = ::GetTown(town_id); rubidium@9380: return t->population; rubidium@9380: } rubidium@9380: rubidium@9380: TileIndex AITown::GetLocation(TownID town_id) rubidium@9380: { truelight@9582: if (!AITown::IsValidTown(town_id)) return INVALID_TILE; rubidium@9380: const Town *t = ::GetTown(town_id); rubidium@9380: return t->xy; rubidium@9380: }