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:
@@ -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
|
fix bad grammar when putting on not-yet-seen Eyes of the Overworld while blind
|
||||||
don't "walk quietly" while levitating
|
don't "walk quietly" while levitating
|
||||||
fix message handling when multiple shopkeepers are present at end of game
|
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
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
@@ -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. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* 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 */
|
/* strip leading and trailing spaces; unnames monster if all spaces */
|
||||||
(void)mungspaces(buf);
|
(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)
|
if (mtmp->data->geno & G_UNIQ)
|
||||||
pline("%s doesn't like being called names!", upstart(monnambuf));
|
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
|
else
|
||||||
(void) christen_monst(mtmp, buf);
|
(void) christen_monst(mtmp, buf);
|
||||||
return(0);
|
return(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user