diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 2fdd6a9fc..f45f920d9 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -324,6 +324,7 @@ dropped wielded, in use leash should remain in inventory, since it's in-use wielded, in use leash can't be snatched by whip-wielding monster when using two weapons at once, whip-wielding monster can target either one can't #force floor item while engulfed, levitating, or unskilled riding +can't lock or unlock doors while engulfed if hero or monster standing on opened drawbridge survives its destruction, fall into water or lava instead of remaining on top diff --git a/src/lock.c b/src/lock.c index 6b04f8f28..4483d5c8f 100644 --- a/src/lock.c +++ b/src/lock.c @@ -1,4 +1,4 @@ -/* SCCS Id: @(#)lock.c 3.5 2007/01/02 */ +/* SCCS Id: @(#)lock.c 3.5 2007/02/17 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -249,7 +249,7 @@ pick_lock(pick) /* pick a lock with a given object */ pline(no_longer, "hold the", what); reset_pick(); return 0; - } else if (xlock.box && !can_reach_floor(TRUE)) { + } else if (u.uswallow || (xlock.box && !can_reach_floor(TRUE))) { pline(no_longer, "reach the", "lock"); reset_pick(); return 0; @@ -264,6 +264,13 @@ pick_lock(pick) /* pick a lock with a given object */ if(nohands(youmonst.data)) { You_cant("hold %s -- you have no hands!", doname(pick)); return(0); + } else if (u.uswallow) { + You_cant("%sunlock %s.", +#ifdef TOURIST + (picktyp == CREDIT_CARD) ? "" : +#endif + "lock or ", mon_nam(u.ustuck)); + return 0; } if((picktyp != LOCK_PICK &&