本文整理汇总了C++中CChatChannel::FillMembersList方法的典型用法代码示例。如果您正苦于以下问题:C++ CChatChannel::FillMembersList方法的具体用法?C++ CChatChannel::FillMembersList怎么用?C++ CChatChannel::FillMembersList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CChatChannel
的用法示例。
在下文中一共展示了CChatChannel::FillMembersList方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: JoinChannel
void CChat::JoinChannel(LPCTSTR pszName, LPCTSTR pszPassword, CChatMember *pMember)
{
ADDTOCALLSTACK("CChat::JoinChannel");
ASSERT(pMember);
CClient *pMemberClient = pMember->GetClient();
ASSERT(pMemberClient);
CChatChannel *pNewChannel = FindChannel(pszName);
if ( !pNewChannel )
{
pMemberClient->addChatSystemMessage(CHATMSG_NoConference, pszName);
return;
}
pszName = pNewChannel->m_sName; // fix case-sensitive mismatch
CChatChannel *pCurrentChannel = pMember->GetChannel();
if ( pCurrentChannel && (pCurrentChannel == pNewChannel) )
{
pMember->SendChatMsg(CHATMSG_AlreadyInConference, pszName);
return;
}
else if ( !pNewChannel->m_sPassword.IsEmpty() && (!pszPassword || (strcmp(static_cast<LPCTSTR>(pNewChannel->m_sPassword), pszPassword) != 0)) )
{
if ( pMemberClient->m_UseNewChatSystem )
{
CGString sName;
FormatName(sName, NULL, true);
pMember->SendChatMsg(CHATMSG_PlayerMessage, sName, " Your client version can't join channels with password.");
}
else
pMemberClient->addChatSystemMessage(CHATMSG_IncorrectPassword);
return;
}
/*else if ( pNewChannel->m_Members.GetCount() >= UCHAR_MAX )
{
pMemberClient->addChatSystemMessage(CHATMSG_ConferenceIsFull, pszName);
return;
}*/
// Leave current channel
if ( pCurrentChannel )
pCurrentChannel->RemoveMember(pMember);
// Join the new channel
pNewChannel->AddMember(pMember);
pNewChannel->SendMember(pMember); // send this member to all others clients
pMemberClient->addChatSystemMessage(CHATCMD_JoinedChannel, pszName);
if ( !pMemberClient->m_UseNewChatSystem )
pNewChannel->FillMembersList(pMember); // fill the members list on this client
}