From 6825ea5e79142736b73a78a63da699c885888c2d Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 6 Jun 2022 01:33:27 +0100 Subject: [PATCH] Debug: Show name of root sprite group shown in vehicle debug window --- src/newgrf_debug_gui.cpp | 2 +- src/newgrf_engine.cpp | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/newgrf_debug_gui.cpp b/src/newgrf_debug_gui.cpp index 98becf5d0f..38da3b2bdf 100644 --- a/src/newgrf_debug_gui.cpp +++ b/src/newgrf_debug_gui.cpp @@ -561,7 +561,7 @@ struct NewGRFInspectWindow : Window { if (group != nullptr) const_cast(this)->sprite_group_lines[offset] = group; if (highlight_tag != 0) const_cast(this)->highlight_tag_lines[offset] = highlight_tag; - TextColour colour = (this->selected_sprite_group == group) ? TC_LIGHT_BLUE : TC_BLACK; + TextColour colour = (this->selected_sprite_group == group && group != nullptr) ? TC_LIGHT_BLUE : TC_BLACK; if (highlight_tag != 0 && this->selected_highlight_tag == highlight_tag) colour = TC_YELLOW; ::DrawString(r.left + LEFT_OFFSET, r.right - RIGHT_OFFSET, r.top + TOP_OFFSET + (scroll_offset * this->resize.step_height), buf, colour); }); diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index f8aad753fe..f9bf25a3de 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -1621,14 +1621,28 @@ void AnalyseEngineCallbacks() void DumpVehicleSpriteGroup(const Vehicle *v, DumpSpriteGroupPrinter print) { + char buffer[512]; const SpriteGroup *root_spritegroup = nullptr; - if (v->IsGroundVehicle()) root_spritegroup = GetWagonOverrideSpriteSet(v->engine_type, v->cargo_type, v->GetGroundVehicleCache()->first_engine); + if (v->IsGroundVehicle()) { + root_spritegroup = GetWagonOverrideSpriteSet(v->engine_type, v->cargo_type, v->GetGroundVehicleCache()->first_engine); + if (root_spritegroup != nullptr) { + seprintf(buffer, lastof(buffer), "Wagon Override for cargo: %u, engine type: %u", v->cargo_type, v->GetGroundVehicleCache()->first_engine); + print(nullptr, DSGPO_PRINT, 0, buffer); + } + } 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]; + if (e->grf_prop.spritegroup[cargo] != nullptr) { + root_spritegroup = e->grf_prop.spritegroup[cargo]; + seprintf(buffer, lastof(buffer), "Cargo: %u", cargo); + } else { + root_spritegroup = e->grf_prop.spritegroup[CT_DEFAULT]; + seprintf(buffer, lastof(buffer), "CT_DEFAULT"); + } + print(nullptr, DSGPO_PRINT, 0, buffer); } DumpSpriteGroup(root_spritegroup, std::move(print)); }