Untitled
unknown
c_cpp
10 months ago
2.5 kB
17
Indexable
void KUiItem::OnClickItem(KUiDraggedObject* pItem, bool bDoImmed)
{
if (pItem == NULL || g_pCoreShell == NULL)
return;
KUiObjAtContRegion Obj;
Obj.Obj.uGenre = pItem->uGenre;
Obj.Obj.uId = pItem->uId;
Obj.Region.h = pItem->DataX;
Obj.Region.v = pItem->DataY;
Obj.Region.Width = pItem->DataW;
Obj.Region.Height = pItem->DataH;
Obj.eContainer = UOC_ITEM_TAKE_WITH;
KUiStoreBox* pStore = KUiStoreBox::GetIfVisible();
KUiTrade* pTrade = KUiTrade::GetIfVisible();
KUiGiveBox* pGiveBox = KUiGiveBox::GetIfVisible();
if (pStore || pTrade || pGiveBox)
{
KUiObjAtContRegion Drop = Obj;
Drop.Region.h = -1;
Drop.Region.v = -1;
Drop.eContainer = pStore ? pStore->GetCurrentStoreBoxContainer() : pTrade ? UOC_TO_BE_TRADE : UOC_GIVE_BOX;
g_pCoreShell->OperationRequest(GOI_SWITCH_OBJECT, (unsigned int)&Obj, (int)&Drop);
return;
}
if (bDoImmed == false)
{
if(KUiMarket::GetIfVisible() != NULL)
return;
KUiItemBuySelInfo Price = { 0 };
if (g_pCoreShell->GetGameData(GDI_TRADE_ITEM_PRICE,
(unsigned int)(&Obj), (int)(&Price)))
{
KUiTradeConfirm::OpenWindow(this, &Obj, &Price, TCA_SALE);
}
}
else
{
UISYS_STATUS eStatus = g_UiBase.GetStatus();
if (eStatus == UIS_S_TRADE_SALE || eStatus == UIS_S_TRADE_NPC)
{
if(KUiMarket::GetIfVisible() != NULL)
return;
if(eStatus == UIS_S_TRADE_NPC)
{
if(GetKeyState(VK_SHIFT) & 0x8000)
{
g_pCoreShell->OperationRequest(GOI_TRADE_NPC_SELL,
(unsigned int)(&Obj), 0);
}
else
{
KSystemMessage Msg;
Msg.byConfirmType = SMCT_NONE;
Msg.byParamSize = 0;
Msg.byPriority = 0;
Msg.eType = SMT_NORMAL;
Msg.uReservedForUi = 0;
sprintf(Msg.szMessage, SELL_MESSAGES);
KUiSysMsgCentre::AMessageArrival(&Msg, NULL);
}
}
else
{
g_pCoreShell->OperationRequest(GOI_TRADE_NPC_SELL,
(unsigned int)(&Obj), 0);
}
}
else if (g_UiBase.IsOperationEnable(UIS_O_USE_ITEM))
{
if(GetKeyState(VK_CONTROL) & 0x8000)
{
KUiItemBuySelInfo Price = { 0 };
if (g_pCoreShell->GetGameData(GDI_ITEM_BREAK_INFO,
(unsigned int)(&Obj), (int)(&Price)))
{
KUiTradeConfirm::OpenWindow(this, &Obj, &Price, TCA_BREAK, 1, Price.nPrice - 1);
}
return;
}
else
{
if(KUiGetString::GetIfVisible() != NULL)
return;
if(KUiGetNumber::GetIfVisible() != NULL)
return;
if(KUiTongSetTax::GetIfVisible() != NULL)
return;
g_pCoreShell->OperationRequest(GOI_USE_ITEM,
(unsigned int)(&Obj), UOC_ITEM_TAKE_WITH);
}
}
}
}Editor is loading...
Leave a Comment