⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chatroommanager.cpp

📁 魔域源代码需要的可以学习一下真么这么麻烦啊
💻 CPP
字号:
// ChatRoomManager.cpp: implementation of the CChatRoomManager class.
//
//////////////////////////////////////////////////////////////////////

#include "ChatRoomManager.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CChatRoomManager g_objChatRoomManager;

CChatRoomManager::CChatRoomManager()
{
}

CChatRoomManager::~CChatRoomManager()
{
	Clear();
}

CChatRoomManager* CChatRoomManager::CreateNew()
{
	return new CChatRoomManager;
}

void CChatRoomManager::Init()
{
	m_nChatRoomNum = 5;		//案子中规定聊天室为5个
	CChatRoom * pChatRoom = NULL;
	char szName[MAX_PATH];
	for(int i=0; i<m_nChatRoomNum; ++i)
	{
		pChatRoom = CChatRoom::CreateNew();
		CHECK(pChatRoom);
	
		//初始化聊天室属性
		pChatRoom->SetID(i+1);
		sprintf(szName,STR_CHATROOM_NAME,i+1);
		pChatRoom->SetName(szName);		
		m_vtChatRoomSet.push_back(pChatRoom);
	
	}
}

void CChatRoomManager::Clear()
{		
	CChatRoom * pChatRoom=NULL;

	for(ITCHATROOM itChatRoom=m_vtChatRoomSet.begin(); itChatRoom!=m_vtChatRoomSet.end(); ++itChatRoom)
	{
		pChatRoom = (*itChatRoom);		
		SAFE_RELEASE(pChatRoom);
	}
	m_vtChatRoomSet.clear();
}

void CChatRoomManager::OnTimer(time_t tCurr)
{
	CChatRoom * pChatRoom=NULL;
	
	for(ITCHATROOM itChatRoom=m_vtChatRoomSet.begin(); itChatRoom!=m_vtChatRoomSet.end(); ++itChatRoom)
	{
		pChatRoom = (*itChatRoom);
		CHECK(pChatRoom);
		pChatRoom->OnTimer(tCurr);	
	}
	
}

CChatRoom* CChatRoomManager::GetRoom(unsigned short usRoomID)
{
	CChatRoom * pChatRoom=NULL;
	
	for(ITCHATROOM itChatRoom=m_vtChatRoomSet.begin(); itChatRoom!=m_vtChatRoomSet.end(); ++itChatRoom)
	{
		pChatRoom = (*itChatRoom);
		CHECKF(pChatRoom);		
		if(pChatRoom->GetRoomID()==usRoomID)
			return pChatRoom;
	}
	return NULL;
}

CChatRoom* CChatRoomManager::GetRoomByPlayer(CPlayer *pPlayer)
{
	CChatRoom * pChatRoom=NULL;

	for(ITCHATROOM itChatRoom=m_vtChatRoomSet.begin(); itChatRoom!=m_vtChatRoomSet.end(); ++itChatRoom)
	{
		pChatRoom = (*itChatRoom);
		CHECKF(pChatRoom);
		if(pChatRoom->IsExist(pPlayer))
			return pChatRoom;
	}	
	return NULL;
}

CChatRoom* CChatRoomManager::GetRoom(const char *pBuff)
{
	CChatRoom * pChatRoom=NULL;
	
	for(ITCHATROOM itChatRoom=m_vtChatRoomSet.begin(); itChatRoom!=m_vtChatRoomSet.end(); ++itChatRoom)
	{
		pChatRoom = (*itChatRoom);
		CHECKF(pChatRoom);		
		if(strcmp(pChatRoom->GetRoomName(),pBuff)==0)
			return pChatRoom;
	}
	return NULL;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -