aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellInfo.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2017-12-11 20:40:32 +0100
committerShauren <shauren.trinity@gmail.com>2017-12-11 20:40:32 +0100
commit9b6be90b2bb6bc209820611e84fd5ccfb5f29c5e (patch)
treedb1613dd864791fbc23f7491edc88c6e13b6a18d /src/server/game/Spells/SpellInfo.cpp
parent2362abbce08ac1d63da4d0b22329078f25e3be61 (diff)
Core/Spells: Fixed shapeshift location check
Diffstat (limited to 'src/server/game/Spells/SpellInfo.cpp')
-rw-r--r--src/server/game/Spells/SpellInfo.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 4dde72f3778..1de54909348 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -1835,15 +1835,12 @@ SpellCastResult SpellInfo::CheckLocation(uint32 map_id, uint32 zone_id, uint32 a
switch (effect->ApplyAuraName)
{
- case SPELL_AURA_FLY:
+ case SPELL_AURA_MOD_SHAPESHIFT:
{
- SkillLineAbilityMapBounds bounds = sSpellMgr->GetSkillLineAbilityMapBounds(Id);
- for (SkillLineAbilityMap::const_iterator skillIter = bounds.first; skillIter != bounds.second; ++skillIter)
- {
- if (skillIter->second->SkillLine == SKILL_MOUNTS)
- if (!player->CanFlyInZone(map_id, zone_id))
- return SPELL_FAILED_INCORRECT_AREA;
- }
+ if (SpellShapeshiftFormEntry const* spellShapeshiftForm = sSpellShapeshiftFormStore.LookupEntry(effect->MiscValue))
+ if (uint32 mountType = spellShapeshiftForm->MountTypeID)
+ if (!player->GetMountCapability(mountType))
+ return SPELL_FAILED_NOT_HERE;
break;
}
case SPELL_AURA_MOUNTED: