aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/AI/CreatureAI.h3
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h
index 63ecf516666..ac8b1d7ea15 100644
--- a/src/server/game/AI/CreatureAI.h
+++ b/src/server/game/AI/CreatureAI.h
@@ -157,6 +157,9 @@ class TC_GAME_API CreatureAI : public UnitAI
void OnCharmed(bool apply) override;
+ // Called when a spell cast gets interrupted
+ virtual void OnSpellCastInterrupt(SpellInfo const* /*spell*/) { }
+
// Called at reaching home after evade
virtual void JustReachedHome() { }
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index a1878130e8c..e3d05356342 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -2932,6 +2932,9 @@ void Unit::InterruptSpell(CurrentSpellTypes spellType, bool withDelayed, bool wi
if (spell->getState() != SPELL_STATE_FINISHED)
spell->cancel();
+ if (GetTypeId() == TYPEID_UNIT && IsAIEnabled)
+ ToCreature()->AI()->OnSpellCastInterrupt(spell->GetSpellInfo());
+
m_currentSpells[spellType] = NULL;
spell->SetReferencedFromCurrent(false);
}