From 25b120877e8c8620b5d115df5623cbffb42b0b66 Mon Sep 17 00:00:00 2001 From: GriffonHeart Date: Fri, 23 Jan 2009 15:47:14 +0300 Subject: [PATCH] [7154] Move allow player fly check to function. Signed-off-by: VladimirMangos --- src/game/Player.cpp | 12 ++++++++++-- src/game/Player.h | 1 + src/game/Spell.cpp | 3 +-- src/shared/revision_nr.h | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 5bf05d8a8..da8adc693 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -18872,8 +18872,7 @@ void Player::SetClientControl(Unit* target, uint8 allowMove) void Player::UpdateZoneDependentAuras( uint32 newZone ) { // remove new continent flight forms - uint32 v_map = GetVirtualMapForMapAndZone(GetMapId(), newZone); - if( !isGameMaster() && v_map != 530 && v_map != 571) + if( !IsAllowUseFlyMountsHere() ) { RemoveSpellsCausingAura(SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED); RemoveSpellsCausingAura(SPELL_AURA_FLY); @@ -19363,3 +19362,12 @@ uint32 Player::CalculateTalentsPoints() const return talentPointsForLevel; } + +bool Player::IsAllowUseFlyMountsHere() const +{ + if (isGameMaster()) + return true; + + uint32 v_map = GetVirtualMapForMapAndZone(GetMapId(), GetZoneId()); + return v_map == 530 || v_map == 571 && HasSpell(54197); +} diff --git a/src/game/Player.h b/src/game/Player.h index cd9141502..15895daf5 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -2051,6 +2051,7 @@ class MANGOS_DLL_SPEC Player : public Unit bool CanFly() const { return HasUnitMovementFlag(MOVEMENTFLAG_CAN_FLY); } bool IsFlying() const { return HasUnitMovementFlag(MOVEMENTFLAG_FLYING); } + bool IsAllowUseFlyMountsHere() const; void HandleDrowning(); diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index ea8aa557f..c726405d9 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4418,8 +4418,7 @@ uint8 Spell::CanCast(bool strict) // not allow cast fly spells at old maps by players (all spells is self target) if(m_caster->GetTypeId()==TYPEID_PLAYER) { - 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))) + if( !((Player*)m_caster)->IsAllowUseFlyMountsHere() ) return SPELL_FAILED_NOT_HERE; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 7440a4bda..573cce316 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7153" + #define REVISION_NR "7154" #endif // __REVISION_NR_H__