📄 streetstall.cpp
字号:
// LBS 眠啊 03.09.18
void CStreetStall::OnActionEvnet(LONG lId, void * p, DWORD we)
{
if( we == WE_LBTNCLICK || we == WE_LBTNDBLCLICK )
{
POSTYPE pos = m_pStallGrid->GetCurSelCellPos();
CExchangeItem * pItem = (CExchangeItem*)m_pStallGrid->GetIconForIdx( pos );
if( !pItem ) // 急琶等 镑俊 酒捞袍捞 绝绰版快
{
m_pMoneyEdit->SetEditText( DEFAULT_MONEY_TEXT );
m_nCurSelectedItem = -1;
m_dwCurSelectedItemDBIdx = 0;
return;
}
else
{
m_nCurSelectedItem = pos;
m_dwCurSelectedItemDBIdx = GetCurSelectedItemDBidx();
m_pMoneyEdit->SetEditText( AddComma( m_MoneyArray[pos] ) );
if( m_DlgState == eSDS_BUY )
{
if( !pItem->IsLocked() && we == WE_LBTNDBLCLICK ) // DoubleClick栏肺 拱扒 备涝
{
if( ITEMMGR->IsDupItem( pItem->GetData() ) )
{
if( pItem->GetDurability() == 1)
STREETSTALLMGR->BuyItem();
else
ShowDivideBox();
}
else
{
STREETSTALLMGR->BuyItem();
}
}
}
m_pStallGrid->SetShowGrid( TRUE );
}
}
else if( we & WE_BTNCLICK && lId == SSI_ENTER )
{
STREETSTALLMGR->EditTitle();
}
else if( we & WE_BTNCLICK && lId == SSI_CLOSEBTN )
{
SetActive( FALSE );
}
}
void CStreetStall::SetActive( BOOL val )
{
if( !m_bDisable )
if( m_bActive != val )
{
if(!val) STREETSTALLMGR->CloseStreetStall();
cDialog::SetActiveRecursive( val );
}
}
void CStreetStall::RegistMoney()
{
m_MoneyArray[m_nCurSelectedItem] = (DWORD)atoi( RemoveComma( m_pMoneyEdit->GetEditText() ));
}
void CStreetStall::RegistMoney( POSTYPE pos, DWORD dwMoney )
{
m_MoneyArray[pos] = dwMoney;
}
void CStreetStall::RegistTitle( char* title, BOOL bSucess )
{
if( bSucess )
{
HERO->ShowStreetStallTitle( TRUE, title );
strcpy( m_OldTitle, title );
}
else
{
// m_pTitleEdit->SetEditText( m_OldTitle );
m_pTitle->SetScriptText( m_OldTitle );
}
}
void CStreetStall::OnMoneyEditClick()
{
// if( m_pMoneyEdit->IsReadOnly() ) return;
// m_pStallGrid->SetCurSelCellPos( m_nCurSelectedItem );
// m_pStallGrid->SetShowGrid( TRUE );
}
void CStreetStall::OnTitleEditClick()
{
// m_pStallGrid->SetShowGrid( FALSE );
// m_pStallGrid->SetCurSelCellPos(-1);
// m_nCurSelectedItem = -1;
// m_dwCurSelectedItemDBIdx = 0;
}
void CStreetStall::ChangeItemStatus( POSTYPE pos, DWORD money, BOOL bLock )
{
CExchangeItem * pItem = (CExchangeItem*)m_pStallGrid->GetIconForIdx( pos );
if( !pItem ) return;
char buf[32] = {0,};
m_MoneyArray[pos] = money;
if( m_DlgState == eSDS_BUY )
{
pItem->SetLock( !bLock );
pItem->SetMovable( FALSE );
// m_pMoneyEdit->SetReadOnly( TRUE );
// m_pMoneyEdit->SetFocusEdit( FALSE );
}
else
{
pItem->SetLock( bLock );
pItem->SetMovable( !bLock );
// m_pMoneyEdit->SetReadOnly( bLock );
}
if( !ITEMMGR->IsDupItem(pItem->GetData()) && pItem->GetDurability() != 0 )
ITEMMGR->SetToolTipIcon( pItem, ITEMMGR->GetItemOption(pItem->GetDurability()));
else
ITEMMGR->SetToolTipIcon( pItem );
if( bLock )
{
if( ITEMMGR->IsDupItem(pItem->GetData()) )
wsprintf( buf, CHATMGR->GetChatMsg(199), AddComma( money ) );
else
wsprintf( buf, CHATMGR->GetChatMsg(214), AddComma( money ) );
}
else
{
wsprintf( buf, CHATMGR->GetChatMsg(114) );
}
pItem->AddToolTipLine( buf, TTTC_BUYPRICE );
// if( bLock )
// m_pMoneyEdit->SetFocusEdit( FALSE );
// 啊拜钎俊 措茄 贸府
ResetDlgData();
}
void CStreetStall::ChangeItemStatus( ITEMBASE* pbase, DWORD money, BOOL bLock, int nDivideKind )
{
CExchangeItem* pItem = NULL;
POSTYPE pos;
char buf[32] = {0,};
for(int i=0;i<m_pStallGrid->GetCellNum();++i)
{
if( m_pStallGrid->m_pIconGridCell[i].use )
{
pItem = (CExchangeItem*)m_pStallGrid->m_pIconGridCell[i].icon;
if( pItem->GetDBId() == pbase->dwDBIdx )
break;
}
}
pos = i;
if( pos == m_pStallGrid->GetCellNum() ) return;
m_nCurSelectedItem = pos;
m_pStallGrid->SetCurSelCellPos( pos );
m_MoneyArray[pos] = money;
if( m_DlgState == eSDS_BUY )
{
pItem->SetLock( !bLock );
pItem->SetMovable( FALSE );
// m_pMoneyEdit->SetReadOnly( TRUE );
// m_pMoneyEdit->SetFocusEdit( FALSE );
}
else
{
if( !bLock )
{
m_pData = pItem->GetLinkItem();
if( ITEMMGR->IsDupItem( pItem->GetLinkItem()->GetItemIdx() ) )
ShowDivideBox( eSO_INPUTMONEY_DUP, pItem->GetAbsX() + 20, pItem->GetAbsY() + 20, nDivideKind );
else
ShowDivideBox( eSO_INPUTMONEY, pItem->GetAbsX() + 20, pItem->GetAbsY() + 20, nDivideKind );
pItem->SetLock( TRUE );
pItem->SetMovable( FALSE );
}
else
{
pItem->SetLock( FALSE );
pItem->SetMovable( FALSE );
m_pData = NULL;
}
// pItem->SetLock( bLock );
// pItem->SetMovable( !bLock );
// m_pMoneyEdit->SetReadOnly( bLock );
}
if( !ITEMMGR->IsDupItem(pItem->GetData()) && pItem->GetDurability() != 0 )
ITEMMGR->SetToolTipIcon( pItem, ITEMMGR->GetItemOption(pItem->GetDurability()));
else
ITEMMGR->SetToolTipIcon( pItem );
if( bLock )
{
if( ITEMMGR->IsDupItem(pItem->GetData()) )
wsprintf( buf, CHATMGR->GetChatMsg(199), AddComma( money ) );
else
wsprintf( buf, CHATMGR->GetChatMsg(214), AddComma( money ) );
}
else
{
wsprintf( buf, CHATMGR->GetChatMsg(114) );
}
pItem->AddToolTipLine( buf, TTTC_BUYPRICE );
// if( bLock )
// m_pMoneyEdit->SetFocusEdit( FALSE );
// 啊拜钎俊 措茄 贸府
ResetDlgData();
}
// Lock惑怕客 般摹扁酒捞袍牢瘤甫 犬牢且 荐 乐促.
BOOL CStreetStall::SelectedItemCheck()
{
m_pStallGrid->SetShowGrid( TRUE ); //?
CExchangeItem * pLinkItem = (CExchangeItem*)m_pStallGrid->GetIconForIdx( m_nCurSelectedItem );
return !pLinkItem->IsLocked();
}
void CStreetStall::ResetDlgData()
{
if( m_nCurSelectedItem == -1 )
{
m_pStallGrid->SetShowGrid( FALSE );
m_pMoneyEdit->SetEditText( DEFAULT_MONEY_TEXT );
}
else
{
if( m_pStallGrid->IsAddable( m_nCurSelectedItem ) )
{
m_pStallGrid->SetShowGrid( FALSE );
m_pStallGrid->SetCurSelCellPos(-1);
m_nCurSelectedItem = -1;
// m_dwCurSelectedItemDBIdx = 0;
m_pMoneyEdit->SetEditText( DEFAULT_MONEY_TEXT );
return;
}
m_pStallGrid->SetCurSelCellPos( m_nCurSelectedItem );
m_pStallGrid->SetShowGrid( TRUE );
m_pMoneyEdit->SetEditText( AddComma( m_MoneyArray[m_nCurSelectedItem] ) );
}
}
DWORD CStreetStall::GetCurSelectedItemDBidx()
{
return ((CExchangeItem*)m_pStallGrid->GetIconForIdx( m_nCurSelectedItem ))->GetDBId();
}
DWORD CStreetStall::GetCurSelectedItemDur()
{
return ((CExchangeItem*)m_pStallGrid->GetIconForIdx( m_nCurSelectedItem ))->GetDurability();
}
void CStreetStall::ShowDivideBox(DWORD dwOption, int x, int y, int nDivideKind )
{
switch( dwOption )
{
case eSO_DIVE:
{
CExchangeItem* pExItem = (CExchangeItem*)m_pStallGrid->GetIconForIdx( m_nCurSelectedItem );
if( pExItem == NULL ) return;
cDivideBox * pDivideBox = WINDOWMGR->DivideBox( DBOX_DIVIDE_STREETSTALL, pExItem->GetAbsX(), pExItem->GetAbsY(), OnDivideItem, OnDivideItemCancel, this, NULL, CHATMGR->GetChatMsg(638) );
if( !pDivideBox )
{
pDivideBox = (cDivideBox *)WINDOWMGR->GetWindowForID( DBOX_DIVIDE_STREETSTALL );
}
pDivideBox->ChangeKind( nDivideKind );
pDivideBox->SetMaxValue( 5 );
//pDivideBox->SetValue( pExItem->GetDurability() );
pDivideBox->SetValue(1); //KES
//SS_BUG
// pDivideBox->SetPos( m_nCurSelectedItem );
m_pData = pExItem;
pDivideBox->m_pSpin->SetFocusEdit(TRUE);
//SetDisable(TRUE);
}
break;
case eSO_INPUTMONEY:
{
cDivideBox * pDivideBox = WINDOWMGR->DivideBox( DBOX_INPUT_MONEY, x, y, OnFakeRegistItem, OnRegistItemCancel, this, NULL, CHATMGR->GetChatMsg(639) );
if( !pDivideBox )
pDivideBox = (cDivideBox *)WINDOWMGR->GetWindowForID( DBOX_INPUT_MONEY );
pDivideBox->ChangeKind( nDivideKind );
//pDivideBox->SetValue(0);
//pDivideBox->m_pSpin->SetEditText("0");
pDivideBox->m_pSpin->SetFocusEdit( TRUE );
pDivideBox->m_pSpin->SetEditText( AddComma( m_MoneyArray[m_nCurSelectedItem] ) );
SetDisable( TRUE );
}
break;
case eSO_INPUTMONEY_DUP:
{
cDivideBox * pDivideBox = WINDOWMGR->DivideBox( DBOX_INPUT_MONEY, x, y, OnFakeRegistItem, OnRegistItemCancel, this, NULL, CHATMGR->GetChatMsg(642) );
if( !pDivideBox )
pDivideBox = (cDivideBox *)WINDOWMGR->GetWindowForID( DBOX_INPUT_MONEY );
pDivideBox->ChangeKind( nDivideKind );
//pDivideBox->SetValue(0);
//pDivideBox->m_pSpin->SetEditText("0");
pDivideBox->m_pSpin->SetFocusEdit( TRUE );
pDivideBox->m_pSpin->SetEditText( AddComma( m_MoneyArray[m_nCurSelectedItem] ) );
SetDisable( TRUE );
}
break;
}
}
void CStreetStall::OnDivideItem( LONG iId, void* p, DWORD param1, void * vData1, void * vData2 )
{
CStreetStall* pStall = (CStreetStall*)vData1;
// 函荐狼 檬扁拳
if( param1 == 0 )
{
pStall->SetDisable(FALSE);
return; // 肮荐啊 0捞搁
}
cDivideBox* pDivideBox = (cDivideBox*)p;
if( pDivideBox == NULL )
{
pStall->SetDisable(FALSE);
return;
}
// KES SS_BUG
// if( pDivideBox->m_nPos == -1 )
// {
// pStall->SetDisable(FALSE);
// return;
// }
// POSTYPE pos = pDivideBox->m_nPos;
CExchangeItem* pExItem = pStall->FindItem( pStall->GetCheckDBIdx() );
if( pExItem == NULL )
{
OnDivideItemCancel( iId, p, param1, vData1, vData2 );
//皋技瘤 钎矫秦林扁
return;
}
// CExchangeItem* pExItem = (CExchangeItem*)pStall->GetData();
// if( pExItem == NULL )
// {
// pStall->SetDisable(FALSE);
// return;
// }
if( pExItem->GetDurability() < param1 )
{
OnDivideItemCancel( iId, p, param1, vData1, vData2 );
//皋技瘤 钎矫
return; // 荤妨绰 荐樊焊促 利栏搁..
}
POSTYPE pos = pExItem->GetPosition();
// 概聪廉俊 康距 酒捞袍 荤扁 龋免 ..
STREETSTALLMGR->BuyItemDur( pos, param1 );
// pStall->SetData( NULL );
// pStall->SetDisable( FALSE );
}
void CStreetStall::OnDivideItemCancel( LONG iId, void* p, DWORD param1, void * vData1, void * vData2 )
{
CStreetStall* pStall = (CStreetStall*)vData1;
if( pStall == NULL ) return;
pStall->SetData( NULL );
pStall->SetDisable( FALSE );
}
void CStreetStall::OnFakeRegistItem( LONG iId, void* p, DWORD param1, void * vData1, void * vData2 )
{
CStreetStall* pStall = (CStreetStall*)vData1;
pStall->SetDisable( FALSE );
// if( pStall->GetCurSelectedItemNum() == -1 ) return;
// if( pStall->SelectedItemCheck() ) return;
if( param1 == 0 )
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(637) );
OnRegistItemCancel( iId, p, param1, vData1, vData2 );
return;
}
else
{
CExchangeItem* pExItem = pStall->FindItem( pStall->GetCheckDBIdx() );
if( pExItem == NULL )
{
OnRegistItemCancel( iId, p, param1, vData1, vData2 );
return;
}
//pStall->RegistMoney( pStall->GetCurSelectedItemNum(), param1 );//捞矾搁 部老荐档.
pStall->RegistMoney( pExItem->GetPosition(), param1 );
STREETSTALLMGR->ItemStatus( pExItem, TRUE );
}
}
void CStreetStall::OnRegistItemCancel( LONG iId, void* p, DWORD param1, void * vData1, void * vData2 )
{
CStreetStall* pStall = (CStreetStall*)vData1;
CItem* item = (CItem*)pStall->GetData();
item->SetLock( FALSE );
pStall->SetData( NULL );
pStall->SetDisable( FALSE );
//KES
// if( item->GetLinkPosition() != 0 )
{
CExchangeItem* pExItem = (CExchangeItem*)pStall->GetGridDialog()->GetIconForIdx( item->GetLinkPosition() );
if( pExItem == NULL ) return;
if( pExItem->GetLinkItem() == NULL ) return;
MSG_LINKITEM msg;
msg.Category = MP_STREETSTALL;
msg.Protocol = MP_STREETSTALL_DELETEITEM_SYN;
msg.dwObjectID = HERO->GetID();
msg.ItemInfo = *pExItem->GetLinkItem()->GetItemBaseInfo();
msg.wAbsPosition = item->GetLinkPosition();
NETWORK->Send( &msg, sizeof( MSG_LINKITEM ) );
}
}
int CStreetStall::GetGridposForItemIdx(WORD wIdx)
{
int num = m_pStallGrid->GetCellNum();
for(int i=0;i<num;++i)
{
CExchangeItem* pItem = (CExchangeItem*)m_pStallGrid->GetIconForIdx(i);
if( wIdx == pItem->GetDBId() )
return i;
}
return -1;
}
void CStreetStall::GetTitle( char* pStrTitle )
{
m_pTitle->GetScriptText( pStrTitle );
}
void CStreetStall::EditTitle( char* title )
{
m_pTitle->SetScriptText( title );
}
cIcon* CStreetStall::GetCurSelectedItem()
{
if(m_nCurSelectedItem == -1) return NULL;
return m_pStallGrid->GetIconForIdx( m_nCurSelectedItem );
}
DWORD CStreetStall::GetCurSelectedItemIdx()
{
if(m_nCurSelectedItem == -1) return 0;
return m_pStallGrid->GetIconForIdx(m_nCurSelectedItem)->GetData();
}
cIcon* CStreetStall::GetItem( POSTYPE pos )
{
return m_pStallGrid->GetIconForIdx( pos );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -