diff --git a/src/game/Group.cpp b/src/game/Group.cpp index 467ba9e0e..961b82a6d 100644 --- a/src/game/Group.cpp +++ b/src/game/Group.cpp @@ -1644,11 +1644,8 @@ InstanceGroupBind* Group::GetBoundInstance(Player* player) return NULL; } -InstanceGroupBind* Group::GetBoundInstance(Map* aMap) +InstanceGroupBind* Group::GetBoundInstance(Map* aMap, Difficulty difficulty) { - // Currently spawn numbering not different from map difficulty - Difficulty difficulty = GetDifficulty(aMap->IsRaid()); - // some instances only have one difficulty MapDifficulty const* mapDiff = GetMapDifficultyData(aMap->GetId(),difficulty); if(!mapDiff) diff --git a/src/game/Group.h b/src/game/Group.h index 504358b25..397363e3a 100644 --- a/src/game/Group.h +++ b/src/game/Group.h @@ -328,7 +328,7 @@ class MANGOS_DLL_SPEC Group InstanceGroupBind* BindToInstance(InstanceSave *save, bool permanent, bool load = false); void UnbindInstance(uint32 mapid, uint8 difficulty, bool unload = false); InstanceGroupBind* GetBoundInstance(Player* player); - InstanceGroupBind* GetBoundInstance(Map* aMap); + InstanceGroupBind* GetBoundInstance(Map* aMap, Difficulty difficulty); BoundInstancesMap& GetBoundInstances(Difficulty difficulty) { return m_boundInstances[difficulty]; } protected: diff --git a/src/game/Map.cpp b/src/game/Map.cpp index a1e5a846a..b11881131 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -2450,7 +2450,7 @@ bool InstanceMap::Add(Player *player) if(pGroup) { // solo saves should be reset when entering a group - InstanceGroupBind *groupBind = pGroup->GetBoundInstance(this); + InstanceGroupBind *groupBind = pGroup->GetBoundInstance(this,GetDifficulty()); if(playerBind) { sLog.outError("InstanceMap::Add: player %s(%d) is being put in instance %d,%d,%d,%d,%d,%d but he is in group %d and is bound to instance %d,%d,%d,%d,%d,%d!", player->GetName(), player->GetGUIDLow(), mapSave->GetMapId(), mapSave->GetInstanceId(), mapSave->GetDifficulty(), mapSave->GetPlayerCount(), mapSave->GetGroupCount(), mapSave->CanReset(), GUID_LOPART(pGroup->GetLeaderGUID()), playerBind->save->GetMapId(), playerBind->save->GetInstanceId(), playerBind->save->GetDifficulty(), playerBind->save->GetPlayerCount(), playerBind->save->GetGroupCount(), playerBind->save->CanReset()); diff --git a/src/game/MapInstanced.cpp b/src/game/MapInstanced.cpp index 46263e2be..7f0f0decd 100644 --- a/src/game/MapInstanced.cpp +++ b/src/game/MapInstanced.cpp @@ -139,7 +139,7 @@ Map* MapInstanced::CreateInstance(const uint32 mapId, Player * player) InstanceGroupBind *groupBind = NULL; Group *group = player->GetGroup(); // use the player's difficulty setting (it may not be the same as the group's) - if(group && (groupBind = group->GetBoundInstance(this))) + if(group && (groupBind = group->GetBoundInstance(this,player->GetDifficulty(IsRaid())))) pSave = groupBind->save; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index fd688bba5..990d10e2f 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9592" + #define REVISION_NR "9593" #endif // __REVISION_NR_H__