Debug: Show unreachable error groups in sprite dump when show details enabled

This commit is contained in:
Jonathan G Rennison
2024-04-29 17:27:22 +01:00
parent 96ddabb30c
commit a14f850f33

View File

@@ -753,6 +753,7 @@ void SpriteGroupDumper::DumpSpriteGroup(const SpriteGroup *sg, const char *paddi
} else { } else {
std::string subgroup_padding(padding); std::string subgroup_padding(padding);
subgroup_padding += " "; subgroup_padding += " ";
bool found_error_group = false;
for (const auto &range : (*ranges)) { for (const auto &range : (*ranges)) {
char *p = this->buffer; char *p = this->buffer;
p += seprintf(p, lastof(this->buffer), "%srange: %X -> %X", padding, range.low, range.high); p += seprintf(p, lastof(this->buffer), "%srange: %X -> %X", padding, range.low, range.high);
@@ -767,6 +768,7 @@ void SpriteGroupDumper::DumpSpriteGroup(const SpriteGroup *sg, const char *paddi
} }
print(); print();
this->DumpSpriteGroup(range.group, subgroup_padding.c_str(), SGDF_RANGE); this->DumpSpriteGroup(range.group, subgroup_padding.c_str(), SGDF_RANGE);
if (range.group == dsg->error_group) found_error_group = true;
} }
if (default_group != nullptr) { if (default_group != nullptr) {
char *p = this->buffer; char *p = this->buffer;
@@ -776,6 +778,13 @@ void SpriteGroupDumper::DumpSpriteGroup(const SpriteGroup *sg, const char *paddi
} }
print(); print();
this->DumpSpriteGroup(default_group, subgroup_padding.c_str(), SGDF_DEFAULT); this->DumpSpriteGroup(default_group, subgroup_padding.c_str(), SGDF_DEFAULT);
if (default_group == dsg->error_group) found_error_group = true;
}
if (this->more_details && !found_error_group && dsg->error_group != nullptr) {
char *p = this->buffer;
p += seprintf(p, lastof(this->buffer), "%sunreachable error group", padding);
print();
this->DumpSpriteGroup(dsg->error_group, subgroup_padding.c_str(), SGDF_DEFAULT);
} }
} }
break; break;