mapchange.cpp

来自「墨香最新私服」· C++ 代码 · 共 163 行

CPP
163
字号
// MapChange.cpp: implementation of the CMapChange class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MapChange.h"

#include "MainGame.h"
#include "./Interface/cWindowManager.h"
#include "./Interface/cResourceManager.h"
#include "cWindowSystemFunc.h"

#include "mhMap.h"
#include "./Input/Mouse.h"
#include "./Input/Keyboard.h"
#include "PathManager.h"
#include "LoadingDlg.h"
#include "./Interface/cScriptManager.h"
#include "./Input/UserInput.h"
#include "UserInfoManager.h"
#include "ChatManager.h"

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

GLOBALTON(CMapChange)
CMapChange::CMapChange()
{
	m_pDlg = NULL;
	m_GameInInitKind = eGameInInitKind_Login;
	m_bThreadTerminated = FALSE;
	m_bMapLoadComplete = FALSE;
	m_bFirst = FALSE;
	hThread = NULL;
	m_MapNum = 0;
}

CMapChange::~CMapChange()
{

}

BOOL CMapChange::Init(void* pInitParam)
{
	m_MapNum = *((MAPTYPE*)pInitParam);
	
//	CreateGameLoading_m();

	char filename[256];
	sprintf(filename,"Image/LoadingMap/maploadingimage%02d.tga",m_MapNum);
	if(m_LoadingImage.LoadSprite(filename) == FALSE)
	{
		sprintf(filename,"Image/LoadingMap/maploadingimage00.tga");
		m_LoadingImage.LoadSprite(filename);
	}
	m_pDlg = (CLoadingDlg *)CreateGameLoading_m();
	
	WINDOWMGR->AfterInit();

	m_bThreadTerminated=FALSE;
	m_bMapLoadComplete=FALSE;
	NETWORK->SetCurState(this);
	
	m_bFirst = TRUE;

	g_UserInput.SetInputFocus( FALSE ); 	//肺爹吝浚 牢遣 贸府 救窃. 公矫.
	if(m_MapNum == 44) //荐访厘 甘 锅龋 
		USERINFOMGR->SetMapChage( FALSE );
	else
		USERINFOMGR->SetMapChage( TRUE );		//甘捞悼牢 版快俊父 贸府且巴捞 乐澜
	
	return TRUE;
}
void CMapChange::Release(CGameState* pNextGameState)
{
	m_LoadingImage.Release();
	WINDOWMGR->DestroyWindowAll();
//	WINDOWMGR->AddListDestroyWindow( m_pDlg );
	m_pDlg = NULL;
	RESRCMGR->ReleaseResource(28);	//28:肺爹捞固瘤饭捞绢
}

void CMapChange::Process()
{
	EnterGame();

	if(m_bFirst)
		m_bFirst = FALSE;
	else
	{
		if(m_bThreadTerminated == FALSE)
		{
			// Loading...
			
			m_bThreadTerminated = TRUE;
		}
		if(m_bMapLoadComplete == FALSE)
		{
			MAP->InitMap(m_MapNum);
			PATHMGR->SetMap(MAP, m_MapNum, MAP->GetTileWidth());
//			MINIMAP->InitMiniMap(m_MapNum);
			m_bMapLoadComplete = TRUE;
		}
	}
	
	return;
}

void CMapChange::BeforeRender()
{
	
}

void CMapChange::AfterRender()
{
	WINDOWMGR->Render();
	VECTOR2 tr;
	tr.x = tr.y = 0;
	m_LoadingImage.RenderSprite(NULL,NULL,0,&tr,0xffffffff);
	
}

void CMapChange::NetworkMsgParse(BYTE Category,BYTE Protocol,void* pMsg)
{
	switch(Category)
	{
	case MP_FRIEND:
		break;
		
	case MP_PARTY:
		break;

	case MP_CHAT:
		CHATMGR->NetworkMsgParse(Protocol, pMsg);
		break;

	case MP_MUNPA:
		break;

	case MP_HACKCHECK:
		break;
	case MP_SIGNAL:
		break;

	default:
		{
			char temp[256];
			sprintf(temp,"Category:%d Protocol:%d",Category,Protocol);
			ASSERTMSG(0,temp);
//			LOG(EC_UNKNOWN_PROTOCOL);
		}
	}
}

void CMapChange::EnterGame()
{
	if(m_bMapLoadComplete && m_bThreadTerminated && !m_bDisconnected )
	{
		MAINGAME->SetGameState(eGAMESTATE_GAMEIN,&m_GameInInitKind,sizeof(int));
	}
}

⌨️ 快捷键说明

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