#pragma once #if !defined(_NA_006802_20130704_REORGANIZATION_RANK_SYSTEM) //------------------------------------------------------------------------------ // // ÀÛ¾÷ÀÚ: ÀÌÁö¿¬ // uiMissionRankList class //------------------------------------------------------------------------------ #include "uibase.h" class uiMissionRankMan; //GS_BUG_FIX:¹Ì¼Ç¼ø¼­¸¦ Á¤·ÄÇÒ ÇÔ¼ö°´Ã¼(ÅÛÇø´¾È¾¸) class MapListSort_Funter { public: inline BOOL operator()(sMAPINFO *lhs, sMAPINFO* rhs) const; }; class uiMissionRankList: public uiBase { enum eDIALOG_POS { DLGPOS_MRL_BTN_EXIT, DLGPOS_MRL_TXT_DATE, DLGPOS_MRL_TXT_AREA, DLGPOS_MRL_TXT_MISSION, DLGPOS_MRL_TXT_PAGE, DLGPOS_MRL_LST_FAME, DLGPOS_MRL_LST_WEEK, DLGPOS_MRL_LST_PREWEEK, DLGPOS_MRL_LST_MEMBER, DLGPOS_MRL_LST_AREA, DLGPOS_MRL_LST_MISSION, DLGPOS_MRL_VSCR_WEEK, DLGPOS_MRL_VSCR_PREWEEK, DLGPOS_MRL_VSCR_MEMBER, DLGPOS_MRL_BTN_AREA, DLGPOS_MRL_BTN_MISSION, DLGPOS_MRL_BTN_REWARD, DLGPOS_MRL_BTN_CLOSE, DLGPOS_MRL_BTN_PAGE_LEFT, DLGPOS_MRL_BTN_PAGE_RIGHT, DLGPOS_MRL_TXT_TITLE, DLGPOS_MRL_BTN_NAME1, DLGPOS_MRL_BTN_NAME2, DLGPOS_MRL_BTN_NAME3, DLGPOS_MRL_BTN_POINT1, DLGPOS_MRL_BTN_POINT2, DLGPOS_MRL_BTN_POINT3, DLGPOS_MRL_BTN_WEEK, DLGPOS_MRL_BTN_PREWEEK, DLGPOS_MRL_STATIC_RATE, DLGPOS_MRL_STATIC_PARTY_NUMBER, DLGPOS_MRL_STATIC_LEVEL, DLGPOS_MRL_STATIC_TIME, DLGPOS_MRL_STATIC_GUILD_LEVEL, DLGPOS_MRL_STATIC_GUILD, DLGPOS_MRL_STATIC_NAME, DLGPOS_MRL_STATIC_FLAME_LEVEL, DIALOG_MAX, }; enum { POS_TXT_SIZE = DLGPOS_MRL_TXT_PAGE - DLGPOS_MRL_TXT_DATE + 1, POS_LST_SIZE = DLGPOS_MRL_LST_MISSION - DLGPOS_MRL_LST_FAME + 1, POS_VSCR_SIZE = DLGPOS_MRL_VSCR_MEMBER - DLGPOS_MRL_VSCR_WEEK + 1, POS_BTN_SIZE = DLGPOS_MRL_BTN_CLOSE - DLGPOS_MRL_BTN_AREA + 1, POS_LST_BTN_SIZE = DLGPOS_MRL_BTN_POINT3 - DLGPOS_MRL_BTN_NAME1 + 1, }; enum eMRL_LST_BTN { MRL_LST_BTN_NAME1, MRL_LST_BTN_NAME2, MRL_LST_BTN_NAME3, MRL_LST_BTN_POINT1, MRL_LST_BTN_POINT2, MRL_LST_BTN_POINT3, }; enum eMRL_TXT { MRL_TXT_DATE, MRL_TXT_AREA, MRL_TXT_MISSION, MRL_TXT_PAGE, }; enum eMRL_LST { MRL_LST_FAME, MRL_LST_WEEK, MRL_LST_PREWEEK, MRL_LST_MEMBER, MRL_LST_AREA, MRL_LST_MISSION, }; enum eMRL_VSCR { MRL_VSCR_WEEK, MRL_VSCR_PREWEEK, MRL_VSCR_MEMBER, }; enum eMRL_BTN { MRL_BTN_AREA, MRL_BTN_MISSION, MRL_BTN_REWARD, MRL_BTN_CLOSE, }; enum eFAME_LST { eFAME_LST_PARTY_NUM, eFAME_LST_LEVEL, eFAME_LST_TIME, eFAME_LST_MAX, }; enum eWEEK_LST { eWEEK_LST_RANK, eWEEK_LST_PARTY_NUM, eWEEK_LST_LEVEL, eWEEK_LST_TIME, eWEEK_LST_MAX, }; enum eMEMBER_LST { eMEMBER_LST_LEVEL, eMEMBER_LST_GUILD, eMEMBER_LST_NAME, eMEMBER_LST_MAX, }; public: uiMissionRankList(InterfaceManager *pUIMan); virtual ~uiMissionRankList(); //-------------------------------------------------------------------------- // init/release // public: virtual void Init(CDrawBase* pDrawBase); virtual void Release(); protected: void InitControls(); //-------------------------------------------------------------------------- // helper/comms. // public: uiMissionRankMan* GetManager(); //-------------------------------------------------------------------------- // functions // private: BOOL _isEnable(); void _prepareDisplay(); void _initRankListSelect(); void _initRankList(); void _initMemberList(); void _initPageSet(); void _setTitle(); void _UpdateMouseWheel(eMRL_LST eListType); void _IncreaseScroll(eMRL_VSCR eScrollType); void _DecreaseScroll(eMRL_VSCR eScrollType); public: void SetAreaList(); void SetMissionList(); void UpdateMissionText(bool bPrepare); void UpdateMissionSelectList(); void UpdatePageText(); void UpdateRankList(); void UpdateMemberList(); void UpdateFinishDay(); //-------------------------------------------------------------------------- // dialog functions // public: protected: virtual void OnShowWindow( BOOL val ); virtual void OnUpdateSolarDialog(); protected: CControlWZ * getControl( POSTYPE AtPos ); POSTYPE getCtrlIDToPos( WzID wzId ); static WzID m_wzId[DIALOG_MAX]; //-------------------------------------------------------------------------- // procedure // public: virtual void MessageProc( SI_MESSAGE * pMessage ); // Pure //-------------------------------------------------------------------------- // member vars // private: uiMissionRankMan* m_pMissionRankMan; CCtrlStaticWZ* m_pTxtControl[POS_TXT_SIZE]; CCtrlListWZ* m_pListControl[POS_LST_SIZE]; CCtrlButtonWZ* m_pBtnControls[POS_BTN_SIZE]; CCtrlVScrollWZ* m_pScroll[POS_VSCR_SIZE]; CCtrlStaticWZ* m_pTxtTitle; CCtrlButtonWZ* m_pLstBtns[POS_LST_BTN_SIZE]; int m_iCurEventMainListIndex; int m_iCurEventSubListIndex; bool m_bControlsInitialized; bool m_bShow; bool m_bShowMainList; bool m_bShowSubList; int m_iCurMainListIndex; int m_iCurSubListIndex; MAPCODE m_MissionNo; // ¹Ì¼Ç¸Ê¹øÈ£ #ifdef _K2P_NEW_RANKING_UI CCtrlButtonCheckWZ * m_pWeekCheckButton; CCtrlButtonCheckWZ * m_pPreWeekCheckButton; #endif }; //------------------------------------------------------------------------------ /** */ inline POSTYPE uiMissionRankList::getCtrlIDToPos( WzID wzId ) { for( POSTYPE i = 0 ; i < DIALOG_MAX ; ++i ) { if( m_wzId[i] == wzId ) { return i; } } return DIALOG_MAX; } //------------------------------------------------------------------------------ /** */ inline CControlWZ * uiMissionRankList::getControl( POSTYPE AtPos ) { ASSERT( AtPos < DIALOG_MAX ); return GetControlWZ( m_wzId[AtPos] ); } //------------------------------------------------------------------------------ /** */ inline uiMissionRankMan* uiMissionRankList::GetManager() { return this->m_pMissionRankMan; } //------------------------------------------------------------------------------ #endif // _NA_006802_20130704_REORGANIZATION_RANK_SYSTEM