diff options
author | Ovah <dreadkiller@gmx.de> | 2020-08-16 12:07:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-16 12:07:51 +0200 |
commit | 71db17220ae67dc6a354e88451ffc0700fe6c5f9 (patch) | |
tree | 6c7bcf21a1d7f2a9ca1d602990d19188b2abc9ae /src/server/game/Spells/Spell.cpp | |
parent | f4b4425862dab8ea743d9fa52097f7d742984a59 (diff) |
Core/Spells: enable and implement SMSG_MISSILE_CANCEL (#25215)
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 |