aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-07-31 21:39:48 +0200
committerShauren <shauren.trinity@gmail.com>2022-07-31 21:39:48 +0200
commit20f38369f30309e2c0cd53eca9cfe9c49376ed8c (patch)
tree35fd316599e09226241ecd946469ccd6e21c0fa7 /src/server/game/Groups/Group.cpp
parent71e885cd4b0098f38ca360a35361a6e867556542 (diff)
Core/PacketIO: Updated packet structures to 9.2.7
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rw-r--r--src/server/game/Groups/Group.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 91acaad9a0e..8bcfa842993 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -61,7 +61,7 @@ Loot* Roll::getLoot()
return getTarget();
}
-Group::Group() : m_leaderGuid(), m_leaderName(""), m_groupFlags(GROUP_FLAG_NONE), m_groupCategory(GROUP_CATEGORY_HOME),
+Group::Group() : m_leaderGuid(), m_leaderFactionGroup(0), m_leaderName(""), m_groupFlags(GROUP_FLAG_NONE), m_groupCategory(GROUP_CATEGORY_HOME),
m_dungeonDifficulty(DIFFICULTY_NORMAL), m_raidDifficulty(DIFFICULTY_NORMAL_RAID), m_legacyRaidDifficulty(DIFFICULTY_10_N),
m_bgGroup(nullptr), m_bfGroup(nullptr), m_lootMethod(FREE_FOR_ALL), m_lootThreshold(ITEM_QUALITY_UNCOMMON), m_looterGuid(),
m_masterLooterGuid(), m_subGroupsCounts(nullptr), m_guid(), m_maxEnchantingLevel(0), m_dbStoreId(0), m_isLeaderOffline(false),
@@ -161,6 +161,7 @@ bool Group::Create(Player* leader)
m_guid = ObjectGuid::Create<HighGuid::Party>(sGroupMgr->GenerateGroupId());
m_leaderGuid = leaderGuid;
+ m_leaderFactionGroup = Player::GetFactionGroupForRace(leader->GetRace());
m_leaderName = leader->GetName();
leader->SetPlayerFlag(PLAYER_FLAGS_GROUP_LEADER);
@@ -238,9 +239,12 @@ void Group::LoadGroupFromDB(Field* fields)
m_leaderGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
// group leader not exist
- if (!sCharacterCache->GetCharacterNameByGuid(m_leaderGuid, m_leaderName))
+ CharacterCacheEntry const* leader = sCharacterCache->GetCharacterCacheByGuid(m_leaderGuid);
+ if (!leader)
return;
+ m_leaderFactionGroup = Player::GetFactionGroupForRace(leader->Race);
+ m_leaderName = leader->Name;
m_lootMethod = LootMethod(fields[1].GetUInt8());
m_looterGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].GetUInt64());
m_lootThreshold = ItemQualities(fields[3].GetUInt8());
@@ -392,6 +396,7 @@ bool Group::AddLeaderInvite(Player* player)
return false;
m_leaderGuid = player->GetGUID();
+ m_leaderFactionGroup = Player::GetFactionGroupForRace(player->GetRace());
m_leaderName = player->GetName();
return true;
}
@@ -791,6 +796,7 @@ void Group::ChangeLeader(ObjectGuid newLeaderGuid, int8 partyIndex)
newLeader->SetPlayerFlag(PLAYER_FLAGS_GROUP_LEADER);
m_leaderGuid = newLeader->GetGUID();
+ m_leaderFactionGroup = Player::GetFactionGroupForRace(newLeader->GetRace());
m_leaderName = newLeader->GetName();
ToggleGroupMemberFlag(slot, MEMBER_FLAG_ASSISTANT, false);
@@ -1539,6 +1545,7 @@ void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot)
partyUpdate.PartyGUID = m_guid;
partyUpdate.LeaderGUID = m_leaderGuid;
+ partyUpdate.LeaderFactionGroup = m_leaderFactionGroup;
partyUpdate.SequenceNum = player->NextGroupUpdateSequenceNumber(m_groupCategory);
@@ -1557,9 +1564,7 @@ void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot)
playerInfos.Name = citr->name;
playerInfos.Class = citr->_class;
- ChrRacesEntry const* race = sChrRacesStore.AssertEntry(citr->race);
- FactionTemplateEntry const* raceFaction = sFactionTemplateStore.AssertEntry(race->FactionID);
- playerInfos.FactionGroup = raceFaction->FactionGroup;
+ playerInfos.FactionGroup = Player::GetFactionGroupForRace(citr->race);
playerInfos.Status = MEMBER_STATUS_OFFLINE;
if (member && member->GetSession() && !member->GetSession()->PlayerLogout())