1
0
Fork 0

Codechange: Use SingleGRFFileProps, if the feature has no spritegroup keys.

pull/14133/head
frosch 2025-04-26 18:59:55 +02:00 committed by frosch
parent 41a20e512d
commit 05504ec463
2 changed files with 16 additions and 6 deletions

View File

@ -266,7 +266,7 @@ static void TownHouseMapSpriteGroup(ByteReader &buf, uint8_t idcount)
continue; 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; 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; 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; 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; continue;
} }
airtsp->grf_prop.SetSpriteGroup(0, _cur_gps.spritegroups[groupid]); airtsp->grf_prop.SetSpriteGroup(_cur_gps.spritegroups[groupid]);
} }
} }

View File

@ -327,6 +327,16 @@ struct FixedGRFFileProps : GRFFilePropsBase {
void SetSpriteGroup(size_t index, const struct SpriteGroup *spritegroup) { this->spritegroups[index] = spritegroup; } 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. * Variable-length list of sprite groups for an entity.
* @tparam Tkey Key for indexing spritegroups * @tparam Tkey Key for indexing spritegroups
@ -374,7 +384,7 @@ struct CargoGRFFileProps : VariableGRFFileProps<CargoType> {
}; };
/** Data related to the handling of grf files. */ /** Data related to the handling of grf files. */
struct GRFFileProps : FixedGRFFileProps<1> { struct GRFFileProps : SingleGRFFileProps {
/** Set all default data constructor for the props. */ /** Set all default data constructor for the props. */
constexpr GRFFileProps(uint16_t subst_id = 0) : subst_id(subst_id), override_id(subst_id) {} constexpr GRFFileProps(uint16_t subst_id = 0) : subst_id(subst_id), override_id(subst_id) {}