billr@saab.CNA.TEK.COM (Bill Randle) (02/24/90)
Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
Posting-number: Volume 9, Issue 20
Archive-name: NetHack3/Patch7t
Patch-To: NetHack3: Volume 7, Issue 56-93
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 20 (of 30)."
# Contents: patch7.16
# Wrapped by billr@saab on Wed Feb 21 10:04:41 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'patch7.16' -a "${1}" != "-c" ; then
echo shar: Renaming existing file \"'patch7.16'\" to \"'patch7.16.orig'\"
mv -f 'patch7.16' 'patch7.16.orig'
fi
echo shar: Extracting \"'patch7.16'\" \(53275 characters\)
sed "s/^X//" >'patch7.16' <<'END_OF_FILE'
X*** include/Old/artifact.h Mon Feb 19 22:05:53 1990
X--- include/artifact.h Tue Jan 16 18:10:46 1990
X***************
X*** 26,32 ****
X
X struct artifact {
X unsigned otyp;
X! char *name;
X unsigned spfx;
X unsigned long mtype; /* monster type, symbol, or flag */
X struct attack attk, defn;
X--- 26,32 ----
X
X struct artifact {
X unsigned otyp;
X! const char *name;
X unsigned spfx;
X unsigned long mtype; /* monster type, symbol, or flag */
X struct attack attk, defn;
X*** include/Old/color.h Mon Feb 19 22:06:15 1990
X--- include/color.h Thu Feb 8 17:39:31 1990
X***************
X*** 12,26 ****
X #define BLUE 4
X #define MAGENTA 5
X #define CYAN 6
X- #define WHITE 7
X #define GRAY 7 /* lo-intensity white */
X #define BRIGHT 8
X #define ORANGE_COLORED 9
X #define YELLOW 11
X #define MAXCOLORS 16 /* 8 basic + 8 bright */
X
X /* these can be configured */
X- #define HI_MON RED + BRIGHT /* default flesh - red slaps! */
X #define HI_OBJ MAGENTA
X #define HI_METAL CYAN
X #define HI_COPPER YELLOW
X--- 12,25 ----
X #define BLUE 4
X #define MAGENTA 5
X #define CYAN 6
X #define GRAY 7 /* lo-intensity white */
X #define BRIGHT 8
X #define ORANGE_COLORED 9
X #define YELLOW 11
X+ #define WHITE 15
X #define MAXCOLORS 16 /* 8 basic + 8 bright */
X
X /* these can be configured */
X #define HI_OBJ MAGENTA
X #define HI_METAL CYAN
X #define HI_COPPER YELLOW
X***************
X*** 33,38 ****
X #define HI_PAPER WHITE
X #define HI_GLASS CYAN + BRIGHT
X #define HI_MINERAL GRAY
X! #define HI_ZAP BLUE + BRIGHT /* blue zaps! */
X
X #endif /* COLOR_H */
X--- 32,37 ----
X #define HI_PAPER WHITE
X #define HI_GLASS CYAN + BRIGHT
X #define HI_MINERAL GRAY
X! #define HI_ZAP BLUE + BRIGHT
X
X #endif /* COLOR_H */
X*** include/Old/config.h Mon Feb 19 22:06:27 1990
X--- include/config.h Mon Feb 19 18:16:29 1990
X***************
X*** 20,26 ****
X #define MSDOS /* define for MS-DOS (in case compiler doesn't) */
X #else
X /* #define MSDOS /* define for MS-DOS and most other micros */
X! /* #define AMIGA /* define for Commodore-Amiga */
X /* #define TOS /* define for Atari 1040ST */
X
X /* #define STUPID /* avoid some complicated expressions if
X--- 20,34 ----
X #define MSDOS /* define for MS-DOS (in case compiler doesn't) */
X #else
X /* #define MSDOS /* define for MS-DOS and most other micros */
X! /* DO NOT define for AMIGA - MSDOS will be
X! * automatically defined at the right place. */
X! # ifdef AZTEC_C /* Manx 3.6 auto-defines this */
X! # ifdef MCH_AMIGA /* Manx 3.6 auto-defines this for AMIGA */
X! # ifndef AMIGA
X! #define AMIGA /* define for Commodore-Amiga */
X! # endif /* (Lattice auto-defines AMIGA) */
X! # endif
X! # endif
X /* #define TOS /* define for Atari 1040ST */
X
X /* #define STUPID /* avoid some complicated expressions if
X***************
X*** 34,53 ****
X * library in the makefile */
X /* #define MINIMAL_TERM /* if a terminal handles highlighting or tabs poorly,
X try this define, used in pager.c and termcap.c */
X! /* #define MACOS 1 /* define for Apple Macintosh */
X #endif
X
X #ifdef MACOS
X! #define KR1ED 1 /* for compilers which can't handle defined() */
X! #define LSC 1 /* for the Lighspeed 3.01p4 C compiler on the Mac */
X! /* #define AZTEC 1 /* for the Manx Aztec C 3.6c compiler */
X! /* #define THINKC4 /* for the Think C 4 compiler */
X #define NEED_VARARGS /* if you're using precompiled headers */
X! #define SMALLDATA 1 /* for Mac compilers with 32K global data limit */
X!
X! # ifdef KR1ED
X! #define defined(x) (x<<1) /* Lightspeed & Aztec can't handle defined() yet */
X # endif
X #endif
X
X
X--- 42,88 ----
X * library in the makefile */
X /* #define MINIMAL_TERM /* if a terminal handles highlighting or tabs poorly,
X try this define, used in pager.c and termcap.c */
X! /* #define MACOS /* define for Apple Macintosh */
X! #endif
X!
X! #ifdef AMIGA
X! #define NEED_VARARGS
X! # ifdef AZTEC_C
X! # define KR1ED /* Aztec 3.6 needs extra help for defined() */
X! # endif
X #endif
X
X #ifdef MACOS
X! /* #define KR1ED /* for compilers which can't handle defined() */
X! /* Lightspeed & Aztec can't handle defined() yet */
X! /* #define LSC /* for the Lightspeed 3.01p4 C compiler on the Mac */
X! /* #define AZTEC /* for the Manx Aztec C 3.6c compiler */
X! #define THINKC4 /* for the Think C 4 compiler */
X! /* #define MAKEDEFS_C /* uncomment this ONLY while compiling makedefs */
X! /* #define CUSTOM_IO /* uncomment only while compiling Nethack */
X! # ifndef MAKEDEFS_C
X! # ifndef NEED_VARARGS
X #define NEED_VARARGS /* if you're using precompiled headers */
X! # endif
X # endif
X+ #define SMALLDATA /* for Mac compilers with 32K global data limit */
X+ #endif
X+
X+
X+ #ifdef KR1ED /* For compilers which cannot handle defined() */
X+ #define defined(x) (-x-1 != -1)
X+ /* Because:
X+ * #define FOO => FOO={} => defined( ) => (-1 != - - 1) => 1
X+ * #define FOO 1 or on command-line -DFOO
X+ * => defined(1) => (-1 != - 1 - 1) => 1
X+ * if FOO isn't defined, FOO=0. But some compilers default to 0 instead of 1
X+ * for -DFOO, oh well.
X+ * => defined(0) => (-1 != - 0 - 1) => 0
X+ *
X+ * But:
X+ * defined("") => (-1 != - "" - 1)
X+ * [which is an unavoidable catastrophe.]
X+ */
X #endif
X
X
X***************
X*** 63,69 ****
X # ifndef KR1ED
X #define WIZARD "izchak" /* the person allowed to use the -D option */
X # else
X! #define WIZARD 1
X #define WIZARD_NAME "johnny"
X # endif
X #endif
X--- 98,104 ----
X # ifndef KR1ED
X #define WIZARD "izchak" /* the person allowed to use the -D option */
X # else
X! #define WIZARD
X #define WIZARD_NAME "johnny"
X # endif
X #endif
X***************
X*** 78,90 ****
X * smaller bones/level/save files, but require additional code and time.
X */
X
X #define COMPRESS "/usr/local/compress" /* path name for 'compress' */
X! #ifndef COMPRESS
X #define ZEROCOMP /* Use only if COMPRESS is not used -- Olaf Seibert */
X #endif
X
X!
X #define CHDIR /* delete if no chdir() available */
X
X #ifdef CHDIR
X /*
X--- 113,128 ----
X * smaller bones/level/save files, but require additional code and time.
X */
X
X+ #ifndef MACOS
X #define COMPRESS "/usr/local/compress" /* path name for 'compress' */
X! # ifndef COMPRESS
X #define ZEROCOMP /* Use only if COMPRESS is not used -- Olaf Seibert */
X+ # endif
X #endif
X
X! #ifndef MACOS
X #define CHDIR /* delete if no chdir() available */
X+ #endif
X
X #ifdef CHDIR
X /*
X***************
X*** 173,218 ****
X */
X
X /* game features */
X! #define POLYSELF 1 /* Polymorph self code by Ken Arromdee */
X! #define THEOLOGY 1 /* Smarter gods - The Unknown Hacker */
X! #define SOUNDS 1 /* Add more life to the dungeon */
X! #define KICK 1 /* Allow kicking things besides doors -Izchak Miller */
X /* dungeon features */
X! #define THRONES 1 /* Thrones and Courts by M. Stephenson */
X! #define FOUNTAINS 1 /* Fountain code by SRT (+ GAN + EB) */
X! #define SINKS 1 /* Kitchen sinks - Janet Walz */
X! #define ALTARS 1 /* Sacrifice sites - Jean-Christophe Collet */
X /* dungeon levels */
X! #define WALLIFIED_MAZE 1 /* Fancy mazes - Jean-Christophe Collet */
X! #define REINCARNATION 1 /* Rogue-like levels */
X! #define STRONGHOLD 1 /* Challenging special levels - Jean-Christophe Collet*/
X /* monsters & objects */
X! #define ORACLE 1 /* Include another source of information */
X! #define MEDUSA 1 /* Mirrors and the Medusa by Richard P. Hughey */
X! #define KOPS 1 /* Keystone Kops by Scott R. Turner */
X! #define ARMY 1 /* Soldiers, barracks by Steve Creps */
X! #define WORM 1 /* Long worms */
X! #define GOLEMS 1 /* Golems, by KAA */
X! #define INFERNO 1 /* Demons & Demonlords */
X #ifdef INFERNO
X! #define SEDUCE 1 /* Succubi/incubi additions, by KAA, suggested by IM */
X #endif
X! #define TOLKIEN 1 /* More varieties of objects and monsters */
X! #define PROBING 1 /* Wand of probing code by Gil Neiger */
X! #define WALKIES 1 /* Leash code by M. Stephenson */
X! #define SHIRT 1 /* Hawaiian shirt code by Steve Linhart */
X! #define MUSIC 1 /* Musical instruments - Jean-Christophe Collet */
X! #define TUTTI_FRUTTI 1 /* Fruits as in Rogue, but which work... -KAA */
X! #define SPELLS 1 /* Spell casting by M. Stephenson */
X! #define NAMED_ITEMS 1 /* Special named items handling */
X /* difficulty */
X! #define ELBERETH 1 /* Allow for disabling the E word - Mike 3point */
X! #define EXPLORE_MODE 1 /* Allow non-scoring play with additional powers */
X! #define HARD 1 /* Enhanced wizard code by M. Stephenson */
X /* I/O */
X! #define REDO 1 /* support for redoing last command - DGK */
X! #define COM_COMPL 1 /* Command line completion by John S. Bien */
X! #define CLIPPING 1 /* allow smaller screens -- ERS */
X
X #ifdef REDO
X #define DOAGAIN '\001' /* The "redo" key used in tty.c and cmd.c */
X--- 211,258 ----
X */
X
X /* game features */
X! #define POLYSELF /* Polymorph self code by Ken Arromdee */
X! #define THEOLOGY /* Smarter gods - The Unknown Hacker */
X! #define SOUNDS /* Add more life to the dungeon */
X! #define KICK /* Allow kicking things besides doors -Izchak Miller */
X /* dungeon features */
X! #define THRONES /* Thrones and Courts by M. Stephenson */
X! #define FOUNTAINS /* Fountain code by SRT (+ GAN + EB) */
X! #define SINKS /* Kitchen sinks - Janet Walz */
X! #define ALTARS /* Sacrifice sites - Jean-Christophe Collet */
X /* dungeon levels */
X! #define WALLIFIED_MAZE /* Fancy mazes - Jean-Christophe Collet */
X! #define REINCARNATION /* Rogue-like levels */
X! #define STRONGHOLD /* Challenging special levels - Jean-Christophe Collet*/
X /* monsters & objects */
X! #define ORACLE /* Include another source of information */
X! #define MEDUSA /* Mirrors and the Medusa by Richard P. Hughey */
X! #define KOPS /* Keystone Kops by Scott R. Turner */
X! #define ARMY /* Soldiers, barracks by Steve Creps */
X! #define WORM /* Long worms */
X! #define GOLEMS /* Golems, by KAA */
X! #define INFERNO /* Demons & Demonlords */
X #ifdef INFERNO
X! #define SEDUCE /* Succubi/incubi additions, by KAA, suggested by IM */
X #endif
X! #define TOLKIEN /* More varieties of objects and monsters */
X! #define PROBING /* Wand of probing code by Gil Neiger */
X! #define WALKIES /* Leash code by M. Stephenson */
X! #define SHIRT /* Hawaiian shirt code by Steve Linhart */
X! #define MUSIC /* Musical instruments - Jean-Christophe Collet */
X! #define TUTTI_FRUTTI /* Fruits as in Rogue, but which work... -KAA */
X! #define SPELLS /* Spell casting by M. Stephenson */
X! #define NAMED_ITEMS /* Special named items handling */
X /* difficulty */
X! #define ELBERETH /* Allow for disabling the E word - Mike 3point */
X! #define EXPLORE_MODE /* Allow non-scoring play with additional powers */
X! #define HARD /* Enhanced wizard code by M. Stephenson */
X /* I/O */
X! #define REDO /* support for redoing last command - DGK */
X! #define COM_COMPL /* Command line completion by John S. Bien */
X! #ifndef AMIGA
X! #define CLIPPING /* allow smaller screens -- ERS */
X! #endif
X
X #ifdef REDO
X #define DOAGAIN '\001' /* The "redo" key used in tty.c and cmd.c */
X*** include/Old/decl.h Mon Feb 19 22:06:55 1990
X--- include/decl.h Mon Feb 19 18:16:33 1990
X***************
X*** 20,26 ****
X E char *catmore;
X #endif /* DEF_PAGER */
X E char SAVEF[];
X! E char *hname;
X E const char *hu_stat[]; /* defined in eat.c */
X E int medusa_level;
X E int bigroom_level;
X--- 20,26 ----
X E char *catmore;
X #endif /* DEF_PAGER */
X E char SAVEF[];
X! E const char *hname;
X E const char *hu_stat[]; /* defined in eat.c */
X E int medusa_level;
X E int bigroom_level;
X***************
X*** 73,91 ****
X E int smeq[];
X E int doorindex;
X E char *save_cm;
X! E char *killer;
X E char inv_order[];
X E char plname[PL_NSIZ];
X E char dogname[];
X E char catname[];
X E const char sdir[], ndir[]; /* defined in hack.c */
X! E char *occtxt; /* defined when occupation != NULL */
X! E char *nomovemsg;
X E const char nul[];
X E char *HI, *HE, *AS, *AE; /* set up in termcap.c */
X E char *CD; /* set up in termcap.c */
X E int CO, LI; /* set up in termcap.c: COLNO and ROWNO+3 */
X! E char *traps[];
X #ifndef MAKEDEFS_C /* avoid conflict with lock() */
X E char lock[];
X #endif
X--- 73,95 ----
X E int smeq[];
X E int doorindex;
X E char *save_cm;
X! #define KILLED_BY_AN 0
X! #define KILLED_BY 1
X! #define NO_KILLER_PREFIX 2
X! E int killer_format;
X! E const char *killer;
X E char inv_order[];
X E char plname[PL_NSIZ];
X E char dogname[];
X E char catname[];
X E const char sdir[], ndir[]; /* defined in hack.c */
X! E const char *occtxt; /* defined when occupation != NULL */
X! E const char *nomovemsg;
X E const char nul[];
X E char *HI, *HE, *AS, *AE; /* set up in termcap.c */
X E char *CD; /* set up in termcap.c */
X E int CO, LI; /* set up in termcap.c: COLNO and ROWNO+3 */
X! E const char *traps[];
X #ifndef MAKEDEFS_C /* avoid conflict with lock() */
X E char lock[];
X #endif
X***************
X*** 130,136 ****
X--- 134,144 ----
X #ifndef COLOR_H
X #include "color.h"
X #endif
X+ # ifdef TOS
X+ E const char *hilites[MAXCOLORS];
X+ # else
X E char *hilites[MAXCOLORS];
X+ # endif
X #endif
X
X #ifndef OBJ_H
X***************
X*** 189,194 ****
X--- 197,210 ----
X
X E const char nothing_happens[];
X E const char thats_enough_tries[];
X+
X+ E const char monsyms[], objsyms[];
X+ E const char *monexplain[], *objexplain[];
X+
X+ #ifdef NAMED_ITEMS
X+ E const int artifact_num;
X+ E boolean artiexist[];
X+ #endif
X
X #undef E
X
X*** include/Old/def_os2.h Mon Feb 19 22:07:10 1990
X--- include/def_os2.h Tue Nov 28 20:50:49 1989
X***************
X*** 106,108 ****
X--- 106,109 ----
X USHORT APIENTRY DosFindNext(HDIR, PFILEFINDBUF, USHORT, PUSHORT);
X USHORT APIENTRY DosSelectDisk(USHORT);
X USHORT APIENTRY VioGetMode(PVIOMODEINFO, HVIO);
X+ USHORT APIENTRY VioSetCurPos(USHORT, USHORT, HVIO);
X*** include/Old/flag.h Mon Feb 19 22:08:59 1990
X--- include/flag.h Wed Jan 10 19:21:58 1990
X***************
X*** 62,67 ****
X--- 62,70 ----
X #endif
X boolean rawio; /* Whether can use rawio (IOCTL call) */
X #endif
X+ #ifdef MACOS
X+ boolean wantspace; /* Waiting for a space (as in --More--) */
X+ #endif
X };
X
X extern struct flag flags;
X*** include/Old/func_tab.h Mon Feb 19 22:09:13 1990
X--- include/func_tab.h Tue Jan 16 18:11:08 1990
X***************
X*** 8,22 ****
X
X struct func_tab {
X char f_char;
X! int (*f_funct)();
X! char *f_text;
X };
X
X extern const struct func_tab cmdlist[];
X
X struct ext_func_tab {
X! char *ef_txt, *ef_desc;
X! int (*ef_funct)();
X };
X
X extern const struct ext_func_tab extcmdlist[];
X--- 8,22 ----
X
X struct func_tab {
X char f_char;
X! int NDECL((*f_funct));
X! const char *f_text;
X };
X
X extern const struct func_tab cmdlist[];
X
X struct ext_func_tab {
X! const char *ef_txt, *ef_desc;
X! int NDECL((*ef_funct));
X };
X
X extern const struct ext_func_tab extcmdlist[];
X*** include/Old/global.h Mon Feb 19 22:09:24 1990
X--- include/global.h Mon Feb 19 18:16:29 1990
X***************
X*** 5,23 ****
X #ifndef GLOBAL_H
X #define GLOBAL_H
X
X! #include <stdio.h>
X
X
X /* #define BETA /* if a beta-test copy [MRS] */
X! #define VERSION "3.0h" /* version number. */
X
X /*
X * Files expected to exist in the playground directory.
X */
X
X! #define RECORD "record" /* the file containing the list of topscorers */
X! #define HELP "help" /* the file containing command descriptions */
X! #define SHELP "hh" /* abbreviated form of the same */
X #define RUMORFILE "rumors" /* a file with fortune cookies */
X #define ORACLEFILE "oracles" /* a file with oracular information */
X #define DATAFILE "data" /* a file giving the meaning of symbols used */
X--- 5,25 ----
X #ifndef GLOBAL_H
X #define GLOBAL_H
X
X! #ifndef VMS
X! # include <stdio.h>
X! #endif
X
X
X /* #define BETA /* if a beta-test copy [MRS] */
X! #define VERSION "3.0i" /* version number. */
X
X /*
X * Files expected to exist in the playground directory.
X */
X
X! #define RECORD "record" /* a file containing list of topscorers */
X! #define HELP "help" /* a file containing command descriptions */
X! #define SHELP "hh" /* abbreviated form of the same */
X #define RUMORFILE "rumors" /* a file with fortune cookies */
X #define ORACLEFILE "oracles" /* a file with oracular information */
X #define DATAFILE "data" /* a file giving the meaning of symbols used */
X***************
X*** 25,31 ****
X #define HISTORY "history" /* a file giving nethack's history */
X #define LICENSE "license" /* file with license information */
X #define OPTIONFILE "opthelp" /* a file explaining runtime options */
X!
X
X
X /* Assorted definitions that may depend on selections in config.h. */
X--- 27,35 ----
X #define HISTORY "history" /* a file giving nethack's history */
X #define LICENSE "license" /* file with license information */
X #define OPTIONFILE "opthelp" /* a file explaining runtime options */
X! #ifdef MACOS
X! #define MACHELP "MacHelp" /* file with Macintosh information */
X! #endif
X
X
X /* Assorted definitions that may depend on selections in config.h. */
X***************
X*** 55,64 ****
X typedef schar xchar;
X typedef xchar boolean; /* 0 or 1 */
X
X! #ifndef MACOS /* defined in MacTypes.h(LSC) or Types.h(Aztec & MPW) */
X #define TRUE ((boolean)1)
X #define FALSE ((boolean)0)
X #endif
X
X #ifdef BITFIELDS
X #define Bitfield(x,n) unsigned x:n
X--- 59,70 ----
X typedef schar xchar;
X typedef xchar boolean; /* 0 or 1 */
X
X! #ifndef MACOS
X! #ifndef TRUE /* defined in some systems' native include files */
X #define TRUE ((boolean)1)
X #define FALSE ((boolean)0)
X #endif
X+ #endif
X
X #ifdef BITFIELDS
X #define Bitfield(x,n) unsigned x:n
X***************
X*** 74,80 ****
X * prototypes for the ANSI compilers so people quit trying to fix the prototypes
X * to match the standard and thus lose the typechecking.
X */
X! #if defined(MSDOS) || defined(THINKC4) && !(defined(AMIGA) || defined(TOS))
X # define CHAR_P char
X # define SCHAR_P schar
X # define UCHAR_P uchar
X--- 80,86 ----
X * prototypes for the ANSI compilers so people quit trying to fix the prototypes
X * to match the standard and thus lose the typechecking.
X */
X! #if (defined(MSDOS) && !defined(TOS)) || defined (AMIGA) || defined(THINKC4)
X # define CHAR_P char
X # define SCHAR_P schar
X # define UCHAR_P uchar
X***************
X*** 122,127 ****
X--- 128,134 ----
X
X #if defined(VMS) && !defined(VMSCONF_H)
X # include "vmsconf.h"
X+ # include <stdio.h>
X #endif
X
X #if defined(UNIX) && !defined(UNIXCONF_H)
X*** include/Old/hack.h Mon Feb 19 22:09:46 1990
X--- include/hack.h Mon Feb 19 18:16:34 1990
X***************
X*** 75,80 ****
X--- 75,85 ----
X #include "rm.h"
X #endif
X
X+ #ifdef OVERLAY /* This doesn't belong here, but we have little choice */
X+ #undef NDECL
X+ #define NDECL(f) f()
X+ #endif
X+
X #ifndef EXTERN_H
X #include "extern.h"
X #endif
X***************
X*** 117,121 ****
X--- 122,151 ----
X #define getuid() 1
X #define getlogin() ((char *) NULL)
X #endif /* MSDOS */
X+
X+ /* Macro for a few items that are only static if we're not overlaid.... */
X+ #if defined(OVERLAY) && (defined(OVL0) || defined(OVL1) || defined(OVL2) || defined(OVLB))
X+ # define OSTATIC extern
X+ # define XSTATIC
X+ # define OVERLAY_SPLIT
X+ # ifdef OVLB
X+ # define VSTATIC
X+ # else
X+ # define VSTATIC extern
X+ # endif
X+ #else
X+ # define OSTATIC static
X+ # define XSTATIC static
X+ # define VSTATIC static
X+ #endif
X+
X+ /* Unless explicit control is being taken of what is linked where, */
X+ /* always compile everything */
X+ #if !defined(OVERLAY) || (!defined(OVL0) && !defined(OVL1) && !defined(OVL2) && !defined(OVLB))
X+ # define OVL0 /* Highest priority */
X+ # define OVL1
X+ # define OVL2 /* Lowest specified priority */
X+ # define OVLB /* The base overlay segment */
X+ #endif
X
X #endif /* HACK_H /**/
X*** include/Old/macconf.h Mon Feb 19 22:10:17 1990
X--- include/macconf.h Fri Feb 16 19:15:36 1990
X***************
X*** 10,16 ****
X * The following options are configurable:
X */
X
X! #define RANDOM 1 /* have Berkeley random(3) */
X
X #define PATHLEN 220 /* maximum pathlength */
X #define FILENAME 31 /* maximum filename length (conservative) */
X--- 10,16 ----
X * The following options are configurable:
X */
X
X! #define RANDOM /* have Berkeley random(3) */
X
X #define PATHLEN 220 /* maximum pathlength */
X #define FILENAME 31 /* maximum filename length (conservative) */
X***************
X*** 18,24 ****
X #define glo(x) name_file(lock, x) /* name_file used for bones */
X #include "msdos.h" /* contains necessary externs for [os_name].c */
X extern char *configfile;
X! #define NO_SIGNAL 1
X #define perror(x)
X
X /*
X--- 18,24 ----
X #define glo(x) name_file(lock, x) /* name_file used for bones */
X #include "msdos.h" /* contains necessary externs for [os_name].c */
X extern char *configfile;
X! #define NO_SIGNAL
X #define perror(x)
X
X /*
X***************
X*** 55,60 ****
X--- 55,62 ----
X #include <types.h>
X #include <io.h>
X #define memcpy(x,y,j) movmem(y,x,j)
X+ #define memset(x,y,j) setmem(x,j,y)
X+ extern char *malloc();
X extern char *calloc();
X #else
X #include <Fcntl.h>
X***************
X*** 70,75 ****
X--- 72,78 ----
X #endif
X #endif
X
X+ #include <pascal.h>
X #include <Quickdraw.h>
X #include <FontMgr.h>
X #include <EventMgr.h>
X***************
X*** 101,108 ****
X--- 104,117 ----
X #ifdef AZTEC
X #include <utime.h> /* AZTEC 3.6c */
X #define curs(x,y) tcurs(x,y)
X+ #include <Types.h>
X+ #define CtoPstr ctop
X+ #define PtoCstr ptoc
X #else
X #include <Time.h> /* MPW 3.0 */
X+ #include <Strings.h>
X+ #define CtoPstr c2pstr
X+ #define PtoCstr p2cstr
X #endif
X
X
X***************
X*** 141,151 ****
X SysEnvRec system;
X char *keyMap;
X short color[8];
X Handle shortMBarHandle,
X fullMBarHandle;
X } term_info;
X
X! #define TEXTCOLOR 1
X
X #define appleMenu 101
X #define fileMenu 102
X--- 150,161 ----
X SysEnvRec system;
X char *keyMap;
X short color[8];
X+ CursHandle cursor[8];
X Handle shortMBarHandle,
X fullMBarHandle;
X } term_info;
X
X! #define TEXTCOLOR
X
X #define appleMenu 101
X #define fileMenu 102
X***************
X*** 172,177 ****
X--- 182,192 ----
X #define LEFT_OFFSET 10
X
X /* for macflags variable */
X+ #define fScreenKluges 0x3000
X+ #define fFullScrKluge 0x2000
X+ #define fCornScrKluge 0x1000
X+ #define fDisplayKluge 0x800
X+ #define fMoveWRTMouse 0x400
X #define fZoomOnContextSwitch 0x200
X #define fUseCustomFont 0x100
X #define fToggleNumPad 0x80
X***************
X*** 189,199 ****
X--- 204,220 ----
X #define BONES_TYPE 'BONE'
X #define LEVEL_TYPE 'LEVL'
X #define HACK_DATA 'HDTA'
X+ #define AUXIL_TYPE 'AUXL'
X+ #define TEXT_TYPE 'TEXT'
X #define MONST_DATA 101
X #define OBJECT_DATA 104
X #define DEFAULT_DATA 100
X
X #include "extern.h"
X+
X+ # ifndef MACALERT_H
X+ # include "MacAlert.h"
X+ # endif
X
X #endif /* MACCONF_H /* */
X #endif /* MACOS / */
X*** include/Old/mfndpos.h Mon Feb 19 22:10:31 1990
X--- include/mfndpos.h Tue Nov 28 21:10:41 1989
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)mfndpos.h 3.0 88/10/15
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X /* mfndpos.h - version 1.0.2 */
X--- 1,4 ----
X! /* SCCS Id: @(#)mfndpos.h 3.0 89/11/22
X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X /* NetHack may be freely redistributed. See license for details. */
X /* mfndpos.h - version 1.0.2 */
X***************
X*** 6,26 ****
X #ifndef MFNDPOS_H
X #define MFNDPOS_H
X
X! /* changed by GAN 02/06/87 to add nine extra bits for traps -
X! * this because new traps make nine for traps insufficient
X! */
X!
X! #define ALLOW_TRAPS 0777777L
X! #define ALLOW_U 01000000L /* can attack you */
X! #define ALLOW_M 02000000L /* can attack other monsters */
X! #define ALLOW_TM 04000000L
X! #define ALLOW_ALL (ALLOW_U | ALLOW_M | ALLOW_TM | ALLOW_TRAPS)
X! #define ALLOW_SSM 010000000L /* ignores scare monster */
X! #define ALLOW_ROCK 020000000L /* pushes rocks */
X! #define NOTONL 040000000L /* stays off direct line to player */
X! #define NOGARLIC 0100000000L /* hates garlic */
X! #define ALLOW_WALL 0200000000L /* walks through walls */
X! #define ALLOW_DIG 0400000000L /* digs */
X! #define ALLOW_SANCT 01000000000L /* enters a temple */
X
X #endif /* MFNDPOS_H /**/
X--- 6,25 ----
X #ifndef MFNDPOS_H
X #define MFNDPOS_H
X
X! #define ALLOW_TRAPS 0x0002FFFFL /* can enter 18 kinds of traps */
X! #define ALLOW_U 0x00040000L /* can attack you */
X! #define ALLOW_M 0x00080000L /* can attack other monsters */
X! #define ALLOW_TM 0x00100000L /* can attack tame monsters */
X! #define ALLOW_ALL (ALLOW_U | ALLOW_M | ALLOW_TM | ALLOW_TRAPS)
X! #define NOTONL 0x00200000L /* avoids direct line to player */
X! #define OPENDOOR 0x00400000L /* opens closed doors */
X! #define UNLOCKDOOR 0x00800000L /* unlocks locked doors */
X! #define BUSTDOOR 0x01000000L /* breaks any doors */
X! #define ALLOW_ROCK 0x02000000L /* pushes rocks */
X! #define ALLOW_WALL 0x04000000L /* walks thru walls */
X! #define ALLOW_DIG 0x08000000L /* digs */
X! #define ALLOW_SANCT 0x20000000L /* enters temples */
X! #define ALLOW_SSM 0x40000000L /* ignores scare monster */
X! #define NOGARLIC 0x80000000L /* hates garlic */
X
X #endif /* MFNDPOS_H /**/
X*** include/Old/mkroom.h Mon Feb 19 22:10:42 1990
X--- include/mkroom.h Thu Jan 18 20:28:09 1990
X***************
X*** 13,19 ****
X };
X
X struct shclass {
X! char *name; /* name of the shop type */
X char symb; /* this identifies the shop type */
X int prob; /* the shop type probability in % */
X schar dist; /* artifact placement type */
X--- 13,19 ----
X };
X
X struct shclass {
X! const char *name; /* name of the shop type */
X char symb; /* this identifies the shop type */
X int prob; /* the shop type probability in % */
X schar dist; /* artifact placement type */
X*** include/Old/monattk.h Mon Feb 19 22:10:54 1990
X--- include/monattk.h Mon Nov 20 20:44:37 1989
X***************
X*** 1,4 ****
X! /* SCCS Id: @(#)monattk.h 3.0 89/06/15
X /* NetHack may be freely redistributed. See license for details. */
X /* Copyright 1988, M. Stephenson */
X
X--- 1,4 ----
X! /* SCCS Id: @(#)monattk.h 3.0 89/11/20
X /* NetHack may be freely redistributed. See license for details. */
X /* Copyright 1988, M. Stephenson */
X
X***************
X*** 72,77 ****
X
X #define AD_SAMU 252 /* hits, may steal Amulet (Wizard) */
X #define AD_CURS 253 /* random curse (ex. gremlin) */
X- #define AD_CUSS 255 /* says nasty things about you */
X
X #endif /* MONATTK_H /**/
X--- 72,76 ----
X*** include/Old/monst.h Mon Feb 19 22:11:43 1990
X--- include/monst.h Fri Feb 2 18:24:36 1990
X***************
X*** 18,26 ****
X #define MTSZ 4
X coord mtrack[MTSZ]; /* monster track */
X int mhp, mhpmax;
X! char mappearance; /* nonzero for undetected 'M's and the Wizard */
X! int mspec_used; /* monster's special ability attack timeout */
X schar mtame; /* level of tameness, implies peaceful */
X
X Bitfield(mimic,1); /* undetected mimic */
X Bitfield(mdispl,1); /* mdx,mdy valid */
X--- 18,33 ----
X #define MTSZ 4
X coord mtrack[MTSZ]; /* monster track */
X int mhp, mhpmax;
X! unsigned mappearance; /* for undetected mimics and the wiz */
X! uchar m_ap_type; /* what mappearance is describing: */
X! #define M_AP_NOTHING 0 /* mappearance is unused */
X! #define M_AP_FURNITURE 1 /* stairs, a door, an altar, etc. */
X! #define M_AP_OBJECT 2 /* an object */
X! #define M_AP_MONSTER 3 /* a monster */
X! #define M_AP_GOLD 4 /* a quantity (mappearance holds it) of gold */
X!
X schar mtame; /* level of tameness, implies peaceful */
X+ int mspec_used; /* monster's special ability attack timeout */
X
X Bitfield(mimic,1); /* undetected mimic */
X Bitfield(mdispl,1); /* mdx,mdy valid */
X***************
X*** 33,59 ****
X Bitfield(mflee,1); /* fleeing */
X Bitfield(mfleetim,7); /* timeout for mflee */
X
X Bitfield(msleep,1); /* sleeping */
X- Bitfield(mfroz,1); /* frozen */
X Bitfield(mstun,1); /* stunned (off balance) */
X Bitfield(mconf,1); /* confused */
X Bitfield(mcan,1); /* has been cancelled */
X Bitfield(mpeaceful,1); /* does not attack unprovoked */
X- Bitfield(mcansee,1); /* cansee 1, temp.blinded 0, blind 0 */
X-
X- Bitfield(mblinded,7); /* cansee 0, temp.blinded n, blind 0 */
X Bitfield(mtrapped,1); /* trapped in a pit or bear trap */
X!
X Bitfield(isshk,1); /* is shopkeeper */
X Bitfield(isgd,1); /* is guard */
X #if defined(ALTARS) && defined(THEOLOGY)
X Bitfield(ispriest,1); /* is a priest */
X #endif
X Bitfield(iswiz,1); /* is the Wizard of Yendor */
X- Bitfield(mleashed,1); /* monster is on a leash */
X #ifdef WORM
X Bitfield(wormno,5); /* at most 31 worms on any level */
X #endif
X long mtrapseen; /* bitmap of traps we've been trapped in */
X long mlstmv; /* prevent two moves at once */
X struct obj *minvent;
X--- 40,69 ----
X Bitfield(mflee,1); /* fleeing */
X Bitfield(mfleetim,7); /* timeout for mflee */
X
X+ Bitfield(mcansee,1); /* cansee 1, temp.blinded 0, blind 0 */
X+ Bitfield(mblinded,7); /* cansee 0, temp.blinded n, blind 0 */
X+
X+ Bitfield(mcanmove,1); /* paralysis, similar to mblinded */
X+ Bitfield(mfrozen,7);
X+
X Bitfield(msleep,1); /* sleeping */
X Bitfield(mstun,1); /* stunned (off balance) */
X Bitfield(mconf,1); /* confused */
X Bitfield(mcan,1); /* has been cancelled */
X Bitfield(mpeaceful,1); /* does not attack unprovoked */
X Bitfield(mtrapped,1); /* trapped in a pit or bear trap */
X! Bitfield(mleashed,1); /* monster is on a leash */
X Bitfield(isshk,1); /* is shopkeeper */
X+
X Bitfield(isgd,1); /* is guard */
X #if defined(ALTARS) && defined(THEOLOGY)
X Bitfield(ispriest,1); /* is a priest */
X #endif
X Bitfield(iswiz,1); /* is the Wizard of Yendor */
X #ifdef WORM
X Bitfield(wormno,5); /* at most 31 worms on any level */
X #endif
X+
X long mtrapseen; /* bitmap of traps we've been trapped in */
X long mlstmv; /* prevent two moves at once */
X struct obj *minvent;
X*** include/Old/msdos.h Mon Feb 19 22:12:06 1990
X--- include/msdos.h Fri Dec 29 21:38:04 1989
X***************
X*** 10,15 ****
X--- 10,18 ----
X #endif
X extern const char *alllevels, *allbones;
X extern char levels[], bones[], permbones[], SAVEF[], hackdir[];
X+ #ifdef MSDOS
X+ extern char SAVEP[];
X+ #endif
X extern int ramdisk;
X #if defined(DGK) && !defined(OLD_TOS)
X extern int count_only;
X*** include/Old/obj.h Mon Feb 19 22:12:17 1990
X--- include/obj.h Thu Feb 8 17:17:26 1990
X***************
X*** 94,100 ****
X #define is_sword(otmp) (otmp->otyp >= SHORT_SWORD && otmp->otyp <= KATANA)
X #define bimanual(otmp) (otmp->olet == WEAPON_SYM && objects[otmp->otyp].oc_bimanual)
X
X- #define is_flammable(otmp) (objects[otmp->otyp].oc_material == WOOD || objects[otmp->otyp].oc_material == 0)
X #define is_rustprone(otmp) (objects[otmp->otyp].oc_material == METAL)
X #define is_corrodeable(otmp) (objects[otmp->otyp].oc_material == COPPER)
X # endif /* STUPID_CPP */
X--- 94,99 ----
X*** include/Old/objclass.h Mon Feb 19 22:12:33 1990
X--- include/objclass.h Thu Jan 18 20:28:13 1990
X***************
X*** 8,16 ****
X /* definition of a class of objects */
X
X struct objclass {
X! char *oc_name; /* actual name */
X! char *oc_descr; /* description when name unknown */
X! char *oc_uname; /* called by user */
X Bitfield(oc_name_known,1);
X Bitfield(oc_merge,1); /* merge otherwise equal objects */
X Bitfield(oc_uses_known,1); /* obj->known affects full decription */
X--- 8,16 ----
X /* definition of a class of objects */
X
X struct objclass {
X! const char *oc_name; /* actual name */
X! const char *oc_descr; /* description when name unknown */
X! char *oc_uname; /* called by user */
X Bitfield(oc_name_known,1);
X Bitfield(oc_merge,1); /* merge otherwise equal objects */
X Bitfield(oc_uses_known,1); /* obj->known affects full decription */
X***************
X*** 79,85 ****
X /* definitions of all object-symbols */
X
X #define RANDOM_SYM '\0' /* used for generating random objects */
X! #define ILLOBJ_SYM '\\'
X #define AMULET_SYM '"'
X #define FOOD_SYM '%'
X #define WEAPON_SYM ')'
X--- 79,85 ----
X /* definitions of all object-symbols */
X
X #define RANDOM_SYM '\0' /* used for generating random objects */
X! #define ILLOBJ_SYM ']' /* should be same as S_MIMIC_DEF */
X #define AMULET_SYM '"'
X #define FOOD_SYM '%'
X #define WEAPON_SYM ')'
X*** include/Old/patchlevel.h Mon Feb 19 22:12:47 1990
X--- include/patchlevel.h Mon Feb 19 21:53:08 1990
X***************
X*** 66,69 ****
X * teach '/' about configurable symbols
X */
X
X! #define PATCHLEVEL 6
X--- 66,87 ----
X * teach '/' about configurable symbols
X */
X
X! /*
X! * Patch 7, February 19, 1990
X! * refine overlay support to handle portions of .c files through OVLx
X! * (courtesy above plus Kevin Smolkowski)
X! * update and extend Amiga port and documentation (courtesy Richard Addison,
X! * Jochen Erwied, Mark Gooderum, Ken Lorber, Greg Olson, Mike Passaretti,
X! * and Gregg Wonderly)
X! * refine and extend Macintosh port and documentation (courtesy Johnny Lee,
X! * Kevin Sitze, Michael Sokolov, Andy Swanson, Jon Watte, and Tom West)
X! * refine VMS documentation
X! * continuing ANSIfication, this time of const usage
X! * teach '/' about differences within monster classes
X! * smarter eating code (yet again), death messages, and treatment of
X! * non-animal monsters, monster unconsciousness, and naming
X! * extended version command to give compilation options
X! * and the usual bug fixes and hole plugs
X! */
X!
X! #define PATCHLEVEL 7
X*** include/Old/pcconf.h Mon Feb 19 22:12:59 1990
X--- include/pcconf.h Thu Feb 15 19:05:44 1990
X***************
X*** 6,16 ****
X #ifndef PCCONF_H
X #define PCCONF_H
X
X! /* #define OS2 /* define for OS/2 (Timo Hakulinen) */
X! /* #define OS2_CODEVIEW /* define for OS/2 CodeView debugger,
X! otherwise path searches may fail (TH) */
X
X! #ifndef TOS
X /*
X * The following options are configurable:
X */
X--- 6,18 ----
X #ifndef PCCONF_H
X #define PCCONF_H
X
X! #if !defined(TOS) && !defined(AMIGA)
X
X! /* #define MSC /* define for pre-ANSI Microsoft C compilers (ver. < 5.0). */
X!
X! /* #define OS2 /* define for OS/2 (Timo Hakulinen) */
X! /* #define OS2_CODEVIEW /* define for OS/2 CodeView debugger versions earlier
X! than 2.3, otherwise path searches may fail */
X /*
X * The following options are configurable:
X */
X***************
X*** 61,67 ****
X--- 63,71 ----
X #define index strchr
X #define rindex strrchr
X
X+ #ifndef AMIGA
X #include <time.h>
X+ #endif
X
X #ifdef RANDOM
X /* Use the high quality random number routines. */
X***************
X*** 95,101 ****
X #define Getchar tgetch
X #endif
X
X! #ifndef TOS
X # define TEXTCOLOR /* */
X #endif
X
X--- 99,105 ----
X #define Getchar tgetch
X #endif
X
X! #if !defined(TOS) && !defined(AMIGA)
X # define TEXTCOLOR /* */
X #endif
X
X*** include/Old/permonst.h Mon Feb 19 22:13:17 1990
X--- include/permonst.h Tue Jan 16 18:11:23 1990
X***************
X*** 16,23 ****
X * are set, they may have a special meaning. For example, if set
X * for a blinding attack, they determine the amount of time blinded.
X */
X- struct attack {
X
X uchar aatyp;
X uchar adtyp, damn, damd;
X };
X--- 16,23 ----
X * are set, they may have a special meaning. For example, if set
X * for a blinding attack, they determine the amount of time blinded.
X */
X
X+ struct attack {
X uchar aatyp;
X uchar adtyp, damn, damd;
X };
X***************
X*** 35,41 ****
X #if defined(SMALLDATA) && !defined(MAKEDEFS_C)
X char mname[24], mlet; /* full name and sym */
X #else
X! char *mname, mlet; /* full name and sym */
X #endif
X schar mlevel, /* base monster level */
X mmove, /* move speed */
X--- 35,42 ----
X #if defined(SMALLDATA) && !defined(MAKEDEFS_C)
X char mname[24], mlet; /* full name and sym */
X #else
X! const char *mname; /* full name */
X! char mlet; /* symbol */
X #endif
X schar mlevel, /* base monster level */
X mmove, /* move speed */
X*** include/Old/rm.h Mon Feb 19 22:13:44 1990
X--- include/rm.h Sat Feb 3 22:42:58 1990
X***************
X*** 68,74 ****
X #define IS_STWALL(typ) ((typ) <= TRWALL) /* STONE <= (typ) <= TRWALL */
X #define IS_ROCK(typ) ((typ) < POOL) /* absolutely nonaccessible */
X #define IS_DOOR(typ) ((typ) == DOOR)
X- #define IS_FLOOR(typ) ((typ) == ROOM)
X #define ACCESSIBLE(typ) ((typ) >= DOOR) /* good position */
X #define IS_ROOM(typ) ((typ) >= ROOM) /* ROOM, STAIRS, furniture.. */
X #define ZAP_POS(typ) ((typ) >= POOL)
X--- 68,73 ----
X***************
X*** 128,134 ****
X typedef uchar symbol_array[MAXPCHARS];
X
X extern symbol_array showsyms;
X! extern char *explainsyms[MAXPCHARS]; /* tells what the characters are */
X #ifdef REINCARNATION
X extern symbol_array savesyms;
X #endif
X--- 127,133 ----
X typedef uchar symbol_array[MAXPCHARS];
X
X extern symbol_array showsyms;
X! extern const char *explainsyms[MAXPCHARS]; /* tells what the characters are */
X #ifdef REINCARNATION
X extern symbol_array savesyms;
X #endif
X*** include/Old/tosconf.h Mon Feb 19 22:15:04 1990
X--- include/tosconf.h Thu Feb 15 19:09:29 1990
X***************
X*** 8,36 ****
X
X #define MSDOS /* must be defined to allow some inclusions */
X
X! /* NOTE: if your TOS compiler is dumb, #define OLD_TOS and compile with
X! oldtos.c to get a minimal configuration (you may need to do some
X! tweaking); otherwise (e.g. GCC) don't do it. OLD_TOS corresponds
X! most closely to LATTICE C, I think */
X
X! /* #define OLD_TOS /* primitive C library */
X! /* #define NO_SIGNAL /* compiler doesn't support signals */
X
X! #ifdef __GNUC__
X #define FCMASK 0666
X #define O_BINARY 0
X- #else
X- #define FCMASK 0x8000
X #endif
X
X #ifdef UNIXDEBUG
X- #define O_BINARY 0
X #define remove(x) unlink(x)
X- #endif
X-
X- #ifdef OLD_TOS
X- #define Rand() rand()
X- #define Srand() srand()
X #endif
X
X /* configurable options */
X--- 8,30 ----
X
X #define MSDOS /* must be defined to allow some inclusions */
X
X! /*
X! Adjust these options to suit your compiler. The default here is for
X! GNU C with the latest version of the library.
X! */
X
X! /*#define NO_SIGNAL /* library doesn't support signals */
X! /*#define NO_FSTAT /* library doesn't have fstat() call */
X
X! #ifdef O_BINARY
X! #define FCMASK O_BINARY
X! #else
X #define FCMASK 0666
X #define O_BINARY 0
X #endif
X
X #ifdef UNIXDEBUG
X #define remove(x) unlink(x)
X #endif
X
X /* configurable options */
X*** include/Old/tradstdc.h Mon Feb 19 22:15:20 1990
X--- include/tradstdc.h Tue Feb 6 18:45:05 1990
X***************
X*** 10,15 ****
X--- 10,19 ----
X #define void int
X #endif
X
X+ #ifdef APOLLO /* the Apollo C compiler claims to be __STDC__, but isn't */
X+ #undef __STDC__
X+ #endif
X+
X /*
X * ANSI X3J11 detection.
X * Makes substitutes for compatibility with the old C standard.
X***************
X*** 18,25 ****
X /* Decide how to handle variable parameter lists:
X * USE_STDARG means use the ANSI <stdarg.h> facilities (only ANSI compilers
X * should do this, and only if the library supports it).
X! * USE_VARARGS means use the <varargs.h> facilities. Again, this should only
X! * be done if the library supports it. ANSI is *not* required for this.
X * Otherwise, the kludgy old methods are used.
X * The defaults are USE_STDARG for ANSI compilers, and USE_OLDARGS for
X * others.
X--- 22,29 ----
X /* Decide how to handle variable parameter lists:
X * USE_STDARG means use the ANSI <stdarg.h> facilities (only ANSI compilers
X * should do this, and only if the library supports it).
X! * USE_VARARGS means use the <varargs.h> facilities. Again, this should only
X! * be done if the library supports it. ANSI is *not* required for this.
X * Otherwise, the kludgy old methods are used.
X * The defaults are USE_STDARG for ANSI compilers, and USE_OLDARGS for
X * others.
X***************
X*** 28,35 ****
X /* #define USE_VARARGS /* use <varargs.h> instead of <stdarg.h> */
X /* #define USE_OLDARGS /* don't use any variable argument facilites */
X
X! #ifdef __STDC__
X! # if !(defined(AMIGA) || defined(USE_VARARGS) || defined(USE_OLDARGS))
X # define USE_STDARG
X # endif
X #endif
X--- 32,39 ----
X /* #define USE_VARARGS /* use <varargs.h> instead of <stdarg.h> */
X /* #define USE_OLDARGS /* don't use any variable argument facilites */
X
X! #if defined(__STDC__) || defined(VMS)
X! # if !(defined(AMIGA) && defined(AZTEC_C) || defined(USE_VARARGS) || defined(USE_OLDARGS))
X # define USE_STDARG
X # endif
X #endif
X***************
X*** 71,88 ****
X #endif
X #endif /* NEED_VARARGS */
X
X! #if (defined(__STDC__) || defined(MSDOS) || defined(THINKC4)) && !defined(AMIGA)
X
X /* Used for robust ANSI parameter forward declarations:
X * int VDECL(sprintf, (char *, const char *, ...));
X *
X * FDECL() is used for functions with a fixed number of arguments;
X * VDECL() is used for functions with a variable number of arguments.
X * Separate macros are needed because ANSI will mix old-style declarations
X! * with prototypes, except in the case of varargs.
X */
X
X # define FDECL(f,p) f p
X # if defined(MSDOS) || defined(USE_STDARG)
X # define VDECL(f,p) f p
X # else
X--- 75,98 ----
X #endif
X #endif /* NEED_VARARGS */
X
X!
X! #if defined(__STDC__) || defined(MSDOS) || defined(THINKC4)
X
X /* Used for robust ANSI parameter forward declarations:
X * int VDECL(sprintf, (char *, const char *, ...));
X *
X+ * NDECL() is used for functions with zero arguments;
X * FDECL() is used for functions with a fixed number of arguments;
X * VDECL() is used for functions with a variable number of arguments.
X * Separate macros are needed because ANSI will mix old-style declarations
X! * with prototypes, except in the case of varargs, and the OVERLAY-specific
X! * trampoli.* mechanism conflicts with the ANSI <<f(void)>> syntax.
X */
X
X+ # define NDECL(f) f(void) /* Must be overridden if OVERLAY set later */
X+
X # define FDECL(f,p) f p
X+
X # if defined(MSDOS) || defined(USE_STDARG)
X # define VDECL(f,p) f p
X # else
X***************
X*** 102,112 ****
X
X #else /* __STDC__ */ /* a "traditional" C compiler */
X
X # define FDECL(f,p) f()
X # define VDECL(f,p) f()
X
X # ifndef genericptr_t
X! # ifdef AMIGA
X typedef void * genericptr_t;
X # else
X typedef char * genericptr_t;
X--- 112,123 ----
X
X #else /* __STDC__ */ /* a "traditional" C compiler */
X
X+ # define NDECL(f) f()
X # define FDECL(f,p) f()
X # define VDECL(f,p) f()
X
X # ifndef genericptr_t
X! # if defined(AMIGA) || defined(HPUX)
X typedef void * genericptr_t;
X # else
X typedef char * genericptr_t;
X*** include/Old/trampoli.h Mon Feb 19 22:15:37 1990
X--- include/trampoli.h Mon Feb 5 18:45:30 1990
X***************
X*** 20,25 ****
X--- 20,28 ----
X #ifdef POLYSELF
X #define domonability() domonability_()
X #endif /* POLYSELF */
X+ #ifdef EXPLORE_MODE
X+ #define enter_explore_mode() enter_explore_mode_()
X+ #endif /* EXPLORE_MODE */
X #define timed_occupation() timed_occupation_()
X #if defined(WIZARD) || defined(EXPLORE_MODE)
X #define wiz_attributes() wiz_attributes_()
X***************
X*** 87,92 ****
X--- 90,96 ----
X
X
X /* ### end.c ### */
X+ #define done1() done1_()
X #define done2() done2_()
X
X
X***************
X*** 130,135 ****
X--- 134,143 ----
X #define picklock() picklock_()
X
X
X+ /* ### mondata.c ### */
X+ #define canseemon(x) canseemon_(x)
X+
X+
X /* ### o_init.c ### */
X #define dodiscovered() dodiscovered_()
X
X***************
X*** 156,162 ****
X
X
X /* ### pickup.c ### */
X! #define ck_bag() ck_bag_()
X #define ck_container(x) ck_container_(x)
X #define doloot() doloot_()
X #define in_container(x) in_container_(x)
X--- 164,170 ----
X
X
X /* ### pickup.c ### */
X! #define ck_bag(x) ck_bag_(x)
X #define ck_container(x) ck_container_(x)
X #define doloot() doloot_()
X #define in_container(x) in_container_(x)
X***************
X*** 227,232 ****
X--- 235,241 ----
X
X /* ### version.c ### */
X #define doversion() doversion_()
X+ #define doextversion() doextversion_()
X
X /* ### wield.c ### */
X #define dowield() dowield_()
X*** include/Old/unixconf.h Mon Feb 19 22:16:11 1990
X--- include/unixconf.h Sat Feb 3 16:30:26 1990
X***************
X*** 16,33 ****
X * index strchr
X * rindex strrchr
X *
X- * Also, the code for suspend is only given for BSD
X */
X
X /* #define BSD /* define for 4.n BSD */
X! /* also for relatives like SunOS */
X #define ULTRIX /* define for Ultrix v3.0 or higher (but not lower) */
X /* Use BSD for < v3.0 */
X /* "ULTRIX" not to be confused with "ultrix" */
X /* #define SYSV /* define for System V */
X /* #define NETWORK /* if running on a networked system */
X /* e.g. Suns sharing a playground through NFS */
X-
X /* #define GENIX /* Yet Another Unix Clone */
X /* #define HISX /* Bull Unix for XPS Machines */
X /* #define UNIXPC /* use in addition to SYSV for AT&T 7300/3B1 */
X--- 16,37 ----
X * index strchr
X * rindex strrchr
X *
X */
X
X+ /* define one of the following */
X /* #define BSD /* define for 4.n BSD */
X! /* also for relatives like SunOS and DG/UX */
X #define ULTRIX /* define for Ultrix v3.0 or higher (but not lower) */
X /* Use BSD for < v3.0 */
X /* "ULTRIX" not to be confused with "ultrix" */
X /* #define SYSV /* define for System V */
X+ /* #define HPUX /* Hewlett-Packard's Unix, version 6.5 or higher */
X+ /* use SYSV for < v6.5 */
X+
X+
X+ /* define any of the following that are appropriate */
X /* #define NETWORK /* if running on a networked system */
X /* e.g. Suns sharing a playground through NFS */
X /* #define GENIX /* Yet Another Unix Clone */
X /* #define HISX /* Bull Unix for XPS Machines */
X /* #define UNIXPC /* use in addition to SYSV for AT&T 7300/3B1 */
X***************
X*** 36,41 ****
X--- 40,46 ----
X
X /* #define PYRAMID_BUG /* avoid a bug on the Pyramid */
X /* #define APOLLO /* same for the Apollo */
X+ /* #define BSD_43_BUG /* for real 4.3BSD cc's without schain botch fix */
X /* #define MICROPORT_BUG /* problems with large arrays in structs */
X /* #define MICROPORT_286_BUG /* Changes needed in termcap.c to get it to
X run with Microport Sys V/AT version 2.4.
X***************
X*** 66,99 ****
X * #define DEF_PAGER ".../mydir/mypager"
X */
X
X /*
X * If you define MAIL, then the player will be notified of new mail
X! * when it arrives. If you also define DEF_MAILREADER then this will
X * be the default mail reader, and can be overridden by the environment
X * variable MAILREADER; otherwise an internal pager will be used.
X * A stat system call is done on the mailbox every MAILCKFREQ moves.
X */
X
X! #define MAIL /* Deliver mail during the game */
X! #ifdef MAIL
X
X # if defined(BSD) || defined(ULTRIX)
X #define DEF_MAILREADER "/usr/ucb/Mail"
X! # else
X! # if defined(SYSV) || defined(DGUX)
X! # ifdef M_XENIX
X #define DEF_MAILREADER "/usr/bin/mail"
X- # else
X- #define DEF_MAILREADER "/usr/bin/mailx"
X- # endif
X # else
X! #define DEF_MAILREADER "/bin/mail"
X # endif
X # endif
X
X #define MAILCKFREQ 50
X #endif /* MAIL */
X
X #ifdef COMPRESS
X /* Some implementations of compress need a 'quiet' option.
X * If you've got one of these versions, put -q here.
X--- 71,133 ----
X * #define DEF_PAGER ".../mydir/mypager"
X */
X
X+
X+
X /*
X * If you define MAIL, then the player will be notified of new mail
X! * when it arrives. If you also define DEF_MAILREADER then this will
X * be the default mail reader, and can be overridden by the environment
X * variable MAILREADER; otherwise an internal pager will be used.
X * A stat system call is done on the mailbox every MAILCKFREQ moves.
X */
X
X! #define MAIL /* Deliver mail during the game */
X!
X! /* The Andrew Message System does mail a little differently from normal
X! * UNIX. Mail is deposited in the user's own directory in ~/Mailbox
X! * (another directory). MAILBOX is the element that will be added on to
X! * the user's home directory path to generate the Mailbox path - just in
X! * case other Andrew sites do it differently from CMU.
X! *
X! * dan lovinger
X! * dl2n+@andrew.cmu.edu (dec 19 1989)
X! */
X!
X! /* #define AMS /* use Andrew message system for mail */
X!
X! /* NO_MAILREADER is for kerberos authentcating filesystems where it is
X! * essentially impossible to securely exec child proccesses, like mail
X! * readers, when the game is running under a special token.
X! *
X! * dan
X! */
X!
X! /* #define NO_MAILREADER /* have mail daemon just tell player of mail */
X
X+ #ifdef MAIL
X # if defined(BSD) || defined(ULTRIX)
X+ # ifdef AMS
X+ #define AMS_MAILBOX "/Mailbox"
X+ # else
X #define DEF_MAILREADER "/usr/ucb/Mail"
X! # endif
X! #else
X! # if defined(SYSV) || defined(DGUX) || defined(HPUX)
X! # ifdef M_XENIX
X #define DEF_MAILREADER "/usr/bin/mail"
X # else
X! #define DEF_MAILREADER "/usr/bin/mailx"
X # endif
X+ # else
X+ #define DEF_MAILREADER "/bin/mail"
X # endif
X+ #endif
X
X #define MAILCKFREQ 50
X #endif /* MAIL */
X
X+
X+
X #ifdef COMPRESS
X /* Some implementations of compress need a 'quiet' option.
X * If you've got one of these versions, put -q here.
X***************
X*** 110,116 ****
X * The remainder of the file should not need to be changed.
X */
X
X! #if (defined(BSD) || defined(ULTRIX)) && !defined(MSDOS)
X #include <sys/time.h>
X #else
X #include <time.h>
X--- 144,161 ----
X * The remainder of the file should not need to be changed.
X */
X
X! /*
X! * BSD/ULTRIX systems are normally the only ones that can suspend processes.
X! * Suspending NetHack processes cleanly should be easy to add to other systems
X! * that have SIGTSTP. Currently the only such system known to work is HPUX;
X! * other systems will probably require tweaks to unixtty.c and ioctl.c.
X! */
X! #if defined(BSD) || defined(ULTRIX) || defined (HPUX)
X! #define SUSPEND /* let ^Z suspend the game */
X! #endif
X!
X!
X! #if defined(BSD) || defined(ULTRIX)
X #include <sys/time.h>
X #else
X #include <time.h>
X***************
X*** 130,138 ****
X #include "system.h"
X
X #if defined(BSD) || defined(ULTRIX)
X! #define SUSPEND /* let ^Z suspend the game */
X #define memcpy(d, s, n) bcopy(s, d, n)
X #define memcmp(s1, s2, n) bcmp(s2, s1, n)
X #else /* therefore SYSV */
X #define index strchr
X #define rindex strrchr
X--- 175,184 ----
X #include "system.h"
X
X #if defined(BSD) || defined(ULTRIX)
X! # ifndef DGUX
X #define memcpy(d, s, n) bcopy(s, d, n)
X #define memcmp(s1, s2, n) bcmp(s2, s1, n)
X+ # endif
X #else /* therefore SYSV */
X #define index strchr
X #define rindex strrchr
X*** include/Old/vault.h Mon Feb 19 22:16:28 1990
X--- include/vault.h Sun Feb 4 09:47:28 1990
X***************
X*** 13,22 ****
X struct egd {
X int fcbeg, fcend; /* fcend: first unused pos */
X xchar gdx, gdy; /* goal of guard's walk */
X unsigned gddone:1;
X struct fakecorridor fakecorr[FCSIZ];
X };
X
X! #define EGD ((struct egd *)(&(guard->mextra[0])))
X
X #endif /* VAULT_H /* */
X--- 13,25 ----
X struct egd {
X int fcbeg, fcend; /* fcend: first unused pos */
X xchar gdx, gdy; /* goal of guard's walk */
X+ xchar ogx, ogy; /* guard's last position */
X+ xchar gdlevel; /* level guard was created on */
X+ xchar warncnt; /* number of warnings to follow */
X unsigned gddone:1;
X struct fakecorridor fakecorr[FCSIZ];
X };
X
X! #define EGD(mon) ((struct egd *)(&(mon->mextra[0])))
X
X #endif /* VAULT_H /* */
X*** include/Old/vmsconf.h Mon Feb 19 22:16:40 1990
X--- include/vmsconf.h Tue Feb 6 18:45:10 1990
X***************
X*** 31,36 ****
X--- 31,42 ----
X * The remainder of the file should not need to be changed.
X */
X
X+ /* GCC 1.36 (or maybe GAS) for VMS has a bug with extern const declarations.
X+ Until it is fixed, eliminate const. */
X+ #ifdef __GNUC__
X+ # define const
X+ #endif
X+
X #include <time.h>
X #include <file.h>
X
X***************
X*** 59,69 ****
X--- 65,79 ----
X #define Srand(seed) srand(seed)
X #endif
X
X+ #define bcopy(s1,s2,sz) memcpy(s2,s1,sz)
X #define unlink(x) delete(x)
X #define exit(x) vms_exit(x)
X #define getuid() vms_getuid()
X #define abort() vms_abort()
X #define creat(f,m) vms_creat(f,m)
X+
X+ /* VMS global names are case insensitive... */
X+ #define An vms_an
X
X #endif
X #endif /* VMS /* */
X*** include/Old/you.h Mon Feb 19 22:17:00 1990
X--- include/you.h Mon Feb 19 18:16:33 1990
X***************
X*** 67,73 ****
X struct prop uprops[LAST_PROP+1];
X
X unsigned umconf;
X! char *usick_cause;
X /* For messages referring to hands, eyes, feet, etc... when polymorphed */
X #define ARM 0
X #define EYE 1
X--- 67,73 ----
X struct prop uprops[LAST_PROP+1];
X
X unsigned umconf;
X! const char *usick_cause;
X /* For messages referring to hands, eyes, feet, etc... when polymorphed */
X #define ARM 0
X #define EYE 1
X***************
X*** 81,87 ****
X #define LEG 9
X #define LIGHT_HEADED 10
X #define NECK 11
X! #define TOE 12
X #ifdef POLYSELF
X int mh, mhmax, mtimedone, umonnum; /* for polymorph-self */
X struct attribs macurr, /* for monster attribs */
X--- 81,88 ----
X #define LEG 9
X #define LIGHT_HEADED 10
X #define NECK 11
X! #define SPINE 12
X! #define TOE 13
X #ifdef POLYSELF
X int mh, mhmax, mtimedone, umonnum; /* for polymorph-self */
X struct attribs macurr, /* for monster attribs */
X
END_OF_FILE
if test 53275 -ne `wc -c <'patch7.16'`; then
echo shar: \"'patch7.16'\" unpacked with wrong size!
fi
# end of 'patch7.16'
echo shar: End of archive 20 \(of 30\).
cp /dev/null ark20isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 30 archives.
rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0