diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-06 21:20:56 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-06 21:20:56 +0000 |
commit | a2df2a7e984468efba235d355daa9d00ed54103f (patch) | |
tree | 2c8884c9881cb3672df74d73d25ff863389377ce /crawl-ref/source/items.cc | |
parent | ef970c20a9d2ecb98d5838d779c1790a449d0f33 (diff) | |
download | crawl-ref-a2df2a7e984468efba235d355daa9d00ed54103f.tar.gz crawl-ref-a2df2a7e984468efba235d355daa9d00ed54103f.zip |
Greatly improve eating interface, as suggested in FRs 1923273 and 2018733.
When you now press 'e' the following takes place:
1) If you can eat chunks, the game builds a list out of all chunks on
the floor and in your inventory, sorted by age [1], and prompts you to
eat them [2].
2) If none are found, or you decline all of them you get prompted for
non-chunk food items on the floor.
3) Prompt for non-chunk food in your inventory.
4) Open up the food menu of your inventory.
Because of the way lua works, there's currently a problem that in the
early stages (1-3) "q" (now also accepts Escape) will cause to skip
ahead to the next stage rather than leaving the process entirely, which
is of course less than optimal.
I also added two new options
[1] prefer_safe_chunks (defaults to true) which will offer clean chunks
before contaminated ones, even if the latter happens to be older
[2] easy_eat_chunks (defaults to false) which causes the prompting to be
skipped for safe (i.e. clean) chunks, so you will automatically eat the
oldest chunk that applies. This is ignored for undead characters.
I also got rid of the outdated safechnk.lua and chnkdata.lua seeing how
chunk effects are no longer spoily information.
Added a new wizmode command: Ctrl-H, which allows you to set your
character's hunger state. (Hopefully this will make Vampire testing
easier.)
Also fix 2488374: "Controlled Flight being named upon levitation even if
its type is already known.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8282 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/items.cc')
-rw-r--r-- | crawl-ref/source/items.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crawl-ref/source/items.cc b/crawl-ref/source/items.cc index f5b0788492..a05a5d8e9e 100644 --- a/crawl-ref/source/items.cc +++ b/crawl-ref/source/items.cc @@ -2443,6 +2443,16 @@ item_def *find_floor_item(object_class_type cls, int sub_type) return (NULL); } +int item_on_floor(const item_def &item, const coord_def& where) +{ + // Check if the item is on the floor and reachable. + for (int link = igrd(where); link != NON_ITEM; link = mitm[link].link) + if (&mitm[link] == &item) + return (link); + + return (NON_ITEM); +} + static bool _find_subtype_by_name(item_def &item, object_class_type base_type, int ntypes, const std::string &name) |