Пример #1
0
void  CInventory::AddAvailableItems(TIItemContainer& items_container, bool for_trade) const
{
	for(TIItemContainer::const_iterator it = m_ruck.begin(); m_ruck.end() != it; ++it) 
	{
		PIItem pIItem = *it;
		if(!for_trade || pIItem->CanTrade())
			items_container.push_back(pIItem);
	}

	if(m_bBeltUseful)
	{
		for(TIItemContainer::const_iterator it = m_belt.begin(); m_belt.end() != it; ++it) 
		{
			PIItem pIItem = *it;
			if(!for_trade || pIItem->CanTrade())
				items_container.push_back(pIItem);
		}
	}
	
	if(m_bSlotsUseful)
	{
		u16 I = FirstSlot();
		u16 E = LastSlot();
		for(;I<=E;++I)
		{
			PIItem item = ItemFromSlot(I);
			if(item && (!for_trade || item->CanTrade())  )
			{
				if(!SlotIsPersistent(I) || item->BaseSlot()==GRENADE_SLOT )
					items_container.push_back(item);
			}
		}
	}		
}
Пример #2
0
void  CInventory::AddAvailableItems(TIItemContainer& items_container, bool for_trade) const
{
    for(TIItemContainer::const_iterator it = m_ruck.begin(); m_ruck.end() != it; ++it)
    {
        PIItem pIItem = *it;
        if(!for_trade || pIItem->CanTrade())
            items_container.push_back(pIItem);
    }

    if(m_bBeltUseful)
    {
        for(TIItemContainer::const_iterator it = m_belt.begin(); m_belt.end() != it; ++it)
        {
            PIItem pIItem = *it;
            if(!for_trade || pIItem->CanTrade())
                items_container.push_back(pIItem);
        }
    }

    if(m_bSlotsUseful)
    {
        TISlotArr::const_iterator slot_it			= m_slots.begin();
        TISlotArr::const_iterator slot_it_e			= m_slots.end();
        for(; slot_it!=slot_it_e; ++slot_it)
        {
            const CInventorySlot& S = *slot_it;
            if(S.m_pIItem && (!for_trade || S.m_pIItem->CanTrade())  )
            {
                if(!S.m_bPersistent || S.m_pIItem->GetSlot()==GRENADE_SLOT )
                    items_container.push_back(S.m_pIItem);
            }
        }
    }
}
Пример #3
0
void CInventoryBox::AddAvailableItems(TIItemContainer& items_container) const
{
	xr_vector<u16>::const_iterator it = m_items.begin();
	xr_vector<u16>::const_iterator it_e = m_items.end();

	for(;it!=it_e;++it)
	{
		PIItem itm = smart_cast<PIItem>(Level().Objects.net_Find(*it));VERIFY(itm);
		items_container.push_back	(itm);
	}
}