From: cohrs Date: Mon, 29 Nov 2004 19:01:31 +0000 (+0000) Subject: U1182 - Can drink from sink while engulfed X-Git-Tag: MOVE2GIT~1399 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2abfb121443c55e5c499140735edb6101c640cf7;p=nethack U1182 - Can drink from sink while engulfed The same occurred for fountains and drinking surrounding water while underwater. I also added a !Levitation check for sinks, like already exists for fountains. I cannot believe sinks are taller than an altar, and if you can't pick up stuff from an alter while levitation, it stands to reason you cannot drink from a sink then either. --- diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 7032184b5..9a7fa4dab 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -68,6 +68,7 @@ breaking container contents in a shop didn't always charge for them some types of shop theft of a stack of items only charged for a single one wizard mode: WIZKIT wish for own quest artifact triggered crash at startup avoid "your steed is still eating" message when going through a magic portal +cannot drink from fountain, sink or surrounding water while swallowed Platform- and/or Interface-Specific Fixes diff --git a/src/potion.c b/src/potion.c index 1384267de..b894f65f5 100644 --- a/src/potion.c +++ b/src/potion.c @@ -342,7 +342,7 @@ dodrink() return 0; } /* Is there a fountain to drink from here? */ - if (IS_FOUNTAIN(levl[u.ux][u.uy].typ) && !Levitation) { + if (IS_FOUNTAIN(levl[u.ux][u.uy].typ) && !Levitation && !u.uswallow) { if(yn("Drink from the fountain?") == 'y') { drinkfountain(); return 1; @@ -350,7 +350,7 @@ dodrink() } #ifdef SINKS /* Or a kitchen sink? */ - if (IS_SINK(levl[u.ux][u.uy].typ)) { + if (IS_SINK(levl[u.ux][u.uy].typ) && !Levitation && !u.uswallow) { if (yn("Drink from the sink?") == 'y') { drinksink(); return 1; @@ -359,7 +359,7 @@ dodrink() #endif /* Or are you surrounded by water? */ - if (Underwater) { + if (Underwater && !u.uswallow) { if (yn("Drink the water around you?") == 'y') { pline("Do you know what lives in this water!"); return 1;