aboutsummaryrefslogtreecommitdiff
path: root/src/game/Spell.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-01-18 17:58:13 -0600
committermegamage <none@none>2009-01-18 17:58:13 -0600
commitc85c89dc0b0564113e48bfcaf96dc2af55d73bb8 (patch)
treeb75e19414c6a9dc8bfd438f9e0c7a2e42aada9a6 /src/game/Spell.cpp
parent54ed3974138f2f51c3c42c4469f9f1541818f631 (diff)
parent613217fca7c2959fe3abbe593f4be65beedaeca8 (diff)
*Merge.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r--src/game/Spell.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index b57b2f3ff5f..390adcecab2 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -4394,11 +4394,33 @@ uint8 Spell::CanCast(bool strict)
case SPELL_AURA_FLY:
{
// not allow cast fly spells at old maps by players (all spells is self target)
- if(m_caster->GetTypeId()==TYPEID_PLAYER)
+ if(m_caster->GetTypeId()==TYPEID_PLAYER && !((Player*)m_caster)->isGameMaster())
{
uint32 v_map = GetVirtualMapForMapAndZone(m_caster->GetMapId(), m_caster->GetZoneId());
- if( !((Player*)m_caster)->isGameMaster() && v_map != 530 && !(v_map == 571 && ((Player*)m_caster)->HasSpell(54197)))
- return SPELL_FAILED_NOT_HERE;
+ switch(v_map)
+ {
+ case 0:
+ case 1:
+ {
+ if (!sWorld.getConfig(CONFIG_FLYING_MOUNTS_AZEROTH))
+ return SPELL_FAILED_NOT_HERE;
+ } break;
+ case 530:
+ {
+ if (!sWorld.getConfig(CONFIG_FLYING_MOUNTS_OUTLAND))
+ return SPELL_FAILED_NOT_HERE;
+ } break;
+ case 571:
+ {
+ if(!((Player*)m_caster)->HasSpell(54197))
+ return SPELL_FAILED_NOT_HERE;
+ } break;
+ default:
+ {
+ if (!sWorld.getConfig(CONFIG_FLYING_MOUNTS_OTHERS))
+ return SPELL_FAILED_NOT_HERE;
+ } break;
+ }
}
break;