zero entries in DUNGEON, MONSTERS, et al, of config file are now treated
as preserving the default rather than being ignored
enlightenment: don't misreport polymorphed lycanthrope as "in beast form"
+remove TIMED_DELAY from the features checked for version compatibility
Platform- and/or Interface-Specific Fixes
-/* SCCS Id: @(#)version.c 3.4 1999/12/01 */
+/* SCCS Id: @(#)version.c 3.4 2002/08/14 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
if (complain)
pline("Version mismatch for file \"%s\".", filename);
return FALSE;
- } else if (version_data->feature_set != VERSION_FEATURES ||
+ } else if (
+#ifndef IGNORED_FEATURES
+ version_data->feature_set != VERSION_FEATURES ||
+#else
+ (version_data->feature_set & ~IGNORED_FEATURES) !=
+ (VERSION_FEATURES & ~IGNORED_FEATURES) ||
+#endif
version_data->entity_count != VERSION_SANITY1 ||
version_data->struct_sizes != VERSION_SANITY2) {
if (complain)
-/* SCCS Id: @(#)makedefs.c 3.4 2002/03/03 */
+/* SCCS Id: @(#)makedefs.c 3.4 2002/08/14 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* Copyright (c) M. Stephenson, 1990, 1991. */
/* Copyright (c) Dean Luick, 1990. */
return;
}
+/*
+ * 3.4.1: way back in 3.2.1 `flags.nap' became unconditional but
+ * TIMED_DELAY was erroneously left in VERSION_FEATURES and has
+ * been there up through 3.4.0. Simply removing it now would
+ * break save file compatibility with 3.4.0 files, so we will
+ * explicitly mask it out during version checks.
+ * This should go away in the next version update.
+ */
+#define IGNORED_FEATURES ( 0L \
+ | (1L << 23) /* TIMED_DELAY */ \
+ )
+
static void
make_version()
{
#endif
#ifdef SCORE_ON_BOTL
| (1L << 21)
-#endif
-#ifdef TIMED_DELAY
- | (1L << 23)
#endif
/* data format [COMPRESS excluded] (27..31) */
#ifdef ZEROCOMP
version.incarnation, ul_sfx);
Fprintf(ofp,"#define VERSION_FEATURES 0x%08lx%s\n",
version.feature_set, ul_sfx);
+#ifdef IGNORED_FEATURES
+ Fprintf(ofp,"#define IGNORED_FEATURES 0x%08lx%s\n",
+ (unsigned long) IGNORED_FEATURES, ul_sfx);
+#endif
Fprintf(ofp,"#define VERSION_SANITY1 0x%08lx%s\n",
version.entity_count, ul_sfx);
Fprintf(ofp,"#define VERSION_SANITY2 0x%08lx%s\n",