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

📄 charselect.cpp

📁 墨香最新私服
💻 CPP
字号:
// CharSelect.cpp: implementation of the CCharSelect class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "CharSelect.h"
#include "StateMng.h"
#include "DummyObjMng.h"

#include "Console.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

extern DWORD g_ConnectDist;
extern DWORD g_DisconnectDist;
extern DWORD g_TryToConnectAgent;
extern DWORD g_ConnectAgent;
extern DWORD g_DisconnectAgent;

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

CCharSelect::CCharSelect()
{
}

CCharSelect::~CCharSelect()
{
}

BOOL CCharSelect::Init( int id, CStateMng* pMgr, CDummyNetwork* pNet, CDummyObjMng* pDOMgr )
{
	CGameState::Init( id, pMgr, pNet, pDOMgr );

	return TRUE;
}

void CCharSelect::Open( void* pInitParam )
{
	m_pNetwork->SetCurState( this );

	if( pInitParam )
	{
		SEND_CHARSELECT_INFO* pmsg = (SEND_CHARSELECT_INFO *)pInitParam;
		NetworkMsgParse( pmsg->Category, pmsg->Protocol, pInitParam );
	}

}

void CCharSelect::Close()
{
}

void CCharSelect::Exit()
{
}

void CCharSelect::Process()
{
}

void CCharSelect::NetworkMsgParse( BYTE Category, BYTE Protocol, void* pMsg )
{
	CGameState::CommonNetworkMsgParse( Category, Protocol, pMsg );

	switch( Category ) 
	{
	case MP_USERCONN:
		{
			switch( Protocol ) 
			{
			case MP_USERCONN_CHARACTERLIST_ACK:
				{
					SEND_CHARSELECT_INFO* pmsg = (SEND_CHARSELECT_INFO*)pMsg;
					if( pmsg->CharNum )
					{
						m_pDummyObjMgr->SetObjectNum( pmsg->CharNum );

						m_pStateMng->ChangeState( eGAMESTATE_GAMELOADING, pMsg, sizeof(SEND_CHARSELECT_INFO) );
					}
					else
					{
						m_pStateMng->ChangeState( eGAMESTATE_CHARMAKE, "NULL", 0 );
					}
				}				
				return;
			case MP_USERCONN_CHARACTERLIST_NACK:
				{
					g_DisconnectAgent++;
					
					m_pNetwork->Disconnect();

					m_pStateMng->ChangeState( eGAMESTATE_END, "CharSelect - MP_USERCONN_CHARACTERLIST_NACK", 0 );
				}
				return;
			}
		}
		return;
	}
}

void CCharSelect::OnDisconnect()
{
	m_pStateMng->ChangeState( eGAMESTATE_END, "CCharSelect-OnDisconnect()", 0 );

	g_DisconnectAgent++;
}

⌨️ 快捷键说明

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