//----------------------------------------------------------------------------- // Force spatial partition updates (to avoid threading problems caused by lazy update) //----------------------------------------------------------------------------- void UpdateDirtySpatialPartitionEntities() { SpatialPartitionListMask_t listMask; #ifdef CLIENT_DLL listMask = PARTITION_CLIENT_GAME_EDICTS; #else listMask = PARTITION_SERVER_GAME_EDICTS; #endif s_DirtyKDTree.OnPreQuery( listMask ); s_DirtyKDTree.OnPostQuery( listMask ); }
//----------------------------------------------------------------------------- // Marks the spatial partition dirty //----------------------------------------------------------------------------- void CCollisionProperty::MarkPartitionHandleDirty() { if ( !m_pOuter->IsEFlagSet( EFL_DIRTY_SPATIAL_PARTITION ) ) { s_DirtyKDTree.AddEntity( m_pOuter ); m_pOuter->AddEFlags( EFL_DIRTY_SPATIAL_PARTITION ); } }
//----------------------------------------------------------------------------- // Marks the spatial partition dirty //----------------------------------------------------------------------------- void CCollisionProperty::MarkPartitionHandleDirty() { // don't bother with the world if ( m_pOuter->entindex() == 0 ) return; if ( !m_pOuter->IsEFlagSet( EFL_DIRTY_SPATIAL_PARTITION ) ) { m_pOuter->AddEFlags( EFL_DIRTY_SPATIAL_PARTITION ); s_DirtyKDTree.AddEntity( m_pOuter ); } #ifdef CLIENT_DLL GetOuter()->MarkRenderHandleDirty(); g_pClientShadowMgr->AddToDirtyShadowList( GetOuter() ); #endif }