aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-03-24 14:39:29 +0100
committerShauren <shauren.trinity@gmail.com>2024-03-24 17:19:10 +0100
commit94b78ebc8b0eb09409d0db36bebfde85a1644fe8 (patch)
treea948fed605007b2fb3c19c883b26da7eb0ef266d /src/server/game/Globals/ObjectMgr.cpp
parentaac5581bfce1955d5f483521bf77d3d97397d201 (diff)
Core/Players: Slightly improve neutral player faction support
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index d460826685f..4fc19ea821c 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -6656,10 +6656,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);