summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/food.cc18
-rw-r--r--crawl-ref/source/item_use.cc6
2 files changed, 24 insertions, 0 deletions
diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc
index fbdc31aaa9..a306a6ce41 100644
--- a/crawl-ref/source/food.cc
+++ b/crawl-ref/source/food.cc
@@ -647,6 +647,15 @@ void eat_from_inventory(int which_inventory_slot)
const int chunk_type = mons_corpse_effect( mons_type );
const bool rotten = (you.inv[which_inventory_slot].special < 100);
+ if (rotten && you.species != SP_GHOUL && you.species != SP_KOBOLD
+ && you.species != SP_TROLL && you.species != SP_OGRE
+ && you.species != SP_HILL_ORC
+ && !yesno("Are you sure you want to eat this rotten meat?", false, 'n'))
+ {
+ canned_msg(MSG_OK);
+ return;
+ }
+
eat_chunk( determine_chunk_effect( chunk_type, rotten ) );
}
else
@@ -691,6 +700,15 @@ void eat_floor_item(int item_link)
const int chunk_type = mons_corpse_effect( mitm[item_link].plus );
const bool rotten = (mitm[item_link].special < 100);
+
+ if (rotten && you.species != SP_GHOUL && you.species != SP_KOBOLD
+ && you.species != SP_TROLL && you.species != SP_OGRE
+ && you.species != SP_HILL_ORC
+ && !yesno("Are you sure you want to eat this rotten meat?", false, 'n'))
+ {
+ canned_msg(MSG_OK);
+ return;
+ }
eat_chunk( determine_chunk_effect( chunk_type, rotten ) );
}
else
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index c41b24465a..9b3515fa0f 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -3019,6 +3019,12 @@ bool drink_fountain()
if ( feat != DNGN_BLUE_FOUNTAIN && feat != DNGN_SPARKLING_FOUNTAIN )
return false;
+ if (you.duration[DUR_LEVITATION] && !you.flies())
+ {
+ mpr("You're floating high above the fountain.");
+ return false;
+ }
+
potion_type fountain_effect = POT_WATER;
if ( feat == DNGN_BLUE_FOUNTAIN )
{