📄 gameroom.cpp
字号:
#include "StdAfx.h"
#include ".\gameroom.h"
#include "Player.h"
#include "PartyManager.h"
#include "Party.h"
GameRoom::GameRoom(void) : m_MasterUserKey(0)
{
}
GameRoom::~GameRoom(void)
{
}
VOID GameRoom::Release()
{
GameZone::Release();
// 颇萍甫 昏力茄促.
Party *pParty;
m_pPartyHashTable->SetFirst();
while( pParty = m_pPartyHashTable->GetNext() )
{
PartyManager::Instance()->RemoveParty( pParty->GetPartyKey(), FALSE );
}
m_pPartyHashTable->clear();
}
VOID GameRoom::Init( KEYTYPE Key, CODETYPE MapCode, const TCHAR * pszRoomTitle, const TCHAR * pszRoomPWD, const BASE_ROOMINFO * IN pRoomInfo )
{
GameZone::Init( Key, MapCode );
SetRoomTitle( pszRoomTitle );
SetRoomPWD( pszRoomPWD );
SetBaseRoomInfo( pRoomInfo );
}
WORD GameRoom::CreateParty( DWORD dwMasterUserKey, BYTE byTeamIndex )
{
Party *pParty = PartyManager::Instance()->AllocParty();
if( pParty )
{
pParty->Init( dwMasterUserKey );
m_pPartyHashTable->Add( pParty, byTeamIndex );
return pParty->GetPartyKey();
}
return 0;
}
BOOL GameRoom::Join( Player * pPlayer, CODETYPE FieldCode, WzID AreaID )
{
if( GameZone::Join( pPlayer, FieldCode, AreaID ) )
{
pPlayer->SaveStartLocation();
return TRUE;
}
return FALSE;
}
VOID GameRoom::Leave( Player * pPlayer )
{
// 颇萍俊 家加捞 登菌促搁 颇萍俊辑 狐柳促.
pPlayer->LeaveParty();
GameZone::Leave( pPlayer );
}
VOID GameRoom::ChangeMaster( DWORD dwNextMasterUserKey )
{
// 规厘阑 函版茄促.
SetMasterUserKey( dwNextMasterUserKey );
// 颇萍厘阑 函版茄促.(清泼, 固记冯)
Party *pParty = m_pPartyHashTable->GetData( 0 );
if( pParty )
{
RC::ePARTY_RESULT rcResult = PartyManager::Instance()->AppointMaster( pParty->GetPartyKey(), dwNextMasterUserKey );
if( rcResult != RC::RC_PARTY_SUCCESS )
{
// SUNLOG( eFULL_LOG, "[GameRoom::ChangeMaster] Can't Change The Master Of Party! ErrorCode[%d] ", rcResult );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -