Merge branch 'NetHack-3.6.2'

This commit is contained in:
nhmall
2018-12-29 08:47:16 -05:00
15 changed files with 105 additions and 62 deletions

View File

@@ -355,6 +355,8 @@ a config file line with OPTIONS=symset:default, roguesymset:RogueEpyx
avoid potential segfault when doing 'more information' lookup
when built with STATUS_HILITES enabled (the default), gold on status line
was missing '$' prefix for symset:Blank
wizard mode ^G, creating a monster of class 'I' yielded impossible "mkclass
found no class 35 monsters"
tty: turn off an optimization that is the suspected cause of Windows reported
partial status lines following level changes
tty: ensure that current status fields are always copied to prior status
@@ -441,6 +443,7 @@ X11: enable menu [cancel] button for PICK_NONE menus
X11: text popups on OSX wouldn't accept keyboard input unless the 'autofocus'
resource was enabled; most noticeable when trying to dismiss 'things
that are here' while walking over object piles
X11: default to using XPM format tile file and rip screen
General New Features

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 cmd.c $NHDT-Date: 1545128652 2018/12/18 10:24:12 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.322 $ */
/* NetHack 3.6 cmd.c $NHDT-Date: 1546038393 2018/12/28 23:06:33 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.323 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
@@ -3649,18 +3649,18 @@ STATIC_OVL int
size_obj(otmp)
struct obj *otmp;
{
int sz = (int) sizeof(struct obj);
int sz = (int) sizeof (struct obj);
if (otmp->oextra) {
sz += (int) sizeof(struct oextra);
sz += (int) sizeof (struct oextra);
if (ONAME(otmp))
sz += (int) strlen(ONAME(otmp)) + 1;
if (OMONST(otmp))
sz += (int) sizeof(struct monst);
sz += size_monst(OMONST(otmp), FALSE);
if (OMID(otmp))
sz += (int) sizeof(unsigned);
sz += (int) sizeof (unsigned);
if (OLONG(otmp))
sz += (int) sizeof(long);
sz += (int) sizeof (long);
if (OMAILCMD(otmp))
sz += (int) strlen(OMAILCMD(otmp)) + 1;
}

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 read.c $NHDT-Date: 1526728750 2018/05/19 11:19:10 $ $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.155 $ */
/* NetHack 3.6 read.c $NHDT-Date: 1546053040 2018/12/29 03:10:40 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.163 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2488,9 +2488,14 @@ struct _create_particular_data *d;
if (d->which >= LOW_PM)
return TRUE; /* got one */
d->monclass = name_to_monclass(bufp, &d->which);
if (d->which >= LOW_PM) {
d->monclass = MAXMCLASSES; /* matters below */
return TRUE;
} else if (d->monclass == S_invisible) { /* not an actual monster class */
d->which = PM_STALKER;
d->monclass = MAXMCLASSES;
return TRUE;
} else if (d->monclass > 0) {
d->which = g.urole.malenum; /* reset from NON_PM */
return TRUE;

View File

@@ -287,7 +287,7 @@ WINBEOBJ =
#
# libraries for X11
# If USE_XPM is defined in config.h, you will also need -lXpm here.
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
#WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
# WINX11LIB = -lXaw -lXmu -lXt -lX11
# WINX11LIB = -lXaw -lXmu -lXext -lXt -lXpm -lX11 -lm
# WINX11LIB = -lXaw -lXmu -lXpm -lXext -lXt -lX11 -lSM -lICE -lm # BSD/OS 2.0

View File

@@ -35,7 +35,7 @@ WINLIB = $(WINX11LIB)
VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
#WINTTYLIB=-lcurses
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
CHOWN=true
CHGRP=true
@@ -43,4 +43,9 @@ VARDIRPERM = 0755
VARFILEPERM = 0600
GAMEPERM = 0755
# Use XPM format tile file
CFLAGS+=-DUSE_XPM
WINX11LIB+=-lXpm
VARDATND+=rip.xpm
# note: needs libxt-dev libxaw7-dev libx11-dev bdftopcf

View File

@@ -1,5 +1,5 @@
#
# NetHack 3.6 macosx10.11 $NHDT-Date: 1515549543 2018/01/10 01:59:03 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.48 $
# NetHack 3.6 macosx10.11 $NHDT-Date: 1546082880 2018/12/29 11:28:00 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.50 $
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015.
# NetHack may be freely redistributed. See license for details.
#
@@ -106,15 +106,21 @@ WINLIB += -lncurses
endif
ifdef WANT_WIN_X11
WINSRC += $(WINX11SRC)
WINOBJ += $(WINX11OBJ)
WINLIB += $(WINX11LIB)
LFLAGS=-L/opt/X11/lib
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
POSTINSTALL+= bdftopcf win/X11/nh10.bdf > $(HACKDIR)/nh10.pcf; (cd $(HACKDIR); mkfontdir);
CFLAGS += -DX11_GRAPHICS -I/opt/X11/include
# avoid repeated complaints about _X_NONNULL(args...) in <X11/Xfuncproto.h>
CFLAGS += -Wno-variadic-macros
ifdef USE_XPM
CFLAGS += -DUSE_XPM
WINX11LIB += -lXpm
VARDATND += rip.xpm
endif
WINSRC += $(WINX11SRC)
WINOBJ += $(WINX11OBJ)
WINLIB += $(WINX11LIB)
LFLAGS=-L/opt/X11/lib
endif # WANT_WIN_X11
ifdef WANT_WIN_QT

View File

@@ -1,5 +1,5 @@
#
# NetHack 3.6 macosx10.11 $NHDT-Date: 1515549543 2018/01/10 01:59:03 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.48 $
# NetHack 3.6 macosx10.11 $NHDT-Date: 1546082881 2018/12/29 11:28:01 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.55 $
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015.
# NetHack may be freely redistributed. See license for details.
#
@@ -106,15 +106,21 @@ WINLIB += -lncurses
endif
ifdef WANT_WIN_X11
WINSRC += $(WINX11SRC)
WINOBJ += $(WINX11OBJ)
WINLIB += $(WINX11LIB)
LFLAGS=-L/opt/X11/lib
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
POSTINSTALL+= bdftopcf win/X11/nh10.bdf > $(HACKDIR)/nh10.pcf; (cd $(HACKDIR); mkfontdir);
CFLAGS += -DX11_GRAPHICS -I/opt/X11/include
# avoid repeated complaints about _X_NONNULL(args...) in <X11/Xfuncproto.h>
CFLAGS += -Wno-variadic-macros
ifdef USE_XPM
CFLAGS += -DUSE_XPM
WINX11LIB += -lXpm
VARDATND += rip.xpm
endif
WINSRC += $(WINX11SRC)
WINOBJ += $(WINX11OBJ)
WINLIB += $(WINX11LIB)
LFLAGS=-L/opt/X11/lib
endif # WANT_WIN_X11
ifdef WANT_WIN_QT

View File

@@ -1,5 +1,5 @@
#
# NetHack 3.6 macosx10.5 $NHDT-Date: 1447844587 2015/11/18 11:03:07 $ $NHDT-Branch: master $:$NHDT-Revision: 1.27 $
# NetHack 3.6 macosx10.5 $NHDT-Date: 1546082882 2018/12/29 11:28:02 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.30 $
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2009.
# NetHack may be freely redistributed. See license for details.
#
@@ -76,13 +76,19 @@ CFLAGS += -DNOTTYGRAPHICS
endif # !WANT_WIN_TTY
ifdef WANT_WIN_X11
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
POSTINSTALL+= bdftopcf win/X11/nh10.bdf > $(INSTDIR)/nh10.pcf; (cd $(INSTDIR); mkfontdir);
CFLAGS += -DX11_GRAPHICS
ifdef USE_XPM
CFLAGS += -DUSE_XPM
WINX11LIB += -lXpm
VARDATND += rip.xpm
endif
WINSRC += $(WINX11SRC)
WINOBJ += $(WINX11OBJ)
WINLIB += $(WINX11LIB)
LFLAGS=-L/usr/X11R6/lib
VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
POSTINSTALL+= bdftopcf win/X11/nh10.bdf > $(INSTDIR)/nh10.pcf; (cd $(INSTDIR); mkfontdir);
CFLAGS += -DX11_GRAPHICS
endif # WANT_WIN_X11
ifdef WANT_WIN_QT

View File

@@ -1,5 +1,5 @@
#
# NetHack 3.6 macosx10.7 $NHDT-Date: 1447844589 2015/11/18 11:03:09 $ $NHDT-Branch: master $:$NHDT-Revision: 1.31 $
# NetHack 3.6 macosx10.7 $NHDT-Date: 1546082882 2018/12/29 11:28:02 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.34 $
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2009.
# NetHack may be freely redistributed. See license for details.
#
@@ -93,13 +93,19 @@ CFLAGS += -DNOTTYGRAPHICS
endif # !WANT_WIN_TTY
ifdef WANT_WIN_X11
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
POSTINSTALL+= bdftopcf win/X11/nh10.bdf > $(INSTDIR)/nh10.pcf; (cd $(INSTDIR); mkfontdir);
CFLAGS += -DX11_GRAPHICS
ifdef USE_XPM
CFLAGS += -DUSE_XPM
WINX11LIB += -lXpm
VARDATND += rip.xpm
endif
WINSRC += $(WINX11SRC)
WINOBJ += $(WINX11OBJ)
WINLIB += $(WINX11LIB)
LFLAGS=-L/usr/X11R6/lib
VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
POSTINSTALL+= bdftopcf win/X11/nh10.bdf > $(INSTDIR)/nh10.pcf; (cd $(INSTDIR); mkfontdir);
CFLAGS += -DX11_GRAPHICS
endif # WANT_WIN_X11
ifdef WANT_WIN_QT

View File

@@ -1,5 +1,5 @@
#
# NetHack 3.6 macosx10.8 $NHDT-Date: 1455397109 2016/02/13 20:58:29 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.0 $
# NetHack 3.6 macosx10.8 $NHDT-Date: 1546082883 2018/12/29 11:28:03 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.35 $
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2009.
# NetHack may be freely redistributed. See license for details.
#
@@ -101,15 +101,21 @@ CFLAGS += -DNOTTYGRAPHICS
endif # !WANT_WIN_TTY
ifdef WANT_WIN_X11
WINSRC += $(WINX11SRC)
WINOBJ += $(WINX11OBJ)
WINLIB += $(WINX11LIB)
LFLAGS=-L/opt/X11/lib
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11
VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
POSTINSTALL+= bdftopcf win/X11/nh10.bdf > $(INSTDIR)/nh10.pcf; (cd $(INSTDIR); mkfontdir);
CFLAGS += -DX11_GRAPHICS -I/opt/X11/include
# avoid repeated complaints about _X_NONNULL(args...) in <X11/Xfuncproto.h>
CFLAGS += -Wno-variadic-macros
ifdef USE_XPM
CFLAGS += -DUSE_XPM
WINX11LIB += -lXpm
VARDATND += rip.xpm
endif
WINSRC += $(WINX11SRC)
WINOBJ += $(WINX11OBJ)
WINLIB += $(WINX11LIB)
LFLAGS=-L/opt/X11/lib
endif # WANT_WIN_X11
ifdef WANT_WIN_QT

View File

@@ -1661,6 +1661,12 @@ static const char *build_opts[] = {
"terminal capability library",
#endif
#endif
#ifdef USE_XPM
"tile_file in XPM format",
#endif
#ifdef GRAPHIC_TOMBSTONE
"graphical RIP screen",
#endif
#ifdef TIMED_DELAY
"timed wait for display effects",
#endif

View File

@@ -1,4 +1,4 @@
/* $NHDT-Date: 1524689304 2018/04/25 20:48:24 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.11 $ */
/* $NHDT-Date: 1546081295 2018/12/29 11:01:35 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.12 $ */
/* Copyright (c) 2017 by Pasi Kallinen */
/* NetHack may be freely redistributed. See license for details. */
@@ -27,10 +27,11 @@ static unsigned char
pix_to_colormap(pix)
pixel pix;
{
unsigned i;
unsigned long i;
for (i = 0; i < header.ncolors; i++) {
if (pix.r == ColorMap[CM_RED][i] && pix.g == ColorMap[CM_GREEN][i]
if (pix.r == ColorMap[CM_RED][i]
&& pix.g == ColorMap[CM_GREEN][i]
&& pix.b == ColorMap[CM_BLUE][i])
break;
}
@@ -129,7 +130,8 @@ static int
xpm_write(fp)
FILE *fp;
{
int i, j, n;
unsigned long i, j;
unsigned n;
if (header.ncolors > 64) {
Fprintf(stderr, "Sorry, only configured for up to 64 colors\n");
@@ -144,7 +146,7 @@ FILE *fp;
header.ncolors, 1 /* char per color */);
for (i = 0; i < header.ncolors; i++)
Fprintf(fp, "\"%c c #%02x%02x%02x\",\n",
i + '0', /* just one char per color */
(char) (i + '0'), /* just one char per color */
x11_colormap[i][0], x11_colormap[i][1], x11_colormap[i][2]);
n = 0;
@@ -179,7 +181,9 @@ char **argv;
header.per_row = TILES_PER_ROW;
if (argc == 1) {
Fprintf(stderr, "usage: %s txt_file1 [txt_file2 ...] [-grayscale txt_fileN]\n", argv[0]);
Fprintf(stderr,
"usage: %s txt_file1 [txt_file2 ...] [-grayscale txt_fileN]\n",
argv[0]);
exit(1);
}

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 winX.c $NHDT-Date: 1539392992 2018/10/13 01:09:52 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.57 $ */
/* NetHack 3.6 winX.c $NHDT-Date: 1546081304 2018/12/29 11:01:44 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.71 $ */
/* Copyright (c) Dean Luick, 1992 */
/* NetHack may be freely redistributed. See license for details. */
@@ -1440,16 +1440,16 @@ static XtResource resources[] = {
sizeof(XtRPixel), XtOffset(AppResources *, pilemark_color), XtRString,
nhStr("Green") },
#ifdef GRAPHIC_TOMBSTONE
{ nhStr("tombstone"), "Tombstone", XtRString, sizeof(String),
XtOffset(AppResources *, tombstone), XtRString, "rip.xpm" },
{ nhStr("tombtext_x"), "Tombtext_x", XtRInt, sizeof(int),
XtOffset(AppResources *, tombtext_x), XtRString, "155" },
{ nhStr("tombtext_y"), "Tombtext_y", XtRInt, sizeof(int),
XtOffset(AppResources *, tombtext_y), XtRString, "78" },
{ nhStr("tombtext_dx"), "Tombtext_dx", XtRInt, sizeof(int),
XtOffset(AppResources *, tombtext_dx), XtRString, "0" },
{ nhStr("tombtext_dy"), "Tombtext_dy", XtRInt, sizeof(int),
XtOffset(AppResources *, tombtext_dy), XtRString, "13" },
{ nhStr("tombstone"), nhStr("Tombstone"), XtRString, sizeof(String),
XtOffset(AppResources *, tombstone), XtRString, nhStr("rip.xpm") },
{ nhStr("tombtext_x"), nhStr("Tombtext_x"), XtRInt, sizeof(int),
XtOffset(AppResources *, tombtext_x), XtRString, nhStr("155") },
{ nhStr("tombtext_y"), nhStr("Tombtext_y"), XtRInt, sizeof(int),
XtOffset(AppResources *, tombtext_y), XtRString, nhStr("78") },
{ nhStr("tombtext_dx"), nhStr("Tombtext_dx"), XtRInt, sizeof(int),
XtOffset(AppResources *, tombtext_dx), XtRString, nhStr("0") },
{ nhStr("tombtext_dy"), nhStr("Tombtext_dy"), XtRInt, sizeof(int),
XtOffset(AppResources *, tombtext_dy), XtRString, nhStr("13") },
#endif
};

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 wintext.c $NHDT-Date: 1543622533 2018/12/01 00:02:13 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.16 $ */
/* NetHack 3.6 wintext.c $NHDT-Date: 1546081305 2018/12/29 11:01:45 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.17 $ */
/* Copyright (c) Dean Luick, 1992 */
/* NetHack may be freely redistributed. See license for details. */
@@ -204,7 +204,7 @@ boolean blocking;
#ifdef GRAPHIC_TOMBSTONE
if (text_info->is_rip) {
Widget rip = create_ripout_widget(XtParent(wp->w));
XtSetArg(args[num_args], XtNfromVert, rip);
XtSetArg(args[num_args], nhStr(XtNfromVert), rip);
num_args++;
}
#endif
@@ -533,7 +533,7 @@ calculate_rip_text(int how, time_t when)
static void
rip_exposed(w, client_data, widget_data)
Widget w;
XtPointer client_data; /* unused */
XtPointer client_data UNUSED;
XtPointer widget_data; /* expose event from Window widget */
{
XExposeEvent *event = (XExposeEvent *) widget_data;

View File

@@ -43,15 +43,6 @@ curses_update_inv(void)
/* Clear the window as it is at the moment. */
werase(win);
wmove(win, y, x);
wattron(win, attr);
wprintw(win, "Inventory:");
wattroff(win, attr);
/* The actual inventory will override this if we do carry stuff */
wmove(win, y + 1, x);
wprintw(win, "Not carrying anything");
display_inventory(NULL, FALSE);
if (border)
@@ -73,7 +64,6 @@ curses_add_inv(int y,
/* Figure out where to draw the line */
if (curses_window_has_border(INV_WIN)) {
x++;
y++;
}
wmove(win, y, x);