aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellMgr.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-24 19:12:22 -0500
committermegamage <none@none>2009-08-24 19:12:22 -0500
commit8871c2952ae13a814da3f42f72b7f32371a7556a (patch)
treed7898e0bdf235181830aa7e4ec0f5eb3627458ad /src/game/SpellMgr.cpp
parent978d139932955fd8657f396f4774578bdaf337c9 (diff)
*Some better check of well-fed buff. Source: Mangos
--HG-- branch : trunk
Diffstat (limited to 'src/game/SpellMgr.cpp')
-rw-r--r--src/game/SpellMgr.cpp34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index c0a1d4bdd37..d9a5aec6529 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -472,7 +472,7 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
//food/drink
if (spellInfo->AuraInterruptFlags & AURA_INTERRUPT_FLAG_NOT_SEATED)
{
- for(int i = 0; i < 3; i++)
+ for(int i = 0; i < 3; ++i)
if( spellInfo->EffectApplyAuraName[i] == SPELL_AURA_MOD_POWER_REGEN
|| spellInfo->EffectApplyAuraName[i] == SPELL_AURA_OBS_MOD_ENERGY)
return SPELL_DRINK;
@@ -480,10 +480,14 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
|| spellInfo->EffectApplyAuraName[i] == SPELL_AURA_OBS_MOD_HEALTH)
return SPELL_FOOD;
}
- // this may be a hack
- else if((spellInfo->AttributesEx2 & SPELL_ATTR_EX2_FOOD)
- && !spellInfo->Category)
+ // Well Fed buffs (must be exclusive with Food / Drink replenishment effects, or else Well Fed will cause them to be removed)
+ // SpellIcon 2560 is Spell 46687, does not have this flag
+ else if (spellInfo->AttributesEx2 & SPELL_ATTR_EX2_FOOD_BUFF || spellInfo->SpellIconID == 2560)
return SPELL_WELL_FED;
+ // this may be a hack
+ //else if((spellInfo->AttributesEx2 & SPELL_ATTR_EX2_FOOD_BUFF)
+ // && !spellInfo->Category)
+ // return SPELL_WELL_FED;
// scrolls effects
else
{
@@ -519,14 +523,6 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
break;
}
- case SPELLFAMILY_PRIEST:
- {
- // Divine Spirit and Prayer of Spirit
- if (spellInfo->SpellFamilyFlags[0] & 0x20)
- return SPELL_PRIEST_DIVINE_SPIRIT;
-
- break;
- }
case SPELLFAMILY_WARRIOR:
{
if (spellInfo->SpellFamilyFlags[1] & 0x000080 || spellInfo->SpellFamilyFlags[0] & 0x10000)
@@ -551,6 +547,20 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
return SPELL_WARLOCK_CORRUPTION;
break;
}
+ case SPELLFAMILY_PRIEST:
+ {
+ // "Well Fed" buff from Blessed Sunfruit, Blessed Sunfruit Juice, Alterac Spring Water
+ if ((spellInfo->Attributes & SPELL_ATTR_CASTABLE_WHILE_SITTING) &&
+ (spellInfo->InterruptFlags & SPELL_INTERRUPT_FLAG_AUTOATTACK) &&
+ (spellInfo->SpellIconID == 52 || spellInfo->SpellIconID == 79))
+ return SPELL_WELL_FED;
+
+ // Divine Spirit and Prayer of Spirit
+ if (spellInfo->SpellFamilyFlags[0] & 0x20)
+ return SPELL_PRIEST_DIVINE_SPIRIT;
+
+ break;
+ }
case SPELLFAMILY_HUNTER:
{
// only hunter stings have this