Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "StdAfx.h"
- #include "../eterBase/CRC32.h"
- #include "../eterBase/Filename.h"
- #include "PythonWindow.h"
- #include "PythonSlotWindow.h"
- //#define __RENDER_SLOT_AREA__
- using namespace UI;
- class UI::CSlotWindow::CSlotButton : public CButton
- {
- public:
- enum ESlotButtonType
- {
- SLOT_BUTTON_TYPE_PLUS,
- SLOT_BUTTON_TYPE_COVER,
- };
- public:
- CSlotButton(ESlotButtonType dwType, DWORD dwSlotNumber, CSlotWindow* pParent) : CButton(NULL)
- {
- m_dwSlotButtonType = dwType;
- m_dwSlotNumber = dwSlotNumber;
- m_pParent = pParent;
- }
- virtual ~CSlotButton()
- {
- }
- BOOL OnMouseLeftButtonDown()
- {
- if (!IsEnable())
- return TRUE;
- if (UI::CWindowManager::Instance().IsAttaching())
- return TRUE;
- m_isPressed = TRUE;
- Down();
- return TRUE;
- }
- BOOL OnMouseLeftButtonUp()
- {
- if (!IsEnable())
- return TRUE;
- if (!IsPressed())
- return TRUE;
- if (IsIn())
- SetCurrentVisual(&m_overVisual);
- else
- SetCurrentVisual(&m_upVisual);
- m_pParent->OnPressedSlotButton(m_dwSlotButtonType, m_dwSlotNumber);
- return TRUE;
- }
- void OnMouseOverIn()
- {
- if (IsEnable())
- {
- SetCurrentVisual(&m_overVisual);
- }
- m_pParent->OnOverInItem(m_dwSlotNumber);
- }
- void OnMouseOverOut()
- {
- if (IsEnable())
- {
- SetUp();
- SetCurrentVisual(&m_upVisual);
- }
- m_pParent->OnOverOutItem();
- }
- protected:
- ESlotButtonType m_dwSlotButtonType;
- DWORD m_dwSlotNumber;
- CSlotWindow* m_pParent;
- };
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- class UI::CSlotWindow::CCoverButton : public CSlotButton
- {
- public:
- CCoverButton(ESlotButtonType dwType, DWORD dwSlotNumber, CSlotWindow* pParent) : CSlotButton(dwType, dwSlotNumber, pParent)
- {
- m_bLeftButtonEnable = TRUE;
- m_bRightButtonEnable = TRUE;
- }
- virtual ~CCoverButton()
- {
- }
- void SetLeftButtonEnable(BOOL bEnable)
- {
- m_bLeftButtonEnable = bEnable;
- }
- void SetRightButtonEnable(BOOL bEnable)
- {
- m_bRightButtonEnable = bEnable;
- }
- void OnRender()
- {
- }
- void RenderButton()
- {
- CButton::OnRender();
- }
- BOOL OnMouseLeftButtonDown()
- {
- if (!IsEnable())
- return TRUE;
- if (m_bLeftButtonEnable)
- {
- CButton::OnMouseLeftButtonDown();
- }
- else
- {
- m_pParent->OnMouseLeftButtonDown();
- }
- return TRUE;
- }
- BOOL OnMouseLeftButtonUp()
- {
- if (!IsEnable())
- return TRUE;
- if (m_bLeftButtonEnable)
- {
- CButton::OnMouseLeftButtonUp();
- m_pParent->OnMouseLeftButtonDown();
- }
- else
- {
- m_pParent->OnMouseLeftButtonUp();
- }
- return TRUE;
- }
- BOOL OnMouseRightButtonDown()
- {
- if (!IsEnable())
- return TRUE;
- if (m_bRightButtonEnable)
- CButton::OnMouseLeftButtonDown();
- return TRUE;
- }
- BOOL OnMouseRightButtonUp()
- {
- if (!IsEnable())
- return TRUE;
- m_pParent->OnMouseRightButtonDown();
- if (m_bRightButtonEnable)
- CButton::OnMouseLeftButtonUp();
- return TRUE;
- }
- protected:
- BOOL m_bLeftButtonEnable;
- BOOL m_bRightButtonEnable;
- };
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- class UI::CSlotWindow::CCoolTimeFinishEffect : public CAniImageBox
- {
- public:
- CCoolTimeFinishEffect(CSlotWindow* pParent, DWORD dwSlotIndex) : CAniImageBox(NULL)
- {
- m_pParent = pParent;
- m_dwSlotIndex = dwSlotIndex;
- }
- virtual ~CCoolTimeFinishEffect()
- {
- }
- void OnEndFrame()
- {
- ((CSlotWindow*)m_pParent)->ReserveDestroyCoolTimeFinishEffect(m_dwSlotIndex);
- }
- protected:
- DWORD m_dwSlotIndex;
- };
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////////
- // Set & Append
- void CSlotWindow::SetSlotType(DWORD dwType)
- {
- m_dwSlotType = dwType;
- }
- void CSlotWindow::SetSlotStyle(DWORD dwStyle)
- {
- m_dwSlotStyle = dwStyle;
- }
- void CSlotWindow::AppendSlot(DWORD dwIndex, int ixPosition, int iyPosition, int ixCellSize, int iyCellSize)
- {
- TSlot Slot;
- Slot.pInstance = NULL;
- Slot.pNumberLine = NULL;
- Slot.pCoverButton = NULL;
- Slot.pSlotButton = NULL;
- Slot.pSignImage = NULL;
- Slot.pFinishCoolTimeEffect = NULL;
- #if defined(__BL_ENABLE_PICKUP_ITEM_EFFECT__)
- Slot.pNewSlotEffect.fill(nullptr);
- Slot.bFlashEffect = false;
- #endif
- ClearSlot(&Slot);
- Slot.dwSlotNumber = dwIndex;
- Slot.dwCenterSlotNumber = dwIndex;
- Slot.ixPosition = ixPosition;
- Slot.iyPosition = iyPosition;
- Slot.ixCellSize = ixCellSize;
- Slot.iyCellSize = iyCellSize;
- m_SlotList.push_back(Slot);
- }
- void CSlotWindow::SetCoverButton(DWORD dwIndex, const char* c_szUpImageName, const char* c_szOverImageName, const char* c_szDownImageName, const char* c_szDisableImageName, BOOL bLeftButtonEnable, BOOL bRightButtonEnable)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- CCoverButton*& rpCoverButton = pSlot->pCoverButton;
- if (!rpCoverButton)
- {
- rpCoverButton = new CCoverButton(CSlotButton::SLOT_BUTTON_TYPE_COVER, pSlot->dwSlotNumber, this);
- CWindowManager::Instance().SetParent(rpCoverButton, this);
- }
- rpCoverButton->SetLeftButtonEnable(bLeftButtonEnable);
- rpCoverButton->SetRightButtonEnable(bRightButtonEnable);
- rpCoverButton->SetUpVisual(c_szUpImageName);
- rpCoverButton->SetOverVisual(c_szOverImageName);
- rpCoverButton->SetDownVisual(c_szDownImageName);
- rpCoverButton->SetDisableVisual(c_szDisableImageName);
- rpCoverButton->Enable();
- rpCoverButton->Show();
- // NOTE : Cover ąöĆ°ŔĚ Plus ąöĆ°Ŕ» °ˇ·Áąö·ÁĽ Ŕӽà Äڵ带..
- if (pSlot->pSlotButton)
- {
- SetTop(pSlot->pSlotButton);
- }
- }
- void CSlotWindow::EnableCoverButton(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- if (!pSlot->pCoverButton)
- return;
- pSlot->pCoverButton->Enable();
- }
- void CSlotWindow::DisableCoverButton(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- if (!pSlot->pCoverButton)
- return;
- pSlot->pCoverButton->Disable();
- }
- void CSlotWindow::SetAlwaysRenderCoverButton(DWORD dwIndex, bool bAlwaysRender)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- if (bAlwaysRender)
- SET_BIT(pSlot->dwState, SLOT_STATE_ALWAYS_RENDER_COVER);
- else
- REMOVE_BIT(pSlot->dwState, SLOT_STATE_ALWAYS_RENDER_COVER);
- }
- void CSlotWindow::ShowSlotBaseImage(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- pSlot->bRenderBaseSlotImage = true;
- }
- void CSlotWindow::HideSlotBaseImage(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- pSlot->bRenderBaseSlotImage = false;
- }
- BOOL CSlotWindow::IsDisableCoverButton(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return FALSE;
- if (!pSlot->pCoverButton)
- return FALSE;
- return pSlot->pCoverButton->IsDisable();
- }
- void CSlotWindow::SetSlotBaseImage(const char* c_szFileName, float fr, float fg, float fb, float fa)
- {
- __CreateBaseImage(c_szFileName, fr, fg, fb, fa);
- }
- void CSlotWindow::AppendSlotButton(const char* c_szUpImageName, const char* c_szOverImageName, const char* c_szDownImageName)
- {
- for (TSlotListIterator itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- CSlotButton*& rpSlotButton = rSlot.pSlotButton;
- if (!rpSlotButton)
- {
- rpSlotButton = new CSlotButton(CSlotButton::SLOT_BUTTON_TYPE_PLUS, rSlot.dwSlotNumber, this);
- rpSlotButton->AddFlag(FLAG_FLOAT);
- CWindowManager::Instance().SetParent(rpSlotButton, this);
- }
- rpSlotButton->SetUpVisual(c_szUpImageName);
- rpSlotButton->SetOverVisual(c_szOverImageName);
- rpSlotButton->SetDownVisual(c_szDownImageName);
- rpSlotButton->SetPosition(rSlot.ixPosition + 1, rSlot.iyPosition + 19);
- rpSlotButton->Hide();
- }
- }
- void CSlotWindow::AppendRequirementSignImage(const char* c_szImageName)
- {
- for (TSlotListIterator itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- CImageBox*& rpSignImage = rSlot.pSignImage;
- if (!rpSignImage)
- {
- rpSignImage = new CImageBox(NULL);
- CWindowManager::Instance().SetParent(rpSignImage, this);
- }
- rpSignImage->LoadImage(c_szImageName);
- rpSignImage->Hide();
- }
- }
- BOOL CSlotWindow::HasSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return FALSE;
- return TRUE;
- }
- void CSlotWindow::SetSlot(DWORD dwIndex, DWORD dwVirtualNumber, BYTE byWidth, BYTE byHeight, CGraphicImage* pImage, D3DXCOLOR& diffuseColor)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- if (pSlot->isItem)
- if (pSlot->dwItemIndex == dwVirtualNumber)
- {
- pSlot->dwState = 0;
- pSlot->isItem = TRUE;
- if (pImage && pSlot->pInstance)
- {
- pSlot->pInstance->SetImagePointer(pImage);
- }
- return;
- }
- ClearSlot(pSlot);
- pSlot->dwState = 0;
- pSlot->isItem = TRUE;
- pSlot->dwItemIndex = dwVirtualNumber;
- if (pImage)
- {
- assert(NULL == pSlot->pInstance);
- pSlot->pInstance = CGraphicImageInstance::New();
- pSlot->pInstance->SetDiffuseColor(diffuseColor.r, diffuseColor.g, diffuseColor.b, diffuseColor.a);
- pSlot->pInstance->SetImagePointer(pImage);
- }
- pSlot->byxPlacedItemSize = byWidth;
- pSlot->byyPlacedItemSize = byHeight;
- if (pSlot->pCoverButton)
- {
- pSlot->pCoverButton->Show();
- }
- }
- void CSlotWindow::SetSlotCount(DWORD dwIndex, DWORD dwCount)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- if (dwCount <= 0)
- {
- if (pSlot->pNumberLine)
- {
- delete pSlot->pNumberLine;
- pSlot->pNumberLine = NULL;
- }
- }
- else
- {
- char szCount[16 + 1];
- _snprintf(szCount, sizeof(szCount), "%d", dwCount);
- if (!pSlot->pNumberLine)
- {
- CNumberLine* pNumberLine = new UI::CNumberLine(this);
- pNumberLine->SetHorizontalAlign(CNumberLine::HORIZONTAL_ALIGN_RIGHT);
- pNumberLine->Show();
- pSlot->pNumberLine = pNumberLine;
- }
- pSlot->pNumberLine->SetNumber(szCount);
- }
- }
- void CSlotWindow::SetSlotCountNew(DWORD dwIndex, DWORD dwGrade, DWORD dwCount)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- if (dwCount <= 0)
- {
- if (pSlot->pNumberLine)
- {
- delete pSlot->pNumberLine;
- pSlot->pNumberLine = NULL;
- }
- }
- else
- {
- char szCount[16 + 1];
- switch (dwGrade)
- {
- case 0:
- _snprintf(szCount, sizeof(szCount), "%d", dwCount);
- break;
- case 1:
- _snprintf(szCount, sizeof(szCount), "m%d", dwCount);
- break;
- case 2:
- _snprintf(szCount, sizeof(szCount), "g%d", dwCount);
- break;
- case 3:
- _snprintf(szCount, sizeof(szCount), "p");
- break;
- }
- if (!pSlot->pNumberLine)
- {
- CNumberLine* pNumberLine = new UI::CNumberLine(this);
- pNumberLine->SetHorizontalAlign(CNumberLine::HORIZONTAL_ALIGN_RIGHT);
- pNumberLine->Show();
- pSlot->pNumberLine = pNumberLine;
- }
- pSlot->pNumberLine->SetNumber(szCount);
- }
- }
- void CSlotWindow::SetSlotCoolTime(DWORD dwIndex, float fCoolTime, float fElapsedTime)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- pSlot->fCoolTime = fCoolTime;
- pSlot->fStartCoolTime = CTimer::Instance().GetCurrentSecond() - fElapsedTime;
- }
- #if defined(__BL_ENABLE_PICKUP_ITEM_EFFECT__)
- D3DXCOLOR CSlotWindow::GetNewSlotColor(const BYTE blType) const
- {
- switch (blType)
- {
- case ESlotColor::COLOR_TYPE_ORANGE:
- return D3DXCOLOR(0xFFA500);
- case ESlotColor::COLOR_TYPE_WHITE:
- return D3DXCOLOR(0xFFFFFF);
- case ESlotColor::COLOR_TYPE_RED:
- return D3DXCOLOR(0xFF0000);
- case ESlotColor::COLOR_TYPE_GREEN:
- return D3DXCOLOR(0x008000);
- case ESlotColor::COLOR_TYPE_YELLOW:
- return D3DXCOLOR(0xFFFF00);
- case ESlotColor::COLOR_TYPE_SKY:
- return D3DXCOLOR(0x87CEFA);
- case ESlotColor::COLOR_TYPE_PINK:
- return D3DXCOLOR(0xFFC0CB);
- case ESlotColor::COLOR_TYPE_BLUE:
- return D3DXCOLOR(0x0000FF);
- case ESlotColor::COLOR_TYPE_DARK_BLUE:
- return D3DXCOLOR(0x00008B);
- case ESlotColor::COLOR_TYPE_PURPLE:
- return D3DXCOLOR(0x800080);
- case ESlotColor::COLOR_TYPE_GRAY:
- return D3DXCOLOR(0x800080);
- case ESlotColor::COLOR_TYPE_SILVER:
- return D3DXCOLOR(0xC0C0C0);
- }
- return D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f);
- }
- void CSlotWindow::SetNewSlotDiffuseColor(const DWORD dwIndex, const BYTE blType)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- const D3DXCOLOR color{ GetNewSlotColor(blType) };
- for (auto& NewSlotEffect : pSlot->pNewSlotEffect)
- {
- if (NewSlotEffect == nullptr)
- continue;
- const auto& vecImage = NewSlotEffect->GetImageVector();
- if (vecImage.empty())
- continue;
- for (CGraphicExpandedImageInstance* SlotImage : vecImage)
- {
- if (SlotImage == nullptr || SlotImage->IsEmpty())
- continue;
- SlotImage->SetDiffuseColor(color.r, color.g, color.b, color.a);
- }
- }
- }
- void CSlotWindow::ActivateNewSlot(const DWORD dwSlotIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwSlotIndex, &pSlot))
- return;
- for (size_t i = 0; i < pSlot->pNewSlotEffect.size(); i++)
- {
- auto& NewSlotEffect = pSlot->pNewSlotEffect.at(i);
- if (NewSlotEffect == nullptr)
- {
- char buf[128];
- NewSlotEffect = std::make_shared< CAniImageBox >(nullptr);
- for (BYTE j = 0; j < 13; j++)
- {
- if (i == 0)
- snprintf(buf, sizeof(buf), "d:/ymir work/ui/public/slotactiveeffect/%02d.sub", j);
- else
- snprintf(buf, sizeof(buf), "d:/ymir work/ui/public/slotactiveeffect/slot%d/%02d.sub", (i + 1), j);
- NewSlotEffect->AppendImage(buf);
- NewSlotEffect->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
- }
- }
- if (i == (pSlot->byyPlacedItemSize - 1))
- NewSlotEffect->Show();
- else
- NewSlotEffect->Hide();
- }
- }
- void CSlotWindow::DeactivateNewSlot(const DWORD dwSlotIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwSlotIndex, &pSlot))
- return;
- for (const auto& NewSlotEffect : pSlot->pNewSlotEffect)
- if (NewSlotEffect)
- NewSlotEffect->Hide();
- /*Clear*/
- SetNewSlotDiffuseColor(dwSlotIndex, ESlotColor::COLOR_TYPE_MAX);
- SetNewSlotFlashEffect(dwSlotIndex, false);
- }
- void CSlotWindow::SetNewSlotFlashEffect(const DWORD dwSlotIndex, const bool bActive)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwSlotIndex, &pSlot))
- return;
- pSlot->bFlashEffect = bActive;
- }
- #endif
- void CSlotWindow::ActivateSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- pSlot->bActive = TRUE;
- if (!m_pSlotActiveEffect)
- {
- __CreateSlotEnableEffect();
- }
- }
- void CSlotWindow::DeactivateSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- pSlot->bActive = FALSE;
- }
- void CSlotWindow::ClearSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- ClearSlot(pSlot);
- }
- void CSlotWindow::ClearSlot(TSlot* pSlot)
- {
- pSlot->bActive = FALSE;
- pSlot->byxPlacedItemSize = 1;
- pSlot->byyPlacedItemSize = 1;
- pSlot->isItem = FALSE;
- pSlot->dwState = 0;
- pSlot->fCoolTime = 0.0f;
- pSlot->fStartCoolTime = 0.0f;
- pSlot->dwCenterSlotNumber = 0xffffffff;
- pSlot->dwItemIndex = 0;
- pSlot->bRenderBaseSlotImage = true;
- if (pSlot->pInstance)
- {
- CGraphicImageInstance::Delete(pSlot->pInstance);
- pSlot->pInstance = NULL;
- }
- if (pSlot->pCoverButton)
- {
- pSlot->pCoverButton->Hide();
- }
- if (pSlot->pSlotButton)
- {
- pSlot->pSlotButton->Hide();
- }
- if (pSlot->pSignImage)
- {
- pSlot->pSignImage->Hide();
- }
- #if defined(__BL_ENABLE_PICKUP_ITEM_EFFECT__)
- for (const auto& NewSlotEffect : pSlot->pNewSlotEffect)
- {
- if (NewSlotEffect)
- NewSlotEffect->Hide();
- }
- pSlot->bFlashEffect = false;
- #endif
- if (pSlot->pFinishCoolTimeEffect)
- {
- pSlot->pFinishCoolTimeEffect->Hide();
- }
- }
- void CSlotWindow::ClearAllSlot()
- {
- Destroy();
- }
- void CSlotWindow::RefreshSlot()
- {
- OnRefreshSlot();
- // NOTE : Refresh µÉ¶§ ToolTip µµ °»˝Ĺ ÇŐ´Ď´Ů - [levites]
- if (IsRendering())
- {
- TSlot* pSlot;
- if (GetPickedSlotPointer(&pSlot))
- {
- OnOverOutItem();
- OnOverInItem(pSlot->dwSlotNumber);
- }
- }
- }
- void CSlotWindow::OnRefreshSlot()
- {
- }
- DWORD CSlotWindow::GetSlotCount()
- {
- return m_SlotList.size();
- }
- void CSlotWindow::LockSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- pSlot->dwState |= SLOT_STATE_LOCK;
- }
- void CSlotWindow::UnlockSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- pSlot->dwState ^= SLOT_STATE_LOCK;
- }
- void CSlotWindow::SetCantUseSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- pSlot->dwState |= SLOT_STATE_CANT_USE;
- }
- void CSlotWindow::SetUseSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- pSlot->dwState ^= SLOT_STATE_CANT_USE;
- }
- void CSlotWindow::EnableSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- REMOVE_BIT(pSlot->dwState, SLOT_STATE_DISABLE);
- //pSlot->dwState |= SLOT_STATE_DISABLE;
- }
- void CSlotWindow::DisableSlot(DWORD dwIndex)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwIndex, &pSlot))
- return;
- SET_BIT(pSlot->dwState, SLOT_STATE_DISABLE);
- //pSlot->dwState ^= SLOT_STATE_DISABLE;
- }
- // Select
- void CSlotWindow::SelectSlot(DWORD dwSelectingIndex)
- {
- std::list<DWORD>::iterator itor = m_dwSelectedSlotIndexList.begin();
- for (; itor != m_dwSelectedSlotIndexList.end();)
- {
- if (dwSelectingIndex == *itor)
- {
- itor = m_dwSelectedSlotIndexList.erase(itor);
- return;
- }
- else
- {
- ++itor;
- }
- }
- TSlot* pSlot;
- if (GetSlotPointer(dwSelectingIndex, &pSlot))
- {
- if (!pSlot->isItem)
- return;
- m_dwSelectedSlotIndexList.push_back(dwSelectingIndex);
- }
- }
- BOOL CSlotWindow::isSelectedSlot(DWORD dwIndex)
- {
- std::list<DWORD>::iterator itor = m_dwSelectedSlotIndexList.begin();
- for (; itor != m_dwSelectedSlotIndexList.end(); ++itor)
- {
- if (dwIndex == *itor)
- return TRUE;
- }
- return FALSE;
- }
- void CSlotWindow::ClearSelected()
- {
- m_dwSelectedSlotIndexList.clear();
- }
- DWORD CSlotWindow::GetSelectedSlotCount()
- {
- return m_dwSelectedSlotIndexList.size();
- }
- DWORD CSlotWindow::GetSelectedSlotNumber(DWORD dwIndex)
- {
- if (dwIndex >= m_dwSelectedSlotIndexList.size())
- return DWORD(-1);
- DWORD dwCount = 0;
- std::list<DWORD>::iterator itor = m_dwSelectedSlotIndexList.begin();
- for (; itor != m_dwSelectedSlotIndexList.end(); ++itor)
- {
- if (dwIndex == dwCount)
- break;
- ++dwCount;
- }
- return *itor;
- }
- void CSlotWindow::ShowSlotButton(DWORD dwSlotNumber)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwSlotNumber, &pSlot))
- return;
- if (pSlot->pSlotButton)
- {
- pSlot->pSlotButton->Show();
- }
- }
- void CSlotWindow::HideAllSlotButton()
- {
- for (TSlotListIterator itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- if (rSlot.pSlotButton)
- {
- rSlot.pSlotButton->Hide();
- }
- }
- }
- void CSlotWindow::ShowRequirementSign(DWORD dwSlotNumber)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwSlotNumber, &pSlot))
- return;
- if (!pSlot->pSignImage)
- return;
- pSlot->pSignImage->Show();
- }
- void CSlotWindow::HideRequirementSign(DWORD dwSlotNumber)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwSlotNumber, &pSlot))
- return;
- if (!pSlot->pSignImage)
- return;
- pSlot->pSignImage->Hide();
- }
- // Event
- BOOL CSlotWindow::OnMouseLeftButtonDown()
- {
- TSlot* pSlot;
- if (!GetPickedSlotPointer(&pSlot))
- {
- UI::CWindowManager::Instance().DeattachIcon();
- return TRUE;
- }
- if (pSlot->isItem && !(pSlot->dwState & SLOT_STATE_LOCK))
- {
- OnSelectItemSlot(pSlot->dwSlotNumber);
- }
- else
- {
- OnSelectEmptySlot(pSlot->dwSlotNumber);
- }
- return TRUE;
- }
- BOOL CSlotWindow::OnMouseLeftButtonUp()
- {
- if (UI::CWindowManager::Instance().IsAttaching())
- if (UI::CWindowManager::Instance().IsDragging())
- if (IsIn())
- {
- UI::CWindow* pWin = UI::CWindowManager::Instance().GetPointWindow();
- if (pWin)
- if (pWin->IsType(UI::CSlotWindow::Type()))
- {
- UI::CSlotWindow* pSlotWin = (UI::CSlotWindow*)pWin;
- TSlot* pSlot;
- if (!pSlotWin->GetPickedSlotPointer(&pSlot))
- {
- UI::CWindowManager::Instance().DeattachIcon();
- return TRUE;
- }
- if (pSlot->isItem)
- pSlotWin->OnSelectItemSlot(pSlot->dwSlotNumber);
- else
- pSlotWin->OnSelectEmptySlot(pSlot->dwSlotNumber);
- return TRUE;
- }
- return FALSE;
- }
- return FALSE;
- }
- BOOL CSlotWindow::OnMouseRightButtonDown()
- {
- TSlot* pSlot;
- if (!GetPickedSlotPointer(&pSlot))
- return TRUE;
- if (pSlot->isItem)
- {
- OnUnselectItemSlot(pSlot->dwSlotNumber);
- }
- else
- {
- OnUnselectEmptySlot(pSlot->dwSlotNumber);
- }
- return TRUE;
- }
- BOOL CSlotWindow::OnMouseLeftButtonDoubleClick()
- {
- OnUseSlot();
- return TRUE;
- }
- void CSlotWindow::OnMouseOverOut()
- {
- OnOverOutItem();
- }
- void CSlotWindow::OnMouseOver()
- {
- // FIXME : Ŕ©µµżě¸¦ µĺ·ˇ±ë ÇĎ´Â µµÁßżˇ SetTopŔĚ µÇľîąö¸®¸é Capture°ˇ Ç®ľîÁ® ąö¸°´Ů. ±×°ÍŔÇ ąćÁö ÄÚµĺ.
- // Á» ´ő ±Ůş»ŔűŔÎ ÇŘ°áĂĄŔ» ĂŁľĆľß ÇŇ µí - [levites]
- // if (UI::CWindowManager::Instance().IsCapture())
- // if (!UI::CWindowManager::Instance().IsAttaching())
- // return;
- CWindow* pPointWindow = UI::CWindowManager::Instance().GetPointWindow();
- if (this == pPointWindow)
- {
- TSlot* pSlot;
- if (GetPickedSlotPointer(&pSlot))
- {
- if (OnOverInItem(pSlot->dwSlotNumber))
- return;
- }
- }
- OnOverOutItem();
- }
- void CSlotWindow::OnSelectEmptySlot(int iSlotNumber)
- {
- PyCallClassMemberFunc(m_poHandler, "OnSelectEmptySlot", Py_BuildValue("(i)", iSlotNumber));
- }
- void CSlotWindow::OnSelectItemSlot(int iSlotNumber)
- {
- // OnOverOutItem();
- PyCallClassMemberFunc(m_poHandler, "OnSelectItemSlot", Py_BuildValue("(i)", iSlotNumber));
- if (UI::CWindowManager::Instance().IsAttaching())
- OnOverOutItem();
- }
- void CSlotWindow::OnUnselectEmptySlot(int iSlotNumber)
- {
- PyCallClassMemberFunc(m_poHandler, "OnUnselectEmptySlot", Py_BuildValue("(i)", iSlotNumber));
- }
- void CSlotWindow::OnUnselectItemSlot(int iSlotNumber)
- {
- PyCallClassMemberFunc(m_poHandler, "OnUnselectItemSlot", Py_BuildValue("(i)", iSlotNumber));
- }
- void CSlotWindow::OnUseSlot()
- {
- TSlot* pSlot;
- if (GetPickedSlotPointer(&pSlot))
- if (pSlot->isItem)
- {
- PyCallClassMemberFunc(m_poHandler, "OnUseSlot", Py_BuildValue("(i)", pSlot->dwSlotNumber));
- }
- }
- BOOL CSlotWindow::OnOverInItem(DWORD dwSlotNumber)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(dwSlotNumber, &pSlot))
- return FALSE;
- if (!pSlot->isItem)
- return FALSE;
- if (pSlot->dwSlotNumber == m_dwToolTipSlotNumber)
- return TRUE;
- m_dwToolTipSlotNumber = dwSlotNumber;
- PyCallClassMemberFunc(m_poHandler, "OnOverInItem", Py_BuildValue("(i)", dwSlotNumber));
- return TRUE;
- }
- void CSlotWindow::OnOverOutItem()
- {
- if (SLOT_NUMBER_NONE == m_dwToolTipSlotNumber)
- return;
- m_dwToolTipSlotNumber = SLOT_NUMBER_NONE;
- PyCallClassMemberFunc(m_poHandler, "OnOverOutItem", Py_BuildValue("()"));
- }
- void CSlotWindow::OnPressedSlotButton(DWORD dwType, DWORD dwSlotNumber, BOOL isLeft)
- {
- if (CSlotButton::SLOT_BUTTON_TYPE_PLUS == dwType)
- {
- PyCallClassMemberFunc(m_poHandler, "OnPressedSlotButton", Py_BuildValue("(i)", dwSlotNumber));
- }
- else if (CSlotButton::SLOT_BUTTON_TYPE_COVER == dwType)
- {
- if (isLeft)
- {
- OnMouseLeftButtonDown();
- }
- }
- }
- void CSlotWindow::OnUpdate()
- {
- for (std::deque<DWORD>::iterator itor = m_ReserveDestroyEffectDeque.begin(); itor != m_ReserveDestroyEffectDeque.end(); ++itor)
- {
- DWORD dwSlotIndex = *itor;
- TSlot* pSlot;
- if (!GetSlotPointer(dwSlotIndex, &pSlot))
- continue;
- __DestroyFinishCoolTimeEffect(pSlot);
- }
- m_ReserveDestroyEffectDeque.clear();
- if (m_pSlotActiveEffect)
- m_pSlotActiveEffect->Update();
- }
- void CSlotWindow::OnRender()
- {
- RenderSlotBaseImage();
- switch (m_dwSlotStyle)
- {
- case SLOT_STYLE_PICK_UP:
- OnRenderPickingSlot();
- break;
- case SLOT_STYLE_SELECT:
- OnRenderSelectedSlot();
- break;
- }
- std::for_each(m_pChildList.begin(), m_pChildList.end(), std::void_mem_fun(&CWindow::OnRender));
- TSlotListIterator itor;
- //
- // ¸đµç ˝˝·Ô »óŔÚ ±×¸®±â
- //////////////////////////////////////////////////////////////////////////
- #ifdef __RENDER_SLOT_AREA__
- CPythonGraphic::Instance().SetDiffuseColor(0.5f, 0.5f, 0.5f);
- for (itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- CPythonGraphic::Instance().RenderBox2d(m_rect.left + rSlot.ixPosition,
- m_rect.top + rSlot.iyPosition,
- m_rect.left + rSlot.ixPosition + rSlot.ixCellSize,
- m_rect.top + rSlot.iyPosition + rSlot.iyCellSize);
- }
- CPythonGraphic::Instance().SetDiffuseColor(1.0f, 0.0f, 0.0f, 1.0f);
- CPythonGraphic::Instance().RenderBox2d(m_rect.left, m_rect.top, m_rect.right, m_rect.bottom);
- #endif
- //////////////////////////////////////////////////////////////////////////
- for (itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- if (rSlot.pSlotButton)
- {
- rSlot.pSlotButton->SetPosition(rSlot.ixPosition + 1, rSlot.iyPosition + 19);
- }
- if (rSlot.pSignImage)
- {
- rSlot.pSignImage->SetPosition(rSlot.ixPosition - 7, rSlot.iyPosition + 10);
- }
- #if defined(__BL_ENABLE_PICKUP_ITEM_EFFECT__)
- static bool __bGrowing = false;
- static float __fAlpha = 1.0f;
- __fAlpha += 0.0003f * (__bGrowing ? 1.0f : -1.0f);
- if (__fAlpha >= 1.0f || __fAlpha <= 0.0f)
- __bGrowing = !__bGrowing;
- #endif
- if (rSlot.pInstance)
- {
- rSlot.pInstance->SetPosition(m_rect.left + rSlot.ixPosition, m_rect.top + rSlot.iyPosition);
- #if defined(__BL_ENABLE_PICKUP_ITEM_EFFECT__)
- rSlot.pInstance->GetDiffuseColor().a = rSlot.bFlashEffect ? __fAlpha : 1.0f;
- #endif
- rSlot.pInstance->Render();
- }
- if (!rSlot.isItem)
- {
- if (IS_SET(rSlot.dwState, SLOT_STATE_ALWAYS_RENDER_COVER))
- {
- rSlot.pCoverButton->Show();
- rSlot.pCoverButton->SetPosition(rSlot.ixPosition, rSlot.iyPosition);
- rSlot.pCoverButton->RenderButton();
- }
- continue;
- }
- if (IS_SET(rSlot.dwState, SLOT_STATE_DISABLE))
- {
- CPythonGraphic::Instance().SetDiffuseColor(1.0f, 0.0f, 0.0f, 0.3f);
- CPythonGraphic::Instance().RenderBar2d(m_rect.left + rSlot.ixPosition,
- m_rect.top + rSlot.iyPosition,
- m_rect.left + rSlot.ixPosition + rSlot.ixCellSize,
- m_rect.top + rSlot.iyPosition + rSlot.iyCellSize);
- }
- if (rSlot.fCoolTime != 0.0f)
- {
- float fcurTime = CTimer::Instance().GetCurrentSecond();
- float fPercentage = (fcurTime - rSlot.fStartCoolTime) / rSlot.fCoolTime;
- CPythonGraphic::Instance().RenderCoolTimeBox(m_rect.left + rSlot.ixPosition + 16.0f, m_rect.top + rSlot.iyPosition + 16.0f, 16.0f, fPercentage);
- if (fcurTime - rSlot.fStartCoolTime >= rSlot.fCoolTime)
- {
- // ÄđŸŔÓŔĚ łˇłÁö 1ĂĘ ŔĚł»¶ó¸é..
- if ((fcurTime - rSlot.fStartCoolTime) - rSlot.fCoolTime < 1.0f)
- __CreateFinishCoolTimeEffect(&rSlot);
- rSlot.fCoolTime = 0.0f;
- rSlot.fStartCoolTime = 0.0f;
- }
- }
- if (rSlot.pCoverButton)
- {
- rSlot.pCoverButton->SetPosition(rSlot.ixPosition, rSlot.iyPosition);
- rSlot.pCoverButton->RenderButton();
- }
- if (rSlot.pNumberLine)
- {
- int ix = rSlot.byxPlacedItemSize * ITEM_WIDTH + rSlot.ixPosition - 4;
- int iy = rSlot.iyPosition + rSlot.byyPlacedItemSize * ITEM_HEIGHT - 12 + 2;
- #if defined(__BL_ENABLE_PICKUP_ITEM_EFFECT__)
- for (const auto& NumberImage : rSlot.pNumberLine->GetImageVector())
- {
- if (NumberImage)
- NumberImage->GetDiffuseColor().a = rSlot.bFlashEffect ? __fAlpha : 1.0f;
- }
- #endif
- rSlot.pNumberLine->SetPosition(ix, iy);
- rSlot.pNumberLine->Update();
- rSlot.pNumberLine->Render();
- }
- if (rSlot.pFinishCoolTimeEffect)
- {
- rSlot.pFinishCoolTimeEffect->SetPosition(rSlot.ixPosition, rSlot.iyPosition);
- rSlot.pFinishCoolTimeEffect->Update();
- rSlot.pFinishCoolTimeEffect->Render();
- }
- if (rSlot.bActive)
- if (m_pSlotActiveEffect)
- {
- int ix = m_rect.left + rSlot.ixPosition;
- int iy = m_rect.top + rSlot.iyPosition;
- m_pSlotActiveEffect->SetPosition(ix, iy);
- m_pSlotActiveEffect->Render();
- }
- }
- #if defined(__BL_ENABLE_PICKUP_ITEM_EFFECT__)
- for (const auto& NewSlotEffect : rSlot.pNewSlotEffect)
- {
- if (NewSlotEffect == nullptr || NewSlotEffect->IsShow() == false)
- continue;
- NewSlotEffect->SetPosition(m_rect.left + rSlot.ixPosition, m_rect.top + rSlot.iyPosition);
- NewSlotEffect->Update();
- NewSlotEffect->Render();
- }
- #endif
- RenderLockedSlot();
- }
- void CSlotWindow::RenderSlotBaseImage()
- {
- if (!m_pBaseImageInstance)
- return;
- for (TSlotListIterator itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- if (!rSlot.bRenderBaseSlotImage)
- continue;
- m_pBaseImageInstance->SetPosition(m_rect.left + rSlot.ixPosition, m_rect.top + rSlot.iyPosition);
- m_pBaseImageInstance->Render();
- }
- }
- void CSlotWindow::OnRenderPickingSlot()
- {
- if (!UI::CWindowManager::Instance().IsAttaching())
- return;
- TSlot* pSlot;
- if (!GetSelectedSlotPointer(&pSlot))
- return;
- CPythonGraphic::Instance().SetDiffuseColor(1.0f, 1.0f, 1.0f, 0.5f);
- CPythonGraphic::Instance().RenderBar2d(m_rect.left + pSlot->ixPosition,
- m_rect.top + pSlot->iyPosition,
- m_rect.left + pSlot->ixPosition + pSlot->ixCellSize,
- m_rect.top + pSlot->iyPosition + pSlot->iyCellSize);
- }
- void CSlotWindow::OnRenderSelectedSlot()
- {
- std::list<DWORD>::iterator itor = m_dwSelectedSlotIndexList.begin();
- for (; itor != m_dwSelectedSlotIndexList.end(); ++itor)
- {
- TSlot* pSlot;
- if (!GetSlotPointer(*itor, &pSlot))
- continue;
- CPythonGraphic::Instance().SetDiffuseColor(1.0f, 1.0f, 1.0f, 0.5f);
- CPythonGraphic::Instance().RenderBar2d(m_rect.left + pSlot->ixPosition,
- m_rect.top + pSlot->iyPosition,
- m_rect.left + pSlot->ixPosition + pSlot->ixCellSize,
- m_rect.top + pSlot->iyPosition + pSlot->iyCellSize);
- }
- }
- void CSlotWindow::RenderLockedSlot()
- {
- CPythonGraphic::Instance().SetDiffuseColor(0.0f, 0.0f, 0.0f, 0.5f);
- for (TSlotListIterator itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- if (!rSlot.isItem)
- continue;
- if (rSlot.dwState & SLOT_STATE_LOCK)
- {
- CPythonGraphic::Instance().RenderBar2d(m_rect.left + rSlot.ixPosition,
- m_rect.top + rSlot.iyPosition,
- m_rect.left + rSlot.ixPosition + rSlot.ixCellSize,
- m_rect.top + rSlot.iyPosition + rSlot.iyCellSize);
- }
- }
- }
- // Check Slot
- BOOL CSlotWindow::GetSlotPointer(DWORD dwIndex, TSlot** ppSlot)
- {
- for (TSlotListIterator itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- if (dwIndex == rSlot.dwSlotNumber)
- {
- *ppSlot = &rSlot;
- return TRUE;
- }
- }
- return FALSE;
- }
- BOOL CSlotWindow::GetSelectedSlotPointer(TSlot** ppSlot)
- {
- long lx, ly;
- GetMouseLocalPosition(lx, ly);
- for (TSlotListIterator itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- if (lx >= rSlot.ixPosition)
- if (ly >= rSlot.iyPosition)
- if (lx <= rSlot.ixPosition + rSlot.ixCellSize)
- if (ly <= rSlot.iyPosition + rSlot.iyCellSize)
- {
- *ppSlot = &rSlot;
- return TRUE;
- }
- }
- return FALSE;
- }
- BOOL CSlotWindow::GetPickedSlotPointer(TSlot** ppSlot)
- {
- long lx, ly;
- CWindowManager::Instance().GetMousePosition(lx, ly);
- int ixLocal = lx - m_rect.left;
- int iyLocal = ly - m_rect.top;
- // NOTE : żŢÂĘ ¸ÇŔ§ »ó´Ü ÇŃ°÷ŔĚ ±âÁŘ Ŕ̶ó´Â ÁˇŔ» ŔĚżëÇŘ żŢÂĘ Ŕ§żˇĽşÎĹÍ żŔ¸ĄÂĘ ľĆ·ˇ·Î
- // Â÷·Ę·Î °Ë»öÇŘ °¨Ŕ¸·Î˝á µ¤Çô ŔÖ´Â SlotŔş ŔÚµż ą«˝Ă µČ´Ů´Â ĆŻĽşŔ» ŔĚżëÇŃ´Ů. - [levites]
- for (TSlotListIterator itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- int ixCellSize = rSlot.ixCellSize;
- int iyCellSize = rSlot.iyCellSize;
- // NOTE : ItemŔĚ Hide µÇľîŔÖŔ» °ćżě¸¦ Ŕ§ÇŃ..
- if (rSlot.isItem)
- {
- ixCellSize = max(rSlot.ixCellSize, int(rSlot.byxPlacedItemSize * ITEM_WIDTH));
- iyCellSize = max(rSlot.iyCellSize, int(rSlot.byyPlacedItemSize * ITEM_HEIGHT));
- }
- if (ixLocal >= rSlot.ixPosition)
- if (iyLocal >= rSlot.iyPosition)
- if (ixLocal <= rSlot.ixPosition + ixCellSize)
- if (iyLocal <= rSlot.iyPosition + iyCellSize)
- {
- *ppSlot = &rSlot;
- return TRUE;
- }
- }
- return FALSE;
- }
- void CSlotWindow::SetUseMode(BOOL bFlag)
- {
- m_isUseMode = bFlag;
- }
- void CSlotWindow::SetUsableItem(BOOL bFlag)
- {
- m_isUsableItem = bFlag;
- }
- void CSlotWindow::ReserveDestroyCoolTimeFinishEffect(DWORD dwSlotIndex)
- {
- m_ReserveDestroyEffectDeque.push_back(dwSlotIndex);
- }
- DWORD CSlotWindow::Type()
- {
- static int s_Type = GetCRC32("CSlotWindow", strlen("CSlotWindow"));
- return s_Type;
- }
- BOOL CSlotWindow::OnIsType(DWORD dwType)
- {
- if (CSlotWindow::Type() == dwType)
- return TRUE;
- return CWindow::OnIsType(dwType);
- }
- void CSlotWindow::__CreateToggleSlotImage()
- {
- __DestroyToggleSlotImage();
- m_pToggleSlotImage = new CImageBox(NULL);
- m_pToggleSlotImage->LoadImage("d:/ymir work/ui/public/slot_toggle.sub");
- m_pToggleSlotImage->Show();
- }
- void CSlotWindow::__CreateSlotEnableEffect()
- {
- __DestroySlotEnableEffect();
- m_pSlotActiveEffect = new CAniImageBox(NULL);
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/00.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/01.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/02.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/03.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/04.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/05.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/06.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/07.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/08.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/09.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/10.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/11.sub");
- m_pSlotActiveEffect->AppendImage("d:/ymir work/ui/public/slotactiveeffect/12.sub");
- m_pSlotActiveEffect->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
- m_pSlotActiveEffect->Show();
- }
- void CSlotWindow::__CreateFinishCoolTimeEffect(TSlot* pSlot)
- {
- __DestroyFinishCoolTimeEffect(pSlot);
- CAniImageBox* pFinishCoolTimeEffect = new CCoolTimeFinishEffect(this, pSlot->dwSlotNumber);
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/00.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/01.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/02.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/03.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/04.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/05.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/06.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/07.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/08.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/09.sub");
- pFinishCoolTimeEffect->AppendImage("d:/ymir work/ui/public/slotfinishcooltimeeffect/10.sub");
- pFinishCoolTimeEffect->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
- pFinishCoolTimeEffect->ResetFrame();
- pFinishCoolTimeEffect->SetDelay(2);
- pFinishCoolTimeEffect->Show();
- pSlot->pFinishCoolTimeEffect = pFinishCoolTimeEffect;
- }
- void CSlotWindow::__CreateBaseImage(const char* c_szFileName, float fr, float fg, float fb, float fa)
- {
- __DestroyBaseImage();
- CGraphicImage* pImage = (CGraphicImage*)CResourceManager::Instance().GetResourcePointer(c_szFileName);
- m_pBaseImageInstance = CGraphicImageInstance::New();
- m_pBaseImageInstance->SetImagePointer(pImage);
- m_pBaseImageInstance->SetDiffuseColor(fr, fg, fb, fa);
- }
- void CSlotWindow::__DestroyToggleSlotImage()
- {
- if (m_pToggleSlotImage)
- {
- delete m_pToggleSlotImage;
- m_pToggleSlotImage = NULL;
- }
- }
- void CSlotWindow::__DestroySlotEnableEffect()
- {
- if (m_pSlotActiveEffect)
- {
- delete m_pSlotActiveEffect;
- m_pSlotActiveEffect = NULL;
- }
- }
- void CSlotWindow::__DestroyFinishCoolTimeEffect(TSlot* pSlot)
- {
- if (pSlot->pFinishCoolTimeEffect)
- {
- delete pSlot->pFinishCoolTimeEffect;
- pSlot->pFinishCoolTimeEffect = NULL;
- }
- }
- void CSlotWindow::__DestroyBaseImage()
- {
- if (m_pBaseImageInstance)
- {
- CGraphicImageInstance::Delete(m_pBaseImageInstance);
- m_pBaseImageInstance = NULL;
- }
- }
- void CSlotWindow::__Initialize()
- {
- m_dwSlotType = 0;
- m_dwSlotStyle = SLOT_STYLE_PICK_UP;
- m_dwToolTipSlotNumber = SLOT_NUMBER_NONE;
- m_isUseMode = FALSE;
- m_isUsableItem = FALSE;
- m_pToggleSlotImage = NULL;
- m_pSlotActiveEffect = NULL;
- m_pBaseImageInstance = NULL;
- }
- void CSlotWindow::Destroy()
- {
- for (TSlotListIterator itor = m_SlotList.begin(); itor != m_SlotList.end(); ++itor)
- {
- TSlot& rSlot = *itor;
- ClearSlot(&rSlot);
- if (rSlot.pNumberLine)
- {
- delete rSlot.pNumberLine;
- rSlot.pNumberLine = NULL;
- }
- if (rSlot.pCoverButton)
- {
- CWindowManager::Instance().DestroyWindow(rSlot.pCoverButton);
- }
- if (rSlot.pSlotButton)
- {
- CWindowManager::Instance().DestroyWindow(rSlot.pSlotButton);
- }
- if (rSlot.pSignImage)
- {
- CWindowManager::Instance().DestroyWindow(rSlot.pSignImage);
- }
- if (rSlot.pFinishCoolTimeEffect)
- {
- CWindowManager::Instance().DestroyWindow(rSlot.pFinishCoolTimeEffect);
- }
- }
- m_SlotList.clear();
- __DestroyToggleSlotImage();
- __DestroySlotEnableEffect();
- __DestroyBaseImage();
- __Initialize();
- }
- CSlotWindow::CSlotWindow(PyObject* ppyObject) : CWindow(ppyObject)
- {
- __Initialize();
- }
- CSlotWindow::~CSlotWindow()
- {
- Destroy();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement