aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Taxi
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/Entities/Taxi
parentaac5581bfce1955d5f483521bf77d3d97397d201 (diff)
Core/Players: Slightly improve neutral player faction support
Diffstat (limited to 'src/server/game/Entities/Taxi')
-rw-r--r--src/server/game/Entities/Taxi/TaxiPathGraph.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp
index 2ef20331ff0..a5395bbdc68 100644
--- a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp
+++ b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp
@@ -33,8 +33,17 @@ struct EdgeCost
uint32 Distance;
uint32 EvaluateDistance(Player const* player) const
{
- TaxiNodeFlags requireFlag = (player->GetTeam() == ALLIANCE) ? TaxiNodeFlags::ShowOnAllianceMap : TaxiNodeFlags::ShowOnHordeMap;
- if (!To->GetFlags().HasFlag(requireFlag))
+ bool isVisibleForFaction = [&]
+ {
+ switch (player->GetTeam())
+ {
+ case HORDE: return To->GetFlags().HasFlag(TaxiNodeFlags::ShowOnHordeMap);
+ case ALLIANCE: return To->GetFlags().HasFlag(TaxiNodeFlags::ShowOnAllianceMap);
+ default: break;
+ }
+ return false;
+ }();
+ if (!isVisibleForFaction)
return std::numeric_limits<uint16>::max();
if (PlayerConditionEntry const* condition = sPlayerConditionStore.LookupEntry(To->ConditionID))