Example #1
0
bool CAI_Stalker::tradable_item					(CInventoryItem *inventory_item, const u16 &current_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()
		)
	);
}
Example #2
0
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();
	}
}
Example #3
0
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();
    }
}