aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 1be089e66bc..02e6f8fd440 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -10455,20 +10455,22 @@ void Unit::SetInCombatWith(Unit* enemy)
SetInCombatState(false,enemy);
}
-void Unit::CombatStart(Unit* target)
+void Unit::CombatStart(Unit* target, bool initialAggro)
{
- if(!target->IsStandState()/* && !target->hasUnitState(UNIT_STAT_STUNNED)*/)
- target->SetStandState(UNIT_STAND_STATE_STAND);
-
- if(!target->isInCombat() && target->GetTypeId() != TYPEID_PLAYER
- && !((Creature*)target)->HasReactState(REACT_PASSIVE) && ((Creature*)target)->IsAIEnabled)
+ if (initialAggro)
{
- ((Creature*)target)->AI()->AttackStart(this);
- }
+ if(!target->IsStandState()/* && !target->hasUnitState(UNIT_STAT_STUNNED)*/)
+ target->SetStandState(UNIT_STAND_STATE_STAND);
- SetInCombatWith(target);
- target->SetInCombatWith(this);
+ if(!target->isInCombat() && target->GetTypeId() != TYPEID_PLAYER
+ && !((Creature*)target)->HasReactState(REACT_PASSIVE) && ((Creature*)target)->IsAIEnabled)
+ {
+ ((Creature*)target)->AI()->AttackStart(this);
+ }
+ SetInCombatWith(target);
+ target->SetInCombatWith(this);
+ }
Unit *who = target->GetCharmerOrOwnerOrSelf();
if(who->GetTypeId() == TYPEID_PLAYER)
SetContestedPvP((Player*)who);