From e4c4b6f4298c68ed7c70c7970e76968329a2d1a2 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Sun, 5 Apr 2026 04:32:10 -0700 Subject: [PATCH] fix(ui): use display name from Map.dbc field 4 instead of internal name Was reading field 2 (InstanceType) which fell back to field 1 (internal name like "Azeroth"). Field 4 has the localized display name ("Eastern Kingdoms"). --- src/game/game_handler.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 3f8bd0f4..0c47c46f 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -7091,11 +7091,12 @@ void GameHandler::loadMapNameCache() const { auto dbc = am->loadDBC("Map.dbc"); if (!dbc || !dbc->isLoaded()) return; + // Map.dbc layout: 0=ID, 1=InternalName, 2=InstanceType, 3=Flags, + // 4=MapName_enUS (display name), fields 5+ = other locales for (uint32_t i = 0; i < dbc->getRecordCount(); ++i) { uint32_t id = dbc->getUInt32(i, 0); - // Field 2 = MapName_enUS (first localized); field 1 = InternalName fallback - std::string name = dbc->getString(i, 2); - if (name.empty()) name = dbc->getString(i, 1); + std::string name = dbc->getString(i, 4); + if (name.empty()) name = dbc->getString(i, 1); // internal name fallback if (!name.empty() && !mapNameCache_.count(id)) { mapNameCache_[id] = std::move(name); }