aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/MapManager.cpp
diff options
context:
space:
mode:
authorRat <gmstreetrat@gmail.com>2011-11-23 20:23:04 +0100
committerRat <gmstreetrat@gmail.com>2011-11-23 20:23:04 +0100
commit47d0a7f3afbb25d26dec8721801b13d4392aaf1d (patch)
tree86b1d2c876d67fd855ac67d875210df4cdb95b43 /src/server/game/Maps/MapManager.cpp
parent47e28a7576d089552bc3ebf3dddcb6d9bf3e69f6 (diff)
parent0eb193f2b416af7f34bd89641aec88d843c9197e (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore
Conflicts: src/server/game/DataStores/DBCStores.cpp src/server/game/DataStores/DBCfmt.h src/server/game/Server/Protocol/Opcodes.cpp
Diffstat (limited to 'src/server/game/Maps/MapManager.cpp')
-rwxr-xr-xsrc/server/game/Maps/MapManager.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp
index 78aeb32ab2d..bb62912d204 100755
--- a/src/server/game/Maps/MapManager.cpp
+++ b/src/server/game/Maps/MapManager.cpp
@@ -95,9 +95,9 @@ void MapManager::checkAndCorrectGridStatesArray()
++i_GridStateErrorCount;
}
-Map* MapManager::_createBaseMap(uint32 id)
+Map* MapManager::CreateBaseMap(uint32 id)
{
- Map* m = _findMap(id);
+ Map* m = FindBaseMap(id);
if (m == NULL)
{
@@ -119,27 +119,26 @@ Map* MapManager::_createBaseMap(uint32 id)
return m;
}
-Map* MapManager::CreateMap(uint32 id, const WorldObject* obj, uint32 /*instanceId*/)
+Map* MapManager::CreateMap(uint32 id, Player* player)
{
- ASSERT(obj);
- //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);
+ Map* m = CreateBaseMap(id);
- if (m && (obj->GetTypeId() == TYPEID_PLAYER) && m->Instanceable()) m = ((MapInstanced*)m)->CreateInstance(id, (Player*)obj);
+ if (m && m->Instanceable())
+ m = ((MapInstanced*)m)->CreateInstanceForPlayer(id, player);
return m;
}
Map* MapManager::FindMap(uint32 mapid, uint32 instanceId) const
{
- Map* map = _findMap(mapid);
+ Map* map = FindBaseMap(mapid);
if (!map)
return NULL;
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)
@@ -248,7 +247,7 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player, bool loginCheck)
instaceIdToCheck = save->GetInstanceId();
// instanceId can never be 0 - will not be found
- if (!player->CheckInstanceCount(instaceIdToCheck))
+ if (!player->CheckInstanceCount(instaceIdToCheck) && !player->isDead())
{
player->SendTransferAborted(mapid, TRANSFER_ABORT_TOO_MANY_INSTANCES);
return false;