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);
|
AirportResolverObject object(INVALID_TILE, nullptr, as, layout);
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
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)
|
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);
|
BadgeResolverObject object(badge, feature, introduction_date);
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
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;
|
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);
|
CanalResolverObject object(feature, tile);
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
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);
|
CargoResolverObject object(cs);
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
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);
|
object.callback_param1 = image_type | (stack << 8);
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||||
uint32_t reg100 = sprite_stack ? GetRegister(0x100) : 0;
|
uint32_t reg100 = sprite_stack ? GetRegister(0x100) : 0;
|
||||||
if (group != nullptr && group->GetNumResults() != 0) {
|
if (group != nullptr && group->num_sprites != 0) {
|
||||||
result->seq[result->count].sprite = group->GetResult() + (direction % group->GetNumResults());
|
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->seq[result->count].pal = GB(reg100, 0, 16); // zero means default recolouring
|
||||||
result->count++;
|
result->count++;
|
||||||
}
|
}
|
||||||
|
@ -1146,8 +1146,8 @@ static void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, En
|
||||||
object.callback_param1 = image_type | (stack << 8);
|
object.callback_param1 = image_type | (stack << 8);
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||||
uint32_t reg100 = sprite_stack ? GetRegister(0x100) : 0;
|
uint32_t reg100 = sprite_stack ? GetRegister(0x100) : 0;
|
||||||
if (group != nullptr && group->GetNumResults() != 0) {
|
if (group != nullptr && group->num_sprites != 0) {
|
||||||
result->seq[result->count].sprite = group->GetResult() + (rotor_pos % group->GetNumResults());
|
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->seq[result->count].pal = GB(reg100, 0, 16); // zero means default recolouring
|
||||||
result->count++;
|
result->count++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,11 +111,11 @@ SpriteID GetCustomRailSprite(const RailTypeInfo *rti, TileIndex tile, RailTypeSp
|
||||||
|
|
||||||
RailTypeResolverObject object(rti, tile, context, rtsg);
|
RailTypeResolverObject object(rti, tile, context, rtsg);
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
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);
|
RailTypeResolverObject object(rti, tile, TCX_NORMAL, RTSG_SIGNALS, param1, param2);
|
||||||
|
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
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);
|
RoadTypeResolverObject object(rti, tile, context, rtsg);
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
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;
|
uint32_t nfo_line = 0;
|
||||||
SpriteGroupType type{};
|
SpriteGroupType type{};
|
||||||
|
|
||||||
virtual SpriteID GetResult() const { return 0; }
|
|
||||||
virtual uint8_t GetNumResults() const { return 0; }
|
|
||||||
virtual uint16_t GetCallbackResult() const { return CALLBACK_FAILED; }
|
virtual uint16_t GetCallbackResult() const { return CALLBACK_FAILED; }
|
||||||
|
|
||||||
static const SpriteGroup *Resolve(const SpriteGroup *group, ResolverObject &object, bool top_level = true);
|
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;
|
uint8_t num_sprites = 0;
|
||||||
SpriteID sprite = 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);
|
StationResolverObject object(statspec, st, tile, CBID_NO_CALLBACK, var10);
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
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() - SPR_RAIL_PLATFORM_Y_FRONT;
|
return group->sprite - SPR_RAIL_PLATFORM_Y_FRONT;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -662,9 +662,9 @@ SpriteID GetCustomStationFoundationRelocation(const StationSpec *statspec, BaseS
|
||||||
const auto *group = object.Resolve<ResultSpriteGroup>();
|
const auto *group = object.Resolve<ResultSpriteGroup>();
|
||||||
/* Note: SpriteGroup::Resolve zeroes all registers, so register 0x100 is initialised to 0. (compatibility) */
|
/* Note: SpriteGroup::Resolve zeroes all registers, so register 0x100 is initialised to 0. (compatibility) */
|
||||||
auto offset = GetRegister(0x100);
|
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