diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-10-03 16:36:39 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-10-03 16:36:39 +0200 |
commit | 555b2d40ecc22eb0ea4bf913b534ffa7197fa6fe (patch) | |
tree | 8aa39c7f9314d4958c17c652b15a1f73458682d9 /src/server/game/Spells/SpellDefines.h | |
parent | 0146eefee4fb8d72f02dee353af49af740db3973 (diff) |
Core/Spells: Send OriginalCastId in SMSG_SPELL_START and SMSG_SPELL_GO for triggered spells in 'game' project
Diffstat (limited to 'src/server/game/Spells/SpellDefines.h')
-rw-r--r-- | src/server/game/Spells/SpellDefines.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/server/game/Spells/SpellDefines.h b/src/server/game/Spells/SpellDefines.h index d26f0e5ab7e..1c291da669e 100644 --- a/src/server/game/Spells/SpellDefines.h +++ b/src/server/game/Spells/SpellDefines.h @@ -257,15 +257,16 @@ 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(AuraEffect const* eff) : TriggerFlags(TRIGGERED_FULL_MASK), TriggeringAura(eff) {} + 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& SetTriggeringAura(AuraEffect const* triggeringAura) { TriggeringAura = triggeringAura; return *this; } + CastSpellExtraArgs& SetTriggeringAura(AuraEffect const* triggeringAura); CastSpellExtraArgs& SetOriginalCaster(ObjectGuid const& guid) { OriginalCaster = guid; return *this; } CastSpellExtraArgs& SetCastDifficulty(Difficulty castDifficulty) { CastDifficulty = castDifficulty; return *this; } + CastSpellExtraArgs& SetOriginalCastId(ObjectGuid const& castId) { OriginalCastId = castId; return *this; } CastSpellExtraArgs& AddSpellMod(SpellValueMod mod, int32 val) { SpellValueOverrides.AddMod(mod, val); return *this; } CastSpellExtraArgs& AddSpellBP0(int32 val) { return AddSpellMod(SPELLVALUE_BASE_POINT0, val); } // because i don't want to type SPELLVALUE_BASE_POINT0 300 times @@ -274,18 +275,19 @@ struct TC_GAME_API CastSpellExtraArgs AuraEffect const* TriggeringAura = nullptr; ObjectGuid OriginalCaster = ObjectGuid::Empty; Difficulty CastDifficulty = Difficulty(0); + ObjectGuid OriginalCastId = ObjectGuid::Empty; struct { friend struct CastSpellExtraArgs; friend class WorldObject; - private: - void AddMod(SpellValueMod mod, int32 val) { data.push_back({ mod, val }); } + private: + void AddMod(SpellValueMod mod, int32 val) { data.push_back({ mod, val }); } - auto begin() const { return data.cbegin(); } - auto end() const { return data.cend(); } + auto begin() const { return data.cbegin(); } + auto end() const { return data.cend(); } - std::vector<std::pair<SpellValueMod, int32>> data; + std::vector<std::pair<SpellValueMod, int32>> data; } SpellValueOverrides; }; |