Scritpts/Commands: Fix area name display if no area present. Closes #21727.

(cherry picked from commit 2a50f9202b)
This commit is contained in:
Treeston
2018-08-16 12:43:36 +02:00
committed by Shauren
parent c16164f68d
commit abaf5d8068
3 changed files with 21 additions and 8 deletions

View File

@@ -1676,8 +1676,8 @@ public:
// Position data print
uint32 mapId;
uint32 areaId;
std::string areaName = handler->GetTrinityString(LANG_UNKNOWN);
std::string zoneName = handler->GetTrinityString(LANG_UNKNOWN);
char const* areaName = nullptr;
char const* zoneName = nullptr;
// Guild data print variables defined so that they exist, but are not necessarily used
ObjectGuid::LowType guildId = UI64LIT(0);
@@ -1899,17 +1899,23 @@ public:
AreaTableEntry const* area = sAreaTableStore.LookupEntry(areaId);
if (area)
{
areaName = area->AreaName[handler->GetSessionDbcLocale()];
zoneName = area->AreaName[handler->GetSessionDbcLocale()];
AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->ParentAreaID);
if (zone)
{
areaName = zoneName;
zoneName = zone->AreaName[handler->GetSessionDbcLocale()];
}
}
if (target)
handler->PSendSysMessage(LANG_PINFO_CHR_MAP, map->MapName[handler->GetSessionDbcLocale()],
(!zoneName.empty() ? zoneName.c_str() : handler->GetTrinityString(LANG_UNKNOWN)),
(!areaName.empty() ? areaName.c_str() : handler->GetTrinityString(LANG_UNKNOWN)));
if (!zoneName)
zoneName = handler->GetTrinityString(LANG_UNKNOWN);
if (areaName)
handler->PSendSysMessage(LANG_PINFO_CHR_MAP_WITH_AREA, map->MapName[locale], zoneName, areaName);
else
handler->PSendSysMessage(LANG_PINFO_CHR_MAP, map->MapName[locale], zoneName);
// Output XVII. - XVIX. if they are not empty
if (!guildName.empty())