summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spells1.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-03 23:09:10 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-03 23:09:10 +0000
commit30e4163e934e8f9dcd201e1cfba1a13a7f3b79c3 (patch)
treec10066a70df3e56145fc9d36cfc8986415b8d3d1 /crawl-ref/source/spells1.cc
parent610652dba6b72b800879510c3e715c1aeb4e5747 (diff)
downloadcrawl-ref-30e4163e934e8f9dcd201e1cfba1a13a7f3b79c3.tar.gz
crawl-ref-30e4163e934e8f9dcd201e1cfba1a13a7f3b79c3.zip
[FR 1903593] Change identification process of
?recharging, ?enchant armour and ?identify. If you read one of these scrolls and the type isn't known yet you are prompted with "Modify which item?" (better message needed!) and get to choose from the entire inventory. If the chosen item can be usefully "modified" by the scroll (unID'd item for identify, wand for recharging, enchantable armour for EA) the usual effect takes place and the scroll is identified. (Reading other scrolls of the same type will then only offer a more sensible selection of items.) Otherwise, nothing happens. Further, recharging and enchant armour now allow direct choice of the item in question, and it doesn't even have to be wielded or worn. I think this change actually makes the id game more interesting and also improves the interface. Gameplay might dictate that we reintroduce the "armour needs to be worn" rule, but that remains to be seen until after some more playtesting. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3514 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/spells1.cc')
-rw-r--r--crawl-ref/source/spells1.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/crawl-ref/source/spells1.cc b/crawl-ref/source/spells1.cc
index 0ca5d6284b..9a4af6bf8e 100644
--- a/crawl-ref/source/spells1.cc
+++ b/crawl-ref/source/spells1.cc
@@ -420,10 +420,9 @@ void cast_chain_lightning( int powc )
more();
}
-void identify(int power)
+void identify(int power, int item_slot)
{
int id_used = 1;
- int item_slot;
// scrolls of identify *may* produce "extra" identifications {dlb}:
if (power == -1 && one_chance_in(5))
@@ -431,8 +430,9 @@ void identify(int power)
do
{
- item_slot = prompt_invent_item( "Identify which item?", MT_INVLIST,
- OSEL_UNIDENT, true, true, false );
+ if (item_slot == -1)
+ item_slot = prompt_invent_item( "Identify which item?", MT_INVLIST,
+ OSEL_UNIDENT, true, true, false );
if (item_slot == PROMPT_ABORT)
{
canned_msg( MSG_OK );
@@ -463,6 +463,9 @@ void identify(int power)
if (Options.auto_list && id_used > 0)
more();
+
+ // in case we get to try again
+ item_slot = -1;
}
while (id_used > 0);
} // end identify()