diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/AchievementMgr.cpp | 2 | ||||
-rw-r--r-- | src/game/LootMgr.h | 2 | ||||
-rw-r--r-- | src/game/Player.cpp | 31 | ||||
-rw-r--r-- | src/game/Player.h | 1 | ||||
-rw-r--r-- | src/game/Spell.cpp | 30 | ||||
-rw-r--r-- | src/shared/revision_nr.h | 2 |
6 files changed, 36 insertions, 32 deletions
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index f920bf17b40..ad8a4306109 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -930,7 +930,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaList() } sLog.outString(); - sLog.outErrorDb(">> Loaded 0 achievement criteria.",m_AchievementCriteriasByType->size()); + sLog.outErrorDb(">> Loaded %u achievement criteria.",m_AchievementCriteriasByType->size()); } diff --git a/src/game/LootMgr.h b/src/game/LootMgr.h index 5205024a46c..9da36c90b93 100644 --- a/src/game/LootMgr.h +++ b/src/game/LootMgr.h @@ -130,7 +130,7 @@ class LootStore { public: explicit LootStore(char const* name, char const* entryName, bool ratesAllowed) - : m_name(name), m_entryName(entryName), m_ratesAllowed(m_ratesAllowed) {} + : m_name(name), m_entryName(entryName), m_ratesAllowed(ratesAllowed) {} virtual ~LootStore() { Clear(); } void Verify() const; diff --git a/src/game/Player.cpp b/src/game/Player.cpp index ccf3eefcb6f..fffe5ec5fb2 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -19428,8 +19428,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); @@ -20151,3 +20150,31 @@ uint32 Player::CalculateTalentsPoints() const return talentPointsForLevel; } + +bool Player::IsAllowUseFlyMountsHere() const +{ + if (isGameMaster()) + return true; + + switch(GetVirtualMapForMapAndZone(GetMapId(), GetZoneId())) + { + case 0: + case 1: + if (!sWorld.getConfig(CONFIG_FLYING_MOUNTS_AZEROTH)) + return false; + break; + case 530: + if (!sWorld.getConfig(CONFIG_FLYING_MOUNTS_OUTLAND)) + return false; + break; + case 571: + if(!HasSpell(54197)) + return false; + break; + default: + if (!sWorld.getConfig(CONFIG_FLYING_MOUNTS_OTHERS)) + return false; + break; + } + return true; +} diff --git a/src/game/Player.h b/src/game/Player.h index 1ea97f0b82a..19dd5a4e06d 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -2057,6 +2057,7 @@ class TRINITY_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(); void HandleFallDamage(MovementInfo& movementInfo); diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index c80a3316f50..f17cfa0c83a 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4399,35 +4399,11 @@ 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 && !((Player*)m_caster)->isGameMaster()) + if(m_caster->GetTypeId()==TYPEID_PLAYER) { - uint32 v_map = GetVirtualMapForMapAndZone(m_caster->GetMapId(), m_caster->GetZoneId()); - 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; - } + if( !((Player*)m_caster)->IsAllowUseFlyMountsHere() ) + return SPELL_FAILED_NOT_HERE; } - break; } case SPELL_AURA_PERIODIC_MANA_LEECH: diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 259099b4ecb..573cce31616 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 "7151" + #define REVISION_NR "7154" #endif // __REVISION_NR_H__ |