diff options
author | ariel- <ariel-@users.noreply.github.com> | 2016-12-29 03:34:54 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2016-12-29 03:34:54 -0300 |
commit | 584d347b70be521d7431dfe1694b80f2e95b957b (patch) | |
tree | cb123a68079a689dcfc5a7eb1c5a11cf9bd0a6ce /src/server/game/Spells/SpellInfo.cpp | |
parent | 0bb1c03fbf3d2253d18873600cfb10d2f54825c6 (diff) |
Core/Spell: Prevent NO_TARGET auras from actually selecting target (same as caster)
- Fixes an issue with generic mount scripts where the dummy aura was applied and removed then the real mount was applied
- Pets would be unsummoned, resummoned and unsummoned again in an instant
Closes #16783
Diffstat (limited to 'src/server/game/Spells/SpellInfo.cpp')
-rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 8394ca71103..1166902b8a8 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -561,7 +561,9 @@ uint32 SpellEffectInfo::GetProvidedTargetMask() const uint32 SpellEffectInfo::GetMissingTargetMask(bool srcSet /*= false*/, bool dstSet /*= false*/, uint32 mask /*=0*/) const { uint32 effImplicitTargetMask = GetTargetFlagMask(GetUsedTargetObjectType()); - uint32 providedTargetMask = GetTargetFlagMask(TargetA.GetObjectType()) | GetTargetFlagMask(TargetB.GetObjectType()) | mask; + uint32 providedTargetMask = GetProvidedTargetMask() | mask; + if (!providedTargetMask) // no targets to select + return 0; // remove all flags covered by effect target mask if (providedTargetMask & TARGET_FLAG_UNIT_MASK) |