aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShocker <none@none>2010-10-16 17:44:42 +0300
committerShocker <none@none>2010-10-16 17:44:42 +0300
commitc2295e86be870a85c32debd61432d16f44211fbd (patch)
treed5e88d5e4f89a477ab88277701e6b8650acb952d
parent60fea600bc69cb44efaca337676b6c5b9034e8cb (diff)
Core/Spells: Move hacky check for spec changing to its correct location
--HG-- branch : trunk
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp5
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp8
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;