aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/PetHandler.cpp2
-rw-r--r--src/game/SpellMgr.cpp12
-rw-r--r--src/game/SpellMgr.h1
3 files changed, 14 insertions, 1 deletions
diff --git a/src/game/PetHandler.cpp b/src/game/PetHandler.cpp
index 088f0ff2c58..ae12bce690b 100644
--- a/src/game/PetHandler.cpp
+++ b/src/game/PetHandler.cpp
@@ -560,7 +560,7 @@ void WorldSession::HandlePetSpellAutocastOpcode( WorldPacket& recvPacket )
}
// do not add not learned spells/ passive spells
- if(!pet->HasSpell(spellid) || IsPassiveSpell(spellid))
+ if(!pet->HasSpell(spellid) || IsAutocastableSpell(spellid))
return;
CharmInfo *charmInfo = pet->GetCharmInfo();
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index 8b3f8345661..be236dbc83b 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -263,6 +263,18 @@ bool IsPassiveSpell(uint32 spellId)
return (spellInfo->Attributes & SPELL_ATTR_PASSIVE) != 0;
}
+bool IsAutocastableSpell(uint32 spellId)
+{
+ SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellId);
+ if(!spellInfo)
+ return false;
+ if(spellInfo->Attributes & SPELL_ATTR_PASSIVE)
+ return false;
+ if(spellInfo->AttributesEx & SPELL_ATTR_EX_UNAUTOCASTABLE_BY_PET)
+ return false;
+ return true;
+}
+
/*bool IsNoStackAuraDueToAura(uint32 spellId_1, uint32 effIndex_1, uint32 spellId_2, uint32 effIndex_2)
{
SpellEntry const *spellInfo_1 = sSpellStore.LookupEntry(spellId_1);
diff --git a/src/game/SpellMgr.h b/src/game/SpellMgr.h
index eda2acd4d20..e55ff3c89d2 100644
--- a/src/game/SpellMgr.h
+++ b/src/game/SpellMgr.h
@@ -202,6 +202,7 @@ int32 CompareAuraRanks(uint32 spellId_1, uint32 effIndex_1, uint32 spellId_2, ui
bool IsSingleFromSpellSpecificPerCaster(uint32 spellSpec1, uint32 spellSpec2);
bool IsSingleFromSpellSpecificPerTarget(uint32 spellSpec1, uint32 spellSpec2);
bool IsPassiveSpell(uint32 spellId);
+bool IsAutocastableSpell(uint32 spellId);
inline bool IsPassiveSpellStackableWithRanks(SpellEntry const* spellProto)
{