diff options
author | Shocker <none@none> | 2010-10-16 17:44:42 +0300 |
---|---|---|
committer | Shocker <none@none> | 2010-10-16 17:44:42 +0300 |
commit | c2295e86be870a85c32debd61432d16f44211fbd (patch) | |
tree | d5e88d5e4f89a477ab88277701e6b8650acb952d /src | |
parent | 60fea600bc69cb44efaca337676b6c5b9034e8cb (diff) |
Core/Spells: Move hacky check for spec changing to its correct location
--HG--
branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 5 | ||||
-rwxr-xr-x | src/server/game/Spells/SpellEffects.cpp | 8 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ea06570c68f..d5c9c6d6d94 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -24059,11 +24059,6 @@ void Player::ActivateSpec(uint8 spec) if (spec > GetSpecsCount()) return; - // TODO: - // HACK: this shouldn't be checked at such a low level function but rather at the moment the spell is casted - if (GetMap()->IsBattleground() && !HasAura(44521)) // In Battleground with no Preparation buff - return; - if (IsNonMeleeSpellCasted(false)) InterruptNonMeleeSpells(false); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 0f34ea7a553..af04f408aad 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -6933,6 +6933,14 @@ void Spell::EffectSpecCount(SpellEffIndex /*effIndex*/) void Spell::EffectActivateSpec(SpellEffIndex /*effIndex*/) { + // can't change during already started arena/battleground + if (Battleground const* bg = m_caster->ToPlayer()->GetBattleground()) + if (bg->GetStatus() == STATUS_IN_PROGRESS) + { + SendCastResult(SPELL_FAILED_NOT_IN_BATTLEGROUND); + return; + } + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) return; |