aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/MapManager.cpp
diff options
context:
space:
mode:
authormegamage <none@none.none>2011-11-23 09:34:08 -0500
committermegamage <none@none.none>2011-11-23 09:34:08 -0500
commit298c162c86130d59c6c60f2fedc7a9b2af034a8d (patch)
treea9d678c04646a98aaf715d64252ab56411a1f0fd /src/server/game/Maps/MapManager.cpp
parent1b3017472be902ddfb900230ea8efc07132927a1 (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-xsrc/server/game/Maps/MapManager.cpp5
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)