aboutsummaryrefslogtreecommitdiff
path: root/src/game/MapManager.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-06-16 11:19:59 -0500
committermegamage <none@none>2009-06-16 11:19:59 -0500
commit3cf2be604275ec1ae7321b78dc6b62e559a5d7c7 (patch)
treed119d51bcee396d8fe913fa6b709ff45da2a2c2e /src/game/MapManager.cpp
parentaaec3c819167afb3f40410142654ed4d57926b10 (diff)
[8026] Obtain object's map directly by calling appropriate WorldObject::GetMap()/GetBaseMap() functions instead of accessing MapManager. Code cleanups. Big thanks Infinity for tests. Author: Ambal
--HG-- branch : trunk
Diffstat (limited to 'src/game/MapManager.cpp')
-rw-r--r--src/game/MapManager.cpp28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp
index 43c778858b5..6c74237406f 100644
--- a/src/game/MapManager.cpp
+++ b/src/game/MapManager.cpp
@@ -101,7 +101,7 @@ void MapManager::checkAndCorrectGridStatesArray()
}
Map*
-MapManager::_GetBaseMap(uint32 id)
+MapManager::_createBaseMap(uint32 id)
{
Map *m = _findMap(id);
@@ -127,19 +127,24 @@ MapManager::_GetBaseMap(uint32 id)
Map* MapManager::GetMap(uint32 id, const WorldObject* obj)
{
+ 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 = _GetBaseMap(id);
+ Map *m = _createBaseMap(id);
if (m && obj && m->Instanceable()) m = ((MapInstanced*)m)->GetInstance(obj);
return m;
}
-Map* MapManager::FindMap(uint32 mapid, uint32 instanceId)
+Map* MapManager::FindMap(uint32 mapid, uint32 instanceId) const
{
- Map *map = FindMap(mapid);
- if(!map) return NULL;
- if(!map->Instanceable()) return instanceId == 0 ? map : NULL;
+ Map *map = _findMap(mapid);
+ if(!map)
+ return NULL;
+
+ if(!map->Instanceable())
+ return instanceId == 0 ? map : NULL;
+
return ((MapInstanced*)map)->FindMap(instanceId);
}
@@ -224,14 +229,14 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player)
void MapManager::DeleteInstance(uint32 mapid, uint32 instanceId)
{
- Map *m = _GetBaseMap(mapid);
+ Map *m = _createBaseMap(mapid);
if (m && m->Instanceable())
((MapInstanced*)m)->DestroyInstance(instanceId);
}
void MapManager::RemoveBonesFromMap(uint32 mapid, uint64 guid, float x, float y)
{
- bool remove_result = _GetBaseMap(mapid)->RemoveBones(guid, x, y);
+ bool remove_result = _createBaseMap(mapid)->RemoveBones(guid, x, y);
if (!remove_result)
{
@@ -290,13 +295,6 @@ bool MapManager::IsValidMAP(uint32 mapid)
// TODO: add check for battleground template
}
-/*void MapManager::LoadGrid(int mapid, float x, float y, const WorldObject* obj, bool no_unload)
-{
- CellPair p = Trinity::ComputeCellPair(x,y);
- Cell cell(p);
- GetMap(mapid, obj)->LoadGrid(cell,no_unload);
-}*/
-
void MapManager::UnloadAll()
{
for(MapMapType::iterator iter=i_maps.begin(); iter != i_maps.end(); ++iter)