// 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 ); }