diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Groups/Group.cpp | 9 | ||||
| -rw-r--r-- | src/server/game/Groups/Group.h | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index 8a0782887a9..6908d7649d3 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -58,7 +58,7 @@ Loot* Roll::getLoot() Group::Group() : m_leaderGuid(), m_leaderName(""), m_groupFlags(GROUP_FLAG_NONE), 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_counter(0), m_maxEnchantingLevel(0), m_dbStoreId(0), +m_masterLooterGuid(), m_subGroupsCounts(nullptr), m_guid(), m_maxEnchantingLevel(0), m_dbStoreId(0), m_readyCheckStarted(false), m_readyCheckTimer(0), m_activeMarkers(0) { for (uint8 i = 0; i < TARGET_ICONS_COUNT; ++i) @@ -392,6 +392,7 @@ bool Group::AddMember(Player* player) member.group = subGroup; member.flags = 0; member.roles = 0; + member.updateSequenceNumber = 1; member.readyChecked = false; m_memberSlots.push_back(member); @@ -801,11 +802,11 @@ void Group::Disband(bool hideDestroy /* = false */) { WorldPackets::Party::PartyUpdate partyUpdate; partyUpdate.PartyFlags = GROUP_FLAG_DESTROYED; - partyUpdate.PartyIndex = 1; // 0 = original group, 1 = instance/bg group + partyUpdate.PartyIndex = 0; // this was the original group if player->GetGroup() returned nullptr partyUpdate.PartyType = GROUP_TYPE_NONE; partyUpdate.PartyGUID = m_guid; partyUpdate.MyIndex = -1; - partyUpdate.SequenceNum = m_counter; + partyUpdate.SequenceNum = citr->updateSequenceNumber; player->GetSession()->SendPacket(partyUpdate.Write()); } @@ -1428,7 +1429,7 @@ void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot) partyUpdate.PartyGUID = m_guid; partyUpdate.LeaderGUID = m_leaderGuid; - partyUpdate.SequenceNum = m_counter++; // 3.3, value increases every time this packet gets sent + partyUpdate.SequenceNum = slot->updateSequenceNumber++; // 3.3, value increases every time this packet gets sent partyUpdate.MyIndex = -1; uint8 index = 0; diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h index 00582262f98..86476d0bb81 100644 --- a/src/server/game/Groups/Group.h +++ b/src/server/game/Groups/Group.h @@ -218,6 +218,7 @@ class TC_GAME_API Group uint8 group; uint8 flags; uint8 roles; + int32 updateSequenceNumber; bool readyChecked; }; typedef std::list<MemberSlot> MemberSlotList; @@ -431,7 +432,6 @@ class TC_GAME_API Group BoundInstancesMap m_boundInstances[MAX_DIFFICULTY]; uint8* m_subGroupsCounts; ObjectGuid m_guid; - uint32 m_counter; // used only in SMSG_GROUP_LIST uint32 m_maxEnchantingLevel; uint32 m_dbStoreId; // Represents the ID used in database (Can be reused by other groups if group was disbanded) |
