IFItemMallConfirmBuy.cpp
unknown
c_cpp
2 years ago
2.1 kB
127
Indexable
//
// Created by maximus on 12/24/2023.
//
#include "IFItemMallConfirmBuy.h"
#include "BSLib/multibyte.h"
#include "ClientNet/CInterfaceNetSender.h"
#include "GlobalDataManager.h"
#include "IFInventory.h"
#include "IFItemMallShopSlot.h"
CSOItemPackage *CIFItemMallConfirmBuy::GetPackageItem() const {
return m_pSOPackageItem;
}
void CIFItemMallConfirmBuy::OnBuy_BtnClick() {
CIFWnd *pParent = (CIFWnd *) GetParentControl();
if (pParent && pParent->IsSame(GFX_RUNTIME_CLASS(CIFInventory))) {
return;
}
CIFItemMallShopSlot *pSlot = (CIFItemMallShopSlot *) pParent;
std::n_string strCodeName = TO_NSTRING(GetPackageItem()->GetPackageItemData()->m_codeName128).c_str();
CStringData *data = new CStringData();
data->str = strCodeName;
int nRealIndex = GetRealItemIndex(pSlot->GetItemMallData()->m_usShopId, pSlot->GetItemMallData()->m_btTab,
GetPackageItem());
g_pCInterfaceNetSender->BuyItemMallItem(
GetPackageItem()->GetPackageItemData()->m_id,
pSlot->GetItemMallData()->m_usShopId,
pSlot->GetItemMallData()->m_btTab,
nRealIndex,
m_usCount,
0,
m_nField7E8,
m_nField7EC,
*data);
pSlot->OnConfirmBuySectionControl(false);
}
int CIFItemMallConfirmBuy::GetRealItemIndex(int nShopId, int nTabIndex, CSOItemPackage* pPackageItem) {
CRefShopdata *pShopData = g_CGlobalDataManager->m_refShopDataMap[nShopId];
if (pShopData && pShopData->m_vRefShopTabGroupData.size() > 0) {
CRefShopTabGroupData *pTabGroupData = pShopData->m_vRefShopTabGroupData[0];
if (pTabGroupData && pTabGroupData->m_vRefShopTabData.size() > nTabIndex) {
CRefShopTabData *pTabData = pTabGroupData->m_vRefShopTabData[nTabIndex];
for (int i = 0; i < pTabData->m_vPackageItems.size(); i++) {
if (pTabData->m_vPackageItems[i] && pTabData->m_vPackageItems[i] == pPackageItem) {
return i;
}
}
}
}
return -1;
}Editor is loading...
Leave a Comment