//======================================================================================================================= /// TargetDialog /** @author À¯À翵 < y2jinc@webzen.co.kr > @since @remarks - */ #pragma once #include "uiBase.h" class Object; class Character; class InterfaceManager; class TargetDialog : public uiBase { public: enum eTARGET_POS { TARGET_PIC_GAUGE = 0, TARGET_PIC_GAUGE_BACK, #ifdef _NA_008139_20150318_MODIFY_BUFF_ICON_UI #else TARGET_SKILL_EFFECT1, #endif //_NA_008139_20150318_MODIFY_BUFF_ICON_UI TARGET_SKILL_EFFECT2, TARGET_SKILL_EFFECT3, TARGET_SKILL_EFFECT4, TARGET_SKILL_EFFECT5, TARGET_SKILL_EFFECT6, TARGET_SKILL_EFFECT7, TARGET_SKILL_EFFECT8, TARGET_SKILL_EFFECT9, TARGET_SKILL_EFFECT10, #ifdef _NA_000000_20130114_RENEWER_UI TARGET_SKILL_EFFECT11, TARGET_SKILL_EFFECT12, TARGET_SKILL_EFFECT13, TARGET_SKILL_EFFECT14, TARGET_SKILL_EFFECT15, TARGET_SKILL_EFFECT16, TARGET_SKILL_EFFECT17, TARGET_SKILL_EFFECT18, TARGET_SKILL_EFFECT19, #ifdef _NA_008139_20150318_MODIFY_BUFF_ICON_UI #else TARGET_SKILL_EFFECT20, TARGET_SKILL_EFFECT21, #endif //_NA_008139_20150318_MODIFY_BUFF_ICON_UI TARGET_SKILL_EFFECT22, TARGET_SKILL_EFFECT23, TARGET_SKILL_EFFECT24, TARGET_SKILL_EFFECT25, TARGET_SKILL_EFFECT26, TARGET_SKILL_EFFECT27, TARGET_SKILL_EFFECT28, TARGET_SKILL_EFFECT29, TARGET_SKILL_EFFECT30, TARGET_SKILL_EFFECT31, TARGET_SKILL_EFFECT32, TARGET_SKILL_EFFECT33, TARGET_SKILL_EFFECT34, TARGET_SKILL_EFFECT35, TARGET_SKILL_EFFECT36, TARGET_SKILL_EFFECT37, TARGET_SKILL_EFFECT38, TARGET_SKILL_EFFECT39, #ifdef _NA_008139_20150318_MODIFY_BUFF_ICON_UI #else TARGET_SKILL_EFFECT40, #endif //_NA_008139_20150318_MODIFY_BUFF_ICON_UI #endif TARGET_TEXT_INFO, TARGET_TEXT_HP_INFO, TARGET_PIC_ELI, TARGET_PIC_VAR, TARGET_PIC_SHA, TARGET_PIC_DRA, TARGET_PIC_BER,//Àº»ö TARGET_PIC_MON, TARGET_PIC_GUILD_MARK, TARGET_TEXT_MONSTER_INFO, TARGET_PICTURE_FIRE,//FIRE TARGET_PICTURE_WATER,//WATER TARGET_PICTURE_WIND,//WIND TARGET_PICTURE_EARTH,//EARTH TARGET_PICTURE_DARK,//DARK TARGET_PICTURE_GOLD,//±Ý»ö TARGET_BUTTON_OPEN,//¿­±â TARGET_BUTTON_CLOSE,//´Ý±â #ifdef _NA_000000_20130114_RENEWER_UI TARGET_SCORE_STRING_S001, #else #ifdef _NA_002935_20110704_ITEM_SCORE TARGET_SCORE_BG, // ÀåºñÆòÁ¡ TARGET_SCORE_NUMBER1, TARGET_SCORE_NUMBER2, TARGET_SCORE_NUMBER3, TARGET_SCORE_NUMBER4, TARGET_SCORE_NUMBER5, #endif //_NA_002935_20110704_ITEM_SCORE #endif #ifdef _NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO TARGET_PIC_SD_GAUGE, // ½¯µå °ÔÀÌÁö TARGET_TEXT_SD_INFO, // ½¯µå ½ºÆ®¸µ TARGET_PIC_SECOND_GAUGE, // ¹Ø °ÔÀÌÁö TARGET_PIC_SECOND_GAUGE_BACK, // ¹Ø °ÔÀÌÁö ¹è°æ TARGET_TEXT_SECOND_HP_INFO, // ¹Ø ½ºÆ®¸µ #endif //_NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO #ifdef _NA_007113_20140324_SHADOW_SKILL_BALLANCE_RENEWAL TARGET_BUTTON_SUMMON_CANCLE, // ¼Òȯ¼ö Ãë¼Ò(¿ª¼Òȯ) #endif //_NA_007113_20140324_SHADOW_SKILL_BALLANCE_RENEWAL Dialog_Max, }; #define MAX_TARGETDLG_SKILL_EFFECT 10 enum kElement_Color { kElement_Color_Fire = 0, kElement_Color_Water, kElement_Color_Wind , kElement_Color_Earth, kElement_Color_Dark, kElement_Color_Common, kElement_Color_Max, }; enum kShow_Value { kShow_Value_Open, kShow_Value_Close, kShow_Value_Max, }; #ifdef _NA_000000_20130114_RENEWER_UI #else #ifdef _NA_002935_20110704_ITEM_SCORE enum { TARGET_SCORE_START = TARGET_SCORE_BG, TARGET_SCORE_END = TARGET_SCORE_NUMBER5 +1, }; #endif //_NA_002935_20110704_ITEM_SCORE #endif #ifdef _NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO enum { TARGET_SECOND_GAUGE_START = TARGET_PIC_SD_GAUGE, TARGET_SECOND_GAUGE_END = TARGET_TEXT_SECOND_HP_INFO, }; #endif //_NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO public: TargetDialog(InterfaceManager *pUIMan); virtual ~TargetDialog(void); VOID Init( CDrawBase * pDrawBase ); virtual VOID Release(); virtual VOID MessageProc( SI_MESSAGE * pMessage ); virtual VOID NetworkProc( MSG_BASE * pMsg ); virtual VOID OnUpdateSolarDialog(); virtual VOID OnRenderSolarDialog(); virtual VOID Process(DWORD dwTick); VOID SetTargetName(TCHAR* pszTargetName); VOID SetTargetKey(DWORD dwTargetKEY); DWORD GetTargetKey(); DWORD GetColorText(Monster* monster_ptr); TCHAR* GetTargetName(); void UpdateStatusIcon(); #ifdef _NA_000000_20130114_RENEWER_UI void MoveWindowForce(float addx, float addy); #endif protected: CControlWZ * getControl( POSTYPE AtPos ); POSTYPE getCtrlIDToPos( WzID wzId ); virtual VOID OnShowWindow( BOOL val ); VOID SetTargetInfo(); #ifdef _NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO VOID SetHP(float hp_ratio ,bool is_player); VOID SetSD(float sd_ratio); // ½¯µå #else VOID SetHP( float fHPPercent ,float fRadio); #endif //_NA_006638_20120415_ADD_SHIELD_INFO_IN_TARGET_INFO void ShowAggroDialog(); BOOL SetPartyMember(); private: void _showCharPopupMenu(BOOL bShow); void _targetChange(BOOL bPlayer); void _renderGuildMark(); bool CheckShowState(); #ifdef _NA_000000_20130114_RENEWER_UI void DrawItemScore(); //¾ÆÀÌÅÛ ÆòÁ¡ Ãâ·Â void UpdateItemScore(); int GetTargetItemScore(); virtual void MoveDefaultWindowPos(); #else #ifdef _NA_002935_20110704_ITEM_SCORE void DrawItemScore(); //¾ÆÀÌÅÛ ÆòÁ¡ Ãâ·Â void UpdateItemScore(); int GetTargetItemScore(); #endif //_NA_002935_20110704_ITEM_SCORE #endif private: DWORD m_dwTargetKEY; DWORD m_dwPrevTargetKEY; static WzID m_wzId[Dialog_Max]; util::_tstring m_dwTargetName; TCHAR m_szResultInfo[INTERFACE_STRING_LENGTH]; TCHAR m_szResultHpInfo[INTERFACE_STRING_LENGTH]; float m_fGaugeSize; float m_fGaugeBackSize; RECT m_rcGauge; vector status_icon_container_; int m_iHpRequestTime; CCtrlPictureWZ* picture_element_frames_[kElement_Color_Max]; CCtrlButtonWZ* show_aggro_window_buttons_[kShow_Value_Max]; bool is_show_aggro_; }; inline DWORD TargetDialog::GetTargetKey() { return m_dwTargetKEY; } inline TCHAR* TargetDialog::GetTargetName() { return const_cast(m_dwTargetName.c_str()); }