Merge branch 'NetHack-3.6'

This commit is contained in:
nhmall
2019-11-05 11:02:24 -05:00
17 changed files with 1402 additions and 1305 deletions
+8 -6
View File
@@ -273,12 +273,14 @@ stat.h
sys/winnt: sys/winnt:
(files for Windows 7/8.x/10 version) (files for Windows 7/8.x/10 version)
Install.nt Makefile.gcc Makefile.msc console.rc .nethackrc.template Install.nt Makefile.gcc
.nethackrc.template nethack.def nh340key.c nhdefkey.c Makefile.msc console.rc nethack.def
nhico.uu nhraykey.c nhsetup.bat ntsound.c nh340key.c nhdefkey.c nhico.uu
nttty.c porthelp stub-pdcscrn.c stubs.c nhraykey.c nhsetup.bat ntsound.c
sysconf.template win10.c win10.h win32api.h nttty.c porthelp stub-pdcscrn.c
windmain.c winnt.c winos.h stubs.c sysconf.template win10.c
win10.h win32api.h windmain.c
winnt.c winos.h
util: util:
(files for all versions) (files for all versions)
+6 -25
View File
@@ -1,4 +1,4 @@
# NetHack 3.6 symbols $NHDT-Date: 1571314611 2019/10/17 12:16:51 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.20 $ # NetHack 3.6 symbols $NHDT-Date: 1572892906 2019/11/04 18:41:46 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.21 $
# Copyright (c) 2006 by Michael Allison # Copyright (c) 2006 by Michael Allison
# NetHack may be freely redistributed. See license for details. # NetHack may be freely redistributed. See license for details.
# #
@@ -340,7 +340,7 @@ start: IBMgraphics
S_pool: \xf7 # meta-w, approx. equals S_pool: \xf7 # meta-w, approx. equals
S_ice: \xfa # meta-z, centered dot S_ice: \xfa # meta-z, centered dot
S_lava: \xf7 # meta-w, approx. equals S_lava: \xf7 # meta-w, approx. equals
S_vodbridge: \xfa # meta-z, centered dot S_vodbridge: \xfa # meta-z, centered dot
S_hodbridge: \xfa # meta-z, centered dot S_hodbridge: \xfa # meta-z, centered dot
S_water: \xf7 # meta-w, approx. equals S_water: \xf7 # meta-w, approx. equals
S_vbeam: \xb3 # meta-3, vertical rule S_vbeam: \xb3 # meta-3, vertical rule
@@ -548,7 +548,8 @@ start: curses
S_tlwall: \xf5 # meta-u, T left S_tlwall: \xf5 # meta-u, T left
S_trwall: \xf4 # meta-t, T right S_trwall: \xf4 # meta-t, T right
S_ndoor: \xfe # meta-z, centered dot S_ndoor: \xfe # meta-z, centered dot
S_tree: \xf1 # plus or minus symbol S_bars: \xfc # meta-|, not-equals sign (was '#')
S_tree: \xe7 # meta-g, plus or minus sign
S_room: \xfe # meta-z, centered dot S_room: \xfe # meta-z, centered dot
S_corr: \xe1 # meta-a, solid block S_corr: \xe1 # meta-a, solid block
S_litcorr: \xe1 # meta-a, solid block S_litcorr: \xe1 # meta-a, solid block
@@ -581,11 +582,12 @@ start: DECgraphics
S_ndoor: \xfe # meta-~, centered dot S_ndoor: \xfe # meta-~, centered dot
S_vodoor: \xe1 # meta-a, solid block S_vodoor: \xe1 # meta-a, solid block
S_hodoor: \xe1 # meta-a, solid block S_hodoor: \xe1 # meta-a, solid block
S_bars: \xfb # meta-{, small pi S_bars: \xfc # meta-|, not-equals (used to be pi)
S_tree: \xe7 # meta-g, plus-or-minus S_tree: \xe7 # meta-g, plus-or-minus
S_room: \xfe # meta-~, centered dot S_room: \xfe # meta-~, centered dot
S_upladder: \xf9 # meta-y, less-than-or-equals S_upladder: \xf9 # meta-y, less-than-or-equals
S_dnladder: \xfa # meta-z, greater-than-or-equals S_dnladder: \xfa # meta-z, greater-than-or-equals
S_altar: \xfb # meta-{, pi (used to default to '_')
S_pool: \xe0 # meta-\, diamond S_pool: \xe0 # meta-\, diamond
S_ice: \xfe # meta-~, centered dot S_ice: \xfe # meta-~, centered dot
S_lava: \xe0 # meta-\, diamond S_lava: \xe0 # meta-\, diamond
@@ -604,27 +606,6 @@ start: DECgraphics
S_explode8: \xf3 # meta-s, low horizontal line S_explode8: \xf3 # meta-s, low horizontal line
finish finish
#
# This is commented out because specifying alternate default set isn't
# implemented.
#
# DECgraphics_2: underscore (default for altar) can be hard to see if
# hero or highlighted pet is on the spot below (south of) it, making
# it look like part of slightly bigger block cursor. Bars are usually
# within walls and we have something else for doorless doorway so '#'
# for bars shouldn't be mistaken for the corridor symbol even by someone
# used to DECgraphics, at least not often enough to pose a problem.
# The pi symbol is small like lowercase but flat-topped like uppercase
# so could represent a side view of a raised platform or table.
#
# start: DECgraphics_2
# Defaults: DECgraphics # includes 'Handling: DEC'
# Description: variation of DECgraphics (iron bars:#, altar:pi)
# S_bars: '#' # (switch from pi to plain '#')
# S_altar: \xfb # meta-{, pi (switch from underscore)
# finish
#
start: MACgraphics start: MACgraphics
# Description: (pre-OSX: obsolete?) # Description: (pre-OSX: obsolete?)
# Restrictions: primary # Restrictions: primary
+1316 -1250
View File
File diff suppressed because it is too large Load Diff
+14 -3
View File
@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.155 $ $NHDT-Date: 1572833562 2019/11/04 02:12:42 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.159 $ $NHDT-Date: 1572892926 2019/11/04 18:42:06 $
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,
@@ -214,6 +214,9 @@ fix a leashed pet polymorphed into a long worm staying leashed
prevent leashing unsolid monsters and monsters with no extremities prevent leashing unsolid monsters and monsters with no extremities
playing musical instruments gave feedback which ignored deafness playing musical instruments gave feedback which ignored deafness
some other deafness-related message corrections some other deafness-related message corrections
when dipping into holy/unholy water while blind (where the glow message is
suppressed), clear dipped item's bknown flag unless water potion's
bless/curse state is known
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
@@ -237,6 +240,8 @@ surviving death while polymorphed would yield "You are a <foo>" without
'mksobj failure' commit resulted in wrong corpse types for dying monsters 'mksobj failure' commit resulted in wrong corpse types for dying monsters
a recent intended sanity check fix inadvertently bypassed placing a recent intended sanity check fix inadvertently bypassed placing
a thrown chained ball back onto the floor a thrown chained ball back onto the floor
in symset:curses, symbol S_tree was accidentally set to horizontal line where
plus-or-minus sign was meant; also, change S_bars to not-equals sign
curses: sometimes the message window would show a blank line after a prompt curses: sometimes the message window would show a blank line after a prompt
curses: the change to show map in columns 1..79 instead of 2..80 made the curses: the change to show map in columns 1..79 instead of 2..80 made the
highlight for '@' show up in the wrong place if clipped map had been highlight for '@' show up in the wrong place if clipped map had been
@@ -388,20 +393,26 @@ curses+'perm_invent': since persistent inventory is narrow, strip off "a",
curses+'curses': change the curses map display to use new symbol set 'curses' curses+'curses': change the curses map display to use new symbol set 'curses'
instead of hard-coded values; it attempts to show IBMgraphics-style instead of hard-coded values; it attempts to show IBMgraphics-style
map using DECgraphics characters; DECgraphics can also be used as-is map using DECgraphics characters; DECgraphics can also be used as-is
fulfill a request from a blind player to have a unique overriding SYMBOL for pets fulfill a request from a blind player to have a unique overriding SYMBOL for
and for the player pets and for the player
ROGUESYMBOLS can be overridden in config files like SYMBOLS can ROGUESYMBOLS can be overridden in config files like SYMBOLS can
in symset:DECgraphics, set S_altar to 'pi' (was default '_'), S_bars to
not-equals sign (was 'pi')
NetHack Community Patches (or Variation) Included NetHack Community Patches (or Variation) Included
------------------------------------------------- -------------------------------------------------
add a couple of engraving suggestions in pull request #79 add a couple of engraving suggestions in pull request #79
chasonr's faster method to write characters to msdos VGA in pull request #220 chasonr's faster method to write characters to msdos VGA in pull request #220
chasonr's msdos Makefile.gcc pdcurses build changes in pull request #243
autopickup exception priority change in pull request #226 autopickup exception priority change in pull request #226
Code Cleanup and Reorganization Code Cleanup and Reorganization
------------------------------- -------------------------------
began to add some function caller BREADCRUMBS to aid debugging began to add some function caller BREADCRUMBS to aid debugging
flag existing occurrences of "You hear" as "Deaf-aware" to aid in
future maintenance
+1 -1
View File
@@ -1200,7 +1200,7 @@ dokick()
!Blind !Blind
? "Muddy waste pops up from the drain" ? "Muddy waste pops up from the drain"
: !Deaf : !Deaf
? "You hear a sloshing sound" ? "You hear a sloshing sound" /* Deaf-aware */
: "Something splashes you in the", buf); : "Something splashes you in the", buf);
if (!(g.maploc->looted & S_LRING)) { /* once per sink */ if (!(g.maploc->looted & S_LRING)) { /* once per sink */
if (!Blind) if (!Blind)
+1 -1
View File
@@ -757,7 +757,7 @@ doengrave()
} }
Strcpy(post_engr_text, Strcpy(post_engr_text,
(Blind && !Deaf) (Blind && !Deaf)
? "You hear drilling!" ? "You hear drilling!" /* Deaf-aware */
: Blind : Blind
? "You feel tremors." ? "You feel tremors."
: IS_GRAVE(levl[u.ux][u.uy].typ) : IS_GRAVE(levl[u.ux][u.uy].typ)
+21 -3
View File
@@ -151,17 +151,35 @@ moverock()
if (mtmp && !noncorporeal(mtmp->data) if (mtmp && !noncorporeal(mtmp->data)
&& (!mtmp->mtrapped && (!mtmp->mtrapped
|| !(ttmp && is_pit(ttmp->ttyp)))) { || !(ttmp && is_pit(ttmp->ttyp)))) {
boolean deliver_part1 = FALSE;
if (Blind) if (Blind)
feel_location(sx, sy); feel_location(sx, sy);
if (canspotmon(mtmp)) { if (canspotmon(mtmp)) {
pline("There's %s on the other side.", a_monnam(mtmp)); pline("There's %s on the other side.", a_monnam(mtmp));
deliver_part1 = TRUE;
} else { } else {
You_hear("a monster behind %s.", the(xname(otmp))); You_hear("a monster behind %s.", the(xname(otmp)));
if (!Deaf)
deliver_part1 = TRUE;
map_invisible(rx, ry); map_invisible(rx, ry);
} }
if (flags.verbose) if (flags.verbose) {
pline("Perhaps that's why %s cannot move it.", char you_or_steed[BUFSZ];
u.usteed ? y_monnam(u.usteed) : "you");
Strcpy(you_or_steed,
u.usteed ? y_monnam(u.usteed) : "you");
pline("%s%s cannot move %s.",
deliver_part1
? "Perhaps that's why "
: "",
deliver_part1
? you_or_steed
: upstart(you_or_steed),
deliver_part1
? "it"
: the(xname(otmp)));
}
goto cannot_push; goto cannot_push;
} }
+1 -1
View File
@@ -72,7 +72,7 @@ boolean undirected;
pline("%s points %s.", Monnam(mtmp), point_msg); pline("%s points %s.", Monnam(mtmp), point_msg);
} else if ((!(g.moves % 4) || !rn2(4))) { } else if ((!(g.moves % 4) || !rn2(4))) {
if (!Deaf) if (!Deaf)
Norep("You hear a mumbled curse."); Norep("You hear a mumbled curse."); /* Deaf-aware */
} }
} }
+1 -1
View File
@@ -1361,7 +1361,7 @@ fumaroles()
} }
} }
if (snd && !Deaf) if (snd && !Deaf)
Norep("You hear a %swhoosh!", loud ? "loud " : ""); Norep("You hear a %swhoosh!", loud ? "loud " : ""); /* Deaf-aware */
} }
/* /*
+1 -1
View File
@@ -3771,7 +3771,7 @@ boolean msg; /* "The oldmon turns into a newmon!" */
/* take on the new form... */ /* take on the new form... */
set_mon_data(mtmp, mdat); set_mon_data(mtmp, mdat);
if (!leashable(mtmp)) if (mtmp->mleashed && !leashable(mtmp))
m_unleash(mtmp, TRUE); m_unleash(mtmp, TRUE);
if (emits_light(olddata) != emits_light(mtmp->data)) { if (emits_light(olddata) != emits_light(mtmp->data)) {
+2 -1
View File
@@ -171,7 +171,8 @@ struct monst *bugler; /* monster that played instrument */
if (canseemon(mtmp)) if (canseemon(mtmp))
pline("%s is now ready for battle!", Monnam(mtmp)); pline("%s is now ready for battle!", Monnam(mtmp));
else if (!Deaf) else if (!Deaf)
Norep("You hear the rattle of battle gear being readied."); Norep("%s the rattle of battle gear being readied.",
"You hear"); /* Deaf-aware */
} else if ((distm = ((bugler == &g.youmonst) } else if ((distm = ((bugler == &g.youmonst)
? distu(mtmp->mx, mtmp->my) ? distu(mtmp->mx, mtmp->my)
: dist2(bugler->mx, bugler->my, mtmp->mx, : dist2(bugler->mx, bugler->my, mtmp->mx,
+1 -1
View File
@@ -357,7 +357,7 @@ VA_DECL(const char *, line)
else if (Unaware) else if (Unaware)
YouPrefix(tmp, "You dream that you hear ", line); YouPrefix(tmp, "You dream that you hear ", line);
else else
YouPrefix(tmp, "You hear ", line); YouPrefix(tmp, "You hear ", line); /* Deaf-aware */
vpline(strcat(tmp, line), VA_ARGS); vpline(strcat(tmp, line), VA_ARGS);
VA_END(); VA_END();
} }
+10 -1
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 potion.c $NHDT-Date: 1570235292 2019/10/05 00:28:12 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.163 $ */ /* NetHack 3.6 potion.c $NHDT-Date: 1572887644 2019/11/04 17:14:04 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.164 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */ /*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -1265,6 +1265,15 @@ const char *objphrase; /* "Your widget glows" or "Steed's saddle glows" */
pline("%s %s.", objphrase, glowcolor); pline("%s %s.", objphrase, glowcolor);
iflags.last_msg = PLNMSG_OBJ_GLOWS; iflags.last_msg = PLNMSG_OBJ_GLOWS;
targobj->bknown = !Hallucination; targobj->bknown = !Hallucination;
} else {
/* didn't see what happened: forget the BUC state if that was
known unless the bless/curse state of the water is known;
without this, hero would know the new state even without
seeing the glow; priest[ess] will immediately relearn it */
if (!potion->bknown || !potion->dknown)
targobj->bknown = 0;
/* [should the bknown+dknown exception require that water
be discovered or at least named?] */
} }
/* potions of water are the only shop goods whose price depends /* potions of water are the only shop goods whose price depends
on their curse/bless state */ on their curse/bless state */
+1 -1
View File
@@ -2984,7 +2984,7 @@ boolean peaceful, silent;
Norep("%s booms: \"%s, you are a thief!\"", Norep("%s booms: \"%s, you are a thief!\"",
Shknam(shkp), g.plname); Shknam(shkp), g.plname);
} else if (!Deaf) { } else if (!Deaf) {
Norep("You hear a scream, \"Thief!\""); Norep("You hear a scream, \"Thief!\""); /* Deaf-aware */
} }
} }
hot_pursuit(shkp); hot_pursuit(shkp);
+2 -1
View File
@@ -2624,7 +2624,8 @@ register struct monst *mtmp;
a_your[trap->madeby_u]); a_your[trap->madeby_u]);
} }
if (!in_sight && !Deaf) if (!in_sight && !Deaf)
pline("Kaablamm! You hear an explosion in the distance!"); pline("Kaablamm! %s an explosion in the distance!",
"You hear"); /* Deaf-aware */
blow_up_landmine(trap); blow_up_landmine(trap);
/* explosion might have destroyed a drawbridge; don't /* explosion might have destroyed a drawbridge; don't
dish out more damage if monster is already dead */ dish out more damage if monster is already dead */
+1 -1
View File
@@ -4434,7 +4434,7 @@ short exploding_wand_typ;
melt_ice(x, y, (char *) 0); melt_ice(x, y, (char *) 0);
} else if (is_pool(x, y)) { } else if (is_pool(x, y)) {
const char *msgtxt = (!Deaf) const char *msgtxt = (!Deaf)
? "You hear hissing gas." ? "You hear hissing gas." /* Deaf-aware */
: "That seemed remarkably uneventful."; : "That seemed remarkably uneventful.";
if (lev->typ != POOL) { /* MOAT or DRAWBRIDGE_UP */ if (lev->typ != POOL) { /* MOAT or DRAWBRIDGE_UP */
+15 -7
View File
@@ -332,13 +332,17 @@ PDCURSES_CURSPRIV_H = $(PDCURSES_TOP)/curspriv.h
PDCURSES_HEADERS = $(PDCURSES_CURSES_H) $(PDCURSES_CURSPRIV_H) PDCURSES_HEADERS = $(PDCURSES_CURSES_H) $(PDCURSES_CURSPRIV_H)
PDCSRC = $(PDCURSES_TOP)/pdcurses PDCSRC = $(PDCURSES_TOP)/pdcurses
PDCDOS = $(PDCURSES_TOP)/dos PDCDOS = $(PDCURSES_TOP)/dos
PDCLIBOBJS = $(O)addch.o $(O)addchstr.o $(O)addstr.o $(O)attr.o $(O)beep.o \ PDCLIBOBJS1 = $(O)addch.o $(O)addchstr.o $(O)addstr.o $(O)attr.o $(O)beep.o \
$(O)bkgd.o $(O)border.o $(O)clear.o $(O)color.o $(O)delch.o $(O)deleteln.o \ $(O)bkgd.o $(O)border.o $(O)clear.o $(O)color.o $(O)delch.o $(O)deleteln.o \
$(O)getch.o $(O)getstr.o $(O)getyx.o $(O)inch.o $(O)inchstr.o \ $(O)getch.o
$(O)initscr.o $(O)inopts.o $(O)insch.o $(O)insstr.o $(O)instr.o $(O)kernel.o \ PDCLIBOBJS2 = $(O)getstr.o $(O)getyx.o $(O)inch.o $(O)inchstr.o $(O)initscr.o \
$(O)keyname.o $(O)mouse.o $(O)move.o $(O)outopts.o $(O)overlay.o $(O)pad.o \ $(O)inopts.o $(O)insch.o $(O)insstr.o $(O)instr.o $(O)kernel.o \
$(O)panel.o $(O)printw.o $(O)refresh.o $(O)scanw.o $(O)scr_dump.o $(O)scroll.o \ $(O)keyname.o $(O)mouse.o
$(O)slk.o $(O)termattr.o $(O)touch.o $(O)util.o $(O)window.o $(O)debug.o PDCLIBOBJS3 = $(O)move.o $(O)outopts.o $(O)overlay.o $(O)pad.o $(O)panel.o \
$(O)printw.o $(O)refresh.o $(O)scanw.o $(O)scr_dump.o $(O)scroll.o \
$(O)slk.o $(O)termattr.o
PDCLIBOBJS4 = $(O)touch.o $(O)util.o $(O)window.o $(O)debug.o
PDCLIBOBJS = $(PDCLIBOBJS1) $(PDCLIBOBJS2) $(PDCLIBOBJS3) $(PDCLIBOBJS4)
PDCOBJS = $(O)pdcclip.o $(O)pdcdisp.o $(O)pdcgetsc.o $(O)pdckbd.o \ PDCOBJS = $(O)pdcclip.o $(O)pdcdisp.o $(O)pdcgetsc.o $(O)pdckbd.o \
$(O)pdcscrn.o $(O)pdcsetsc.o $(O)pdcutil.o $(O)pdcscrn.o $(O)pdcsetsc.o $(O)pdcutil.o
@@ -944,7 +948,11 @@ endif
#========================================== #==========================================
$(O)pdcurses.a : $(PDCLIBOBJS) $(PDCOBJS) $(O)pdcurses.a : $(PDCLIBOBJS) $(PDCOBJS)
ar rcs $@ $(PDCLIBOBJS) $(PDCOBJS) ar rcS $@ $(PDCLIBOBJS1)
ar rcS $@ $(PDCLIBOBJS2)
ar rcS $@ $(PDCLIBOBJS3)
ar rcS $@ $(PDCLIBOBJS4)
ar rcs $@ $(PDCOBJS)
#========================================== #==========================================
# Other Util Dependencies. # Other Util Dependencies.