Merge branch 'master' into win32-x64-working
Conflicts: src/mon.c Changes to be committed: modified: DEVEL/Developer.txt modified: dat/endgame.des modified: include/patchlevel.h modified: include/you.h modified: src/mon.c modified: src/sounds.c modified: src/spell.c modified: src/vault.c modified: win/share/tiletext.c
This commit is contained in:
26
src/mon.c
26
src/mon.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 mon.c $NHDT-Date: 1426470347 2015/03/16 01:45:47 $ $NHDT-Branch: derek-farming $:$NHDT-Revision: 1.140 $ */
|
||||
/* NetHack 3.5 mon.c $NHDT-Date: 1429584308 2015/04/21 02:45:08 $ $NHDT-Branch: master $:$NHDT-Revision: 1.164 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -1255,15 +1255,13 @@ dmonsfree()
|
||||
int count = 0;
|
||||
|
||||
for (mtmp = &fmon; *mtmp;) {
|
||||
freetmp = *mtmp;
|
||||
if (freetmp->mhp <= 0 && !freetmp->isgd) {
|
||||
if (freetmp == context.polearm.hitmon)
|
||||
context.polearm.hitmon = NULL;
|
||||
*mtmp = freetmp->nmon;
|
||||
dealloc_monst(freetmp);
|
||||
count++;
|
||||
} else
|
||||
mtmp = &(freetmp->nmon);
|
||||
freetmp = *mtmp;
|
||||
if (freetmp->mhp <= 0 && !freetmp->isgd) {
|
||||
*mtmp = freetmp->nmon;
|
||||
dealloc_monst(freetmp);
|
||||
count++;
|
||||
} else
|
||||
mtmp = &(freetmp->nmon);
|
||||
}
|
||||
|
||||
if (count != iflags.purge_monsters)
|
||||
@@ -1432,6 +1430,8 @@ m_detach(mtmp, mptr)
|
||||
struct monst *mtmp;
|
||||
struct permonst *mptr; /* reflects mtmp->data _prior_ to mtmp's death */
|
||||
{
|
||||
if (mtmp == context.polearm.hitmon)
|
||||
context.polearm.hitmon = 0;
|
||||
if (mtmp->mleashed) m_unleash(mtmp, FALSE);
|
||||
/* to prevent an infinite relobj-flooreffects-hmon-killed loop */
|
||||
mtmp->mtrapped = 0;
|
||||
@@ -1719,7 +1719,11 @@ mongone(mdef)
|
||||
register struct monst *mdef;
|
||||
{
|
||||
mdef->mhp = 0; /* can skip some inventory bookkeeping */
|
||||
/* Player is thrown from his steed when it disappears */
|
||||
|
||||
/* dead vault guard is actually kept at coordinate <0,0> until
|
||||
his temporary corridor to/from the vault has been removed */
|
||||
if (mdef->isgd && !grddead(mdef)) return;
|
||||
/* hero is thrown from his steed when it disappears */
|
||||
if (mdef == u.usteed)
|
||||
dismount_steed(DISMOUNT_GENERIC);
|
||||
|
||||
|
||||
@@ -1001,6 +1001,9 @@ dochat()
|
||||
}
|
||||
|
||||
tx = u.ux+u.dx; ty = u.uy+u.dy;
|
||||
|
||||
if (!isok(tx,ty)) return (0);
|
||||
|
||||
mtmp = m_at(tx, ty);
|
||||
|
||||
if ((!mtmp || mtmp->mundetected) &&
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 spell.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
|
||||
/* NetHack 3.5 spell.c $NHDT-Date: 1429513494 2015/04/20 07:04:54 $ $NHDT-Branch: master $:$NHDT-Revision: 1.57 $ */
|
||||
/* NetHack 3.5 spell.c $Date: 2011/12/29 22:01:25 $ $Revision: 1.44 $ */
|
||||
/* Copyright (c) M. Stephenson 1988 */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -457,6 +457,12 @@ register struct obj *spellbook;
|
||||
if (read_tribute("books", tribtitle, 0)) {
|
||||
u.uconduct.literate++;
|
||||
check_unpaid(spellbook);
|
||||
if (!u.uevent.read_tribute) {
|
||||
/* give bonus of 20 xp and 4*20+0 pts */
|
||||
more_experienced(20, 0);
|
||||
newexplevel();
|
||||
u.uevent.read_tribute = 1; /* only once */
|
||||
}
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 vault.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
|
||||
/* NetHack 3.5 vault.c $NHDT-Date: 1429584309 2015/04/21 02:45:09 $ $NHDT-Branch: master $:$NHDT-Revision: 1.33 $ */
|
||||
/* NetHack 3.5 vault.c $Date: 2011/10/13 00:31:10 $ $Revision: 1.28 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -141,6 +141,8 @@ register struct monst *grd;
|
||||
relobj(grd, 0, FALSE);
|
||||
/* guard is dead; monster traversal loops should skip it */
|
||||
grd->mhp = 0;
|
||||
if (grd == context.polearm.hitmon)
|
||||
context.polearm.hitmon = 0;
|
||||
/* see comment by newpos in gd_move() */
|
||||
remove_monster(grd->mx, grd->my);
|
||||
newsym(grd->mx, grd->my);
|
||||
|
||||
Reference in New Issue
Block a user