Files
2022-10-26 12:25:11 +08:00

155 lines
3.5 KiB
C++

//------------------------------------------------------------------------------
// uiVendorBuy_func.cpp
// (C) 2005 ckbang
//------------------------------------------------------------------------------
#include "SunClientPrecompiledHeader.h"
#include "uiVendorBuy.h"
#include "ItemManager.h"
#include "ItemUnitRenderer.h"
#include "globalfunc.h"
//------------------------------------------------------------------------------
/** ITEM UNIT RENDERER
*/
void
uiVendorBuy::InitItemRender()
{
SAFE_RELEASENDELETE(m_pItemUnitRenderer);
if (NULL == m_pItemUnitRenderer )
{
m_pItemUnitRenderer = new ItemUnitRenderer;
m_pItemUnitRenderer->Init( uiBase::GetDrawBase(), GetMaxSlotNum() );
}
}
//------------------------------------------------------------------------------
/** ITEM UNIT RENDERER
*/
void
uiVendorBuy::ResetItemRenderer()
{
SAFE_RELEASENDELETE(m_pItemUnitRenderer);
this->InitItemRender();
}
//------------------------------------------------------------------------------
/** ITEM UNIT RENDERER
*/
ItemUnitRenderer *
uiVendorBuy::GetItemUnitRender() const
{
return m_pItemUnitRenderer;
}
//------------------------------------------------------------------------------
/**
working for slot clean
called where to Hero::ReleaseContainer().
*/
void
uiVendorBuy::FlushUnitDraw()
{
SCSlot FromSlot;
for (int i = 0; i < GetMaxSlotNum(); ++i)
{
if( !IsEmpty(i) )
DeleteSlot(i, NULL);
}
}
#ifdef _JBH_MOD_VENDOR_SELECT_BUY_NUM
//------------------------------------------------------------------------------
/**
*/
void
uiVendorBuy::SendItemBuySync(POSTYPE pos , int buyNum)
{
MSG_CG_VENDOR_BUY_SYN sendMsg;
sendMsg.m_byCategory = CG_VENDOR;
sendMsg.m_byProtocol = CG_VENDOR_BUY_SYN;
sendMsg.m_VendorPos = pos;
if ( buyNum )
{
sendMsg.m_BuyNum = buyNum;
}
else
{
sendMsg.m_BuyNum = m_curAmouts;
}
GlobalFunc::SendPacket( CI_GAMESERVERIDX, &sendMsg, sizeof(sendMsg) );
}
#else
//------------------------------------------------------------------------------
/**
*/
void
uiVendorBuy::SendItemBuySync(POSTYPE pos)
{
MSG_CG_VENDOR_BUY_SYN sendMsg;
sendMsg.m_byCategory = CG_VENDOR;
sendMsg.m_byProtocol = CG_VENDOR_BUY_SYN;
sendMsg.m_VendorPos = pos;
GlobalFunc::SendPacket( CI_GAMESERVERIDX, &sendMsg, sizeof(sendMsg) );
}
#endif
//------------------------------------------------------------------------------
/**
*/
void
uiVendorBuy::ItemSub(POSTYPE pos)
{
SCSlot FromSlot;
DeleteSlot(pos, NULL);
this->m_curAmouts = 0;
this->m_curMoney = 0;
this->m_curPos = 0;
}
//------------------------------------------------------------------------------
/**
*/
void
uiVendorBuy::QueryView(DWORD key)
{
MSG_CG_VENDOR_VIEW_START_SYN sendMsg;
sendMsg.m_byCategory = CG_VENDOR;
sendMsg.m_byProtocol = CG_VENDOR_VIEW_START_SYN;
sendMsg.m_dwPlayerKey = key;
GlobalFunc::SendPacket( CI_GAMESERVERIDX, &sendMsg, sizeof(sendMsg) );
}
//------------------------------------------------------------------------------
/**
*/
void
uiVendorBuy::QueryViewEnd()
{
MSG_CG_VENDOR_VIEW_END_SYN sendMsg;
GlobalFunc::SendPacket( CI_GAMESERVERIDX, &sendMsg, sizeof(sendMsg) );
}
void
uiVendorBuy::SetBuyItemsSearchFoucs( POSTYPE pos, DURATYPE count , MONEY price )
{
m_curPos = pos;
m_curMoney = price* count;
m_curAmouts = count;
}
//------------------------------------------------------------------------------
// EOF
//------------------------------------------------------------------------------