From e07c6b5b77c94f7c55ee93bd7912c0a950c57abc Mon Sep 17 00:00:00 2001 From: nhmall Date: Sat, 17 Mar 2018 23:05:52 -0400 Subject: [PATCH] broken large box wording change > When you try to #force a large box or chest whose lock is already broken from a > previous #force, the game tells you "There is a broken large box here, but its > lock is already broken." It's minor, but this implies that the box being broken > is separate from the lock being broken (as well as that the box itself *can* be > broken). change the wording to "lock-damaged box" and suppress ", but its lock is aleady broken" when "lock-damaged box" has already been displayed. (Nobody particularly likes the wording "lock-damaged box" either, but at least it seems less misleading) --- doc/fixes36.1 | 2 ++ src/lock.c | 15 ++++++++++++--- src/objnam.c | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) 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