mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Use std::array for per-NewGRF rail/road type maps. (#13142)
This allows initialisation to be simplified.pull/13124/head
parent
7469858f1f
commit
e750d10cee
|
@ -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<RoadType, ROADTYPE_END> &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<RoadType, ROADTYPE_END> &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<RoadType, ROADTYPE_END> &type_map = (rtt == RTT_TRAM) ? _cur.grffile->tramtype_map : _cur.grffile->roadtype_map;
|
||||
|
||||
std::vector<uint8_t> 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
|
||||
|
|
|
@ -131,13 +131,13 @@ struct GRFFile : ZeroedMemoryAllocator {
|
|||
std::array<uint8_t, NUM_CARGO> cargo_map{}; ///< Inverse cargo translation table (CargoID -> local ID)
|
||||
|
||||
std::vector<RailTypeLabel> railtype_list; ///< Railtype translation table
|
||||
RailType railtype_map[RAILTYPE_END];
|
||||
std::array<RailType, RAILTYPE_END> railtype_map{};
|
||||
|
||||
std::vector<RoadTypeLabel> roadtype_list; ///< Roadtype translation table (road)
|
||||
RoadType roadtype_map[ROADTYPE_END];
|
||||
std::array<RoadType, ROADTYPE_END> roadtype_map{};
|
||||
|
||||
std::vector<RoadTypeLabel> tramtype_list; ///< Roadtype translation table (tram)
|
||||
RoadType tramtype_map[ROADTYPE_END];
|
||||
std::array<RoadType, ROADTYPE_END> tramtype_map{};
|
||||
|
||||
CanalProperties canal_local_properties[CF_END]; ///< Canal properties as set by this NewGRF
|
||||
|
||||
|
|
Loading…
Reference in New Issue