📄 streetstall.cpp
字号:
// StreetStall.cpp: implementation of the CStreetStall class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "StreetStall.h"
#include "WindowIDEnum.h"
#include "ObjectManager.h"
#include "GameIn.h"
#include "./Interface/cWindowManager.h"
#include "./Interface/cSpin.h"
#include "./Interface\cIcon.h"
#include "./Interface\cIconGridDialog.h"
#include "./Interface\cEditBox.h"
#include "./Interface\cTextArea.h"
#include "./Interface\cButton.h"
#include "StreetStallManager.h"
#include "item.h"
#include "itemmanager.h"
#include "ExchangeItem.h"
#include "StreetStallTitleTip.h"
#include "cIMEex.h"
#include "cDivideBox.h"
#include "ChatManager.h"
#include "./Input/Mouse.h"
#include "MainBarDialog.h"
#include "QuickManager.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CStreetStall::CStreetStall()
{
m_type = WT_STREETSTALLDIALOG;
m_DlgState = eSDS_NOT_OPENED;
memset(m_MoneyArray, 0, SLOT_STREETSTALL_NUM*sizeof(DWORD));
m_nCurSelectedItem = -1;
m_dwCurSelectedItemDBIdx = 0;
m_pData = NULL;
}
CStreetStall::~CStreetStall()
{
}
void CStreetStall::Linking()
{
// LBS 眠啊 03.09.18
m_pStallGrid = (cIconGridDialog*)GetWindowForID(SSI_ICONGRID);
// m_pTitleEdit = (cEditBox *)GetWindowForID(SSI_TITLEEDIT);
m_pTitle = (cTextArea*)GetWindowForID(SSI_TITLE);
m_pTitle->SetEnterAllow( FALSE );
m_pEnterBtn = (cButton*)GetWindowForID(SSI_ENTER);
m_pMoneyEdit = (cEditBox *)GetWindowForID(SSI_MONEYEDIT);
m_pMoneyEdit->SetValidCheck( VCM_NUMBER );
m_pMoneyEdit->SetAlign( TXT_RIGHT );
m_pMoneyEdit->SetReadOnly( TRUE );
m_pBuyBtn = (cButton *)GetWindowForID(SSI_BUYBTN);
// m_pRegistBtn = (cButton *)GetWindowForID(SSI_REGISTBTN);
m_pEditBtn = (cButton *)GetWindowForID(SSI_EDITBTN);
m_pTitle->SetScriptText( DEFAULT_TITLE_TEXT );
// strcpy( m_OldTitle, m_pTitle->GetScriptText() );
m_pTitle->GetScriptText( m_OldTitle );
m_pMoneyEdit->SetEditText( DEFAULT_MONEY_TEXT );
}
DWORD CStreetStall::ActionEvent(CMouse * mouseInfo)
{
if( !m_bActive ) return WE_NULL;
DWORD we = WE_NULL;
we |= cWindow::ActionEvent(mouseInfo);
if( !m_bDisable )
{
we |= ActionEventWindow(mouseInfo);
we |= ActionEventComponent(mouseInfo);
}
return we;
}
// LBS 03.09.24 惑痢摧扁
void CStreetStall::OnCloseStall(BOOL bDelOption)
{
SetDisable(FALSE);
cDialog::SetActive(FALSE);
m_pMoneyEdit->SetReadOnly( TRUE );
m_pMoneyEdit->SetFocusEdit( FALSE );
// 傈眉 Icon 昏力
WORD num = m_pStallGrid->GetCellNum();
DeleteItemAll(bDelOption);
// 阿 函荐 檬扁拳
m_pStallGrid->SetCurSelCellPos(-1);
m_nCurSelectedItem = -1;
m_dwCurSelectedItemDBIdx = 0;
memset(m_MoneyArray, 0, SLOT_STREETSTALL_NUM*sizeof(DWORD));
m_pMoneyEdit->SetEditText( DEFAULT_MONEY_TEXT );
// m_pTitleEdit->SetEditText( DEFAULT_TITLE_TEXT );
m_pTitle->SetScriptText( DEFAULT_TITLE_TEXT );
m_pStallGrid->SetCurSelCellPos( -1 );
m_pStallGrid->SetShowGrid( FALSE );
// strcpy( m_OldTitle, m_pTitleEdit->GetEditText() );
m_pTitle->GetScriptText( m_OldTitle );
m_DlgState = eSDS_NOT_OPENED;
m_dwOwnnerId = HERO->GetID();
if(m_pData)
{
CItem* item = (CItem*)m_pData;
item->SetLock( FALSE );
}
m_pData = NULL;
// 唱穿扁 芒捞 殿废 登绢 乐绰版快 瘤款促.
cDivideBox * pDivideBox = (cDivideBox *)WINDOWMGR->GetWindowForID( DBOX_DIVIDE_STREETSTALL );
if( pDivideBox )
{
pDivideBox->SetDisable(TRUE);
pDivideBox->SetActive(FALSE);
WINDOWMGR->AddListDestroyWindow( pDivideBox );
}
pDivideBox = (cDivideBox *)WINDOWMGR->GetWindowForID( DBOX_INPUT_MONEY );
if( pDivideBox )
{
pDivideBox->SetDisable(TRUE);
pDivideBox->SetActive(FALSE);
WINDOWMGR->AddListDestroyWindow( pDivideBox );
}
}
void CStreetStall::ShowSellStall()
{
SetActive(TRUE);
m_DlgState = eSDS_OPENED;
m_pBuyBtn->SetActive(FALSE);
m_pEditBtn->SetActive(TRUE);
// m_pRegistBtn->SetActive(TRUE);
// m_pTitleEdit->SetReadOnly(FALSE);
m_pTitle->SetReadOnly(FALSE);
m_pEnterBtn->SetDisable(FALSE);
if( m_pStallGrid->GetCurSelCellPos() == -1 ) // 急琶等 酒捞袍捞 绝阑锭
{
//m_pMoneyEdit->SetReadOnly( TRUE );
//m_pMoneyEdit->SetFocusEdit( FALSE );
m_pMoneyEdit->SetEditText( DEFAULT_MONEY_TEXT );
}
else
{
//m_pMoneyEdit->SetReadOnly( FALSE );
}
return;
}
void CStreetStall::ShowBuyStall()
{
SetActive(TRUE);
m_DlgState = eSDS_BUY;
m_pBuyBtn->SetActive(TRUE);
m_pEditBtn->SetActive(FALSE);
// m_pRegistBtn->SetActive(FALSE);
// m_pTitleEdit->SetReadOnly(TRUE);
m_pTitle->SetFocusEdit( FALSE );
m_pTitle->SetReadOnly(TRUE);
m_pEnterBtn->SetDisable( TRUE );
//m_pMoneyEdit->SetReadOnly(TRUE);
//m_pMoneyEdit->SetFocusEdit( FALSE );
return;
}
int CStreetStall::AddItem( cIcon* pItem )
{
POSTYPE pos;
for(int i=0;i<m_pStallGrid->GetCellNum();++i)
{
if( !m_pStallGrid->m_pIconGridCell[i].use )
break;
}
pos = i;
if( pos == m_pStallGrid->GetCellNum() ) return -1;
m_pStallGrid->AddIcon( pos, pItem );
return pos;
}
cIcon* CStreetStall::GetItem( DWORD dwDBIdx )
{
CExchangeItem* pItem;
for(int i=0;i<m_pStallGrid->GetCellNum();++i)
{
pItem = ( CExchangeItem* )m_pStallGrid->m_pIconGridCell[i].icon;
if(pItem == NULL)
return NULL; //窍瘤档 臼篮 畴痢 皋矫瘤啊 朝扼客辑 欢唱霸 登辑 眠啊 hs
if( pItem->GetDBId() == dwDBIdx )
return pItem;
}
return NULL;
}
void CStreetStall::DeleteItem( ITEMBASE* pbase )
{
CExchangeItem* pItem;
POSTYPE pos;
for(int i=0;i<m_pStallGrid->GetCellNum();++i)
{
pItem = (CExchangeItem*)m_pStallGrid->m_pIconGridCell[i].icon;
if( pItem == NULL )
{
// ASSERTMSG(0, "辑滚俊 乐绰 沥焊啊 努扼捞攫飘俊绰 绝澜..");
continue;
}
if( pbase->dwDBIdx == pItem->GetDBId() )
break;
}
pos = i;
if( pos == m_pStallGrid->GetCellNum() ) return;
cIcon* pIcon = NULL;
if( m_pStallGrid->DeleteIcon( pos, &pIcon ) )
{
if( m_pData && pIcon )
{
if( ((CItem*)m_pData)->GetItemBaseInfo()->dwDBIdx == ((CExchangeItem*)pIcon)->GetDBId() )
{
m_pData = NULL;
m_dwCurSelectedItemDBIdx = 0;
}
}
if( m_DlgState == eSDS_BUY )
{
if( pIcon ) WINDOWMGR->AddListDestroyWindow( pIcon );
}
else
{
if( pIcon ) STREETSTALLMGR->UnlinkItem( (CExchangeItem*)pIcon );
}
for( int i = pos ; i < SLOT_STREETSTALL_NUM-1 ; ++i )
{
m_pStallGrid->DeleteIcon( i+1, &pIcon );
if( !pIcon ) break;
((CExchangeItem*)pIcon)->SetPosition( i );
if( ((CExchangeItem*)pIcon)->GetLinkItem() ) //荤绰 荤恩篮 傅农啊 绝促.
((CExchangeItem*)pIcon)->GetLinkItem()->SetLinkPosition( i );
m_pStallGrid->AddIcon( i, pIcon );
m_MoneyArray[i] = m_MoneyArray[i+1];
}
}
ResetDlgData();
}
CExchangeItem* CStreetStall::FindItem( DWORD dwDBIdx )
{
CExchangeItem* pItem = NULL;
CExchangeItem* pFindItem = NULL;
for( int i = 0 ; i < m_pStallGrid->GetCellNum() ; ++i )
{
pItem = (CExchangeItem*)m_pStallGrid->m_pIconGridCell[i].icon;
if( pItem == NULL )
break;
if( dwDBIdx == pItem->GetDBId() )
{
pFindItem = pItem;
break;
}
}
return pFindItem;
}
void CStreetStall::ResetItemInfo( DWORD dwDBIdx, DWORD count )
{
CExchangeItem* pItem;
POSTYPE pos;
for(int i=0;i<m_pStallGrid->GetCellNum();++i)
{
pItem = (CExchangeItem*)m_pStallGrid->m_pIconGridCell[i].icon;
if( pItem == NULL )
{
ASSERTMSG(0, "辑滚俊 乐绰 沥焊啊 努扼捞攫飘俊绰 绝澜..");
continue;
}
if( dwDBIdx == pItem->GetDBId() )
break;
}
pos = i;
if( pos == m_pStallGrid->GetCellNum() ) return;
pItem->SetDurability( count );
}
void CStreetStall::DeleteItemAll(BOOL bDelOption)
{
cIcon* pIcon;
for( int i=0;i<SLOT_STREETSTALL_NUM;++i)
{
m_pStallGrid->DeleteIcon( i, &pIcon );
if( bDelOption && pIcon )
{
if( !ITEMMGR->IsDupItem( ((CExchangeItem*)pIcon)->GetData() ) && ((CExchangeItem*)pIcon)->GetDurability() != 0 )
ITEMMGR->RemoveItemOption( ((CExchangeItem*)pIcon)->GetDurability() );
}
if( m_DlgState == eSDS_BUY )
{
if( pIcon ) WINDOWMGR->AddListDestroyWindow( pIcon );
}
else
{
if( pIcon ) STREETSTALLMGR->UnlinkItem( (CExchangeItem*)pIcon );
}
}
}
/*
BOOL CStreetStall::MoneyEditCheck()
{
char temp[256];
strcpy( temp, m_pMoneyEdit->GetEditText() );
if( temp[0] == 0 ) return FALSE;
int nNum = atoi( temp );
// itoa( nNum, temp, 256 );
strcpy( m_pMoneyEdit->GetEditText(), AddComma( nNum ) );
return TRUE;
}
*/
BOOL CStreetStall::FakeMoveIcon(LONG x, LONG y, cIcon * icon)
{
if( m_bDisable == TRUE || m_pData ) return FALSE;
if( GetDlgState() != eSDS_OPENED ) return FALSE;
////////////////////////////////////////////////////////////////////////////////////////////
//// 酒捞袍俊措茄 蜡瓤己 眉农
if( icon->GetType() != WT_ITEM )
return FALSE;
//////////////////////////////////////////////////////////////////////////
// YH MEDALQUEST
// if( ((CItem*)icon)->GetItemIdx() == 50800 ||
// ((CItem*)icon)->GetItemIdx() == 50801 ||
// ((CItem*)icon)->GetItemIdx() == 50802 )
// {
// CHATMGR->AddMsg( CTC_SYSMSG, "皋崔 酒捞袍篮 芭贰 窍角 荐 绝嚼聪促." );
// return FALSE;
// }
//////////////////////////////////////////////////////////////////////////
// 牢亥配府 酒捞袍牢瘤 眉农茄促.
if( GetTableIdxPosition( ((CItem*)icon)->GetPosition() ) != eItemTable_Inventory )
{
if( GetTableIdxPosition( ((CItem*)icon)->GetPosition() ) == eItemTable_Weared )
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(359) );
return FALSE;
}
// 狞促捞倔肺弊俊 傅农啊 乐绰瘤 眉农茄促.
if( ((CItem*)icon)->GetItemKind() == eYOUNGYAK_ITEM )
{
if( QUICKMGR->CheckQPosForItemIdx(((CItem*)icon)->GetItemIdx()) == FALSE )
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(348) );
return FALSE;
}
}
else
{
if( ((CItem*)icon)->GetQuickPosition() != 0 )
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(348) );
return FALSE;
}
}
// 傅农酒捞袍牢瘤 犬牢茄促.
if( icon->GetIconType() == eIconType_LinkedItem ) return FALSE;
if( !m_pStallGrid->PtInWindow( x, y ) ) return FALSE;
////////////////////////////////////////////////////////////////////////////////////////////
CItem* item = (CItem*)icon;
if( item->GetLinkPosition() ) return FALSE; // 酒捞袍狼 傅农惑怕 犬牢
item->SetLock( TRUE );
// if( m_pData ) // 殿废 吝牢 扁粮 酒捞袍俊 措秦辑 LOCK阑 乾促.
// {
// CItem* pCurItem = (CItem*)m_pData;
// pCurItem->SetLock(FALSE);
// }
m_pData = item;
if( STREETSTALLMGR->GetLinkedItemNum() >= SLOT_STREETSTALL_NUM )
{
CHATMGR->AddMsg( CTC_SYSMSG, CHATMGR->GetChatMsg(349) );
item->SetLock( FALSE );
m_pData = NULL;
}
else
{
// 酒捞袍阑 啊拜苞 窃膊 殿废 茄促.
STREETSTALLMGR->RegistItemEx( item, 0 );
m_dwCurSelectedItemDBIdx = item->GetDBIdx();
SetDisable( TRUE );
// pStall->SetData( NULL );
// pStall->SetDisable( FALSE );
// ShowDivideBox(eSO_INPUTMONEY, x, y);
}
return FALSE;
}
void CStreetStall::FakeDeleteItem( POSTYPE pos )
{
CExchangeItem* pExItem = (CExchangeItem*)m_pStallGrid->GetIconForIdx( pos );
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 = pos;
NETWORK->Send( &msg, sizeof( MSG_LINKITEM ) );
}
// LBS 眠啊 03.09.22
DWORD CStreetStall::ActionEventWindow(CMouse * mouseInfo)
{
DWORD we = WE_NULL;
if( m_bDisable ) return we;
we = cDialog::ActionEventWindow( mouseInfo );
if( mouseInfo->LButtonDown() )
if( !PtInWindow( mouseInfo->GetMouseX(), mouseInfo->GetMouseY() ) )
{
m_pStallGrid->SetShowGrid( FALSE );
// m_pStallGrid->SetCurSelCellPos(-1);
// m_nCurSelectedItem = -1;
// m_dwCurSelectedItemDBIdx = 0;
}
return we;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -