diff --git a/src/newgrf/newgrf_act3.cpp b/src/newgrf/newgrf_act3.cpp index 34fc0e62f9..906b60d68f 100644 --- a/src/newgrf/newgrf_act3.cpp +++ b/src/newgrf/newgrf_act3.cpp @@ -266,7 +266,7 @@ static void TownHouseMapSpriteGroup(ByteReader &buf, uint8_t idcount) continue; } - hs->grf_prop.SetSpriteGroup(0, _cur_gps.spritegroups[groupid]); + hs->grf_prop.SetSpriteGroup(_cur_gps.spritegroups[groupid]); } } @@ -298,7 +298,7 @@ static void IndustryMapSpriteGroup(ByteReader &buf, uint8_t idcount) continue; } - indsp->grf_prop.SetSpriteGroup(0, _cur_gps.spritegroups[groupid]); + indsp->grf_prop.SetSpriteGroup(_cur_gps.spritegroups[groupid]); } } @@ -330,7 +330,7 @@ static void IndustrytileMapSpriteGroup(ByteReader &buf, uint8_t idcount) continue; } - indtsp->grf_prop.SetSpriteGroup(0, _cur_gps.spritegroups[groupid]); + indtsp->grf_prop.SetSpriteGroup(_cur_gps.spritegroups[groupid]); } } @@ -514,7 +514,7 @@ static void AirportMapSpriteGroup(ByteReader &buf, uint8_t idcount) continue; } - as->grf_prop.SetSpriteGroup(0, _cur_gps.spritegroups[groupid]); + as->grf_prop.SetSpriteGroup(_cur_gps.spritegroups[groupid]); } } @@ -546,7 +546,7 @@ static void AirportTileMapSpriteGroup(ByteReader &buf, uint8_t idcount) continue; } - airtsp->grf_prop.SetSpriteGroup(0, _cur_gps.spritegroups[groupid]); + airtsp->grf_prop.SetSpriteGroup(_cur_gps.spritegroups[groupid]); } } diff --git a/src/newgrf_commons.h b/src/newgrf_commons.h index 538014173a..7be4298a52 100644 --- a/src/newgrf_commons.h +++ b/src/newgrf_commons.h @@ -327,6 +327,16 @@ struct FixedGRFFileProps : GRFFilePropsBase { void SetSpriteGroup(size_t index, const struct SpriteGroup *spritegroup) { this->spritegroups[index] = spritegroup; } }; +/** + * Entities with single sprite group. + */ +struct SingleGRFFileProps : GRFFilePropsBase { + const struct SpriteGroup *spritegroup; + + const struct SpriteGroup *GetSpriteGroup() const { return this->spritegroup; } + void SetSpriteGroup(const struct SpriteGroup *spritegroup) { this->spritegroup = spritegroup; } +}; + /** * Variable-length list of sprite groups for an entity. * @tparam Tkey Key for indexing spritegroups @@ -374,7 +384,7 @@ struct CargoGRFFileProps : VariableGRFFileProps { }; /** Data related to the handling of grf files. */ -struct GRFFileProps : FixedGRFFileProps<1> { +struct GRFFileProps : SingleGRFFileProps { /** Set all default data constructor for the props. */ constexpr GRFFileProps(uint16_t subst_id = 0) : subst_id(subst_id), override_id(subst_id) {}