aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorShauren <none@none>2010-07-21 12:14:23 +0200
committerShauren <none@none>2010-07-21 12:14:23 +0200
commit6a539270ec9447b19c9a08d8f4d867cdc9208a0c (patch)
tree205a0ba10028f12e90bcc0695ccb6612e2c52317 /src/server/game/Spells/Spell.cpp
parent0bda7fd36112c47e073411ba10653d35c052b205 (diff)
Added global disable system and moved all disable fields/tables/configs into it
NOTE: instance disables were not converted for new system! if you had some then you need to fix that using new system --HG-- branch : trunk
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp30
1 files changed, 6 insertions, 24 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 052c829676b..28248b97c96 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -51,6 +51,7 @@
#include "SpellAuraEffects.h"
#include "ScriptMgr.h"
#include "ConditionMgr.h"
+#include "DisableMgr.h"
#define SPELL_CHANNEL_UPDATE_INTERVAL (1 * IN_MILLISECONDS)
@@ -2740,31 +2741,12 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect const * triggere
finish(false);
return;
}
- if (m_caster->GetTypeId() == TYPEID_PLAYER)
- {
- if (objmgr.IsPlayerSpellDisabled(m_spellInfo->Id))
- {
- SendCastResult(SPELL_FAILED_SPELL_UNAVAILABLE);
- finish(false);
- return;
- }
- }
- else if (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->ToCreature()->isPet())
- {
- if (objmgr.IsPetSpellDisabled(m_spellInfo->Id))
- {
- SendCastResult(SPELL_FAILED_SPELL_UNAVAILABLE);
- finish(false);
- return;
- }
- }
- else
+
+ if (sDisableMgr.IsDisabledFor(DISABLE_TYPE_SPELL, m_spellInfo->Id, m_caster))
{
- if (objmgr.IsCreatureSpellDisabled(m_spellInfo->Id))
- {
- finish(false);
- return;
- }
+ SendCastResult(SPELL_FAILED_SPELL_UNAVAILABLE);
+ finish(false);
+ return;
}
if (m_caster->GetTypeId() == TYPEID_PLAYER)