diff options
author | Kandera <KanderaDev@gmail.com> | 2012-02-22 16:32:51 -0500 |
---|---|---|
committer | Kandera <KanderaDev@gmail.com> | 2012-08-20 13:36:09 -0400 |
commit | dd05f1dcd278a2a50880d10a5df1549b4afbcc55 (patch) | |
tree | 033e254028aed647cdfe58d05c07cdf4c367d5e0 /src/server/game/Battlefield/Battlefield.cpp | |
parent | 6318fd91ff3630923c0e2b088fe66c14f7c31101 (diff) |
fix crash with groups, added enum for battlfield leave reasons
Diffstat (limited to 'src/server/game/Battlefield/Battlefield.cpp')
-rw-r--r-- | src/server/game/Battlefield/Battlefield.cpp | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index 6a5ca0b5c02..aa9cc34a115 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -103,17 +103,9 @@ void Battlefield::HandlePlayerLeaveZone(Player *plr, uint32 /*zone */ ) { m_PlayersInWar[plr->GetTeamId()].erase(plr->GetGUID()); plr->GetSession()->SendBfLeaveMessage(m_BattleId); - if (Group* group = GetGroupPlayer(plr->GetGUID(), plr->GetTeamId())) // remove from raid group if player is member - { - // I think that now is not a hack - if (!group->RemoveMember(plr->GetGUID())) // group was disbanded - { - m_Groups[plr->GetTeamId()].erase(group->GetGUID()); - group->SetBattlefieldGroup(NULL); - sGroupMgr->RemoveGroup(group); - delete group; - } - } + if (Group* group = plr->GetGroup()) // remove from raid group if player is member + group->RemoveMember(plr->GetGUID()); + OnPlayerLeaveWar(plr); //For scripting } } |