diff --git a/src/newgrf/newgrf_act0_railtypes.cpp b/src/newgrf/newgrf_act0_railtypes.cpp index 9db6f6c7b5..0ab9fdbb9e 100644 --- a/src/newgrf/newgrf_act0_railtypes.cpp +++ b/src/newgrf/newgrf_act0_railtypes.cpp @@ -29,14 +29,15 @@ static ChangeInfoResult RailTypeChangeInfo(uint first, uint last, int prop, Byte ChangeInfoResult ret = CIR_SUCCESS; extern RailTypeInfo _railtypes[RAILTYPE_END]; + const auto &type_map = _cur_gps.grffile->railtype_map; - if (last > RAILTYPE_END) { - GrfMsg(1, "RailTypeChangeInfo: Rail type {} is invalid, max {}, ignoring", last, RAILTYPE_END); + if (last > std::size(type_map)) { + GrfMsg(1, "RailTypeChangeInfo: Rail type {} is invalid, max {}, ignoring", last, std::size(type_map)); return CIR_INVALID_ID; } for (uint id = first; id < last; ++id) { - RailType rt = _cur_gps.grffile->railtype_map[id]; + RailType rt = type_map[id]; if (rt == INVALID_RAILTYPE) return CIR_INVALID_ID; RailTypeInfo *rti = &_railtypes[rt]; @@ -163,9 +164,10 @@ static ChangeInfoResult RailTypeReserveInfo(uint first, uint last, int prop, Byt ChangeInfoResult ret = CIR_SUCCESS; extern RailTypeInfo _railtypes[RAILTYPE_END]; + auto &type_map = _cur_gps.grffile->railtype_map; - if (last > RAILTYPE_END) { - GrfMsg(1, "RailTypeReserveInfo: Rail type {} is invalid, max {}, ignoring", last, RAILTYPE_END); + if (last > std::size(type_map)) { + GrfMsg(1, "RailTypeReserveInfo: Rail type {} is invalid, max {}, ignoring", last, std::size(type_map)); return CIR_INVALID_ID; } @@ -182,7 +184,7 @@ static ChangeInfoResult RailTypeReserveInfo(uint first, uint last, int prop, Byt rt = AllocateRailType(rtl); } - _cur_gps.grffile->railtype_map[id] = rt; + type_map[id] = rt; break; } @@ -199,10 +201,10 @@ static ChangeInfoResult RailTypeReserveInfo(uint first, uint last, int prop, Byt break; case 0x1D: // Alternate rail type label list - if (_cur_gps.grffile->railtype_map[id] != INVALID_RAILTYPE) { + if (type_map[id] != INVALID_RAILTYPE) { int n = buf.ReadByte(); for (int j = 0; j != n; j++) { - _railtypes[_cur_gps.grffile->railtype_map[id]].alternate_labels.push_back(std::byteswap(buf.ReadDWord())); + _railtypes[type_map[id]].alternate_labels.push_back(std::byteswap(buf.ReadDWord())); } break; } diff --git a/src/newgrf/newgrf_act0_roadtypes.cpp b/src/newgrf/newgrf_act0_roadtypes.cpp index d655c99b7e..2eff6b05fd 100644 --- a/src/newgrf/newgrf_act0_roadtypes.cpp +++ b/src/newgrf/newgrf_act0_roadtypes.cpp @@ -30,10 +30,10 @@ static ChangeInfoResult RoadTypeChangeInfo(uint first, uint last, int prop, Byte ChangeInfoResult ret = CIR_SUCCESS; extern RoadTypeInfo _roadtypes[ROADTYPE_END]; - std::array &type_map = (rtt == RTT_TRAM) ? _cur_gps.grffile->tramtype_map : _cur_gps.grffile->roadtype_map; + const auto &type_map = (rtt == RTT_TRAM) ? _cur_gps.grffile->tramtype_map : _cur_gps.grffile->roadtype_map; - if (last > ROADTYPE_END) { - GrfMsg(1, "RoadTypeChangeInfo: Road type {} is invalid, max {}, ignoring", last, ROADTYPE_END); + if (last > std::size(type_map)) { + GrfMsg(1, "RoadTypeChangeInfo: Road type {} is invalid, max {}, ignoring", last, std::size(type_map)); return CIR_INVALID_ID; } @@ -151,10 +151,10 @@ static ChangeInfoResult RoadTypeReserveInfo(uint first, uint last, int prop, Byt ChangeInfoResult ret = CIR_SUCCESS; extern RoadTypeInfo _roadtypes[ROADTYPE_END]; - std::array &type_map = (rtt == RTT_TRAM) ? _cur_gps.grffile->tramtype_map : _cur_gps.grffile->roadtype_map; + auto &type_map = (rtt == RTT_TRAM) ? _cur_gps.grffile->tramtype_map : _cur_gps.grffile->roadtype_map; - if (last > ROADTYPE_END) { - GrfMsg(1, "RoadTypeReserveInfo: Road type {} is invalid, max {}, ignoring", last, ROADTYPE_END); + if (last > std::size(type_map)) { + GrfMsg(1, "RoadTypeReserveInfo: Road type {} is invalid, max {}, ignoring", last, std::size(type_map)); return CIR_INVALID_ID; } diff --git a/src/newgrf/newgrf_act3.cpp b/src/newgrf/newgrf_act3.cpp index 2f060c1fca..3ec90c87b7 100644 --- a/src/newgrf/newgrf_act3.cpp +++ b/src/newgrf/newgrf_act3.cpp @@ -268,7 +268,8 @@ struct RailTypeMapSpriteGroupHandler : MapSpriteGroupHandler { { if (cid >= RTSG_END) return; - RailType railtype = local_id < RAILTYPE_END ? _cur_gps.grffile->railtype_map[local_id] : INVALID_RAILTYPE; + const auto &type_map = _cur_gps.grffile->railtype_map; + RailType railtype = local_id < std::size(type_map) ? type_map[local_id] : INVALID_RAILTYPE; if (railtype == INVALID_RAILTYPE) return; extern RailTypeInfo _railtypes[RAILTYPE_END]; @@ -286,8 +287,8 @@ struct RoadTypeMapSpriteGroupHandler : MapSpriteGroupHandler { { if (cid >= ROTSG_END) return; - std::array &type_map = (TRoadTramType == RTT_TRAM) ? _cur_gps.grffile->tramtype_map : _cur_gps.grffile->roadtype_map; - RoadType roadtype = local_id < ROADTYPE_END ? type_map[local_id] : INVALID_ROADTYPE; + const auto &type_map = (TRoadTramType == RTT_TRAM) ? _cur_gps.grffile->tramtype_map : _cur_gps.grffile->roadtype_map; + RoadType roadtype = local_id < std::size(type_map) ? type_map[local_id] : INVALID_ROADTYPE; if (roadtype == INVALID_ROADTYPE) return; extern RoadTypeInfo _roadtypes[ROADTYPE_END];