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); } } } }
bool CUIActorMenu::CanSetItemToList(PIItem item, CUIDragDropListEx* l, u16& ret_slot) { u16 item_slot = item->BaseSlot(); if( GetSlotList(item_slot)==l ) { ret_slot = item_slot; return true; } if(item_slot==INV_SLOT_3 && l==m_pInventoryPistolList) { ret_slot = INV_SLOT_2; return true; } if(item_slot==INV_SLOT_2 && l==m_pInventoryAutomaticList) { ret_slot = INV_SLOT_3; return true; } return false; }
bool CInventory::IsSlotBlocked(PIItem const iitem) const { VERIFY(iitem); return IsSlotBlocked(iitem->BaseSlot()); }