#ifdef __WEAPON_MERGE
/* Weapon Merge Main Window
* Window Id: APP_WEAPONMERGE
* Controls: WIDC_STATIC4 = Weapon Output Render Target
* WIDC_STATIC5 = Weapon Output Stats Target
* WIDC_PICTURE1 = Weapon Input Picture Destination
* WIDC_PICTURE2 = Weapon Input Picture Source
* WIDC_PICTURE3 = Protection Scroll Input Picture OPTIONAL
* //Buttons Start
* WIDC_BUTTON1 = Start Merge Process
* WIDC_BUTTON2 = Destroy
* Class: CWndWeaponMerge
* Implementation by WurstbrotQT
*/
CWndWeaponMerge::CWndWeaponMerge()
{
for (int i = 0; i < 3; ++i){ pItemElem[i] = NULL; }
m_pDestModel = NULL;
pButtonStart = NULL;
m_nStatus = 0;
m_nDelay = 25;
m_fRotate = 0.0f;
m_fAddRot = 2.0f;
m_nEyeYPos = 0.0f;
m_nCount = 0;
}
void CWndWeaponMerge::OnDestroy()
{
Clear(true);
}
BOOL CWndWeaponMerge::Initialize(CWndBase *pWndParent, DWORD dwWndId)
{
return CWndNeuz::InitDialog(g_Neuz.GetSafeHwnd(), APP_WEAPONMERGE, 0, CPoint(0,0), pWndParent);
}
void CWndWeaponMerge::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
wndCtrl[0] = GetWndCtrl(WIDC_PICTURE1);
wndCtrl[1] = GetWndCtrl(WIDC_PICTURE2);
wndCtrl[2] = GetWndCtrl(WIDC_PICTURE3);
m_CtrlRenderWeapon = GetWndCtrl(WIDC_STATIC4);
m_CtrlOutputStats = GetWndCtrl(WIDC_STATIC5);
pButtonStart = (CWndButton*)GetDlgItem(WIDC_BUTTON1);
pButtonStart->EnableWindow(TRUE);
//m_editSwordOption.Init(m_pFont,&m_CtrlOutputStats->rect);
MoveParentCenter();
}
int CWndWeaponMerge::RegisterWeapon(CItemElem *pItem, CItemElem *pOther)
{
ItemProp* pItemProp = pItem->GetProp();
if (g_pPlayer->m_vtInfo.IsTrading(pItem)){ return -2; }
if (pItem->IsFlag(pItem->merged)){ return TID_MMI_TWOHANDEDWEAPONMERGE_ERRORTEXT01; }
if (pItem->IsExpiring()){ return TID_MMI_TWOHANDEDWEAPONMERGE_ERRORTEXT02; }
if (!pItemProp || pItemProp->dwHanded != HD_TWO){ return TID_MMI_TWOHANDEDWEAPONMERGE_ERRORTEXT03; }
if (pItemProp->IsBaruna()){ return TID_MMI_TWOHANDEDWEAPONMERGE_ERRORTEXT04; }
if( pOther )
{
ItemProp *pPropOther = pOther->GetProp();
if (pPropOther){
if (pPropOther->dwItemKind3 != pItemProp->dwItemKind3){ return TID_MMI_TWOHANDEDWEAPONMERGE_ERRORTEXT05; }
}
}
if (pItem->IsBinds()){ return TID_MMI_TWOHANDEDWEAPONMERGE_ERRORTEXT06; }
if (g_xRandomOptionProperty->IsCheckedSafeFlag(pItem->GetRandomOptItemId())){ return TID_MMI_TWOHANDEDWEAPONMERGE_ERRORTEXT13; }
return -1;
}
void CWndWeaponMerge::OnRButtonUp(UINT nFlags, CPoint point)
{
for (int i = 0; i < 3; ++i)
{
if (wndCtrl[i]->rect.PtInRect(point) && pItemElem[i])
{
pItemElem[i]->SetExtra(0);
pItemElem[i] = NULL;
}
}
CWndNeuz::OnRButtonUp(nFlags, point);
}
bool CWndWeaponMerge::CompareItemLevel(ItemProp *pPropSource, ItemProp *pPropDest)
{
return true;
}
BOOL CWndWeaponMerge::OnDropIcon(LPSHORTCUT pShortcut, CPoint point)
{
CItemElem *pItem = NULL;
pItem = (CItemElem*)g_pPlayer->GetItemId(pShortcut->m_dwId);
if (!pItem){ return false; }
if (g_pPlayer->m_vtInfo.IsTrading(pItem)){ return false; }
for (int i = 0; i < 3; ++i)
{
if (wndCtrl[i]->rect.PtInRect(point))
{
CItemElem* pOther = (i == 0 ? (pItemElem[1] ? pItemElem[1] : NULL) : (pItemElem[0] ? pItemElem[0] : NULL));
ItemProp *pItemProp = pItem->GetProp();
int nMsg = 0;
if (pItemProp && pItemProp->dwID == II_SYS_SYS_BX_MAGICGRINDSTONE){ nMsg = -1; }
else{ nMsg = RegisterWeapon(pItem, pOther); }
if (nMsg != -1){ g_WndMng.PutString(prj.GetText(nMsg), NULL, prj.GetTextColor(nMsg)); }
if (pItemElem[i] != NULL){ pItemElem[i]->SetExtra(0); SAFE_DELETE(pItemElem[i]); }
pItemElem[i] = pItem;
pItem->SetExtra(1);
return true;
/*if (i == 0)
{
if (m_pDestModel){ m_pDestModel->DeleteDeviceObjects(); SAFE_DELETE(m_pDestModel); }
m_pDestModel = (CModelObject*)prj.m_modelMng.LoadModel(g_Neuz.m_pd3dDevice, OT_ITEM, pItemElem[0]->m_dwItemId);
m_pDestModel->InitDeviceObjects(g_Neuz.GetDevice());
}*/
//WeaponMergeText(pItemElem[i], &m_editSwordOption, i);
}
}
return CWndNeuz::OnDropIcon(pShortcut, point);
}
void CWndWeaponMerge::WeaponMergeText(CItemElem* pItemElem, CEditString* pEdit, int i)
{
}
void CWndWeaponMerge::OnMouseWndSurface(CPoint point)
{
for (int i = 0; i < 3; ++i){
if (wndCtrl[i]->rect.PtInRect(point) && pItemElem[i]){ PUT_TOOL_TIP(wndCtrl[i]->rect, point, pItemElem[i]);}
}
CWndNeuz::OnMouseWndSurface(point);
}
BOOL CWndWeaponMerge::Process()
{
if (m_nStatus == 1)
{
if (m_nCount > m_nDelay)
{
m_fAddRot += 4.0f;
if (m_nDelay < 10){ m_nEyeYPos -= 0.05f; }
m_nDelay -= 1;
if (m_nDelay < 0)
{
m_nStatus = 0;
m_nDelay = 25;
m_fRotate = 0.0f;
m_fAddRot = 2.0f;
m_nEyeYPos = 0.0f;
if (pItemElem[0] && pItemElem[1])
{
if (pItemElem[2]){ g_DPlay.SendWeaponMerge(pItemElem[0]->m_dwObjId, pItemElem[1]->m_dwObjId, pItemElem[2]->m_dwObjId); }
else{ g_DPlay.SendWeaponMerge(pItemElem[0]->m_dwObjId, pItemElem[1]->m_dwObjId, NULL_ID); }
}
for (int i = 0; i < 3; ++i)
{
if (pItemElem[i]){ pItemElem[i]->SetExtra(0); pItemElem[i] = NULL; }
}
}
m_nCount = 0;
}
m_nCount++;
}
return true;
}
void CWndWeaponMerge::OnDraw(C2DRender *p2DRender)
{
if (pItemElem[0] && pItemElem[1] && m_pDestModel)
{
LPDIRECT3DDEVICE9 pd3dDevice = p2DRender->m_pd3dDevice;
pd3dDevice->SetRenderState(D3DRS_ZWRITEENABLE, TRUE);
pd3dDevice->SetRenderState(D3DRS_ZENABLE, TRUE);
pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
pd3dDevice->SetRenderState(D3DRS_AMBIENT, D3DCOLOR_ARGB(255, 255, 255, 255));
pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
pd3dDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
D3DVIEWPORT9 viewport;
D3DXCOLOR color;
D3DXMATRIXA16 matWorld; D3DXMATRIXA16 matScale; D3DXMATRIXA16 matRot; D3DXMATRIXA16 matTrans;
D3DXMatrixIdentity(&matScale); D3DXMatrixIdentity(&matTrans); D3DXMatrixIdentity(&matWorld);
D3DXVECTOR3 vEyePt(0.0f, 0.0f, 0.0f);
D3DXVECTOR3 vLookatPt(0.0f, 0.0f, 0.0f);
D3DXVECTOR3 vUpVec(0.0f, 1.0f, 0.0f);
ItemProp* iProp[2];
iProp[0] = pItemElem[0]->GetProp();
iProp[1] = pItemElem[1]->GetProp();
if (iProp[0]->dwItemKind3 == IK3_AXE || iProp[0]->dwItemKind3 == IK3_SWD)
{
if (iProp[0]->dwHanded == HD_ONE)
{
vEyePt.x = 0.0f;
vEyePt.y = 3.0f;
vEyePt.z = 0.0f;
vLookatPt.x = 0.6f;
vLookatPt.y = -0.2f;
vLookatPt.z = 0.0f;
}
else if (iProp[0]->dwHanded == HD_TWO)
{
vEyePt.x = 1.0f;
vEyePt.y = 5.0f;
vEyePt.z = 0.0f;
vLookatPt.x = 1.2f;
vLookatPt.y = -0.2f;
vLookatPt.z = 0.0f;
}
}
else if (iProp[0]->dwItemKind3 == IK3_YOYO || iProp[0]->dwItemKind3 == IK3_KNUCKLEHAMMER || iProp[0]->dwItemKind3 == IK3_CROSSBOW || iProp[0]->dwItemKind3 == IK3_BOW)
{
vEyePt.x = 0.0f;
vEyePt.y = 3.0f;
vEyePt.z = 0.0f;
vLookatPt.x = 0.01f;
vLookatPt.y = -0.2f;
vLookatPt.z = 0.0f;
}
else if (iProp[0]->dwItemKind3 == IK3_WAND)
{
vEyePt.x = 0.0f;
vEyePt.y = 3.0f;
vEyePt.z = 0.0f;
vLookatPt.x = 0.4f;
vLookatPt.y = -0.2f;
vLookatPt.z = 0.0f;
}
else if (iProp[0]->dwItemKind3 == IK3_CHEERSTICK || iProp[0]->dwItemKind3 == IK3_STAFF)
{
vEyePt.x = 0.0f;
vEyePt.y = 4.0f;
vEyePt.z = 0.0f;
vLookatPt.x = 0.01f;
vLookatPt.y = -0.2f;
vLookatPt.z = 0.0f;
}
if (m_nStatus == 1){ vEyePt.y += m_nEyeYPos; }
D3DXMATRIXA16 matView;
D3DXMatrixLookAtLH(&matView, &vEyePt, &vLookatPt, &vUpVec);
pd3dDevice->SetTransform(D3DTS_VIEW, &matView);
D3DXMATRIXA16 matProj;
D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI / 4, 1.0f, 1.0f, 100.0f);
pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
m_fRotate += m_fAddRot;
D3DXMatrixRotationX(&matRot, D3DXToRadian(m_fRotate));
D3DXMatrixScaling(&matScale, 1.1f, 1.1f, 1.1f);
viewport.X = p2DRender->m_ptOrigin.x + m_CtrlRenderWeapon->rect.left;
viewport.Y = p2DRender->m_ptOrigin.y + m_CtrlRenderWeapon->rect.top;
viewport.Width = m_CtrlRenderWeapon->rect.Width();
viewport.Height = m_CtrlRenderWeapon->rect.Height();
viewport.MinZ = 0.0f;
viewport.MaxZ = 1.0f;
pd3dDevice->SetViewport(&viewport);
pd3dDevice->Clear(0, NULL, D3DCLEAR_ZBUFFER, 0xffa08080, 1.0f, 0);
D3DXMatrixMultiply(&matWorld, &matWorld, &matScale);
D3DXMatrixMultiply(&matWorld, &matWorld, &matRot);
D3DXMatrixMultiply(&matWorld, &matWorld, &matTrans);
pd3dDevice->SetTransform(D3DTS_WORLD, &matWorld);
pd3dDevice->SetRenderState(D3DRS_FOGENABLE, FALSE);
pd3dDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
::SetLight(FALSE); ::SetFog(FALSE);
SetDiffuse(1.0f, 1.0f, 1.0f);
SetAmbient(1.0f, 1.0f, 1.0f);
D3DXVECTOR4 vConst(1.0f, 1.0f, 1.0f, 1.0f);
pd3dDevice->SetVertexShaderConstantF(95, (float*)&vConst, 1);
::SetTransformView(matView);
::SetTransformProj(matProj);
m_pDestModel->Render(p2DRender->m_pd3dDevice, &matWorld);
viewport.X = p2DRender->m_ptOrigin.x;
viewport.Y = p2DRender->m_ptOrigin.y;
viewport.Width = p2DRender->m_clipRect.Width();
viewport.Height = p2DRender->m_clipRect.Height();
viewport.MinZ = 0.0f;
viewport.MaxZ = 1.0f;
pd3dDevice->SetViewport(&viewport);
pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
}
for (int i = 0; i < 3; ++i)
{
if (pItemElem[i])
{
CTexture *pTex = pItemElem[i]->GetTexture();
if (pTex){ pTex->Render(p2DRender, wndCtrl[i]->rect.TopLeft()); }
}
}
if (pItemElem[0] && pItemElem[1]){ p2DRender->TextOut_EditString(m_CtrlOutputStats->rect.left + 3, m_CtrlOutputStats->rect.top + 3, m_editSwordOption, 0, 0, 2); }
CWndNeuz::OnDraw(p2DRender);
}
BOOL CWndWeaponMerge::OnCommand(UINT nID, DWORD dwMessage, CWndBase *pWndBase)
{
if (pWndBase && pWndBase->GetWndId() == APP_MESSAGEBOX)
{
if (nID == IDYES)
{
m_nStatus = 1;
}
}
return true;
}
BOOL CWndWeaponMerge::OnChildNotify(UINT message, UINT nID, LRESULT *pLResult)
{
switch (nID)
{
case WIDC_BUTTON1:
if (pItemElem[0] && pItemElem[1])
{
if (pItemElem[2])
{
m_nStatus = 1;
}
else
{
CWndConfirm *pConfirm = (CWndConfirm*)g_WndMng.GetWndBase(APP_MESSAGEBOX);
if (pConfirm){ SAFE_DELETE(pConfirm); }
pConfirm = new CWndConfirm();
pConfirm->SetText(TID_MMI_TWOHANDEDWEAPONMERGE_CONFIRM02);
pConfirm->Initialize(this);
}
}
break;
case WIDC_BUTTON2: Destroy(); break;
}
return CWndNeuz::OnChildNotify(message, nID, pLResult);
}
void CWndWeaponMerge::Clear(bool bProt)
{
for (int i = 0; i < 3; ++i)
{
if (pItemElem[i]){ pItemElem[i]->SetExtra(0); pItemElem[i] = NULL; }
}
}
/* Weapon Merge Cancel Window
* Window Id: APP_WEAPONMERGE_CANCEL
* Controls: WIDC_PICTURE1 = Weapon Output Picture
* WIDC_ST_PENYA02 = Cost Static Control
* WIDC_PC_DELAY = Gauge Time Left
* //Buttons Start
* WIDC_START = Finally Start the Process
* WIDC_CANCEL = Destroy
* Class: CWndWeaponMergeCancel
* Implementation by WurstbrotQT
*/
#define MS_DELAY_MERGE 3000
CWndWeaponMergeCancel::CWndWeaponMergeCancel()
{
m_pItemElem = NULL;
m_pStCost = NULL;
m_pVBProcess = NULL;
m_bRenderGauge = FALSE;
m_clkEnd = 0;
m_nStatus = 0;
m_nCost = 0;
}
CWndWeaponMergeCancel::~CWndWeaponMergeCancel()
{
Clear(true);
if( m_pItemElem )
m_pItemElem->SetExtra(0);
m_pItemElem = NULL;
DeleteDeviceObjects();
}
void CWndWeaponMergeCancel::OnDestroy()
{
//Clear(true);
if( m_pItemElem )
m_pItemElem->SetExtra(0);
m_pItemElem = NULL;
if( m_pItemElem )
SAFE_DELETE( m_pItemElem );
//DeleteDeviceObjects();
}
HRESULT CWndWeaponMergeCancel::RestoreDeviceObjects()
{
CWndBase::RestoreDeviceObjects();
if( !m_pVBProcess )
m_pApp->m_pd3dDevice->CreateVertexBuffer( sizeof( TEXTUREVERTEX2 ) * 3 * 6, D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC, D3DFVF_TEXTUREVERTEX2, D3DPOOL_DEFAULT, &m_pVBProcess, NULL );
m_TexGaugeProcess.SetInvalidate(m_pApp->m_pd3dDevice);
return S_OK;
}
HRESULT CWndWeaponMergeCancel::InvalidateDeviceObjects()
{
CWndBase::InvalidateDeviceObjects();
SAFE_RELEASE( m_pVBProcess );
m_TexGaugeProcess.Invalidate();
return S_OK;
}
HRESULT CWndWeaponMergeCancel::DeleteDeviceObjects()
{
CWndBase::DeleteDeviceObjects();
return InvalidateDeviceObjects();
}
BOOL CWndWeaponMergeCancel::Initialize( CWndBase *pWndParent, DWORD dwWndId )
{
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_WEAPONMERGE_CANCEL, 0, CPoint(0,0), pWndParent );
}
void CWndWeaponMergeCancel::OnInitialUpdate()
{
CWndNeuz::OnInitialUpdate();
RestoreDeviceObjects();
m_pStCost = (CWndStatic*)GetDlgItem(WIDC_ST_PENYA02);
m_pStart = (CWndButton*)GetDlgItem(WIDC_START);
m_CtrlWeapon = GetWndCtrl(WIDC_PICTURE1);
m_CtrlGauge = GetWndCtrl(WIDC_PC_DELAY);
m_TexGaugeProcess.LoadTexture( g_Neuz.GetDevice(), MakePath(DIR_THEME,"BarSky.tga"), 0xffff00ff, TRUE );
m_pStCost->SetTitle("0");
m_pStart->EnableWindow(FALSE);
CWndInventory* pWndInventory = (CWndInventory*)g_WndMng.CreateApplet(APP_INVENTORY);
assert(pWndInventory != NULL);
#ifdef __TABBED_INV
for( int i = 0; i < 4; ++i )
pWndInventory->m_wndInvCtrl[i].SetDieFlag(TRUE);
#else
pWndInventory->m_wndItemCtrl.SetDieFlag(TRUE);
#endif
MoveParentCenter();
}
BOOL CWndWeaponMergeCancel::Process()
{
if( m_nStatus == 1 )
{
if( clock() >= m_clkEnd )
{
m_nStatus = 0;
if( m_pItemElem )
{
g_DPlay.SendWeaponMergeCancel(m_pItemElem->m_dwObjId);
m_pItemElem->SetExtra(0);
m_pItemElem = NULL;
}
}
}
return TRUE;
}
void CWndWeaponMergeCancel::OnDraw( C2DRender *p2DRender )
{
if( m_pItemElem )
{
CTexture *pTex = m_pItemElem->GetTexture();
if( pTex )
pTex->Render(p2DRender, m_CtrlWeapon->rect.TopLeft());
}
if( m_nStatus != 0 )
{
float fPercent = 1.0f;
if( m_nStatus == 1 )
{
float fTimeDiff = (float)(m_clkEnd - clock());
fPercent = 1.0f - fTimeDiff / MS_DELAY_MERGE;
}
CRect rect, rectTemp;
int nWidth = (int)(m_CtrlGauge->rect.Width() * fPercent);
rect = m_CtrlGauge->rect;
rectTemp = rect;
rectTemp.right = rectTemp.left + nWidth;
ClientToScreen( rectTemp );
m_bRenderGauge = m_pTheme->MakeGaugeVertex( m_pApp->m_pd3dDevice, &rectTemp, 0xffffffff, m_pVBProcess, &m_TexGaugeProcess );
if( m_bRenderGauge )
m_pTheme->RenderGauge( p2DRender->m_pd3dDevice, m_pVBProcess, &m_TexGaugeProcess );
}
}
void CWndWeaponMergeCancel::OnMouseWndSurface(CPoint point)
{
if( m_pItemElem && m_CtrlWeapon->rect.PtInRect(point) )
{
PUT_TOOL_TIP(m_CtrlWeapon->rect,point,m_pItemElem);
}
CWndNeuz::OnMouseWndSurface(point);
}
void CWndWeaponMergeCancel::CalcCancelCosts()
{
m_nCost = 0;
if (m_pItemElem->GetMergedPeirceSize() > 0)
m_nCost += 100000 + 100000 * m_pItemElem->GetMergedPeirceSize();
if( m_pItemElem->GetMergedDsts() > 0 )
m_nCost += 100000;
if( m_pItemElem->GetMergedWeaponATK() > 0 )
m_nCost += 100000;
CString str;
str.Format("%d",m_nCost);
m_pStCost->SetTitle(str);
}
BOOL CWndWeaponMergeCancel::OnDropIcon(LPSHORTCUT pShortcut, CPoint point)
{
if( m_CtrlWeapon->rect.PtInRect(point) )
{
CItemElem *pItem = (CItemElem*)g_pPlayer->GetItemId(pShortcut->m_dwId);
if( SetItem(pItem) )
return TRUE;
}
return CWndNeuz::OnDropIcon(pShortcut, point);
}
BOOL CWndWeaponMergeCancel::OnChildNotify( UINT message, UINT nID, LRESULT *pLResult )
{
switch( nID )
{
case WIDC_START:
{
if( m_pItemElem )
{
if( m_nStatus == 0 )
{
if( m_nCost > g_pPlayer->GetGold() )
{
CString strAdd;
strAdd.Format(prj.GetText(TID_MMI_TWOHANDEDWEAPONMERGE_ERRORTEXT12), m_nCost);
return FALSE;
}
CWndConfirm *pConfirm = (CWndConfirm*)g_WndMng.GetWndBase(APP_MESSAGEBOX);
if( pConfirm )
SAFE_DELETE(pConfirm);
pConfirm = new CWndConfirm();
pConfirm->SetText(TID_MMI_TWOHANDEDWEAPONMERGE_CANCEL_CONFIRM);
pConfirm->Initialize(this);
}
}
break;
}
case WIDC_CANCEL:
{
Destroy();
break;
}
}
return CWndNeuz::OnChildNotify(message,nID,pLResult);
}
BOOL CWndWeaponMergeCancel::OnCommand( UINT nID, DWORD dwMessage, CWndBase *pWndBase )
{
if( pWndBase && pWndBase->GetWndId() == APP_MESSAGEBOX )
{
if( nID == IDYES )
{
m_pStart->EnableWindow(FALSE);
m_clkEnd = clock() + MS_DELAY_MERGE;
m_nStatus = 1;
}
}
return CWndNeuz::OnCommand( nID, dwMessage, pWndBase );
}
BOOL CWndWeaponMergeCancel::SetItem(CItemElem *pItem)
{
if( pItem && pItem->isMerged() && !g_pPlayer->m_vtInfo.IsTrading(pItem) )
{
if( m_pItemElem )
m_pItemElem->SetExtra(0);
m_pItemElem = pItem;
m_pItemElem->SetExtra(1);
m_pStart->EnableWindow();
CalcCancelCosts();
return TRUE;
}
return FALSE;
}
void CWndWeaponMergeCancel::Clear(bool bProt /* = false */)
{
if( m_pItemDest )
m_pItemDest->SetExtra(0);
if( m_pItemSource )
m_pItemSource->SetExtra(0);
m_pItemDest = m_pItemSource = NULL;
if( bProt )
{
if( m_pItemProt )
m_pItemProt->SetExtra(0);
m_pItemProt = NULL;
}
}
#endif