aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Combat/CombatManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Combat/CombatManager.cpp')
-rw-r--r--src/server/game/Combat/CombatManager.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/game/Combat/CombatManager.cpp b/src/server/game/Combat/CombatManager.cpp
index 4a82b5e98b2..96508afa938 100644
--- a/src/server/game/Combat/CombatManager.cpp
+++ b/src/server/game/Combat/CombatManager.cpp
@@ -171,7 +171,7 @@ Unit* CombatManager::GetAnyTarget() const
return nullptr;
}
-bool CombatManager::SetInCombatWith(Unit* who)
+bool CombatManager::SetInCombatWith(Unit* who, bool suppressPvpSecond)
{
// Are we already in combat? If yes, refresh pvp combat
auto it = _pvpRefs.find(who->GetGUID());
@@ -190,7 +190,12 @@ bool CombatManager::SetInCombatWith(Unit* who)
// ...then create new reference
CombatReference* ref;
if (_owner->IsControlledByPlayer() && who->IsControlledByPlayer())
- ref = new PvPCombatReference(_owner, who);
+ {
+ PvPCombatReference* refPvp = new PvPCombatReference(_owner, who);
+ if (suppressPvpSecond)
+ refPvp->SuppressFor(who);
+ ref = refPvp;
+ }
else
ref = new CombatReference(_owner, who);