Remade access_requirement table, now each difficulty mode for each instance has its own entry (for future Dungeon Finder development)

Added completed achievement as new requirement type
Removed obsolete access_id from areatrigger_teleport table
Implemented automatic downscaling of raid difficulty when requested mode does not exist
Changed dungeon_difficulty in characters table to instance_mode_mask saving both dungeon and raid difficulty in form (dungeon diff | raid diff << 4)

--HG--
branch : trunk
This commit is contained in:
Shauren
2010-07-29 18:11:41 +02:00
parent dfe5ae36d3
commit ade1bbdd62
19 changed files with 172 additions and 156 deletions
+2 -6
View File
@@ -1769,9 +1769,7 @@ InstanceGroupBind* Group::GetBoundInstance(Map* aMap)
Difficulty difficulty = GetDifficulty(aMap->IsRaid());
// some instances only have one difficulty
MapDifficulty const* mapDiff = GetMapDifficultyData(aMap->GetId(),difficulty);
if (!mapDiff)
return NULL;
MapDifficulty const* mapDiff = GetDownscaledMapDifficultyData(aMap->GetId(),difficulty);
BoundInstancesMap::iterator itr = m_boundInstances[difficulty].find(aMap->GetId());
if (itr != m_boundInstances[difficulty].end())
@@ -1788,9 +1786,7 @@ InstanceGroupBind* Group::GetBoundInstance(MapEntry const* mapEntry)
Difficulty difficulty = GetDifficulty(mapEntry->IsRaid());
// some instances only have one difficulty
MapDifficulty const* mapDiff = GetMapDifficultyData(mapEntry->MapID,difficulty);
if (!mapDiff)
difficulty = DUNGEON_DIFFICULTY_NORMAL;
MapDifficulty const* mapDiff = GetDownscaledMapDifficultyData(mapEntry->MapID,difficulty);
BoundInstancesMap::iterator itr = m_boundInstances[difficulty].find(mapEntry->MapID);
if (itr != m_boundInstances[difficulty].end())