From a5be241bd4be9c4eabaa0fccad00901c8bf8cbdc Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Tue, 14 Apr 2026 17:42:03 +0100 Subject: [PATCH] Fix polymorphing into a large monster while wearing unusual cloaks Most cloaks have a clasp, but some don't, so they need different messages (and occasionally different behaviour). --- src/polyself.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/polyself.c b/src/polyself.c index 973cc053b..43c76cf40 100644 --- a/src/polyself.c +++ b/src/polyself.c @@ -1176,9 +1176,20 @@ break_armor(void) if ((otmp = uarmc) != 0 /* mummy wrapping adapts to small and very big sizes */ && (otmp->otyp != MUMMY_WRAPPING || !WrappingAllowed(uptr))) { - pline_The("clasp on your %s breaks open!", cloak_simple_name(otmp)); - (void) Cloak_off(); - dropp(otmp); + if (otmp->otyp == MUMMY_WRAPPING) { + /* doesn't have a clasp to break open */ + Your("%s tears apart!", cloak_simple_name(otmp)); + (void) Cloak_off(); + useup(otmp); + } else if (otmp->otyp == ALCHEMY_SMOCK) { + pline_The("knot on your %s is pulled apart!", cloak_simple_name(otmp)); + (void) Cloak_off(); + dropp(otmp); + } else { + pline_The("clasp on your %s breaks open!", cloak_simple_name(otmp)); + (void) Cloak_off(); + dropp(otmp); + } } if (uarmu) { Your("shirt rips to shreds!");