diff options
author | Gildor <gildor55@gmail.com> | 2021-11-20 20:48:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-20 21:48:58 +0200 |
commit | 04d54a000fd2629155dfb43db79e5e2023bc84ac (patch) | |
tree | 7feb902d531d7450af5668656ec4503b686cd4c4 /src/server/game/Spells/SpellMgr.cpp | |
parent | e63838f624b28b4fc5fcba2b8c64fced8ef8e11c (diff) |
Core/Auras: Convert most rules from Aura::CanBeSaved to a custom spell attribute (#27191)
(cherry picked from commit b4aa698acb88e1a74bc22d97279148a567b88cad)
(cherry picked from commit 2bea816bbec6ba9d50f7bd6725806e81c6cafaae)
Diffstat (limited to 'src/server/game/Spells/SpellMgr.cpp')
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 404b9d4fac6..ecb2a67010d 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -2673,6 +2673,23 @@ void SpellMgr::LoadSpellInfoCustomAttributes() break; } + switch (spellEffectInfo.ApplyAuraName) + { + case SPELL_AURA_CONVERT_RUNE: // Can't be saved - aura handler relies on calculated amount and changes it + case SPELL_AURA_OPEN_STABLE: // No point in saving this, since the stable dialog can't be open on aura load anyway. + // Auras that require both caster & target to be in world cannot be saved + case SPELL_AURA_CONTROL_VEHICLE: + case SPELL_AURA_BIND_SIGHT: + case SPELL_AURA_MOD_POSSESS: + case SPELL_AURA_MOD_POSSESS_PET: + case SPELL_AURA_MOD_CHARM: + case SPELL_AURA_AOE_CHARM: + spellInfo->AttributesCu |= SPELL_ATTR0_CU_AURA_CANNOT_BE_SAVED; + break; + default: + break; + } + switch (spellEffectInfo.Effect) { case SPELL_EFFECT_SCHOOL_DAMAGE: @@ -2949,7 +2966,7 @@ void SpellMgr::LoadSpellInfoCustomAttributes() { if (uint32 spellId = liquid->SpellID) if (SpellInfo* spellInfo = _GetSpellInfo(spellId)) - spellInfo->AttributesCu |= SPELL_ATTR0_CU_LIQUID_AURA; + spellInfo->AttributesCu |= SPELL_ATTR0_CU_AURA_CANNOT_BE_SAVED; } TC_LOG_INFO("server.loading", ">> Loaded SpellInfo custom attributes in %u ms", GetMSTimeDiffToNow(oldMSTime)); |