📄 munpainfo.cpp
字号:
strcat(str, OptionBuff);
}
if( pOptionInfo->Shield != 0 )
{
sprintf(OptionBuff, "\n%s : +%d", "规绢仿", pOptionInfo->Shield);
strcat(str, OptionBuff);
}
if( pOptionInfo->PhyAttack != 0 )
{
sprintf(OptionBuff, "\n%s : +%d", "拱府傍拜", pOptionInfo->PhyAttack);
strcat(str, OptionBuff);
}
if( pOptionInfo->CriticalPercent != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "农府萍拿", pOptionInfo->CriticalPercent);
strcat(str, OptionBuff);
}
if( pOptionInfo->PhyDefense != 0 )
{
sprintf(OptionBuff, "\n%s : +%d", "拱府规绢", pOptionInfo->PhyDefense);
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_FIRE) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "拳规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_FIRE));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_WATER) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "荐规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_WATER));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_TREE) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "格规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_TREE));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_IRON) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "陛规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_IRON));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_EARTH) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "配规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_EARTH));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_NOATTR) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "公规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_NOATTR));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_FIRE) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "拳傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_FIRE));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_WATER) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "荐傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_WATER));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_TREE) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "格傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_TREE));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_IRON) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "陛傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_IRON));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_EARTH) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "配傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_EARTH));
strcat(str, OptionBuff);
}
if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_NOATTR) != 0.00f )
{
sprintf(OptionBuff, "\n%s : %.2f%%", "公傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_NOATTR));
strcat(str, OptionBuff);
}
}
}
buff.Format("\n");
strcat(str, buff.GetBuffer(0));
}
BOOL CMunpaInfo::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
POSTYPE pos;
if( CMRButton* wnd = CheckButtonEvent(pMsg->hwnd, pos) )
{
char buff[1024] = {0,};
MakeToolTip(pos, (WORD)wnd->GetData(), buff);
if( strlen(buff) )
{
m_TTctrl.UpdateTipText( buff , wnd );
m_TTctrl.RelayEvent(pMsg);
}
}
return CLDPropPage::PreTranslateMessage(pMsg);
}
void CMunpaInfo::EnableWareHouse(BOOL bEnable)
{
m_StatusEdit[eMunpaTemp_MONEY].EnableWindow(bEnable);
for(int i=0;i<TABCELL_MUNPAWAREHOUSE_NUM;++i)
m_MunpaItem[i].EnableWindow(bEnable);
m_cbTab.EnableWindow(bEnable);
m_btnSave.EnableWindow(bEnable);
}
void CMunpaInfo::OnSelchangeMunpaCbtab()
{
// TODO: Add your control notification handler code here
char buff[256] = {0,};
ITEM_INFO* pInfo;
int nCurSel = m_cbTab.GetCurSel();
int tab = nCurSel*TABCELL_MUNPAWAREHOUSE_NUM;
// Item Setting
for(int i=0;i<TABCELL_MUNPAWAREHOUSE_NUM;++i)
{
if( m_pDocument->m_pWareHouse->WareHouse[tab+i].wIconIdx != 0)
{
pInfo = GAMERESRCMNGR->GetItemInfo(m_pDocument->m_pWareHouse->WareHouse[tab+i].wIconIdx);
if( pInfo )
sprintf(buff, pInfo->ItemName);
else
sprintf(buff, "%d", m_pDocument->m_pWareHouse->WareHouse[tab+i].wIconIdx);
}
else
sprintf(buff, "");
m_MunpaItem[i].SetWindowText(buff);
m_MunpaItem[i].SetData(m_pDocument->m_pWareHouse->WareHouse[tab+i].wIconIdx);
}
}
TABLE_KIND CMunpaInfo::GetTableKindByControlID(UINT nId)
{
TABLE_KIND kind = eTK_None;
if( nId >= IDC_MUNPA_NAME && nId < IDC_MUNPA_LEVEL+1 )
kind = eTK_MunpaInfo;
return kind;
}
void CMunpaInfo::ButtonControlCommand(UINT nId)
{
CMRButton* pBtn = (CMRButton*)GetDlgItem( nId );
if( !pBtn )
return;
WORD wPos;
int tab, result;
if( nId >= IDC_BTN_MUNPA1 && nId < IDC_BTN_MUNPA45+1 )
{ // 巩颇 芒绊
tab = m_cbTab.GetCurSel()*TABCELL_MUNPAWAREHOUSE_NUM;
wPos = tab + nId - IDC_BTN_MUNPA1;
ITEMBASE* origin = &m_pDocument->m_sWareHouse_org.WareHouse[wPos];
ITEMBASE* base_before = &m_pDocument->m_pWareHouse->WareHouse[wPos];
ITEMBASE base_after;
ITEM_OPTION_INFO* pOptionInfoOrigin = NULL;
ITEM_OPTION_INFO* pOptionInfo = NULL;
ITEM_OPTION_INFO Option_after;
if( GAMERESRCMNGR->IsOptionItem(origin->wIconIdx, origin->Durability) )
pOptionInfoOrigin = m_pDocument->GetItemOptionInfoOrigin(origin->Durability);
if( GAMERESRCMNGR->IsOptionItem(base_before->wIconIdx, base_before->Durability) )
pOptionInfo = m_pDocument->GetItemOptionInfo(base_before->Durability);
result = ItemEdit( eIF_MUNPA, wPos, base_before, base_after, pOptionInfo, Option_after );
if( result == eMR_Cancel || result == eMR_Abort ) return;
if( result == eMR_Delete )
{
if( MessageBox("沥富肺 昏力窍矫摆嚼聪鳖?",NULL, MB_YESNO) == IDNO )
return;
}
base_after.Position = TP_MUNPAWAREHOUSE_START + wPos;
ResultItemEdit( eIF_MUNPA, result, TP_MUNPAWAREHOUSE_START + wPos, nId, origin, pOptionInfoOrigin, base_before, &base_after, pOptionInfo, &Option_after );
}
else
{ // 贸府 救窃.
}
}
void CMunpaInfo::EditControlCommand(UINT nId)
{
WORD wPos;
CChangeData* pData = NULL;
CString str1, str2;
DWORD before_data, after_data;
if( nId >= IDC_MUNPA_NAME && nId < IDC_MUNPA_LEVEL+1 )
{
wPos = (WORD)(nId - IDC_MUNPA_NAME); // Tool 单捞磐狼 硅凯牢郸胶
BYTE type = 0;
/////////////////////////////////////////////////////
// error check (捞傈 单捞磐肺 傈券)
TABLE_KIND kind = GetTableKindByControlID(nId);
if( m_StatusEdit[wPos].GetWindowTextLength() == 0 || kind == eTK_None )
{
if( m_StatusEdit[wPos].IsTextTypeData() )
m_StatusEdit[wPos].GetStringData(str1.GetBuffer(0));
else
{
before_data = m_StatusEdit[wPos].GetData();
str1.Format("%d", before_data);
}
m_StatusEdit[wPos].SetWindowText(str1);
m_StatusEdit[wPos].SetChanged(FALSE);
return;
}
// 函版等 单捞磐啊 乐绰瘤 眉农茄促.
if( !m_StatusEdit[wPos].IsChanged() )
return;
else
m_StatusEdit[wPos].SetChanged(FALSE);
/////////////////////////////////////////////////////
// str1:函版Data, str2:捞傈Data
m_StatusEdit[wPos].GetWindowText(str2);
if( m_StatusEdit[wPos].IsTextTypeData() )
{
m_StatusEdit[wPos].GetStringData(str1.GetBuffer(0));
if( strcmp(str1, str2) == 0 ) // 函版等 单捞鸥啊 鞍篮版快
{
CMREdit* pEdit = (CMREdit*)GetDlgItem(nId);
pEdit->ResetEditTextColor();
pEdit->SetInSave(FALSE);
m_pDocument->GetChangeManager()->Delete(nId);
return;
}
}
else
{
before_data = m_StatusEdit[wPos].GetData();
m_StatusEdit[wPos].CheckMaxValue(str2.GetBuffer(0));
m_StatusEdit[wPos].GetWindowText(str2);
after_data = (DWORD)atoi(str2.GetBuffer(0));
if( before_data == after_data )
{
CMREdit* pEdit = (CMREdit*)GetDlgItem(nId);
pEdit->ResetEditTextColor();
pEdit->SetInSave(FALSE);
m_pDocument->GetChangeManager()->Delete(nId);
return;
}
str1.Format("%d", before_data);
type = 1;
}
pData = (CChangeData*)m_pDocument->GetChangeManager()->ExistChangeInfo(nId);
if( !pData )
{
pData = new CChangeData;
pData->Init(eOp_Update, kind, wPos);
pData->SetData(str1.GetBuffer(0), str2.GetBuffer(0), type);
}
else
{
pData->Init(eOp_Update, kind, wPos);
pData->SetData(str1.GetBuffer(0), str2.GetBuffer(0), type);
return;
}
}
else
return;
// Control狼 Index甫 Key蔼栏肺 茄促.
m_pDocument->GetChangeManager()->Add(pData, nId);
CMREdit* pEdit = (CMREdit*)GetDlgItem(nId);
pEdit->SetEditTextColor(COLOR_EDIT_CHANGED);
pEdit->SetInSave();
}
HBRUSH CMunpaInfo::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr;
switch (nCtlColor)
{
case CTLCOLOR_EDIT:
{
UINT nId = pWnd->GetDlgCtrlID();
if( nId >= IDC_MUNPA_NAME && nId < IDC_MUNPA_LEVEL+1 )
{
if( ((CMREdit*)pWnd)->HasSaveData() )
pDC->SetTextColor( ((CMREdit*)pWnd)->GetEditTextColor() );
}
else
hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
}
break;
default:
hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
break;
}
return hbr;
}
void CMunpaInfo::OnMunpaSave()
{
// TODO: Add your control notification handler code here
m_pDocument->ProcessChangeManager();
}
int CMunpaInfo::ItemEdit( INFOFIELD field, WORD wControlId, const ITEMBASE* base_before, ITEMBASE& base_after,
const ITEM_OPTION_INFO* before, ITEM_OPTION_INFO& after )
{
int result = 0;
m_pItemDlg = new CItemDlg;
m_pItemDlg->Init( field, base_before, before, wControlId );
result = m_pItemDlg->DoModal();
memcpy(&base_after, m_pItemDlg->GetItemBase(), sizeof(ITEMBASE) );
memcpy(&after, m_pItemDlg->GetItemOption(), sizeof(ITEM_OPTION_INFO) );
SAFE_DELETE(m_pItemDlg);
return result;
}
BOOL CMunpaInfo::ResultItemEdit( INFOFIELD field, int result, WORD wPos, int nControlIdx, ITEMBASE* Origin, ITEM_OPTION_INFO* OriginOption,
ITEMBASE* pBItem, ITEMBASE* pAItem, ITEM_OPTION_INFO* pBOption, ITEM_OPTION_INFO* pAOption )
{
// 角力 酒捞袍狼 器瘤记阑 罐绰促. wPos
CChangeManager* pManager = m_pDocument->GetChangeManager();
// 绢恫 DB Table俊 持阑巴牢瘤甫 舅酒 柯促.
TABLE_KIND kind = pManager->GetTableKind_ByField(field);
if( kind == eTK_None )
return FALSE;
BOOL bAdd = FALSE;
CChangeItem* pItem = (CChangeItem*)pManager->ExistChangeInfo(wPos, FALSE);
if( !pItem ) // 扁粮 荐沥 沥焊啊 乐绰瘤 八荤茄促. (乐绢档 公矫!)
{
pItem = new CChangeItem;
bAdd = TRUE;
}
if( result == eMR_Delete )// Delete牢 版快
{
/////////////////// Local Info狼 荐沥
if( GAMERESRCMNGR->IsOptionItem(pBItem->wIconIdx, pBItem->Durability) )
m_pDocument->DelLocalOptionInfo(pBItem->Durability);
memset(pBItem, 0, sizeof(ITEMBASE));
memset(pAItem, 0, sizeof(ITEMBASE));
///////////////////
/////////////////// DB Info狼 荐沥
pItem->Init( eOp_Delete, kind, wPos );
pItem->SetData(Origin, pAItem, OriginOption, pAOption);
///////////////////
}
else if( result == eMR_Edit )
{
/////////////////// Local Info狼 荐沥
if( GAMERESRCMNGR->IsOptionItem(pBItem->wIconIdx, pBItem->Durability) )
m_pDocument->DelLocalOptionInfo(pBItem->Durability);
if( pAItem->Durability == 9999 ) // 可记 悸泼
{
if( OriginOption && OriginOption->dwOptionIdx != 0 )
{
pAOption->dwOptionIdx = OriginOption->dwOptionIdx;
m_pDocument->AddLocalOptionInfo(pAOption, FALSE);
}
else
{
WORD wOptionIdx = m_pDocument->AddLocalOptionInfo(pAOption, TRUE);
pAOption->dwOptionIdx = wOptionIdx;
}
pAItem->Durability = (WORD)pAOption->dwOptionIdx;
}
memcpy(pBItem, pAItem, sizeof(ITEMBASE)); // 扁夯 酒捞袍 函版
///////////////////
/////////////////// DB Info狼 荐沥
if( Origin->dwDBIdx == 0 ) // Insert牢 版快
{
pItem->Init( eOp_Insert, kind, wPos );
pItem->SetData(Origin, pAItem, OriginOption, pAOption);
}
else // Update牢 版快
{
pItem->Init( eOp_Update, kind, wPos );
pItem->SetData(Origin, pAItem, OriginOption, pAOption);
}
///////////////////
}
else
{
ASSERT(0);
return FALSE;
}
if( bAdd )
pManager->Add( pItem, wPos, FALSE );
////////////////////////////////////////////////////////////
// Button Text Setting
char buff[256] = {0,};
ITEM_INFO* pInfo;
if( pAItem->wIconIdx != 0)
{
pInfo = GAMERESRCMNGR->GetItemInfo(pAItem->wIconIdx);
if( pInfo )
sprintf(buff, pInfo->ItemName);
else
sprintf(buff, "%d", pAItem->wIconIdx);
}
else
sprintf(buff, "");
CMRButton* btn = (CMRButton*)GetDlgItem(nControlIdx);
btn->SetWindowText(buff);
btn->SetData(pAItem->wIconIdx);
btn->SetColorText(COLOR_BUTTON_CHANGED);
////////////////////////////////////////////////////////////
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -