//----------------------------------------------------------------------------- // Purpose: // Assignment // Input : src - //----------------------------------------------------------------------------- CChoreoChannel& CChoreoChannel::operator=( const CChoreoChannel& src ) { m_bActive = src.m_bActive; Q_strncpy( m_szName, src.m_szName, sizeof( m_szName ) ); for ( int i = 0; i < src.m_Events.Count(); i++ ) { CChoreoEvent *e = src.m_Events[ i ]; CChoreoEvent *newEvent = new CChoreoEvent( e->GetScene() ); *newEvent = *e; AddEvent( newEvent ); newEvent->SetChannel( this ); newEvent->SetActor( m_pActor ); } return *this; }
bool CChoreoChannel::RestoreFromBuffer( CUtlBuffer& buf, CChoreoScene *pScene, CChoreoActor *pActor, IChoreoStringPool *pStringPool ) { char sz[ 256 ]; pStringPool->GetString( buf.GetShort(), sz, sizeof( sz ) ); SetName( sz ); int numEvents = (int)buf.GetUnsignedChar(); for ( int i = 0 ; i < numEvents; ++i ) { CChoreoEvent *e = pScene->AllocEvent(); if ( e->RestoreFromBuffer( buf, pScene, pStringPool ) ) { AddEvent( e ); e->SetChannel( this ); e->SetActor( pActor ); continue; } return false; } SetActive( buf.GetChar() == 1 ? true : false ); return true; }