-$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.33 $ $NHDT-Date: 1559601004 2019/06/03 22:30:04 $
+$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.34 $ $NHDT-Date: 1559664948 2019/06/04 16:15:48 $
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,
have '&' (whatdoes) command describe movement keystrokes instead of reporting
them as unknown or showing their number_pad action when that is Off
some improvement to the handling of endgame levels filling up with monsters
+if you survive turning into green slime due to life-saving (surviving as a
+ green slime) then die again due to green slimes having been genocided,
+ the feedback was strange because it assumed that the prior message
+ came from answering No to "Really die?" in explore or wizard mode
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
left the prompts visible on the message line instead of erasing them
curses: support EDIT_GETLIN (but like with tty, it's disabled by default) to
pre-load an earlier response as the default answer for some prompts
+ (however, it's skipped if the 'popup_dialog' option is On)
curses: when display windows get reconfigured (after setting align_status,
align_message, statuslines, windowborders or due to external resize),
the message window was being refreshed with the oldest available N
-/* NetHack 3.6 flag.h $NHDT-Date: 1554155745 2019/04/01 21:55:45 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.150 $ */
+/* NetHack 3.6 flag.h $NHDT-Date: 1559664948 2019/06/04 16:15:48 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.151 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2006. */
/* NetHack may be freely redistributed. See license for details. */
PLNMSG_TOWER_OF_FLAME, /* scroll of fire */
PLNMSG_CAUGHT_IN_EXPLOSION, /* explode() feedback */
PLNMSG_OBJ_GLOWS, /* "the <obj> glows <color>" */
- PLNMSG_OBJNAM_ONLY /* xname/doname only, for #tip */
+ PLNMSG_OBJNAM_ONLY, /* xname/doname only, for #tip */
+ PLNMSG_OK_DONT_DIE /* overriding death in explore/wizard mode */
};
/* runmode options */
-/* NetHack 3.6 end.c $NHDT-Date: 1558921075 2019/05/27 01:37:55 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.174 $ */
+/* NetHack 3.6 end.c $NHDT-Date: 1559664950 2019/06/04 16:15:50 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.175 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
if (!survive && (wizard || discover) && how <= GENOCIDED
&& !paranoid_query(ParanoidDie, "Die?")) {
pline("OK, so you don't %s.", (how == CHOKING) ? "choke" : "die");
+ iflags.last_msg = PLNMSG_OK_DONT_DIE;
savelife(how);
survive = TRUE;
}
-/* NetHack 3.6 hack.c $NHDT-Date: 1559313320 2019/05/31 14:35:20 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.212 $ */
+/* NetHack 3.6 hack.c $NHDT-Date: 1559664951 2019/06/04 16:15:51 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.213 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
nomovemsg = msg_override;
else if (!nomovemsg)
nomovemsg = You_can_move_again;
- if (*nomovemsg)
+ if (*nomovemsg) {
pline("%s", nomovemsg);
+ /* follow "you survived that attempt on your life" with a message
+ about current form if it's not the default; primarily for
+ life-saving while turning into green slime but is also a reminder
+ if life-saved while poly'd and Unchanging (explore or wizard mode
+ declining to die since can't be both Unchanging and Lifesaved) */
+ if (Upolyd && !strncmpi(nomovemsg, "You survived that ", 18))
+ You("are %s", an(mons[u.umonnum].mname)); /* (ignore Hallu) */
+ }
nomovemsg = 0;
u.usleep = 0;
multi_reason = NULL;
-/* NetHack 3.6 polyself.c $NHDT-Date: 1556497911 2019/04/29 00:31:51 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.132 $ */
+/* NetHack 3.6 polyself.c $NHDT-Date: 1559664952 2019/06/04 16:15:52 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.133 $ */
/* Copyright (C) 1987, 1988, 1989 by Ken Arromdee */
/* NetHack may be freely redistributed. See license for details. */
const char *fmt, *arg;
{
boolean sticky = (sticks(youmonst.data) && u.ustuck && !u.uswallow),
- was_mimicking = (U_AP_TYPE == M_AP_OBJECT);
+ was_mimicking = (U_AP_TYPE != M_AP_NOTHING);
boolean was_blind = !!Blind;
if (Upolyd) {
if (multi < 0)
unmul("");
youmonst.m_ap_type = M_AP_NOTHING;
+ youmonst.mappearance = 0;
}
newsym(u.ux, u.uy);
if (mons[mntmp].mlet != S_MIMIC) {
/* as in polyman() */
youmonst.m_ap_type = M_AP_NOTHING;
+ youmonst.mappearance = 0;
}
if (is_male(&mons[mntmp])) {
if (flags.female)
-/* NetHack 3.6 potion.c $NHDT-Date: 1549074254 2019/02/02 02:24:14 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.160 $ */
+/* NetHack 3.6 potion.c $NHDT-Date: 1559664951 2019/06/04 16:15:51 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.161 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
if (msg)
pline("%s", msg);
}
- if (!Slimed)
+ if (!Slimed) {
dealloc_killer(find_delayed_killer(SLIMED));
+ /* fake appearance is set late in turn-to-slime countdown */
+ if (youmonst.m_ap_type == M_AP_MONSTER
+ && youmonst.mappearance == PM_GREEN_SLIME) {
+ youmonst.m_ap_type = M_AP_NOTHING;
+ youmonst.mappearance = 0;
+ }
+ }
}
/* start or stop petrification */
-/* NetHack 3.6 timeout.c $NHDT-Date: 1545182148 2018/12/19 01:15:48 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.89 $ */
+/* NetHack 3.6 timeout.c $NHDT-Date: 1559664953 2019/06/04 16:15:53 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.90 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2018. */
/* NetHack may be freely redistributed. See license for details. */
del_light_source(LS_MONSTER, monst_to_any(&youmonst));
save_mvflags = mvitals[PM_GREEN_SLIME].mvflags;
mvitals[PM_GREEN_SLIME].mvflags = save_mvflags & ~G_GENOD;
+ /* become a green slime; also resets youmonst.m_ap_type+.mappearance */
(void) polymon(PM_GREEN_SLIME);
mvitals[PM_GREEN_SLIME].mvflags = save_mvflags;
done(TURNED_SLIME);
/* life-saved; even so, hero still has turned into green slime;
player may have genocided green slimes after being infected */
if ((mvitals[PM_GREEN_SLIME].mvflags & G_GENOD) != 0) {
+ char slimebuf[BUFSZ];
+
killer.format = KILLED_BY;
Strcpy(killer.name, "slimicide");
- /* immediately follows "OK, so you don't die." */
- pline("Yes, you do. Green slime has been genocided...");
+ /* vary the message depending upon whether life-save was due to
+ amulet or due to declining to die in explore or wizard mode */
+ Strcpy(slimebuf, "green slime has been genocided...");
+ if (iflags.last_msg == PLNMSG_OK_DONT_DIE)
+ /* follows "OK, so you don't die." and arg is second sentence */
+ pline("Yes, you do. %s", upstart(slimebuf));
+ else
+ /* follows "The medallion crumbles to dust." */
+ pline("Unfortunately, %s", slimebuf);
+ /* die again; no possibility of amulet this time */
done(GENOCIDED);
/* could be life-saved again (only in explore or wizard mode)
but green slimes are gone; just stay in current form */