diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index 8179539190..c5823bdcf3 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -695,3 +695,8 @@ void DumpIndustrySpriteGroup(const IndustrySpec *spec, std::functiongrf_prop.spritegroup[0], std::move(print)); } + +void DumpIndustryTileSpriteGroup(const IndustryTileSpec *spec, std::function print) +{ + DumpSpriteGroup(spec->grf_prop.spritegroup[0], std::move(print)); +} diff --git a/src/table/newgrf_debug_data.h b/src/table/newgrf_debug_data.h index 866b5981cf..85ed086b6e 100644 --- a/src/table/newgrf_debug_data.h +++ b/src/table/newgrf_debug_data.h @@ -453,6 +453,7 @@ static const NIVariable _niv_stations[] = { class NIHStation : public NIHelper { bool IsInspectable(uint index) const override { return GetStationSpec(index) != nullptr; } uint GetParent(uint index) const override { return GetInspectWindowNumber(GSF_FAKE_TOWNS, Station::GetByTile(index)->town->index); } + bool ShowSpriteDumpButton(uint index) const override { return true; } const void *GetInstance(uint index)const override { return nullptr; } const void *GetSpec(uint index) const override { return GetStationSpec(index); } void SetStringParameters(uint index) const override { this->SetObjectAtStringParameters(STR_STATION_NAME, GetStationIndex(index), index); } @@ -463,6 +464,12 @@ class NIHStation : public NIHelper { StationResolverObject ro(GetStationSpec(index), Station::GetByTile(index), index, INVALID_RAILTYPE); return ro.GetScope(VSG_SCOPE_SELF)->GetVariable(var, param, extra); } + + /* virtual */ void SpriteDump(uint index, std::function print) const override + { + StationResolverObject ro(GetStationSpec(index), Station::GetByTile(index), index, INVALID_RAILTYPE); + DumpSpriteGroup(ro.root_spritegroup, std::move(print)); + } }; static const NIFeature _nif_station = { @@ -601,6 +608,7 @@ static const NIVariable _niv_industrytiles[] = { class NIHIndustryTile : public NIHelper { bool IsInspectable(uint index) const override { return GetIndustryTileSpec(GetIndustryGfx(index))->grf_prop.grffile != nullptr; } + bool ShowSpriteDumpButton(uint index) const override { return true; } uint GetParent(uint index) const override { return GetInspectWindowNumber(GSF_INDUSTRIES, GetIndustryIndex(index)); } const void *GetInstance(uint index)const override { return nullptr; } const void *GetSpec(uint index) const override { return GetIndustryTileSpec(GetIndustryGfx(index)); } @@ -629,6 +637,15 @@ class NIHIndustryTile : public NIHelper { output.print(buffer); } } + + /* virtual */ void SpriteDump(uint index, std::function print) const override + { + const IndustryTileSpec *indts = GetIndustryTileSpec(GetIndustryGfx(index)); + if (indts) { + extern void DumpIndustryTileSpriteGroup(const IndustryTileSpec *spec, std::function print); + DumpIndustryTileSpriteGroup(indts, std::move(print)); + } + } }; static const NIFeature _nif_industrytile = {