From: PatR Date: Mon, 25 Apr 2016 07:58:44 +0000 (-0700) Subject: baalz hack fixup fix... X-Git-Tag: NetHack-3.6.1_RC01~808 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4c6c2b02edcdc469a352cbafcfa34339b61fed7c;p=nethack baalz hack fixup fix... I saw a lich in solid wall at one of the spots which gehennom.des marks with a pool (so that baalz_fixup() can find the two spots that need post-wallification fixup). I could understand the special level loader placing a swimming or flying monster there, but don't know whether it might do that for a lich (which doesn't need to breathe) so am not sure whether this actually fixes what I observed. The lich was there for far too long to have been a shapechanger, but when I went back to the save file it was no longer there, producing another puzzle. --- diff --git a/doc/fixes36.1 b/doc/fixes36.1 index 9cac76627..492c522c8 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -228,6 +228,7 @@ post-3.6.0: more sortloot revisions post-3.6.0: fix inventory menu for response of '?' to getobj (more sortloot revamp fallout) post-3.6.0: rings covered by non-cursed gloves not listed as 'R' candidates +post-3.6.0: in baalz_fixup, move any monster away from the two fake pool spots Platform- and/or Interface-Specific Fixes diff --git a/src/mkmaze.c b/src/mkmaze.c index 3f89f2adb..03d4b0767 100644 --- a/src/mkmaze.c +++ b/src/mkmaze.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 mkmaze.c $NHDT-Date: 1449269918 2015/12/04 22:58:38 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.42 $ */ +/* NetHack 3.6 mkmaze.c $NHDT-Date: 1461571093 2016/04/25 07:58:13 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.47 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -372,6 +372,7 @@ d_level *lev; STATIC_OVL void baalz_fixup() { + struct monst *mtmp; int x, y, lastx, lasty; /* @@ -381,8 +382,8 @@ baalz_fixup() * 'lastx - 1' and 'lasty - 1' for ending don't-clean column and row) * and the interior is protected against that (in wall_cleanup()). * - * Assumes level.flags.corrmaze, otherwise the bug legs will have - * already been "cleaned" away by general wallification. + * Assumes level.flags.corrmaze is True, otherwise the bug legs will + * have already been "cleaned" away by general wallification. */ /* find low and high x for to-be-wallified portion of level */ @@ -432,12 +433,16 @@ baalz_fixup() && isok(x, y + 1) && levl[x][y + 1].typ == TUWALL) { levl[x][y].typ = BRCORNER; levl[x][y + 1].typ = HWALL; + if ((mtmp = m_at(x, y)) != 0) /* something at temporary pool... */ + (void) rloc(mtmp, FALSE); } x = bughack.delarea.x2, y = bughack.delarea.y2; if (isok(x, y) && levl[x][y].typ == TLWALL && isok(x, y - 1) && levl[x][y - 1].typ == TDWALL) { levl[x][y].typ = TRCORNER; levl[x][y - 1].typ = HWALL; + if ((mtmp = m_at(x, y)) != 0) /* something at temporary pool... */ + (void) rloc(mtmp, FALSE); } /* reset bughack region; set low end to so that