void Character::PlugImplant( uint32 itemID ) { // Get itemID, change its location to characterID // and change the flag to flagImplant // So now its on character's brain InventoryItemRef item = m_factory.GetItem( itemID ); // First of all check if we already have this Implants::iterator cur, end; cur = m_implants.begin(); end = m_implants.end(); for(; cur != end; cur++ ) { InventoryItemRef implant = m_factory.GetItem( cur->itemID ); if( implant == NULL ) return; // Ok, we already have this booster, return if( item->typeID() == implant->typeID() ) return; } item->MoveInto( *this, flagImplant ); EvilNumber num = 1; item->SetAttribute( AttrIsOnline, num, true ); item->SaveAttributes(); cImplants i; i.itemID = itemID; m_implants.push_back( i ); }
void Character::PlugBooster( uint32 itemID ) { // Get itemID, change its location to characterID // and change the flag to flagBooster // So now its on character's brain InventoryItemRef item = m_factory.GetItem( itemID ); // First of all check if we already have this Boosters::iterator cur, end; cur = m_boosters.begin(); end = m_boosters.end(); for(; cur != end; cur++ ) { InventoryItemRef booster = m_factory.GetItem( cur->itemID ); if( booster == NULL ) return; // Ok, we already have this booster, return if( item->typeID() == booster->typeID() )return; } item->MoveInto( *this, flagBooster ); EvilNumber num = 1; item->SetAttribute( AttrIsOnline, num, true ); item->SaveAttributes(); cBoosters i; i.itemID = itemID; i.plugDate = Win32TimeNow(); i.expiretime = item->GetAttribute( AttrBoosterDuration ).get_int(); m_boosters.push_back( i ); }