*Move relocation notify back to map class so that mtmap can work better.
--HG-- branch : trunk
This commit is contained in:
@@ -194,6 +194,8 @@ Map::Map(uint32 id, time_t expiry, uint32 InstanceId, uint8 SpawnMode)
|
|||||||
i_gridExpiry(expiry)
|
i_gridExpiry(expiry)
|
||||||
, i_lock(true)
|
, i_lock(true)
|
||||||
{
|
{
|
||||||
|
m_notifyTimer.SetInterval(IN_MILISECONDS/2);
|
||||||
|
|
||||||
for(unsigned int idx=0; idx < MAX_NUMBER_OF_GRIDS; ++idx)
|
for(unsigned int idx=0; idx < MAX_NUMBER_OF_GRIDS; ++idx)
|
||||||
{
|
{
|
||||||
for(unsigned int j=0; j < MAX_NUMBER_OF_GRIDS; ++j)
|
for(unsigned int j=0; j < MAX_NUMBER_OF_GRIDS; ++j)
|
||||||
@@ -757,6 +759,12 @@ void Map::Update(const uint32 &t_diff)
|
|||||||
MoveAllCreaturesInMoveList();
|
MoveAllCreaturesInMoveList();
|
||||||
RemoveAllObjectsInRemoveList();
|
RemoveAllObjectsInRemoveList();
|
||||||
|
|
||||||
|
if(m_notifyTimer.Passed())
|
||||||
|
{
|
||||||
|
m_notifyTimer.Reset();
|
||||||
|
RelocationNotify();
|
||||||
|
}
|
||||||
|
|
||||||
// Don't unload grids if it's battleground, since we may have manually added GOs,creatures, those doesn't load from DB at grid re-load !
|
// Don't unload grids if it's battleground, since we may have manually added GOs,creatures, those doesn't load from DB at grid re-load !
|
||||||
// This isn't really bother us, since as soon as we have instanced BG-s, the whole map unloads as the BG gets ended
|
// This isn't really bother us, since as soon as we have instanced BG-s, the whole map unloads as the BG gets ended
|
||||||
if (IsBattleGroundOrArena())
|
if (IsBattleGroundOrArena())
|
||||||
|
|||||||
@@ -495,6 +495,7 @@ class MANGOS_DLL_SPEC Map : public GridRefManager<NGridType>, public MaNGOS::Obj
|
|||||||
std::bitset<TOTAL_NUMBER_OF_CELLS_PER_MAP*TOTAL_NUMBER_OF_CELLS_PER_MAP> marked_cells;
|
std::bitset<TOTAL_NUMBER_OF_CELLS_PER_MAP*TOTAL_NUMBER_OF_CELLS_PER_MAP> marked_cells;
|
||||||
|
|
||||||
time_t i_gridExpiry;
|
time_t i_gridExpiry;
|
||||||
|
IntervalTimer m_notifyTimer;
|
||||||
|
|
||||||
bool i_lock;
|
bool i_lock;
|
||||||
std::vector<Unit*> i_unitsToNotifyBacklog;
|
std::vector<Unit*> i_unitsToNotifyBacklog;
|
||||||
|
|||||||
+2
-2
@@ -1752,11 +1752,11 @@ void World::Update(uint32 diff)
|
|||||||
///- Update objects when the timer has passed (maps, transport, creatures,...)
|
///- Update objects when the timer has passed (maps, transport, creatures,...)
|
||||||
MapManager::Instance().Update(diff); // As interval = 0
|
MapManager::Instance().Update(diff); // As interval = 0
|
||||||
|
|
||||||
if(m_timers[WUPDATE_OBJECTS].Passed())
|
/*if(m_timers[WUPDATE_OBJECTS].Passed())
|
||||||
{
|
{
|
||||||
m_timers[WUPDATE_OBJECTS].Reset();
|
m_timers[WUPDATE_OBJECTS].Reset();
|
||||||
MapManager::Instance().DoDelayedMovesAndRemoves();
|
MapManager::Instance().DoDelayedMovesAndRemoves();
|
||||||
}
|
}*/
|
||||||
|
|
||||||
///- Process necessary scripts
|
///- Process necessary scripts
|
||||||
if (!m_scriptSchedule.empty())
|
if (!m_scriptSchedule.empty())
|
||||||
|
|||||||
Reference in New Issue
Block a user