aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.cpp
diff options
context:
space:
mode:
authorleak <leakzx@googlemail.com>2011-02-22 16:52:38 +0100
committerleak <leakzx@googlemail.com>2011-02-22 16:52:38 +0100
commit09bac61e426e864d64f5e6a7eb8e645b967dfe03 (patch)
tree56c6c71d35e837555cde23db215556ca98b473f9 /src/server/game/Groups/Group.cpp
parent1cdec5880ebbf26713dbca0d0906a327e84b7260 (diff)
Core/Groups: Move scattered group object deletion to Disband()
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rwxr-xr-xsrc/server/game/Groups/Group.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index bef3904bddb..2f7ae3c4d5f 100755
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -405,7 +405,7 @@ bool Group::AddMember(Player *player)
return true;
}
-uint32 Group::RemoveMember(const uint64 &guid, const RemoveMethod &method /* = GROUP_REMOVEMETHOD_DEFAULT */, uint64 kicker /* = 0 */, const char* reason /* = NULL */)
+bool Group::RemoveMember(const uint64 &guid, const RemoveMethod &method /*= GROUP_REMOVEMETHOD_DEFAULT*/, uint64 kicker /*= 0*/, const char* reason /*= NULL*/)
{
BroadcastGroupUpdate();
@@ -505,12 +505,15 @@ uint32 Group::RemoveMember(const uint64 &guid, const RemoveMethod &method /* = G
}
SendUpdate();
+
+ return true;
}
// If group size before player removal <= 2 then disband it
else
+ {
Disband();
-
- return m_memberSlots.size();
+ return false;
+ }
}
void Group::ChangeLeader(const uint64 &guid)
@@ -634,9 +637,8 @@ void Group::Disband(bool hideDestroy /* = false */)
ResetInstances(INSTANCE_RESET_GROUP_DISBAND, true, NULL);
}
- m_guid = 0;
- m_leaderGuid = 0;
- m_leaderName = "";
+ sObjectMgr->RemoveGroup(this);
+ delete this;
}
/*********************************************************/