Merge branch 'NetHack-3.6'

This commit is contained in:
nhmall
2019-11-17 20:31:56 -05:00
8 changed files with 63 additions and 36 deletions
+1 -1
View File
@@ -114,5 +114,5 @@ deploy:
tags: true tags: true
prerelease: true prerelease: true
name: "Pre-release build of NetHack 3.6.3" 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."
+1 -1
View File
@@ -24,7 +24,7 @@
.ds vr "NetHack 3.7 .ds vr "NetHack 3.7
.ds f0 "\*(vr .ds f0 "\*(vr
.ds f1 .ds f1
.ds f2 "November 7, 2019 .ds f2 "November 17, 2019
. .
.\" A note on some special characters: .\" A note on some special characters:
.\" \(lq = left double quote .\" \(lq = left double quote
+1 -1
View File
@@ -45,7 +45,7 @@
%.au %.au
\author{Original version - Eric S. Raymond\\ \author{Original version - Eric S. Raymond\\
(Edited and expanded for 3.6 by Mike Stephenson and others)} (Edited and expanded for 3.6 by Mike Stephenson and others)}
\date{November 7, 2019} \date{November 17, 2019}
\maketitle \maketitle
+3
View File
@@ -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" pluralization improvement for words ending in a k-sound like "biotech"
check for whether a monster was entering a region (gas cloud) erroneously check for whether a monster was entering a region (gas cloud) erroneously
depended upon whether or not the hero was inside the same region 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 Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
+30 -25
View File
@@ -98,31 +98,36 @@ typedef struct branch {
* *
* Depth corresponds to the number of floors below the surface. * 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)) /* These both can't be zero, or dungeon_topology isn't init'd / restored */
#define Is_waterlevel(x) (on_level(x, &water_level)) #define Lassigned(y) ((y)->dlevel || (y)->dnum)
#define Is_firelevel(x) (on_level(x, &fire_level)) #define Lcheck(x,z) (Lassigned(z) && on_level(x, z))
#define Is_airlevel(x) (on_level(x, &air_level))
#define Is_medusa_level(x) (on_level(x, &medusa_level)) #define Is_astralevel(x) (Lcheck(x, &astral_level))
#define Is_oracle_level(x) (on_level(x, &oracle_level)) #define Is_earthlevel(x) (Lcheck(x, &earth_level))
#define Is_valley(x) (on_level(x, &valley_level)) #define Is_waterlevel(x) (Lcheck(x, &water_level))
#define Is_juiblex_level(x) (on_level(x, &juiblex_level)) #define Is_firelevel(x) (Lcheck(x, &fire_level))
#define Is_asmo_level(x) (on_level(x, &asmodeus_level)) #define Is_airlevel(x) (Lcheck(x, &air_level))
#define Is_baal_level(x) (on_level(x, &baalzebub_level)) #define Is_medusa_level(x) (Lcheck(x, &medusa_level))
#define Is_wiz1_level(x) (on_level(x, &wiz1_level)) #define Is_oracle_level(x) (Lcheck(x, &oracle_level))
#define Is_wiz2_level(x) (on_level(x, &wiz2_level)) #define Is_valley(x) (Lcheck(x, &valley_level))
#define Is_wiz3_level(x) (on_level(x, &wiz3_level)) #define Is_juiblex_level(x) (Lcheck(x, &juiblex_level))
#define Is_sanctum(x) (on_level(x, &sanctum_level)) #define Is_asmo_level(x) (Lcheck(x, &asmodeus_level))
#define Is_portal_level(x) (on_level(x, &portal_level)) #define Is_baal_level(x) (Lcheck(x, &baalzebub_level))
#define Is_rogue_level(x) (on_level(x, &rogue_level)) #define Is_wiz1_level(x) (Lcheck(x, &wiz1_level))
#define Is_stronghold(x) (on_level(x, &stronghold_level)) #define Is_wiz2_level(x) (Lcheck(x, &wiz2_level))
#define Is_bigroom(x) (on_level(x, &bigroom_level)) #define Is_wiz3_level(x) (Lcheck(x, &wiz3_level))
#define Is_qstart(x) (on_level(x, &qstart_level)) #define Is_sanctum(x) (Lcheck(x, &sanctum_level))
#define Is_qlocate(x) (on_level(x, &qlocate_level)) #define Is_portal_level(x) (Lcheck(x, &portal_level))
#define Is_nemesis(x) (on_level(x, &nemesis_level)) #define Is_rogue_level(x) (Lcheck(x, &rogue_level))
#define Is_knox(x) (on_level(x, &knox_level)) #define Is_stronghold(x) (Lcheck(x, &stronghold_level))
#define Is_mineend_level(x) (on_level(x, &mineend_level)) #define Is_bigroom(x) (Lcheck(x, &bigroom_level))
#define Is_sokoend_level(x) (on_level(x, &sokoend_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 In_sokoban(x) ((x)->dnum == sokoban_dnum)
#define Inhell In_hell(&u.uz) /* now gehennom */ #define Inhell In_hell(&u.uz) /* now gehennom */
+1 -1
View File
@@ -18,7 +18,7 @@
/* /*
* Development status of this NetHack version. * 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 */ #ifndef DEBUG /* allow tool chains to define without causing warnings */
#define DEBUG #define DEBUG
+26 -5
View File
@@ -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) 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. */
@@ -2833,8 +2833,8 @@ char *origbuf;
#endif /* SYSCF */ #endif /* SYSCF */
} else if (match_varname(buf, "BOULDER", 3)) { } else if (match_varname(buf, "BOULDER", 3)) {
(void) get_uchars(bufp, &g.ov_primary_syms[SYM_BOULDER + SYM_OFF_X], TRUE, 1, (void) get_uchars(bufp, &g.ov_primary_syms[SYM_BOULDER + SYM_OFF_X],
"BOULDER"); TRUE, 1, "BOULDER");
} else if (match_varname(buf, "MENUCOLOR", 9)) { } else if (match_varname(buf, "MENUCOLOR", 9)) {
if (!add_menu_coloring(bufp)) if (!add_menu_coloring(bufp))
retval = FALSE; retval = FALSE;
@@ -4325,13 +4325,13 @@ reveal_paths(VOID_ARGS)
if (cstrp && (int) strlen(cstrp) < maxlen) if (cstrp && (int) strlen(cstrp) < maxlen)
Sprintf(buf, " (in %s)", cstrp); Sprintf(buf, " (in %s)", cstrp);
#endif /* PREFIXES_IN_USE */ #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 */ #endif /* UNIX */
#ifdef UNIX #ifdef UNIX
envp = getcwd(cwdbuf, PATH_MAX); envp = getcwd(cwdbuf, PATH_MAX);
if (envp) { if (envp) {
raw_printf("%s loadable symbols file:", s_suffix(gamename)); raw_print("The loadable symbols file:");
raw_printf(" \"%s/%s\"", envp, SYMBOLS); raw_printf(" \"%s/%s\"", envp, SYMBOLS);
} }
#else /* UNIX */ #else /* UNIX */
@@ -4348,6 +4348,27 @@ reveal_paths(VOID_ARGS)
raw_printf(" \"%s\"", filep); raw_printf(" \"%s\"", filep);
#endif /* UNIX */ #endif /* UNIX */
/* dlb vs non-dlb */
buf[0] = '\0';
#ifdef PREFIXES_IN_USE
cstrp = fqn_prefix_names[DATAPREFIX];
maxlen = BUFSZ - sizeof " (in )";
if (cstrp && (int) strlen(cstrp) < maxlen)
Sprintf(buf, " (in %s)", cstrp);
#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 */ /* personal configuration file */
buf[0] = '\0'; buf[0] = '\0';
-2
View File
@@ -4091,14 +4091,12 @@ boolean tinitial, tfrom_file;
} }
} }
#if 0
/* Is it a symbol? */ /* Is it a symbol? */
if (strstr(opts, "S_") == opts && parsesymbols(opts, PRIMARY)) { if (strstr(opts, "S_") == opts && parsesymbols(opts, PRIMARY)) {
switch_symbols(TRUE); switch_symbols(TRUE);
check_gold_symbol(); check_gold_symbol();
return retval; return retval;
} }
#endif
/* out of valid options */ /* out of valid options */
config_error_add("Unknown option '%s'", opts); config_error_add("Unknown option '%s'", opts);