本文整理汇总了C++中CItem::CreateItemIcon方法的典型用法代码示例。如果您正苦于以下问题:C++ CItem::CreateItemIcon方法的具体用法?C++ CItem::CreateItemIcon怎么用?C++ CItem::CreateItemIcon使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CItem
的用法示例。
在下文中一共展示了CItem::CreateItemIcon方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetHotIcon
CIcon* CHotIconSlot::GetHotIcon( int iSlot )
{
CIcon* pIcon = NULL;
CIconQuick* pQuickIcon = NULL;
switch( g_pAVATAR->m_HotICONS.m_IconLIST[ iSlot ].m_cType )
{
case 0:
break;
case INV_ICON:
{
CItemSlot* pItemSlot = g_pAVATAR->GetItemSlot();
CItem* pItem = pItemSlot->GetItem( g_pAVATAR->m_HotICONS.m_IconLIST[ iSlot ].m_nSlotNo );
if( pItem )
pQuickIcon = new CIconQuick( pItem->CreateItemIcon() );
}
break;
case SKILL_ICON:
{
int iSkillSlot = g_pAVATAR->m_HotICONS.m_IconLIST[ iSlot ].m_nSlotNo;
pQuickIcon = new CIconQuick( new CIconSkill( iSkillSlot ) );
}
break;
case DIALOG_ICON:
{
int iDialogType = g_pAVATAR->m_HotICONS.m_IconLIST[ iSlot ].m_nSlotNo;
if( iDialogType > 0 && iDialogType < DLG_TYPE_MAX )
{
if( CIconDialog* p = CIconDialog::CreateIcon( iDialogType , false ) )
pQuickIcon = new CIconQuick( p );
}
break;
}
case CLANSKILL_ICON:
{
int iSkillSlot = g_pAVATAR->m_HotICONS.m_IconLIST[ iSlot ].m_nSlotNo;
pQuickIcon = new CIconQuick( new CIconSkillClan( iSkillSlot ) );
break;
}
default:
assert( 0 && "GetHotIcon gets invalid icon type" );
break;
}
if( pQuickIcon )
pQuickIcon->SetQuickBarSlotIndex( iSlot );
return pQuickIcon;
}
示例2: Update
void CSeparateDlg::Update( CObservable* pObservable, CTObject* pObj )
{
assert( pObservable );
assert( pObj && strcmp( pObj->toString() ,"Separate" ) == 0 );
if( pObj == NULL || strcmp( pObj->toString() ,"Separate" ) ) return;
CTEventSeparate* pEvent = (CTEventSeparate*)pObj;
switch( pEvent->GetID() )
{
case CTEventSeparate::EID_REMOVE_MATERIAL_ITEM:
ClientLog (LOG_NORMAL, "CSeperateDlg::Update. Event 2: EID_REMOVE_MATERIAL_ITEM");
m_MaterialItemSlot.DetachIcon();
break;
case CTEventSeparate::EID_SET_MATERIAL_ITEM:
{
CItem* pItem = pEvent->GetItem();
ClientLog (LOG_NORMAL, "CSeperateDlg::Update. Event 1: EID_SET_MATERIAL_ITEM Item Type %i Item ID %i", pItem->GetType(), pItem->GetItemNo());
assert( pItem );
if( pItem )
m_MaterialItemSlot.AttachIcon( pItem->CreateItemIcon() );
break;
}
case CTEventSeparate::EID_REMOVE_OUTPUT_ITEM:
{
ClientLog (LOG_NORMAL, "CSeperateDlg::Update. Event 4: EID_REMOVE_OUTPUT_ITEM");
int iIndex = pEvent->GetIndex();
//assert( iIndex >= 0 && iIndex < (int)m_OutputItemSlots.size() );
if( iIndex >= 0 && iIndex < (int)m_OutputItemSlots.size() )
m_OutputItemSlots[iIndex].DetachIcon();
break;
}
case CTEventSeparate::EID_SET_OUTPUT_ITEM:
{
ClientLog (LOG_NORMAL, "CSeperateDlg::Update. Event 3: EID_SET_OUTPUT_ITEM");
int e = m_OutputItemSlots.size();
int iIndex = pEvent->GetIndex();
//assert( iIndex >= 0 && iIndex < (int)m_OutputItemSlots.size() );
if( iIndex >= 0 && iIndex < (int)m_OutputItemSlots.size() )
{
CItem* pItem = pEvent->GetItem();
ClientLog (LOG_NORMAL, "CSeperateDlg::Update. Event 3: EID_SET_OUTPUT_ITEM Item Type %i Item ID %i", pItem->GetType(), pItem->GetItemNo());
//assert( pItem && m_OutputItemSlots[iIndex].GetIcon() == NULL );
if( pItem && m_OutputItemSlots[iIndex].GetIcon() == NULL )
{
m_OutputItemSlots[iIndex].AttachIcon( pItem->CreateItemIcon() );
}
else if( pItem && m_OutputItemSlots[iIndex].GetIcon() != NULL)
{
m_OutputItemSlots[iIndex].DetachIcon();
m_OutputItemSlots[iIndex].AttachIcon( pItem->CreateItemIcon() );
}
else
{
assert(" pItem && m_OutputItemSlots[iIndex].GetIcon() == NULL ?? "); //PY: Logically speaking, this can never happen unless it is simultaineously neither NULL or Not NULL. Duhh!!
}
}
break;
}
case CTEventSeparate::EID_RECEIVE_RESULT:
{
ClientLog (LOG_NORMAL, "CSeperateDlg::Update. Event 5: EID_RECEIVE_RESULT");
ChangeState( STATE_RESULT );
break;
}
default:
{
ClientLog (LOG_NORMAL, "CSeperateDlg::Update. Invalid Seperate Event");
assert( 0 && "Invalid Separate Event Type" );
}
break;
}
}
示例3: Exec
bool CTCmdDragItemFromInvenInItemDlg::Exec( CTObject* pObj )
{
if( pObj == NULL )
return true;
if( strcmp( pObj->toString(), "CIcon" ) )
return true;
CTDialog* pDlg = g_itMGR.FindDlg( DLG_TYPE_ITEM );
if( pDlg == NULL )
return true;
CIconItem* pItemIcon = (CIconItem*)pObj;
CItemDlg* pItemDlg = (CItemDlg*)pDlg;
POINT ptMouse;
CGame::GetInstance().Get_MousePos( ptMouse );
if( pItemDlg->IsInsideEquip( ptMouse ) )
{
int iItemType = pItemIcon->GetItem().GetTYPE();
/// @brief 보석 아이템이라면..
if( iItemType == ITEM_TYPE_GEM )
{
int iEquipSlot = pItemDlg->GetEquipSlot( ptMouse );
if( iEquipSlot < 0 )
return false;
tagITEM& Item = g_pAVATAR->m_Inventory.m_ItemEQUIP[ iEquipSlot ];
/// 소켓이 있다면..
if( Item.HasSocket() )
{
g_pNet->Send_cli_CRAFT_GEMMING_REQ( iEquipSlot, pItemIcon->GetIndex() );
}
return true;
}
/// 사용아이템은 드래그로 기본 동작( 장착 )을 처리하지 않는다.
if( pItemIcon->GetItem().GetTYPE() != ITEM_TYPE_USE )
pItemIcon->ExecuteCommand();
}
else if( CSlot* pTargetSlot = pItemDlg->GetInvenSlot( ptMouse) )
{
if( CIcon* pTargetIcon = pTargetSlot->GetIcon() )
{
CItem* pTempItem = ((CIconItem*)pTargetIcon)->GetCItem();
assert( pTempItem );
pTargetSlot->DetachIcon();
CSlot* pSourceSlot = pItemIcon->GetSlot();
assert( pSourceSlot );
CItem* pSourceItem = pItemIcon->GetCItem();
assert( pSourceItem );
pSourceSlot->DetachIcon();
pTargetSlot->AttachIcon( pSourceItem->CreateItemIcon() );
pSourceSlot->AttachIcon( pTempItem->CreateItemIcon() );
}
else
{
CSlot* pSourceSlot = pItemIcon->GetSlot();
CItem* pSourceItem = pItemIcon->GetCItem();
pSourceSlot->DetachIcon();
pTargetSlot->AttachIcon( pSourceItem->CreateItemIcon() );
}
}
return true;
}