diff options
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 85ece8f024a..739222a0272 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -511,9 +511,11 @@ public: SpellEvent(Spell* spell); virtual ~SpellEvent(); - virtual bool Execute(uint64 e_time, uint32 p_time) override; - virtual void Abort(uint64 e_time) override; - virtual bool IsDeletable() const override; + bool Execute(uint64 e_time, uint32 p_time) override; + void Abort(uint64 e_time) override; + bool IsDeletable() const override; + Spell const* GetSpell() const { return m_Spell; } + protected: Spell* m_Spell; }; @@ -4880,6 +4882,14 @@ void Spell::HandleEffects(Unit* pUnitTarget, Item* pItemTarget, GameObject* pGOT } } +/*static*/ Spell const* Spell::ExtractSpellFromEvent(BasicEvent* event) +{ + if (SpellEvent* spellEvent = dynamic_cast<SpellEvent*>(event)) + return spellEvent->GetSpell(); + + return nullptr; +} + SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint32* param2 /*= nullptr*/) { // check death state |