Merge branch 'master' into NetHack-3.7

This commit is contained in:
nhmall
2019-07-07 07:18:57 -04:00
7 changed files with 42 additions and 13 deletions

View File

@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.84 $ $NHDT-Date: 1562203850 2019/07/04 01:30:50 $
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.86 $ $NHDT-Date: 1562462061 2019/07/07 01:14:21 $
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,
@@ -98,6 +98,7 @@ if an engulfer has any worn items, hero could pick them up from inside and
they wouldn't be unworn properly, eventually triggering warnings or
worse (Juiblex will wear an amulet if created with one; a shapechanger
might wear one and then turn into an engulfer)
kicking an altar ignored god's wrath if hero injured himself during the kick
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
@@ -169,6 +170,7 @@ curses: when map window was clipped, the 'scrollbars' shown to indicate which
the 2nd and 3rd fifths (for example) were currently within view
curses: support users's setting for erase char and kill char when getting a
line of input with 'popup_dialog' Off (already supported for popup On)
curses: attempting to use ^H to rush left actually executed ^G (#wizgenesis)
curses+'perm_invent': entries were wrapping without any control; usually not
noticeable because next entry overwrote, but visible for final entry
when whole inventory fit within the available height; looked ok with

View File

@@ -5947,8 +5947,8 @@ char def;
res = (*windowprocs.win_yn_function)(query, resp, def);
#ifdef DUMPLOG
if (idx == g.saved_pline_index) {
/* when idx is still the same as saved_pline_index, the interface
didn't put the prompt into saved_plines[]; we put a simplified
/* when idx is still the same as g.saved_pline_index, the interface
didn't put the prompt into g.saved_plines[]; we put a simplified
version in there now (without response choices or default) */
Sprintf(dumplog_buf, "%s ", query);
(void) key2txt((uchar) res, eos(dumplog_buf));

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 dokick.c $NHDT-Date: 1551920353 2019/03/07 00:59:13 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.131 $ */
/* NetHack 3.6 dokick.c $NHDT-Date: 1562462061 2019/07/07 01:14:21 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.133 $ */
/* Copyright (c) Izchak Miller, Mike Stephenson, Steve Linhart, 1989. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1053,9 +1053,9 @@ dokick()
if (Levitation)
goto dumb;
You("kick %s.", (Blind ? something : "the altar"));
altar_wrath(x, y);
if (!rn2(3))
goto ouch;
altar_wrath(x, y);
exercise(A_DEX, TRUE);
return 1;
}

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 mklev.c $NHDT-Date: 1560304468 2019/06/12 01:54:28 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.61 $ */
/* NetHack 3.6 mklev.c $NHDT-Date: 1562455089 2019/07/06 23:18:09 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.63 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Alex Smith, 2017. */
/* NetHack may be freely redistributed. See license for details. */
@@ -581,6 +581,10 @@ clear_level_structures()
register int x, y;
register struct rm *lev;
/* note: normally we'd start at x=1 because map column #0 isn't used
(except for placing vault guard at <0,0> when removed from the map
but not from the level); explicitly reset column #0 along with the
rest so that we start the new level with a completely clean slate */
for (x = 0; x < COLNO; x++) {
lev = &levl[x][0];
for (y = 0; y < ROWNO; y++) {
@@ -635,6 +639,7 @@ clear_level_structures()
xdnstair = ydnstair = xupstair = yupstair = 0;
g.sstairs.sx = g.sstairs.sy = 0;
xdnladder = ydnladder = xupladder = yupladder = 0;
g.dnstairs_room = g.upstairs_room = g.sstairs_room = (struct mkroom *) 0;
g.made_branch = FALSE;
clear_regions();
}
@@ -1014,6 +1019,13 @@ mklev()
for (ridx = 0; ridx < SIZE(g.rooms); ridx++)
g.rooms[ridx].orig_rtype = g.rooms[ridx].rtype;
/* something like this usually belongs in clear_level_structures()
but these aren't saved and restored so might not retain their
values for the life of the current level; reset them to default
now so that they never do and no one will be tempted to introduce
a new use of them for anything on this level */
g.dnstairs_room = g.upstairs_room = g.sstairs_room = (struct mkroom *) 0;
reseed_random(rn2);
reseed_random(rn2_on_display_rng);
}

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 pray.c $NHDT-Date: 1559853037 2019/06/06 20:30:37 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.114 $ */
/* NetHack 3.6 pray.c $NHDT-Date: 1562462064 2019/07/07 01:14:24 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.116 $ */
/* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2221,13 +2221,21 @@ register int x, y;
{
aligntyp altaralign = a_align(x, y);
if (!strcmp(align_gname(altaralign), u_gname())) {
if (u.ualign.type == altaralign && u.ualign.record > -rn2(4)) {
godvoice(altaralign, "How darest thou desecrate my altar!");
(void) adjattrib(A_WIS, -1, FALSE);
u.ualign.record--;
} else {
pline("A voice (could it be %s?) whispers:", align_gname(altaralign));
pline("%s %s%s:",
!Deaf ? "A voice (could it be"
: "Despite your deafness, you seem to hear",
align_gname(altaralign),
!Deaf ? "?) whispers" : " say");
verbalize("Thou shalt pay, infidel!");
change_luck(-1);
/* higher luck is more likely to be reduced; as it approaches -5
the chance to lose another point drops down, eventually to 0 */
if (Luck > -5 && rn2(Luck + 6))
change_luck(rn2(20) ? -1 : -2);
}
}

View File

@@ -661,7 +661,7 @@ curses_message_win_getline(const char *prompt, char *answer, int buffer)
goto alldone;
case '\177': /* DEL/Rubout */
case KEY_DC: /* delete-character */
case '\b': /* ^H (Backspace: '\011') */
case '\b': /* ^H (Backspace: '\010') */
case KEY_BACKSPACE:
if (len < 1) {
len = 1;
@@ -887,7 +887,7 @@ boolean restoring_msghist;
static int stash_count;
static nhprev_mesg *stash_head = 0;
#ifdef DUMPLOG
/* extern unsigned g.saved_pline_index; */ /* pline.c */
/* extern unsigned g.saved_pline_index; */ /* pline.c */
#endif
if (restoring_msghist && !initd) {
@@ -899,7 +899,7 @@ boolean restoring_msghist;
last_mesg = (nhprev_mesg *) 0; /* no need to remember the tail */
initd = TRUE;
#ifdef DUMPLOG
/* this suffices; there's no need to scrub saved_pline[] pointers */
/* this suffices; there's no need to scrub g.saved_pline[] pointers */
g.saved_pline_index = 0;
#endif
}

View File

@@ -792,6 +792,13 @@ curses_convert_keys(int key)
/* Handle arrow keys */
switch (key) {
case KEY_BACKSPACE:
/* we can't distinguish between a separate backspace key and
explicit Ctrl+H intended to rush to the left; without this,
a value for ^H greater than 255 is passed back to core's
readchar() and stripping the value down to 0..255 yields ^G! */
ret = C('H');
break;
case KEY_LEFT:
if (iflags.num_pad) {
ret = '4';