From 22fedca77ea125da991aba78dc8e0f074f5b4667 Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 6 May 2025 16:49:29 +0200 Subject: [PATCH] Codechange: Integrate ResolverObject::ResetState() into DoResolve(), no need to call it manually. --- src/newgrf_engine.cpp | 2 -- src/newgrf_spritegroup.h | 18 ++++-------------- src/newgrf_station.cpp | 1 - 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index f34e1ce359..4c01e97426 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -1099,7 +1099,6 @@ static void GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction d bool sprite_stack = EngInfo(engine)->misc_flags.Test(EngineMiscFlag::SpriteStack); uint max_stack = sprite_stack ? static_cast(std::size(result->seq)) : 1; for (uint stack = 0; stack < max_stack; ++stack) { - object.ResetState(); object.callback_param1 = image_type | (stack << 8); const auto *group = object.Resolve(); int32_t reg100 = sprite_stack ? object.GetRegister(0x100) : 0; @@ -1142,7 +1141,6 @@ static void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, En bool sprite_stack = e->info.misc_flags.Test(EngineMiscFlag::SpriteStack); uint max_stack = sprite_stack ? static_cast(std::size(result->seq)) : 1; for (uint stack = 0; stack < max_stack; ++stack) { - object.ResetState(); object.callback_param1 = image_type | (stack << 8); const auto *group = object.Resolve(); int32_t reg100 = sprite_stack ? object.GetRegister(0x100) : 0; diff --git a/src/newgrf_spritegroup.h b/src/newgrf_spritegroup.h index 83f4fa737c..093c0c1017 100644 --- a/src/newgrf_spritegroup.h +++ b/src/newgrf_spritegroup.h @@ -307,13 +307,16 @@ public: ResolverObject(const GRFFile *grffile, CallbackID callback = CBID_NO_CALLBACK, uint32_t callback_param1 = 0, uint32_t callback_param2 = 0) : default_scope(*this), callback(callback), callback_param1(callback_param1), callback_param2(callback_param2), grffile(grffile), root_spritegroup(nullptr) { - this->ResetState(); } virtual ~ResolverObject() = default; ResolverResult DoResolve() { + temp_store.ClearChanges(); + this->last_value = 0; + this->used_random_triggers = 0; + this->reseed.fill(0); return SpriteGroup::Resolve(this->root_spritegroup, *this); } @@ -434,19 +437,6 @@ public: return sum; } - /** - * Resets the dynamic state of the resolver object. - * To be called before resolving an Action-1-2-3 chain. - */ - void ResetState() - { - temp_store.ClearChanges(); - this->last_value = 0; - this->waiting_random_triggers = 0; - this->used_random_triggers = 0; - this->reseed.fill(0); - } - /** * Get the feature number being resolved for. * This function is mainly intended for the callback profiling feature. diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index bad735cc93..ba8ed37792 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -631,7 +631,6 @@ void GetCustomStationRelocation(SpriteLayoutProcessor &processor, const StationS { StationResolverObject object(statspec, st, tile, CBID_NO_CALLBACK); for (uint8_t var10 : processor.Var10Values()) { - object.ResetState(); object.callback_param1 = var10; const auto *group = object.Resolve(); if (group == nullptr || group->num_sprites == 0) continue;