Files
Leviathan/Client/Game/game/Interface/Arena/SUIArenaReportDiveWnd.h
T
2026-06-01 12:46:52 +02:00

64 lines
1.7 KiB
C++

#ifndef _SUIArenaReportDiveWnd_h_
#define _SUIArenaReportDiveWnd_h_
//#include "SUIWnd.h"
//#include "SUIUtil.h"
class KUIControlEdit;
class SUIArenaReportDiveWnd : public SUIWnd
{
public:
SUIArenaReportDiveWnd(SGameManager* pGameManager);
virtual ~SUIArenaReportDiveWnd();
virtual bool InitData( bool reload = false );
virtual void Process(DWORD dwTime);
virtual void ProcMsgAtStatic( SGameMessage* msg );
virtual void PumpUpMessage( LPCTSTR controlID, DWORD msg, DWORD lparam, DWORD wparam );
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
private:
void syncPos();
void initFp();
void getWndInfo();
void setPassword();
void generatePassword();
void setState(int state);
void setWaitingInputState();
void setReadyLeaveState();
void setLeaveState();
void procState(float elapsedTime);
void procWaitingInput(bool needNextState);
void procReadyLeave(bool needNextState);
bool updateCount(float elapsedtime);
void setStatus(float remainTime, char const* countColor, int warningStringId, bool enable);
bool isValidPassword();
void sendResult(bool success);
/// control fp
void help();
void ok();
void procMsgAbsenceCheck(SGameMessage* msg);
private:
enum { STATE_WAITING_INPUT, /// 비밀 번호 입력 대기
STATE_READY_LEAVE, /// 퇴장 대기
STATE_LEAVE, /// 퇴장
};
enum { LEAVE_WAITING_TIME = 5 }; /// 퇴장 카운트
KUIControlEdit* m_passControl;
KUIControlStatic* m_countControl;
std::string m_countColor;
DWORD m_time;
float m_remainTime;
int m_state;
int m_password;
cClassFuncP<SUIArenaReportDiveWnd> m_controlFp;
cClassParamFuncP<SUIArenaReportDiveWnd, SGameMessage*, int> m_msgFp;
};
#endif