mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Remove virtual functions SpriteGroup::GetResult and GetNumResults. They are only implemented in and called via ResultSpriteGroup.
parent
010b944173
commit
8027e31f47
|
@ -259,9 +259,9 @@ SpriteID GetCustomAirportSprite(const AirportSpec *as, uint8_t layout)
|
|||
{
|
||||
AirportResolverObject object(INVALID_TILE, nullptr, as, layout);
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
if (group == nullptr || group->GetNumResults() == 0) return as->preview_sprite;
|
||||
if (group == nullptr || group->num_sprites == 0) return as->preview_sprite;
|
||||
|
||||
return group->GetResult();
|
||||
return group->sprite;
|
||||
}
|
||||
|
||||
uint16_t GetAirportCallback(CallbackID callback, uint32_t param1, uint32_t param2, Station *st, TileIndex tile)
|
||||
|
|
|
@ -276,11 +276,11 @@ PalSpriteID GetBadgeSprite(const Badge &badge, GrfSpecFeature feature, std::opti
|
|||
{
|
||||
BadgeResolverObject object(badge, feature, introduction_date);
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
if (group == nullptr || group->GetNumResults() == 0) return {0, PAL_NONE};
|
||||
if (group == nullptr || group->num_sprites == 0) return {0, PAL_NONE};
|
||||
|
||||
PaletteID pal = badge.flags.Test(BadgeFlag::UseCompanyColour) ? remap : PAL_NONE;
|
||||
|
||||
return {group->GetResult(), pal};
|
||||
return {group->sprite, pal};
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -141,9 +141,9 @@ SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile)
|
|||
{
|
||||
CanalResolverObject object(feature, tile);
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
if (group == nullptr || group->GetNumResults() == 0) return 0;
|
||||
if (group == nullptr || group->num_sprites == 0) return 0;
|
||||
|
||||
return group->GetResult();
|
||||
return group->sprite;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -56,9 +56,9 @@ SpriteID GetCustomCargoSprite(const CargoSpec *cs)
|
|||
{
|
||||
CargoResolverObject object(cs);
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
if (group == nullptr || group->GetNumResults() == 0) return 0;
|
||||
if (group == nullptr || group->num_sprites == 0) return 0;
|
||||
|
||||
return group->GetResult();
|
||||
return group->sprite;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1103,8 +1103,8 @@ static void GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction d
|
|||
object.callback_param1 = image_type | (stack << 8);
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
uint32_t reg100 = sprite_stack ? GetRegister(0x100) : 0;
|
||||
if (group != nullptr && group->GetNumResults() != 0) {
|
||||
result->seq[result->count].sprite = group->GetResult() + (direction % group->GetNumResults());
|
||||
if (group != nullptr && group->num_sprites != 0) {
|
||||
result->seq[result->count].sprite = group->sprite + (direction % group->num_sprites);
|
||||
result->seq[result->count].pal = GB(reg100, 0, 16); // zero means default recolouring
|
||||
result->count++;
|
||||
}
|
||||
|
@ -1146,8 +1146,8 @@ static void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, En
|
|||
object.callback_param1 = image_type | (stack << 8);
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
uint32_t reg100 = sprite_stack ? GetRegister(0x100) : 0;
|
||||
if (group != nullptr && group->GetNumResults() != 0) {
|
||||
result->seq[result->count].sprite = group->GetResult() + (rotor_pos % group->GetNumResults());
|
||||
if (group != nullptr && group->num_sprites != 0) {
|
||||
result->seq[result->count].sprite = group->sprite + (rotor_pos % group->num_sprites);
|
||||
result->seq[result->count].pal = GB(reg100, 0, 16); // zero means default recolouring
|
||||
result->count++;
|
||||
}
|
||||
|
|
|
@ -111,11 +111,11 @@ SpriteID GetCustomRailSprite(const RailTypeInfo *rti, TileIndex tile, RailTypeSp
|
|||
|
||||
RailTypeResolverObject object(rti, tile, context, rtsg);
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
if (group == nullptr || group->GetNumResults() == 0) return 0;
|
||||
if (group == nullptr || group->num_sprites == 0) return 0;
|
||||
|
||||
if (num_results) *num_results = group->GetNumResults();
|
||||
if (num_results) *num_results = group->num_sprites;
|
||||
|
||||
return group->GetResult();
|
||||
return group->sprite;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -137,9 +137,9 @@ SpriteID GetCustomSignalSprite(const RailTypeInfo *rti, TileIndex tile, SignalTy
|
|||
RailTypeResolverObject object(rti, tile, TCX_NORMAL, RTSG_SIGNALS, param1, param2);
|
||||
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
if (group == nullptr || group->GetNumResults() == 0) return 0;
|
||||
if (group == nullptr || group->num_sprites == 0) return 0;
|
||||
|
||||
return group->GetResult();
|
||||
return group->sprite;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -154,11 +154,11 @@ SpriteID GetCustomRoadSprite(const RoadTypeInfo *rti, TileIndex tile, RoadTypeSp
|
|||
|
||||
RoadTypeResolverObject object(rti, tile, context, rtsg);
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
if (group == nullptr || group->GetNumResults() == 0) return 0;
|
||||
if (group == nullptr || group->num_sprites == 0) return 0;
|
||||
|
||||
if (num_results) *num_results = group->GetNumResults();
|
||||
if (num_results) *num_results = group->num_sprites;
|
||||
|
||||
return group->GetResult();
|
||||
return group->sprite;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -67,8 +67,6 @@ public:
|
|||
uint32_t nfo_line = 0;
|
||||
SpriteGroupType type{};
|
||||
|
||||
virtual SpriteID GetResult() const { return 0; }
|
||||
virtual uint8_t GetNumResults() const { return 0; }
|
||||
virtual uint16_t GetCallbackResult() const { return CALLBACK_FAILED; }
|
||||
|
||||
static const SpriteGroup *Resolve(const SpriteGroup *group, ResolverObject &object, bool top_level = true);
|
||||
|
@ -240,9 +238,6 @@ struct ResultSpriteGroup : SpriteGroup {
|
|||
|
||||
uint8_t num_sprites = 0;
|
||||
SpriteID sprite = 0;
|
||||
|
||||
SpriteID GetResult() const override { return this->sprite; }
|
||||
uint8_t GetNumResults() const override { return this->num_sprites; }
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -641,8 +641,8 @@ SpriteID GetCustomStationRelocation(const StationSpec *statspec, BaseStation *st
|
|||
{
|
||||
StationResolverObject object(statspec, st, tile, CBID_NO_CALLBACK, var10);
|
||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
if (group == nullptr || group->GetNumResults() == 0) return 0;
|
||||
return group->GetResult() - SPR_RAIL_PLATFORM_Y_FRONT;
|
||||
if (group == nullptr || group->num_sprites == 0) return 0;
|
||||
return group->sprite - SPR_RAIL_PLATFORM_Y_FRONT;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -662,9 +662,9 @@ SpriteID GetCustomStationFoundationRelocation(const StationSpec *statspec, BaseS
|
|||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||
/* Note: SpriteGroup::Resolve zeroes all registers, so register 0x100 is initialised to 0. (compatibility) */
|
||||
auto offset = GetRegister(0x100);
|
||||
if (group == nullptr || group->GetNumResults() <= offset) return 0;
|
||||
if (group == nullptr || group->num_sprites <= offset) return 0;
|
||||
|
||||
return group->GetResult() + offset;
|
||||
return group->sprite + offset;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue