diff options
| author | Spp <spp@jorge.gr> | 2013-02-04 04:08:51 +0100 |
|---|---|---|
| committer | Spp <spp@jorge.gr> | 2013-02-04 04:43:49 +0100 |
| commit | f753c989f25e1f3bbb8c667ffd0028a0c0aa389d (patch) | |
| tree | 41ed0eac3eeea8a67002082fbb218bafc8852a81 /src/server/game | |
| parent | ffb4c63fe303111c1694e89dcb19419226974fcd (diff) | |
Core/Dungeon Finder: Simplify Spell Luck of the draw code
Core/Dungeon Finder: Partial recode of "group list" using existing Lfg functions
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/DungeonFinding/LFGMgr.cpp | 26 | ||||
| -rw-r--r-- | src/server/game/DungeonFinding/LFGMgr.h | 3 | ||||
| -rw-r--r-- | src/server/game/Maps/Map.cpp | 6 |
3 files changed, 30 insertions, 5 deletions
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 0f23925cc2b..4c6a8b92e0b 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -2039,3 +2039,29 @@ void LFGMgr::SetupGroupMember(uint64 guid, uint64 gguid) SetGroup(guid, gguid); AddPlayerToGroup(gguid, guid); } + +bool LFGMgr::inRandomLfgDungeon(uint64 guid) +{ + if (GetState(guid) != LFG_STATE_NONE) + { + LfgDungeonSet const& dungeons = GetSelectedDungeons(guid); + if (!dungeons.empty()) + { + LFGDungeonData const* dungeon = GetLFGDungeon(*dungeons.begin()); + if (dungeon && (dungeon->type == LFG_TYPE_RANDOM || dungeon->seasonal)) + return true; + } + } + + return false; +} + +bool LFGMgr::inLfgDungeonMap(uint64 guid, uint32 map, Difficulty difficulty) +{ + if (uint32 dungeonId = GetDungeon(guid, true)) + if (LFGDungeonData const* dungeon = GetLFGDungeon(dungeonId)) + if (uint32(dungeon->map) == map && dungeon->difficulty == difficulty) + return true; + + return false; +} diff --git a/src/server/game/DungeonFinding/LFGMgr.h b/src/server/game/DungeonFinding/LFGMgr.h index 74c7ca9e3d3..5b26cf9854c 100644 --- a/src/server/game/DungeonFinding/LFGMgr.h +++ b/src/server/game/DungeonFinding/LFGMgr.h @@ -381,6 +381,9 @@ class LFGMgr void SetupGroupMember(uint64 guid, uint64 gguid); uint64 GetGroup(uint64 guid); + bool inRandomLfgDungeon(uint64 guid); + bool inLfgDungeonMap(uint64 guid, uint32 map, Difficulty difficulty); + private: uint8 GetTeam(uint64 guid); void RestoreState(uint64 guid, char const* debugMsg); diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 184450ef8d6..6358acfb97d 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2486,11 +2486,7 @@ bool InstanceMap::AddPlayerToMap(Player* player) } if (group && group->isLFGGroup()) - if (uint32 dungeonId = sLFGMgr->GetDungeon(group->GetGUID(), true)) - if (LFGDungeonData const* dungeon = sLFGMgr->GetLFGDungeon(dungeonId)) - if (LFGDungeonData const* randomDungeon = sLFGMgr->GetLFGDungeon(*(sLFGMgr->GetSelectedDungeons(player->GetGUID()).begin()))) - if (uint32(dungeon->map) == GetId() && dungeon->difficulty == GetDifficulty() && randomDungeon->type == LFG_TYPE_RANDOM) - player->CastSpell(player, LFG_SPELL_LUCK_OF_THE_DRAW, true); + player->CastSpell(player, LFG_SPELL_LUCK_OF_THE_DRAW, true); } // for normal instances cancel the reset schedule when the |
