aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorOvah <dreadkiller@gmx.de>2020-08-16 12:07:51 +0200
committerGitHub <noreply@github.com>2020-08-16 12:07:51 +0200
commit71db17220ae67dc6a354e88451ffc0700fe6c5f9 (patch)
tree6c7bcf21a1d7f2a9ca1d602990d19188b2abc9ae /src/server/game/Spells/Spell.cpp
parentf4b4425862dab8ea743d9fa52097f7d742984a59 (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.cpp16
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