aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXanadu <none@none>2010-06-23 03:45:44 +0200
committerXanadu <none@none>2010-06-23 03:45:44 +0200
commit05976b7708cf5e4ffe9fc70d0b530d31c9a96665 (patch)
tree66f1c76612a9b846600254accbe833dc9da6c0db
parent71d47b384f35b3b51aa651b74332b9e80d4ba3fb (diff)
Fixed Divine Hymn, Hymn of Hope, Dispersion and Amplify Magic being erroneously displayed as debuffs, instead of buffs. Based on previous thenecromancer's implementation.
--HG-- branch : trunk
-rw-r--r--src/server/game/Spells/SpellMgr.cpp44
1 files changed, 33 insertions, 11 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index ee59e2821af..f89a0650729 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -750,20 +750,42 @@ bool SpellMgr::_isPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) con
if (spellproto->Attributes & SPELL_ATTR_NEGATIVE_1)
return false;
- switch(spellId)
+ switch (spellproto->SpellFamilyName)
{
- //case 37675: // Chaos Blast removed from mangos
- case 34700: // Allergic Reaction
- case 61987: // Avenging Wrath Marker
- case 61988: // Divine Shield exclude aura
- case 50524: // Runic Power Feed
- return false;
- case 12042: // Arcane Power
- case 30877: // Tag Murloc
- return true;
+ case SPELLFAMILY_GENERIC:
+ switch (spellId)
+ {
+ case 34700: // Allergic Reaction
+ case 61987: // Avenging Wrath Marker
+ case 61988: // Divine Shield exclude aura
+ return false;
+ case 30877: // Tag Murloc
+ return true;
+ default:
+ break;
+ }
+ break;
+ case SPELLFAMILY_MAGE:
+ // Amplify Magic, Dampen Magic
+ if (spellproto->SpellFamilyFlags[0] == 0x00002000)
+ return true;
+ break;
+ case SPELLFAMILY_PRIEST:
+ switch (spellId)
+ {
+ case 64844: // Divine Hymn
+ case 64904: // Hymn of Hope
+ case 47585: // Dispersion
+ return true;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
}
- switch(spellproto->Mechanic)
+ switch (spellproto->Mechanic)
{
case MECHANIC_IMMUNE_SHIELD:
return true;