From a0b2f28f9c41f794cefbb0ac090732465057a061 Mon Sep 17 00:00:00 2001 From: PeterN Date: Mon, 11 Sep 2023 00:01:08 +0100 Subject: [PATCH] Codechange: Use std::copy/fill pattern to initialize rail and road specs. (#11285) This avoids use of lengthof and array indices. --- src/rail_cmd.cpp | 14 ++------------ src/road_cmd.cpp | 13 ++----------- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 7c0e52dd1f..f4adfefe58 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -66,18 +66,8 @@ void ResetRailTypes() { static_assert(lengthof(_original_railtypes) <= lengthof(_railtypes)); - uint i = 0; - for (; i < lengthof(_original_railtypes); i++) _railtypes[i] = _original_railtypes[i]; - - static const RailtypeInfo empty_railtype = { - {0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,{}}, - {0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0}, - 0, RAILTYPES_NONE, RAILTYPES_NONE, 0, 0, 0, RTFB_NONE, 0, 0, 0, 0, 0, - RailTypeLabelList(), 0, 0, RAILTYPES_NONE, RAILTYPES_NONE, 0, - {}, {} }; - for (; i < lengthof(_railtypes); i++) _railtypes[i] = empty_railtype; + auto insert = std::copy(std::begin(_original_railtypes), std::end(_original_railtypes), std::begin(_railtypes)); + std::fill(insert, std::end(_railtypes), RailtypeInfo{}); _railtypes_hidden_mask = RAILTYPES_NONE; } diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 1d325f042a..edcfefe56f 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -67,17 +67,8 @@ void ResetRoadTypes() { static_assert(lengthof(_original_roadtypes) <= lengthof(_roadtypes)); - uint i = 0; - for (; i < lengthof(_original_roadtypes); i++) _roadtypes[i] = _original_roadtypes[i]; - - static const RoadTypeInfo empty_roadtype = { - { 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {}, 0, {}, {} }, - ROADTYPES_NONE, ROTFB_NONE, 0, 0, 0, 0, - RoadTypeLabelList(), 0, 0, ROADTYPES_NONE, ROADTYPES_NONE, 0, - {}, {} }; - for (; i < lengthof(_roadtypes); i++) _roadtypes[i] = empty_roadtype; + auto insert = std::copy(std::begin(_original_roadtypes), std::end(_original_roadtypes), std::begin(_roadtypes)); + std::fill(insert, std::end(_roadtypes), RoadTypeInfo{}); _roadtypes_hidden_mask = ROADTYPES_NONE; _roadtypes_type = ROADTYPES_TRAM;