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

(cherry picked from commit 584d347b70be521d7431dfe1694b80f2e95b957b)
This commit is contained in:
ariel-
2018-03-18 00:19:43 +01:00
committed by DoctorKraft
parent 18b4e5d4bd
commit b03a2c3736
+3 -1
View File
@@ -691,7 +691,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)