diff options
author | megamage <none@none.none> | 2011-11-23 09:34:08 -0500 |
---|---|---|
committer | megamage <none@none.none> | 2011-11-23 09:34:08 -0500 |
commit | 298c162c86130d59c6c60f2fedc7a9b2af034a8d (patch) | |
tree | a9d678c04646a98aaf715d64252ab56411a1f0fd /src/server/game/Maps/MapManager.cpp | |
parent | 1b3017472be902ddfb900230ea8efc07132927a1 (diff) |
Do not allow an instance map to be created twice if it already exists. Fix #4018.
Diffstat (limited to 'src/server/game/Maps/MapManager.cpp')
-rwxr-xr-x | src/server/game/Maps/MapManager.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp index 22eaa77cc94..2533096cc22 100755 --- a/src/server/game/Maps/MapManager.cpp +++ b/src/server/game/Maps/MapManager.cpp @@ -125,7 +125,8 @@ Map* MapManager::CreateMap(uint32 id, const WorldObject* obj, uint32 /*instanceI //if (!obj->IsInWorld()) sLog->outError("GetMap: called for map %d with object (typeid %d, guid %d, mapid %d, instanceid %d) who is not in world!", id, obj->GetTypeId(), obj->GetGUIDLow(), obj->GetMapId(), obj->GetInstanceId()); Map* m = _createBaseMap(id); - if (m && (obj->GetTypeId() == TYPEID_PLAYER) && m->Instanceable()) m = ((MapInstanced*)m)->CreateInstance(id, (Player*)obj); + if (m && obj->GetTypeId() == TYPEID_PLAYER && m->Instanceable()) + m = ((MapInstanced*)m)->CreateInstanceForPlayer(id, (Player*)obj); return m; } @@ -139,7 +140,7 @@ Map* MapManager::FindMap(uint32 mapid, uint32 instanceId) const if (!map->Instanceable()) return instanceId == 0 ? map : NULL; - return ((MapInstanced*)map)->FindMap(instanceId); + return ((MapInstanced*)map)->FindInstanceMap(instanceId); } bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck) |