renaming shopkeepers and priests

From a bug report, the 'C' command wasn't reporting that
"<shopkeeper> doesn't like being called names" even though the user's
supplied name was ineffective.  Same thing for temple priests and other
minion monsters; the name was accepted but didn't do anything.  Make such
monsters reject new names.
This commit is contained in:
nethack.rankin
2006-05-23 04:09:23 +00:00
parent bb8ec3e1d5
commit 804864c723
2 changed files with 11 additions and 1 deletions

View File

@@ -223,6 +223,7 @@ when jumping over an already seen trap, use an() to get appropriate grammar
fix bad grammar when putting on not-yet-seen Eyes of the Overworld while blind
don't "walk quietly" while levitating
fix message handling when multiple shopkeepers are present at end of game
'C' command can't name shopkeepers or temple priests and other minions
Platform- and/or Interface-Specific Fixes

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)do_name.c 3.5 2006/04/14 */
/* SCCS Id: @(#)do_name.c 3.5 2006/05/22 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -359,8 +359,17 @@ do_mname()
/* strip leading and trailing spaces; unnames monster if all spaces */
(void)mungspaces(buf);
/* unique monsters have their own specific names or titles;
shopkeepers, temple priests and other minions use alternate
name formatting routines which ignore any user-supplied name */
if (mtmp->data->geno & G_UNIQ)
pline("%s doesn't like being called names!", upstart(monnambuf));
else if (mtmp->isshk &&
!(Deaf || mtmp->msleeping ||
!mtmp->mcanmove || mtmp->data->msound <= MS_ANIMAL))
verbalize("I'm %s, not %s.", monnambuf, buf);
else if (mtmp->ispriest || mtmp->isminion || mtmp->isshk)
pline("%s will not accept the name %s.", upstart(monnambuf), buf);
else
(void) christen_monst(mtmp, buf);
return(0);