aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Creature
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-08-20 00:43:03 +0200
committerShauren <shauren.trinity@gmail.com>2013-08-20 00:43:03 +0200
commit75cc4e7b257a0b40b3e83590bf49a1b337aae9fb (patch)
tree206899383716e91c30a070d2b8bd0298e7fc0196 /src/server/game/Entities/Creature
parent8ae88954aa8960adbf58b7ccecff5b740c8bdcbe (diff)
Core/Auras
* Fixed unsafe removal of charm auras, it is now safe to remove them inside AI hooks * Fixes crash in SmartAI::EnterEvadeMode Closes #8679
Diffstat (limited to 'src/server/game/Entities/Creature')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 2af7824cf98..169d5feae03 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -522,12 +522,17 @@ void Creature::Update(uint32 diff)
if (!IsAlive())
break;
- // if creature is charmed, switch to charmed AI
+ // if creature is charmed, switch to charmed AI (and back)
if (NeedChangeAI)
{
UpdateCharmAI();
NeedChangeAI = false;
IsAIEnabled = true;
+ if (!IsInEvadeMode() && LastCharmerGUID)
+ if (Unit* charmer = ObjectAccessor::GetUnit(*this, LastCharmerGUID))
+ i_AI->AttackStart(charmer);
+
+ LastCharmerGUID = 0;
}
if (!IsInEvadeMode() && IsAIEnabled)