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); } } } }
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); } } } }
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); } }