void Item::RemoveRelatedEnchants(EnchantEntry* newEnchant) { for (EnchantmentMap::iterator itr = Enchantments.begin(); itr != Enchantments.end(); ++itr) { if (itr->second.Enchantment->Id == newEnchant->Id || (itr->second.Enchantment->EnchantGroups > 1 && newEnchant->EnchantGroups > 1)) RemoveEnchantment(itr->first); } }
void Item::RemoveAllEnchantments(bool OnlyTemporary) { for (EnchantmentMap::iterator itr = Enchantments.begin(); itr != Enchantments.end(); ++itr) { if (OnlyTemporary && !itr->second.Duration) continue; RemoveEnchantment(itr->first); } }
void Item::RemoveSocketBonusEnchant() { for (EnchantmentMap::iterator itr = Enchantments.begin(); itr != Enchantments.end(); ++itr) { if (itr->second.Enchantment->Id == GetProto()->SocketBonus) { RemoveEnchantment(itr->first); return; } } }
void Item::RemoveRelatedEnchants( EnchantEntry* newEnchant ) { EnchantmentMap::iterator itr,itr2; for( itr = Enchantments.begin(); itr != Enchantments.end(); ) { itr2 = itr++; if( itr2->second.Enchantment->Id == newEnchant->Id || ( itr2->second.Enchantment->EnchantGroups > 1 && newEnchant->EnchantGroups > 1 ) ) { RemoveEnchantment( itr2->first ); } } }
void Item::RemoveAllEnchantments( bool OnlyTemporary ) { EnchantmentMap::iterator itr, it2; for( itr = Enchantments.begin(); itr != Enchantments.end(); ) { it2 = itr++; if( OnlyTemporary && it2->second.Duration == 0 ) continue; RemoveEnchantment( it2->first ); } }
void Item::RemoveProfessionEnchant() { EnchantmentMap::iterator itr; for( itr = Enchantments.begin(); itr != Enchantments.end(); itr++ ) { if( itr->second.Duration != 0 )// not perm continue; if( IsGemRelated( itr->second.Enchantment ) ) continue; RemoveEnchantment( itr->first ); return; } }
void Item::EventRemoveEnchantment( uint32 Slot ) { // Remove the enchantment. RemoveEnchantment( Slot ); }