diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-09-06 21:55:19 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-09-06 21:55:19 +0200 |
| commit | be75ddc2bd99045e53523a06707526b233fd0c32 (patch) | |
| tree | 276a4b9c1acd7c14e78540585efa743ef453b682 /src/server/game/Spells/SpellInfo.cpp | |
| parent | d25c2e7f5b6ac7bb79960037cc728a46450d5609 (diff) | |
| parent | bc1a079b6ca2516d80f3eed5b911971b77cabce4 (diff) | |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/game/Achievements/AchievementMgr.cpp
src/server/game/Spells/SpellMgr.cpp
src/server/scripts/Commands/cs_npc.cpp
Diffstat (limited to 'src/server/game/Spells/SpellInfo.cpp')
| -rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 4254be1c968..5e8bfe81f86 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1170,14 +1170,12 @@ bool SpellInfo::NeedsExplicitUnitTarget() const return GetExplicitTargetMask() & TARGET_FLAG_UNIT_MASK; } -bool SpellInfo::NeedsToBeTriggeredByCaster() const +bool SpellInfo::NeedsToBeTriggeredByCaster(SpellInfo const* triggeringSpell) const { - if (AttributesCu & SPELL_ATTR0_CU_TRIGGERED_BY_CASTER) - return true; - if (NeedsExplicitUnitTarget()) return true; + /* for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) { if (Effects[i].IsEffect()) @@ -1187,6 +1185,20 @@ bool SpellInfo::NeedsToBeTriggeredByCaster() const return true; } } + */ + + if (triggeringSpell->IsChanneled()) + { + uint32 mask = 0; + for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) + { + if (Effects[i].TargetA.GetTarget() != TARGET_UNIT_CASTER && Effects[i].TargetA.GetTarget() != TARGET_DEST_CASTER) + mask |= Effects[i].GetProvidedTargetMask(); + } + + if (mask & TARGET_FLAG_UNIT_MASK) + return true; + } return false; } |
