diff --git a/src/ai/api/ai_industry.cpp b/src/ai/api/ai_industry.cpp --- a/src/ai/api/ai_industry.cpp +++ b/src/ai/api/ai_industry.cpp @@ -13,7 +13,7 @@ /* static */ int32 AIIndustry::GetIndustryCount() { - return ::GetNumIndustries(); + return (int32)::Industry::GetNumItems(); } /* static */ bool AIIndustry::IsValidIndustry(IndustryID industry_id) diff --git a/src/ai/api/ai_sign.cpp b/src/ai/api/ai_sign.cpp --- a/src/ai/api/ai_sign.cpp +++ b/src/ai/api/ai_sign.cpp @@ -15,7 +15,7 @@ /* static */ SignID AISign::GetMaxSignID() { - return ::Sign::GetPoolSize() - 1; + return (SignID)::Sign::GetNumItems(); } /* static */ bool AISign::IsValidSign(SignID sign_id) diff --git a/src/ai/api/ai_town.cpp b/src/ai/api/ai_town.cpp --- a/src/ai/api/ai_town.cpp +++ b/src/ai/api/ai_town.cpp @@ -16,7 +16,7 @@ /* static */ int32 AITown::GetTownCount() { - return ::GetNumTowns(); + return (int32)::Town::GetNumItems(); } /* static */ bool AITown::IsValidTown(TownID town_id) diff --git a/src/company_base.h b/src/company_base.h --- a/src/company_base.h +++ b/src/company_base.h @@ -84,11 +84,6 @@ struct Company : CompanyPool::PoolItem<& #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; diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -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; diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -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; } diff --git a/src/industry.h b/src/industry.h --- a/src/industry.h +++ b/src/industry.h @@ -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,11 +305,11 @@ static inline void ResetIndustryCounts() */ static inline Industry *GetRandomIndustry() { - int num = RandomRange(GetNumIndustries()); + if (Industry::GetNumItems() == 0) return NULL; + + int num = RandomRange((uint16)Industry::GetNumItems()); IndustryID index = INVALID_INDUSTRY; - if (GetNumIndustries() == 0) return NULL; - while (num >= 0) { num--; index++; diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -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; diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -1021,7 +1021,7 @@ bool NetworkClientPreferTeamChat(const N */ 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); } /** diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -674,7 +674,7 @@ DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT /* 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 } /* 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; } diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp --- a/src/network/network_udp.cpp +++ b/src/network/network_udp.cpp @@ -95,7 +95,7 @@ DEF_UDP_RECEIVE_COMMAND(Server, PACKET_U 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_U /* 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]; diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -142,7 +142,7 @@ static void ShowTownnameDropdown(Window 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); } diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -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)); diff --git a/src/town.h b/src/town.h --- a/src/town.h +++ b/src/town.h @@ -294,17 +294,12 @@ static inline HouseSpec *GetHouseSpecs(H 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) { diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -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 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; }