diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-03-03 23:09:10 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-03-03 23:09:10 +0000 |
commit | 30e4163e934e8f9dcd201e1cfba1a13a7f3b79c3 (patch) | |
tree | c10066a70df3e56145fc9d36cfc8986415b8d3d1 /crawl-ref/source/spells1.cc | |
parent | 610652dba6b72b800879510c3e715c1aeb4e5747 (diff) | |
download | crawl-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.cc | 11 |
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() |