diff options
author | Shauren <none@none> | 2010-06-16 19:36:50 +0200 |
---|---|---|
committer | Shauren <none@none> | 2010-06-16 19:36:50 +0200 |
commit | 3be48fe4fc11fdaf0cfa6974811d368adab7c74f (patch) | |
tree | 991a40b859c346b586b1eb87fee0b1ab87b4a08e /src/server/game/Spells/SpellMgr.cpp | |
parent | 560f3bb87b760dc2bb7589586604a01e42441ecf (diff) |
Fixed old no-fly zone code to use area flags instead of hardcoded area ids (this fixes flying in Wintergrasp)
This does NOT implement no-fly zones!
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Spells/SpellMgr.cpp')
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 510fdccb98a..f98c3904bb4 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -2974,7 +2974,13 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 switch(spellId) { case 58600: // No fly Zone - Dalaran (Krasus Landing exception) - if (!player || player->GetAreaId() == 4564 || !player->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) && !player->HasAuraType(SPELL_AURA_FLY) || player->HasAura(44795)) + if (!player) + return false; + + AreaTableEntry *const pArea = GetAreaEntryByAreaID(player->GetAreaId()); + if (!(pArea && pArea->flags & AREA_FLAG_NO_FLY_ZONE)) + return false; + if (!player->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED) && !player->HasAuraType(SPELL_AURA_FLY) || player->HasAura(44795)) return false; break; } |