Files
2022-10-26 12:25:11 +08:00

149 lines
3.7 KiB
C++

//=======================================================================================================================
/** 로딩씬
@author
유재영
@since
@remarks
- 멥 로딩
- 로딩후 Nexe Scene처리
*/
#ifndef _LOADSCENE_H
#define _LOADSCENE_H
//
// TODO : 리소스 로드시 인증관련한 함수를 만듬 (테스트 함수라 할수있음..)
// comment by Jae young
#include "SceneBase.h"
#define MAX_LOADING_TEXT_LINE 20
class SceneBase;
class LoadScene : public SceneBase
{
public:
enum LOADSCENE_STATE
{
LoadScene_State_NONE = 0, // 아무런 동작 준비가 안된상태 초기상태
LoadScene_State_Start,
LoadScene_State_Completed,
};
MAPID m_GoingToLobbyMapID;
public:
LoadScene();
~LoadScene();
void Activate(); // 활성화 되었을 때
BOOL Init(); // 초기화, 로딩
BOOL Process( DWORD dwTick ); // 메인 계산
BOOL Render( DWORD dwTick ); // 메인 랜더링
void Release(); // 종료
void ParsePacket( MSG_BASE * pMsg ); // 네트워크 패킷 처리
void RenderLoadingText();
virtual void IncreaseLoadingProcess();
public:
LOADSCENE_STATE GetLoadState(void) const { return m_eLoadState; }
MAPID GetGoingToMapID() const;
MAPID GetGoingToFieldID() const;
void SetNextSceneAfterLoaded( SCENE_TYPE eNextSceneType, MAPID MapID, FIELDID FieldID );
void SetNextSceneAfterLoaded( MAPID MapID, FIELDID FieldID );
SCENE_TYPE GetNextSceneAfterLoaded() { return m_eNetxtSceneAfterLoaded;}
void SetGoingToMovePos(const WzVector * pWzVector);
void UpdateGoingToMovePos();
void SetGoingToAreaPos(DWORD dwAreaID);
void UpdateGoingToAreaPos();
void InitText();
void ReleaseText();
void LoadText();
void LoadTextString(int index);
#ifdef _NHN_USA_CHANNELING
int GetRePortZone(){return m_nReportZone;}
void SetPortalFlag(BOOL bFlag){m_bPortalFlag = bFlag;}
#endif//_NHN_USA_CHANNELING
protected:
// 데이터로딩
void LoadCharacter();
void LoadMonster();
BOOL LoadUI() {}
BOOL LoadNPC() {}
void LoadMap();
#ifdef _NA_008016_20150203_SUN_RANKING_SYSTEM_STATUE
void LoadStatue();
#endif // _NA_008016_20150203_SUN_RANKING_SYSTEM_STATUE
protected:
void OnRecvCG_CONNECTION( MSG_BASE * pMsg );
void OnRecvCG_CHARINFO( MSG_BASE * pMsg );
void OnRecvCG_MAP( MSG_BASE * pMsg );
void OnRecvCG_SYNC( MSG_BASE * pMsg );
void OnRecvCG_CONVERSATION( MSG_BASE * pMsg );
// 텍스트 출력
protected:
void RenderText();
void SetGoingToMap(MAPID MapID, FIELDID FieldID);
void SetLoadState(LOADSCENE_STATE eState){ m_eLoadState = eState; }
#ifdef _NA_000000_20140520_MAPLOAD_FAIL_TO_FTP
void SendMapLoadFailMessage();
void WriteUserInfo(FILE* file_pointer);
void UserEncryptSystem(const char* Key,size_t KeyLength,char* InputData,char* OutputData);
#endif //_NA_000000_20140520_MAPLOAD_FAIL_TO_FTP
private:
ENUM_ALPHABLEND m_eAlphablendMode;
BOOL m_bPacketSend;
LOADSCENE_STATE m_eLoadState;
MAPID m_GoingToMapID;
FIELDID m_GoingToFieldID;
WzVector m_WZVGoingToMapPos;
BOOL m_bGoingToMapPos;
BOOL m_bGoingToAreaPos;
DWORD m_GoingToAreaCode;
SCENE_TYPE m_eNetxtSceneAfterLoaded;
BASE_PLAYERINFO m_GoingToCreateHero;
int m_iMaxTextLine;
TCHAR **m_ppText;
BOOL m_bLoadMap;
private:
// CRITICAL_SECTION m_cs;
HANDLE m_hThread;
unsigned m_wthreadID;
BYTE m_byLoadStart;
float m_fPercentStep;
int m_iDelayLoadCnt;
#ifdef _NHN_USA_CHANNELING
int m_nReportZone;
BOOL m_bPortalFlag;
#endif//_NHN_USA_CHANNELING
};
extern LoadScene g_LoadScene;
#endif // _LOADSCENE_H