diff options
| author | Shauren <shauren.trinity@gmail.com> | 2013-08-20 00:43:03 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2013-08-20 00:43:03 +0200 |
| commit | 75cc4e7b257a0b40b3e83590bf49a1b337aae9fb (patch) | |
| tree | 206899383716e91c30a070d2b8bd0298e7fc0196 /src/server/game/Entities/Creature | |
| parent | 8ae88954aa8960adbf58b7ccecff5b740c8bdcbe (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.cpp | 7 |
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) |
