aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Wintergrasp.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/game/Wintergrasp.cpp b/src/game/Wintergrasp.cpp
index 782ec4ab537..2d76559a1c0 100644
--- a/src/game/Wintergrasp.cpp
+++ b/src/game/Wintergrasp.cpp
@@ -49,6 +49,9 @@ void LoadTeamPair(TeamPairMap &pairMap, const TeamPair *pair)
}
}
+#define REMOVE_RANK_AURAS(p) (p)->RemoveAura(SPELL_RECRUIT);\
+ (p)->RemoveAura(SPELL_CORPORAL);(p)->RemoveAura(SPELL_LIEUTENANT)
+
typedef std::list<const AreaPOIEntry *> AreaPOIList;
bool OPvPWintergrasp::SetupOutdoorPvP()
@@ -342,8 +345,12 @@ void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone)
void OPvPWintergrasp::HandlePlayerLeaveZone(Player * plr, uint32 zone)
{
- if(!plr->GetSession()->PlayerLogout() && plr->m_Vehicle) // dismiss in change zone case
- plr->m_Vehicle->Dismiss();
+ if(!plr->GetSession()->PlayerLogout())
+ {
+ if(plr->m_Vehicle) // dismiss in change zone case
+ plr->m_Vehicle->Dismiss();
+ REMOVE_RANK_AURAS(plr);
+ }
plr->RemoveAura(SPELL_TENACITY);
OutdoorPvP::HandlePlayerLeaveZone(plr, zone);
UpdateTenacityStack();
@@ -495,9 +502,7 @@ void OPvPWintergrasp::StartBattle()
{
for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)
{
- (*itr)->RemoveAura(SPELL_RECRUIT);
- (*itr)->RemoveAura(SPELL_CORPORAL);
- (*itr)->RemoveAura(SPELL_LIEUTENANT);
+ REMOVE_RANK_AURAS(*itr);
(*itr)->CastSpell(*itr, SPELL_RECRUIT, true);
}
}
@@ -514,9 +519,7 @@ void OPvPWintergrasp::EndBattle()
for(PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)
{
- (*itr)->RemoveAura(SPELL_RECRUIT);
- (*itr)->RemoveAura(SPELL_CORPORAL);
- (*itr)->RemoveAura(SPELL_LIEUTENANT);
+ REMOVE_RANK_AURAS(*itr);
}
}
}