(svn r27342) -Add: Optionally return the number of sprites in the spriteset from GetCustomRailSprite.

This commit is contained in:
frosch 2015-07-26 12:25:37 +00:00
parent a81968d0f3
commit 574b981e33
2 changed files with 5 additions and 2 deletions

View File

@ -100,9 +100,10 @@ RailTypeResolverObject::RailTypeResolverObject(const RailtypeInfo *rti, TileInde
* @param tile The tile to get the sprite for. * @param tile The tile to get the sprite for.
* @param rtsg The type of sprite to draw. * @param rtsg The type of sprite to draw.
* @param content Where are we drawing the tile? * @param content Where are we drawing the tile?
* @param [out] num_results If not NULL, return the number of sprites in the spriteset.
* @return The sprite to draw. * @return The sprite to draw.
*/ */
SpriteID GetCustomRailSprite(const RailtypeInfo *rti, TileIndex tile, RailTypeSpriteGroup rtsg, TileContext context) SpriteID GetCustomRailSprite(const RailtypeInfo *rti, TileIndex tile, RailTypeSpriteGroup rtsg, TileContext context, uint *num_results)
{ {
assert(rtsg < RTSG_END); assert(rtsg < RTSG_END);
@ -112,6 +113,8 @@ SpriteID GetCustomRailSprite(const RailtypeInfo *rti, TileIndex tile, RailTypeSp
const SpriteGroup *group = object.Resolve(); const SpriteGroup *group = object.Resolve();
if (group == NULL || group->GetNumResults() == 0) return 0; if (group == NULL || group->GetNumResults() == 0) return 0;
if (num_results) *num_results = group->GetNumResults();
return group->GetResult(); return group->GetResult();
} }

View File

@ -44,7 +44,7 @@ struct RailTypeResolverObject : public ResolverObject {
/* virtual */ const SpriteGroup *ResolveReal(const RealSpriteGroup *group) const; /* virtual */ const SpriteGroup *ResolveReal(const RealSpriteGroup *group) const;
}; };
SpriteID GetCustomRailSprite(const RailtypeInfo *rti, TileIndex tile, RailTypeSpriteGroup rtsg, TileContext context = TCX_NORMAL); SpriteID GetCustomRailSprite(const RailtypeInfo *rti, TileIndex tile, RailTypeSpriteGroup rtsg, TileContext context = TCX_NORMAL, uint *num_results = NULL);
SpriteID GetCustomSignalSprite(const RailtypeInfo *rti, TileIndex tile, SignalType type, SignalVariant var, SignalState state, bool gui = false); SpriteID GetCustomSignalSprite(const RailtypeInfo *rti, TileIndex tile, SignalType type, SignalVariant var, SignalState state, bool gui = false);
uint8 GetReverseRailTypeTranslation(RailType railtype, const GRFFile *grffile); uint8 GetReverseRailTypeTranslation(RailType railtype, const GRFFile *grffile);