IFItemMallConfirmBuy.cpp

 avatar
unknown
c_cpp
2 years ago
2.1 kB
112
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