diff options
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index d04ff396c13..b61f8c7e4b5 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -6900,7 +6900,7 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveyardInZone(WorldLocation con if (conditionObject) { - if (!sConditionMgr->IsObjectMeetToConditions(conditionSource, data.Conditions)) + if (!data.Conditions.Meets(conditionSource)) continue; if (int16(entry->Loc.GetMapId()) == mapEntry->ParentMapID && !conditionObject->GetPhaseShift().HasVisibleMapId(entry->Loc.GetMapId())) @@ -6909,15 +6909,18 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveyardInZone(WorldLocation con else if (team != 0) { bool teamConditionMet = true; - for (Condition const* cond : data.Conditions) + if (std::shared_ptr<std::vector<Condition>> conditions = data.Conditions.Conditions.lock()) { - if (cond->ConditionType != CONDITION_TEAM) - continue; + for (Condition const& cond : *conditions) + { + if (cond.ConditionType != CONDITION_TEAM) + continue; - if (cond->ConditionValue1 == team) - continue; + if (cond.ConditionValue1 == team) + continue; - teamConditionMet = false; + teamConditionMet = false; + } } if (!teamConditionMet) |