summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/transfor.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-15 20:43:17 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-15 20:43:17 +0000
commitdc0f066ad0fa14a48e652914b9a27e626f5eded1 (patch)
tree83173474fa7ecc57c9c6bb974445cb47d5d341e0 /crawl-ref/source/transfor.cc
parentd976570ee5fbcc53481d76b2d55d389908968bd5 (diff)
downloadcrawl-ref-dc0f066ad0fa14a48e652914b9a27e626f5eded1.tar.gz
crawl-ref-dc0f066ad0fa14a48e652914b9a27e626f5eded1.zip
Apply commits r6564 and r6567 to 0.4 trunk.
Also start on changes.stone_soup for 0.4.1. The mapmark.lua fixes are not actually in 0.4 trunk, are they? git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.4@6568 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/transfor.cc')
-rw-r--r--crawl-ref/source/transfor.cc18
1 files changed, 14 insertions, 4 deletions
diff --git a/crawl-ref/source/transfor.cc b/crawl-ref/source/transfor.cc
index 8e9887071b..77a578a875 100644
--- a/crawl-ref/source/transfor.cc
+++ b/crawl-ref/source/transfor.cc
@@ -22,6 +22,7 @@
#include "delay.h"
#include "it_use2.h"
+#include "item_use.h"
#include "itemprop.h"
#include "items.h"
#include "misc.h"
@@ -99,7 +100,7 @@ bool remove_equipment(std::set<equipment_type> removed)
canned_msg(MSG_EMPTY_HANDED);
}
- // Remove items in order (std::set is a sorted container)
+ // Remove items in order. (std::set is a sorted container)
std::set<equipment_type>::const_iterator iter;
for (iter = removed.begin(); iter != removed.end(); ++iter)
{
@@ -110,12 +111,21 @@ bool remove_equipment(std::set<equipment_type> removed)
mprf("%s falls away.",
you.inv[you.equip[e]].name(DESC_CAP_YOUR).c_str());
- unwear_armour( you.equip[e] );
- you.equip[e] = -1;
+ if (e == EQ_LEFT_RING || e == EQ_RIGHT_RING || e == EQ_AMULET)
+ {
+ item_def &ring = you.inv[you.equip[e]];
+ you.equip[e] = -1;
+ jewellery_remove_effects(ring, false);
+ }
+ else // armour
+ {
+ unwear_armour( you.equip[e] );
+ you.equip[e] = -1;
+ }
}
return (true);
-} // end remove_equipment()
+}
bool remove_one_equip(equipment_type eq)
{