aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-06-23 19:40:00 +0200
committerShauren <shauren.trinity@gmail.com>2013-06-23 19:40:00 +0200
commit9d9a92a56db2b22f61e54fdb33eb1f0954f218ab (patch)
treebf382d97d57151762550e1c66efcb048dbec66c0 /src
parentab1fa7b3ad65dcf3714f95af4ebd5a0eccac0794 (diff)
Core/Instances: Fixed loading DungeonEncounters.dbc (-1 means all difficulties), thx Northstrider for pointing it out
Diffstat (limited to 'src')
-rw-r--r--src/server/game/DataStores/DBCStructure.h2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp19
2 files changed, 18 insertions, 3 deletions
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index a9afe7bafa6..893cbd41f6b 100644
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -904,7 +904,7 @@ struct DungeonEncounterEntry
{
uint32 id; // 0 unique id
uint32 mapId; // 1 map id
- uint32 difficulty; // 2 instance mode
+ int32 difficulty; // 2 instance mode
//uint32 unk0; // 3
uint32 encounterIndex; // 4 encounter index for creating completed mask
char* encounterName; // 5 encounter name
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());