aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.cpp
diff options
context:
space:
mode:
authorleak <leakzx@googlemail.com>2011-02-22 23:47:32 +0100
committerleak <leakzx@googlemail.com>2011-02-22 23:49:57 +0100
commitb27735b590ed91db702f2a21085fef05b804e4d8 (patch)
treec4ec58ead342b8374993338a414622b1fcd06747 /src/server/game/Groups/Group.cpp
parent44fc35bb07e72e9991b930692ed5f84a397a4807 (diff)
Core/Groups: Reuse group guids to stop endless growth
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rwxr-xr-xsrc/server/game/Groups/Group.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 2f7ae3c4d5f..a118e1c1837 100755
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -635,6 +635,12 @@ void Group::Disband(bool hideDestroy /* = false */)
CharacterDatabase.CommitTransaction(trans);
ResetInstances(INSTANCE_RESET_GROUP_DISBAND, false, NULL);
ResetInstances(INSTANCE_RESET_GROUP_DISBAND, true, NULL);
+
+ // If the deleted group guid is lower than the one we have stored for the next group creation,
+ // use this one instead.
+ if (lowguid < sObjectMgr->GetNextGroupGuid())
+ sObjectMgr->SetNextGroupGuid(lowguid);
+
}
sObjectMgr->RemoveGroup(this);