#ifndef _SUIArenaPracticeWaitingWnd_h_ #define _SUIArenaPracticeWaitingWnd_h_ #include "SGameMessage.h" #include "ArenaUtility.h" //#include "SUIWnd.h" //#include "SUIUtil.h" class SUIArenaPracticeWaitingWnd : public SUIWnd { private: typedef SMSG_BATTLE_ARENA_BATTLE_INFO::sPlayerInfo sPlayerInfo; public: SUIArenaPracticeWaitingWnd(SGameManager* pGameManager); virtual ~SUIArenaPracticeWaitingWnd(); virtual bool InitData( bool reload = false ); virtual void Process(DWORD dwTime); virtual void OnNotifyUIWindowOpen(bool bOpen, bool bLimitWnd); virtual void ProcMsgAtStatic( SGameMessage* msg ); virtual void PumpUpMessage( LPCTSTR controlID, DWORD msg, DWORD lparam, DWORD wparam ); virtual DWORD OnMouseMessage(DWORD dwMessage, int x, int y); private: void initFp(); void initTooltip(); void syncPos(); void getWndInfo(); void setRank(); void postUpdateMainMenuButton(); bool isValidArenaJoinSituation(); void setMyTeam(int team); /// 레뒤 상태에 따라서 시작/준비 완료 버턴의 상태를 바꿔준다 void updateStartButtonStatus(); bool isAllReady(); void updateMemberCount(); void setRule(int type); void setTeam(int type); void setMemberCount(int cur); void setStadium(); void setTime(int type); /// 대기중인지 체크해서 대기중이 아닌데 show면 hide 시킨다 void checkWaiting(); void procGuideTooltip(); /// void prepareComplete(); void start(); void procMsgBattleInfo(SGameMessage* msg); void procMsgUpdateWaitUserCount(SGameMessage* msg); void procMsgExerciseReadyStatus(SGameMessage* msg); void procMsgJoinBattle(SGameMessage* msg); void procMsgLeave(SGameMessage* msg); void procMsgPromote(SGameMessage* msg); private: enum { MIN_ENABLE_COMPLETE_PLAYER_NUM = 1}; /// 준비 완료 버튼이 활성화 되는 최소 팀 인원, 원래 2이지만 테스트 때문에 1로 함 KUIControlSimpleButton* m_buttonComplete; KUIControlSimpleButton* m_buttonStart; KUIControlStatic* m_staticComplete; KUIControlStatic* m_staticStart; cClassFuncP m_controlFp; sEmptyControlRegionChecker m_emptyControlRegionChecker; cClassParamFuncP m_msgFp; }; #endif