Пример #1
0
// Description:
//
// Arguments:
//
// Return:
//
bool CPersonalRangeSignaling::AddRangeSignal( float fRadius, float fBoundary, const char* sSignal, IAISignalExtraData *pData /*=NULL*/ )
{
  CRY_ASSERT( m_bInit == true );
  CRY_ASSERT( sSignal != NULL );
  CRY_ASSERT( fRadius > 0.5f );
  CRY_ASSERT( fBoundary >= 0.0f );

  bool      bRet = true;
  CRange*   pRange = SearchRange( sSignal, m_vecRanges );

  if( pRange == NULL )
  {
    pRange = new CRange( this );
    m_vecRanges.push_back( pRange );
  }

  pRange->Init( fRadius, fBoundary, sSignal, pData );
	std::sort( m_vecRanges.begin(), m_vecRanges.end(), &CompareRange ); // std::less is properly overridden
	
  return( bRet );
}