Debug: Add general mechanism to dump a sprite group chain

This commit is contained in:
Jonathan G Rennison
2021-05-21 19:35:22 +01:00
parent 12e00624ba
commit 6f10b01ba2
3 changed files with 194 additions and 1 deletions

View File

@@ -1635,3 +1635,17 @@ void AnalyseEngineCallbacks()
}
}
}
void DumpVehicleSpriteGroup(const Vehicle *v, std::function<void(const char *)> print)
{
const SpriteGroup *root_spritegroup = nullptr;
if (v->IsGroundVehicle()) root_spritegroup = GetWagonOverrideSpriteSet(v->engine_type, v->cargo_type, v->GetGroundVehicleCache()->first_engine);
if (root_spritegroup == nullptr) {
const Engine *e = Engine::Get(v->engine_type);
CargoID cargo = v->cargo_type;
assert(cargo < lengthof(e->grf_prop.spritegroup));
root_spritegroup = e->grf_prop.spritegroup[cargo] != nullptr ? e->grf_prop.spritegroup[cargo] : e->grf_prop.spritegroup[CT_DEFAULT];
}
DumpSpriteGroup(root_spritegroup, std::move(print));
}