#ifdef ENABLE_ACCE_SYSTEM
memset(Slot.pActiveSlotEffect, 0, sizeof(Slot.pActiveSlotEffect));
#endif
ClearSlot(&Slot);
Slot.dwSlotNumber = dwIndex;
//////////////////////////////
if (pSlot->pFinishCoolTimeEffect)
{
pSlot->pFinishCoolTimeEffect->Hide();
}
#ifdef ENABLE_ACCE_SYSTEM
for (auto& pEff : pSlot->pActiveSlotEffect)
if(pEff)
pEff->Hide();
#endif
}
void CSlotWindow::ClearAllSlot()
{
Destroy();
}
////////////////////////////////////////////////
__DestroyFinishCoolTimeEffect(pSlot);
#ifdef ENABLE_ACCE_SYSTEM
for (auto& pEff : pSlot->pActiveSlotEffect)
{
if (pEff)
{
delete pEff;
pEff = NULL;
}
}
#endif
}
m_ReserveDestroyEffectDeque.clear();
if (m_pSlotActiveEffect)
m_pSlotActiveEffect->Update();
/////////////////////////////////////////////////
#ifdef ENABLE_ACCE_SYSTEM
{
int iX = m_rect.left + rSlot.ixPosition, iY = m_rect.top + rSlot.iyPosition, iItemYSize = rSlot.byyPlacedItemSize;
for (int i = 0; i < 3; ++i)
{
auto& pEff = rSlot.pActiveSlotEffect[i];
if ((pEff) && (iItemYSize == i + 1))
{
pEff->Show();
pEff->SetPosition(iX, iY);
pEff->Update();
pEff->Render();
}
}
}
#endif
////////////////////////////////////////////////////////////
#ifdef ENABLE_ACCE_SYSTEM
void CSlotWindow::ActivateEffect(DWORD dwSlotIndex, float r, float g, float b, float a)
{
TSlot * pSlot;
if (!GetSlotPointer(dwSlotIndex, &pSlot))
return;
for (int i = 0; i < 3; ++i)
{
auto& pActiveEff = pSlot->pActiveSlotEffect[i];
if (pActiveEff)
{
delete pActiveEff;
pActiveEff = NULL;
}
const int ciImageCount = 12;
pActiveEff = new CAniImageBox(NULL);
for (int j = 0; j <= ciImageCount ; ++j)
{
char cBuf[72];
snprintf(cBuf, sizeof(cBuf), "d:/ymir work/ui/public/slotactiveeffect/slot%d/%02d.sub", (i + 1), j);
pActiveEff->AppendImage(cBuf, 0, 0, r, g, b, a);
}
pActiveEff->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
}
pSlot->bActive = TRUE;
}
void CSlotWindow::DeactivateEffect(DWORD dwSlotIndex)
{
TSlot * pSlot;
if (!GetSlotPointer(dwSlotIndex, &pSlot))
return;
for (auto& pActiveEff : pSlot->pActiveSlotEffect)
{
if (pActiveEff)
{
delete pActiveEff;
pActiveEff = NULL;
}
}
}
#endif
///////////////////////////////////////////////////////
if (rSlot.pFinishCoolTimeEffect)
{
CWindowManager::Instance().DestroyWindow(rSlot.pFinishCoolTimeEffect);
}
#ifdef ENABLE_ACCE_SYSTEM
for (auto& pEff: rSlot.pActiveSlotEffect )
if (pEff)
CWindowManager::Instance().DestroyWindow(pEff);
#endif
}
m_SlotList.clear();
__DestroyToggleSlotImage();
__DestroySlotEnableEffect();
__DestroyBaseImage();