📄 itemdlg.cpp
字号:
// ItemDlg.cpp : implementation file
//
#include "stdafx.h"
#include "DS_RMTool.h"
#include "ItemDlg.h"
//#include "GameResourceManager.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CItemDlg dialog
CItemDlg::CItemDlg(CWnd* pParent /*=NULL*/)
: CDialog(CItemDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CItemDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
memset(&m_Item, 0, sizeof(m_Item));
memset(&m_ItemOption, 0, sizeof(m_ItemOption));
m_wPos = 0;
m_Field = eIF_INVENTORY;
m_bOption = FALSE;
m_nCheckValue = -1;
m_wLevel = 99;
int i;
for(i=0;i<emBasic_Max;++i)
m_BasicList[i] = NULL;
for(i=0;i<emBasicEx_Max;++i)
m_BasicExList[i] = NULL;
for(i=0;i<emAttr_Max;++i)
m_AttrList[i] = NULL;
}
void CItemDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CItemDlg)
DDX_Control(pDX, IDC_RADIO_WEAPON, m_rdWeapon);
DDX_Control(pDX, IDC_LIST_EXBASIC, m_listExBasic);
DDX_Control(pDX, IDC_LIST_EXATTR, m_listExAttr);
DDX_Control(pDX, IDC_LIST_BASIC, m_listBasic);
DDX_Control(pDX, IDC_COMBO_EXTYPE, m_cbExType);
DDX_Control(pDX, IDC_CHECK_EXDATA, m_chExData);
//}}AFX_DATA_MAP
}
void CItemDlg::Init( INFOFIELD efield, const ITEMBASE* pitem, const ITEM_OPTION_INFO* pOption, WORD pos, WORD wWeartype )
{
memcpy(&m_Item, pitem, sizeof(ITEMBASE));
if( pOption == NULL )
{
if( GAMERESRCMNGR->IsOptionItem(pitem->wIconIdx, pitem->Durability) )
ASSERT(0);
m_bOption = FALSE;
}
else
{
m_bOption = TRUE;
memcpy(&m_ItemOption, pOption, sizeof(ITEM_OPTION_INFO));
}
m_wPos = pos;
m_Field = efield;
m_wWearType = wWeartype;
}
BEGIN_MESSAGE_MAP(CItemDlg, CDialog)
//{{AFX_MSG_MAP(CItemDlg)
ON_BN_CLICKED(IDC_BUTTON_EDIT, OnButtonEdit)
ON_BN_CLICKED(IDC_RADIO_ACCESSORY, OnRadioAccessory)
ON_BN_CLICKED(IDC_RADIO_DEFFEN, OnRadioDeffen)
ON_BN_CLICKED(IDC_RADIO_ETC, OnRadioEtc)
ON_BN_CLICKED(IDC_RADIO_WEAPON, OnRadioWeapon)
ON_CBN_SELCHANGE(IDC_COMBO_EXTYPE, OnSelchangeComboExtype)
ON_BN_CLICKED(IDC_CHECK_EXDATA, OnCheckExdata)
ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CItemDlg message handlers
BOOL CItemDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
char str[256] = {0,};
/////////////////////////////////////////////////////////////////////////////////////////
//// 扁夯 单捞磐 ////
itoa(m_Item.dwDBIdx, str, 10);
m_BasicList[emBasic_DBIdx] = new CPropertyItem("DBIndex",str,PIT_NONE,"");
m_listBasic.AddPropItem(m_BasicList[emBasic_DBIdx]);
ITEM_INFO* pInfo = GAMERESRCMNGR->GetItemInfo(m_Item.wIconIdx);
if( pInfo == NULL )
{
itoa(m_Item.wIconIdx, str, 10);
m_BasicList[emBasic_Idx] = new CPropertyItem("Item",str,PIT_COMBO,"", FALSE, CBT_ITEM);
}
else
m_BasicList[emBasic_Idx] = new CPropertyItem("Item",pInfo->ItemName,PIT_COMBO,"", FALSE, CBT_ITEM);
m_listBasic.AddPropItem(m_BasicList[emBasic_Idx]);
itoa(m_Item.Position, str, 10);
m_BasicList[emBasic_Position] = new CPropertyItem("Pos",str,PIT_NONE,"");
m_listBasic.AddPropItem(m_BasicList[emBasic_Position]);
itoa(m_Item.Durability, str, 10);
m_BasicList[emBasic_Durability] = new CPropertyItem("Dur",str,PIT_COMBO,"1|2|3|4|5|");
m_listBasic.AddPropItem(m_BasicList[emBasic_Durability]);
itoa(m_Item.QuickPosition, str, 10);
m_BasicList[emBasic_Quick] = new CPropertyItem("Qpos",str,PIT_NONE,"");
m_listBasic.AddPropItem(m_BasicList[emBasic_Quick]);
//////////////////////////////////////////////////////////////////////////////////////////////////
if( m_Item.wIconIdx != 0 && GAMERESRCMNGR->IsDupItem(m_Item.wIconIdx) )
m_BasicList[emBasic_Durability]->m_nItemType = PIT_COMBO;
else
m_BasicList[emBasic_Durability]->m_nItemType = PIT_NONE;
/////////////////////////////////////////////////////////////////////////////////////////
//// 可记 扁夯 单捞磐 ////
itoa(m_ItemOption.dwOptionIdx, str, 10);
m_BasicExList[emBasicEx_OptionIdx] = new CPropertyItem("OpIndex",str,PIT_NONE,"");
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_OptionIdx]);
itoa(m_ItemOption.dwItemDBIdx, str, 10);
m_BasicExList[emBasicEx_ItemDBIdx] = new CPropertyItem("ItemDBIdx",str,PIT_NONE,"");
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_ItemDBIdx]);
itoa(m_ItemOption.GenGol , str, 10);
m_BasicExList[emBasicEx_GenGol] = new CPropertyItem("Physique",str,PIT_EDIT,"", TRUE, CBT_NONE, 500);
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_GenGol]);
itoa(m_ItemOption.MinChub, str, 10);
m_BasicExList[emBasicEx_MinChub] = new CPropertyItem("Agility",str,PIT_EDIT,"", TRUE, CBT_NONE, 500);
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_MinChub]);
itoa(m_ItemOption.CheRyuk, str, 10);
m_BasicExList[emBasicEx_CheRyuk] = new CPropertyItem("Health",str,PIT_EDIT,"", TRUE, CBT_NONE, 500);
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_CheRyuk]);
itoa(m_ItemOption.SimMek , str, 10);
m_BasicExList[emBasicEx_SimMek] = new CPropertyItem("Heart",str,PIT_EDIT,"", TRUE, CBT_NONE, 500);
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_SimMek]);
itoa(m_ItemOption.Life, str, 10);
m_BasicExList[emBasicEx_Life] = new CPropertyItem("Life",str,PIT_EDIT,"", TRUE, CBT_NONE, 500);
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_Life]);
itoa(m_ItemOption.NaeRyuk, str, 10);
m_BasicExList[emBasicEx_NaeRyuk] = new CPropertyItem("Mana",str,PIT_EDIT,"", TRUE, CBT_NONE, 500);
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_NaeRyuk]);
itoa(m_ItemOption.Shield, str, 10);
m_BasicExList[emBasicEx_Shield] = new CPropertyItem("Shield",str,PIT_EDIT,"", TRUE, CBT_NONE, 500);
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_Shield]);
itoa(m_ItemOption.PhyAttack, str, 10);
m_BasicExList[emBasicEx_PhyAttack] = new CPropertyItem("PhyAttack",str,PIT_EDIT,"");
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_PhyAttack]);
itoa(m_ItemOption.CriticalPercent, str, 10);
m_BasicExList[emBasicEx_CriticalPercent] = new CPropertyItem("Critical",str,PIT_EDIT,"");
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_CriticalPercent]);
itoa(m_ItemOption.PhyDefense, str, 10);
m_BasicExList[emBasicEx_PhyDefense] = new CPropertyItem("PhyDefense",str,PIT_EDIT,"");
m_listExBasic.AddPropItem(m_BasicExList[emBasicEx_PhyDefense]);
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
//// 可记 加己 单捞磐 (林狼!! FLOAT屈捞促.)////
/* itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_FIRE)), str, 10 );
m_AttrList[emAttr_AFireElement] = new CPropertyItem("AFIRE",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_AFireElement]);
itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_WATER)), str, 10 );
m_AttrList[emAttr_AWaterElement] = new CPropertyItem("AWATER",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_AWaterElement]);
itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_TREE)), str, 10 );
m_AttrList[emAttr_ATreeElement] = new CPropertyItem("ATREE",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_ATreeElement]);
itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_IRON)), str, 10 );
m_AttrList[emAttr_AGoldElement] = new CPropertyItem("AIRON",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_AGoldElement]);
itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_EARTH)), str, 10 );
m_AttrList[emAttr_AEarthElement] = new CPropertyItem("AEARTH",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_AEarthElement]);
itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_NOATTR)), str, 10 );
m_AttrList[emAttr_ANoneElement] = new CPropertyItem("ANOATTR",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_ANoneElement]);
itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_FIRE)), str, 10 );
m_AttrList[emAttr_DFireElement] = new CPropertyItem("DFIRE",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DFireElement]);
itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_WATER)), str, 10 );
m_AttrList[emAttr_DWaterElement] = new CPropertyItem("DWATER",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DWaterElement]);
itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_TREE)), str, 10 );
m_AttrList[emAttr_DTreeElement] = new CPropertyItem("DTREE",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DTreeElement]);
itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_IRON)), str, 10 );
m_AttrList[emAttr_DGoldElement] = new CPropertyItem("DIRON",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DGoldElement]);
itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_EARTH)), str, 10 );
m_AttrList[emAttr_DEarthElement] = new CPropertyItem("DEARTH",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DEarthElement]);
itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_NOATTR)), str, 10 );
m_AttrList[emAttr_DNoneElement] = new CPropertyItem("DNOATTR",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DNoneElement]);
*/
float temp = m_ItemOption.AttrAttack.GetElement_Val(ATTR_FIRE);
// itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_FIRE)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_AFireElement] = new CPropertyItem("AFIRE",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_AFireElement]);
temp = m_ItemOption.AttrAttack.GetElement_Val(ATTR_WATER);
// itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_WATER)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_AWaterElement] = new CPropertyItem("AWATER",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_AWaterElement]);
temp = m_ItemOption.AttrAttack.GetElement_Val(ATTR_TREE);
// itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_TREE)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_ATreeElement] = new CPropertyItem("ATREE",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_ATreeElement]);
temp = m_ItemOption.AttrAttack.GetElement_Val(ATTR_IRON);
// itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_IRON)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_AGoldElement] = new CPropertyItem("AIRON",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_AGoldElement]);
temp = m_ItemOption.AttrAttack.GetElement_Val(ATTR_EARTH);
// itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_EARTH)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_AEarthElement] = new CPropertyItem("AEARTH",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_AEarthElement]);
temp = m_ItemOption.AttrAttack.GetElement_Val(ATTR_NOATTR);
// itoa((int)(m_ItemOption.AttrAttack.GetElement_Val(ATTR_NOATTR)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_ANoneElement] = new CPropertyItem("ANOATTR",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_ANoneElement]);
temp = m_ItemOption.AttrRegist.GetElement_Val(ATTR_FIRE);
// itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_FIRE)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_DFireElement] = new CPropertyItem("DFIRE",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DFireElement]);
temp = m_ItemOption.AttrRegist.GetElement_Val(ATTR_WATER);
// itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_WATER)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_DWaterElement] = new CPropertyItem("DWATER",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DWaterElement]);
temp = m_ItemOption.AttrRegist.GetElement_Val(ATTR_TREE);
// itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_TREE)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_DTreeElement] = new CPropertyItem("DTREE",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DTreeElement]);
temp = m_ItemOption.AttrRegist.GetElement_Val(ATTR_IRON);
// itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_IRON)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_DGoldElement] = new CPropertyItem("DIRON",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DGoldElement]);
temp = m_ItemOption.AttrRegist.GetElement_Val(ATTR_EARTH);
// itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_EARTH)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_DEarthElement] = new CPropertyItem("DEARTH",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DEarthElement]);
temp = m_ItemOption.AttrRegist.GetElement_Val(ATTR_NOATTR);
// itoa((int)(m_ItemOption.AttrRegist.GetElement_Val(ATTR_NOATTR)*100), str, 10 );
itoa((int)temp, str, 10 );
m_AttrList[emAttr_DNoneElement] = new CPropertyItem("DNOATTR",str,PIT_EDIT,"");
m_listExAttr.AddPropItem(m_AttrList[emAttr_DNoneElement]);
/////////////////////////////////////////////////////////////////////////////////////////
SetItemTypeControl();
if( m_Item.wIconIdx == 0 )
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CItemDlg::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
int i;
for(i=0;i<emBasic_Max;++i)
SAFE_DELETE( m_BasicList[i] );
for(i=0;i<emBasicEx_Max;++i)
SAFE_DELETE( m_BasicExList[i] );
for(i=0;i<emAttr_Max;++i)
SAFE_DELETE( m_AttrList[i] );
return CDialog::DestroyWindow();
}
void CItemDlg::SetItemTypeControl()
{
if( m_Field == eIF_WEAR )
{
switch(m_wWearType)
{
case eEQUIP_ITEM_HAT:
case eEQUIP_ITEM_DRESS:
case eEQUIP_ITEM_SHOES:
{
((CButton*)GetDlgItem(IDC_RADIO_DEFFEN))->SetCheck(BST_CHECKED);
m_nCheckValue = 1;
m_cbExType.EnableWindow(FALSE);
SetItemExTypeCombo(m_wWearType-eEQUIP_ITEM_DRESS);
}
break;
case eEQUIP_ITEM_WEAPON:
{
((CButton*)GetDlgItem(IDC_RADIO_WEAPON))->SetCheck(BST_CHECKED);
m_nCheckValue = 0;
SetItemExTypeCombo();
}
break;
case eEQUIP_ITEM_RING:
case eEQUIP_ITEM_CAPE:
case eEQUIP_ITEM_NECKLACE:
case eEQUIP_ITEM_ARMLET:
case eEQUIP_ITEM_BELT:
{
((CButton*)GetDlgItem(IDC_RADIO_ACCESSORY))->SetCheck(BST_CHECKED);
m_nCheckValue = 2;
m_cbExType.EnableWindow(FALSE);
SetItemExTypeCombo(m_wWearType-eEQUIP_ITEM_ARMLET);
}
break;
default:
{
ASSERT(0);
}
break;;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -