diff options
| author | Shauren <shauren.trinity@gmail.com> | 2017-12-11 20:40:32 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2017-12-11 20:40:32 +0100 |
| commit | 9b6be90b2bb6bc209820611e84fd5ccfb5f29c5e (patch) | |
| tree | db1613dd864791fbc23f7491edc88c6e13b6a18d /src/server/game/Spells/SpellInfo.cpp | |
| parent | 2362abbce08ac1d63da4d0b22329078f25e3be61 (diff) | |
Core/Spells: Fixed shapeshift location check
Diffstat (limited to 'src/server/game/Spells/SpellInfo.cpp')
| -rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 13 |
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: |
