[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

@@ -1048,8 +1048,8 @@ bool Object::PrintIndexError(uint32 index, bool set) const
WorldObject::WorldObject()
: m_mapId(0), m_InstanceId(0), m_phaseMask(PHASEMASK_NORMAL),
m_positionX(0.0f), m_positionY(0.0f), m_positionZ(0.0f), m_orientation(0.0f)
, m_map(NULL), m_zoneScript(NULL)
m_positionX(0.0f), m_positionY(0.0f), m_positionZ(0.0f), m_orientation(0.0f), m_currMap(NULL)
, m_zoneScript(NULL)
, m_isActive(false), IsTempWorldObject(false)
, m_name("")
{
@@ -1100,11 +1100,9 @@ void WorldObject::CleanupsBeforeDelete()
{
}
void WorldObject::_Create( uint32 guidlow, HighGuid guidhigh, uint32 mapid, uint32 phaseMask )
void WorldObject::_Create( uint32 guidlow, HighGuid guidhigh, uint32 phaseMask )
{
Object::_Create(guidlow, 0, guidhigh);
m_mapId = mapid;
m_phaseMask = phaseMask;
}
@@ -1676,19 +1674,19 @@ void WorldObject::SendObjectDeSpawnAnim(uint64 guid)
SendMessageToSet(&data, true);
}
Map* WorldObject::_getMap()
void WorldObject::SetMap(Map * map)
{
return m_map = MapManager::Instance().GetMap(GetMapId(), this);
}
Map* WorldObject::_findMap()
{
return m_map = MapManager::Instance().FindMap(GetMapId(), GetInstanceId());
ASSERT(map);
m_currMap = map;
//lets save current map's Id/instanceId
m_mapId = map->GetId();
m_InstanceId = map->GetInstanceId();
}
Map const* WorldObject::GetBaseMap() const
{
return MapManager::Instance().CreateBaseMap(GetMapId());
ASSERT(m_currMap);
return m_currMap->GetParent();
}
void WorldObject::AddObjectToRemoveList()