summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/food.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-09 16:17:48 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-09 16:17:48 +0000
commit7b7a36d0531a016ba81520bec2a4a4177e2ca8ed (patch)
tree2054ca1b5243de711a38a2751edc06f39d92b001 /crawl-ref/source/food.cc
parent5443a68f96b0ba24b0de77573ad36a5633b39cd7 (diff)
downloadcrawl-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.cc23
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.