bool CAI_Stalker::tradable_item (CInventoryItem *inventory_item, const u16 ¤t_owner_id) { if (!inventory_item->useful_for_NPC()) return (false); if (CLSID_DEVICE_PDA == inventory_item->object().CLS_ID) { CPda *pda = smart_cast<CPda*>(inventory_item); VERIFY (pda); if (pda->GetOriginalOwnerID() == current_owner_id) return (false); } return ( trade_parameters().enabled( CTradeParameters::action_sell(0), inventory_item->object().cNameSect() ) ); }
void CInventoryOwner::sell_useless_items () { CGameObject *object = smart_cast<CGameObject*>(this); TIItemContainer::iterator I = inventory().m_all.begin(); TIItemContainer::iterator E = inventory().m_all.end(); for ( ; I != E; ++I) { if ((*I)->object().CLS_ID == CLSID_IITEM_BOLT) continue; if ((*I)->object().CLS_ID == CLSID_DEVICE_PDA) { CPda *pda = smart_cast<CPda*>(*I); VERIFY (pda); if (pda->GetOriginalOwnerID() == object->ID()) continue; } (*I)->object().DestroyObject(); } }
void CInventoryOwner::sell_useless_items () { CGameObject *object = smart_cast<CGameObject*>(this); TIItemContainer::iterator I = inventory().m_all.begin(); TIItemContainer::iterator E = inventory().m_all.end(); for ( ; I != E; ++I) { if ( smart_cast<CBolt*>( *I ) ) { continue; } CPda* pda = smart_cast<CPda*>( *I ); if ( pda ) { if (pda->GetOriginalOwnerID() == object->ID()) { continue; } } (*I)->SetDropManual(FALSE); (*I)->object().DestroyObject(); } }