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

65 lines
1.9 KiB
C++

/// 2011.10.12 - prodongi
#ifndef _SUIRaidSiegeStatusWnd_h_
#define _SUIRaidSiegeStatusWnd_h_
//#include "SUIWnd.h"
#include <mmo/ArType.h>
class SUIRaidSiegeProgressBaseWnd;
class SUIRaidSiegeResultBaseWnd;
class SUIRaidSiegeRotationSiegeWnd;
/*
레이드/시즈의 진행 상황을 출력해 주는 창(진행, 결과)
location이 PLAYER_IN_DUNGEON_SIEGE/PLAYER_IN_DUNGEON_RAID 로 받을 때, timer/gage show,
결과 채팅 메세지를 받을 때, 결과 show, timer/gage hide
결과 hide는 언제?
*/
class SUIRaidSiegeStatusWnd : public SUIWnd
{
public:
enum { RAID, SIEGE };
enum { PROGRESS, RESULT };
public:
SUIRaidSiegeStatusWnd(class SGameManager* pGameManager);
virtual ~SUIRaidSiegeStatusWnd();
virtual void Process(DWORD dwTime);
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
virtual bool InitControls( KPoint kPos );
void changeSiegeOwner(int newOwnerType);
protected:
void checkReadyType();
void setReadyType(int type);
SUIRaidSiegeProgressBaseWnd* createProgress(int type);
SUIRaidSiegeResultBaseWnd* createResult(int type);
void setProgressTime(std::string const& progressTime);
void setProgressHp(int defenseHp, int offenseHp, int ownerType);
void removeReadyTypes();
void setOwner(int owner);
void updateRotationSiege(DWORD time);
void removeRotationSiege();
protected:
SUIRaidSiegeProgressBaseWnd* m_wndProgress;
SUIRaidSiegeResultBaseWnd* m_wndResult;
SUIRaidSiegeRotationSiegeWnd* m_wndRotationSiege;
int m_readyType;
AR_TIME m_progressTime;
AR_TIME m_recvProgressTime; /// 서버에서 받은 시간(실제 적용될 때 딜레이 체크 때문에)
int m_defenseHp;
int m_offenseHp;
int m_ownerType;
int m_curLocation;
int m_prevLocation;
std::string m_opponentName; /// 2012.01.12 상대편 시즈 길드 이름
};
#endif