diff options
author | Spp <none@none> | 2010-12-23 15:26:41 +0100 |
---|---|---|
committer | Spp <none@none> | 2010-12-23 15:26:41 +0100 |
commit | b6724bea03f6421b7168f098554cd4c43f5e75f3 (patch) | |
tree | 02053d793745208af400d998b363233f3c24e896 | |
parent | b2b2f44506e4636cee1cb832d9ce8b423751a4b4 (diff) |
Core/Dungeon Finder: Fix crash in recursive calls while joining
closes issue 5162
--HG--
branch : trunk
-rwxr-xr-x | src/server/game/DungeonFinding/LFGMgr.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
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 |