From 9d9a92a56db2b22f61e54fdb33eb1f0954f218ab Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 23 Jun 2013 19:40:00 +0200 Subject: Core/Instances: Fixed loading DungeonEncounters.dbc (-1 means all difficulties), thx Northstrider for pointing it out --- src/server/game/Globals/ObjectMgr.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/server/game/Globals/ObjectMgr.cpp') diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 03b0cf90246..5d090d883db 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -5118,8 +5118,23 @@ void ObjectMgr::LoadInstanceEncounters() continue; } - DungeonEncounterList& encounters = _dungeonEncounterStore[MAKE_PAIR32(dungeonEncounter->mapId, dungeonEncounter->difficulty)]; - encounters.push_back(new DungeonEncounter(dungeonEncounter, EncounterCreditType(creditType), creditEntry, lastEncounterDungeon)); + if (dungeonEncounter->difficulty == -1) + { + for (uint32 i = 0; i < MAX_DIFFICULTY; ++i) + { + if (GetMapDifficultyData(dungeonEncounter->mapId, Difficulty(i))) + { + DungeonEncounterList& encounters = _dungeonEncounterStore[MAKE_PAIR32(dungeonEncounter->mapId, i)]; + encounters.push_back(new DungeonEncounter(dungeonEncounter, EncounterCreditType(creditType), creditEntry, lastEncounterDungeon)); + } + } + } + else + { + DungeonEncounterList& encounters = _dungeonEncounterStore[MAKE_PAIR32(dungeonEncounter->mapId, dungeonEncounter->difficulty)]; + encounters.push_back(new DungeonEncounter(dungeonEncounter, EncounterCreditType(creditType), creditEntry, lastEncounterDungeon)); + } + ++count; } while (result->NextRow()); -- cgit v1.2.3