📄 mugongdialog_backup.cpp
字号:
if(m_pMugongDlg1_1->AddIcon(pos, (cIcon *)mugong))
return ;
else
return ;
}
break;
default:
return ;
}
}
MLOC CMugongDialog::ConvAbs2Rel(POSTYPE abs_pos/*abs pos*/)
{
if(MUGONG_STARTPOSITION <= abs_pos && abs_pos < MUGONG_ENDPOSITION)
{
return WINDOW_STD;
}
else if(MUGONG1_2_STARTPOSITION <= abs_pos && abs_pos < MUGONG1_2_ENDPOSITION)
{
return WINDOW_EXTEND;
}
else if(MUGONG1_1_STARTPOSITION <= abs_pos && abs_pos < MUGONG1_1_ENDPOSITION)
{
return WINDOW_DOWN;
}
return WINDOW_ERR;
}
BOOL CMugongDialog::DeleteMugong(POSTYPE pos/*abs pos*/, CMugongBase ** mugong)
{
switch(ConvAbs2Rel(pos))
{
case WINDOW_STD:
{
pos -= MUGONG_STARTPOSITION;
if(DeleteIcon(pos, (cIcon **)mugong))
{
if(pos == MUGONG_POSITION)
{
MUGONGBASE * mugongBase = (*mugong)->GetMugongBase();
pWearedMugongInfo[0][MGI_NAME]->SetStaticText("");
pWearedMugongInfo[0][MGI_ATTR]->SetStaticText("");
pWearedMugongInfo[0][MGI_TYPE]->SetStaticText("");
pWearedMugongInfo[0][MGI_KIND]->SetStaticText("");
pWearedMugongInfo[0][MGI_SUNG]->SetStaticText("");
pWearedMugongInfo[0][MGI_EXPPOINT]->SetStaticText("");
}
(*mugong)->SetWeared(0);
return TRUE;
}
else
return FALSE;
}
break;
case WINDOW_EXTEND:
{
pos -= MUGONG1_2_STARTPOSITION;
if(m_pMugongDlg1_2->DeleteIcon(pos, (cIcon **)mugong))
{
(*mugong)->SetWeared(0);
return TRUE;
}
else
return FALSE;
}
break;
case WINDOW_DOWN:
{
pos -= MUGONG1_1_STARTPOSITION;
if(m_pMugongDlg1_1->DeleteIcon(pos, (cIcon **)mugong))
{
(*mugong)->SetWeared(0);
return TRUE;
}
else
return FALSE;
}
break;
default:
return FALSE;
}
}
BOOL CMugongDialog::FakeMoveIcon(LONG mouseX, LONG mouseY, cIcon * icon)
{
ASSERT(icon);
if(icon->GetType() == WT_ITEM)
FakeAddItem(mouseX, mouseY, (CItem *)icon);
else if(icon->GetType() == WT_MUGONG)
FakeMoveMugong(mouseX, mouseY, (CMugongBase *)icon);
return FALSE;
}
void CMugongDialog::FakeAddItem(LONG mouseX, LONG mouseY, CItem * pItem)
{
// 绢恫 公傍氓捞衬?公傍, 郴傍, 版傍
if(pItem->GetItemKind() != eMUGONG_ITEM) return;
BYTE type = GetItemKindDetail(pItem->GetItemIdx());
switch(type)
{
case eMUGONGBOOK:
case eNAEGONGBOOK:
case eKYUNGGONGBOOK:
break;
default:
return;
}
WORD ToPos=0;
if(!GetPositionForXYRef(mouseX,mouseY, ToPos)) // 例措困摹 逞绢 咳
{
if(!GetBlankPositionRef(type, ToPos))
return;
}
// 函券 啊瓷茄啊?? 炼扒,力茄 眉农, 饭骇, 流诀, 己??
if(!CanBeMoved(pItem, ToPos)) return ;
MSG_MUGONG_ADD msg;
msg.Category = MP_MUGONG;
msg.Protocol = MP_MUGONG_ADD_SYN;
msg.dwObjectID = HEROID;
msg.FromTableIdx = eItemTable_Inventory;
msg.ToTableIdx = eItemTable_Mugong;
msg.FromAbsPosition = pItem->GetPosition();
msg.ToAbsPosition = ToPos;
NETWORK->Send(&msg,sizeof(msg));
SetDisable(TRUE);
}
void CMugongDialog::FakeMoveMugong(LONG mouseX, LONG mouseY, CMugongBase * icon)
{
WORD ToPos=0;
if(!GetPositionForXYRef(mouseX,mouseY, ToPos)) // 例措困摹 逞绢 咳
return;
//if(!IsAddMugong(ToPos)) return;
if(!CanBeMoved(icon, ToPos)) return ;
// 公傍,郴傍,版傍
CMugongBase * pMugong = (CMugongBase *)icon;
//------------------------------------
MSG_MUGONG_MOVEINFO msg;
msg.Category = MP_MUGONG;
msg.Protocol = MP_MUGONG_MOVE_SYN;
msg.dwObjectID = HEROID;
//------------------------------------
msg.dwMugongDBIdx = pMugong->GetDBIdx();
msg.wToPosition = ToPos; //例措 困摹肺 back
msg.wFromPosition = pMugong->GetPosition(); //例措 困摹肺 back
if(msg.wFromPosition == msg.wToPosition)
return ;
NETWORK->Send(&msg,sizeof(msg));
SetDisable(TRUE);
}
void CMugongDialog::MoveMugong(POSTYPE ToPos/*abs pos*/, POSTYPE FromPos/*abs pos*/)
{
CMugongBase * FromMugong = NULL;
CMugongBase * ToMugong = NULL;
DeleteMugong(FromPos, &FromMugong);
DeleteMugong(ToPos, &ToMugong);
if(FromMugong)
{
FromMugong->SetPosition(ToPos);
AddMugong(ToPos, FromMugong);
}
if(ToMugong)
{
ToMugong->SetPosition(FromPos);
AddMugong(FromPos, ToMugong);
}
}
BOOL CMugongDialog::GetPositionForXYRef(LONG x, LONG y, POSTYPE& pos)
{
WORD position=0;
if(cIconDialog::GetPositionForXYRef(x,y,position))
{
// 扁夯(1) 公傍困摹
pos = position+MUGONG_STARTPOSITION; // 例措 困摹肺 官厕
return TRUE;
}
if(m_pMugongDlg1_2->IsActive() && m_pMugongDlg1_2->GetPositionForXYRef(x,y,position))
{
pos = position+MUGONG1_2_STARTPOSITION; // 例措 困摹肺 官厕
return TRUE;
}
if(m_pMugongDlg1_2->IsActive() && m_pMugongDlg1_1->GetPositionForXYRef(x,y,position))
{
pos = position+MUGONG1_1_STARTPOSITION; // 例措 困摹肺 官厕
return TRUE;
}
return FALSE;
}
void CMugongDialog::FakeDeleteMugong(POSTYPE absPos)
{
MSG_MUGONG_REM_SYN msg;
msg.Category = MP_MUGONG;
msg.Protocol = MP_MUGONG_REM_SYN;
msg.dwObjectID = HEROID;
msg.wTableIdx = eItemTable_Mugong;
msg.AbsPosition = absPos;
NETWORK->Send(&msg,sizeof(msg));
SetDisable(TRUE);
}
// 泅犁 荐访吝牢 公傍狼 沥焊甫 掘扁 困秦 : 烙矫
void CMugongDialog::GetMugong(POSTYPE relPos, CMugongBase * mugongOut)
{
*mugongOut = *(CMugongBase * )GetIconForIdx(relPos);
}
CMugongBase * CMugongDialog::GetMugongAbs(POSTYPE abs_Pos)
{
//*mugongOut = *(CMugongBase * )GetIconForIdx(relPos);
switch(ConvAbs2Rel(abs_Pos))
{
case WINDOW_STD:
{
return (CMugongBase *)GetIconForIdx(abs_Pos-MUGONG_STARTPOSITION);
}
break;
case WINDOW_EXTEND:
{
return (CMugongBase *)m_pMugongDlg1_2->GetIconForIdx(abs_Pos-MUGONG1_2_STARTPOSITION);
}
break;
case WINDOW_DOWN:
{
return (CMugongBase *)m_pMugongDlg1_1->GetIconForIdx(abs_Pos-MUGONG1_1_STARTPOSITION);
}
break;
default:
{
ASSERT(0);
}
}
return NULL;
}
void CMugongDialog::SetMugongSung(BYTE mugongType, WORD sung)
{
ASSERT(mugongType < ALL);
WORD relPos = 0;
switch(mugongType)
{
case MUGONG:
relPos = MUGONG_POSITION;
break;
case NAEGONG:
relPos = NAEGONG_POSITION;
break;
case KYUNGGONG:
relPos = KYUNGGONG_POSITION;
break;
default:
{
ASSERT(0);
}
}
CMugongBase * mugongOut = NULL;
mugongOut = (CMugongBase *)GetIconForIdx(relPos);
if(mugongOut->GetDBIdx() > 0)
mugongOut->SetSung(sung);
// 牢磐其捞胶
// 公傍 芒狼 己钎矫
// 公傍 芒狼 版氰摹 max 霸捞瘤 setting
pWearedMugongInfo[mugongType][MGI_SUNG]->SetStaticValue(sung);
}
void CMugongDialog::SetMugongExpPoint(BYTE mugongType, EXPTYPE expPoint)
{
ASSERT(mugongType < ALL);
WORD relPos = 0;
switch(mugongType)
{
case MUGONG:
relPos = MUGONG_POSITION;
break;
case NAEGONG:
relPos = NAEGONG_POSITION;
break;
case KYUNGGONG:
relPos = KYUNGGONG_POSITION;
break;
default:
{
ASSERT(0);
}
}
CMugongBase * mugongOut = NULL;
mugongOut = (CMugongBase *)GetIconForIdx(relPos);
if(mugongOut->GetDBIdx() > 0)
mugongOut->SetExpPoint(expPoint);
//YH2DO
//common_mugong * pInfo = GAMERESRCMNGR->GetMugongInfo(mugongOut->GetMugongIdx());
char buf[20];
wsprintf(buf, "%d/%d", expPoint, 0);//pInfo->experiance_numeric[mugongOut->GetSung()-1]);
// 牢磐其捞胶
// 公傍 芒狼 版氰摹 霸捞瘤 刘啊
pWearedMugongInfo[mugongType][MGI_EXPPOINT]->SetStaticText(buf);
}
BOOL CMugongDialog::CanBeMoved(cIcon * pIcon, POSTYPE abs_pos)
{
ASSERT(pIcon);
if(MUGONG_STARTPOSITION > abs_pos && abs_pos >= MUGONG_ENDPOSITION) return FALSE;
switch(pIcon->GetType())
{
case WT_MUGONG:
{
// 公傍 捞悼 : 蜡瓤茄 困摹牢瘤 眉农
CMugongBase * pMugong = (CMugongBase *)pIcon;
}
break;
case WT_ITEM:
{
// 公傍 殿废
CItem * pItem = (CItem *)pIcon;
return ITEMMGR->CanConvert(pItem->GetItemIdx());
}
break;
default:
{
ASSERT(0);
}
}
return FALSE;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -