diff options
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r-- | src/game/Player.cpp | 54 |
1 files changed, 2 insertions, 52 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 533b9e68ac2..e7ae690c5be 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -18753,7 +18753,8 @@ void Player::SetClientControl(Unit* target, uint8 allowMove) void Player::UpdateZoneDependentAuras( uint32 newZone ) { // remove new continent flight forms - if(!CanFlyInMap(GetVirtualMapForMapAndZone(GetMapId(),newZone))) + if( !isGameMaster() && + GetVirtualMapForMapAndZone(GetMapId(),newZone) != 530) { RemoveSpellsCausingAura(SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED); RemoveSpellsCausingAura(SPELL_AURA_FLY); @@ -19219,54 +19220,3 @@ void Player::UpdateCharmedAI() } } -bool Player::CanFlyInMap(const uint32 mapID) const -{ - // we return false if the map doesn't even exist - MapEntry const *entry = sMapStore.LookupEntry(mapID); - if(!entry) - { - sLog.outDebug("Unknown mapID handed to Player::CanFlyInMap; disallowing flying."); - return false; - } - - // GMs can always fly - if( isGameMaster() ) - { - return true; - } - - // check whether we can fly here depending on map/config - switch(mapID) - { - // kalimdor/eastern kingdoms - case 0: - case 1: - { - return sWorld.getConfig(CONFIG_FLYING_MOUNTS_AZEROTH); - } - // outland - case 530: - { - return sWorld.getConfig(CONFIG_FLYING_MOUNTS_OUTLAND); - } - // all other maps - default: - { - return sWorld.getConfig(CONFIG_FLYING_MOUNTS_OTHERS); - } - } -} - -// this is just a dummy function that does the same as CanFlyInMap, but based on area ID -bool Player::CanFlyInArea(const uint32 areaID) const -{ - // we return false if the area doesn't even exist - AreaTableEntry const *entry = sAreaStore.LookupEntry(areaID); - if(!entry) - { - sLog.outDebug("Unknown areaID handed to Player::CanFlyInArea; disallowing flying."); - return false; - } - - return CanFlyInMap(entry->mapid); -} |