1
0
Fork 0

Codechange: Remove virtual functions SpriteGroup::GetResult and GetNumResults. They are only implemented in and called via ResultSpriteGroup.

pull/14148/head
frosch 2025-04-28 16:27:00 +02:00 committed by frosch
parent 010b944173
commit 8027e31f47
9 changed files with 24 additions and 29 deletions

View File

@ -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)

View File

@ -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};
}
/**

View File

@ -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;
}
/**

View File

@ -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;
}

View File

@ -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++;
}

View File

@ -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;
}
/**

View File

@ -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;
}
/**

View File

@ -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; }
};
/**

View File

@ -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;
}