From b6724bea03f6421b7168f098554cd4c43f5e75f3 Mon Sep 17 00:00:00 2001 From: Spp Date: Thu, 23 Dec 2010 15:26:41 +0100 Subject: Core/Dungeon Finder: Fix crash in recursive calls while joining closes issue 5162 --HG-- branch : trunk --- src/server/game/DungeonFinding/LFGMgr.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'src/server') diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index a439e7576f3..25231417860 100755 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -517,17 +517,10 @@ void LFGMgr::Join(Player* plr, uint8 roles, const LfgDungeonSet& selectedDungeon if (itr->getSource() && itr->getSource()->GetSession()) itr->getSource()->GetSession()->SendLfgUpdateParty(updateData); } + return; } - else if (!isContinue) // Different dungeons and it's not a LfgGroup in the middle of a dungeon that need more people - { - Leave(plr, grp); - LfgState pstate = GetState(guid); - if (pstate == LFG_STATE_NONE) - Join(plr, roles, dungeons, comment); - else - sLog.outError("LFGMgr::Join [" UI64FMTD "] joined with different dungeons and leave failed! Player state: %u", guid, pstate); - } - return; + else // Remove from queue and rejoin + RemoveFromQueue(gguid); } // Check player or group member restrictions -- cgit v1.2.3