diff --git a/doc/fixes36.1 b/doc/fixes36.1 index 73c66e65d..ce3ebc86e 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -609,6 +609,8 @@ when clairvoyance lets you move the cursor to examine the map (if it occurs prevent Mjollnir from being auto-quivered if it's been thrown without return and then picked back up while quiver slot is empty plural of "fox" is not "foxen" +change wording from "broken chest" to "lock-damaged chest" and suppress #force + ", but its lock is already broken" when lock-damaged was already shown Platform- and/or Interface-Specific Fixes diff --git a/src/lock.c b/src/lock.c index 594351124..99f6c75c9 100644 --- a/src/lock.c +++ b/src/lock.c @@ -548,9 +548,18 @@ doforce() xlock.box = (struct obj *) 0; for (otmp = level.objects[u.ux][u.uy]; otmp; otmp = otmp->nexthere) if (Is_box(otmp)) { - if (otmp->obroken || !otmp->olocked) { - There("is %s here, but its lock is already %s.", doname(otmp), - otmp->obroken ? "broken" : "unlocked"); + if (otmp->obroken) { + There("is %s here%s.", doname(otmp), + /* The displayed name will have already been prefixed + * with "lock-damaged" if otmp->lknown is already set + * so suppress the additional notification about the + * lock in that case. */ + !otmp->lknown ? ", but its lock is already broken" : ""); + otmp->lknown = 1; + continue; + } else if (!otmp->olocked) { + There("is %s here, but its lock is already unlocked.", + doname(otmp)); otmp->lknown = 1; continue; } diff --git a/src/objnam.c b/src/objnam.c index aea4ec568..88d105d41 100644 --- a/src/objnam.c +++ b/src/objnam.c @@ -998,7 +998,7 @@ unsigned doname_flags; /* 3.6.0 used "unlockable" here but that could be misunderstood to mean "capable of being unlocked" rather than the intended "not capable of being locked" */ - Strcat(prefix, "broken "); + Strcat(prefix, "lock-damaged "); else if (obj->olocked) Strcat(prefix, "locked "); else