]> granicus.if.org Git - nethack/commitdiff
U1182 - Can drink from sink while engulfed
authorcohrs <cohrs>
Mon, 29 Nov 2004 19:01:31 +0000 (19:01 +0000)
committercohrs <cohrs>
Mon, 29 Nov 2004 19:01:31 +0000 (19:01 +0000)
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.

doc/fixes34.4
src/potion.c

index 7032184b560d1085d8ae67309b2784df4af76c4e..9a7fa4dab59ce8399584aff90312c4464315c553 100644 (file)
@@ -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
index 1384267de7c10ed72b92638bf46f8de816cbf422..b894f65f5ea41f48cca80e602023d0624e263d19 100644 (file)
@@ -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;