Files
Sun1602/Client/GameClient/ExtendInventoryDialog.h
2022-10-26 12:25:11 +08:00

283 lines
8.0 KiB
C++

#ifndef _EXTEND_INVENTORY_DIALOG_H
#define _EXTEND_INVENTORY_DIALOG_H
#pragma once
#include "uiBase.h"
class uiInventoryMan;
class InventoryDialog;
class ExtendInventoryDialog : public uiBase
{
enum eINVEN_POS
{
EXTEND_INVEN_SLOT_1_00,
EXTEND_INVEN_SLOT_1_01,
EXTEND_INVEN_SLOT_1_02,
EXTEND_INVEN_SLOT_1_03,
EXTEND_INVEN_SLOT_1_04,
EXTEND_INVEN_SLOT_1_05,
EXTEND_INVEN_SLOT_1_06,
EXTEND_INVEN_SLOT_1_07,
EXTEND_INVEN_SLOT_1_08,
EXTEND_INVEN_SLOT_1_09,
EXTEND_INVEN_SLOT_1_10,
EXTEND_INVEN_SLOT_1_11,
EXTEND_INVEN_SLOT_1_12,
EXTEND_INVEN_SLOT_1_13,
EXTEND_INVEN_SLOT_1_14,
EXTEND_INVEN_SLOT_2_00,
EXTEND_INVEN_SLOT_2_01,
EXTEND_INVEN_SLOT_2_02,
EXTEND_INVEN_SLOT_2_03,
EXTEND_INVEN_SLOT_2_04,
EXTEND_INVEN_SLOT_2_05,
EXTEND_INVEN_SLOT_2_06,
EXTEND_INVEN_SLOT_2_07,
EXTEND_INVEN_SLOT_2_08,
EXTEND_INVEN_SLOT_2_09,
EXTEND_INVEN_SLOT_2_10,
EXTEND_INVEN_SLOT_2_11,
EXTEND_INVEN_SLOT_2_12,
EXTEND_INVEN_SLOT_2_13,
EXTEND_INVEN_SLOT_2_14,
EXTEND_INVEN_SLOT_3_00,
EXTEND_INVEN_SLOT_3_01,
EXTEND_INVEN_SLOT_3_02,
EXTEND_INVEN_SLOT_3_03,
EXTEND_INVEN_SLOT_3_04,
EXTEND_INVEN_SLOT_3_05,
EXTEND_INVEN_SLOT_3_06,
EXTEND_INVEN_SLOT_3_07,
EXTEND_INVEN_SLOT_3_08,
EXTEND_INVEN_SLOT_3_09,
EXTEND_INVEN_SLOT_3_10,
EXTEND_INVEN_SLOT_3_11,
EXTEND_INVEN_SLOT_3_12,
EXTEND_INVEN_SLOT_3_13,
EXTEND_INVEN_SLOT_3_14,
EXTEND_INVEN_SLOT_4_00,
EXTEND_INVEN_SLOT_4_01,
EXTEND_INVEN_SLOT_4_02,
EXTEND_INVEN_SLOT_4_03,
EXTEND_INVEN_SLOT_4_04,
EXTEND_INVEN_SLOT_4_05,
EXTEND_INVEN_SLOT_4_06,
EXTEND_INVEN_SLOT_4_07,
EXTEND_INVEN_SLOT_4_08,
EXTEND_INVEN_SLOT_4_09,
EXTEND_INVEN_SLOT_4_10,
EXTEND_INVEN_SLOT_4_11,
EXTEND_INVEN_SLOT_4_12,
EXTEND_INVEN_SLOT_4_13,
EXTEND_INVEN_SLOT_4_14,
EXTEND_INVEN_SLOT_5_00,
EXTEND_INVEN_SLOT_5_01,
EXTEND_INVEN_SLOT_5_02,
EXTEND_INVEN_SLOT_5_03,
EXTEND_INVEN_SLOT_5_04,
EXTEND_INVEN_SLOT_5_05,
EXTEND_INVEN_SLOT_5_06,
EXTEND_INVEN_SLOT_5_07,
EXTEND_INVEN_SLOT_5_08,
EXTEND_INVEN_SLOT_5_09,
EXTEND_INVEN_SLOT_5_10,
EXTEND_INVEN_SLOT_5_11,
EXTEND_INVEN_SLOT_5_12,
EXTEND_INVEN_SLOT_5_13,
EXTEND_INVEN_SLOT_5_14,
EXTEND_INVEN_SLOT_6_00,
EXTEND_INVEN_SLOT_6_01,
EXTEND_INVEN_SLOT_6_02,
EXTEND_INVEN_SLOT_6_03,
EXTEND_INVEN_SLOT_6_04,
EXTEND_INVEN_SLOT_6_05,
EXTEND_INVEN_SLOT_6_06,
EXTEND_INVEN_SLOT_6_07,
EXTEND_INVEN_SLOT_6_08,
EXTEND_INVEN_SLOT_6_09,
EXTEND_INVEN_SLOT_6_10,
EXTEND_INVEN_SLOT_6_11,
EXTEND_INVEN_SLOT_6_12,
EXTEND_INVEN_SLOT_6_13,
EXTEND_INVEN_SLOT_6_14,
EXTEND_INVEN_SLOT_7_00,
EXTEND_INVEN_SLOT_7_01,
EXTEND_INVEN_SLOT_7_02,
EXTEND_INVEN_SLOT_7_03,
EXTEND_INVEN_SLOT_7_04,
EXTEND_INVEN_SLOT_7_05,
EXTEND_INVEN_SLOT_7_06,
EXTEND_INVEN_SLOT_7_07,
EXTEND_INVEN_SLOT_7_08,
EXTEND_INVEN_SLOT_7_09,
EXTEND_INVEN_SLOT_7_10,
EXTEND_INVEN_SLOT_7_11,
EXTEND_INVEN_SLOT_7_12,
EXTEND_INVEN_SLOT_7_13,
EXTEND_INVEN_SLOT_7_14,
EXTEND_INVEN_SLOT_8_00,
EXTEND_INVEN_SLOT_8_01,
EXTEND_INVEN_SLOT_8_02,
EXTEND_INVEN_SLOT_8_03,
EXTEND_INVEN_SLOT_8_04,
EXTEND_INVEN_SLOT_8_05,
EXTEND_INVEN_SLOT_8_06,
EXTEND_INVEN_SLOT_8_07,
EXTEND_INVEN_SLOT_8_08,
EXTEND_INVEN_SLOT_8_09,
EXTEND_INVEN_SLOT_8_10,
EXTEND_INVEN_SLOT_8_11,
EXTEND_INVEN_SLOT_8_12,
EXTEND_INVEN_SLOT_8_13,
EXTEND_INVEN_SLOT_8_14,
EXTEND_INVEN_SLOT_9_00,
EXTEND_INVEN_SLOT_9_01,
EXTEND_INVEN_SLOT_9_02,
EXTEND_INVEN_SLOT_9_03,
EXTEND_INVEN_SLOT_9_04,
EXTEND_INVEN_SLOT_9_05,
EXTEND_INVEN_SLOT_9_06,
EXTEND_INVEN_SLOT_9_07,
EXTEND_INVEN_SLOT_9_08,
EXTEND_INVEN_SLOT_9_09,
EXTEND_INVEN_SLOT_9_10,
EXTEND_INVEN_SLOT_9_11,
EXTEND_INVEN_SLOT_9_12,
EXTEND_INVEN_SLOT_9_13,
EXTEND_INVEN_SLOT_9_14,
EXTEND_INVEN_SLOT_10_00,
EXTEND_INVEN_SLOT_10_01,
EXTEND_INVEN_SLOT_10_02,
EXTEND_INVEN_SLOT_10_03,
EXTEND_INVEN_SLOT_10_04,
EXTEND_INVEN_SLOT_10_05,
EXTEND_INVEN_SLOT_10_06,
EXTEND_INVEN_SLOT_10_07,
EXTEND_INVEN_SLOT_10_08,
EXTEND_INVEN_SLOT_10_09,
EXTEND_INVEN_SLOT_10_10,
EXTEND_INVEN_SLOT_10_11,
EXTEND_INVEN_SLOT_10_12,
EXTEND_INVEN_SLOT_10_13,
EXTEND_INVEN_SLOT_10_14,
EXTEND_INVEN_TEXT_TITLE,
EXTEND_INVEN_BUTTON_UNLOCK,
EXTEND_INVEN_BUTTON_LOCK,
EXTEND_INVEN_BUTTON_FILTER,
EXTEND_INVEN_BUTTON_VIEW_OPTION,
EXTEND_INVEN_BUTTON_WASTE,
EXTEND_INVEN_BUTTON_WAY_POINT,
EXTEND_INVEN_BUTTON_EVENT_INVEN_OFF,
EXTEND_INVEN_BUTTON_EVENT_INVEN_ON,
EXTEND_INVEN_BUTTON_MONEY,
EXTEND_INVEN_BUTTON_EXIT,
EXTEND_INVEN_IMAGE_BLIND00,
EXTEND_INVEN_IMAGE_BLIND01,
EXTEND_INVEN_IMAGE_BLIND02,
EXTEND_INVEN_IMAGE_BLIND03,
EXTEND_INVEN_IMAGE_BLIND04,
EXTEND_INVENTORY_CONTROLS_MAX,
};
enum
{
EXTEND_INVENTORY_MAX = EXTEND_INVEN_SLOT_10_14+1,
};
enum EXTEND_INVENTORY_LOCK_STATE
{
EXTEND_INVENTORY_LOCK_STATE_UNLOCK = 0,
EXTEND_INVENTORY_LOCK_STATE_LOCK,
EXTEND_INVENTORY_LOCK_STATE_MAX,
};
enum
{
EXTEND_INVENTORY = 0,
EXTEND_TEMP_INVENTORY,
};
public:
ExtendInventoryDialog(InterfaceManager* manager_ptr);
virtual ~ExtendInventoryDialog(void);
virtual void Init(CDrawBase* draw_base_ptr);
virtual void Release();
virtual void OnUpdateSolarDialog();
virtual void OnRenderSolarDialog();
virtual void MessageProc(SI_MESSAGE* message_ptr);
virtual void OnShowWindow(BOOL value);
virtual void MouseOver_MsgProc(SI_MESSAGE* pMessage);
virtual void Process(DWORD tick_count);
//virtual void UpdatePosition();
uiInventoryMan* GetManager();
void InitRenderer();
void RefreshRenderSlot();
void InitTitleByLockState();
void SetEventInvenState(bool value){ event_inven_off_ = value; }
void ShowExtendInventory();
CControlWZ* get_control(POSTYPE AtPos);
private:
POSTYPE get_control_id_to_position(WzID controls_id);
void UpdateMoney();
void InitControls();
void RefreshExtendInventoryRenderUnit();
void UpdateToolTip();
void CheckChargeInventory(int charge_count);
public:
private:
uiInventoryMan* inventory_manager_ptr_;
static WzID controls_id_[EXTEND_INVENTORY_CONTROLS_MAX];
TCHAR money_string_[INTERFACE_STRING_LENGTH];
TCHAR result_string_[INTERFACE_STRING_LENGTH];
CCtrlStaticWZ* money_text_control_;
CCtrlStaticWZ* title_static_text_;
ItemUnitRenderer* item_unit_renderer_;
InventoryDialog* inventory_dialog_;
CCtrlButtonWZ* lock_buttons_[EXTEND_INVENTORY_LOCK_STATE_MAX];
CCtrlButtonWZ* event_button_;
bool event_inven_on_;
bool event_inven_off_;
int charge_count_;
DWORD flash_tick_for_event_inven_;
};
//------------------------------------------------------------------------------
/**
*/
inline POSTYPE ExtendInventoryDialog::get_control_id_to_position(WzID controls_id)
{
for (POSTYPE i = 0; i < EXTEND_INVENTORY_CONTROLS_MAX; ++i )
{
if (controls_id_[i] == controls_id)
{
return i;
}
}
return EXTEND_INVENTORY_CONTROLS_MAX;
}
//------------------------------------------------------------------------------
/**
*/
inline CControlWZ* ExtendInventoryDialog::get_control(POSTYPE AtPos)
{
if (AtPos >= EXTEND_INVENTORY_CONTROLS_MAX)
{
return NULL;
}
return GetControlWZ(controls_id_[AtPos]);
}
#endif//_EXTEND_INVENTORY_DIALOG_H