Files
2022-10-26 12:25:11 +08:00

125 lines
3.9 KiB
C++

#ifndef _UI_ITEM_COMPOSITE_MAN_H_
#define _UI_ITEM_COMPOSITE_MAN_H_
#include "uiItemCompositeMan_def.h"
#include "uiBaseMan.h"
#include "SCItemSlot.h"
#include "solarDialog.h"
#include "ItemComposeListParser.h"
#include "uiSystemMan/uiSystemMessage.h"
class uiItemTotalcomposite;
class uiItemCube;
#ifdef _NA_007435_20140718_MODIFY_ITEMCOMPOSE_MATERIAL_CONDITION
class ItemType;
#endif //_NA_007435_20140718_MODIFY_ITEMCOMPOSE_MATERIAL_CONDITION
enum eItemCompositeCatagory
{
ITEM_COMPOSITE_CATEGORY_NONE = 0,
ITEM_COMPOSITE_CATEGORY_COMPOSITE, // »ç¿ë¾ÈÇÔ!!!!!!!!!!!!!
ITEM_COMPOSITE_CATEGORY_TOTAL_COMPOSITE, //Á¶ÇÕ(»ý¼º)
#ifdef _NA_008121_20150311_EQUIPMENT_AWAKENING_SYSTEM
ITEM_COMPOSITE_CATEGORY_CRYSTALIZE,
#endif // _NA_008121_20150311_EQUIPMENT_AWAKENING_SYSTEM
};
class uiItemCompositeMan : public uiBaseMan
{
public:
enum { INVALID_MAIN_MAT_POS = -1, };
uiItemCompositeMan(InterfaceManager *pUIMan);
//--------------------------------------------------------------------------
// init/release
//
public:
virtual void OnInitialize();
virtual void InitPKBooleans();
private:
BOOL _LoadUI();
//--------------------------------------------------------------------------
// functions
//
public:
SolarDialog * ShowItemComposite(
eItemCompositeCatagory eCompositeCategoryType,
eITEMCOMPOSITECODE ItemCompositeCode );
eItemCompositeCatagory GetCompositeCategory() { return this->m_eCurItemCompositeCatagory; }
eITEMCOMPOSITECODE GetCompositeCode() { return this->m_eCurItemCompositeCode; }
//--------------------------------------------------------------------------
// composite funcs
//
public:
//BOOL IsReadyForCompositeMaterials();
BOOL fillTotalCompositeInfo(int itemCode);
BOOL IsReadyForTotalCompositeMaterials();
BOOL NET_SEND_CG_TOTAL_ITEM_COMPOSITE_SYN();
int GetAvalibleCompositeNum(CODETYPE ItemCode, int iItemNum,int iFirst);
BOOL isValidTotalCompositeFlag();
BOOL spendTotalComposeMaterials();
int GetMaxCompositeNum() {return m_maxCompositeNum;}
int GetManualCompositeNum() {return m_ManualCompositeNum;}
void SetManualCompositeNum(int val) { m_ManualCompositeNum = val;}
void UpdateInfo(BOOL bInitCompositeNum = TRUE);
int GetCompositeResultType() { return m_iCompositeResultType;}
void ClearInfo();
#ifdef _NA_007435_20140718_MODIFY_ITEMCOMPOSE_MATERIAL_CONDITION
BOOL IsExistItemForComposite(
SLOTCODE material_code,
DURATYPE material_number,
ItemType* item_type_ptr = NULL,
DWORD item_type_index = 0);
#endif //_NA_007435_20140718_MODIFY_ITEMCOMPOSE_MATERIAL_CONDITION
protected:
//BOOL isValidCompositeFlag();
//BOOL fillCompositeInfo();
//BOOL spendComposeMaterials();
//--------------------------------------------------------------------------
// crystalize funcs
//
public:
static void _Callback_Crystalization_Confirm(uiSystemMessage::ButtonIndex button_index);
BOOL NET_SEND_CG_ITEM_CRYSTALIZE_SYN(const POSTYPE& target_Pos, const SLOTCODE& slot_code);
//--------------------------------------------------------------------------
// procedure
//
public:
virtual void NetworkProc( MSG_BASE * pMsg );
//--------------------------------------------------------------------------
// member vars
//
private:
eItemCompositeCatagory m_eCurItemCompositeCatagory;
eITEMCOMPOSITECODE m_eCurItemCompositeCode;
eITEMCOMPOSITECODE m_ePendingItemCompositeCode;
uiItemTotalcomposite * m_pUIItemTotalComposite;
MSG_CG_ITEM_COMPOSE_SYN m_MsgTotalComposeSyn;
int m_iCompositeResultType;
int m_maxCompositeNum;
int m_ManualCompositeNum;
int m_PendingManualCompositeNum;
// uiItemComposite * m_pUIItemComposite;
MSG_CG_ITEM_COMPOSE_SYN m_MsgComposeSyn;
uiItemCube* ui_item_cube_;
};
#endif //_UI_ITEM_COMPOSITE_MAN_H_