From 8027e31f47e75f9fb36b10db50a5fbbbb9d2d3f2 Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 28 Apr 2025 16:27:00 +0200 Subject: [PATCH] Codechange: Remove virtual functions SpriteGroup::GetResult and GetNumResults. They are only implemented in and called via ResultSpriteGroup. --- src/newgrf_airport.cpp | 4 ++-- src/newgrf_badge.cpp | 4 ++-- src/newgrf_canal.cpp | 4 ++-- src/newgrf_cargo.cpp | 4 ++-- src/newgrf_engine.cpp | 8 ++++---- src/newgrf_railtype.cpp | 10 +++++----- src/newgrf_roadtype.cpp | 6 +++--- src/newgrf_spritegroup.h | 5 ----- src/newgrf_station.cpp | 8 ++++---- 9 files changed, 24 insertions(+), 29 deletions(-) diff --git a/src/newgrf_airport.cpp b/src/newgrf_airport.cpp index 0abb4a7cbc..b716bf029b 100644 --- a/src/newgrf_airport.cpp +++ b/src/newgrf_airport.cpp @@ -259,9 +259,9 @@ SpriteID GetCustomAirportSprite(const AirportSpec *as, uint8_t layout) { AirportResolverObject object(INVALID_TILE, nullptr, as, layout); const auto *group = object.Resolve(); - 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) diff --git a/src/newgrf_badge.cpp b/src/newgrf_badge.cpp index cebd3ecaa4..9a01139be1 100644 --- a/src/newgrf_badge.cpp +++ b/src/newgrf_badge.cpp @@ -276,11 +276,11 @@ PalSpriteID GetBadgeSprite(const Badge &badge, GrfSpecFeature feature, std::opti { BadgeResolverObject object(badge, feature, introduction_date); const auto *group = object.Resolve(); - 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}; } /** diff --git a/src/newgrf_canal.cpp b/src/newgrf_canal.cpp index f0b9a644d0..b139b131a3 100644 --- a/src/newgrf_canal.cpp +++ b/src/newgrf_canal.cpp @@ -141,9 +141,9 @@ SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile) { CanalResolverObject object(feature, tile); const auto *group = object.Resolve(); - if (group == nullptr || group->GetNumResults() == 0) return 0; + if (group == nullptr || group->num_sprites == 0) return 0; - return group->GetResult(); + return group->sprite; } /** diff --git a/src/newgrf_cargo.cpp b/src/newgrf_cargo.cpp index 38bdbeaf67..317862462a 100644 --- a/src/newgrf_cargo.cpp +++ b/src/newgrf_cargo.cpp @@ -56,9 +56,9 @@ SpriteID GetCustomCargoSprite(const CargoSpec *cs) { CargoResolverObject object(cs); const auto *group = object.Resolve(); - if (group == nullptr || group->GetNumResults() == 0) return 0; + if (group == nullptr || group->num_sprites == 0) return 0; - return group->GetResult(); + return group->sprite; } diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index ebbbc1c4b4..e083ef55b6 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -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(); 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(); 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++; } diff --git a/src/newgrf_railtype.cpp b/src/newgrf_railtype.cpp index 1555bd2472..0d215971b8 100644 --- a/src/newgrf_railtype.cpp +++ b/src/newgrf_railtype.cpp @@ -111,11 +111,11 @@ SpriteID GetCustomRailSprite(const RailTypeInfo *rti, TileIndex tile, RailTypeSp RailTypeResolverObject object(rti, tile, context, rtsg); const auto *group = object.Resolve(); - 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(); - if (group == nullptr || group->GetNumResults() == 0) return 0; + if (group == nullptr || group->num_sprites == 0) return 0; - return group->GetResult(); + return group->sprite; } /** diff --git a/src/newgrf_roadtype.cpp b/src/newgrf_roadtype.cpp index a3c423f431..e48a67b11a 100644 --- a/src/newgrf_roadtype.cpp +++ b/src/newgrf_roadtype.cpp @@ -154,11 +154,11 @@ SpriteID GetCustomRoadSprite(const RoadTypeInfo *rti, TileIndex tile, RoadTypeSp RoadTypeResolverObject object(rti, tile, context, rtsg); const auto *group = object.Resolve(); - 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; } /** diff --git a/src/newgrf_spritegroup.h b/src/newgrf_spritegroup.h index 1c23f4cabd..507ea76e07 100644 --- a/src/newgrf_spritegroup.h +++ b/src/newgrf_spritegroup.h @@ -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; } }; /** diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index d5c12a62df..d677714f8a 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -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(); - 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(); /* 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; }