#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; // 이름 속성 태그 ,.. string m_strPlayerJobPropertyTag; // 직업 속성 태그 ,.. string m_strPlayerRacePropertyTag; // 종족 속성 태그 ,.. string m_strPlayerLevelPropertyTag; // 레벨 속성 태그 ,.. string m_strHpGaugeValuePropertyTag; // HP 값 속성 태그 ,.. string m_strMpGaugeValuePropertyTag; // MP 값 속성 태그 ,.. 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; // 마우스가 프리 패스 마크 안에 들어와 있는가? };