Debug: Add dumping of rail and road/tram sprite groups

This commit is contained in:
Jonathan G Rennison
2023-02-25 16:16:49 +00:00
parent 86aeb16f55
commit e0a42b5945
3 changed files with 99 additions and 0 deletions

View File

@@ -1440,6 +1440,7 @@ void PrintTypeLabels(char * buffer, const char *last, uint32 label, const uint3
class NIHRailType : public NIHelper {
bool IsInspectable(uint index) const override { return true; }
bool ShowSpriteDumpButton(uint index) const override { return true; }
uint GetParent(uint index) const override { return UINT32_MAX; }
const void *GetInstance(uint index)const override { return nullptr; }
const void *GetSpec(uint index) const override { return nullptr; }
@@ -1505,6 +1506,12 @@ class NIHRailType : public NIHelper {
output.print(buffer);
}
}
/* virtual */ void SpriteDump(uint index, DumpSpriteGroupPrinter print) const override
{
extern void DumpRailTypeSpriteGroup(RailType rt, DumpSpriteGroupPrinter print);
DumpRailTypeSpriteGroup(GetTileRailType(index), std::move(print));
}
};
static const NIFeature _nif_railtype = {
@@ -1760,6 +1767,7 @@ static const NIVariable _niv_roadtypes[] = {
class NIHRoadType : public NIHelper {
bool IsInspectable(uint index) const override { return true; }
bool ShowSpriteDumpButton(uint index) const override { return true; }
uint GetParent(uint index) const override { return UINT32_MAX; }
const void *GetInstance(uint index) const override { return nullptr; }
const void *GetSpec(uint index) const override { return nullptr; }
@@ -1809,6 +1817,17 @@ class NIHRoadType : public NIHelper {
writeInfo(RTT_ROAD);
writeInfo(RTT_TRAM);
}
/* virtual */ void SpriteDump(uint index, DumpSpriteGroupPrinter print) const override
{
for (RoadTramType rtt : { RTT_ROAD, RTT_TRAM }) {
RoadType rt = GetRoadType(index, rtt);
if (rt == INVALID_ROADTYPE) continue;
extern void DumpRoadTypeSpriteGroup(RoadType rt, DumpSpriteGroupPrinter print);
DumpRoadTypeSpriteGroup(rt, print);
}
}
};
static const NIFeature _nif_roadtype = {