From f12b51c218928fdbdd436871e2d9695c1627818b Mon Sep 17 00:00:00 2001 From: Spp Date: Sat, 14 Aug 2010 02:21:07 +0200 Subject: Dungeon Finder: Mark obsolete kick as failed (missing code from ce404e62b3) --HG-- branch : trunk --- src/server/game/DungeonFinding/LFGMgr.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src') diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index fb92f9b067c..19d43d709f4 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -121,6 +121,28 @@ void LFGMgr::Update(uint32 diff) RemoveProposal(itRemove, LFG_UPDATETYPE_PROPOSAL_FAILED); } + // Remove obsolete kicks + LfgPlayerBootMap::iterator itBoot; + LfgPlayerBoot *pBoot; + for (LfgPlayerBootMap::iterator it = m_Boots.begin(); it != m_Boots.end();) + { + itBoot = it++; + pBoot = itBoot->second; + if (pBoot->cancelTime < currTime) + { + Group *grp = sObjectMgr.GetGroupByGUID(itBoot->first); + pBoot->inProgress = false; + for (LfgAnswerMap::const_iterator itVotes = pBoot->votes.begin(); itVotes != pBoot->votes.end(); ++itVotes) + if (Player *plrg = sObjectMgr.GetPlayer(itVotes->first)) + if (plrg->GetGUIDLow() != pBoot->victimLowGuid) + SendLfgBootPlayer(plrg, pBoot); + if (grp) + grp->SetLfgKickActive(false); + delete pBoot; + m_Boots.erase(itBoot); + } + } + // Consistency Clean Begin - Added to try to find a bug that leaves data inconsistent LfgQueueInfoMap::iterator itQueue; LfgGuidList::iterator itGuidListRemove; -- cgit v1.2.3