Files
2026-06-01 12:46:52 +02:00

105 lines
4.8 KiB
C++

#pragma once
#include "SUIWnd.h"
#include "SUIUtil.h"
#include "KUIControlStatic.h"
#include "KUIControlScroll.h"
#include "KUIControlButton.h"
#include "KUIControlGauge.h"
#include "SUIDisplayInfo.h"
#include "SGameMessage.h"
using std::string;
using namespace sui;
using namespace KUI_MESSAGE;
using namespace CStringUtil;
//-----------------------------------------------------------------------------------------------------------------
// 타겟 창 (프랍)
//-----------------------------------------------------------------------------------------------------------------
class SUITargetWnd_Player : public SUIWnd
{
public:
SUITargetWnd_Player( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo );
~SUITargetWnd_Player( void );
virtual SUIWnd* CreateWnd( const char* szFile, KUIWndManager* pWndManager, KPoint kPos, int nWindowID );
virtual bool InitData( bool bReload = false );
virtual bool InitControls( KPoint kPos );
virtual void Process( DWORD dwTime );
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
virtual DWORD OnMouseMessage( DWORD dwMessage, int x, int y );
private:
void RefreshGauge( KUIControlGauge* pGaugeControl, const int nCurrent, const int nMax, const bool bAnimation, const bool bFriend );
bool ProcessMessage_ChangeName( SMSG_CHANGE_NAME* const pChangeNameMsg );
bool ProcessMessage_Property_Job( SMSG_PROPERTY* const pPropertyJobMsg );
bool ProcessMessage_Property_Level( SMSG_PROPERTY* const pPropertyLevelMsg );
bool ProcessMessage_UITargetInfo( SIMSG_UI_TARGET_INFO_PLAYER* const pTargetMsg );
bool ProcessMessage_UITargetInfo_JobInfo( SIMSG_UI_TARGET_INFO_PLAYER* const pTargetMsg );
bool ProcessMessage_UITargetInfo_Race( SIMSG_UI_TARGET_INFO_PLAYER* const pTargetMsg );
bool ProcessMessage_UITargetInfo_Gauge( SIMSG_UI_TARGET_INFO_PLAYER* const pTargetMsg );
bool ProcessMessage_UITargetStat( SIMSG_UI_TARGET_STAT* const pStatMsg );
bool ProcessMessage_UITargetStat_Gauge( SIMSG_UI_TARGET_STAT* const pStatMsg );
void UpdateMarkStateList( const AR_HANDLE hTarget );
void UpdateMarkStatusList( const AR_HANDLE hTarget );
void UpdateMarkStatusList( const AR_HANDLE hTarget, const int nStatus );
string GetLevelTextColorValue( const int nTargetLevel );
private:
SUIDisplayInfo* m_pDisplayInfo;
KUIControlIconStatic* m_pJobIcon; // 직업 ICON 컨트롤
KUIControlGauge* m_pHpGauge; // HP 게이지 컨트롤
KUIControlStatic* m_pHpGaugeValue; // HP 게이지 숫자 컨트롤
KUIControlGauge* m_pMpGauge; // MP 게이지 컨트롤
KUIControlStatic* m_pMpGaugeValue; // MP 게이지 숫자 컨트롤
KUIControlStatic* m_pPlayerName; // 이름 표시 컨트롤
KUIControlStatic* m_pPlayerJob; // 직업 표시 컨트롤
KUIControlStatic* m_pPlayerRace; // 종족 표시 컨트롤
KUIControlStatic* m_pPlayerLevel; // 레벨 표시 컨트롤
KUIControlSimpleButton* m_pSubMenu; // 보조 메뉴 버튼
string m_strPlayerNamePropertyTag; // 이름 속성 태그 <font:>,<size:>.. <etc>
string m_strPlayerJobPropertyTag; // 직업 속성 태그 <font:>,<size:>.. <etc>
string m_strPlayerRacePropertyTag; // 종족 속성 태그 <font:>,<size:>.. <etc>
string m_strPlayerLevelPropertyTag; // 레벨 속성 태그 <font:>,<size:>.. <etc>
string m_strHpGaugeValuePropertyTag; // HP 값 속성 태그 <font:>,<size:>.. <etc>
string m_strMpGaugeValuePropertyTag; // MP 값 속성 태그 <font:>,<size:>.. <etc>
string m_strLevelTextColorValue_AbsoluteStrong; // 레벨 텍스트 색상 ( 절대적으로 강함 )
string m_strLevelTextColorValue_VeryStrong; // 레벨 텍스트 색상 ( 매우 강함 )
string m_strLevelTextColorValue_Strong; // 레벨 텍스트 색상 ( 강함 )
string m_strLevelTextColorValue_Similar; // 레벨 텍스트 색상 ( 비슷함 )
string m_strLevelTextColorValue_Weak; // 레벨 텍스트 색상 ( 약함 )
string m_strLevelTextColorValue_VeryWeak; // 레벨 텍스트 색상 ( 매우 약함 )
string m_strLevelTextColorValue_AbsoluteWeak; // 레벨 텍스트 색상 ( 절대적으로 약함 )
sMarkState m_stMarkState; // 상태 마크
bool m_bIsInFreePassMarkIcon; // 마우스가 프리 패스 마크 안에 들어와 있는가?
};