void DoRemoveEnhancements(object oTarget)
{
object itemCur = GetFirstItemInInventory(oTarget);
effect itemEff = GetFirstItemProperty(itemCur);
while (itemCur != OBJECT_INVALID)
{
while (itemEff != invalid)
{
if ((itemEff == ITEM_PROPERTY_ABILITY_BONUS) || (itemEff == ITEM_PROPERTY_AC_BONUS) || (itemEff == ITEM_PROPERTY_AC_BONUS_VS_ALIGNMENT) || itemEff == ITEM_PROPERTY_AC_BONUS_VS_DAMAGE_TYPE) ||
(itemEff == ITEM_PROPERTY_AC_BONUS_VS_RACIAL_GROUP) || (itemEff == ITEM_PROPERTY_AC_BONUS_VS_SPECIFIC_ALIGNMENT) || (itemEff == ITEM_PROPERTY_ARCANE_SPELL_FAILURE) || (itemEff == ITEM_PROPERTY_ATTACK_BONUS) ||
(itemEff == ITEM_PROPERTY_ATTACK_BONUS_VS_ALIGNMENT_GROUP) || (itemEff == ITEM_PROPERTY_ATTACK_BONUS_VS_RACIAL_GROUP) || (itemEff == ITEM_PROPERTY_ATTACK_BONUS_VS_SPECIFIC_ALIGNMENT) ||
(itemEff == ITEM_PROPERTY_BONUS_FEAT) || (itemEff == ITEM_PROPERTY_BONUS_HITPOINTS) || (itemEff == ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N) || (itemEff == ITEM_PROPERTY_CAST_SPELL) ||
(itemEff == ITEM_PROPERTY_DAMAGE_BONUS) || (itemEff == ITEM_PROPERTY_DAMAGE_BONUS_VS_ALIGNMENT_GROUP) || (itemEff == ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP) || (itemEff == ITEM_PROPERTY_DAMAGE_BONUS_VS_SPECIFIC_ALIGNMENT) ||
(itemEff == ITEM_PROPERTY_DAMAGE_REDUCTION) || (itemEff == ITEM_PROPERTY_DAMAGE_REDUCTION_DEPRECATED) || (itemEff == ITEM_PROPERTY_DAMAGE_RESISTANCE) || (itemEff == ITEM_PROPERTY_DAMAGE_VULNERABILITY) ||
(itemEff == ITEM_PROPERTY_DARKVISION) || (itemEff == ITEM_PROPERTY_DECREASED_ABILITY_SCORE) || (itemEff == ITEM_PROPERTY_DECREASED_AC) || (itemEff == ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER) ||
(itemEff == ITEM_PROPERTY_DECREASED_DAMAGE) || (itemEff == ITEM_PROPERTY_DECREASED_ENHANCEMENT_MODIFIER) || (itemEff == ITEM_PROPERTY_DECREASED_SAVING_THROWS) || (itemEff == ITEM_PROPERTY_DECREASED_SAVING_THROWS_SPECIFIC) ||
(itemEff == ITEM_PROPERTY_DECREASED_SKILL_MODIFIER) || (itemEff == ITEM_PROPERTY_ENHANCEMENT_BONUS) || (itemEff == ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_ALIGNMENT_GROUP) || (itemEff == ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP) ||
(itemEff == ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_SPECIFIC_ALIGNEMENT) || (itemEff == ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE) || (itemEff == ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE) ||
(itemEff == ITEM_PROPERTY_FREEDOM_OF_MOVEMENT) || (itemEff == ITEM_PROPERTY_HASTE) || (itemEff == ITEM_PROPERTY_HOLY_AVENGER) || (itemEff == ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE) ||
(itemEff == ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS) || (itemEff == ITEM_PROPERTY_IMMUNITY_SPECIFIC_SPELL) || (itemEff == ITEM_PROPERTY_IMMUNITY_SPELL_SCHOOL) || (itemEff == ITEM_PROPERTY_IMMUNITY_SPELLS_BY_LEVEL) ||
(itemEff == ITEM_PROPERTY_IMPROVED_EVASION) || (itemEff == ITEM_PROPERTY_KEEN) || (itemEff == ITEM_PROPERTY_LIGHT) || (itemEff == ITEM_PROPERTY_MASSIVE_CRITICALS) || (itemEff == ITEM_PROPERTY_MIGHTY) ||
(itemEff == ITEM_PROPERTY_MIND_BLANK) || (itemEff == ITEM_PROPERTY_MONSTER_DAMAGE) || (itemEff == ITEM_PROPERTY_ON_HIT_PROPERTIES) || (itemEff == ITEM_PROPERTY_ON_MONSTER_HIT) ||
(itemEff == ITEM_PROPERTY_ONHITCASTSPELL) || (itemEff == ITEM_PROPERTY_POISON) || (itemEff == ITEM_PROPERTY_REGENERATION) || (itemEff == ITEM_PROPERTY_REGENERATION_VAMPIRIC) ||
(itemEff == ITEM_PROPERTY_SAVING_THROW_BONUS) || (itemEff == ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC) || (itemEff == ITEM_PROPERTY_SKILL_BONUS) || (itemEff == ITEM_PROPERTY_SPELL_RESISTANCE) ||
(itemEff == ITEM_PROPERTY_TRUE_SEEING) || (itemEff == ITEM_PROPERTY_TURN_RESISTANCE) || (itemEff == ITEM_PROPERTY_UNLIMITED_AMMUNITION))
{
IPSafeRemoveItemProperty(itemCur, itemEff, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, TRUE, TRUE);
}
itemEff = GetNextItemProperty(itemCur)
}
itemCur = GetNextItemInInventory(oTarget)
}
}