(svn r16379) -Codechange: remove GetNumTowns(), GetNumIndustries() and GetActiveCompanyCount(), use PoolItem::GetNumItems() instead

This commit is contained in:
smatz 2009-05-22 15:23:47 +00:00
parent 62a7948af0
commit 10d1ef5447
15 changed files with 22 additions and 37 deletions

View File

@ -13,7 +13,7 @@
/* static */ int32 AIIndustry::GetIndustryCount()
{
return ::GetNumIndustries();
return (int32)::Industry::GetNumItems();
}
/* static */ bool AIIndustry::IsValidIndustry(IndustryID industry_id)

View File

@ -15,7 +15,7 @@
/* static */ SignID AISign::GetMaxSignID()
{
return ::Sign::GetPoolSize() - 1;
return (SignID)::Sign::GetNumItems();
}
/* static */ bool AISign::IsValidSign(SignID sign_id)

View File

@ -16,7 +16,7 @@
/* static */ int32 AITown::GetTownCount()
{
return ::GetNumTowns();
return (int32)::Town::GetNumItems();
}
/* static */ bool AITown::IsValidTown(TownID town_id)

View File

@ -84,11 +84,6 @@ struct Company : CompanyPool::PoolItem<&_company_pool> {
#define FOR_ALL_COMPANIES_FROM(var, start) FOR_ALL_ITEMS_FROM(Company, company_index, var, start)
#define FOR_ALL_COMPANIES(var) FOR_ALL_COMPANIES_FROM(var, 0)
static inline byte ActiveCompanyCount()
{
return (byte)Company::GetNumItems();
}
Money CalculateCompanyValue(const Company *c);
extern uint _next_competitor_start;

View File

@ -469,7 +469,7 @@ void StartupCompanies()
static void MaybeStartNewCompany()
{
#ifdef ENABLE_NETWORK
if (_networking && ActiveCompanyCount() >= _settings_client.network.max_companies) return;
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return;
#endif /* ENABLE_NETWORK */
Company *c;

View File

@ -551,7 +551,7 @@ DEF_CONSOLE_CMD(ConServerInfo)
}
IConsolePrintF(CC_DEFAULT, "Current/maximum clients: %2d/%2d", _network_game_info.clients_on, _settings_client.network.max_clients);
IConsolePrintF(CC_DEFAULT, "Current/maximum companies: %2d/%2d", ActiveCompanyCount(), _settings_client.network.max_companies);
IConsolePrintF(CC_DEFAULT, "Current/maximum companies: %2d/%2d", (int)Company::GetNumItems(), _settings_client.network.max_companies);
IConsolePrintF(CC_DEFAULT, "Current/maximum spectators: %2d/%2d", NetworkSpectatorCount(), _settings_client.network.max_spectators);
return true;
@ -980,7 +980,7 @@ DEF_CONSOLE_CMD(ConStartAI)
return true;
}
if (ActiveCompanyCount() == MAX_COMPANIES) {
if (Company::GetNumItems() == CompanyPool::MAX_SIZE) {
IConsoleWarning("Can't start a new AI (no more free slots).");
return true;
}

View File

@ -266,11 +266,6 @@ void SetIndustryDailyChanges();
extern uint16 _industry_counts[NUM_INDUSTRYTYPES]; // Number of industries per type ingame
static inline uint GetNumIndustries()
{
return (uint)Industry::GetNumItems();
}
/** Increment the count of industries for this type
* @param type IndustryType to increment
* @pre type < INVALID_INDUSTRYTYPE */
@ -310,10 +305,10 @@ static inline void ResetIndustryCounts()
*/
static inline Industry *GetRandomIndustry()
{
int num = RandomRange(GetNumIndustries());
IndustryID index = INVALID_INDUSTRY;
if (Industry::GetNumItems() == 0) return NULL;
if (GetNumIndustries() == 0) return NULL;
int num = RandomRange((uint16)Industry::GetNumItems());
IndustryID index = INVALID_INDUSTRY;
while (num >= 0) {
num--;

View File

@ -334,7 +334,7 @@ public:
if (this->selected_type == INVALID_INDUSTRYTYPE) {
this->HandleButtonClick(DPIW_FUND_WIDGET);
if (GetNumTowns() == 0) {
if (Town::GetNumItems() == 0) {
ShowErrorMessage(STR_ERROR_MUST_BUILD_TOWN_FIRST, STR_CAN_T_GENERATE_INDUSTRIES, 0, 0);
} else {
extern void GenerateIndustries();
@ -368,7 +368,7 @@ public:
if (_game_mode == GM_EDITOR) {
/* Show error if no town exists at all */
if (GetNumTowns() == 0) {
if (Town::GetNumItems() == 0) {
SetDParam(0, indsp->name);
ShowErrorMessage(STR_ERROR_MUST_BUILD_TOWN_FIRST, STR_ERROR_CAN_T_BUILD_HERE, pt.x, pt.y);
return;

View File

@ -1021,7 +1021,7 @@ bool NetworkClientPreferTeamChat(const NetworkClientInfo *cio)
*/
bool NetworkMaxCompaniesReached()
{
return ActiveCompanyCount() >= (_network_server ? _settings_client.network.max_companies : _network_server_max_companies);
return Company::GetNumItems() >= (_network_server ? _settings_client.network.max_companies : _network_server_max_companies);
}
/**

View File

@ -674,7 +674,7 @@ DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_JOIN)
/* join another company does not affect these values */
switch (playas) {
case COMPANY_NEW_COMPANY: // New company
if (ActiveCompanyCount() >= _settings_client.network.max_companies) {
if (Company::GetNumItems() >= _settings_client.network.max_companies) {
SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_FULL);
return;
}
@ -901,7 +901,7 @@ DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_COMMAND)
}
/* Check if we are full - else it's possible for spectators to send a CMD_COMPANY_CTRL and the company is created regardless of max_companies! */
if (ActiveCompanyCount() >= _settings_client.network.max_companies) {
if (Company::GetNumItems() >= _settings_client.network.max_companies) {
NetworkServerSendChat(NETWORK_ACTION_SERVER_MESSAGE, DESTTYPE_CLIENT, ci->client_id, "cannot create new company, server full", CLIENT_ID_SERVER);
return;
}

View File

@ -95,7 +95,7 @@ DEF_UDP_RECEIVE_COMMAND(Server, PACKET_UDP_CLIENT_FIND_SERVER)
ngi.server_lang = _settings_client.network.server_lang;
ngi.use_password = !StrEmpty(_settings_client.network.server_password);
ngi.clients_max = _settings_client.network.max_clients;
ngi.companies_on = ActiveCompanyCount();
ngi.companies_on = (byte)Company::GetNumItems();
ngi.companies_max = _settings_client.network.max_companies;
ngi.spectators_on = NetworkSpectatorCount();
ngi.spectators_max = _settings_client.network.max_spectators;
@ -128,7 +128,7 @@ DEF_UDP_RECEIVE_COMMAND(Server, PACKET_UDP_CLIENT_DETAIL_INFO)
/* Send the amount of active companies */
packet.Send_uint8 (NETWORK_COMPANY_INFO_VERSION);
packet.Send_uint8 (ActiveCompanyCount());
packet.Send_uint8 ((uint8)Company::GetNumItems());
/* Fetch the latest version of the stats */
NetworkCompanyStats company_stats[MAX_COMPANIES];

View File

@ -142,7 +142,7 @@ static void ShowTownnameDropdown(Window *w, int sel)
DropDownList *list = new DropDownList();
for (TownList::iterator it = townnames.begin(); it != townnames.end(); it++) {
list->push_back(new DropDownListStringItem((*it).first, (*it).second, !(_game_mode == GM_MENU || GetNumTowns() == 0 || (*it).second == sel)));
list->push_back(new DropDownListStringItem((*it).first, (*it).second, !(_game_mode == GM_MENU || Town::GetNumItems() == 0 || (*it).second == sel)));
}
ShowDropDownList(w, list, sel, GOW_TOWNNAME_DROPDOWN);
@ -305,7 +305,7 @@ struct GameOptionsWindow : Window {
break;
case GOW_TOWNNAME_DROPDOWN: // Town names
if (_game_mode == GM_MENU || GetNumTowns() == 0) {
if (_game_mode == GM_MENU || Town::GetNumItems() == 0) {
this->opt->game_creation.town_name = index;
InvalidateWindow(WC_GAME_OPTIONS, 0);
}

View File

@ -1036,7 +1036,7 @@ struct MainToolbarWindow : Window {
* Since enabled state is the default, just disable when needed */
this->SetWidgetsDisabledState(_local_company == COMPANY_SPECTATOR, TBN_RAILS, TBN_ROADS, TBN_WATER, TBN_AIR, TBN_LANDSCAPE, WIDGET_LIST_END);
/* disable company list drop downs, if there are no companies */
this->SetWidgetsDisabledState(ActiveCompanyCount() == TBN_PAUSE, TBN_STATIONS, TBN_FINANCES, TBN_TRAINS, TBN_ROADVEHS, TBN_SHIPS, TBN_AIRCRAFTS, WIDGET_LIST_END);
this->SetWidgetsDisabledState(Company::GetNumItems() == TBN_PAUSE, TBN_STATIONS, TBN_FINANCES, TBN_TRAINS, TBN_ROADVEHS, TBN_SHIPS, TBN_AIRCRAFTS, WIDGET_LIST_END);
this->SetWidgetDisabledState(TBN_RAILS, !CanBuildVehicleInfrastructure(VEH_TRAIN));
this->SetWidgetDisabledState(TBN_AIR, !CanBuildVehicleInfrastructure(VEH_AIRCRAFT));

View File

@ -294,17 +294,12 @@ static inline HouseSpec *GetHouseSpecs(HouseID house_id)
TileIndexDiff GetHouseNorthPart(HouseID &house);
static inline uint GetNumTowns()
{
return (uint)Town::GetNumItems();
}
/**
* Return a random valid town.
*/
static inline Town *GetRandomTown()
{
int num = RandomRange(GetNumTowns());
int num = RandomRange((uint16)Town::GetNumItems());
TownID index = INVALID_TOWN;
while (num >= 0) {

View File

@ -1760,7 +1760,7 @@ bool GenerateTowns(TownLayout layout)
/* give it a last try, but now more aggressive */
if (num == 0 && CreateRandomTown(10000, TS_RANDOM, _settings_game.economy.larger_towns != 0, layout) == NULL) {
if (GetNumTowns() == 0) {
if (Town::GetNumItems() == 0) {
if (_game_mode != GM_EDITOR) {
extern StringID _switch_mode_errorstr;
_switch_mode_errorstr = STR_COULD_NOT_CREATE_TOWN;
@ -2709,7 +2709,7 @@ Town *ClosestTownFromTile(TileIndex tile, uint threshold)
if (tid == (TownID)INVALID_TOWN) {
/* in the case we are generating "many random towns", this value may be INVALID_TOWN */
if (_generating_world) return CalcClosestTownFromTile(tile, threshold);
assert(GetNumTowns() == 0);
assert(Town::GetNumItems() == 0);
return NULL;
}