[8182] Store and use Map* pointer in WorldObject instead map ids for speedup Author: Ambal

Also some code logic cleanups.
    Changes let make more cleanups in base map access and other places,
    but this chnages not inlcuded in patch.

*This patch may cause crash.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-07-16 11:49:00 +08:00
parent 762528c5dd
commit 208087ff6e
28 changed files with 151 additions and 147 deletions

View File

@@ -128,13 +128,13 @@ MapManager::_createBaseMap(uint32 id)
return m;
}
Map* MapManager::GetMap(uint32 id, const WorldObject* obj)
Map* MapManager::CreateMap(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 = _createBaseMap(id);
if (m && obj && m->Instanceable()) m = ((MapInstanced*)m)->GetInstance(obj);
if (m && (obj->GetTypeId() == TYPEID_PLAYER) && m->Instanceable()) m = ((MapInstanced*)m)->CreateInstance(id, (Player*)obj);
return m;
}