hats vs helms
Something from <Someone>'s list: some messages have hardcoded references
to "helmet" which sound strange when the character is wearing a hat or cap.
helm_simple_name() is comparable to the existing cloak_simple_name(). It
returns "helm" or "hat" depending upon whether the helmet provides the
same protection that yields the assorted repetitions of "fortunately,
you are wearing a hard helmet". This choice ends up categorizing elven
leather helm as a hat (which I think is ok given that its undiscovered
description is "leather hat"), contrary to <Someone>'s suggestion that the
distinction be made based on whether the helmet was made of cloth.
I started on this a year and a half ago but didn't commit it.
Unfortunately I don't remember why and haven't done any significant
additional work now--just recovered from some intervening bit rot and
confirmed that the patch as is seems to be working ok (in the trunk; the
branch side has not been tested). I suspect that I meant to look for
additional helmet messages which could benefit from conditional headgear
description. (Those "hard helmet" ones don't need it, although they
should perhaps be moved into a common routine instead of being replicated.)
This commit is contained in:
13
src/uhitm.c
13
src/uhitm.c
@@ -1,4 +1,4 @@
|
||||
/* SCCS Id: @(#)uhitm.c 3.4 2004/06/12 */
|
||||
/* SCCS Id: @(#)uhitm.c 3.4 2004/11/11 */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -1545,6 +1545,9 @@ register struct attack *mattk;
|
||||
}
|
||||
break;
|
||||
case AD_DRIN:
|
||||
{
|
||||
struct obj *helmet;
|
||||
|
||||
if (notonhead || !has_head(mdef->data)) {
|
||||
pline("%s doesn't seem harmed.", Monnam(mdef));
|
||||
tmp = 0;
|
||||
@@ -1558,9 +1561,10 @@ register struct attack *mattk;
|
||||
}
|
||||
if (m_slips_free(mdef, mattk)) break;
|
||||
|
||||
if ((mdef->misc_worn_check & W_ARMH) && rn2(8)) {
|
||||
pline("%s helmet blocks your attack to %s head.",
|
||||
s_suffix(Monnam(mdef)), mhis(mdef));
|
||||
if ((helmet = which_armor(mdef, W_ARMH)) != 0 && rn2(8)) {
|
||||
pline("%s %s blocks your attack to %s head.",
|
||||
s_suffix(Monnam(mdef)),
|
||||
helm_simple_name(helmet), mhis(mdef));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1588,6 +1592,7 @@ register struct attack *mattk;
|
||||
}
|
||||
exercise(A_WIS, TRUE);
|
||||
break;
|
||||
}
|
||||
case AD_STCK:
|
||||
if (!negated && !sticks(mdef->data))
|
||||
u.ustuck = mdef; /* it's now stuck to you */
|
||||
|
||||
Reference in New Issue
Block a user