diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index e7c9c627cf..e2ee0b781b 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -129,15 +129,14 @@ static bool CompareRailTypes(const RailType &first, const RailType &second) */ void InitRailTypes() { - for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { - RailTypeInfo *rti = &_railtypes[rt]; - ResolveRailTypeGUISprites(rti); - if (rti->flags.Test(RailTypeFlag::Hidden)) _railtypes_hidden_mask.Set(rt); - } - _sorted_railtypes.clear(); - for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { - if (_railtypes[rt].label == 0) continue; + for (RailTypeInfo &rti : _railtypes) { + RailType rt = rti.Index(); + + ResolveRailTypeGUISprites(&rti); + _railtypes_hidden_mask.Set(rt, rti.flags.Test(RailTypeFlag::Hidden)); + + if (rti.label == 0) continue; _sorted_railtypes.push_back(rt); } std::sort(_sorted_railtypes.begin(), _sorted_railtypes.end(), CompareRailTypes); diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index f2609fc617..4b5d93682d 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -110,15 +110,14 @@ static bool CompareRoadTypes(const RoadType &first, const RoadType &second) */ void InitRoadTypes() { - for (RoadType rt = ROADTYPE_BEGIN; rt != ROADTYPE_END; rt++) { - RoadTypeInfo *rti = &_roadtypes[rt]; - ResolveRoadTypeGUISprites(rti); - if (rti->flags.Test(RoadTypeFlag::Hidden)) _roadtypes_hidden_mask.Set(rt); - } - _sorted_roadtypes.clear(); - for (RoadType rt = ROADTYPE_BEGIN; rt != ROADTYPE_END; rt++) { - if (_roadtypes[rt].label == 0) continue; + for (RoadTypeInfo &rti : _roadtypes) { + RoadType rt = rti.Index(); + + ResolveRoadTypeGUISprites(&rti); + _roadtypes_hidden_mask.Set(rt, rti.flags.Test(RoadTypeFlag::Hidden)); + + if (rti.label == 0) continue; _sorted_roadtypes.push_back(rt); } std::sort(_sorted_roadtypes.begin(), _sorted_roadtypes.end(), CompareRoadTypes);