#pragma once #ifdef _DEV_VER #include "uiBaseMan.h" const DWORD gm_win_font = StrToWzID("mn12"); class uiGMItemWindow; class uiGMItemOptionWindow; class uiGMItemResetWindow; class uiGMItemMenuWindow; #ifdef _DH_GM_NPC_WINDOW class uiGMNpcWindow; #endif//_DH_GM_NPC_WINDOW struct IM_GM_WINDOW_MANAGER { static const DWORD GM_ITEM_WINDOW; static const DWORD GM_ITEM_OPTION_WINDOW; static const DWORD GM_ITEM_RESET_WINDOW; static const DWORD GM_ITEM_MENU_WINDOW; #ifdef _DH_GM_NPC_WINDOW static const DWORD GM_ITEM_NPC_WINDOW; #endif//_DH_GM_NPC_WINDOW }; enum { UI_GM_ITEM_WINDOW, UI_GM_ITEM_OPTION_WINDOW, UI_GM_ITEM_RESET_WINDOW, UI_GM_ITEM_MENU_WINDOW, #ifdef _DH_GM_NPC_WINDOW UI_GM_ITEM_NPC_WINDOW, #endif//_DH_GM_NPC_WINDOW UI_GM_WINDOW_MAX }; enum //create_type { CREATE_TYPE_NORMAL, CREATE_TYPE_LIMITED, CREATE_TYPE_LUCKY, }; typedef enum parameta_names { PARAM_ITEM_CODE, PARAM_ITEM_COUNT, PARAM_ITEM_OVERLAPPING, PARAM_ITEM_TYPE, PARAM_ITEM_ENCHANT, PARAM_ITEM_SOCKET_COUNT, PARAM_ITEM_AWAKENING, PARAM_ITEM_MAIN_FILTER,// »óÀ§ ÇÊÅÍ PARAM_ITEM_SUB_FILTER,// ÇÏÀ§ ÇÊÅÍ PARAM_ITEM_CLASS, PARAM_ITEM_MAX, }PARAM_NAME; typedef enum item_type { ITEM_TYPE_NORMAL, ITEM_TYPE_DIVINE, ITEM_TYPE_ETHERIA, ITEM_TYPE_DIVINE_ETHERIA, ITEM_TYPE_SKIN, ITEM_TYPE_MAX, }ITEM_TYPE; enum { ENCHANT_LEVEL_MAX = 15,//ÀÎþƮ·¹º§ ÃÖ´ë°ª }; typedef enum filters { FILTER_ALL = 0, // Àüü (ÇÊÅÍ ¾øÀ½) FILTER_EQUIP, // Àåºñ ÇÊÅÍ FILTER_WASTE, // ¼Ò¸ðǰ ÇÊÅÍ FILTER_GRADE, // µî±Þ ÇÊÅÍ FILTER_GENDER, // ¼ºº° ÇÊÅÍ FILTER_ETC, // Á¾·ù ÇÊÅÍ FILTER_MAX, }FILTERS; enum // Àåºñ ÇÊÅÍ { EQUIP_ALL = 0, EQUIP_WEAPON, EQUIP_ARMOR, EQUIP_ACCESSORY, EQUIP_SPECIALACCESSORY, EQUIP_FITERL_MAX, }; enum // ¼Ò¸ðǰ ÇÊÅÍ { WASTE_ALL = 0, WASTE_CAN_USE, WASTE_ONLY_WASTE, WASTE_POTION, WASTE_FILTER_MAX, }; enum // µî±Þ ÇÊÅÍ { GRADE_NORMAL = 0,// 1~10µî±Þ GRADE_ULTIMATE, // ¾óƼ¸ÞÀÌÆ®(ÀϺ»ÃÖ°­) GRADE_ELITE1, // ¿¤¸®Æ® 1Â÷ GRADE_CORRUPT1, // ÀúÁÖ¹ÞÀº ¿¤¸®Æ® 1Â÷ GRADE_ELITE1_5, // ¿¤¸®Æ® 1.5Â÷ GRADE_ELITE2, // ¿¤¸®Æ® 2Â÷ GRADE_ELITE2_5,//¿¤¸®Æ® 2.5Â÷ GRADE_UNIQUE1, // À¯´ÏÅ© 1Â÷ GRADE_UNIQUE1_5, // À¯´ÏÅ© 1.5Â÷ GRADE_UNIQUE2, // À¯´ÏÅ© 2Â÷ GRADE_UNIQUE2_5, // À¯´ÏÅ© 2.5Â÷ GRADE_LUCKY, // ·°Å° ¾ÆÀÌÅÛ GRADE_FIGTER_ELITE2,//Åõ»çÀÇ ¿¤¸®Æ® 2Â÷ GRADE_ELITE3,//¿¤¸®Æ®3Â÷ GRADE_ELITE3_5,//¿¤¸®Æ®3.5Â÷ GRADE_ELITE4,//¿¤¸®Æ®4Â÷ GRADE_FILTER_MAX, }; enum // ¼ºº° ÇÊÅÍ { GENDER_FREE = 0,// ¼ºº° °ü°è¾ø´Â ¾ÆÀÌÅÛ GENDER_MALE, GENDER_FEMALE, GENDER_MALE_ONLY, GENDER_FEMAIL_ONLY, GENDER_FILTER_MAX, }; enum // Ŭ·¡½º ÇÊÅÍ { CLASS_BERSERKER = 0, CLASS_DRAGON, CLASS_VALKRIE, CLASS_SHADOW, CLASS_ELEMENTALLIST, CLASS_MYSTIC, CLASS_FILTER_MAX, }; enum // Á¾·ù ÇÊÅÍ { ETC_NORMAL = 0, // ÀÏ¹Ý ¾ÆÀÌÅÛ ETC_QUEST, // Äù½ºÆ® ETC_AC, // AC ¾ÆÀÌÅÛ ETC_ENCHANT_COMPOSITE,// ÀÎþƮÁ¶ÇÕ ¾ÆÀÌÅÛ ETC_ZARD, // Àðµå ¾ÆÀÌÅÛ ETC_CHARGE, // ij½¬ ¾ÆÀÌÅÛ ETC_PET, // Æê ¾ÆÀÌÅÛ ETC_RIDER, // Å» °Í ETC_CHARACTER, // ij¸¯ÅÍ °ü·Ã ETC_RANDOM, // ¾ÆÀÌÅÛ ·£´ýÈ­ ETC_LOTTO, // º¹±Ç ¾ÆÀÌÅÛ ETC_COSTUM, // ÄÚ½ºÆ¬ ETC_FILTER_MAX, }; typedef struct parametas { CODETYPE item_code; // ¾ÆÀÌÅÛ ÄÚµå WORD item_count; // ¾ÆÀÌÅÛ ¼ö·® bool overlapping; // °ãÄ¡±â ITEM_TYPE item_type; // ¾ÆÀÌÅÛ Å¸ÀÔ(0ÀϹÝ, 1µð¹ÙÀÎ, 2¿¡Å׸®¾Æ, 3¿¡Å׸®¾Æ+µð¹ÙÀÎ, 4¿ÜÇü) BYTE enchant_level; // ÀÎþƮ ·¹º§(0~12) BYTE socket_count; // ¼ÒÄϼö(0~6)// 0 ¹ÌÈ®ÀÎ, 1~5´Â 1~5°³, 6 ¾øÀ½ BYTE awakening_level; // °¢¼º ·¹º§(0~9) //filter FILTERS filter_main;// ÇÊÅÍ »óÀ§ ºÐ·ù BYTE filter_subs[FILTER_MAX];// ÇÊÅÍ ºÐ·ùÀÇ °ª(ÇÏÀ§ ÇÊÅÍ) BYTE class_type; // Ŭ·¡½º ŸÀÔ(eCHAR_TYPE) }ITEM_PARAMETAS; enum { kState_History, kState_BookMark, kState_Search, }; class uiGMWindowMan : public uiBaseMan { enum { kDefault_History_Max = 50, kFind_Word_Max = 50, kBookmark_Max = 30, }; public: enum { kParser_NoParser, kParser_Option, kParser_HistoryMax, kParser_BookMarkMax, kParser_Sate, kParser_History, kParser_BookMark, kParser_FindWord, kParser_Unknown, }; uiGMWindowMan(InterfaceManager *pUIMan); virtual ~uiGMWindowMan(void); //-------------------------------------------------------------------------- // init/release // public: virtual void OnInitialize(); bool IsShowGMWindow(DWORD gm_window_id); void ShowGMWindow(DWORD gm_window_id, bool value); void ToggleGMWindow(DWORD gm_window_id); void ResetItemParametas(); void LoadItemParametas(); ITEM_PARAMETAS* item_parametas(){ return &item_parametas_; } ITEM_PARAMETAS* GetItemOption(); void SetItemParametas(ITEM_PARAMETAS* item_parametas); void SetItemOptionParametas(ITEM_PARAMETAS* item_parameta); RECT GetResetWindowPosition(RECT *control_rect); void SetCaptionFilter(); bool IsSearching(); void SetSearchEnd(); void SetPopupUpdateMenus(BASE_ITEMINFO *item_info, bool is_bookmark_state); void CreateItemFromParameta(BASE_ITEMINFO *item_info, ITEM_PARAMETAS* item_parameta); void CreateItemLucky(BASE_ITEMINFO *item_info, ITEM_PARAMETAS* item_parameta, int lucky_expiry); void CreateLimited(BASE_ITEMINFO *item_info, ITEM_PARAMETAS* item_parameta); void CreateItemFromList(); void AddHistory(DWORD item_code); void DeleteBookMark(DWORD item_code); void AddBookMark(DWORD item_code); void DeleteAllHistroys(); void DeleteAllBookMarks(); void AddFindWord(TCHAR* find_string); void DeleteAllFindWord(); int PreSearchFindWord(TCHAR* find_string); const char* GetActivateFindData(DWORD index); DWORD GetLastMakeItemCode(); void SetItemOptionMakeCaptions(TCHAR* clipboard_string); uiBase* GetGMWindow(DWORD gm_window_id); DWORD history_max(){ return history_max_; } DWORD find_word_max(){ return find_word_max_; } DWORD bookmark_max(){ return bookmark_max_; } BYTE item_window_state(){ return item_window_state_; } void ItemSearch(TCHAR* search_word); std::vector* searched_results(){ return &searched_results_; } std::vector* created_histroys(){ return &created_histroys_; } std::vector* bookmark_lists(){ return &bookmark_lists_; } std::vector* activate_find_list(){ return &active_find_words_; } private: uiGMItemWindow* ui_gm_item_window_; uiGMItemOptionWindow* ui_gm_item_option_window_; uiGMItemResetWindow* ui_gm_item_reset_window_; uiGMItemMenuWindow* ui_gm_item_menu_window_; #ifdef _DH_GM_NPC_WINDOW uiGMNpcWindow* ui_gm_npc_window_; #endif//_DH_GM_NPC_WINDOW std::vector searched_results_; std::vector created_histroys_; std::vector bookmark_lists_; std::vector find_words_; std::vector active_find_words_; ITEM_PARAMETAS item_parametas_; DWORD history_max_; DWORD find_word_max_; DWORD bookmark_max_; BYTE item_window_state_; private: BYTE GMItemOptionParserType(TCHAR *string_buffer); void PushItemOptionData(BYTE parser_type, TCHAR* string_buffer); void LoadItemData(); void SaveData(FILE* file_ptr); }; #endif//_DEV_VER