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