Merge branch 'master' into NetHack-3.7
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
14
src/mklev.c
14
src/mklev.c
@@ -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);
|
||||
}
|
||||
|
||||
16
src/pray.c
16
src/pray.c
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user