aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQAston <none@none>2009-04-15 20:58:39 +0200
committerQAston <none@none>2009-04-15 20:58:39 +0200
commit8ca97f7bcbb7cc8d20eeefe2ee3c6646542ae6cb (patch)
treea7a3ea000ac523ef1111b5bc909ef141a7e7c958
parentfcbdb1012212fee36f67dee764efb089f4e40584 (diff)
Backed out changeset 77ac33a3948b - it caused problems with some channeled spells (interruption)
--HG-- branch : trunk
-rw-r--r--src/game/Player.cpp1
-rw-r--r--src/game/Spell.cpp7
-rw-r--r--src/game/SpellAuras.cpp3
-rw-r--r--src/game/Unit.h8
4 files changed, 8 insertions, 11 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index ae14d5ebc30..e8b7aa6c8d1 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -3240,6 +3240,7 @@ void Player::_LoadSpellCooldowns(QueryResult *result)
// some cooldowns can be already set at aura loading...
//QueryResult *result = CharacterDatabase.PQuery("SELECT spell,item,time FROM character_spell_cooldown WHERE guid = '%u'",GetGUIDLow());
+
if(result)
{
time_t curTime = time(NULL);
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index f14cc6b5ed3..41d01772c50 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1100,8 +1100,8 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask)
}
unit->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_HITBYSPELL);
- //if(m_customAttr & SPELL_ATTR_CU_AURA_CC)
- //unit->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_CC);
+ if(m_customAttr & SPELL_ATTR_CU_AURA_CC)
+ unit->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_CC);
}
else
{
@@ -2209,9 +2209,6 @@ void Spell::prepare(SpellCastTargets const* targets, AuraEffect* triggeredByAura
if(isSpellBreakStealth(m_spellInfo) )
m_caster->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_CAST);
- if(!m_IsTriggeredSpell)
- m_caster->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ANY_CAST);
-
m_caster->SetCurrentCastedSpell( this );
m_selfContainer = &(m_caster->m_currentSpells[GetCurrentContainer()]);
SendSpellStart();
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 955539b4c53..5fedc013188 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -935,8 +935,7 @@ void Aura::_AddAura()
// set infinity cooldown state for spells
if(caster && caster->GetTypeId() == TYPEID_PLAYER)
{
- // Do not apply cooldown for caster passive spells (needed by Reincarnation)
- if (!(caster->HasSpell(GetId()) && IsPassive()) && !(m_spellProto->Attributes & SPELL_ATTR_DISABLED_WHILE_ACTIVE))
+ if (m_spellProto->Attributes & SPELL_ATTR_DISABLED_WHILE_ACTIVE)
{
Item* castItem = m_castItemGuid ? ((Player*)caster)->GetItemByGuid(m_castItemGuid) : NULL;
((Player*)caster)->AddSpellAndCategoryCooldowns(m_spellProto,castItem ? castItem->GetEntry() : 0, NULL,true);
diff --git a/src/game/Unit.h b/src/game/Unit.h
index 17e5abb10a0..ace61563c0f 100644
--- a/src/game/Unit.h
+++ b/src/game/Unit.h
@@ -59,9 +59,9 @@ enum SpellChannelInterruptFlags
enum SpellAuraInterruptFlags
{
- AURA_INTERRUPT_FLAG_ANY_CAST = 0x00000001, // 0 removed by any cast
+ AURA_INTERRUPT_FLAG_HITBYSPELL = 0x00000001, // 0 removed when getting hit by a negative spell?
AURA_INTERRUPT_FLAG_DAMAGE = 0x00000002, // 1 removed by any damage
- AURA_INTERRUPT_FLAG_HITBYSPELL = 0x00000004, // 2 removed when getting hit by a negative spell? aoe damage?
+ AURA_INTERRUPT_FLAG_CC = 0x00000004, // 2 crowd control
AURA_INTERRUPT_FLAG_MOVE = 0x00000008, // 3 removed by any movement
AURA_INTERRUPT_FLAG_TURNING = 0x00000010, // 4 removed by any turning
AURA_INTERRUPT_FLAG_JUMP = 0x00000020, // 5 removed by entering combat
@@ -71,8 +71,8 @@ enum SpellAuraInterruptFlags
AURA_INTERRUPT_FLAG_NOT_SHEATHED = 0x00000200, // 9 removed by unsheathing
AURA_INTERRUPT_FLAG_TALK = 0x00000400, // 10 talk to npc / loot? action on creature
AURA_INTERRUPT_FLAG_USE = 0x00000800, // 11 mine/use/open action on gameobject
- AURA_INTERRUPT_FLAG_ATTACK = 0x00001000, // 12 removed by attacking (negative spell cast?)
- AURA_INTERRUPT_FLAG_CAST = 0x00002000, // 13 cast stealth breaking spell
+ AURA_INTERRUPT_FLAG_ATTACK = 0x00001000, // 12 removed by attacking
+ AURA_INTERRUPT_FLAG_CAST = 0x00002000, // 13 ???
AURA_INTERRUPT_FLAG_UNK14 = 0x00004000, // 14
AURA_INTERRUPT_FLAG_TRANSFORM = 0x00008000, // 15 removed by transform?
AURA_INTERRUPT_FLAG_UNK16 = 0x00010000, // 16