diff --git a/src/newgrf_analysis.cpp b/src/newgrf_analysis.cpp index c14be6b87c..994446db62 100644 --- a/src/newgrf_analysis.cpp +++ b/src/newgrf_analysis.cpp @@ -321,3 +321,13 @@ void RandomizedSpriteGroup::AnalyseCallbacks(AnalyseCallbackOperation &op) const if (group != nullptr) group->AnalyseCallbacks(op); } } + +void RealSpriteGroup::AnalyseCallbacks(AnalyseCallbackOperation &op) const +{ + for (const SpriteGroup *group: this->loaded) { + if (group != nullptr) group->AnalyseCallbacks(op); + } + for (const SpriteGroup *group: this->loading) { + if (group != nullptr) group->AnalyseCallbacks(op); + } +} diff --git a/src/newgrf_spritegroup.h b/src/newgrf_spritegroup.h index 23baee3253..fae7e60ae8 100644 --- a/src/newgrf_spritegroup.h +++ b/src/newgrf_spritegroup.h @@ -106,6 +106,8 @@ struct RealSpriteGroup : SpriteGroup { std::vector loaded; ///< List of loaded groups (can be SpriteIDs or Callback results) std::vector loading; ///< List of loading groups (can be SpriteIDs or Callback results) + void AnalyseCallbacks(AnalyseCallbackOperation &op) const override; + protected: const SpriteGroup *Resolve(ResolverObject &object) const override; };