diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-08-23 14:33:28 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2018-08-23 16:34:42 +0200 |
commit | 042f5515e4f3e52b0d2e23d9b9e147041849ce12 (patch) | |
tree | e9bd421089edfd6098a96300393d086875f9a054 /src/server/game/AI/CreatureAI.cpp | |
parent | 0e4a49b0a4c86eb4a2d0d128e24bc8aaabb47e31 (diff) |
Core/AI: Clean up charm AI handling, we now have two unique_ptr instead of a crapton of booleans
Diffstat (limited to 'src/server/game/AI/CreatureAI.cpp')
-rw-r--r-- | src/server/game/AI/CreatureAI.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp index 7b6615f36f1..d322a7d9597 100644 --- a/src/server/game/AI/CreatureAI.cpp +++ b/src/server/game/AI/CreatureAI.cpp @@ -33,12 +33,14 @@ #include "World.h" //Disable CreatureAI when charmed -void CreatureAI::OnCharmed(bool apply) +void CreatureAI::OnCharmed(bool isNew) { - if (apply) + if (isNew && !me->IsCharmed() && me->LastCharmerGUID) { - me->NeedChangeAI = true; - me->IsAIEnabled = false; + if (!me->HasReactState(REACT_PASSIVE)) + if (Unit* lastCharmer = ObjectAccessor::GetUnit(*me, me->LastCharmerGUID)) + me->EngageWithTarget(lastCharmer); + me->LastCharmerGUID.Clear(); } } |