#pragma once #ifdef _NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL #include "uiBase.h" #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION struct BASE_GuildFacilityImageInfo; class uiToolTipMan; #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION class uiGuildInstitution : public uiBase { enum UIControlPos { kControl_CheckBT_C000 = 0, // ±æµå¼Ò°³ÅÇ kControl_CheckBT_C001, // ±æµå¿øÁ¤º¸ÅÇ kControl_CheckBT_C003, // ±æµå½Ã¼³ÅÇ kControl_CheckBT_C004, // ±æµå¿î¿µÅÇ #ifdef _NA_008334_20150608_SONNENSCHEIN kControl_CheckBT_C005, // ±æµåPvE #endif //_NA_008334_20150608_SONNENSCHEIN kControl_CheckBT_C002, // ±æµå·Î±×ÅÇ kControl_Button_B001, // ½Ã¼³1 ¾÷±×·¹À̵å kControl_Button_B002, // ½Ã¼³2 ¾÷±×·¹À̵å kControl_Button_B005, // ½Ã¼³3 ¾÷±×·¹À̵å kControl_Button_B000, // ½Ã¼³1 Ȱ¼ºÈ­ kControl_Button_B004, // ½Ã¼³2 Ȱ¼ºÈ­ kControl_Button_B007, // ½Ã¼³3 Ȱ¼ºÈ­ kControl_TextImage_I000, // ½Ã¼³1À̸§ kControl_TextImage_I001, // ½Ã¼³2À̸§ kControl_TextImage_I002, // ½Ã¼³3À̸§ #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION kControl_TextImage_I003, // Ư¼öÈ¿°ú1 kControl_TextImage_I004, // Ư¼öÈ¿°ú2 kControl_TextImage_I005, // Ư¼öÈ¿°ú3 #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION kControl_Text_S000, // ÇöÀç ±æµåÆ÷ÀÎÆ® #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION kControl_List_L000, // ÀÏ¹Ý È¿°ú ¸®½ºÆ®1 kControl_List_L004, // ÀÏ¹Ý È¿°ú ¸®½ºÆ®2 kControl_List_L005, // ÀÏ¹Ý È¿°ú ¸®½ºÆ®3 // kControl_List_L001, // Ư¼ö È¿°ú ¸®½ºÆ®1 kControl_List_L002, // Ư¼ö È¿°ú ¸®½ºÆ®2 kControl_List_L003, // Ư¼ö È¿°ú ¸®½ºÆ®3 #else kControl_Text_S002, // ½Ã¼³1¼³¸í kControl_Text_S003, // ½Ã¼³2¼³¸í kControl_Text_S004, // ½Ã¼³3¼³¸í kControl_List_L001, // ½Ã¼³1¿É¼Ç kControl_List_L002, // ½Ã¼³2¿É¼Ç kControl_List_L003, // ½Ã¼³3¿É¼Ç #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION kControl_Picture_P012, // ½Ã¼³1À̹ÌÁö kControl_Picture_P015, // ½Ã¼³1À̹ÌÁö kControl_Picture_P016, // ½Ã¼³1À̹ÌÁö kControl_VScroll_V000, kControl_Size, }; enum { kListNumber = 3, }; #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION enum { kMaxFacilityLevel = 5, // ±æµå ½Ã¼³ ÃÖ°í ·¹º§ }; enum FACILITY_TOOLTIP_TYPE { TOOLTIP_TYPE_NONE = 0, TOOLTIP_TYPE_IMAGE, TOOLTIP_TYPE_NORMAL_EFFECT, TOOLTIP_TYPE_SPECIAL_EFFECT, TOOLTIP_TYPE_UPGRADE, TOOLTIP_TYPE_ACTIVE, TOOLTIP_TYPE_MAX }; #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION public: static const DWORD kDialog_ID; public: uiGuildInstitution(InterfaceManager* ui_manager); virtual ~uiGuildInstitution(); virtual void Init(CDrawBase* draw_base); virtual void Release(); virtual void MessageProc(SI_MESSAGE* message); virtual void OnShowWindow(BOOL is_show); virtual void OnUpdateSolarDialog(); virtual void OnRenderSolarDialog(); private: bool OnLButtonClick(SI_MESSAGE* message); bool OnVScrollUp(SI_MESSAGE* message); bool OnVScrollDown(SI_MESSAGE* message); #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION bool OnMouseOver(SI_MESSAGE* message); #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION void UpdateInstitutionInfo(); void UpdateButtonState(); void UpdateWheelScroll(); void RefreshTab(); #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION void UpdateFacilityListInfo(); void UpdateActiveButtonState(); void ProcessGuildPointTooltip(); void ProcessTooltip(const int& facility_order, const FACILITY_TOOLTIP_TYPE& type); void ProcessResultTooltip(const int& facility_name_index, const int& facility_explanation_index); void ProcessResultTooltip(const int& facility_name_index, const int& facility_explanation_index, const int& facility_order, const FACILITY_TOOLTIP_TYPE& type); void ProcessButtonClick(const DWORD& control_position); void RenderTooltip(const int& scroll_position); public: void UpdateAll(); // ¸ðµç Update¸¦ Çѹø¿¡ ¸ð¾Æ³õÀº ÇÔ¼ö private: bool HaveItem(const CODETYPE& item_code); DWORD HaveItemNum(const CODETYPE& item_code); // ¸î °³ÀÇ ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÖ´ÂÁö °Ë»ç void AskFacilityUpgrade(const DWORD& facility_code); void AskFacilityActive(const DWORD& facility_code, const DWORD& facility_level); FLEVEL GetCurrentFacilityActiveLevel(const FCODE& facility_index); protected: POSTYPE getCtrlIDToPos( WzID wzId ); private: #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION HANDLE& institution_image_handle() { return institution_image_handle_; } private: HANDLE institution_image_handle_; #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION DWORD guild_facility_max_size_; uiToolTipMan* tooltip_manager_ptr_; static WzID wz_id_[kControl_Size]; POSTYPE mouse_over_pos_; #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION }; #ifdef _NA_007330_20140620_GUILD_SYSTEM_EXTENSION inline POSTYPE uiGuildInstitution::getCtrlIDToPos( WzID wzId ) { for( POSTYPE i = 0 ; i < kControl_Size ; ++i ) { if( wz_id_[i] == wzId ) { return i; } } return kControl_Size; } #endif // _NA_007330_20140620_GUILD_SYSTEM_EXTENSION #endif //_NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL