summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/transfor.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-08-04 09:53:52 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-08-04 09:53:52 +0000
commit80c38b0682f61fc2901af257cc115676bacc9bde (patch)
tree2cf1867f8e12c70b520315921729b45c5744ed80 /crawl-ref/source/transfor.cc
parent0f6113e43af895a5b9a893e61b2c6e899b735190 (diff)
downloadcrawl-ref-80c38b0682f61fc2901af257cc115676bacc9bde.tar.gz
crawl-ref-80c38b0682f61fc2901af257cc115676bacc9bde.zip
Fixed acquirement giving unwearable armour (Iaido).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1961 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/transfor.cc')
-rw-r--r--crawl-ref/source/transfor.cc39
1 files changed, 21 insertions, 18 deletions
diff --git a/crawl-ref/source/transfor.cc b/crawl-ref/source/transfor.cc
index cb69bfb31b..58a14e4532 100644
--- a/crawl-ref/source/transfor.cc
+++ b/crawl-ref/source/transfor.cc
@@ -542,12 +542,12 @@ void untransform(void)
// XXX: This whole system is a mess as it still relies on special
// cases to handle a large number of things (see wear_armour()) -- bwr
-bool can_equip( equipment_type use_which )
+bool can_equip( equipment_type use_which, bool ignore_temporary )
{
// if more cases are added to this if must also change in
// item_use for naga barding
- if (!player_is_shapechanged())
+ if (ignore_temporary || !player_is_shapechanged())
/* or a transformation which doesn't change overall shape */
{
if (use_which == EQ_BOOTS)
@@ -583,27 +583,30 @@ bool can_equip( equipment_type use_which )
if (use_which == EQ_GLOVES && you.mutation[MUT_CLAWS] >= 3)
return (false);
- switch (you.attribute[ATTR_TRANSFORMATION])
+ if (!ignore_temporary)
{
- case TRAN_NONE:
- case TRAN_LICH:
- return (true);
+ switch (you.attribute[ATTR_TRANSFORMATION])
+ {
+ case TRAN_NONE:
+ case TRAN_LICH:
+ return (true);
- case TRAN_BLADE_HANDS:
- return (use_which != EQ_WEAPON
- && use_which != EQ_GLOVES
- && use_which != EQ_SHIELD);
+ case TRAN_BLADE_HANDS:
+ return (use_which != EQ_WEAPON
+ && use_which != EQ_GLOVES
+ && use_which != EQ_SHIELD);
- case TRAN_STATUE:
- return (use_which == EQ_WEAPON
- || use_which == EQ_CLOAK
- || use_which == EQ_HELMET);
+ case TRAN_STATUE:
+ return (use_which == EQ_WEAPON
+ || use_which == EQ_CLOAK
+ || use_which == EQ_HELMET);
- case TRAN_ICE_BEAST:
- return (use_which == EQ_CLOAK);
+ case TRAN_ICE_BEAST:
+ return (use_which == EQ_CLOAK);
- default:
- return (false);
+ default:
+ return (false);
+ }
}
return (true);