Clean up very some confusing MapManager functions (create/find map/base map).

This commit is contained in:
megamage
2011-11-23 12:45:59 -05:00
parent b3fef1e280
commit 98be413ce0
6 changed files with 25 additions and 30 deletions
+7 -9
View File
@@ -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,21 +119,19 @@ 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)->CreateInstanceForPlayer(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;
+9 -12
View File
@@ -35,14 +35,18 @@ class MapManager
friend class ACE_Singleton<MapManager, ACE_Thread_Mutex>;
public:
Map* CreateMap(uint32, const WorldObject* obj, uint32 instanceId);
Map const* CreateBaseMap(uint32 id) const { return const_cast<MapManager*>(this)->_createBaseMap(id); }
Map* FindMap(uint32 mapid, uint32 instanceId = 0) const;
Map* CreateBaseMap(uint32 mapId);
Map* FindBaseMap(uint32 mapId) const
{
MapMapType::const_iterator iter = i_maps.find(mapId);
return (iter == i_maps.end() ? NULL : iter->second);
}
Map* CreateMap(uint32 mapId, Player* player);
Map* FindMap(uint32 mapId, uint32 instanceId) const;
uint16 GetAreaFlag(uint32 mapid, float x, float y, float z) const
{
Map const* m = CreateBaseMap(mapid);
Map const* m = const_cast<MapManager*>(this)->CreateBaseMap(mapid);
return m->GetAreaFlag(x, y, z);
}
uint32 GetAreaId(uint32 mapid, float x, float y, float z) const
@@ -163,13 +167,6 @@ class MapManager
MapManager(const MapManager &);
MapManager& operator=(const MapManager &);
Map* _createBaseMap(uint32 id);
Map* _findMap(uint32 id) const
{
MapMapType::const_iterator iter = i_maps.find(id);
return (iter == i_maps.end() ? NULL : iter->second);
}
ACE_Thread_Mutex Lock;
uint32 i_gridCleanUpDelay;
MapMapType i_maps;