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:
@@ -388,6 +388,7 @@ going down to floor using > should set Heart of Ahriman invocation timeout
|
||||
riding a steed into water kills the steed if it cannot swim, with penalties
|
||||
gaze attacks now stop occupation
|
||||
proper death message when killed by "plain" high priest
|
||||
don't conceal the identity of Moloch's high priest
|
||||
blessed full healing can't recover levels lost when polymorphing into new man
|
||||
blessed full healing can reciver at most half of other lost levels
|
||||
golden glow when praying will recover lost level if blessed full healing could
|
||||
|
||||
@@ -332,6 +332,7 @@ E char *FDECL(y_monnam, (struct monst *));
|
||||
E char *FDECL(Adjmonnam, (struct monst *,const char *));
|
||||
E char *FDECL(Amonnam, (struct monst *));
|
||||
E char *FDECL(a_monnam, (struct monst *));
|
||||
E char *FDECL(distant_monnam, (struct monst *,int,char *));
|
||||
E const char *NDECL(rndmonnam);
|
||||
E const char *FDECL(hcolor, (const char *));
|
||||
#ifdef REINCARNATION
|
||||
|
||||
@@ -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",
|
||||
|
||||
24
src/pager.c
24
src/pager.c
@@ -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)) ?
|
||||
|
||||
Reference in New Issue
Block a user