From e32a132a7c29ef2acfa4330a893d955b2eadd08b Mon Sep 17 00:00:00 2001 From: keni Date: Sun, 17 Nov 2019 18:41:03 -0500 Subject: [PATCH 1/6] grammar tid --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b93ed982c..e2522cfa9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -114,5 +114,5 @@ deploy: tags: true prerelease: true name: "Pre-release build of NetHack 3.6.3" - body: "This is auto generated pre-release build of NetHack 3.6.3." + body: "This is an auto generated pre-release build of NetHack 3.6.3." From 57584a22d7eb05adcde0422252d56f350d73019c Mon Sep 17 00:00:00 2001 From: nhmall Date: Sun, 17 Nov 2019 19:13:23 -0500 Subject: [PATCH 2/6] add some guard code to the Is_*_level macros in dungeon.h All Is_*_level tests during early startup would test as true until dungeon_topology was initialized in a new game or restored from a save file. That could result in some unexpected code paths being taken. --- doc/fixes36.3 | 3 +++ include/dungeon.h | 55 ++++++++++++++++++++++++++--------------------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/doc/fixes36.3 b/doc/fixes36.3 index 1b2caaebf..16ab5de31 100644 --- a/doc/fixes36.3 +++ b/doc/fixes36.3 @@ -235,6 +235,9 @@ dipping lichen corpse into acid when not blind and acid was undicovered would pluralization improvement for words ending in a k-sound like "biotech" check for whether a monster was entering a region (gas cloud) erroneously depended upon whether or not the hero was inside the same region +all Is_*_level tests during early startup would test as true until + dungeon_topology was initialized in a new game or restored from + a save file Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository diff --git a/include/dungeon.h b/include/dungeon.h index 45246f150..1d476ff7a 100644 --- a/include/dungeon.h +++ b/include/dungeon.h @@ -98,31 +98,36 @@ typedef struct branch { * * Depth corresponds to the number of floors below the surface. */ -#define Is_astralevel(x) (on_level(x, &astral_level)) -#define Is_earthlevel(x) (on_level(x, &earth_level)) -#define Is_waterlevel(x) (on_level(x, &water_level)) -#define Is_firelevel(x) (on_level(x, &fire_level)) -#define Is_airlevel(x) (on_level(x, &air_level)) -#define Is_medusa_level(x) (on_level(x, &medusa_level)) -#define Is_oracle_level(x) (on_level(x, &oracle_level)) -#define Is_valley(x) (on_level(x, &valley_level)) -#define Is_juiblex_level(x) (on_level(x, &juiblex_level)) -#define Is_asmo_level(x) (on_level(x, &asmodeus_level)) -#define Is_baal_level(x) (on_level(x, &baalzebub_level)) -#define Is_wiz1_level(x) (on_level(x, &wiz1_level)) -#define Is_wiz2_level(x) (on_level(x, &wiz2_level)) -#define Is_wiz3_level(x) (on_level(x, &wiz3_level)) -#define Is_sanctum(x) (on_level(x, &sanctum_level)) -#define Is_portal_level(x) (on_level(x, &portal_level)) -#define Is_rogue_level(x) (on_level(x, &rogue_level)) -#define Is_stronghold(x) (on_level(x, &stronghold_level)) -#define Is_bigroom(x) (on_level(x, &bigroom_level)) -#define Is_qstart(x) (on_level(x, &qstart_level)) -#define Is_qlocate(x) (on_level(x, &qlocate_level)) -#define Is_nemesis(x) (on_level(x, &nemesis_level)) -#define Is_knox(x) (on_level(x, &knox_level)) -#define Is_mineend_level(x) (on_level(x, &mineend_level)) -#define Is_sokoend_level(x) (on_level(x, &sokoend_level)) + +/* These both can't be zero, or dungeon_topology isn't init'd / restored */ +#define Lassigned(y) ((y)->dlevel || (y)->dnum) +#define Lcheck(x,z) (Lassigned(z) && on_level(x, z)) + +#define Is_astralevel(x) (Lcheck(x, &astral_level)) +#define Is_earthlevel(x) (Lcheck(x, &earth_level)) +#define Is_waterlevel(x) (Lcheck(x, &water_level)) +#define Is_firelevel(x) (Lcheck(x, &fire_level)) +#define Is_airlevel(x) (Lcheck(x, &air_level)) +#define Is_medusa_level(x) (Lcheck(x, &medusa_level)) +#define Is_oracle_level(x) (Lcheck(x, &oracle_level)) +#define Is_valley(x) (Lcheck(x, &valley_level)) +#define Is_juiblex_level(x) (Lcheck(x, &juiblex_level)) +#define Is_asmo_level(x) (Lcheck(x, &asmodeus_level)) +#define Is_baal_level(x) (Lcheck(x, &baalzebub_level)) +#define Is_wiz1_level(x) (Lcheck(x, &wiz1_level)) +#define Is_wiz2_level(x) (Lcheck(x, &wiz2_level)) +#define Is_wiz3_level(x) (Lcheck(x, &wiz3_level)) +#define Is_sanctum(x) (Lcheck(x, &sanctum_level)) +#define Is_portal_level(x) (Lcheck(x, &portal_level)) +#define Is_rogue_level(x) (Lcheck(x, &rogue_level)) +#define Is_stronghold(x) (Lcheck(x, &stronghold_level)) +#define Is_bigroom(x) (Lcheck(x, &bigroom_level)) +#define Is_qstart(x) (Lcheck(x, &qstart_level)) +#define Is_qlocate(x) (Lcheck(x, &qlocate_level)) +#define Is_nemesis(x) (Lcheck(x, &nemesis_level)) +#define Is_knox(x) (Lcheck(x, &knox_level)) +#define Is_mineend_level(x) (Lcheck(x, &mineend_level)) +#define Is_sokoend_level(x) (Lcheck(x, &sokoend_level)) #define In_sokoban(x) ((x)->dnum == sokoban_dnum) #define Inhell In_hell(&u.uz) /* now gehennom */ From 1301e3bd764fb771d1d0af21e570751be874892f Mon Sep 17 00:00:00 2001 From: PatR Date: Sun, 17 Nov 2019 16:45:10 -0800 Subject: [PATCH 3/6] '--showpaths' dlb vs non-dlbb Have the --showpaths feedback mention whether dlb is in use or not, and show the container file name(s) when it is. Users of prebuilt binaries or who build with a hints file instead of picking and choosing things in config.h might not know, and vms (if it ever catches up with --showpaths) uses a different container name from everybody else ("nh-data.dlb" instead of "nhdat"). --- src/files.c | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/files.c b/src/files.c index 5a0e1a7b2..a9bee528a 100644 --- a/src/files.c +++ b/src/files.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 files.c $NHDT-Date: 1573869063 2019/11/16 01:51:03 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.269 $ */ +/* NetHack 3.6 files.c $NHDT-Date: 1574037901 2019/11/18 00:45:01 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.270 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Derek S. Ray, 2015. */ /* NetHack may be freely redistributed. See license for details. */ @@ -2598,8 +2598,8 @@ char *origbuf; #endif /* SYSCF */ } else if (match_varname(buf, "BOULDER", 3)) { - (void) get_uchars(bufp, &ov_primary_syms[SYM_BOULDER + SYM_OFF_X], TRUE, 1, - "BOULDER"); + (void) get_uchars(bufp, &ov_primary_syms[SYM_BOULDER + SYM_OFF_X], + TRUE, 1, "BOULDER"); } else if (match_varname(buf, "MENUCOLOR", 9)) { if (!add_menu_coloring(bufp)) retval = FALSE; @@ -4062,13 +4062,13 @@ reveal_paths(VOID_ARGS) if (strp && (int) strlen(strp) < maxlen) Sprintf(buf, " (in %s)", strp); #endif /* PREFIXES_IN_USE */ - raw_printf("%s loadable symbols file%s:", s_suffix(gamename), buf); + raw_printf("The loadable symbols file%s:", buf); #endif /* UNIX */ #ifdef UNIX envp = getcwd(cwdbuf, PATH_MAX); if (envp) { - raw_printf("%s loadable symbols file:", s_suffix(gamename)); + raw_print("The loadable symbols file:"); raw_printf(" \"%s/%s\"", envp, SYMBOLS); } #else /* UNIX */ @@ -4085,6 +4085,27 @@ reveal_paths(VOID_ARGS) raw_printf(" \"%s\"", filep); #endif /* UNIX */ + /* dlb vs non-dlb */ + + buf[0] = '\0'; +#ifdef PREFIXES_IN_USE + strp = fqn_prefix_names[DATAPREFIX]; + maxlen = BUFSZ - sizeof " (in )"; + if (strp && (int) strlen(strp) < maxlen) + Sprintf(buf, " (in %s)", strp); +#endif +#ifdef DLB + raw_printf("Basic data files%s are collected inside:", buf); + filep = DLBFILE; + raw_printf(" \"%s\"", filep); +#ifdef DLBFILE2 + filep = DLBFILE2; + raw_printf(" \"%s\"", filep); +#endif +#else /* !DLB */ + raw_printf("Basic data files%s are in many separate files.", buf); +#endif /* ?DLB */ + /* personal configuration file */ buf[0] = '\0'; From f75939e27e0728f73a30ecf1623cff8faa3226c6 Mon Sep 17 00:00:00 2001 From: nhmall Date: Sun, 17 Nov 2019 19:55:50 -0500 Subject: [PATCH 4/6] re-enable ifdef'd out code during code sleuthing a while back --- src/options.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/options.c b/src/options.c index c1c95c69e..ecb0d773b 100644 --- a/src/options.c +++ b/src/options.c @@ -4134,14 +4134,12 @@ boolean tinitial, tfrom_file; } } -#if 0 /* Is it a symbol? */ if (strstr(opts, "S_") == opts && parsesymbols(opts, PRIMARY)) { switch_symbols(TRUE); check_gold_symbol(); return retval; } -#endif /* out of valid options */ config_error_add("Unknown option '%s'", opts); From e85646816cec5ae749bb564f0617425c6dead620 Mon Sep 17 00:00:00 2001 From: nhmall Date: Sun, 17 Nov 2019 20:06:21 -0500 Subject: [PATCH 5/6] mark source tree as beta, previously marked work-in-progress --- README | 6 +++--- include/global.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README b/README index a8746c435..013a63153 100644 --- a/README +++ b/README @@ -1,11 +1,11 @@ - NetHack 3.6.3 work-in-progress -- General information + NetHack 3.6.3 beta1 -- General information NetHack 3.6 is an enhancement to the dungeon exploration game NetHack, which is a distant descendent of Rogue and Hack, and a direct descendent of NetHack 3.4 as there was no NetHack 3.5 release. -NetHack 3.6.3 work-in-progress is not an official release of NetHack. It -currently contains a collection of over 140 bug fixes to NetHack 3.6.2 +NetHack 3.6.3 beta1 is not an official release of NetHack. It +currently contains a collection of over 150 bug fixes to NetHack 3.6.2 and more than 16 enhancements and community contributions. The file doc/fixes36.3 in the source distribution has a full list of them. The text in there was written for the development team's own use and is diff --git a/include/global.h b/include/global.h index feb9f75fb..9fb64ebf0 100644 --- a/include/global.h +++ b/include/global.h @@ -18,7 +18,7 @@ /* * Development status of this NetHack version. */ -#define NH_DEVEL_STATUS NH_STATUS_WIP +#define NH_DEVEL_STATUS NH_STATUS_BETA #ifndef DEBUG /* allow tool chains to define without causing warnings */ #define DEBUG From a045763f560d55592b322ce019b08f4d387b5c4c Mon Sep 17 00:00:00 2001 From: nhmall Date: Sun, 17 Nov 2019 20:19:41 -0500 Subject: [PATCH 6/6] date bump --- doc/Guidebook.mn | 2 +- doc/Guidebook.tex | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/Guidebook.mn b/doc/Guidebook.mn index e61a2f78c..c039e3bba 100644 --- a/doc/Guidebook.mn +++ b/doc/Guidebook.mn @@ -24,7 +24,7 @@ .ds vr "NetHack 3.6 .ds f0 "\*(vr .ds f1 -.ds f2 "November 7, 2019 +.ds f2 "November 17, 2019 . .\" A note on some special characters: .\" \(lq = left double quote diff --git a/doc/Guidebook.tex b/doc/Guidebook.tex index 4c42b06f1..4c0edfabc 100644 --- a/doc/Guidebook.tex +++ b/doc/Guidebook.tex @@ -45,7 +45,7 @@ %.au \author{Original version - Eric S. Raymond\\ (Edited and expanded for 3.6 by Mike Stephenson and others)} -\date{November 7, 2019} +\date{November 17, 2019} \maketitle