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
committerfunjoker <funjoker109@gmail.com>2024-03-28 20:23:12 +0100
commit18b7199a47ee1ebc767c631f2c91c8e1f680d39c (patch)
tree8ca9a4621e5f0a8568faa8859b2718f694cf7c0e /src/server/game/Globals/ObjectMgr.cpp
parent98cb0b4eaf7b66ae797dfb3c92c586adbc3ced6c (diff)
Core/Players: Slightly improve neutral player faction support
(cherry picked from commit 94b78ebc8b0eb09409d0db36bebfde85a1644fe8)
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 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);