aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp9
-rw-r--r--src/server/game/Groups/Group.cpp11
-rw-r--r--src/server/game/Groups/Group.h4
3 files changed, 12 insertions, 12 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 8ce16622f6a..f917084215e 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3621,8 +3621,8 @@ void ObjectMgr::LoadGroups()
sLog.outString(">> Loaded %u group definitions", count);
// ----------------------- Load member
- // 0 1 2 3
- result = CharacterDatabase.Query("SELECT guid, memberGuid, memberFlags, subgroup FROM group_member ORDER BY guid");
+ // 0 1 2 3 4
+ result = CharacterDatabase.Query("SELECT guid, memberGuid, memberFlags, subgroup, roles FROM group_member ORDER BY guid");
if (!result)
{
barGoLink bar2(1);
@@ -3644,10 +3644,9 @@ void ObjectMgr::LoadGroups()
{
groupLowGuid = fields[0].GetUInt32();
group = GetGroupByGUID(groupLowGuid);
- // group will never be NULL (we have run consistency sql's before loading)
}
- if (group)
- group->LoadMemberFromDB(fields[1].GetUInt32(), fields[2].GetUInt8(), fields[3].GetUInt8());
+ if (group) // Should never be null
+ group->LoadMemberFromDB(fields[1].GetUInt32(), fields[2].GetUInt8(), fields[3].GetUInt8(), fields[4].GetUInt8());
else
sLog.outError("ObjectMgr::LoadGroups: Consistency failed, can't find group (lowguid %u)", groupLowGuid);
++count;
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 4a701b25699..a6e69cf3649 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -174,14 +174,15 @@ bool Group::LoadGroupFromDB(const uint32 &groupGuid, QueryResult_AutoPtr result,
if (loadMembers)
{
- result = CharacterDatabase.PQuery("SELECT memberGuid, memberFlags, subgroup FROM group_member WHERE guid=%u", groupGuid);
+ // 0 1 2 3
+ result = CharacterDatabase.PQuery("SELECT memberGuid, memberFlags, subgroup, roles FROM group_member WHERE guid=%u", groupGuid);
if (!result)
return false;
do
{
fields = result->Fetch();
- LoadMemberFromDB(fields[0].GetUInt32(), fields[1].GetUInt8(), fields[2].GetUInt8());
+ LoadMemberFromDB(fields[0].GetUInt32(), fields[1].GetUInt8(), fields[2].GetUInt8(), fields[3].GetUInt8());
} while (result->NextRow());
if (GetMembersCount() < 2) // group too small
@@ -191,7 +192,7 @@ bool Group::LoadGroupFromDB(const uint32 &groupGuid, QueryResult_AutoPtr result,
return true;
}
-bool Group::LoadMemberFromDB(uint32 guidLow, uint8 memberFlags, uint8 subgroup)
+bool Group::LoadMemberFromDB(uint32 guidLow, uint8 memberFlags, uint8 subgroup, uint8 roles)
{
MemberSlot member;
member.guid = MAKE_NEW_GUID(guidLow, 0, HIGHGUID_PLAYER);
@@ -205,7 +206,7 @@ bool Group::LoadMemberFromDB(uint32 guidLow, uint8 memberFlags, uint8 subgroup)
member.group = subgroup;
member.flags = memberFlags;
- member.roles = 0;
+ member.roles = roles;
m_memberSlots.push_back(member);
@@ -1277,7 +1278,7 @@ bool Group::_addMember(const uint64 &guid, const char* name, uint8 group)
if (!isBGGroup())
{
// insert into group table
- CharacterDatabase.PExecute("INSERT INTO group_member(guid,memberGuid,memberFlags,subgroup) VALUES(%u,%u,%u,%u)", GUID_LOPART(m_guid), GUID_LOPART(member.guid), member.flags, member.group);
+ CharacterDatabase.PExecute("INSERT INTO group_member (guid, memberGuid, memberFlags, subgroup, roles) VALUES(%u, %u, %u, %u, %u)", GUID_LOPART(m_guid), GUID_LOPART(member.guid), member.flags, member.group, member.roles);
}
return true;
diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h
index a30d1998466..a3d0ab614b5 100644
--- a/src/server/game/Groups/Group.h
+++ b/src/server/game/Groups/Group.h
@@ -184,8 +184,8 @@ class Group
// group manipulation methods
bool Create(const uint64 &guid, const char * name);
- bool LoadGroupFromDB(const uint32 &guid, QueryResult_AutoPtr result = QueryResult_AutoPtr(NULL), bool loadMembers = true);
- bool LoadMemberFromDB(uint32 guidLow, uint8 memberFlags, uint8 subgroup);
+ bool LoadGroupFromDB(const uint32 &guid, QueryResult_AutoPtr result, bool loadMembers = true);
+ bool LoadMemberFromDB(uint32 guidLow, uint8 memberFlags, uint8 subgroup, uint8 roles);
bool AddInvite(Player *player);
uint32 RemoveInvite(Player *player);
void RemoveAllInvites();