#pragma once //#include "SUIWnd.h" class SUILoadingWnd : public SUIWnd { public: class ILoadingMessageSelector { public: virtual ~ILoadingMessageSelector() {} virtual std::string selectMessage() = 0; }; /*SUILoadingWnd(SGameManager* pGameManager) : SUIWnd(pGameManager) , m_dwTime ( 0 ) , m_dwWarringTime ( 0 ) , m_pMessageSelector ( 0 ) { } ~SUILoadingWnd() { SAFE_DELETE( m_pMessageSelector ); }*/ SUILoadingWnd(SGameManager* pGameManager); ~SUILoadingWnd(); bool CreateControls( class KUIWndManager* pWndManager ); virtual void Process(DWORD dwTime); virtual void OnDeviceLost(); virtual void Render( KViewportObject *pViewport, bool isFront = false ); virtual void ProcMsgAtStatic( SGameMessage* pMsg ); void RefreshImage(unsigned int warpx, unsigned int warpy); bool IsShowKoreaWarring() { return s_nForceRenderKoreaWarring == 1 ? true : false; } void SetChangeKoreaWarringCaption( int nStringID ); void SetAdultMode( bool adultmode ); void SetGameguardIintMode( bool guardmode ); static void SetRenderKoreaWarring( short nForceRenderKoreaWarring ) { s_nForceRenderKoreaWarring = nForceRenderKoreaWarring; } static void SetFirstLoading( bool bFirst ) { s_bFirstLoading = bFirst; } void SetMessageSelector( ILoadingMessageSelector* selector ) { SAFE_DELETE( m_pMessageSelector ); m_pMessageSelector = selector; } void UpdateLoadingProgress(float fPercent); void InitLoadingBar(); void UpdateAddLoadingProcess(float fAddValue); private: bool isCurArenaLocation(unsigned int warpx, unsigned int warpy) const; char const* getArenaLoadingImgName() const; char const* getArenaTipMessage() const; protected: float m_fLoadingPercent; DWORD m_dwTime; int m_nCount; void refreshLoadImage(unsigned int warpx = 0, unsigned int warpy = 0); K3DTextureSPtr m_spLoadingTexture; K3DTextureSPtr m_spPanelTexture; DWORD m_dwWarringTime; static short s_nForceRenderKoreaWarring; ///< 0 : 경고문 출력안함 //1 : 3초간 출력 // static bool s_bFirstLoading; ILoadingMessageSelector* m_pMessageSelector; SUIWnd *m_pkWndLoadingProgress; SUIWnd *m_pWndUpinfo; SUIWnd *m_pWndDowninfo; SUIWnd *m_pWndGamerating_15; SUIWnd *m_pWndGamerating_18; SUIWnd *m_pWndRappelzLogo; SUIWnd *m_pWndPublisherLogo; SUIWnd *m_pWndNFlaverLogo; SUIWnd *m_pWndNowLoading; SUIWnd *m_wndCopyRight; // 2010.07.14 - prodongi private: enum { ARENA_LOADING_IMG_COUNT = 3 }; enum { ARENA_TIP_MESSAGE_START_ID = 2505, ARENA_TIP_MESSAGE_END_ID = 2524 }; }; //--------------------------------------------------------------------------- ///\class SUILoadingProgressWnd ///\brief 로딩 화면 프로그래스 바 처리 ///\author robypark ///\date 20081103 ~ //--------------------------------------------------------------------------- class SUILoadingProgressWnd : public SUIWnd { public: SUILoadingProgressWnd( class SGameManager* pGameManager ); virtual ~SUILoadingProgressWnd(); public: virtual SUIWnd* CreateWnd( const char* szNUIFileName, KUIWndManager* pWndManager, KPoint kPos, int nWindowID = -1 ); virtual void OnPosChangeNofity(int offsetx,int offsety); public: ///\brief 진행 상황 설정(0.0f ~ 1.0f) ///\param fPercent 0.0f <= fPercent <= 1.0f bool SetProgress(float fPercent); ///\brief 진행 상황 설정 ///\param nMin 최소 ///\param nMax 최대 ///\param nCurrent 현재 값. (nMin <= nCurrent <= nMax) bool SetProgress(int nMin, int nMax, int nCurrent); ///\brief 현재 진행 % 얻기 inline float GetCurrentPercent() const { return m_fCurrentPercent; } protected: KRect m_kGaugeOpen; ///< 게이지 이미지 ( KRect m_kGaugeMiddle; ///< 게이지 이미지 | KRect m_kGaugeClose; ///< 게이지 이미지 ) float m_fWidth; ///< 화면 가로 크기 float m_fHeight; ///< 화면 세로 크기 float m_fCurrentPercent; ///< 현재 진행 % }; //---------------------------------------------------------------------------