From 18b7199a47ee1ebc767c631f2c91c8e1f680d39c Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 24 Mar 2024 14:39:29 +0100 Subject: Core/Players: Slightly improve neutral player faction support (cherry picked from commit 94b78ebc8b0eb09409d0db36bebfde85a1644fe8) --- src/server/game/Globals/ObjectMgr.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/server/game/Globals/ObjectMgr.cpp') diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index a40f31552f0..b159761a915 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -6671,10 +6671,20 @@ uint32 ObjectMgr::GetNearestTaxiNode(float x, float y, float z, uint32 mapid, ui float dist = 10000; uint32 id = 0; - TaxiNodeFlags requireFlag = (team == ALLIANCE) ? TaxiNodeFlags::ShowOnAllianceMap : TaxiNodeFlags::ShowOnHordeMap; + auto isVisibleForFaction = [&](TaxiNodesEntry const* node) + { + switch (team) + { + case HORDE: return node->GetFlags().HasFlag(TaxiNodeFlags::ShowOnHordeMap); + case ALLIANCE: return node->GetFlags().HasFlag(TaxiNodeFlags::ShowOnAllianceMap); + default: break; + } + return false; + }; + for (TaxiNodesEntry const* node : sTaxiNodesStore) { - if (!node || node->ContinentID != mapid || !node->GetFlags().HasFlag(requireFlag) || node->GetFlags().HasFlag(TaxiNodeFlags::IgnoreForFindNearest)) + if (!node || node->ContinentID != mapid || !isVisibleForFaction(node) || node->GetFlags().HasFlag(TaxiNodeFlags::IgnoreForFindNearest)) continue; uint32 field = uint32((node->ID - 1) / 8); -- cgit v1.2.3