summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/itemprop.cc4
-rw-r--r--crawl-ref/source/spells3.cc3
2 files changed, 6 insertions, 1 deletions
diff --git a/crawl-ref/source/itemprop.cc b/crawl-ref/source/itemprop.cc
index d78fa65b36..6dd7c22b4b 100644
--- a/crawl-ref/source/itemprop.cc
+++ b/crawl-ref/source/itemprop.cc
@@ -1361,6 +1361,10 @@ bool is_enchantable_armour(const item_def &arm, bool uncurse)
if (arm.base_type != OBJ_ARMOUR)
return (false);
+ // Melded armour cannot be enchanted.
+ if (!you_tran_can_wear(arm) && item_is_equipped(arm))
+ return (false);
+
// Artefacts or highly enchanted armour cannot be enchanted, only
// uncursed.
if (is_artefact(arm) || (arm.plus >= 2
diff --git a/crawl-ref/source/spells3.cc b/crawl-ref/source/spells3.cc
index bf33304313..289a6e8159 100644
--- a/crawl-ref/source/spells3.cc
+++ b/crawl-ref/source/spells3.cc
@@ -135,7 +135,8 @@ bool remove_curse(bool suppress_msg)
// What of artefact rings and amulets? {dlb}:
for (int i = EQ_WEAPON + 1; i < NUM_EQUIP; i++)
{
- if (you.equip[i] != -1 && item_cursed(you.inv[you.equip[i]]))
+ if (you.equip[i] != -1 && item_cursed(you.inv[you.equip[i]])
+ && you_tran_can_wear(you.equip[i]))
{
do_uncurse_item( you.inv[you.equip[i]] );
success = true;