From 24bb62ec448833bff00fcfc57dccf8add23a12e0 Mon Sep 17 00:00:00 2001 From: LihO Date: Thu, 4 Aug 2011 19:24:11 +0200 Subject: Core/Dungeon Finder: fixed logic in dungeon selection Random number should be generated only once. --- src/server/game/DungeonFinding/LFGMgr.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 2fc6e84da4e..c2da032ccdf 100755 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -931,7 +931,8 @@ bool LFGMgr::CheckCompatibility(LfgGuidList check, LfgProposal*& pProposal) // Select a random dungeon from the compatible list // TODO - Select the dungeon based on group item Level, not just random LfgDungeonSet::const_iterator itDungeon = compatibleDungeons.begin(); - for (uint8 i = 0; i < urand(0, compatibleDungeons.size() - 1); ++i) + uint8 rand = urand(0, compatibleDungeons.size() - 1); + for (uint8 i = 0; i < rand; ++i) ++itDungeon; // Create a new proposal -- cgit v1.2.3 From 3fbb657e3bf217f4ebb60992e601ed621720249f Mon Sep 17 00:00:00 2001 From: LihO Date: Thu, 4 Aug 2011 19:41:11 +0200 Subject: Core/Maps : Crash fix Closes #1489 --- src/server/game/Maps/Map.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index e3ab09ed426..4cde2913160 100755 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -544,7 +544,7 @@ void Map::Update(const uint32 t_diff) { Player* plr = m_mapRefIter->getSource(); - if (!plr->IsInWorld()) + if (!plr || !plr->IsInWorld()) continue; // update players at tick @@ -559,7 +559,7 @@ void Map::Update(const uint32 t_diff) WorldObject* obj = *m_activeNonPlayersIter; ++m_activeNonPlayersIter; - if (!obj->IsInWorld()) + if (!obj || !obj->IsInWorld()) continue; VisitNearbyCellsOf(obj, grid_object_update, world_object_update); -- cgit v1.2.3