diff --git a/doc/fixes34.3 b/doc/fixes34.3 index ac8898e91..0b15b81d7 100644 --- a/doc/fixes34.3 +++ b/doc/fixes34.3 @@ -91,6 +91,7 @@ trapped monster repeatedly switched between ranged and hand-to-hand weapon silver items such as wands avoided all the silver checks in hmon_hitmon() resuming an interrupted 'A' command could cause crash if pending worn item(s) were stolen or destroyed +resuming interrupted 'A' sometimes ended with "You finished disrobing" twice when you're asleep you shouldn't "notice" monsters that have become undetected must be able to reach floor in order to use stethoscope on corpse or statue diff --git a/src/do_wear.c b/src/do_wear.c index 628f8b84e..ce6e1d6eb 100644 --- a/src/do_wear.c +++ b/src/do_wear.c @@ -1914,6 +1914,7 @@ do_takeoff() return(otmp); } +/* occupation callback for 'A' */ STATIC_PTR int take_off() @@ -2000,6 +2001,7 @@ take_off() return(1); /* get busy */ } +/* clear saved context to avoid inappropriate resumption of interrupted 'A' */ void reset_remarm() { @@ -2007,7 +2009,7 @@ reset_remarm() context.takeoff.disrobing[0] = '\0'; } -/* the 'A' command */ +/* the 'A' command -- remove multiple worn items */ int doddoremarm() { @@ -2016,7 +2018,6 @@ doddoremarm() if (context.takeoff.what || context.takeoff.mask) { You("continue %s.", context.takeoff.disrobing); set_occupation(take_off, context.takeoff.disrobing, 0); - (void) take_off(); return 0; } else if (!uwep && !uswapwep && !uquiver && !uamul && !ublindf && !uleft && !uright && !wearing_armor()) {