From 3a14cea068d130e11b5d9dde11d4451dd7dec453 Mon Sep 17 00:00:00 2001 From: glx Date: Sat, 14 Dec 2019 17:22:38 +0100 Subject: Codechange: Replace FOR_ALL_COMPANIES with range-based for loops --- src/ai/ai_core.cpp | 6 ++---- src/ai/ai_gui.cpp | 9 +++------ src/company_base.h | 3 --- src/company_cmd.cpp | 37 +++++++++++---------------------- src/company_gui.cpp | 9 +++------ src/console_cmds.cpp | 6 ++---- src/crashlog.cpp | 3 +-- src/economy.cpp | 19 +++++++---------- src/elrail.cpp | 3 +-- src/engine.cpp | 16 ++++++--------- src/graph_gui.cpp | 17 ++++++---------- src/group_cmd.cpp | 8 +++----- src/highscore.cpp | 3 +-- src/network/network_admin.cpp | 12 ++++------- src/network/network_server.cpp | 6 ++---- src/network/network_udp.cpp | 6 ++---- src/openttd.cpp | 5 ++--- src/saveload/afterload.cpp | 46 ++++++++++++++++-------------------------- src/saveload/company_sl.cpp | 10 ++++----- src/saveload/oldloader_sl.cpp | 3 +-- src/saveload/saveload.cpp | 3 +-- src/screenshot.cpp | 3 +-- src/smallmap_gui.cpp | 3 +-- src/statusbar_gui.cpp | 3 +-- src/terraform_gui.cpp | 3 +-- src/town_cmd.cpp | 7 ++----- src/town_gui.cpp | 3 +-- 27 files changed, 87 insertions(+), 165 deletions(-) diff --git a/src/ai/ai_core.cpp b/src/ai/ai_core.cpp index 459a3ead4..95c971af8 100644 --- a/src/ai/ai_core.cpp +++ b/src/ai/ai_core.cpp @@ -75,8 +75,7 @@ if ((AI::frame_counter & ((1 << (4 - _settings_game.difficulty.competitor_speed)) - 1)) != 0) return; Backup cur_company(_current_company, FILE_LINE); - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->is_ai) { PerformanceMeasurer framerate((PerformanceElement)(PFE_AI0 + c->index)); cur_company.Change(c->index); @@ -154,8 +153,7 @@ /* It might happen there are no companies .. than we have nothing to loop */ if (Company::GetPoolSize() == 0) return; - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->is_ai) AI::Stop(c->index); } } diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 25d34dee0..a684e4a35 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -1052,8 +1052,7 @@ struct AIDebugWindow : public Window { ai_debug_company = INVALID_COMPANY; - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->is_ai) { ChangeToAI(c->index); return; @@ -1312,8 +1311,7 @@ struct AIDebugWindow : public Window { if ((_pause_mode & PM_PAUSED_NORMAL) == PM_PAUSED_NORMAL) { bool all_unpaused = !Game::IsPaused(); if (all_unpaused) { - Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->is_ai && AI::IsPaused(c->index)) { all_unpaused = false; break; @@ -1552,8 +1550,7 @@ void ShowAIDebugWindowIfAIError() /* Network clients can't debug AIs. */ if (_networking && !_network_server) return; - Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->is_ai && c->ai_instance->IsDead()) { ShowAIDebugWindow(c->index); break; diff --git a/src/company_base.h b/src/company_base.h index 874e6208e..095f7d9e6 100644 --- a/src/company_base.h +++ b/src/company_base.h @@ -168,9 +168,6 @@ struct Company : CompanyPool::PoolItem<&_company_pool>, CompanyProperties { static void PostDestructor(size_t index); }; -#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) - Money CalculateCompanyValue(const Company *c, bool including_loan = true); extern uint _next_competitor_start; diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 1f427cf31..97be03fa9 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -263,8 +263,7 @@ void SubtractMoneyFromCompanyFract(CompanyID company, CommandCost cst) /** Update the landscaping limits per company. */ void UpdateLandscapingLimits() { - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->terraform_limit = min(c->terraform_limit + _settings_game.construction.terraform_per_64k_frames, (uint32)_settings_game.construction.terraform_frame_burst << 16); c->clear_limit = min(c->clear_limit + _settings_game.construction.clear_per_64k_frames, (uint32)_settings_game.construction.clear_frame_burst << 16); c->tree_limit = min(c->tree_limit + _settings_game.construction.tree_per_64k_frames, (uint32)_settings_game.construction.tree_frame_burst << 16); @@ -360,8 +359,7 @@ static void GenerateCompanyName(Company *c) verify_name:; /* No companies must have this name already */ - Company *cc; - FOR_ALL_COMPANIES(cc) { + for (const Company *cc : Company::Iterate()) { if (cc->name_1 == str && cc->name_2 == strp) goto bad_town_name; } @@ -447,8 +445,7 @@ static Colours GenerateCompanyColour() } /* Move the colours that look similar to each company's colour to the side */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { Colours pcolour = (Colours)c->colour; for (uint i = 0; i < COLOUR_END; i++) { @@ -494,8 +491,7 @@ restart:; GetString(buffer, STR_PRESIDENT_NAME, lastof(buffer)); if (Utf8StringLength(buffer) >= MAX_LENGTH_PRESIDENT_NAME_CHARS) continue; - Company *cc; - FOR_ALL_COMPANIES(cc) { + for (const Company *cc : Company::Iterate()) { if (c != cc) { /* Reserve extra space so even overlength president names can be compared. */ char buffer2[(MAX_LENGTH_PRESIDENT_NAME_CHARS + 1) * MAX_CHAR_LENGTH]; @@ -598,11 +594,9 @@ static bool MaybeStartNewCompany() { if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return false; - Company *c; - /* count number of competitors */ uint n = 0; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->is_ai) n++; } @@ -671,11 +665,11 @@ static void HandleBankruptcyTakeover(Company *c) /* Did we ask everyone for bankruptcy? If so, bail out. */ if (c->bankrupt_asked == MAX_UVALUE(CompanyMask)) return; - Company *c2, *best = nullptr; + Company *best = nullptr; int32 best_performance = -1; /* Ask the company with the highest performance history first */ - FOR_ALL_COMPANIES(c2) { + for (Company *c2 : Company::Iterate()) { if (c2->bankrupt_asked == 0 && // Don't ask companies going bankrupt themselves !HasBit(c->bankrupt_asked, c2->index) && best_performance < c2->old_economy[1].performance_history && @@ -737,10 +731,8 @@ void OnTick_Companies() */ void CompaniesYearlyLoop() { - Company *c; - /* Copy statistics */ - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { memmove(&c->yearly_expenses[1], &c->yearly_expenses[0], sizeof(c->yearly_expenses) - sizeof(c->yearly_expenses[0])); memset(&c->yearly_expenses[0], 0, sizeof(c->yearly_expenses[0])); SetWindowDirty(WC_FINANCES, c->index); @@ -748,7 +740,7 @@ void CompaniesYearlyLoop() if (_settings_client.gui.show_finances && _local_company != COMPANY_SPECTATOR) { ShowCompanyFinances(_local_company); - c = Company::Get(_local_company); + Company *c = Company::Get(_local_company); if (c->num_valid_stat_ent > 5 && c->old_economy[0].performance_history < c->old_economy[4].performance_history) { if (_settings_client.sound.new_year) SndPlayFx(SND_01_BAD_YEAR); } else { @@ -971,8 +963,7 @@ CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1, /* Ensure no two companies have the same primary colour */ if (scheme == LS_DEFAULT && !second) { - const Company *cc; - FOR_ALL_COMPANIES(cc) { + for (const Company *cc : Company::Iterate()) { if (cc != c && cc->colour == colour) return CMD_ERROR; } } @@ -1053,9 +1044,7 @@ CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1, */ static bool IsUniqueCompanyName(const char *name) { - const Company *c; - - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->name != nullptr && strcmp(c->name, name) == 0) return false; } @@ -1098,9 +1087,7 @@ CommandCost CmdRenameCompany(TileIndex tile, DoCommandFlag flags, uint32 p1, uin */ static bool IsUniquePresidentName(const char *name) { - const Company *c; - - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->president_name != nullptr && strcmp(c->president_name, name) == 0) return false; } diff --git a/src/company_gui.cpp b/src/company_gui.cpp index 533a26a2d..c09dab139 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -574,7 +574,7 @@ private: /* Disallow other company colours for the primary colour */ if (this->livery_class < LC_GROUP_RAIL && HasBit(this->sel, LS_DEFAULT) && primary) { - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->index != _local_company) SetBit(used_colours, c->colour); } } @@ -2396,9 +2396,7 @@ struct CompanyWindow : Window break; case WID_C_DESC_OWNERS: { - const Company *c2; - - FOR_ALL_COMPANIES(c2) { + for (const Company *c2 : Company::Iterate()) { SetDParamMaxValue(0, 75); SetDParam(1, c2->index); @@ -2500,10 +2498,9 @@ struct CompanyWindow : Window } case WID_C_DESC_OWNERS: { - const Company *c2; uint y = r.top; - FOR_ALL_COMPANIES(c2) { + for (const Company *c2 : Company::Iterate()) { uint amt = GetAmountOwnedBy(c, c2->index); if (amt != 0) { SetDParam(0, amt * 25); diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index a1a155a82..f4d0626a5 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -1142,9 +1142,8 @@ DEF_CONSOLE_CMD(ConStartAI) } int n = 0; - Company *c; /* Find the next free slot */ - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->index != n) break; n++; } @@ -1535,8 +1534,7 @@ DEF_CONSOLE_CMD(ConCompanies) return true; } - Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { /* Grab the company name */ char company_name[512]; SetDParam(0, c->index); diff --git a/src/crashlog.cpp b/src/crashlog.cpp index a018c40a3..c7cf48154 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -193,8 +193,7 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const ); buffer += seprintf(buffer, last, "AI Configuration (local: %i) (current: %i):\n", (int)_local_company, (int)_current_company); - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->ai_info == nullptr) { buffer += seprintf(buffer, last, " %2i: Human\n", (int)c->index); } else { diff --git a/src/economy.cpp b/src/economy.cpp index a5145d756..f115cf9c8 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -297,8 +297,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner) * There are no spectators in single player, so we must pick some other company. */ assert(!_networking); Backup cur_company2(_current_company, FILE_LINE); - Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->index != old_owner) { SetLocalCompany(c->index); break; @@ -313,11 +312,10 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner) assert(old_owner != new_owner); { - Company *c; uint i; /* See if the old_owner had shares in other companies */ - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { for (i = 0; i < 4; i++) { if (c->share_owners[i] == old_owner) { /* Sell his shares */ @@ -331,7 +329,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner) /* Sell all the shares that people have on this company */ Backup cur_company2(_current_company, FILE_LINE); - c = Company::Get(old_owner); + const Company *c = Company::Get(old_owner); for (i = 0; i < 4; i++) { cur_company2.Change(c->share_owners[i]); if (_current_company != INVALID_OWNER) { @@ -658,8 +656,7 @@ static void CompanyCheckBankrupt(Company *c) static void CompaniesGenStatistics() { /* Check for bankruptcy each month */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { CompanyCheckBankrupt(c); } @@ -674,7 +671,7 @@ static void CompaniesGenStatistics() } } else { /* Improved monthly infrastructure costs. */ - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { cur_company.Change(c->index); CommandCost cost(EXPENSES_PROPERTY); @@ -700,7 +697,7 @@ static void CompaniesGenStatistics() /* Only run the economic statics and update company stats every 3rd month (1st of quarter). */ if (!HasBit(1 << 0 | 1 << 3 | 1 << 6 | 1 << 9, _cur_month)) return; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { /* Drop the oldest history off the end */ std::copy_backward(c->old_economy, c->old_economy + MAX_HISTORY_QUARTERS - 1, c->old_economy + MAX_HISTORY_QUARTERS); c->old_economy[0] = c->cur_economy; @@ -833,10 +830,8 @@ void RecomputePrices() /** Let all companies pay the monthly interest on their loan. */ static void CompaniesPayInterest() { - const Company *c; - Backup cur_company(_current_company, FILE_LINE); - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { cur_company.Change(c->index); /* Over a year the paid interest should be "loan * interest percentage", diff --git a/src/elrail.cpp b/src/elrail.cpp index db5a89be5..b169479da 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -591,7 +591,6 @@ void DrawRailCatenary(const TileInfo *ti) bool SettingsDisableElrail(int32 p1) { - Company *c; Train *t; bool disable = (p1 != 0); @@ -632,7 +631,7 @@ bool SettingsDisableElrail(int32 p1) } } - FOR_ALL_COMPANIES(c) c->avail_railtypes = GetCompanyRailtypes(c->index); + for (Company *c : Company::Iterate()) c->avail_railtypes = GetCompanyRailtypes(c->index); /* This resets the _last_built_railtype, which will be invalid for electric * rails. It may have unintended consequences if that function is ever diff --git a/src/engine.cpp b/src/engine.cpp index 3027ee387..4baf906e5 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -703,8 +703,7 @@ void StartupEngines() } /* Update the bitmasks for the vehicle lists */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->avail_railtypes = GetCompanyRailtypes(c->index); c->avail_roadtypes = GetCompanyRoadTypes(c->index); } @@ -763,8 +762,7 @@ static CompanyID GetPreviewCompany(Engine *e) CargoTypes cargomask = e->type != VEH_TRAIN ? GetUnionOfArticulatedRefitMasks(e->index, true) : ALL_CARGOTYPES; int32 best_hist = -1; - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->block_preview == 0 && !HasBit(e->preview_asked, c->index) && c->old_economy[0].performance_history > best_hist) { @@ -806,8 +804,7 @@ static bool IsVehicleTypeDisabled(VehicleType type, bool ai) /** Daily check to offer an exclusive engine preview to the companies. */ void EnginesDailyLoop() { - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes, _date); c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes, _date); } @@ -908,13 +905,12 @@ CommandCost CmdWantEnginePreview(TileIndex tile, DoCommandFlag flags, uint32 p1, static void NewVehicleAvailable(Engine *e) { Vehicle *v; - Company *c; EngineID index = e->index; /* In case the company didn't build the vehicle during the intro period, * prevent that company from getting future intro periods for a while. */ if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) { - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { uint block_preview = c->block_preview; if (!HasBit(e->company_avail, c->index)) continue; @@ -948,11 +944,11 @@ static void NewVehicleAvailable(Engine *e) /* maybe make another rail type available */ RailType railtype = e->u.rail.railtype; assert(railtype < RAILTYPE_END); - FOR_ALL_COMPANIES(c) c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes | GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes, _date); + for (Company *c : Company::Iterate()) c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes | GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes, _date); } else if (e->type == VEH_ROAD) { /* maybe make another road type available */ assert(e->u.road.roadtype < ROADTYPE_END); - FOR_ALL_COMPANIES(c) c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes | GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes, _date); + for (Company* c : Company::Iterate()) c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes | GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes, _date); } /* Only broadcast event if AIs are able to build this vehicle type. */ diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index 02b898a1d..d454d8a9b 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -567,8 +567,7 @@ public: } byte nums = 0; - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { nums = min(this->num_vert_lines, max(nums, c->num_valid_stat_ent)); } @@ -592,7 +591,7 @@ public: int numd = 0; for (CompanyID k = COMPANY_FIRST; k < MAX_COMPANIES; k++) { - c = Company::GetIfValid(k); + const Company *c = Company::GetIfValid(k); if (c != nullptr) { this->colours[numd] = _colour_gradient[c->colour][6]; for (int j = this->num_on_x_axis, i = 0; --j >= 0;) { @@ -1136,8 +1135,7 @@ private: this->companies.clear(); - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { this->companies.push_back(c); } @@ -1219,8 +1217,7 @@ public: this->icon_width = d.width + 2; this->line_height = max(d.height + 2, FONT_HEIGHT_NORMAL); - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { SetDParam(0, c->index); SetDParam(1, c->index); SetDParam(2, _performance_titles[widest_title]); @@ -1299,8 +1296,7 @@ struct PerformanceRatingDetailWindow : Window { { /* Update all company stats with the current data * (this is because _score_info is not saved to a savegame) */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { UpdateCompanyRatingAndValue(c, false); } @@ -1497,8 +1493,7 @@ struct PerformanceRatingDetailWindow : Window { } if (this->company == INVALID_COMPANY) { - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { this->company = c->index; break; } diff --git a/src/group_cmd.cpp b/src/group_cmd.cpp index 9f0d2cd80..95b7070c7 100644 --- a/src/group_cmd.cpp +++ b/src/group_cmd.cpp @@ -101,8 +101,7 @@ void GroupStatistics::Clear() /* static */ void GroupStatistics::UpdateAfterLoad() { /* Set up the engine count for all companies */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { for (VehicleType type = VEH_BEGIN; type < VEH_COMPANY_END; type++) { c->group_all[type].Clear(); c->group_default[type].Clear(); @@ -123,7 +122,7 @@ void GroupStatistics::Clear() if (v->IsPrimaryVehicle()) GroupStatistics::CountVehicle(v, 1); } - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { GroupStatistics::UpdateAutoreplace(c->index); } } @@ -183,8 +182,7 @@ void GroupStatistics::Clear() /* static */ void GroupStatistics::UpdateProfits() { /* Set up the engine count for all companies */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { for (VehicleType type = VEH_BEGIN; type < VEH_COMPANY_END; type++) { c->group_all[type].ClearProfits(); c->group_default[type].ClearProfits(); diff --git a/src/highscore.cpp b/src/highscore.cpp index ccdf4d79f..d8fe348fe 100644 --- a/src/highscore.cpp +++ b/src/highscore.cpp @@ -87,13 +87,12 @@ static bool HighScoreSorter(const Company * const &a, const Company * const &b) */ int8 SaveHighScoreValueNetwork() { - const Company *c; const Company *cl[MAX_COMPANIES]; uint count = 0; int8 company = -1; /* Sort all active companies with the highest score first */ - FOR_ALL_COMPANIES(c) cl[count++] = c; + for (const Company *c : Company::Iterate()) cl[count++] = c; std::sort(std::begin(cl), std::begin(cl) + count, HighScoreSorter); diff --git a/src/network/network_admin.cpp b/src/network/network_admin.cpp index 25481da93..037307627 100644 --- a/src/network/network_admin.cpp +++ b/src/network/network_admin.cpp @@ -399,8 +399,7 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyRemove(CompanyID c /** Send economic information of all companies. */ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyEconomy() { - const Company *company; - FOR_ALL_COMPANIES(company) { + for (const Company *company : Company::Iterate()) { /* Get the income. */ Money income = 0; for (uint i = 0; i < lengthof(company->yearly_expenses[0]); i++) { @@ -438,10 +437,8 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyStats() NetworkCompanyStats company_stats[MAX_COMPANIES]; NetworkPopulateCompanyStats(company_stats); - const Company *company; - /* Go through all the companies. */ - FOR_ALL_COMPANIES(company) { + for (const Company *company : Company::Iterate()) { Packet *p = new Packet(ADMIN_PACKET_SERVER_COMPANY_STATS); /* Send the information. */ @@ -748,13 +745,12 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::Receive_ADMIN_POLL(Packet *p) case ADMIN_UPDATE_COMPANY_INFO: /* The admin is asking for company info. */ - const Company *company; if (d1 == UINT32_MAX) { - FOR_ALL_COMPANIES(company) { + for (const Company *company : Company::Iterate()) { this->SendCompanyInfo(company); } } else { - company = Company::GetIfValid(d1); + const Company *company = Company::GetIfValid(d1); if (company != nullptr) this->SendCompanyInfo(company); } break; diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 7505bff87..a8322ff90 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -380,10 +380,9 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendCompanyInfo() /* Now send the data */ - Company *company; Packet *p; - FOR_ALL_COMPANIES(company) { + for (const Company *company : Company::Iterate()) { p = new Packet(PACKET_SERVER_COMPANY_INFO); p->Send_uint8 (NETWORK_COMPANY_INFO_VERSION); @@ -1619,7 +1618,6 @@ static void NetworkCheckRestartMap() static void NetworkAutoCleanCompanies() { const NetworkClientInfo *ci; - const Company *c; bool clients_in_company[MAX_COMPANIES]; int vehicles_in_company[MAX_COMPANIES]; @@ -1648,7 +1646,7 @@ static void NetworkAutoCleanCompanies() } /* Go through all the companies */ - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { /* Skip the non-active once */ if (c->is_ai) continue; diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp index ddf2e9518..90b99ec44 100644 --- a/src/network/network_udp.cpp +++ b/src/network/network_udp.cpp @@ -198,8 +198,7 @@ void ServerNetworkUDPSocketHandler::Receive_CLIENT_DETAIL_INFO(Packet *p, Networ for (;;) { int free = SEND_MTU - packet.size; - Company *company; - FOR_ALL_COMPANIES(company) { + for (const Company *company : Company::Iterate()) { char company_name[NETWORK_COMPANY_NAME_LENGTH]; SetDParam(0, company->index); GetString(company_name, STR_COMPANY_NAME, company_name + max_cname_length - 1); @@ -214,9 +213,8 @@ void ServerNetworkUDPSocketHandler::Receive_CLIENT_DETAIL_INFO(Packet *p, Networ } } - Company *company; /* Go through all the companies */ - FOR_ALL_COMPANIES(company) { + for (const Company *company : Company::Iterate()) { /* Send the information */ this->SendCompanyInformation(&packet, company, &company_stats[company->index], max_cname_length); } diff --git a/src/openttd.cpp b/src/openttd.cpp index c7c518ae4..fde01111d 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1207,14 +1207,13 @@ static void CheckCaches() /* Check company infrastructure cache. */ std::vector old_infrastructure; - Company *c; - FOR_ALL_COMPANIES(c) old_infrastructure.push_back(c->infrastructure); + for (const Company *c : Company::Iterate()) old_infrastructure.push_back(c->infrastructure); extern void AfterLoadCompanyStats(); AfterLoadCompanyStats(); i = 0; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (MemCmpT(old_infrastructure.data() + i, &c->infrastructure) != 0) { DEBUG(desync, 2, "infrastructure cache mismatch: company %i", (int)c->index); } diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 943885473..c10904c8a 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -243,8 +243,7 @@ static void InitializeWindowsAndCaches() UpdateAllVirtCoords(); ResetViewportAfterLoadGame(); - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { /* For each company, verify (while loading a scenario) that the inauguration date is the current year and set it * accordingly if it is not the case. No need to set it on companies that are not been used already, * thus the MIN_YEAR (which is really nothing more than Zero, initialized value) test */ @@ -644,8 +643,7 @@ bool AfterLoadGame() } if (IsSavegameVersionBefore(SLV_84)) { - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->name = CopyFromOldName(c->name_1); if (c->name != nullptr) c->name_1 = STR_SV_UNNAMED; c->president_name = CopyFromOldName(c->president_name_1); @@ -678,8 +676,7 @@ bool AfterLoadGame() } /* the same applies to Company::location_of_HQ */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { if (c->location_of_HQ == 0 || (IsSavegameVersionBefore(SLV_4) && c->location_of_HQ == 0xFFFF)) { c->location_of_HQ = INVALID_TILE; } @@ -800,8 +797,7 @@ bool AfterLoadGame() /* Make sure there is an AI attached to an AI company */ { - Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->is_ai && c->ai_instance == nullptr) AI::StartNew(c->index); } } @@ -1000,8 +996,7 @@ bool AfterLoadGame() /* From version 16.0, we included autorenew on engines, which are now saved, but * of course, we do need to initialize them for older savegames. */ if (IsSavegameVersionBefore(SLV_16)) { - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->engine_renew_list = nullptr; c->settings.engine_renew = false; c->settings.engine_renew_months = 6; @@ -1014,7 +1009,7 @@ bool AfterLoadGame() * becomes company 0, unless we are in the scenario editor where all the * companies are 'invalid'. */ - c = Company::GetIfValid(COMPANY_FIRST); + Company *c = Company::GetIfValid(COMPANY_FIRST); if (!_network_dedicated && c != nullptr) { c->settings = _settings_client.company; } @@ -1349,8 +1344,7 @@ bool AfterLoadGame() * replaced, shall keep their old length. In all prior versions, just default * to false */ if (IsSavegameVersionBefore(SLV_16, 1)) { - Company *c; - FOR_ALL_COMPANIES(c) c->settings.renew_keep_length = false; + for (Company *c : Company::Iterate()) c->settings.renew_keep_length = false; } if (IsSavegameVersionBefore(SLV_123)) { @@ -1413,12 +1407,10 @@ bool AfterLoadGame() YapfNotifyTrackLayoutChange(INVALID_TILE, INVALID_TRACK); if (IsSavegameVersionBefore(SLV_34)) { - Company *c; - FOR_ALL_COMPANIES(c) ResetCompanyLivery(c); + for (Company *c : Company::Iterate()) ResetCompanyLivery(c); } - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->avail_railtypes = GetCompanyRailtypes(c->index); c->avail_roadtypes = GetCompanyRoadTypes(c->index); } @@ -1440,7 +1432,7 @@ bool AfterLoadGame() FOR_ALL_STATIONS(st) st->build_date += DAYS_TILL_ORIGINAL_BASE_YEAR; FOR_ALL_WAYPOINTS(wp) wp->build_date += DAYS_TILL_ORIGINAL_BASE_YEAR; FOR_ALL_ENGINES(e) e->intro_date += DAYS_TILL_ORIGINAL_BASE_YEAR; - FOR_ALL_COMPANIES(c) c->inaugurated_year += ORIGINAL_BASE_YEAR; + for (Company *c : Company::Iterate()) c->inaugurated_year += ORIGINAL_BASE_YEAR; FOR_ALL_INDUSTRIES(i) i->last_prod_year += ORIGINAL_BASE_YEAR; FOR_ALL_VEHICLES(v) { @@ -1592,7 +1584,7 @@ bool AfterLoadGame() } } - if (IsSavegameVersionBefore(SLV_49)) FOR_ALL_COMPANIES(c) c->face = ConvertFromOldCompanyManagerFace(c->face); + if (IsSavegameVersionBefore(SLV_49)) for (Company *c : Company::Iterate()) c->face = ConvertFromOldCompanyManagerFace(c->face); if (IsSavegameVersionBefore(SLV_52)) { for (TileIndex t = 0; t < map_size; t++) { @@ -1792,7 +1784,7 @@ bool AfterLoadGame() * *really* old revisions of OTTD; else it is already set in InitializeCompanies()) * 2) shares that are owned by inactive companies or self * (caused by cheating clients in earlier revisions) */ - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { for (uint i = 0; i < 4; i++) { CompanyID company = c->share_owners[i]; if (company == INVALID_COMPANY) continue; @@ -2061,8 +2053,7 @@ bool AfterLoadGame() } /* More companies ... */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { if (c->bankrupt_asked == 0xFF) c->bankrupt_asked = 0xFFFF; } @@ -2199,8 +2190,7 @@ bool AfterLoadGame() if (IsSavegameVersionBefore(SLV_120)) { extern VehicleDefaultSettings _old_vds; - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->settings.vehicle = _old_vds; } } @@ -2663,8 +2653,7 @@ bool AfterLoadGame() } /* Introduced terraform/clear limits. */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->terraform_limit = _settings_game.construction.terraform_frame_burst << 16; c->clear_limit = _settings_game.construction.clear_frame_burst << 16; } @@ -2923,8 +2912,7 @@ bool AfterLoadGame() if (IsSavegameVersionBefore(SLV_175)) { /* Introduced tree planting limit. */ - Company *c; - FOR_ALL_COMPANIES(c) c->tree_limit = _settings_game.construction.tree_frame_burst << 16; + for (Company *c : Company::Iterate()) c->tree_limit = _settings_game.construction.tree_frame_burst << 16; } if (IsSavegameVersionBefore(SLV_177)) { @@ -2933,7 +2921,7 @@ bool AfterLoadGame() if (_economy.inflation_payment > MAX_INFLATION) _economy.inflation_payment = MAX_INFLATION; /* We have to convert the quarters of bankruptcy into months of bankruptcy */ - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->months_of_bankruptcy = 3 * c->months_of_bankruptcy; } } diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 19e2e2343..e1dc5cdc2 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -94,8 +94,7 @@ CompanyManagerFace ConvertFromOldCompanyManagerFace(uint32 face) void AfterLoadCompanyStats() { /* Reset infrastructure statistics to zero. */ - Company *c; - FOR_ALL_COMPANIES(c) MemSetT(&c->infrastructure, 0); + for (Company *c : Company::Iterate()) MemSetT(&c->infrastructure, 0); /* Collect airport count. */ Station *st; @@ -105,6 +104,7 @@ void AfterLoadCompanyStats() } } + Company *c; for (TileIndex tile = 0; tile < MapSize(); tile++) { switch (GetTileType(tile)) { case MP_RAILWAY: @@ -486,8 +486,7 @@ static void SaveLoad_PLYR(Company *c) static void Save_PLYR() { - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { SlSetArrayIndex(c->index); SlAutolength((AutolengthProc*)SaveLoad_PLYR, c); } @@ -534,8 +533,7 @@ static void Check_PLYR() static void Ptrs_PLYR() { - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { SlObject(c, _company_settings_desc); } } diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp index ae7aa890c..3a3efa34d 100644 --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -459,8 +459,7 @@ static bool FixTTOEngines() static void FixTTOCompanies() { - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { c->cur_economy.company_value = CalculateCompanyValue(c); // company value history is zeroed } } diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 639461460..d652f0d25 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -2816,8 +2816,7 @@ void GenerateDefaultSaveName(char *buf, const char *last) * 'Spectator' as "company" name. */ CompanyID cid = _local_company; if (!Company::IsValidID(cid)) { - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { cid = c->index; break; } diff --git a/src/screenshot.cpp b/src/screenshot.cpp index 218231cd7..60196cdf0 100644 --- a/src/screenshot.cpp +++ b/src/screenshot.cpp @@ -315,8 +315,7 @@ static bool MakePNGImage(const char *name, ScreenshotCallback *callb, void *user p += seprintf(p, lastof(buf), " %s\n", c->filename); } p = strecpy(p, "\nCompanies:\n", lastof(buf)); - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (c->ai_info == nullptr) { p += seprintf(p, lastof(buf), "%2i: Human\n", (int)c->index); } else { diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 1cc9354da..d76c4652f 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -333,8 +333,7 @@ void BuildOwnerLegend() _legend_land_owners[1].colour = _heightmap_schemes[_settings_client.gui.smallmap_land_colour].default_colour; int i = NUM_NO_COMPANY_ENTRIES; - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { _legend_land_owners[i].colour = _colour_gradient[c->colour][5]; _legend_land_owners[i].company = c->index; _legend_land_owners[i].show_on_map = true; diff --git a/src/statusbar_gui.cpp b/src/statusbar_gui.cpp index 3f4396704..322e196df 100644 --- a/src/statusbar_gui.cpp +++ b/src/statusbar_gui.cpp @@ -120,8 +120,7 @@ struct StatusBarWindow : Window { case WID_S_RIGHT: { int64 max_money = UINT32_MAX; - const Company *c; - FOR_ALL_COMPANIES(c) max_money = max(c->money, max_money); + for (const Company *c : Company::Iterate()) max_money = max(c->money, max_money); SetDParam(0, 100LL * max_money); d = GetStringBoundingBox(STR_COMPANY_MONEY); break; diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index bdf37a978..2f65bb610 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -500,8 +500,7 @@ static void ResetLandscapeConfirmationCallback(Window *w, bool confirmed) _generating_world = true; /* Delete all companies */ - Company *c; - FOR_ALL_COMPANIES(c) { + for (Company *c : Company::Iterate()) { ChangeOwnershipOfCompanyItems(c->index, INVALID_OWNER); delete c; } diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index fbfd87492..6f907bc3c 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -3294,8 +3294,7 @@ static void ForAllStationsNearTown(Town *t, Func func) static void UpdateTownRating(Town *t) { /* Increase company ratings if they're low */ - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (t->ratings[c->index] < RATING_GROWTH_MAXIMUM) { t->ratings[c->index] = min((int)RATING_GROWTH_MAXIMUM, t->ratings[c->index] + RATING_GROWTH_UP_STEP); } @@ -3451,9 +3450,7 @@ static void UpdateTownAmounts(Town *t) static void UpdateTownUnwanted(Town *t) { - const Company *c; - - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if (t->unwanted[c->index] > 0) t->unwanted[c->index]--; } } diff --git a/src/town_gui.cpp b/src/town_gui.cpp index a0f04314d..2f5a72a36 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -149,8 +149,7 @@ public: uint exclusive_left = rtl ? right - icon_width - exclusive_width - 2 : left + icon_width + 2; /* Draw list of companies */ - const Company *c; - FOR_ALL_COMPANIES(c) { + for (const Company *c : Company::Iterate()) { if ((HasBit(this->town->have_ratings, c->index) || this->town->exclusivity == c->index)) { DrawCompanyIcon(c->index, icon_left, y + icon_y_offset); -- cgit v1.2.3-54-g00ecf