Merge branch 'NetHack-3.6'

This commit is contained in:
nhmall
2019-05-19 10:12:39 -04:00
5 changed files with 34 additions and 16 deletions
+4 -2
View File
@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.5 $ $NHDT-Date: 1558171542 2019/05/18 09:25:42 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.8 $ $NHDT-Date: 1558248715 2019/05/19 06:51:55 $
This fixes36.3 file is here to capture information about updates in the 3.6.x 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, lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -15,11 +15,11 @@ when examining the map with '/' or ';', picking a symbol which is used for
more than 4 things yielded a sentence lacking its terminating period more than 4 things yielded a sentence lacking its terminating period
billing and payment issue as a result of glob coalescing billing and payment issue as a result of glob coalescing
glob pricing did not consider weight properly glob pricing did not consider weight properly
glob shop interaction improved to handle more of the expected scenarios
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
------------------------------------------------------------------ ------------------------------------------------------------------
glob shop interaction improved to handle more of the expected scenarios
Platform- and/or Interface-Specific Fixes or Features Platform- and/or Interface-Specific Fixes or Features
@@ -33,6 +33,8 @@ curses: when all available lines in the message window are in use,
leaving part of longer underlying line's text visible leaving part of longer underlying line's text visible
curses: if message window is only one line, cancelling some prompts with ESC curses: if message window is only one line, cancelling some prompts with ESC
left the prompts visible on the message line instead of erasing them 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
Windows: some startup error messages were not being delivered successfully Windows: some startup error messages were not being delivered successfully
+11 -5
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 config.h $NHDT-Date: 1478740241 2016/11/10 01:10:41 $ $NHDT-Branch: master $:$NHDT-Revision: 1.100 $ */ /* NetHack 3.6 config.h $NHDT-Date: 1558248715 2019/05/19 06:51:55 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.122 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2016. */ /*-Copyright (c) Robert Patrick Rankin, 2016. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -80,7 +80,7 @@
#ifdef __BEOS__ #ifdef __BEOS__
#define BEOS_GRAPHICS /* (optional) */ #define BEOS_GRAPHICS /* (optional) */
#define DEFAULT_WINDOW_SYS "BeOS" /* "tty" */ #define DEFAULT_WINDOW_SYS "BeOS" /* "tty" */
#ifndef HACKDIR /* override the default g.hackdir below */ #ifndef HACKDIR /* override the default hackdir below */
#define HACKDIR "/boot/apps/NetHack" #define HACKDIR "/boot/apps/NetHack"
#endif #endif
#endif #endif
@@ -526,9 +526,15 @@ typedef unsigned char uchar;
* probably not useful for normal play */ * probably not useful for normal play */
/* #define EXTRA_SANITY_CHECKS */ /* #define EXTRA_SANITY_CHECKS */
/* EDIT_GETLIN makes the string input in TTY, Qt4, and X11 /* EDIT_GETLIN makes the string input in TTY, curses, Qt4, and X11
so some prompts will remember the previously input text for some prompts be pre-loaded with previously input text (from
(within the same session) */ a previous instance of the same prompt) as the default response.
In some cases, the previous instance can only be within the same
session; in others, such as #annotate, the previous input can be
from any session because the response is saved and restored with
the map. The 'edit' capability is just <delete> or <backspace>
to strip off characters at the end, or <escape> to discard the
whole thing, then type a new end for the text. */
/* #define EDIT_GETLIN */ /* #define EDIT_GETLIN */
/* #define DUMPLOG */ /* End-of-game dump logs */ /* #define DUMPLOG */ /* End-of-game dump logs */
+3 -3
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 invent.c $NHDT-Date: 1555196229 2019/04/13 22:57:09 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.253 $ */ /* NetHack 3.6 invent.c $NHDT-Date: 1558234540 2019/05/19 02:55:40 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.258 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */ /*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -3569,7 +3569,8 @@ register struct obj *otmp, *obj;
if (obj->oclass == COIN_CLASS) if (obj->oclass == COIN_CLASS)
return TRUE; return TRUE;
if (obj->bypass != otmp->bypass) if (obj->bypass != otmp->bypass
|| obj->cursed != otmp->cursed || obj->blessed != otmp->blessed)
return FALSE; return FALSE;
if (obj->globby) if (obj->globby)
@@ -3579,7 +3580,6 @@ register struct obj *otmp, *obj;
*/ */
if (obj->unpaid != otmp->unpaid || obj->spe != otmp->spe if (obj->unpaid != otmp->unpaid || obj->spe != otmp->spe
|| obj->cursed != otmp->cursed || obj->blessed != otmp->blessed
|| obj->no_charge != otmp->no_charge || obj->obroken != otmp->obroken || obj->no_charge != otmp->no_charge || obj->obroken != otmp->obroken
|| obj->otrapped != otmp->otrapped || obj->lamplit != otmp->lamplit) || obj->otrapped != otmp->otrapped || obj->lamplit != otmp->lamplit)
return FALSE; return FALSE;
+1 -1
View File
@@ -4932,7 +4932,7 @@ struct obj *obj_absorber, *obj_absorbed;
amount = bp->price; amount = bp->price;
bill_dummy_object(obj_absorbed); bill_dummy_object(obj_absorbed);
verbalize( verbalize(
"You owe me %ld %s for my %s that %s with your%s", "You owe me %ld %s for my %s that you %s with your%s",
amount, currency(amount), obj_typename(obj_absorbed->otyp), amount, currency(amount), obj_typename(obj_absorbed->otyp),
ANGRY(shkp) ? "had the audacity to mix" : ANGRY(shkp) ? "had the audacity to mix" :
"just mixed", "just mixed",
+15 -5
View File
@@ -448,15 +448,14 @@ curses_message_win_getline(const char *prompt, char *answer, int buffer)
int ch; int ch;
WINDOW *win = curses_get_nhwin(MESSAGE_WIN); WINDOW *win = curses_get_nhwin(MESSAGE_WIN);
int border_space = 0; int border_space = 0;
int len = 0; /* of answer string */ int len; /* of answer string */
boolean border = curses_window_has_border(MESSAGE_WIN); boolean border = curses_window_has_border(MESSAGE_WIN);
*answer = '\0';
orig_cursor = curs_set(0); orig_cursor = curs_set(0);
curses_get_window_size(MESSAGE_WIN, &height, &width); curses_get_window_size(MESSAGE_WIN, &height, &width);
if (border) { if (border) {
height -= 2, width -= 2; /* height -= 2, width -= 2; -- sizes already account for border */
border_space = 1; border_space = 1;
if (mx < 1) if (mx < 1)
mx = 1; mx = 1;
@@ -470,10 +469,21 @@ curses_message_win_getline(const char *prompt, char *answer, int buffer)
maxlines = buffer / width * 2; maxlines = buffer / width * 2;
Strcpy(tmpbuf, prompt); Strcpy(tmpbuf, prompt);
Strcat(tmpbuf, " "); Strcat(tmpbuf, " ");
p_answer = tmpbuf + strlen(tmpbuf);
#ifdef EDIT_GETLIN
len = (int) strlen(answer);
if (len >= buffer) {
len = buffer - 1;
answer[len] = '\0';
}
Strcpy(p_answer, answer);
#else
len = 0;
*answer = '\0';
#endif
nlines = curses_num_lines(tmpbuf, width); nlines = curses_num_lines(tmpbuf, width);
maxlines += nlines * 2; maxlines += nlines * 2;
linestarts = (char **) alloc((unsigned) (maxlines * sizeof (char *))); linestarts = (char **) alloc((unsigned) (maxlines * sizeof (char *)));
p_answer = tmpbuf + strlen(tmpbuf);
linestarts[0] = tmpbuf; linestarts[0] = tmpbuf;
if (mx > border_space) { /* newline */ if (mx > border_space) { /* newline */
@@ -531,7 +541,7 @@ curses_message_win_getline(const char *prompt, char *answer, int buffer)
wmove(win, my, mx); wmove(win, my, mx);
curs_set(1); curs_set(1);
wrefresh(win); wrefresh(win);
curses_got_input(); /* despite its name, before rathre than after... */ curses_got_input(); /* despite its name, before rather than after... */
#ifdef PDCURSES #ifdef PDCURSES
ch = wgetch(win); ch = wgetch(win);
#else #else