aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/AchievementMgr.cpp2
-rw-r--r--src/game/LootMgr.h2
-rw-r--r--src/game/Player.cpp31
-rw-r--r--src/game/Player.h1
-rw-r--r--src/game/Spell.cpp30
-rw-r--r--src/shared/revision_nr.h2
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__