diff options
| author | Shauren <shauren.trinity@gmail.com> | 2013-03-03 23:15:54 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2013-03-03 23:15:54 +0100 |
| commit | bed73397b6bb288388d6b069af75361d5c45613c (patch) | |
| tree | 07c0947ca3cd7840d0f439a0ea87e9e63d45be38 /src/server/game/Spells/Spell.cpp | |
| parent | 600e7e8cfb3f9e67de840dcc055e2754e4fead85 (diff) | |
Core/Spells: Improved facing setting for creature casts
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 6f1aa6e38ad..668bf65fb17 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3072,8 +3072,8 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const* triggered // set target for proper facing if ((m_casttime || m_spellInfo->IsChanneled()) && !(_triggeredCastFlags & TRIGGERED_IGNORE_SET_FACING)) - if (m_caster->GetGUID() != m_targets.GetObjectTargetGUID() && m_caster->GetTypeId() == TYPEID_UNIT) - m_caster->FocusTarget(this, m_targets.GetObjectTargetGUID()); + if (m_caster->GetTypeId() == TYPEID_UNIT && m_targets.GetObjectTarget() && m_caster != m_targets.GetObjectTarget()) + m_caster->FocusTarget(this, m_targets.GetObjectTarget()); if (!(_triggeredCastFlags & TRIGGERED_IGNORE_GCD)) TriggerGlobalCooldown(); @@ -3165,10 +3165,12 @@ void Spell::cast(bool skipCheck) if (playerPet->isAlive() && playerPet->isControlled() && (m_targets.GetTargetMask() & TARGET_FLAG_UNIT)) playerPet->AI()->OwnerAttacked(m_targets.GetObjectTarget()->ToUnit()); } + SetExecutedCurrently(true); - if (m_caster->GetTypeId() != TYPEID_PLAYER && m_targets.GetUnitTarget() && m_targets.GetUnitTarget() != m_caster) - m_caster->SetInFront(m_targets.GetUnitTarget()); + if (!(_triggeredCastFlags & TRIGGERED_IGNORE_SET_FACING)) + if (m_caster->GetTypeId() == TYPEID_UNIT && m_targets.GetObjectTarget() && m_caster != m_targets.GetObjectTarget()) + m_caster->SetInFront(m_targets.GetObjectTarget()); // Should this be done for original caster? if (m_caster->GetTypeId() == TYPEID_PLAYER) |
