//------------------------------------------------------------------------------ // SkillQueueManager.cpp // (C) 2005 Webzen Sunstudio //------------------------------------------------------------------------------ #include "SunClientPrecompiledHeader.h" #include "SkillQueueManager.h" #include "Input.h" #include "ResourceManager.h" #include "uiskillqueueman/uiskillqueueman.h" #include "SkillQueueDialog.h" #include "interfacemanager.h" #include "SkillInfoParser.h" //------------------------------------------------------------------------------ /** */ void SkillQueueManager::Init() { } //------------------------------------------------------------------------------ /** */ BOOL SkillQueueManager::ClearAll() { for(int i=0;iRemoveIcon(m_SkillArray[i].pImage); } m_SkillArray.Clear(); return TRUE; } //------------------------------------------------------------------------------ /** */ void SkillQueueManager::Release() { ClearAll(); } //------------------------------------------------------------------------------ /** */ void SkillQueueManager::RenderNode() { for(int i=0;iGetSkillRect(i); IconImage *pImage=node.pImage; pImage->RenderCoverImage(&rc,WzColor_RGBA(255,255,255,(int)(255*0.6f))); } } } //------------------------------------------------------------------------------ /** */ void SkillQueueManager::Update() { } //------------------------------------------------------------------------------ /** */ BOOL SkillQueueManager::PushBack(DWORD dwSkillId,BOOL bForceAttack) { if(IsErase(dwSkillId))//Ãë¼Ò { return FALSE; } else { if(GAMEOPTION->GetSkillQueueing()) { if(m_SkillArray.Size()GetItemSkillSlotImageResourceCode(dwSkillId); node.pImage = ICONMGR()->Add(dwIconID); node.dwIconID = dwIconID; m_SkillArray.PushBack(node); } } else { if(m_SkillArray.Size()<1) { SKILL_IMAGE_NODE node; node.dwSkillID=dwSkillId; node.bForceAttack=bForceAttack; DWORD dwIconID =ResourceManager::Instance()->GetItemSkillSlotImageResourceCode(dwSkillId); node.pImage = ICONMGR()->Add(dwIconID); node.dwIconID = dwIconID; m_SkillArray.PushBack(node); } } return TRUE; } return FALSE; } //------------------------------------------------------------------------------ /** */ DWORD SkillQueueManager::GetFrontSkillID() { assert(m_SkillArray.Size()); return m_SkillArray.Front().dwSkillID; } //------------------------------------------------------------------------------ /** */ BOOL SkillQueueManager::GetFrontForceAttack() { assert(m_SkillArray.Size()); return m_SkillArray.Front().bForceAttack; } BOOL SkillQueueManager::Pop() { if(m_SkillArray.Size()==0) return FALSE; ICONMGR()->RemoveIcon(m_SkillArray[0].pImage); m_SkillArray.Erase(0); return TRUE; } #ifdef _NA_004923_120618_SKILL_QUEUE_MOVE_CANCEL void SkillQueueManager::SkillQueueMoveCancle() { //À̵¿ ½Ã ½ºÅ³Å¥ ÇØÁ¦(Ȱ¼ºÈ­µÈ Áö¿ªÁöÁ¤½ºÅ³ Á¦¿Ü) if (m_SkillArray.Size() < 1) { return; } SKILL_IMAGE_NODE node = m_SkillArray[0]; m_SkillArray.Clear(); // ù¹øÂ° Å¥°¡ Áö¿ªÁöÁ¤ ½ºÅ³ÀÌ¸é ³²±è BASE_SKILLINFO *skill_info = SkillInfoParser::Instance()->GetSkillInfo((SLOTCODE)node.dwSkillID); if ((skill_info != NULL) && (skill_info->m_byTarget == SKILL_TARGET_AREA)) { m_SkillArray.PushBack(node); } } #endif //_NA_004923_120618_SKILL_QUEUE_MOVE_CANCEL