lookat of high priests

One from <Someone>'s list:  there's no particular reason for
the High Priest of Moloch in the temple on the sanctum level in
Gehennom to have his identity concealed when he's detected from
a distance.  I also changed the concealment of the Astral Plane
to stop when you're adjacent to the priest, since #chat--among
other things, such as simply entering the temple--provides other
means of identifying which temple it is once you're there.

Files patched:
  include/extern.h
  src/do_name.c, pager.c
This commit is contained in:
nethack.rankin
2002-01-19 06:52:03 +00:00
parent cea4a603b2
commit 43a1eadc9c
4 changed files with 35 additions and 19 deletions

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)do_name.c 3.3 2000/06/12 */
/* SCCS Id: @(#)do_name.c 3.3 2002/01/17 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -268,10 +268,7 @@ do_mname()
return(0);
}
/* special case similar to the one in lookat() */
if (mtmp->data != &mons[PM_HIGH_PRIEST])
Strcpy(buf, x_monnam(mtmp, ARTICLE_THE, (char *)0, 0, TRUE));
else
Sprintf(buf, "the high priest%s", mtmp->female ? "ess" : "");
(void) distant_monnam(mtmp, ARTICLE_THE, buf);
Sprintf(qbuf, "What do you want to call %s?", buf);
getlin(qbuf,buf);
if(!*buf || *buf == '\033') return(0);
@@ -844,6 +841,27 @@ register struct monst *mtmp;
return(bp);
}
/* used for monster ID by the '/', ';', and 'C' commands to block remote
identification of the endgame altars via their attending priests */
char *
distant_monnam(mon, article, outbuf)
struct monst *mon;
int article; /* only ARTICLE_NONE and ARTICLE_THE are handled here */
char *outbuf;
{
/* high priest(ess)'s identity is concealed on the Astral Plane,
unless you're adjacent (overridden for hallucination which does
its own obfuscation) */
if (mon->data == &mons[PM_HIGH_PRIEST] && !Hallucination &&
Is_astralevel(&u.uz) && distu(mon->mx, mon->my) > 2) {
Strcpy(outbuf, article == ARTICLE_THE ? "the " : "");
Strcat(outbuf, mon->female ? "high priestess" : "high priest");
} else {
Strcpy(outbuf, x_monnam(mon, article, (char *)0, 0, TRUE));
}
return outbuf;
}
static const char *bogusmons[] = {
"jumbo shrimp", "giant pigmy", "gnu", "killer penguin",
"giant cockroach", "giant slug", "maggot", "pterodactyl",

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)pager.c 3.3 2001/06/10 */
/* SCCS Id: @(#)pager.c 3.3 2002/01/17 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -98,26 +98,22 @@ lookat(x, y, buf, monbuf)
bhitpos.x = x;
bhitpos.y = y;
mtmp = m_at(x,y);
if(mtmp != (struct monst *) 0) {
register boolean hp = (mtmp->data == &mons[PM_HIGH_PRIEST]);
char coybuf[QBUFSZ];
char *name;
if (mtmp != (struct monst *) 0) {
char *name, monnambuf[BUFSZ];
boolean accurate = !Hallucination;
if (hp && !Hallucination)
name = (mtmp->female ? "high priestess" : "high priest");
else if (mtmp->data == &mons[PM_COYOTE] && !Hallucination)
name = coyotename(mtmp, coybuf);
if (mtmp->data == &mons[PM_COYOTE] && accurate)
name = coyotename(mtmp, monnambuf);
else
name = x_monnam(mtmp, ARTICLE_NONE, (char *)0, 0, TRUE);
name = distant_monnam(mtmp, ARTICLE_NONE, monnambuf);
pm = mtmp->data;
Sprintf(buf, "%s%s%s",
(mtmp->mx != x || mtmp->my != y) ?
((mtmp->isshk && !Hallucination)
((mtmp->isshk && accurate)
? "tail of " : "tail of a ") : "",
(!hp && mtmp->mtame && !Hallucination) ? "tame " :
(!hp && mtmp->mpeaceful && !Hallucination) ?
"peaceful " : "",
(mtmp->mtame && accurate) ? "tame " :
(mtmp->mpeaceful && accurate) ? "peaceful " : "",
name);
if (u.ustuck == mtmp)
Strcat(buf, (Upolyd && sticks(youmonst.data)) ?