billr@saab.CNA.TEK.COM (Bill Randle) (10/18/89)
Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu> Posting-number: Volume 8, Issue 50 Archive-name: NetHack3/Patch5c 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 3 (of 6)." # Contents: patches05c # Wrapped by billr@saab on Tue Oct 17 13:16:26 1989 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'patches05c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patches05c'\" else echo shar: Extracting \"'patches05c'\" \(54981 characters\) sed "s/^X//" >'patches05c' <<'END_OF_FILE' X*** /dev/null Sun Oct 15 19:25:34 1989 X--- include/color.h Tue Oct 3 20:08:13 1989 X*************** X*** 0 **** X--- 1,38 ---- X+ /* SCCS Id: @(#)color.h 3.0 89/09/30 X+ /* Copyright (c) Steve Linhart, Eric Raymond, 1989. */ X+ /* NetHack may be freely redistributed. See license for details. */ X+ X+ #ifndef COLOR_H X+ #define COLOR_H X+ X+ #define BLACK 0 X+ #define RED 1 X+ #define GREEN 2 X+ #define BROWN 3 /* on IBM, lo-intensity yellow is brown */ 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+ #define HI_SILVER GRAY X+ #define HI_GOLD YELLOW X+ #define HI_LEATHER BROWN X+ #define HI_CLOTH BROWN X+ #define HI_ORGANIC GREEN X+ #define HI_WOOD BROWN 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*** include/Old/config.h Sun Oct 15 19:25:46 1989 X--- include/config.h Sat Oct 14 19:19:36 1989 X*************** X*** 14,20 **** X * provides it (comment out the default OS option here). X */ X X! #define UNIX /* delete if no fork(), exec() available */ X X #ifdef __MSDOS__ /* Turbo C auto-defines __MSDOS__, MSC defines MSDOS */ X #define MSDOS /* define for MS-DOS (in case compiler doesn't) */ X--- 14,20 ---- X * provides it (comment out the default OS option here). X */ X X! #define UNIX /* delete if no fork(), exec() available */ X X #ifdef __MSDOS__ /* Turbo C auto-defines __MSDOS__, MSC defines MSDOS */ X #define MSDOS /* define for MS-DOS (in case compiler doesn't) */ X*************** X*** 34,42 **** X--- 34,57 ---- 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+ 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 X+ #endif X+ X+ X X /* X * Section 2: Some global parameters and filenames. X*************** X*** 46,56 **** X */ X X #ifndef WIZARD /* allow for compile-time or Makefile changes */ X #define WIZARD "izchak" /* the person allowed to use the -D option */ X #endif X X! #define LOGFILE "logfile" /* larger file for debugging purposes */ X! #define NEWS "news" /* the file containing the latest hack news */ X X /* X * If COMPRESS is defined, it should contain the full path name of your X--- 61,76 ---- X */ X X #ifndef WIZARD /* allow for compile-time or Makefile changes */ 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 X! #define LOGFILE "logfile" /* larger file for debugging purposes */ X! #define NEWS "news" /* the file containing the latest hack news */ X X /* X * If COMPRESS is defined, it should contain the full path name of your X*************** X*** 63,69 **** X /* #define ZEROCOMP /* Use only if COMPRESS is not used -- Olaf Seibert */ X X X! #define CHDIR /* delete if no chdir() available */ X X #ifdef CHDIR X /* X--- 83,89 ---- X /* #define ZEROCOMP /* Use only if COMPRESS is not used -- Olaf Seibert */ X X X! #define CHDIR /* delete if no chdir() available */ X X #ifdef CHDIR X /* X*************** X*** 70,76 **** X * If you define HACKDIR, then this will be the default playground; X * otherwise it will be the current directory. X */ X! #define HACKDIR "/usr/games/lib/nethackdir" X X /* X * Some system administrators are stupid enough to make Hack suid root X--- 90,96 ---- X * If you define HACKDIR, then this will be the default playground; X * otherwise it will be the current directory. X */ X! #define HACKDIR "/usr/games/lib/nethackdir" X X /* X * Some system administrators are stupid enough to make Hack suid root X*************** X*** 84,90 **** X /* X * If it is desirable to limit the number of people that can play Hack X * simultaneously, define HACKDIR, SECURE and MAX_NR_OF_PLAYERS. X! * #define MAX_NR_OF_PLAYERS 6 X */ X #endif /* CHDIR /**/ X X--- 104,110 ---- X /* X * If it is desirable to limit the number of people that can play Hack X * simultaneously, define HACKDIR, SECURE and MAX_NR_OF_PLAYERS. X! * #define MAX_NR_OF_PLAYERS 6 X */ X #endif /* CHDIR /**/ X X*************** X*** 108,125 **** X /* X * type schar: small signed integers (8 bits suffice) (eg. TOS) X * X! * typedef char schar; X * X * will do when you have signed characters; otherwise use X * X! * typedef short int schar; X */ X! typedef signed char schar; X X /* X * type uchar: small unsigned integers (8 bits suffice - but 7 bits do not) X * X! * typedef unsigned char uchar; X * X * will be satisfactory if you have an "unsigned char" type; X * otherwise use X--- 128,149 ---- X /* X * type schar: small signed integers (8 bits suffice) (eg. TOS) X * X! * typedef char schar; X * X * will do when you have signed characters; otherwise use X * X! * typedef short int schar; X */ X! #ifdef AZTEC X! #define schar char X! #else X! typedef signed char schar; X! #endif X X /* X * type uchar: small unsigned integers (8 bits suffice - but 7 bits do not) X * X! * typedef unsigned char uchar; X * X * will be satisfactory if you have an "unsigned char" type; X * otherwise use X*************** X*** 126,132 **** X * X * typedef unsigned short int uchar; X */ X! typedef unsigned char uchar; X X /* X * Various structures have the option of using bitfields to save space. X--- 150,156 ---- X * X * typedef unsigned short int uchar; X */ X! typedef unsigned char uchar; X X /* X * Various structures have the option of using bitfields to save space. X*************** X*** 147,191 **** X * complexity of the game but also to the size of the load module. X */ X X! #define SPELLS /* Spell casting by M. Stephenson */ X! #define POLYSELF /* Polymorph self code by Ken Arromdee */ X! #define THRONES /* Thrones and Courts by M. Stephenson */ X! #define PROBING /* Wand of probing code by Gil Neiger */ X! #define REDO /* support for redoing last command - DGK */ X! #define HARD /* Enhanced wizard code by M. Stephenson */ X! #define WALKIES /* Leash code by M. Stephenson */ X! #define FOUNTAINS /* Fountain code by SRT (+ GAN + EB) */ X! #define KOPS /* Keystone Kops by Scott R. Turner */ X! #define COM_COMPL /* Command line completion by John S. Bien */ X! #define MEDUSA /* Mirrors and the Medusa by Richard P. Hughey */ X! #define NAMED_ITEMS /* Special named items handling */ X! #define ARMY /* Soldiers, barracks by Steve Creps */ X! #define SHIRT /* Hawaiian shirt code by Steve Linhart */ X! #define THEOLOGY /* Smarter gods - The Unknown Hacker */ X! #define SINKS /* Kitchen sinks - Janet Walz */ X! #define SOUNDS /* Add more life to the dungeon */ X! #define REINCARNATION /* Rogue-like levels */ X! #define ELBERETH /* Allow for disabling the E word - Mike 3point */ X! #define WORM /* Long worms */ X! #define ORACLE /* Include another source of information */ X! #define EXPLORE_MODE /* Allow non-scoring play with additional powers */ X! #define ALTARS /* Sacrifice sites - Jean-Christophe Collet */ X! #define WALLIFIED_MAZE /* Fancy mazes - Jean-Christophe Collet */ X #ifdef HARD X! #define SEDUCE /* Succubi/incubi additions, by KAA, suggested by IM */ X #endif X! #define STRONGHOLD /* Challenging special levels - Jean-Christophe Collet*/ X! #define MUSIC /* Musical instruments - Jean-Christophe Collet */ X! #define GOLEMS /* Golems, by KAA */ X! #define TOLKIEN /* More varieties of objects and monsters */ X! #define KICK /* Allow kicking things besides doors -Izchak Miller */ X! #define TUTTI_FRUTTI /* Fruits as in Rogue, but which work... -KAA */ X X #ifdef REDO X! #define DOAGAIN '\001' /* The "redo" key used in tty.c and cmd.c */ X #endif X X! #define EXP_ON_BOTL /* Show experience on bottom line */ X /* #define SCORE_ON_BOTL /* added by Gary Erickson (erickson@ucivax) */ X X X--- 171,215 ---- X * complexity of the game but also to the size of the load module. X */ X X! #define SPELLS 1 /* Spell casting by M. Stephenson */ X! #define POLYSELF 1 /* Polymorph self code by Ken Arromdee */ X! #define THRONES 1 /* Thrones and Courts by M. Stephenson */ X! #define PROBING 1 /* Wand of probing code by Gil Neiger */ X! #define REDO 1 /* support for redoing last command - DGK */ X! #define HARD 1 /* Enhanced wizard code by M. Stephenson */ X! #define WALKIES 1 /* Leash code by M. Stephenson */ X! #define FOUNTAINS 1 /* Fountain code by SRT (+ GAN + EB) */ X! #define KOPS 1 /* Keystone Kops by Scott R. Turner */ X! #define COM_COMPL 1 /* Command line completion by John S. Bien */ X! #define MEDUSA 1 /* Mirrors and the Medusa by Richard P. Hughey */ X! #define NAMED_ITEMS 1 /* Special named items handling */ X! #define ARMY 1 /* Soldiers, barracks by Steve Creps */ X! #define SHIRT 1 /* Hawaiian shirt code by Steve Linhart */ X! #define THEOLOGY 1 /* Smarter gods - The Unknown Hacker */ X! #define SINKS 1 /* Kitchen sinks - Janet Walz */ X! #define SOUNDS 1 /* Add more life to the dungeon */ X! #define REINCARNATION 1 /* Rogue-like levels */ X! #define ELBERETH 1 /* Allow for disabling the E word - Mike 3point */ X! #define WORM 1 /* Long worms */ X! #define ORACLE 1 /* Include another source of information */ X! #define EXPLORE_MODE 1 /* Allow non-scoring play with additional powers */ X! #define ALTARS 1 /* Sacrifice sites - Jean-Christophe Collet */ X! #define WALLIFIED_MAZE 1 /* Fancy mazes - Jean-Christophe Collet */ X #ifdef HARD X! #define SEDUCE 1 /* Succubi/incubi additions, by KAA, suggested by IM */ X #endif X! #define STRONGHOLD 1 /* Challenging special levels - Jean-Christophe Collet*/ X! #define MUSIC 1 /* Musical instruments - Jean-Christophe Collet */ X! #define GOLEMS 1 /* Golems, by KAA */ X! #define TOLKIEN 1 /* More varieties of objects and monsters */ X! #define KICK 1 /* Allow kicking things besides doors -Izchak Miller */ X! #define TUTTI_FRUTTI 1 /* Fruits as in Rogue, but which work... -KAA */ X X #ifdef REDO X! #define DOAGAIN '\001' /* The "redo" key used in tty.c and cmd.c */ X #endif X X! #define EXP_ON_BOTL /* Show experience on bottom line */ X /* #define SCORE_ON_BOTL /* added by Gary Erickson (erickson@ucivax) */ X X X*** include/Old/decl.h Sun Oct 15 19:26:17 1989 X--- include/decl.h Sun Oct 15 17:23:37 1989 X*************** X*** 121,157 **** X #endif X X #ifdef TEXTCOLOR X! X! #define BLACK 0 X! #define RED 1 X! #define GREEN 2 X! #define BROWN 3 /* on IBM, lo-intensity yellow is brown */ 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 /* red slaps! */ X! # define HI_OBJ MAGENTA X! # define HI_METAL CYAN X! # define HI_COPPER YELLOW X! # define HI_SILVER GRAY X! # define HI_GOLD YELLOW X! # define HI_LEATHER BROWN X! # define HI_CLOTH BROWN X! # define HI_ORGANIC GREEN X! # define HI_WOOD BROWN X! # define HI_PAPER BROWN X! # define HI_GLASS CYAN + BRIGHT X! # define HI_MINERAL GRAY X! # define HI_ZAP BLUE + BRIGHT /* blue zaps! */ X! X E char *hilites[MAXCOLORS]; X #endif X X--- 121,129 ---- X #endif X X #ifdef TEXTCOLOR X! #ifndef COLOR_H X! #include "color.h" X! #endif X E char *hilites[MAXCOLORS]; X #endif X X*** include/Old/extern.h Sun Oct 15 19:27:24 1989 X--- include/extern.h Sun Oct 15 12:47:49 1989 X*************** X*** 27,32 **** X--- 27,33 ---- X #endif X X #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C) X+ X /* ### apply.c ### */ X X E int doapply(); X*************** X*** 137,143 **** X E int doddrop(); X E int dodown(); X E int doup(); X! E void goto_level P((int,BOOLEAN_P)); X E int donull(); X E int dowipe(); X E struct obj *splitobj P((struct obj *,int)); X--- 138,144 ---- X E int doddrop(); X E int dodown(); X E int doup(); X! E void goto_level P((int,BOOLEAN_P,BOOLEAN_P)); X E int donull(); X E int dowipe(); X E struct obj *splitobj P((struct obj *,int)); X*************** X*** 156,161 **** X--- 157,163 ---- X E char *mon_nam P((struct monst *)); X E char *Monnam P((struct monst *)); X E char *a_monnam P((struct monst *,char *)); X+ E char *a2_monnam P((struct monst *,char *)); X E char *Amonnam P((struct monst *,char *)); X E char *Xmonnam P((struct monst *)); X E char *defmonnam P((struct monst *)); X*************** X*** 235,247 **** X X E void init_uhunger(); X E int Hear_again(); X E int doeat(); X E void gethungry(); X E void morehungry P((int)); X E void lesshungry P((int)); X E void newuhs P((BOOLEAN_P)); X- E void vomit(); X E struct obj *floorfood P((char *,BOOLEAN_P)); X X /* ### end.c ### */ X X--- 237,250 ---- X X E void init_uhunger(); X E int Hear_again(); X+ E void reset_eat(); X E int doeat(); X E void gethungry(); X E void morehungry P((int)); X E void lesshungry P((int)); X E void newuhs P((BOOLEAN_P)); X E struct obj *floorfood P((char *,BOOLEAN_P)); X+ E void vomit(); X X /* ### end.c ### */ X X*************** X*** 379,387 **** X #ifdef UNIX X E void getioctls(); X E void setioctls(); X! #ifdef SUSPEND X E int dosuspend(); X! #endif /* SUSPEND */ X #endif /* UNIX */ X X /* ### lock.c ### */ X--- 382,390 ---- X #ifdef UNIX X E void getioctls(); X E void setioctls(); X! # ifdef SUSPEND X E int dosuspend(); X! # endif /* SUSPEND */ X #endif /* UNIX */ X X /* ### lock.c ### */ X*************** X*** 394,405 **** X E int doopen(); X E int doclose(); X X /* ### mail.c ### */ X X #ifdef MAIL X! #ifdef UNIX X E void getmailstatus(); X! #endif X E void ckmailstatus(); X E void readmail(); X #endif /* MAIL */ X--- 397,442 ---- X E int doopen(); X E int doclose(); X X+ /* ### mac.c ### */ X+ #ifdef MACOS X+ E int tgetch(); X+ E void gethdate(); X+ E int uptodate(); X+ # ifndef THINKC4 X+ E char *getenv(); X+ E int memcmp(); X+ # else X+ E int kbhit(); X+ # endif X+ E int mcurs(); X+ E int mputc(); X+ E int mputs(); X+ E int mprintf(); X+ E int about(); X+ #endif /* MACOS */ X+ X+ /* ### macfile.c ### */ X+ #ifdef MACOS X+ E short findNamedFile(); X+ E FILE *openFile(); X+ #endif /* MACOS */ X+ X+ /* ### macinit.c ### */ X+ #ifdef MACOS X+ E int initterm(); X+ E int freeterm(); X+ #ifdef SMALLDATA X+ E void init_decl(); X+ E void free_decl(); X+ #endif /* SMALLDATA */ X+ #endif /* MACOS */ X+ X /* ### mail.c ### */ X X #ifdef MAIL X! # ifdef UNIX X E void getmailstatus(); X! # endif X E void ckmailstatus(); X E void readmail(); X #endif /* MAIL */ X*************** X*** 410,415 **** X--- 447,453 ---- X E void enexto P((coord *,XCHAR_P,XCHAR_P,struct permonst *)); X E int goodpos P((int,int, struct permonst *)); X E void rloc P((struct monst *)); X+ E void vloc P((struct monst *)); X E void init_monstr(); X E struct permonst *rndmonst(); X E struct permonst *mkclass P((CHAR_P)); X*************** X*** 494,499 **** X--- 532,538 ---- X E boolean is_flammable P((struct obj *)); X E boolean is_rustprone P((struct obj *)); X E boolean is_corrodeable P((struct obj *)); X+ E boolean OBJ_AT P((int, int)); X #endif X E void place_object P((struct obj *,int,int)); X E void move_object P((struct obj *,int,int)); X*************** X*** 582,587 **** X--- 621,627 ---- X E void set_apparxy P((struct monst *)); X E boolean mdig_tunnel P((struct monst *)); X #ifdef STUPID_CPP X+ E boolean MON_AT P((int, int)); X E void place_monster P((struct monst *, int, int)); X E void place_worm_seg P((struct monst *, int, int)); X E void remove_monster P((int, int)); X*************** X*** 662,667 **** X--- 702,708 ---- X E char *distant_name P((struct obj *, char *(*)(struct obj *))); X E char *xname P((struct obj *)); X E char *doname P((struct obj *)); X+ E char *singular P((struct obj *)); X E void setan P((char *,char *)); X E char *aobjnam P((struct obj *,char *)); X E char *Doname2 P((struct obj *)); X*************** X*** 696,730 **** X E int dohistory(); X E int page_file P((char *,BOOLEAN_P)); X #ifdef UNIX X! #ifdef SHELL X E int dosh(); X! #endif /* SHELL */ X! #if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER) X E int child P((int)); X! #endif X #endif /* UNIX */ X X /* ### pcmain.c ### */ X X! #ifdef MSDOS X E void askname(); X! #ifdef CHDIR X E void chdirx P((char *,BOOLEAN_P)); X! #endif /* CHDIR */ X! #endif /* MSDOS */ X X /* ### pctty.c ### */ X X! #ifdef MSDOS X E void gettty(); X E void settty P((char *)); X E void error V((char *,...)); X! #endif /* MSDOS */ X X /* ### pcunix.c ### */ X X! #ifdef MSDOS X! #ifndef OLD_TOS X E void setrandom(); X E int getyear(); X E char *getdate(); X--- 737,771 ---- X E int dohistory(); X E int page_file P((char *,BOOLEAN_P)); X #ifdef UNIX X! # ifdef SHELL X E int dosh(); X! # endif /* SHELL */ X! # if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER) X E int child P((int)); X! # endif X #endif /* UNIX */ X X /* ### pcmain.c ### */ X X! #if defined(MSDOS) || defined(MACOS) X E void askname(); X! # ifdef CHDIR X E void chdirx P((char *,BOOLEAN_P)); X! # endif /* CHDIR */ X! #endif /* MSDOS || MACOS */ X X /* ### pctty.c ### */ X X! #if defined(MSDOS) || defined(MACOS) X E void gettty(); X E void settty P((char *)); X E void error V((char *,...)); X! #endif /* MSDOS || MACOS */ X X /* ### pcunix.c ### */ X X! #if defined(MSDOS) || defined(MACOS) X! # ifndef OLD_TOS X E void setrandom(); X E int getyear(); X E char *getdate(); X*************** X*** 733,739 **** X E int midnight(); X E void gethdate P((char *)); X E int uptodate P((int)); X! #endif /* TOS */ X E void regularize P((char *)); X #endif /* MSDOS */ X X--- 774,780 ---- X E int midnight(); X E void gethdate P((char *)); X E int uptodate P((int)); X! # endif /* TOS */ X E void regularize P((char *)); X #endif /* MSDOS */ X X*************** X*** 740,745 **** X--- 781,787 ---- X /* ### pickup.c ### */ X X E void pickup P((int)); X+ E struct obj *pick_obj P((struct obj *)); X E int doloot(); X E void get_all_from_box(); X E void use_container P((struct obj *, int)); X*************** X*** 765,773 **** X E char *body_part P((int)); X E int poly_gender(); X #ifdef POLYSELF X! #ifdef GOLEMS X E void ugolemeffects P((int, int)); X! #endif /* GOLEMS */ X #endif X X /* ### potion.c ### */ X--- 807,815 ---- X E char *body_part P((int)); X E int poly_gender(); X #ifdef POLYSELF X! # ifdef GOLEMS X E void ugolemeffects P((int, int)); X! # endif /* GOLEMS */ X #endif X X /* ### potion.c ### */ X*************** X*** 776,781 **** X--- 818,824 ---- X E void make_stunned P((long,BOOLEAN_P)); X E void make_blinded P((long,BOOLEAN_P)); X E void make_sick P((long,BOOLEAN_P)); X+ E void make_vomiting P((long,BOOLEAN_P)); X E void make_hallucinated P((long,BOOLEAN_P)); X E int dodrink(); X E int dopotion P((struct obj *)); X*************** X*** 957,962 **** X--- 1000,1006 ---- X E void replshk P((struct monst *,struct monst *)); X E int inshop(); X E int inhishop P((struct monst *)); X+ E boolean tended_shop P((int)); X E void obfree P((struct obj *,struct obj *)); X E int dopay(); X E void home_shk P((struct monst *)); X*************** X*** 1069,1077 **** X E void cmore P((char *)); X E void clrlin(); X #ifdef NEED_VARARGS X! #if defined(USE_STDARG) || defined(USE_VARARGS) X E void vpline P((const char *, va_list)); X! #endif X #endif X E void pline V((const char *,...)); X E void Norep V((const char *,...)); X--- 1113,1121 ---- X E void cmore P((char *)); X E void clrlin(); X #ifdef NEED_VARARGS X! # if defined(USE_STDARG) || defined(USE_VARARGS) X E void vpline P((const char *, va_list)); X! # endif X #endif X E void pline V((const char *,...)); X E void Norep V((const char *,...)); X*************** X*** 1190,1198 **** X /* ### vmsmain.c ### */ X X #ifdef VMS X! #ifdef CHDIR X E void chdirx P((char *,char)); X! #endif /* CHDIR */ X E void glo P((int)); X E void askname(); X #endif /* VMS */ X--- 1234,1242 ---- X /* ### vmsmain.c ### */ X X #ifdef VMS X! # ifdef CHDIR X E void chdirx P((char *,char)); X! # endif /* CHDIR */ X E void glo P((int)); X E void askname(); X #endif /* VMS */ X*** include/Old/global.h Sun Oct 15 19:28:53 1989 X--- include/global.h Sat Oct 14 19:19:35 1989 X*************** X*** 55,62 **** 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*************** X*** 72,78 **** 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(AMIGA) || defined(TOS)) X # define CHAR_P char X # define SCHAR_P schar X # define UCHAR_P uchar 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*************** X*** 138,143 **** X--- 140,148 ---- X # include "amiconf.h" X #endif X X+ #if defined(MACOS) && !defined(MACCONF_H) X+ # include "macconf.h" X+ #endif X X X /* X*** include/Old/lev.h Sun Oct 15 19:29:30 1989 X--- include/lev.h Sat Oct 14 16:09:34 1989 X*************** X*** 8,14 **** X--- 8,18 ---- X #define LEV_H X X #ifndef OLD_TOS X+ # ifdef MACOS X+ #define OMASK 0x8000 /* O_BINARY */ X+ # else X #define OMASK 0 X+ # endif X #else X #define msmsg cprintf X #define OMASK 0x8000 X*** /dev/null Sun Oct 15 19:29:49 1989 X--- include/macconf.h Sat Oct 14 11:45:16 1989 X*************** X*** 0 **** X--- 1,198 ---- X+ /* SCCS Id: @(#)macconf.h 3.0 88/07/21 */ X+ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X+ /* Copyright (c) Johnny Lee, 1989 */ X+ /* NetHack may be freely redistributed. See license for details. */ X+ #ifdef MACOS X+ #ifndef MACCONF_H X+ #define MACCONF_H X+ X+ /* 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+ 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+ * The remaining code shouldn't need modification. X+ */ X+ X+ #ifndef SYSTEM_H X+ #include "system.h" X+ #endif X+ X+ X+ #ifdef RANDOM X+ /* Use the high quality random number routines. */ X+ #define Rand() random() X+ #define Srand(seed) srandom(seed) X+ #else X+ #define Rand() rand() X+ #define Srand(seed) srand(seed) X+ #endif /* RANDOM */ X+ X+ #ifndef REDO X+ #undef Getchar X+ #define Getchar tgetch X+ #endif X+ X+ #ifdef THINK_C X+ X+ #define index strchr X+ #define rindex strrchr X+ #include <time.h> X+ #define FCMASK O_WRONLY | O_BINARY | O_CREAT /* file creation mask */ X+ X+ #ifdef LSC X+ #include <types.h> X+ #include <io.h> X+ #define memcpy(x,y,j) movmem(y,x,j) X+ extern char *calloc(); X+ #else X+ #include <Fcntl.h> X+ #include <Stddef.h> X+ #include <Stdlib.h> X+ #include <String.h> X+ #undef getuid X+ #ifndef MAKEDEFS_C X+ #ifdef stdout X+ #undef stdout X+ #define stdout (FILE *)NULL X+ #endif X+ #endif X+ #endif X+ X+ #include <Quickdraw.h> X+ #include <FontMgr.h> X+ #include <EventMgr.h> X+ #include <WindowMgr.h> X+ #include <MenuMgr.h> X+ #include <StdFilePkg.h> X+ #include <SegmentLdr.h> X+ #include <ToolboxUtil.h> X+ #include <OSUtil.h> X+ #include <DialogMgr.h> X+ #include <FileMgr.h> X+ #include <HFS.h> X+ #include <Color.h> X+ #include <ResourceMgr.h> X+ X+ #ifdef fflush X+ #undef fflush X+ #define fflush(x) X+ #endif X+ X+ /* these two defines for variables in decl.c; they conflict with */ X+ /* variables in Quickdraw.h - the Quickdraw variables are never used in NH */ X+ #define black Black X+ #define white White X+ X+ X+ #else /* Aztec and MPW */ X+ X+ #ifdef AZTEC X+ #include <utime.h> /* AZTEC 3.6c */ X+ #define curs(x,y) tcurs(x,y) X+ #else X+ #include <Time.h> /* MPW 3.0 */ X+ #endif X+ X+ X+ #include <Quickdraw.h> X+ #include <Fonts.h> X+ #include <Events.h> X+ #include <Windows.h> X+ #include <Menus.h> X+ #include <Packages.h> X+ #include <SegLoad.h> X+ #include <ToolUtils.h> X+ #include <OSUtils.h> X+ #include <Dialogs.h> X+ #include <Files.h> X+ #include <Resources.h> X+ #ifdef MPW X+ #include <Script.h> X+ #include <SysEqu.h> X+ #endif X+ #include <Signal.h> X+ #include <String.h> X+ #include <FCntl.h> X+ #define FCMASK O_WRONLY | O_CREAT /* file creation mask */ X+ #endif X+ X+ /* typdef and defines for special custom termcap routines */ X+ typedef struct term_info { X+ short tcur_x,tcur_y; X+ short fontNum,fontSize; X+ short ascent,descent,height,charWidth; X+ short maxRow,maxCol; X+ char **screen; X+ short inColor; X+ short auxFileVRefNum; X+ short recordVRefNum; 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+ #define editMenu 103 X+ #define inventMenu 104 X+ #define actionMenu 105 X+ #define prepMenu 106 X+ #define moveMenu 107 X+ #define extendMenu 108 X+ X+ #ifdef THINK_C X+ #define MAINGRAFPORT thePort X+ #define ARROW_CURSOR arrow X+ #define SCREEN_BITS screenBits X+ #else X+ #define MAINGRAFPORT qd.thePort X+ #define ARROW_CURSOR qd.arrow X+ #define SCREEN_BITS qd.screenBits X+ #endif X+ X+ /* used in mac.c */ X+ #define Screen_Border 4 X+ #define TOP_OFFSET 30 X+ #define LEFT_OFFSET 10 X+ X+ /* for macflags variable */ X+ #define fZoomOnContextSwitch 0x200 X+ #define fUseCustomFont 0x100 X+ #define fToggleNumPad 0x80 X+ #define fInvertedScreen 0x40 X+ #define fExtCmdSeq1 0x20 X+ #define fExtCmdSeq2 0x10 X+ #define fExtCmdSeq3 0x08 X+ #define fDoNonKeyEvt 0x02 X+ #define fDoUpdate 0x01 X+ X+ X+ #define CREATOR 'nh30' X+ #define EXPLORE_TYPE 'XPLR' X+ #define SAVE_TYPE 'SAVE' X+ #define BONES_TYPE 'BONE' X+ #define LEVEL_TYPE 'LEVL' X+ #define HACK_DATA 'HDTA' X+ #define MONST_DATA 101 X+ #define DEFAULT_DATA 100 X+ X+ #include "extern.h" X+ X+ #endif /* MACCONF_H /* */ X+ #endif /* MACOS / */ X*** include/Old/monsym.h Sun Oct 15 19:31:02 1989 X--- include/monsym.h Sat Oct 14 23:23:25 1989 X*************** X*** 14,20 **** X #define S_GREMLIN 'g' X #define S_HUMANOID 'h' X #define S_IMP 'i' X! #define S_J 'j' X #define S_KOBOLD 'k' X #define S_LICH 'l' X #define S_MIMIC 'm' X--- 14,20 ---- X #define S_GREMLIN 'g' X #define S_HUMANOID 'h' X #define S_IMP 'i' X! #define S_JELLY 'j' X #define S_KOBOLD 'k' X #define S_LICH 'l' X #define S_MIMIC 'm' X*************** X*** 21,27 **** X #define S_NAGA 'n' X #define S_ORC 'o' X #define S_PIERCER 'p' X! #define S_QUADRUPED 'q' X #define S_RODENT 'r' X #define S_SPIDER 's' X #define S_TRAPPER 't' X--- 21,27 ---- X #define S_NAGA 'n' X #define S_ORC 'o' X #define S_PIERCER 'p' X! #define S_QUADRUPED 'q' X #define S_RODENT 'r' X #define S_SPIDER 's' X #define S_TRAPPER 't' X*************** X*** 40,46 **** X #define S_GNOME 'G' X #define S_GIANT 'H' X #define S_STALKER 'I' X! #define S_JELLY 'J' X #define S_KOP 'K' X #define S_LEPRECHAUN 'L' X #define S_MUMMY 'M' X--- 40,46 ---- X #define S_GNOME 'G' X #define S_GIANT 'H' X #define S_STALKER 'I' X! #define S_JABBERWOCK 'J' X #define S_KOP 'K' X #define S_LEPRECHAUN 'L' X #define S_MUMMY 'M' X*** include/Old/obj.h Sun Oct 15 19:31:32 1989 X--- include/obj.h Thu Oct 5 21:20:45 1989 X*************** X*** 31,36 **** X--- 31,37 ---- X Bitfield(oinvis,1); /* not yet implemented */ X Bitfield(olocked,1); /* object is locked */ X #define recharged olocked /* recharged once */ X+ #define oeaten olocked /* partially eaten food */ X Bitfield(otrapped,1); /* container is trapped */ X #define opoisoned otrapped /* weapon has been coated with poison */ X Bitfield(odispl,1); X*************** X*** 42,52 **** X Bitfield(unpaid,1); /* on some bill */ X Bitfield(rustfree,1); X #define flameproof rustfree/* for non-metal armor items */ X Bitfield(no_charge,1); /* if shk shouldn't charge for this */ X Bitfield(onamelth,6); X long age; /* creation date */ X long owornmask; X- #define oeaten rustfree X X /* note that TIMEOUT in you.h is defined as 07777L; no bits for items that X * confer properties may overlap that mask, or timeout.c will happily X--- 43,53 ---- X Bitfield(unpaid,1); /* on some bill */ X Bitfield(rustfree,1); X #define flameproof rustfree/* for non-metal armor items */ X+ #define in_use rustfree/* for magic items before useup items */ X Bitfield(no_charge,1); /* if shk shouldn't charge for this */ X Bitfield(onamelth,6); X long age; /* creation date */ X long owornmask; X X /* note that TIMEOUT in you.h is defined as 07777L; no bits for items that X * confer properties may overlap that mask, or timeout.c will happily X*************** X*** 80,86 **** X #define newobj(xl) (struct obj *) alloc((unsigned)(xl) + sizeof(struct obj)) X #define ONAME(otmp) ((char *) otmp->oextra) X #define OGOLD(otmp) (otmp->oextra[0]) X- #define OEATEN(otmp) (otmp->oeaten) X X # ifndef STUPID_CPP /* otherwise these macros are functions */ X X--- 81,86 ---- X*** include/Old/patchlevel.h Sun Oct 15 19:31:56 1989 X--- include/patchlevel.h Sun Oct 15 19:17:26 1989 X*************** X*** 43,46 **** X * assorted bug fixes X */ X X! #define PATCHLEVEL 4 X--- 43,55 ---- X * assorted bug fixes X */ X X! /* X! * Patch 5, October 15, 1989 X! * add support for Macintosh OS (courtesy Johnny Lee) X! * fix annoying dependency loop via new color.h file X! * allow interruption while eating -- general handling of partially eaten food X! * smarter treatment of iron balls X! * a handful of other bug fixes X! */ X! X! #define PATCHLEVEL 5 X*** include/Old/pcconf.h Sun Oct 15 19:32:10 1989 X--- include/pcconf.h Sat Oct 14 19:19:35 1989 X*************** X*** 16,22 **** X X #define DGK /* MS DOS specific enhancements by dgk */ X X! #define TERMLIB /* enable use of termcap file /etc/termcap */ X /* or ./termcap for MSDOS (SAC) */ X /* compile and link in Fred Fish's termcap library, */ X /* enclosed in TERMCAP.ARC, to use this */ X--- 16,22 ---- X X #define DGK /* MS DOS specific enhancements by dgk */ X X! /* #define TERMLIB /* enable use of termcap file /etc/termcap */ X /* or ./termcap for MSDOS (SAC) */ X /* compile and link in Fred Fish's termcap library, */ X /* enclosed in TERMCAP.ARC, to use this */ X*** include/Old/permonst.h Sun Oct 15 19:32:21 1989 X--- include/permonst.h Sat Oct 14 16:10:57 1989 X*************** X*** 32,38 **** X--- 32,42 ---- X X struct permonst { X 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 ac, /* (base) armor class */ X*************** X*** 51,57 **** X # endif X }; X X! extern struct permonst mons[]; /* the master list of monster types */ X extern struct permonst playermon, *uasmon; /* you in the same terms */ X X #endif /* PERMONST_H /**/ X--- 55,95 ---- X # endif X }; X X! extern struct permonst X! #if defined(SMALLDATA) && !defined(MAKEDEFS_C) X! *mons; X! #else X! mons[]; /* the master list of monster types */ X! #endif X extern struct permonst playermon, *uasmon; /* you in the same terms */ X+ X+ #if defined(SMALLDATA) && defined(MAKEDEFS_C) X+ X+ typedef struct pmpart { X+ char mlet; /* full name and sym */ X+ schar mlevel, /* base monster level */ X+ mmove, /* move speed */ X+ ac, /* (base) armor class */ X+ mr, /* (base) magic resistance */ X+ maligntyp; /* basic monster alignment */ X+ unsigned geno; /* creation/geno mask value */ X+ struct attack mattk[NATTK]; /* attacks matrix */ X+ unsigned cwt, /* weight of corpse */ X+ cnutrit; /* its nutritional value */ X+ short pxlth; /* length of extension */ X+ uchar msound; /* noise it makes */ X+ long mflags1, /* boolean bitflags */ X+ mflags2; /* more boolean bitflags */ X+ # ifdef TEXTCOLOR X+ uchar mcolor; /* color to use */ X+ # endif X+ } pmpart; X+ X+ typedef struct pmstr { X+ char mname[24]; /* full name and sym */ X+ pmpart pmp; X+ } pmstr; X+ X+ #endif X X #endif /* PERMONST_H /**/ X*** include/Old/prop.h Sun Oct 15 19:32:33 1989 X--- include/prop.h Tue Oct 3 20:02:02 1989 X*************** X*** 48,53 **** X #define ANTIMAGIC 41 X #define DISPLACED 42 X #define CLAIRVOYANT 43 X! #define LAST_PROP (CLAIRVOYANT) /* the last property */ X X #endif /* PROP_H /**/ X--- 48,54 ---- X #define ANTIMAGIC 41 X #define DISPLACED 42 X #define CLAIRVOYANT 43 X! #define VOMITING 44 X! #define LAST_PROP (VOMITING) /* the last property */ X X #endif /* PROP_H /**/ X*** include/Old/rm.h Sun Oct 15 19:32:45 1989 X--- include/rm.h Sat Oct 14 16:12:54 1989 X*************** X*** 214,245 **** X #define ladder doormask X #define drawbridgemask doormask X X typedef struct X { X struct rm locations[COLNO][ROWNO]; X struct obj *objects[COLNO][ROWNO]; X struct monst *monsters[COLNO][ROWNO]; X struct obj *objlist; X struct monst *monlist; X } X! level_t; X X! extern level_t level; /* structure describing the current level */ X X /* X * Macros for compatibility with old code. Someday these will go away. X */ X- #define OBJ_AT(x, y) (level.objects[x][y] != (struct obj *)0) X- #define MON_AT(x, y) (level.monsters[x][y] != (struct monst *)0) X #define levl level.locations X #define fobj level.objlist X #define fmon level.monlist X X! #ifndef STUPID_CPP /* otherwise these macros are functions in monmove.c */ X /* X * Macros for encapsulation of level.monsters references. X */ X! #define place_monster(m, x, y) level.monsters[m->mx=x][m->my=y] = m X #define place_worm_seg(m, x, y) level.monsters[x][y] = m X #define remove_monster(x, y) level.monsters[x][y] = (struct monst *)0 X #define m_at(x, y) level.monsters[x][y] X--- 214,264 ---- X #define ladder doormask X #define drawbridgemask doormask X X+ #ifdef MACOS X typedef struct X { X+ struct rm **locations; X+ struct obj ***objects; X+ struct monst ***monsters; X+ struct obj *objlist; X+ struct monst *monlist; X+ } X+ dlevel_t; X+ #else X+ typedef struct X+ { X struct rm locations[COLNO][ROWNO]; X+ #ifndef MICROPORT_BUG X struct obj *objects[COLNO][ROWNO]; X struct monst *monsters[COLNO][ROWNO]; X+ #else X+ struct obj *objects[1][ROWNO]; X+ char *yuk1[COLNO-1][ROWNO]; X+ struct monst *monsters[1][ROWNO]; X+ char *yuk2[COLNO-1][ROWNO]; X+ #endif X struct obj *objlist; X struct monst *monlist; X } X! dlevel_t; X! #endif X X! extern dlevel_t level; /* structure describing the current level */ X X /* X * Macros for compatibility with old code. Someday these will go away. X */ X #define levl level.locations X #define fobj level.objlist X #define fmon level.monlist X X! #ifndef STUPID_CPP /* otherwise these macros are functions */ X! #define OBJ_AT(x, y) (level.objects[x][y] != (struct obj *)0) X /* X * Macros for encapsulation of level.monsters references. X */ X! #define MON_AT(x, y) (level.monsters[x][y] != (struct monst *)0) X! #define place_monster(m, x, y) m->mx=x,m->my=y,level.monsters[m->mx][m->my]=m X #define place_worm_seg(m, x, y) level.monsters[x][y] = m X #define remove_monster(x, y) level.monsters[x][y] = (struct monst *)0 X #define m_at(x, y) level.monsters[x][y] X*** include/Old/system.h Sun Oct 15 19:33:19 1989 X--- include/system.h Sat Oct 14 16:16:48 1989 X*************** X*** 7,18 **** X X #define E extern X X! #ifdef AMIGA X #define _SIZE_T X typedef unsigned int size_t; X! #else X # include <sys/types.h> X #endif X X #ifdef ULTRIX X /* The Ultrix v3.0 <sys/types.h> seems to be very wrong. */ X--- 7,23 ---- X X #define E extern X X! #ifndef THINKC4 X! # if defined(AMIGA) || defined(MACOS) X #define _SIZE_T X typedef unsigned int size_t; X! # else X # include <sys/types.h> X+ # endif X #endif X+ #if defined(AZTEC) || defined(THINKC4) X+ typedef long off_t; X+ #endif X X #ifdef ULTRIX X /* The Ultrix v3.0 <sys/types.h> seems to be very wrong. */ X*************** X*** 20,26 **** X #define time_t long X #endif X X! #if defined(TOS) && defined(__GNUC__) X #define _SIZE_T X #endif X X--- 25,31 ---- X #define time_t long X #endif X X! #if defined(TOS) && defined(__GNUC__) && !defined(_SIZE_T) X #define _SIZE_T X #endif X X*************** X*** 67,76 **** X E void exit P((int)); X # endif /* MSDOS */ X E void free P((genericptr_t)); X E void perror P((const char *)); X #endif X X! #if defined(BSD) || defined(ULTRIX) X E int qsort(); X #else X E void qsort P((genericptr_t,size_t,size_t,int(*)(genericptr_t,genericptr_t))); X--- 72,83 ---- X E void exit P((int)); X # endif /* MSDOS */ X E void free P((genericptr_t)); X+ # ifndef MACOS X E void perror P((const char *)); X+ # endif X #endif X X! #if defined(BSD) || defined(ULTRIX) || (defined(MACOS) && !defined(THINKC4)) X E int qsort(); X #else X E void qsort P((genericptr_t,size_t,size_t,int(*)(genericptr_t,genericptr_t))); X*************** X*** 83,88 **** X--- 90,97 ---- X #else X E long lseek P((int,long,int)); X E int write P((int,genericptr_t,unsigned)); X+ #endif /* ULTRIX */ X+ X #ifdef MSDOS X E int close P((int)); X E int read P((int,genericptr_t,unsigned int)); X*************** X*** 90,99 **** X E int dup2 P((int, int)); X E int setmode P((int,int)); X E int kbhit P((void)); X- #endif X- #endif /* ULTRIX */ X- X- #ifdef MSDOS X E int chdir P((char *)); X E char *getcwd P((char *,int)); X #endif X--- 99,104 ---- X*************** X*** 142,148 **** X E char *strcat P((char *,const char *)); X E char *strncat P((char *,const char *,size_t)); X X! #if defined(SYSV) || defined(MSDOS) X E char *strchr P((const char *,int)); X E char *strrchr P((const char *,int)); X #else /* BSD */ X--- 147,153 ---- X E char *strcat P((char *,const char *)); X E char *strncat P((char *,const char *,size_t)); X X! #if defined(SYSV) || defined(MSDOS) || defined(THINK_C) X E char *strchr P((const char *,int)); X E char *strrchr P((const char *,int)); X #else /* BSD */ X*************** X*** 153,159 **** X X E int strcmp P((const char *,const char *)); X E int strncmp P((const char *,const char *,size_t)); X! #ifdef MSDOS X E size_t strlen P((const char *)); X #else X E int strlen(); X--- 158,164 ---- X X E int strcmp P((const char *,const char *)); X E int strncmp P((const char *,const char *,size_t)); X! #if defined(MSDOS) || defined(THINKC4) X E size_t strlen P((const char *)); X #else X E int strlen(); X*************** X*** 188,194 **** X #define Sprintf (void) sprintf X #define Strcat (void) strcat X #define Strcpy (void) strcpy X! #define Printf (void) printf X X #ifdef NEED_VARARGS X #define Vprintf (void) vprintf X--- 193,212 ---- X #define Sprintf (void) sprintf X #define Strcat (void) strcat X #define Strcpy (void) strcpy X! X! #if defined(MACOS) && !defined(MAKEDEFS_C) X! #undef printf X! #undef puts X! #undef putchar X! #undef putc X! #define printf (void) mprintf X! #define puts mputs X! #define putchar mputc X! #define putc mputc X! #define Printf (void) mprintf X! #else X! #define Printf (void) printf X! #endif X X #ifdef NEED_VARARGS X #define Vprintf (void) vprintf X*************** X*** 206,218 **** X X /* time functions */ X X E struct tm *localtime P((const time_t *)); X X! #if (defined(ULTRIX) || defined(SYSV) || defined(MSDOS)) && !defined(AMIGA) X E time_t time P((time_t *)); X! #else X E long time P((time_t *)); X! #endif /* ULTRIX */ X X #ifdef MSDOS X E int abs P((int)); X--- 224,238 ---- X X /* time functions */ X X+ #ifndef MACOS X E struct tm *localtime P((const time_t *)); X X! # if defined(ULTRIX) || defined(SYSV) || (defined(MSDOS) && !defined(AMIGA)) X E time_t time P((time_t *)); X! # else X E long time P((time_t *)); X! # endif /* ULTRIX */ X! #endif X X #ifdef MSDOS X E int abs P((int)); X*** include/Old/tosconf.h Sun Oct 15 19:33:34 1989 X--- include/tosconf.h Sat Oct 14 19:19:35 1989 X*************** X*** 38,43 **** X--- 38,44 ---- X #define RANDOM X #define SHELL X #define TEXTCOLOR X+ #define TERMLIB X X #ifndef MSDOS_H X #include "msdos.h" X*************** X*** 45,50 **** X--- 46,53 ---- X #ifndef PCCONF_H X #include "pcconf.h" /* remainder of stuff is same as the PC */ X #endif X+ #ifdef TERMLIB X #undef ANSI_DEFAULT X+ #endif X #endif /* TOSCONF_H /* */ X #endif /* TOS /* */ X*** include/Old/tradstdc.h Sun Oct 15 19:33:46 1989 X--- include/tradstdc.h Wed Oct 11 19:06:46 1989 X*************** X*** 54,60 **** X va_list the_args; typ1 var1; typ2 var2; X # define VA_ARGS the_args X # define VA_START(x) va_start(the_args) X! # define VA_INIT(var1,typ1) va_arg(var1, typ1) X # define VA_NEXT(var1,typ1) var1 = va_arg(the_args,typ1) X # define VA_END() va_end(the_args) X # else X--- 54,60 ---- X va_list the_args; typ1 var1; typ2 var2; X # define VA_ARGS the_args X # define VA_START(x) va_start(the_args) X! # define VA_INIT(var1,typ1) var1 = va_arg(the_args, typ1) X # define VA_NEXT(var1,typ1) var1 = va_arg(the_args,typ1) X # define VA_END() va_end(the_args) X # else X*** include/Old/unixconf.h Sun Oct 15 19:34:17 1989 X--- include/unixconf.h Sat Oct 14 19:19:34 1989 X*************** X*** 36,47 **** X X /* #define PYRAMID_BUG /* avoid a bug on the Pyramid */ X /* #define APOLLO /* same for the Apollo */ X! /* #define RANDOM /* if neither random/srandom nor lrand48/srand48 X! is available from your system */ 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 By Jay Maynard */ X X /* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ X X X--- 36,48 ---- X X /* #define PYRAMID_BUG /* avoid a bug on the Pyramid */ X /* #define APOLLO /* same for the Apollo */ 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 By Jay Maynard */ X X+ /* #define RANDOM /* if neither random/srandom nor lrand48/srand48 X+ is available from your system */ X /* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ X X X*** include/Old/youprop.h Sun Oct 15 19:35:11 1989 X--- include/youprop.h Sun Oct 15 17:23:36 1989 X*************** X*** 163,167 **** X--- 163,168 ---- X #define Antimagic u.uprops[ANTIMAGIC].p_flgs X #define Displaced u.uprops[DISPLACED].p_flgs X #define Clairvoyant u.uprops[CLAIRVOYANT].p_flgs X+ #define Vomiting u.uprops[VOMITING].p_flgs X X #endif /* YOUPROP_H /**/ X*** others/Old/Makefile.tcc Sun Oct 15 18:14:11 1989 X--- others/Makefile.tcc Fri Sep 29 11:54:15 1989 X*************** X*** 153,158 **** X--- 153,159 ---- X @$(TLINK) $(TLFLAGS) $(C0) $(SPLEVOBJS),$@,,$(LIBS); X X o\lev_comp.obj: $(HACK_H) $(INCL)\sp_lev.h X+ $(CC) $(CFLAGS) -A- $*.c X o\lev_lex.obj: $(INCL)\lev_comp.h $(HACK_H) $(INCL)\sp_lev.h X o\lev_main.obj: $(HACK_H) $(INCL)\sp_lev.h X X*************** X*** 227,233 **** X del date.h X del onames.h X del pm.h X! touch date.h onames.h pm.h X cd $(AUX) X del data X del rumors X--- 228,234 ---- X del date.h X del onames.h X del pm.h X! touch onames.h pm.h X cd $(AUX) X del data X del rumors X*** others/Old/pcmain.c Sun Oct 15 18:15:37 1989 X--- others/pcmain.c Sun Oct 15 12:47:03 1989 X*************** X*** 8,15 **** X--- 8,23 ---- X #ifndef NO_SIGNAL X #include <signal.h> X #endif X+ #ifdef MACOS X+ extern WindowPtr HackWindow; X+ extern short *switches; X+ extern short macflags; X+ #define msmsg mprintf X+ #endif X X+ #ifndef MACOS X char orgdir[PATHLEN]; X+ #endif X char SAVEF[FILENAME]; X X char *hname = "NetHack"; /* used for syntax messages */ X*************** X*** 38,44 **** X--- 46,60 ---- X #ifdef OLD_TOS X #define OMASK 0x8000 X #else X+ # ifdef MACOS X+ # ifdef AZTEC X+ #define OMASK O_RDONLY X+ # else X+ #define OMASK (O_RDONLY | O_BINARY ) X+ # endif X+ # else X #define OMASK 0 X+ # endif X #endif X X int X*************** X*** 56,71 **** X extern int _unixmode; X _unixmode = 0; X #endif X! X! # ifdef __TURBOC__ X if (_osmajor >= 3) hname = argv[0]; /* DOS 3.0+ */ X! # endif X! # ifdef TOS X if (*argv[0]) { /* only a CLI can give us argv[0] */ X hname = argv[0]; X run_from_desktop = FALSE; X } X! # endif X X /* X * Initialize screen I/O before anything is displayed. X--- 72,123 ---- X extern int _unixmode; X _unixmode = 0; X #endif X! #ifdef __TURBOC__ X if (_osmajor >= 3) hname = argv[0]; /* DOS 3.0+ */ X! #endif X! #ifdef TOS X if (*argv[0]) { /* only a CLI can give us argv[0] */ X hname = argv[0]; X run_from_desktop = FALSE; X } X! #endif X! #ifdef MACOS X! AppFile theFile; X! short message,numFiles; X! SFReply reply; X! X! initterm(24,80); X! ObscureCursor(); X! # ifdef SMALLDATA X! init_decl(); X! # endif X! /* user might have started up with a save file, so check */ X! CountAppFiles(&message,&numFiles); X! if (!message && numFiles) { X! message = 1; X! X! while(message <= numFiles) { X! GetAppFiles(message,&theFile); X! ClrAppFiles(message); X! if (theFile.fType == SAVE_TYPE) X! break; X! } X! if (theFile.fType == SAVE_TYPE) { X! (void)strncpy(SAVEF, (char *)&theFile.fName[1], X! (int)theFile.fName[0]); X! (void)strncpy(plname, (char *)&theFile.fName[1], X! (int)theFile.fName[0]); X! SetVol(0,theFile.vRefNum); X! SAVEF[(int)theFile.fName[0]] = '\0'; X! numFiles = 1; X! } else X! numFiles = 0; X! } X! switches = (short *)malloc((NROFOBJECTS+2) * sizeof(long)); X! for (fd = 0; fd < (NROFOBJECTS + 2); fd++) X! switches[fd] = fd; X! #endif X! X X /* X * Initialize screen I/O before anything is displayed. X*************** X*** 75,86 **** X * and before error(), due to use of termcap strings. X */ X gettty(); X! #ifndef AMIGA X setbuf(stdout,obuf); X #endif X startup(); X! X! #ifndef AMIGA X /* Save current directory and make sure it gets restored when X * the game is exited. X */ X--- 127,137 ---- X * and before error(), due to use of termcap strings. X */ X gettty(); X! #if !defined(AMIGA) && !defined(MACOS) X setbuf(stdout,obuf); X #endif X startup(); X! #if !defined(AMIGA) && !defined(MACOS) X /* Save current directory and make sure it gets restored when X * the game is exited. X */ X*************** X*** 92,117 **** X # ifndef NO_SIGNAL X signal(SIGINT, (SIG_RET_TYPE) funcp); /* restore original directory */ X # endif X! #endif /* AMIGA */ X X if ((dir = getenv("HACKDIR")) != NULL) { X Strcpy(hackdir, dir); X! #ifdef CHDIR X chdirx (dir, 1); X! #endif X } X! #if defined(DGK) && !defined(OLD_TOS) X /* zero "fileinfo" array to prevent crashes on level change */ X for (i = 0 ; i <= MAXLEVEL; i++) { X fileinfo[i] = zfinfo; X } X! #endif /* DGK && !OLD_TOS */ X X initoptions(); X! #ifdef TOS X if (flags.IBMBIOS && flags.use_color) X set_colors(); X! #endif X if (!hackdir[0]) X Strcpy(hackdir, orgdir); X X--- 143,169 ---- X # ifndef NO_SIGNAL X signal(SIGINT, (SIG_RET_TYPE) funcp); /* restore original directory */ X # endif X! #endif /* AMIGA || MACOS */ X X+ #ifndef MACOS X if ((dir = getenv("HACKDIR")) != NULL) { X Strcpy(hackdir, dir); X! # ifdef CHDIR X chdirx (dir, 1); X! # endif X } X! # if defined(DGK) && !defined(OLD_TOS) X /* zero "fileinfo" array to prevent crashes on level change */ X for (i = 0 ; i <= MAXLEVEL; i++) { X fileinfo[i] = zfinfo; X } X! # endif /* DGK && !OLD_TOS */ X X initoptions(); X! # ifdef TOS X if (flags.IBMBIOS && flags.use_color) X set_colors(); X! # endif X if (!hackdir[0]) X Strcpy(hackdir, orgdir); X X*************** X*** 136,148 **** X * may do a prscore(). X */ X if (!strncmp(argv[1], "-s", 2)) { X! #ifdef CHDIR X chdirx(hackdir,0); X! #endif X prscore(argc, argv); X exit(0); X } X } X X /* X * It seems you really want to play. X--- 188,203 ---- X * may do a prscore(). X */ X if (!strncmp(argv[1], "-s", 2)) { X! # ifdef CHDIR X chdirx(hackdir,0); X! # endif X prscore(argc, argv); X exit(0); X } X } X+ #else X+ initoptions(); X+ #endif /* MACOS /* */ X X /* X * It seems you really want to play. X*************** X*** 233,238 **** X--- 288,298 ---- X Strcpy(plname, "wizard"); X else X #endif X+ #if defined(KR1ED) && defined(WIZARD) && defined(MACOS) X+ if (!strcmp(plname,WIZARD)) X+ Strcpy(plname, "wizard"); X+ else X+ #endif X if (!*plname) X askname(); X plnamesuffix(); /* strip suffix from name; calls askname() */ X*************** X*** 258,270 **** X X /* initialize static monster strength array */ X init_monstr(); X! X! #ifdef AMIGA X (void) strncat(SAVEF, plname, 31-4); X #else X (void) strncat(SAVEF, plname, 8); X #endif X Strcat(SAVEF, ".sav"); X cls(); X if ( X #ifdef DGK X--- 318,339 ---- X X /* initialize static monster strength array */ X init_monstr(); X! #ifdef MACOS X! if (!numFiles && findNamedFile(plname,1,&reply)) { X! if (reply.good) { X! strncpy(SAVEF,(char *)&reply.fName[1],(int)reply.fName[0]); X! SAVEF[(int)reply.fName[0]] = '\0'; X! } X! } else if (!numFiles) X! #endif X! #if defined(AMIGA) || defined(MACOS) X (void) strncat(SAVEF, plname, 31-4); X #else X (void) strncat(SAVEF, plname, 8); X #endif X+ #ifndef MACOS X Strcat(SAVEF, ".sav"); X+ #endif X cls(); X if ( X #ifdef DGK X*************** X*** 317,323 **** X pickup(1); X read_engr_at(u.ux,u.uy); X } X! X flags.moonphase = phase_of_the_moon(); X if(flags.moonphase == FULL_MOON) { X You("are lucky! Full moon tonight."); X--- 386,411 ---- X pickup(1); X read_engr_at(u.ux,u.uy); X } X! X! #ifdef MACOS X! { X! short i; X! MenuHandle theMenu; X! X! theMenu = GetMHandle(appleMenu); X! EnableItem(theMenu, 0); X! EnableItem(theMenu, 1); X! theMenu = GetMHandle(fileMenu); X! EnableItem(theMenu,0); X! for (i = inventMenu;i <= extendMenu; i++) { X! theMenu = GetMHandle(i); X! EnableItem(theMenu, 0); X! } X! DrawMenuBar(); X! macflags |= fDoUpdate; X! } X! #endif X! X flags.moonphase = phase_of_the_moon(); X if(flags.moonphase == FULL_MOON) { X You("are lucky! Full moon tonight."); X*************** X*** 335,340 **** X--- 423,432 ---- X #endif X X moveloop(); X+ #ifdef MACOS X+ /* Help for Mac compilers */ X+ free_decl(); X+ #endif X return 0; X } X X*************** X*** 359,364 **** X--- 451,459 ---- X #ifdef MSDOS X msmsg("\b \b"); X #endif X+ #ifdef MACOS X+ putc('\b'); X+ #endif X } X continue; X } X*************** X*** 365,371 **** X if(c != '-') X if(c < 'A' || (c > 'Z' && c < 'a') || c > 'z') c = '_'; X if(ct < sizeof(plname)-1) { X! #ifdef MSDOS X msmsg("%c", c); X #endif X plname[ct++] = c; X--- 460,466 ---- X if(c != '-') X if(c < 'A' || (c > 'Z' && c < 'a') || c > 'z') c = '_'; X if(ct < sizeof(plname)-1) { X! #if defined(MSDOS) || defined(MACOS) X msmsg("%c", c); X #endif X plname[ct++] = c; X*** others/Old/pctty.c Sun Oct 15 18:16:06 1989 X--- others/pctty.c Sun Oct 15 12:52:32 1989 X*************** X*** 18,24 **** X erase_char = '\b'; X kill_char = 21; /* cntl-U */ X flags.cbreak = TRUE; X! #ifndef TOS X disable_ctrlP(); /* turn off ^P processing */ X #endif X } X--- 18,24 ---- X erase_char = '\b'; X kill_char = 21; /* cntl-U */ X flags.cbreak = TRUE; X! #if !defined(TOS) && !defined(MACOS) X disable_ctrlP(); /* turn off ^P processing */ X #endif X } X*************** X*** 29,35 **** X end_screen(); X if(s) Printf(s); X (void) fflush(stdout); X! #ifndef TOS X enable_ctrlP(); /* turn on ^P processing */ X #endif X } X--- 29,35 ---- X end_screen(); X if(s) Printf(s); X (void) fflush(stdout); X! #if !defined(TOS) && !defined(MACOS) X enable_ctrlP(); /* turn on ^P processing */ X #endif X } X*** others/Old/pcunix.c Sun Oct 15 18:16:18 1989 X--- others/pcunix.c Sat Oct 14 22:40:07 1989 X*************** X*** 19,32 **** X #include <errno.h> X #else X #include <error.h> X! #endif /* UNIXDEBUG */ X #endif X X #include <sys/types.h> X #include <sys/stat.h> X X #ifndef OLD_TOS X static struct stat buf, hbuf; X void X setrandom() X { X--- 19,37 ---- X #include <errno.h> X #else X #include <error.h> X! #endif /* OLD_TOS */ X #endif X X+ #ifndef MACOS X #include <sys/types.h> X #include <sys/stat.h> X+ #endif X X #ifndef OLD_TOS X+ # ifndef MACOS X static struct stat buf, hbuf; X+ # endif X+ X void X setrandom() X { X*************** X*** 91,101 **** X return(getlt()->tm_hour == 0); X } X X void X gethdate(name) X char *name; X { X! #if defined(TOS) && !defined(__GNUC__) X /* old version - for people short of space */ X /* X /* register char *np; X--- 96,107 ---- X return(getlt()->tm_hour == 0); X } X X+ # ifndef MACOS X void X gethdate(name) X char *name; X { X! # if defined(TOS) && !defined(__GNUC__) X /* old version - for people short of space */ X /* X /* register char *np; X*************** X*** 135,146 **** X path = np + 1; X } X error("Cannot get status of %s.", (np = rindex(name, '/')) ? np+1 : name); X! #endif /* TOS && __GNUC__ */ X } X X int X uptodate(fd) { X! #if defined(TOS) && !defined(__GNUC__) /* no fstat yet */ X if(fstat(fd, &buf)) { X pline("Cannot get status of saved level? "); X return(0); X--- 141,152 ---- X path = np + 1; X } X error("Cannot get status of %s.", (np = rindex(name, '/')) ? np+1 : name); X! # endif /* TOS && __GNUC__ */ X } X X int X uptodate(fd) { X! # if defined(TOS) && !defined(__GNUC__) /* no fstat yet */ X if(fstat(fd, &buf)) { X pline("Cannot get status of saved level? "); X return(0); X*************** X*** 149,165 **** X pline("Saved level is out of date. "); X return(0); X } X! #endif X return(1); X } X! #endif /* MIN_TOS /* */ X X void X! regularize(s) /* normalize file name - we don't like .'s, /'s, spaces */ X register char *s; X { X register char *lp; X X! while((lp=index(s, '.')) || (lp=index(s, '/')) || (lp=index(s,' '))) X *lp = '_'; X } X--- 155,177 ---- X pline("Saved level is out of date. "); X return(0); X } X! # endif X return(1); X } X! # endif /* MACOS /* */ X! #endif /* OLD_TOS /* */ X X void X! regularize(s) X! /* normalize file name - we don't like .'s, /'s, :'s [Mac], or spaces */ X register char *s; X { X register char *lp; X X! while((lp=index(s, '.')) || (lp=index(s, '/')) || (lp=index(s,' ')) X! #ifdef MACOS X! || (lp=index(s, ':')) X! #endif X! ) X *lp = '_'; X } X END_OF_FILE if test 54981 -ne `wc -c <'patches05c'`; then echo shar: \"'patches05c'\" unpacked with wrong size! fi # end of 'patches05c' fi echo shar: End of archive 3 \(of 6\). cp /dev/null ark3isdone MISSING="" for I in 1 2 3 4 5 6 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 6 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0