diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 6049366299..1978e0ca6a 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -4465,7 +4465,7 @@ static ChangeInfoResult RoadTypeChangeInfo(uint id, int numinfo, int prop, ByteR ChangeInfoResult ret = CIR_SUCCESS; extern RoadTypeInfo _roadtypes[ROADTYPE_END]; - RoadType *type_map = (rtt == RTT_TRAM) ? _cur.grffile->tramtype_map : _cur.grffile->roadtype_map; + std::array &type_map = (rtt == RTT_TRAM) ? _cur.grffile->tramtype_map : _cur.grffile->roadtype_map; if (id + numinfo > ROADTYPE_END) { GrfMsg(1, "RoadTypeChangeInfo: Road type {} is invalid, max {}, ignoring", id + numinfo, ROADTYPE_END); @@ -4595,7 +4595,7 @@ static ChangeInfoResult RoadTypeReserveInfo(uint id, int numinfo, int prop, Byte ChangeInfoResult ret = CIR_SUCCESS; extern RoadTypeInfo _roadtypes[ROADTYPE_END]; - RoadType *type_map = (rtt == RTT_TRAM) ? _cur.grffile->tramtype_map : _cur.grffile->roadtype_map; + std::array &type_map = (rtt == RTT_TRAM) ? _cur.grffile->tramtype_map : _cur.grffile->roadtype_map; if (id + numinfo > ROADTYPE_END) { GrfMsg(1, "RoadTypeReserveInfo: Road type {} is invalid, max {}, ignoring", id + numinfo, ROADTYPE_END); @@ -6000,7 +6000,7 @@ static void RailTypeMapSpriteGroup(ByteReader &buf, uint8_t idcount) static void RoadTypeMapSpriteGroup(ByteReader &buf, uint8_t idcount, RoadTramType rtt) { - RoadType *type_map = (rtt == RTT_TRAM) ? _cur.grffile->tramtype_map : _cur.grffile->roadtype_map; + std::array &type_map = (rtt == RTT_TRAM) ? _cur.grffile->tramtype_map : _cur.grffile->roadtype_map; std::vector roadtypes; roadtypes.reserve(idcount); @@ -8964,18 +8964,18 @@ GRFFile::GRFFile(const GRFConfig *config) } /* Initialise rail type map with default rail types */ - std::fill(std::begin(this->railtype_map), std::end(this->railtype_map), INVALID_RAILTYPE); + this->railtype_map.fill(INVALID_RAILTYPE); this->railtype_map[0] = RAILTYPE_RAIL; this->railtype_map[1] = RAILTYPE_ELECTRIC; this->railtype_map[2] = RAILTYPE_MONO; this->railtype_map[3] = RAILTYPE_MAGLEV; /* Initialise road type map with default road types */ - std::fill(std::begin(this->roadtype_map), std::end(this->roadtype_map), INVALID_ROADTYPE); + this->roadtype_map.fill(INVALID_ROADTYPE); this->roadtype_map[0] = ROADTYPE_ROAD; /* Initialise tram type map with default tram types */ - std::fill(std::begin(this->tramtype_map), std::end(this->tramtype_map), INVALID_ROADTYPE); + this->tramtype_map.fill(INVALID_ROADTYPE); this->tramtype_map[0] = ROADTYPE_TRAM; /* Copy the initial parameter list diff --git a/src/newgrf.h b/src/newgrf.h index 5a4d661721..56b90a0679 100644 --- a/src/newgrf.h +++ b/src/newgrf.h @@ -131,13 +131,13 @@ struct GRFFile : ZeroedMemoryAllocator { std::array cargo_map{}; ///< Inverse cargo translation table (CargoID -> local ID) std::vector railtype_list; ///< Railtype translation table - RailType railtype_map[RAILTYPE_END]; + std::array railtype_map{}; std::vector roadtype_list; ///< Roadtype translation table (road) - RoadType roadtype_map[ROADTYPE_END]; + std::array roadtype_map{}; std::vector tramtype_list; ///< Roadtype translation table (tram) - RoadType tramtype_map[ROADTYPE_END]; + std::array tramtype_map{}; CanalProperties canal_local_properties[CF_END]; ///< Canal properties as set by this NewGRF