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
|
riding a steed into water kills the steed if it cannot swim, with penalties
|
||||||
gaze attacks now stop occupation
|
gaze attacks now stop occupation
|
||||||
proper death message when killed by "plain" high priest
|
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't recover levels lost when polymorphing into new man
|
||||||
blessed full healing can reciver at most half of other lost levels
|
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
|
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(Adjmonnam, (struct monst *,const char *));
|
||||||
E char *FDECL(Amonnam, (struct monst *));
|
E char *FDECL(Amonnam, (struct monst *));
|
||||||
E char *FDECL(a_monnam, (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 *NDECL(rndmonnam);
|
||||||
E const char *FDECL(hcolor, (const char *));
|
E const char *FDECL(hcolor, (const char *));
|
||||||
#ifdef REINCARNATION
|
#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. */
|
/* 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. */
|
||||||
|
|
||||||
@@ -268,10 +268,7 @@ do_mname()
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
/* special case similar to the one in lookat() */
|
/* special case similar to the one in lookat() */
|
||||||
if (mtmp->data != &mons[PM_HIGH_PRIEST])
|
(void) distant_monnam(mtmp, ARTICLE_THE, buf);
|
||||||
Strcpy(buf, x_monnam(mtmp, ARTICLE_THE, (char *)0, 0, TRUE));
|
|
||||||
else
|
|
||||||
Sprintf(buf, "the high priest%s", mtmp->female ? "ess" : "");
|
|
||||||
Sprintf(qbuf, "What do you want to call %s?", buf);
|
Sprintf(qbuf, "What do you want to call %s?", buf);
|
||||||
getlin(qbuf,buf);
|
getlin(qbuf,buf);
|
||||||
if(!*buf || *buf == '\033') return(0);
|
if(!*buf || *buf == '\033') return(0);
|
||||||
@@ -844,6 +841,27 @@ register struct monst *mtmp;
|
|||||||
return(bp);
|
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[] = {
|
static const char *bogusmons[] = {
|
||||||
"jumbo shrimp", "giant pigmy", "gnu", "killer penguin",
|
"jumbo shrimp", "giant pigmy", "gnu", "killer penguin",
|
||||||
"giant cockroach", "giant slug", "maggot", "pterodactyl",
|
"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. */
|
/* 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. */
|
||||||
|
|
||||||
@@ -98,26 +98,22 @@ lookat(x, y, buf, monbuf)
|
|||||||
bhitpos.x = x;
|
bhitpos.x = x;
|
||||||
bhitpos.y = y;
|
bhitpos.y = y;
|
||||||
mtmp = m_at(x,y);
|
mtmp = m_at(x,y);
|
||||||
if(mtmp != (struct monst *) 0) {
|
if (mtmp != (struct monst *) 0) {
|
||||||
register boolean hp = (mtmp->data == &mons[PM_HIGH_PRIEST]);
|
char *name, monnambuf[BUFSZ];
|
||||||
char coybuf[QBUFSZ];
|
boolean accurate = !Hallucination;
|
||||||
char *name;
|
|
||||||
|
|
||||||
if (hp && !Hallucination)
|
if (mtmp->data == &mons[PM_COYOTE] && accurate)
|
||||||
name = (mtmp->female ? "high priestess" : "high priest");
|
name = coyotename(mtmp, monnambuf);
|
||||||
else if (mtmp->data == &mons[PM_COYOTE] && !Hallucination)
|
|
||||||
name = coyotename(mtmp, coybuf);
|
|
||||||
else
|
else
|
||||||
name = x_monnam(mtmp, ARTICLE_NONE, (char *)0, 0, TRUE);
|
name = distant_monnam(mtmp, ARTICLE_NONE, monnambuf);
|
||||||
|
|
||||||
pm = mtmp->data;
|
pm = mtmp->data;
|
||||||
Sprintf(buf, "%s%s%s",
|
Sprintf(buf, "%s%s%s",
|
||||||
(mtmp->mx != x || mtmp->my != y) ?
|
(mtmp->mx != x || mtmp->my != y) ?
|
||||||
((mtmp->isshk && !Hallucination)
|
((mtmp->isshk && accurate)
|
||||||
? "tail of " : "tail of a ") : "",
|
? "tail of " : "tail of a ") : "",
|
||||||
(!hp && mtmp->mtame && !Hallucination) ? "tame " :
|
(mtmp->mtame && accurate) ? "tame " :
|
||||||
(!hp && mtmp->mpeaceful && !Hallucination) ?
|
(mtmp->mpeaceful && accurate) ? "peaceful " : "",
|
||||||
"peaceful " : "",
|
|
||||||
name);
|
name);
|
||||||
if (u.ustuck == mtmp)
|
if (u.ustuck == mtmp)
|
||||||
Strcat(buf, (Upolyd && sticks(youmonst.data)) ?
|
Strcat(buf, (Upolyd && sticks(youmonst.data)) ?
|
||||||
|
|||||||
Reference in New Issue
Block a user