aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Player
diff options
context:
space:
mode:
authorShauren <none@none>2010-11-24 16:58:57 +0100
committerShauren <none@none>2010-11-24 16:58:57 +0100
commit3fa97ad5385185ae8b85aea032aa853098a62045 (patch)
tree076dd5752c75750849a6c40a9e68f4c25fa76d09 /src/server/game/Entities/Player
parentce989d701a6a9cf0c978f060457a89b24ddbd365 (diff)
Core/Spells: Phaseshift auras can now be stacked
--HG-- branch : trunk
Diffstat (limited to 'src/server/game/Entities/Player')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 78417213e8d..e750c185f69 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2496,18 +2496,22 @@ void Player::SetGameMaster(bool on)
getHostileRefManager().setOnlineOfflineState(false);
CombatStopWithPets();
- SetPhaseMask(PHASEMASK_ANYWHERE,false); // see and visible in all phases
+ SetPhaseMask(PHASEMASK_ANYWHERE, false); // see and visible in all phases
m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GM, GetSession()->GetSecurity());
}
else
{
// restore phase
+ uint32 newPhase = 0;
AuraEffectList const& phases = GetAuraEffectsByType(SPELL_AURA_PHASE);
if (!phases.empty())
- SetPhaseMask(phases.front()->GetMiscValue(), false);
- else
- SetPhaseMask(PHASEMASK_NORMAL, false);
+ for (AuraEffectList::const_iterator itr = phases.begin(); itr != phases.end(); ++itr)
+ newPhase |= (*itr)->GetMiscValue();
+
+ if (!newPhase)
+ newPhase = PHASEMASK_NORMAL;
+ SetPhaseMask(newPhase, false);
m_ExtraFlags &= ~ PLAYER_EXTRA_GM_ON;
setFactionForRace(getRace());