aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-01-09 14:42:35 +0100
committerShauren <shauren.trinity@gmail.com>2022-01-09 14:42:35 +0100
commit5f0f9e6875cda744e9d70b858190825b97d1f047 (patch)
treef80efc572623952f253de842080667689c0234d1
parent60539d2e24ccb46c8ea144b755614a76971f72bd (diff)
Core/Spells: Added Spell const* constructor overload to CastSpellExtraArgs
-rw-r--r--src/server/game/Spells/Spell.cpp6
-rw-r--r--src/server/game/Spells/SpellDefines.h3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index aa290851a7a..8a3c26bd7b2 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -8687,6 +8687,12 @@ CastSpellTargetArg::CastSpellTargetArg(WorldObject* target)
}
}
+CastSpellExtraArgs& CastSpellExtraArgs::SetTriggeringSpell(Spell const* triggeringSpell)
+{
+ OriginalCastId = triggeringSpell->m_castId;
+ return *this;
+}
+
CastSpellExtraArgs& CastSpellExtraArgs::SetTriggeringAura(AuraEffect const* triggeringAura)
{
TriggeringAura = triggeringAura;
diff --git a/src/server/game/Spells/SpellDefines.h b/src/server/game/Spells/SpellDefines.h
index 5c08a658842..94991f10c7d 100644
--- a/src/server/game/Spells/SpellDefines.h
+++ b/src/server/game/Spells/SpellDefines.h
@@ -30,6 +30,7 @@ class Corpse;
class GameObject;
class Item;
class Player;
+class Spell;
class Unit;
class WorldObject;
enum Difficulty : uint8;
@@ -436,12 +437,14 @@ struct TC_GAME_API CastSpellExtraArgs
CastSpellExtraArgs(bool triggered) : TriggerFlags(triggered ? TRIGGERED_FULL_MASK : TRIGGERED_NONE) {}
CastSpellExtraArgs(TriggerCastFlags trigger) : TriggerFlags(trigger) {}
CastSpellExtraArgs(Item* item) : TriggerFlags(TRIGGERED_FULL_MASK), CastItem(item) {}
+ CastSpellExtraArgs(Spell const* triggeringSpell) : TriggerFlags(TRIGGERED_FULL_MASK) { SetTriggeringSpell(triggeringSpell); }
CastSpellExtraArgs(AuraEffect const* eff) : TriggerFlags(TRIGGERED_FULL_MASK) { SetTriggeringAura(eff); }
CastSpellExtraArgs(Difficulty castDifficulty) : CastDifficulty(castDifficulty) {}
CastSpellExtraArgs(SpellValueMod mod, int32 val) { SpellValueOverrides.AddMod(mod, val); }
CastSpellExtraArgs& SetTriggerFlags(TriggerCastFlags flag) { TriggerFlags = flag; return *this; }
CastSpellExtraArgs& SetCastItem(Item* item) { CastItem = item; return *this; }
+ CastSpellExtraArgs& SetTriggeringSpell(Spell const* triggeringSpell);
CastSpellExtraArgs& SetTriggeringAura(AuraEffect const* triggeringAura);
CastSpellExtraArgs& SetOriginalCaster(ObjectGuid const& guid) { OriginalCaster = guid; return *this; }
CastSpellExtraArgs& SetCastDifficulty(Difficulty castDifficulty) { CastDifficulty = castDifficulty; return *this; }