void CFriends::RemoveFriend(const char *pName, const char *pClan) { CALLSTACK_ADD(); unsigned NameHash = str_quickhash(pName); unsigned ClanHash = str_quickhash(pClan); for(int i = 0; i < m_NumFriends; ++i) { if(m_aFriends[i].m_NameHash == NameHash && ((g_Config.m_ClFriendsIgnoreClan && m_aFriends[i].m_aName[0]) || m_aFriends[i].m_ClanHash == ClanHash)) { RemoveFriend(i); return; } } }
virtual void PerformAction(const EFriendActionType::Type ActionType) override { switch(ActionType) { case EFriendActionType::AcceptFriendRequest : { AcceptFriend(); break; } case EFriendActionType::RemoveFriend : case EFriendActionType::IgnoreFriendRequest : case EFriendActionType::BlockFriend : case EFriendActionType::RejectFriendRequest: case EFriendActionType::CancelFriendRequest: { RemoveFriend(EFriendActionType::ToText(ActionType).ToString()); break; } case EFriendActionType::SendFriendRequest : { SendFriendRequest(); break; } case EFriendActionType::InviteToGame : { InviteToGame(); break; } case EFriendActionType::JoinGame : { JoinGame(); break; } case EFriendActionType::RejectGame: { RejectGame(); break; } case EFriendActionType::Chat: { StartChat(); break; } } SetPendingAction(EFriendActionType::MAX_None); }