Skip to content

Commit

Permalink
Delphi msg (trunk only)
Browse files Browse the repository at this point in the history
<email deleted> wrote:
> * Angering the Oracle then entering her room still gives
> "Hello, <Dudley>, welcome to Delphi!"
  • Loading branch information
nethack.allison committed May 10, 2006
1 parent e0e3bf2 commit 45b5999
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 10 deletions.
1 change: 1 addition & 0 deletions doc/fixes35.0
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ preform autopickup and/or report on objects at the spot when a failed #untrap
attempt causes the hero to move onto a trap's location
thrown silver weapon hitting silver-hating poly'd hero got double silver damage
wielded silver weapon hitting silver-hating poly'd hero lacked silver message
don't welcome the hero to Delphi if the Oracle was angered before first entry


Platform- and/or Interface-Specific Fixes
Expand Down
32 changes: 22 additions & 10 deletions src/hack.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ STATIC_DCL int FDECL(still_chewing,(XCHAR_P,XCHAR_P));
STATIC_DCL void NDECL(dosinkfall);
#endif
STATIC_DCL boolean FDECL(findtravelpath, (BOOLEAN_P));
STATIC_DCL boolean FDECL(monstinroom, (struct permonst *,int));
STATIC_DCL boolean FDECL(monstinroom, (struct permonst *,int,struct monst **));
STATIC_DCL boolean FDECL(doorless_door, (int,int));
STATIC_DCL void FDECL(move_update, (BOOLEAN_P));

Expand Down Expand Up @@ -1649,16 +1649,23 @@ stillinwater:;
}

STATIC_OVL boolean
monstinroom(mdat,roomno)
monstinroom(mdat,roomno,mon)
struct permonst *mdat;
struct monst **mon;
int roomno;
{
register struct monst *mtmp;

if (mon) *mon = (struct monst *)0;
for(mtmp = fmon; mtmp; mtmp = mtmp->nmon)
if(!DEADMONSTER(mtmp) && mtmp->data == mdat &&
index(in_rooms(mtmp->mx, mtmp->my, 0), roomno + ROOMOFFSET))
index(in_rooms(mtmp->mx, mtmp->my, 0), roomno + ROOMOFFSET)) {
/* If the monster is one-of-a-kind then update mon
* with a pointer to that monster.
*/
if (mon && (mdat->geno & G_UNIQ)) *mon = mtmp;
return(TRUE);
}
return(FALSE);
}

Expand Down Expand Up @@ -1801,7 +1808,7 @@ void
check_special_room(newlev)
register boolean newlev;
{
register struct monst *mtmp;
struct monst *mtmp, *uniquemon = (struct monst *)0;
char *ptr;

move_update(newlev);
Expand Down Expand Up @@ -1855,18 +1862,23 @@ register boolean newlev;
You("enter an anthole!");
break;
case BARRACKS:
if(monstinroom(&mons[PM_SOLDIER], roomno) ||
monstinroom(&mons[PM_SERGEANT], roomno) ||
monstinroom(&mons[PM_LIEUTENANT], roomno) ||
monstinroom(&mons[PM_CAPTAIN], roomno))
if(monstinroom(&mons[PM_SOLDIER], roomno, &uniquemon) ||
monstinroom(&mons[PM_SERGEANT], roomno, &uniquemon) ||
monstinroom(&mons[PM_LIEUTENANT], roomno, &uniquemon) ||
monstinroom(&mons[PM_CAPTAIN], roomno, &uniquemon))
You("enter a military barracks!");
else
You("enter an abandoned barracks.");
break;
case DELPHI:
if(monstinroom(&mons[PM_ORACLE], roomno))
verbalize("%s, %s, welcome to Delphi!",
if(monstinroom(&mons[PM_ORACLE], roomno, &uniquemon)) {
if (uniquemon && !uniquemon->mpeaceful)
verbalize("You're in Delphi, %s.",
plname);
else
verbalize("%s, %s, welcome to Delphi!",
Hello((struct monst *) 0), plname);
}
break;
case TEMPLE:
intemple(roomno + ROOMOFFSET);
Expand Down

0 comments on commit 45b5999

Please sign in to comment.