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

📄 gameloading.cpp

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

#include "stdafx.h"
#include "GameLoading.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
//////////////////////////////////////////////////////////////////////

CGameLoading::CGameLoading()
{
}

CGameLoading::~CGameLoading()
{
}

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

	return TRUE;
}

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

//	g_Console.Log( eLogDisplay, 4, "Dummy%d State : CServerConnect", m_nID );

	if( pInitParam )
	{
		int objnum = m_pDummyObjMgr->GetObjectNum();
		SEND_CHARSELECT_INFO* pmsg = (SEND_CHARSELECT_INFO*)pInitParam;

		m_Msg.Category = MP_USERCONN;
		m_Msg.Protocol = MP_USERCONN_CHARACTERSELECT_SYN;
		m_Msg.dwObjectID = pmsg->BaseObjectInfo[0].dwObjectID;
//		m_pNetwork->Send( &m_Msg, sizeof(m_Msg) );
	}	
}

void CGameLoading::Close()
{
}

void CGameLoading::Exit()
{
}

void CGameLoading::Process()
{
	if( m_pStateMng->m_bEnterGame )
	{
		m_pNetwork->Send( &m_Msg, sizeof(m_Msg) );

		m_pStateMng->m_bEnterGame = FALSE;
	}
}

void CGameLoading::NetworkMsgParse( BYTE Category, BYTE Protocol, void* pMsg )
{
	CGameState::CommonNetworkMsgParse( Category, Protocol, pMsg );
	
	switch( Category )
	{
	case MP_USERCONN:
		{
			switch( Protocol ) 
			{
			case MP_USERCONN_CHARACTERSELECT_ACK:
				{
					MSG_BYTE* pmsg = (MSG_BYTE*)pMsg;
					m_pDummyObjMgr->SetMapNum( pmsg->bData );

					m_pStateMng->ChangeState( eGAMESTATE_GAMEIN, NULL, 0 );					
				}
				return;
				
			case MP_USERCONN_CHARACTERSELECT_NACK:
				{
					m_pNetwork->Disconnect();

					m_pStateMng->ChangeState( eGAMESTATE_END, "GameLoading - MP_USERCONN_CHARACTERSELECT_NACK", 0 );					

					g_DisconnectAgent++;
				}
				return;
			}
		}
		break;
	}
}

void CGameLoading::OnDisconnect()
{
	m_pStateMng->ChangeState( eGAMESTATE_END, "CGameLoading-OnDisconnect()", 0 );
	g_DisconnectAgent++;
}

⌨️ 快捷键说明

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