void CPoseController::BuildPoseIndexList( void ) { for ( int iPropNum = 0; iPropNum < MAX_POSE_CONTROLLED_PROPS; ++iPropNum ) { CBaseAnimating *pProp = dynamic_cast<CBaseAnimating*>( m_hProps[ iPropNum ].Get() ); if ( pProp ) { // Update the pose parameter index SetPoseIndex( iPropNum, pProp->LookupPoseParameter( m_iszPoseParameterName.ToCStr() ) ); } } }
void CPoseController::BuildPropList( void ) { int iPropNum = 0; CBaseEntity *pEnt = gEntList.FindEntityByName( NULL, m_iszPropName ); while ( pEnt && iPropNum < MAX_POSE_CONTROLLED_PROPS ) { CBaseAnimating *pProp = dynamic_cast<CBaseAnimating*>( pEnt ); if ( pProp ) { CDynamicProp *pDynamicProp = dynamic_cast<CDynamicProp*>( pProp ); if ( pDynamicProp ) pDynamicProp->PropSetSequence( 0 ); if ( m_hProps[ iPropNum ] != pProp ) { // Only set new handles (to avoid network spam) m_hProps.Set( iPropNum, pProp ); } // Update the pose parameter index SetPoseIndex( iPropNum, pProp->LookupPoseParameter( m_iszPoseParameterName.ToCStr() ) ); ++iPropNum; } // Get the next entity with specified targetname pEnt = gEntList.FindEntityByName( pEnt, m_iszPropName ); } // Nullify the remaining handles while ( iPropNum < MAX_POSE_CONTROLLED_PROPS ) { if ( m_hProps[ iPropNum ] != NULL ) m_hProps.Set( iPropNum, NULL ); ++iPropNum; } SetNextThink( gpGlobals->curtime + 1.0 ); }