diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-06-09 16:17:48 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-06-09 16:17:48 +0000 |
commit | 7b7a36d0531a016ba81520bec2a4a4177e2ca8ed (patch) | |
tree | 2054ca1b5243de711a38a2751edc06f39d92b001 /crawl-ref/source/food.cc | |
parent | 5443a68f96b0ba24b0de77573ad36a5633b39cd7 (diff) | |
download | crawl-ref-7b7a36d0531a016ba81520bec2a4a4177e2ca8ed.tar.gz crawl-ref-7b7a36d0531a016ba81520bec2a4a4177e2ca8ed.zip |
Yikes, so many files! And all I did was add more item evaluation
functions for menu colouring and pickup...
Added: emergency_item, good_item, dangerous_item, bad_item, and
useless_item, all taking into account player species and
mutations, so e.g. =see invisible is useless for Naga,
and !poison is always bad but only useless if you don't
know Evaporate.
Never autopickup useless, dangerous (e.g. ?immolation) or inedible items,
and simplify the item colour/pickup options accordingly. I'll have to
see if pickup.lua is still even needed after this.
Removed the menu_colour_prefix_id option as I can't see any reason to
turn it off.
Oh, and fixed a bug where Kenku were unable to stop levitating if they
gained level 15 while levitating.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5658 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/food.cc')
-rw-r--r-- | crawl-ref/source/food.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc index b1daa6c5e7..aceb6acc94 100644 --- a/crawl-ref/source/food.cc +++ b/crawl-ref/source/food.cc @@ -1914,6 +1914,29 @@ static int _player_likes_food_type(int food_type) return 0; } +// Returns true if an item of basetype FOOD or CORPSES cannot currently +// be eaten (respecting species and mutations set). +bool is_inedible(const item_def &item) +{ + if (food_is_rotten(item) + && !player_mutation_level(MUT_SAPROVOROUS)) + { + return (true); + } + + if (item.base_type == OBJ_FOOD + && !can_ingest(item.base_type, item.sub_type, true, true, false)) + { + return (true); + } + if (item.base_type == OBJ_CORPSES + && (item.sub_type == CORPSE_SKELETON + || you.species == SP_VAMPIRE && !mons_has_blood(item.plus))) + { + return (true); + } + return (false); +} // As we want to avoid autocolouring the entire food selection, this should // be restricted to the absolute highlights, even though other stuff may // still be edible or even delicious. |