void CUIDragDropReferenceList::ReloadReferences(CInventoryOwner* pActor) { if (!pActor) return; if(m_drag_item) DestroyDragItem(); m_container->ClearAll(true); m_selected_item = NULL; for(u8 i=0; i<m_container->CellsCapacity().x; i++) { CUIStatic* ref = m_references[i]; LPCSTR item_name = ACTOR_DEFS::g_quick_use_slots[i]; if(item_name && xr_strlen(item_name)) { PIItem itm = pActor->inventory().GetAny(item_name); if(itm) { SetItem(create_cell_item(itm), Ivector2().set(i, 0)); } else { LoadItemTexture(item_name, Ivector2().set(i, 0)); ref->SetTextureColor(color_rgba(255,255,255,100)); } } else { ref->SetTextureColor(color_rgba(255,255,255,0)); } } }
CUICellItem* CUIBagWnd::CreateItem(const shared_str& name_sect) { counter++; CLASS_ID class_id = pSettings->r_clsid(name_sect,"class"); DLL_Pure *dll_pure = xrFactory_Create(class_id); VERIFY (dll_pure); CInventoryItem* pIItem = smart_cast<CInventoryItem*>(dll_pure); pIItem->object().Load (name_sect.c_str()); VERIFY (pIItem); return create_cell_item (pIItem); }
void CUITradeWnd::FillList (TIItemContainer& cont, CUIDragDropListEx& dragDropList, bool do_colorize) { TIItemContainer::iterator it = cont.begin(); TIItemContainer::iterator it_e = cont.end(); for(; it != it_e; ++it) { CUICellItem* itm = create_cell_item (*it); if(do_colorize) ColorizeItem (itm, CanMoveToOther(*it)); dragDropList.SetItem (itm); } }
SBuyItemInfo* CUIMpTradeWnd::CreateItem(const shared_str& name_sect, SBuyItemInfo::EItmState type, bool find_if_exist) { SBuyItemInfo* iinfo = (find_if_exist)?FindItem(name_sect, type):NULL; if(iinfo) return iinfo; iinfo = xr_new<SBuyItemInfo>(); m_all_items.push_back ( iinfo ); iinfo->m_name_sect = name_sect; iinfo->SetState (type); iinfo->m_cell_item = create_cell_item(CreateItem_internal(name_sect)); iinfo->m_cell_item->m_b_destroy_childs = false; return iinfo; }
void CUICarBodyWnd::UpdateLists() { TIItemContainer ruck_list; m_pUIOurBagList->ClearAll (true); m_pUIOthersBagList->ClearAll (true); ruck_list.clear (); m_pOurObject->inventory().AddAvailableItems (ruck_list, true); std::sort (ruck_list.begin(),ruck_list.end(),InventoryUtilities::GreaterRoomInRuck); //Наш рюкзак TIItemContainer::iterator it; for(it = ruck_list.begin(); ruck_list.end() != it; ++it) { CUICellItem* itm = create_cell_item(*it); m_pUIOurBagList->SetItem (itm); } ruck_list.clear (); if(m_pOthersObject) m_pOthersObject->inventory().AddAvailableItems (ruck_list, false); else m_pInventoryBox->AddAvailableItems (ruck_list); std::sort (ruck_list.begin(),ruck_list.end(),InventoryUtilities::GreaterRoomInRuck); //Чужой рюкзак for(it = ruck_list.begin(); ruck_list.end() != it; ++it) { CUICellItem* itm = create_cell_item(*it); m_pUIOthersBagList->SetItem (itm); } InventoryUtilities::UpdateWeight (*m_pUIOurBagWnd); m_b_need_update = false; }
void CUIActorMenu::InitPartnerInventoryContents() { m_pTradePartnerBagList->ClearAll( true ); TIItemContainer items_list; m_pPartnerInvOwner->inventory().AddAvailableItems(items_list, true); std::sort (items_list.begin(), items_list.end(),InventoryUtilities::GreaterRoomInRuck); TIItemContainer::iterator itb = items_list.begin(); TIItemContainer::iterator ite = items_list.end(); for( ; itb != ite; ++itb ) { CUICellItem* itm = create_cell_item( *itb ); m_pTradePartnerBagList->SetItem( itm ); } m_trade_partner_inventory_state = m_pPartnerInvOwner->inventory().ModifyFrame(); }
void CUIActorMenu::InitDeadBodySearchMode() { m_pDeadBodyBagList->Show (true); m_LeftBackground->Show (true); m_PartnerBottomInfo->Show (true); m_PartnerWeight->Show (true); m_takeall_button->Show (true); if ( m_pPartnerInvOwner ) { m_PartnerCharacterInfo->Show(true); } else { m_PartnerCharacterInfo->Show(false); } InitInventoryContents (m_pInventoryBagList); TIItemContainer items_list; if ( m_pPartnerInvOwner ) { m_pPartnerInvOwner->inventory().AddAvailableItems( items_list, false ); //true UpdatePartnerBag(); } else { VERIFY( m_pInvBox ); m_pInvBox->m_in_use = true; m_pInvBox->AddAvailableItems( items_list ); } std::sort( items_list.begin(), items_list.end(),InventoryUtilities::GreaterRoomInRuck ); TIItemContainer::iterator it = items_list.begin(); TIItemContainer::iterator it_e = items_list.end(); for(; it != it_e; ++it) { CUICellItem* itm = create_cell_item (*it); m_pDeadBodyBagList->SetItem (itm); } CBaseMonster* monster = smart_cast<CBaseMonster*>( m_pPartnerInvOwner ); //only for partner, box = no, monster = no if ( m_pPartnerInvOwner && !monster ) { CInfoPortionWrapper known_info_registry; known_info_registry.registry().init (m_pPartnerInvOwner->object_id()); KNOWN_INFO_VECTOR& known_infos = known_info_registry.registry().objects(); KNOWN_INFO_VECTOR_IT it = known_infos.begin(); for(int i=0;it!=known_infos.end();++it,++i) { NET_Packet P; CGameObject::u_EventGen (P,GE_INFO_TRANSFER, m_pActorInvOwner->object_id()); P.w_u16 (0); P.w_stringZ ((*it).info_id); P.w_u8 (1); CGameObject::u_EventSend (P); } known_infos.clear (); } UpdateDeadBodyBag(); }