Merge branch 'NetHack-3.6'

This commit is contained in:
nhmall
2019-08-15 21:07:45 -04:00
3 changed files with 35 additions and 7 deletions

View File

@@ -12,6 +12,12 @@ matrix:
- os: linux
env: HINTS=linux-x11
compiler: gcc
addons:
apt:
packages:
- libx11-dev
- libxaw7-dev
- xfonts-utils
script: "cd sys/unix/ && sh setup.sh hints/$HINTS && cd ../../ && make install"
- os: linux
env: HINTS=linux-qt5
@@ -19,6 +25,9 @@ matrix:
addons:
apt:
packages:
- libx11-dev
- libxaw7-dev
- xfonts-utils
- qtbase5-dev
- qtmultimedia5-dev
- qtbase5-dev-tools

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.102 $ $NHDT-Date: 1565574993 2019/08/12 01:56:33 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.103 $ $NHDT-Date: 1565833748 2019/08/15 01:49:08 $
This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -120,6 +120,11 @@ fix typo in end_of_input() present since 3.6.0 that would prevent compilation
for NOSAVEONHANGUP+INSURANCE configuration
when a status condition becomes fatal, keep it listed as an active condition
during disclosure and/or dumplog rather than having it already reset
when a shape-shifted sandestin was turned to stone, it died and reverted to
sandestin form with 0 HP; that confused known_hitum() because
sandestins are immune to stoning; net result was monster dying twice,
triggering "dmonsfree: N removed doesn't match N+1 pending" warning;
instead of dying, make it revert to sandestin form with full health
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 mon.c $NHDT-Date: 1560791350 2019/06/17 17:09:10 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.294 $ */
/* NetHack 3.6 mon.c $NHDT-Date: 1565833749 2019/08/15 01:49:09 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.296 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1361,8 +1361,8 @@ long flag;
thrudoor = TRUE;
}
nexttry: /* eels prefer the water, but if there is no water nearby,
they will crawl over land */
nexttry: /* eels prefer the water, but if there is no water nearby,
they will crawl over land */
if (mon->mconf) {
flag |= ALLOW_ALL;
flag &= ~NOTONL;
@@ -2183,7 +2183,9 @@ struct monst *mdef;
xchar x = mdef->mx, y = mdef->my;
boolean wasinside = FALSE;
if (!vamp_stone(mdef)) /* vampshifter reverts to vampire */
/* vampshifter reverts to vampire;
3.6.3: also used to unshift shape-changed sandestin */
if (!vamp_stone(mdef))
return;
/* we have to make the statue before calling mondead, to be able to
@@ -2452,7 +2454,7 @@ int xkill_flags; /* 1: suppress message, 2: suppress corpse, 4: pacifist */
/* monster is gone, corpse or other object might now be visible */
newsym(x, y);
cleanup:
cleanup:
/* punish bad behaviour */
if (is_human(mdat)
&& (!always_hostile(mdat) && mtmp->malign <= 0)
@@ -2586,6 +2588,18 @@ struct monst *mtmp;
newsym(mtmp->mx, mtmp->my);
return FALSE; /* didn't petrify */
}
} else if (mtmp->cham >= LOW_PM
&& (mons[mtmp->cham].mresists & MR_STONE)) {
/* sandestins are stoning-immune so if hit by stoning damage
they revert to innate shape rather than become a statue */
mtmp->mcanmove = 1;
mtmp->mfrozen = 0;
if (mtmp->mhpmax <= 0)
mtmp->mhpmax = 10;
mtmp->mhp = mtmp->mhpmax;
(void) newcham(mtmp, &mons[mtmp->cham], FALSE, TRUE);
newsym(mtmp->mx, mtmp->my);
return FALSE; /* didn't petrify */
}
return TRUE;
}
@@ -2686,7 +2700,7 @@ struct monst *mon;
mtmp->mstate |= MON_OBLITERATE;
mongone(mtmp);
/* places in the code might still reference mtmp->mx, mtmp->my */
/* mtmp->mx = mtmp->my = 0; */
/* mtmp->mx = mtmp->my = 0; */
rloc_to(mon, mx, my); /* note: mon, not mtmp */
/* last resort - migrate mon to the next plane */