From 571f807b20abdcaaf97201a483047102735aaef9 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Wed, 28 Apr 2021 21:49:58 +0100 Subject: [PATCH] Cleanup: Replace FOR_ALL_SORTED_RAILTYPES macro with range iterator. (cherry picked from commit 3b3d80c8efbf3310a80e0540b4436a7ded147378) --- src/company_gui.cpp | 9 +++------ src/rail.h | 6 ------ src/rail_gui.cpp | 5 ++--- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/company_gui.cpp b/src/company_gui.cpp index 53f44892ac..ec61625d56 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -1902,8 +1902,7 @@ struct CompanyInfrastructureWindow : Window size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT).width); - RailType rt; - FOR_ALL_SORTED_RAILTYPES(rt) { + for (const auto &rt : _sorted_railtypes) { if (HasBit(this->railtypes, rt)) { lines++; SetDParam(0, GetRailTypeInfo(rt)->strings.name); @@ -2035,8 +2034,7 @@ struct CompanyInfrastructureWindow : Window if (this->railtypes != RAILTYPES_NONE) { /* Draw name of each valid railtype. */ - RailType rt; - FOR_ALL_SORTED_RAILTYPES(rt) { + for (const auto &rt : _sorted_railtypes) { if (HasBit(this->railtypes, rt)) { SetDParam(0, GetRailTypeInfo(rt)->strings.name); DrawString(r.left + offs_left, r.right - offs_right, y += FONT_HEIGHT_NORMAL, STR_WHITE_STRING); @@ -2053,8 +2051,7 @@ struct CompanyInfrastructureWindow : Window case WID_CI_RAIL_COUNT: { /* Draw infrastructure count for each valid railtype. */ uint32 rail_total = c->infrastructure.GetRailTotal(); - RailType rt; - FOR_ALL_SORTED_RAILTYPES(rt) { + for (const auto &rt : _sorted_railtypes) { if (HasBit(this->railtypes, rt)) { this->DrawCountLine(r, y, c->infrastructure.rail[rt], RailMaintenanceCost(rt, c->infrastructure.rail[rt], rail_total)); } diff --git a/src/rail.h b/src/rail.h index 72ea03f947..26934ea2ec 100644 --- a/src/rail.h +++ b/src/rail.h @@ -497,12 +497,6 @@ RailType AllocateRailType(RailTypeLabel label); extern std::vector _sorted_railtypes; extern RailTypes _railtypes_hidden_mask; -/** - * Loop header for iterating over railtypes, sorted by sortorder. - * @param var Railtype. - */ -#define FOR_ALL_SORTED_RAILTYPES(var) for (uint8 index = 0; index < _sorted_railtypes.size() && (var = _sorted_railtypes[index], true) ; index++) - /** Enum holding the signal offset in the sprite sheet according to the side it is representing. */ enum SignalOffsets { SIGNAL_TO_SOUTHWEST, diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index a1775fdccb..289f150068 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -2400,17 +2400,16 @@ DropDownList GetRailTypeDropDownList(bool for_replacement, bool all_option) } Dimension d = { 0, 0 }; - RailType rt; /* Get largest icon size, to ensure text is aligned on each menu item. */ if (!for_replacement) { - FOR_ALL_SORTED_RAILTYPES(rt) { + for (const auto &rt : _sorted_railtypes) { if (!HasBit(used_railtypes, rt)) continue; const RailtypeInfo *rti = GetRailTypeInfo(rt); d = maxdim(d, GetSpriteSize(rti->gui_sprites.build_x_rail)); } } - FOR_ALL_SORTED_RAILTYPES(rt) { + for (const auto &rt : _sorted_railtypes) { /* If it's not used ever, don't show it to the user. */ if (!HasBit(used_railtypes, rt)) continue;