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 + -
显示快捷键?