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

View File

@@ -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."

View File

@@ -24,7 +24,7 @@
.ds vr "NetHack 3.7
.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

View File

@@ -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

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"
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

View File

@@ -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 */

View File

@@ -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

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) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2833,8 +2833,8 @@ char *origbuf;
#endif /* SYSCF */
} else if (match_varname(buf, "BOULDER", 3)) {
(void) get_uchars(bufp, &g.ov_primary_syms[SYM_BOULDER + SYM_OFF_X], TRUE, 1,
"BOULDER");
(void) get_uchars(bufp, &g.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;
@@ -4325,13 +4325,13 @@ reveal_paths(VOID_ARGS)
if (cstrp && (int) strlen(cstrp) < maxlen)
Sprintf(buf, " (in %s)", cstrp);
#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 */
@@ -4348,6 +4348,27 @@ reveal_paths(VOID_ARGS)
raw_printf(" \"%s\"", filep);
#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 */
buf[0] = '\0';

View File

@@ -4091,14 +4091,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);