bool CClient::CanHear( const CObjBaseTemplate * pSrc, TALKMODE_TYPE mode ) const { ADDTOCALLSTACK("CClient::CanHear"); // can we hear this text or sound. if ( !IsConnectTypePacket() ) return( false ); if ( mode == TALKMODE_BROADCAST || pSrc == NULL ) return( true ); if ( m_pChar == NULL ) return( false ); if ( IsPriv( PRIV_HEARALL ) && pSrc->IsChar()&& ( mode == TALKMODE_SYSTEM || mode == TALKMODE_SAY || mode == TALKMODE_WHISPER || mode == TALKMODE_YELL )) { const CChar * pCharSrc = dynamic_cast <const CChar*> ( pSrc ); ASSERT(pCharSrc); if ( pCharSrc && pCharSrc->IsClient()) { if ( pCharSrc->GetPrivLevel() <= GetPrivLevel()) { return( true ); } } } return( m_pChar->CanHear( pSrc, mode )); }
bool CClient::CanHear( const CObjBaseTemplate * pSrc, TALKMODE_TYPE mode ) const { ADDTOCALLSTACK("CClient::CanHear"); // can we hear this text or sound. if ( !IsConnectTypePacket() ) return false; if ( !pSrc || (mode == TALKMODE_BROADCAST) ) return true; if ( !m_pChar ) return false; if ( IsPriv(PRIV_HEARALL) && pSrc->IsChar() && ((mode == TALKMODE_SYSTEM) || (mode == TALKMODE_SAY) || (mode == TALKMODE_WHISPER) || (mode == TALKMODE_YELL)) ) { const CChar *pCharSrc = dynamic_cast<const CChar *>(pSrc); ASSERT(pCharSrc); if ( pCharSrc && pCharSrc->m_pClient ) { if ( pCharSrc->GetPrivLevel() <= GetPrivLevel() ) return true; } } return m_pChar->CanHear(pSrc, mode); }
bool CClient::CanHear(const CObjBaseTemplate *pSrc, TALKMODE_TYPE mode) const { ADDTOCALLSTACK("CClient::CanHear"); // can we hear this text or sound. if ( !IsConnectTypePacket() ) return false; if ( !pSrc ) return true; if ( !m_pChar ) return false; if ( IsPriv(PRIV_HEARALL) && pSrc->IsChar() && ((mode == TALKMODE_SAY) || (mode == TALKMODE_WHISPER) || (mode == TALKMODE_YELL)) ) { const CChar *pChar = static_cast<const CChar *>(pSrc); if ( GetPrivLevel() >= pChar->GetPrivLevel() ) return true; } return m_pChar->CanHear(pSrc, mode); }