#ifndef _UIITEMCUBE_H #define _UIITEMCUBE_H #include "uiBase.h" #include "SCItemSlotContainer.h" #include "DummySlotContainer.h" class uiItemCompositeMan; class uiItemCube : public uiBase, public DummySlotContainer { static const int kTextures_Frame = 4; static const int kMax_Animate_Count = 120; static const int kMax_Animate_Tick = 4000; enum CompositeType { kType_Composite = 0, kType_Decomposite, kType_Composite_Max, }; enum UIControlPos { kControl_Button_B020 = 0, kControl_Button_B001, kControl_Button_B002, kControl_Button_B003, kControl_Button_B004, kControl_Button_B005, kControl_Button_B006, kControl_Button_B007, kControl_Button_B008, kControl_Button_BT01, kControl_Button_B009, kControl_Button_B000, kControl_Text_T999, kControl_Button_B010, // ¢º¹öư kControl_Button_B011, // ¢¸¹öư kControl_Button_B012, // ¸®½ºÆ® ¿µ¿ª1 ¼±Åà ¹öư kControl_Button_B013, // ¸®½ºÆ® ¿µ¿ª2 ¼±Åà ¹öư kControl_Button_B014, // ¸®½ºÆ® ¿µ¿ª3 ¼±Åà ¹öư kControl_Button_B015, // ¸®½ºÆ® ¿µ¿ª4 ¼±Åà ¹öư kControl_Button_B016, // ¸®½ºÆ® ¿µ¿ª5 ¼±Åà ¹öư kControl_Button_B017, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô1 kControl_Button_B018, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô2 kControl_Button_B019, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô3 kControl_Button_B021, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô4 kControl_Button_B022, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô5 kControl_Button_B023, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô0 (¼±ÅÃÈÄ) kControl_Button_B024, // Àá±è ¹öư 1 kControl_Button_B026, // Àá±è ¹öư 2 kControl_Button_B027, // Àá±è ¹öư 3 kControl_Button_B028, // Àá±è ¹öư 4 kControl_Button_B029, // Àá±è ¹öư 5 kControl_Button_B025, // ¿­¸² ¹öư 1 kControl_Button_B030, // ¿­¸² ¹öư 2 kControl_Button_B031, // ¿­¸² ¹öư 3 kControl_Button_B032, // ¿­¸² ¹öư 4 kControl_Button_B033, // ¿­¸² ¹öư 5 kControl_List_L000, // ¸®½ºÆ® 1 kControl_List_L001, // ¸®½ºÆ® 2 kControl_List_L003, // ¸®½ºÆ® 3 kControl_List_L002, // ¸®½ºÆ® 4 kControl_List_L004, // ¸®½ºÆ® 5 kControl_List_L005, // ¼±ÅÃµÈ ¾ÆÀÌÅÛ À̸§ Ç¥½Ã ¸®½ºÆ® kControl_List_L006, // ¸®½ºÆ® È®Àå ¼³¸í kControl_Picture_P000, // Àüü ¹è°æ kControl_Picture_P025, // ÀÛÀº ¹öư ¹è°æ kControl_Picture_P003, // ¼±ÅÃµÈ ¾ÆÀÌÅÛ ¹è°æ kControl_Picture_P004, // ¾ÆÀÌÅÛ ½½·Ô kControl_Picture_P002, // È®Àå ¼³¸í ¹è°æ kControl_Picture_P500, // ÄÁÆ®·Ñ È®Àå ¹è°æ kControl_VScroll_V000, // ¸®½ºÆ® ½ºÅ©·Ñ¹Ù kControl_Static_S000, // ¸®½ºÆ® Á¦¸ñ //»õ·Î Ãß°¡µÈ ¸®½ºÆ® kControl_Picture_P444, //kControl_Picture_P004, kControl_Picture_P005, kControl_Picture_P007, kControl_Picture_P008, kControl_Picture_P020, kControl_Picture_P999, // 2013.04.03 / È«¼ºÇö / P006(Å¥ºê ´ÙÀ̾ó·Î±×) Ãß°¡ kControl_Picture_P006, kControl_Size, }; enum UIControlPosName { kControl_Button_Slot0 = kControl_Button_B020, // ½½·Ô0 kControl_Button_Slot1 = kControl_Button_B001, // ½½·Ô1 kControl_Button_Slot2 = kControl_Button_B002, // ½½·Ô2 kControl_Button_Slot3 = kControl_Button_B003, // ½½·Ô3 kControl_Button_Slot4 = kControl_Button_B004, // ½½·Ô4 kControl_Button_Slot5 = kControl_Button_B005, // ½½·Ô5 kControl_Button_Slot6 = kControl_Button_B006, // ½½·Ô6 kControl_Button_Slot7 = kControl_Button_B007, // ½½·Ô7 kControl_Button_Slot8 = kControl_Button_B008, // ½½·Ô8 kControl_Button_Composite = kControl_Button_BT01, // ÇÕ¼º kControl_Button_DeComposite = kControl_Button_B009, // ºÐÇØ kControl_Button_Exit = kControl_Button_B000, // Á¾·á ¹öư kControl_Text_Title = kControl_Text_T999, kControl_Button_ListClose = kControl_Button_B010, // ¢º¹öư kControl_Button_Open = kControl_Button_B011, // ¢¸¹öư kControl_Button_List1 = kControl_Button_B012, // ¸®½ºÆ® ¿µ¿ª1 ¼±Åà ¹öư kControl_Button_List2 = kControl_Button_B013, // ¸®½ºÆ® ¿µ¿ª2 ¼±Åà ¹öư kControl_Button_List3 = kControl_Button_B014, // ¸®½ºÆ® ¿µ¿ª3 ¼±Åà ¹öư kControl_Button_List4 = kControl_Button_B015, // ¸®½ºÆ® ¿µ¿ª4 ¼±Åà ¹öư kControl_Button_List5 = kControl_Button_B016, // ¸®½ºÆ® ¿µ¿ª5 ¼±Åà ¹öư kControl_Button_ListSlot1 = kControl_Button_B017, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô1 kControl_Button_ListSlot2 = kControl_Button_B018, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô2 kControl_Button_ListSlot3 = kControl_Button_B019, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô3 kControl_Button_ListSlot4 = kControl_Button_B021, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô4 kControl_Button_ListSlot5 = kControl_Button_B022, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô5 kControl_Button_ListSlot0 = kControl_Button_B023, // ¸®½ºÆ® ¾ÆÀÌÅÛ ½½·Ô0 (¼±ÅÃÈÄ) kControl_Button_Lock1 = kControl_Button_B024, // Àá±è ¹öư 1 kControl_Button_Lock2 = kControl_Button_B026, // Àá±è ¹öư 2 kControl_Button_Lock3 = kControl_Button_B027, // Àá±è ¹öư 3 kControl_Button_Lock4 = kControl_Button_B028, // Àá±è ¹öư 4 kControl_Button_Lock5 = kControl_Button_B029, // Àá±è ¹öư 5 kControl_Button_UnLock1 = kControl_Button_B025, // ¿­¸² ¹öư 1 kControl_Button_UnLock2 = kControl_Button_B030, // ¿­¸² ¹öư 2 kControl_Button_UnLock3 = kControl_Button_B031, // ¿­¸² ¹öư 3 kControl_Button_UnLock4 = kControl_Button_B032, // ¿­¸² ¹öư 4 kControl_Button_UnLock5 = kControl_Button_B033, // ¿­¸² ¹öư 5 kControl_List1 = kControl_List_L000, // ¸®½ºÆ® 1 kControl_List2 = kControl_List_L001, // ¸®½ºÆ® 2 kControl_List3 = kControl_List_L003, // ¸®½ºÆ® 3 kControl_List4 = kControl_List_L002, // ¸®½ºÆ® 4 kControl_List5 = kControl_List_L004, // ¸®½ºÆ® 5 kControl_List0 = kControl_List_L005, // ¼±ÅÃµÈ ¾ÆÀÌÅÛ À̸§ Ç¥½Ã ¸®½ºÆ® kControl_List_Description = kControl_List_L006, // ¸®½ºÆ® È®Àå ¼³¸í KControl_Picture_Back =kControl_Picture_P500, kControl_Picture_Top = kControl_Picture_P025, kControl_List_Background = kControl_Picture_P000, // Àüü ¹è°æ kControl_Small_Background = kControl_Picture_P002, // ÀÛÀº ¹öư ¹è°æ kControl_Select_Background = kControl_Picture_P003, // ¼±ÅÃµÈ ¾ÆÀÌÅÛ ¹è°æ kControl_Slot_Background = kControl_Picture_P004, // ¾ÆÀÌÅÛ ½½·Ô kControl_Description_Background = kControl_Picture_P002, // È®Àå ¼³¸í ¹è°æ kControl_List_Scroll = kControl_VScroll_V000, // ¸®½ºÆ® ½ºÅ©·Ñ¹Ù kControl_List_Title = kControl_Static_S000, // ¸®½ºÆ® Á¦¸ñ // 2013.04.03 / È«¼ºÇö / P006(Å¥ºê ´ÙÀ̾ó·Î±×) Ãß°¡ kControl_Picture_Cube_Back = kControl_Picture_P006, // Å¥ºê ´ÙÀ̾ó·Î±× Àüü ¹è°æ kControl_Max_Size = kControl_Size, }; public: uiItemCube(InterfaceManager* ui_man); virtual ~uiItemCube(); virtual void Init(CDrawBase* draw_base); virtual void Release(); uiItemCompositeMan* GetManager(); virtual void MessageProc(SI_MESSAGE* message_ptr); void MouseOver_MsgProc(SI_MESSAGE* message); void NetworkProc(MSG_BASE* message); SCSlotContainer* GetSlotContainer(); RC::eSLOT_INSERT_RESULT uiItemCube::InsertSlot(POSTYPE at_pos, SCSlot& slot); BOOL DeleteSlot(POSTYPE at_pos, SCSlot* slotOut); void DeleteAllSlot(); void OnItemCube_InventoryRightClick(const SLOTIDX from_container_index, const POSTYPE from_container_position); void SetCubeItemPosition(POSTYPE real_position){ cube_position_ = real_position; } POSTYPE cube_position(){ return cube_position_; } bool Move_Click_Check(){ return click_move_enable_; } protected: virtual void OnShowWindow(BOOL value); virtual void OnRenderSolarDialog(); virtual void OnUpdateSolarDialog(); private: bool OnDoubleButtonClick(SI_MESSAGE* message); bool OnLButtonClick(SI_MESSAGE* message); bool OnRButtonClick(SI_MESSAGE* message); bool OnScroll(SI_MESSAGE* message); bool OnMouseOver(SI_MESSAGE* message); void ResetAnimation(); void InitTextures(); void InitContainer(); void AnimateEffect(int type); bool ShowItemVisible(); bool ExecuteCube(bool is_composition); void ShowCubeLists(bool is_value); void ShowBackgrounds(bool is_value); void ShowSelectionControls(bool is_value); void ShowListControls(bool is_value); void ShowListOpenButton(bool is_value); void SetListLock(int index, bool is_lock); void SetListItem(int index, int focus); void SetListItems(); void SetListLocking(int index, int focus); void SetItemIcon(int index, int focus); void OpenDetailList(int index); void SetDetailListItem(int focus); void UpdateToolTip(); void SendPacketGetList(); void SendPacketListLock(); WzColor GetAlphaValue(); /* bool OnCubeItem(const SLOTIDX from_container_index, const POSTYPE from_container_position, const POSTYPE to_container_position);*/ private: ItemUnitRenderer* item_unit_renderer_; FRECT texture_rectangles_[kTextures_Frame]; HANDLE effect_texture_[kType_Composite_Max]; int animate_frame_count_; int animate_effect_type_; DWORD animate_now_tick_; DWORD animate_start_tick_; DWORD animate_end_tick_; DWORD tooltip_string_code_; bool cube_lock_; bool click_move_enable_; POSTYPE item_inventory_position[kControl_Button_B008+1]; INVENTORY_TOTAL_INFO save_inventory_item_info; POSTYPE cube_position_; ItemCompositionOrDecompositionHistory history_list_[MSG_CG_ITEM_GET_COMPOSITION_OR_DECOMPOSITION_HISTORIES_ACK::kMaxHistoryListSize]; int list_current_focus_; int list_size_; MSG_CG_ITEM_MODIFY_COMPOSITION_OR_DECOMPOSITION_HISTORIES_CMD::ModifyCondition modify_condition_list_[MSG_CG_ITEM_MODIFY_COMPOSITION_OR_DECOMPOSITION_HISTORIES_CMD::kMaxConditionListSize]; DWORD default_list_background_height_; bool is_show_cube_history_; }; #endif//_UIITEMCUBE_H