コード例 #1
0
template<class T> void ObjectUpdater::Visit(GridRefManager<T> &m) {
    for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end();
            ++iter) {
        if (iter->getSource()->IsInWorld())
            iter->getSource()->Update(i_timeDiff);
    }
}
コード例 #2
0
void ObjectUpdater::Visit(GridRefManager<T>& m)
{
    for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
    {
        WorldObject::UpdateHelper helper(iter->getSource());
        helper.Update(i_timeDiff);
    }
}
コード例 #3
0
void ObjectGridUnloader::Visit(GridRefManager<T> &m) {
	while (!m.isEmpty()) {
		T *obj = m.getFirst()->getSource();
		// if option set then object already saved at this moment
		if (!sWorld->getBoolConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY))
			obj->SaveRespawnTime();
		///- object will get delinked from the manager when deleted
		delete obj;
	}
}
コード例 #4
0
ファイル: GridNotifiers.cpp プロジェクト: Keader/Sunwell
void ObjectUpdater::Visit(GridRefManager<T> &m)
{
    T* obj;
    for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); )
    {
        obj = iter->GetSource();
        ++iter;
        if (obj->IsInWorld())
            obj->Update(i_timeDiff);
    }
}
コード例 #5
0
ファイル: ObjectGridLoader.cpp プロジェクト: Adeer/OregonCore
void ObjectGridUnloader::Visit(GridRefManager<T> &m)
{
    while (!m.isEmpty())
    {
        T* obj = m.getFirst()->GetSource();
        // if option set then object already saved at this moment
        if (!sWorld.getConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY))
            obj->SaveRespawnTime();
        //Some creatures may summon other temp summons in CleanupsBeforeDelete()
        //So we need this even after cleaner (maybe we can remove cleaner)
        obj->CleanupsBeforeDelete();
        ///- object will get delinked from the manager when deleted
        delete obj;
    }
}
コード例 #6
0
void ObjectGridUnloader::Visit(GridRefManager<T> &m)
{
    while (!m.isEmpty())
    {
        T *obj = m.getFirst()->GetSource();
        // if option set then object already saved at this moment
        if (!sWorld->getBoolConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY))
            obj->SaveRespawnTime();
        //Some creatures may summon other temp summons in CleanupsBeforeDelete()
        //So we need this even after cleaner (maybe we can remove cleaner)
        //Example: Flame Leviathan Turret 33139 is summoned when a creature is deleted
        /// @todo Check if that script has the correct logic. Do we really need to summons something before deleting?
        obj->CleanupsBeforeDelete();
        ///- object will get delinked from the manager when deleted
        delete obj;
    }
}
コード例 #7
0
void
ObjectGridUnloader::Visit(GridRefManager<T>& m)
{
    // remove all cross-reference before deleting
    for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
        iter->getSource()->CleanupsBeforeDelete();

    while (!m.isEmpty())
    {
        T* obj = m.getFirst()->getSource();
        // if option set then object already saved at this moment
        if (!sWorld.getConfig(CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATELY))
            obj->SaveRespawnTime();
        ///- object must be out of world before delete
        obj->RemoveFromWorld();
        ///- object will get delinked from the manager when deleted
        delete obj;
    }
}
コード例 #8
0
void ObjectGridCleaner::Visit(GridRefManager<T> &m)
{
    for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
        iter->GetSource()->CleanupsBeforeDelete();
}
コード例 #9
0
void
ObjectGridCleaner::Visit(GridRefManager<T> &m)
{
    for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
        iter->getSource()->RemoveFromWorld();
}
コード例 #10
0
void ObjectUpdater::Visit(GridRefManager<T>& m)
{
    for (typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
        iter->getSource()->Update(i_timeDiff);
}
コード例 #11
0
template<class T> void
ObjectUpdater::Visit(GridRefManager<T> &m)
{
    for(typename GridRefManager<T>::iterator iter = m.begin(); iter != m.end(); ++iter)
        iter->getSource()->Update(i_realdiff, i_diff);
}