diff options
author | Spp <none@none> | 2010-09-16 18:54:00 +0200 |
---|---|---|
committer | Spp <none@none> | 2010-09-16 18:54:00 +0200 |
commit | 1531ef20e22fc6391c0d6403121fb62e77385de1 (patch) | |
tree | 617118f9c7434540763c9ce502da8a55728945f8 /src | |
parent | 5ec5d5b6be167358937e0426d74e8bc59d4de957 (diff) |
Core/Dungeon Finder: UpdateProposal: Use the proper guid when finding queue info
- Also add log info if system is inconsistent
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/DungeonFinding/LFGMgr.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index af83c1cf986..713b446a230 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -1480,7 +1480,12 @@ void LFGMgr::UpdateProposal(uint32 proposalId, uint32 lowGuid, bool accept) // Save wait times before redoing groups for (LfgPlayerList::const_iterator it = players.begin(); it != players.end(); ++it) { - uint64 guid = (*it)->GetGroup() ? (*it)->GetGroup()->GetGUID() : (*it)->GetGUID(); + LfgProposalPlayer *pPlayer = pProposal->players[(*it)->GetGUIDLow()]; + uint32 lowgroupguid = (*it)->GetGroup() ? (*it)->GetGroup()->GetLowGUID() : 0; + if (pPlayer->groupLowGuid != lowgroupguid) + sLog.outError("LFGMgr::UpdateProposal: [" UI64FMTD "] group mismatch: actual (%u) - queued (%u)", (*it)->GetGUID(), lowgroupguid, pPlayer->groupLowGuid); + + uint64 guid = pPlayer->groupLowGuid ? MAKE_NEW_GUID(pPlayer->groupLowGuid, 0, HIGHGUID_GROUP) : (*it)->GetGUID(); LfgQueueInfoMap::iterator itQueue = m_QueueInfoMap.find(guid); if (itQueue == m_QueueInfoMap.end()) { |