From 0ce96adb7a8ae29a577cce268c8bd3742253cf69 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 6 Oct 2023 20:22:14 +0200 Subject: Core/Objects: Treat areas that have ParentAreaID filled but dont have IsSubzone flag as zones instead of areas --- src/server/game/Entities/Object/Object.cpp | 2 +- src/server/game/Entities/Player/Player.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src/server/game/Entities') diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 3678284124f..1a141a7203d 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -992,7 +992,7 @@ void WorldObject::ProcessPositionDataChanged(PositionFullTerrainStatus const& da { m_zoneId = m_areaId = data.areaId; if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(m_areaId)) - if (area->ParentAreaID) + if (area->ParentAreaID && area->GetFlags().HasFlag(AreaFlags::IsSubzone)) m_zoneId = area->ParentAreaID; m_outdoors = data.outdoors; m_staticFloorZ = data.floorZ; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 9184adfb473..c49a21ead31 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -29006,8 +29006,9 @@ std::string Player::GetMapAreaAndZoneString() const if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(areaId)) { areaName = area->AreaName[GetSession()->GetSessionDbcLocale()]; - if (AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->ParentAreaID)) - zoneName = zone->AreaName[GetSession()->GetSessionDbcLocale()]; + if (area->GetFlags().HasFlag(AreaFlags::IsSubzone)) + if (AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->ParentAreaID)) + zoneName = zone->AreaName[GetSession()->GetSessionDbcLocale()]; } std::ostringstream str; -- cgit v1.2.3