Path: uunet!news.tek.com!saab!billr From: billr@saab.CNA.TEK.COM (Bill Randle) Newsgroups: comp.sources.games Subject: v18i049: nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch3p/18 Date: 20 Jul 1993 22:33:38 GMT Organization: Tektronix, Inc, Redmond, OR, USA Lines: 1166 Approved: billr@saab.CNA.TEK.COM Message-ID: <22hrs2$9q9@ying.cna.tek.com> NNTP-Posting-Host: saab.cna.tek.com Xref: uunet comp.sources.games:1849 Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller) Posting-number: Volume 18, Issue 49 Archive-name: nethack31/patch3p Patch-To: nethack31: Volume 16, Issue 1-116 Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11 #! /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 'patches03g' <<'END_OF_FILE' X*** /tmp/da23267 Mon Jul 12 18:13:42 1993 X--- include/artilist.h Fri Jul 2 15:10:46 1993 X*************** X*** 1,4 **** X! /* SCCS Id: @(#)artilist.h 3.1 93/05/25 */ X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X--- 1,4 ---- X! /* SCCS Id: @(#)artilist.h 3.1 93/06/27 */ X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X*************** X*** 58,71 **** X A("Grimtooth", ORCISH_DAGGER, X SPFX_RESTR, 0, 0, X PHYS(2,6), NO_DFNS, NO_CARY, 0, A_CHAOTIC, 0 ), X! X A("Orcrist", ELVEN_BROADSWORD, X SPFX_DFLAG2, 0, M2_ORC, X! PHYS(5,0), NO_DFNS, NO_CARY, 0, A_LAWFUL, 'E' ), X X A("Sting", ELVEN_DAGGER, X (SPFX_WARN|SPFX_DFLAG2), 0, M2_ORC, X! PHYS(5,0), NO_DFNS, NO_CARY, 0, A_LAWFUL, 0 ), X /* X * Magicbane is a bit different! Its magic fanfare X * unbalances victims in addition to doing some damage. X--- 58,73 ---- X A("Grimtooth", ORCISH_DAGGER, X SPFX_RESTR, 0, 0, X PHYS(2,6), NO_DFNS, NO_CARY, 0, A_CHAOTIC, 0 ), X! /* X! * Orcrist and Sting have same alignment as elves. X! */ X A("Orcrist", ELVEN_BROADSWORD, X SPFX_DFLAG2, 0, M2_ORC, X! PHYS(5,0), NO_DFNS, NO_CARY, 0, A_CHAOTIC, 'E' ), X X A("Sting", ELVEN_DAGGER, X (SPFX_WARN|SPFX_DFLAG2), 0, M2_ORC, X! PHYS(5,0), NO_DFNS, NO_CARY, 0, A_CHAOTIC, 0 ), X /* X * Magicbane is a bit different! Its magic fanfare X * unbalances victims in addition to doing some damage. X*************** X*** 108,114 **** X X A("Trollsbane", MORNING_STAR, X (SPFX_RESTR|SPFX_DCLAS), 0, S_TROLL, X! PHYS(5,0), NO_DFNS, NO_CARY, 0, A_LAWFUL, 0 ), X /* X * Two problems: 1) doesn't let trolls regenerate heads, X * 2) doesn't give unusual message for 2-headed monsters (but X--- 110,116 ---- X X A("Trollsbane", MORNING_STAR, X (SPFX_RESTR|SPFX_DCLAS), 0, S_TROLL, X! PHYS(5,0), NO_DFNS, NO_CARY, 0, A_CHAOTIC, 0 ), X /* X * Two problems: 1) doesn't let trolls regenerate heads, X * 2) doesn't give unusual message for 2-headed monsters (but X*** /tmp/da23291 Mon Jul 12 18:13:47 1993 X--- include/config.h Fri Jul 9 15:54:01 1993 X*************** X*** 42,55 **** X # define MAC X # undef UNIX /* Just in case */ X #endif X- /* #define MAC /* We're on some mac-ish platform */ X X! #ifdef MAC X! # ifdef THINK_C X! # define NEED_VARARGS X! # endif X #endif X X /* X * Amiga setup. X */ X--- 42,56 ---- X # define MAC X # undef UNIX /* Just in case */ X #endif X X! #ifdef THINK_C X! # define MAC X! # define NEED_VARARGS X! # undef UNIX /* Just in case */ X #endif X X+ /* #define MAC /* We're on some mac-ish platform */ X+ X /* X * Amiga setup. X */ X*************** X*** 265,271 **** X X /* An example of one alternative you might want to use: */ X /* # define COMPRESS "/usr/local/bin/gzip" /* FSF gzip compression */ X! /* # define COMPRESS_EXTENSION ".z" /* normal gzip extension */ X #endif X #ifndef COMPRESS X # define INTERNAL_COMP /* control use of NetHack's compression routines */ X--- 266,272 ---- X X /* An example of one alternative you might want to use: */ X /* # define COMPRESS "/usr/local/bin/gzip" /* FSF gzip compression */ X! /* # define COMPRESS_EXTENSION ".gz" /* normal gzip extension */ X #endif X #ifndef COMPRESS X # define INTERNAL_COMP /* control use of NetHack's compression routines */ X*** /tmp/da23387 Mon Jul 12 18:14:10 1993 X--- include/extern.h Fri Jul 2 14:10:22 1993 X*************** X*** 1,4 **** X! /* SCCS Id: @(#)extern.h 3.1 93/05/31 */ X /* Copyright (c) Steve Creps, 1988. */ X /* NetHack may be freely redistributed. See license for details. */ X X--- 1,4 ---- X! /* SCCS Id: @(#)extern.h 3.1 93/06/27 */ X /* Copyright (c) Steve Creps, 1988. */ X /* NetHack may be freely redistributed. See license for details. */ X X*************** X*** 41,47 **** X #endif X E int NDECL(doapply); X E int NDECL(holetime); X! E void NDECL(dighole); X E int NDECL(dorub); X E int NDECL(dojump); X #ifdef WALKIES X--- 41,47 ---- X #endif X E int NDECL(doapply); X E int NDECL(holetime); X! E boolean FDECL(dighole, (BOOLEAN_P)); X E int NDECL(dorub); X E int NDECL(dojump); X #ifdef WALKIES X*************** X*** 58,63 **** X--- 58,64 ---- X E boolean FDECL(snuff_lit, (struct obj *)); X E void NDECL(check_lamps); X E void FDECL(use_unicorn_horn, (struct obj *)); X+ E boolean FDECL(tinnable, (struct obj *)); X X /* ### artifact.c ### */ X X*************** X*** 463,469 **** X E void NDECL(sync_hunger); X #endif X E void FDECL(newuhs, (BOOLEAN_P)); X! E struct obj *FDECL(floorfood, (const char *,BOOLEAN_P)); X E void NDECL(vomit); X E int FDECL(eaten_stat, (int,struct obj *)); X E void FDECL(food_disappears, (struct obj *)); X--- 464,470 ---- X E void NDECL(sync_hunger); X #endif X E void FDECL(newuhs, (BOOLEAN_P)); X! E struct obj *FDECL(floorfood, (const char *,int)); X E void NDECL(vomit); X E int FDECL(eaten_stat, (int,struct obj *)); X E void FDECL(food_disappears, (struct obj *)); X*************** X*** 766,771 **** X--- 767,773 ---- X X /* ### makemon.c ### */ X X+ E boolean FDECL(is_home_elemental, (struct permonst *)); X E struct monst *FDECL(makemon, (struct permonst *,int,int)); X E boolean FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *)); X E int FDECL(goodpos, (int,int,struct monst *,struct permonst *)); X*************** X*** 1651,1656 **** X--- 1653,1666 ---- X #ifdef MICRO X E boolean FDECL(comp_times, (long)); X #endif X+ X+ /* ### video.c ### */ X+ X+ #ifdef VIDEOSHADES X+ E int FDECL(assign_videoshades, (uchar *,int)); X+ E int FDECL(assign_videocolors, (uchar *,int)); X+ #endif /* VIDEOSHADES */ X+ X X /* ### vis_tab.c ### */ X X*** /tmp/da23435 Mon Jul 12 18:14:22 1993 X--- include/macconf.h Tue Jul 6 15:20:06 1993 X*************** X*** 11,18 **** X * This could probably be automagic later on - I believe there's X * a unique symbol for MPW at least (it's "macintosh") X */ X! # define MAC_MPW32 /* Headers, and for avoiding a bug */ X! /* # define MAC_THINKC5 /* Maybe supported now ... */ X X # define RANDOM X # define NO_SIGNAL /* You wouldn't believe our signals ... */ X--- 11,19 ---- X * This could probably be automagic later on - I believe there's X * a unique symbol for MPW at least (it's "macintosh") X */ X! # ifdef applec X! # define MAC_MPW32 /* Headers, and for avoiding a bug */ X! # endif X X # define RANDOM X # define NO_SIGNAL /* You wouldn't believe our signals ... */ X*** /tmp/da23563 Mon Jul 12 18:14:53 1993 X--- include/patchlevel.h Mon Jul 12 16:10:06 1993 X*************** X*** 2,19 **** X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X! /* NetHack 3.1.2 */ X #define VERSION_MAJOR 3 X #define VERSION_MINOR 1 X /* X * PATCHLEVEL is updated for each release. X */ X! #define PATCHLEVEL 2 X /* X * Incrementing EDITLEVEL can be used to force invalidation of old bones X * and save files. X */ X #define EDITLEVEL 0 X X /* X * Patch 2, June 1, 1993 X--- 2,28 ---- X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X! /* NetHack 3.1.3 */ X #define VERSION_MAJOR 3 X #define VERSION_MINOR 1 X /* X * PATCHLEVEL is updated for each release. X */ X! #define PATCHLEVEL 3 X /* X * Incrementing EDITLEVEL can be used to force invalidation of old bones X * and save files. X */ X #define EDITLEVEL 0 X+ X+ /* X+ * Patch 3, July 12, 1993 X+ * further revise Mac windowing and extend to Think C (courtesy X+ * Barton House) X+ * fix confusing black/gray/white display on some MSDOS hardware X+ * remove fatal bugs dealing with horns of plenty and VMS bones levels, X+ * as well as more minor ones X+ */ X X /* X * Patch 2, June 1, 1993 X*** /tmp/da23571 Mon Jul 12 18:14:55 1993 X--- include/pcconf.h Fri Jul 9 15:33:21 1993 X*************** X*** 1,4 **** X! /* SCCS Id: @(#)pcconf.h 3.1 93/04/04 */ X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X--- 1,4 ---- X! /* SCCS Id: @(#)pcconf.h 3.1 93/06/28 */ X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X*************** X*** 18,25 **** X */ X X # if !defined (__GO32__) && !defined(__BORLANDC__) && !defined(AMIGA) X! # define OVERLAY /* MS DOS overlay manager - PGM */ X! /* #define MOVERLAY /* Microsoft's MOVE overlay system (MSC >= 7.0) */ X # endif X X X--- 18,25 ---- X */ X X # if !defined (__GO32__) && !defined(__BORLANDC__) && !defined(AMIGA) X! /* # define OVERLAY /* MS DOS overlay manager - PGM */ X! #define MOVERLAY /* Microsoft's MOVE overlay system (MSC >= 7.0) */ X # endif X X X*************** X*** 28,46 **** X # endif X X # define SHELL /* via exec of COMMAND.COM */ 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 X! # define ANSI_DEFAULT /* allows NetHack to run without a ./termcap */ X X! /*# define NO_TERMS /* Allows Nethack to run without ansi.sys by linking */ X /* screen routines into the .exe */ X X! # ifdef NO_TERMS /* if NO_TERMS select screen package below */ X! # define SCREEN_BIOS /* Use bios calls for all screen control */ X! /* #define SCREEN_DJGPPFAST /* Use djgpp fast screen routines */ X # endif X X /*# define PC9801 /* Allows NetHack to run on NEC PC-9801 machines */ X--- 28,46 ---- X # endif X X # define SHELL /* via exec of COMMAND.COM */ 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 X! /* # define ANSI_DEFAULT /* allows NetHack to run without a ./termcap */ X X! # define NO_TERMS /* Allows Nethack to run without ansi.sys by linking */ X /* screen routines into the .exe */ X X! # ifdef NO_TERMS /* if NO_TERMS select one screen package below */ X! #define SCREEN_BIOS /* Use bios calls for all screen control */ X! /* #define SCREEN_DJGPPFAST /* Use djgpp fast screen routines */ X # endif X X /*# define PC9801 /* Allows NetHack to run on NEC PC-9801 machines */ X*************** X*** 114,126 **** X X #ifdef MSDOS X # define TEXTCOLOR /* */ X #endif X X #ifdef NO_TERMS /* Sanity check, do not modify this block */ X # undef TERMLIB X # undef ANSI_DEFAULT X # define ASCIIGRAPH X! #endif X X #ifdef MSC7_WARN /* define with cl /DMSC7_WARN */ X #pragma warning(disable:4131) X--- 114,152 ---- X X #ifdef MSDOS X # define TEXTCOLOR /* */ X+ # define PORT_HELP "msdos.hlp" /* msdos port specific help file */ X #endif X X #ifdef NO_TERMS /* Sanity check, do not modify this block */ X+ # ifdef TERMLIB X+ # ifdef _MSC_VER X+ # pragma message("Warning -- TERMLIB defined with NO_TERMS in pcconf.h") X+ # pragma message(" Forcing undef of TERMLIB") X+ # endif X # undef TERMLIB X+ # endif X+ # ifdef ANSI_DEFAULT X+ # ifdef _MSC_VER X+ # pragma message("Warning -- ANSI_DEFAULT defined with NO_TERMS in pcconf.h") X+ # pragma message(" Forcing undef of ANSI_DEFAULT") X+ # endif X # undef ANSI_DEFAULT X+ # endif X+ /* only one screen package is allowed */ X+ # if defined(SCREEN_BIOS) && defined(SCREEN_DJGPPFAST) X+ # ifdef _MSC_VER X+ # pragma message("Warning -- More than one screen package defined in pcconf.h") X+ # pragma message(" Forcing undef of SCREEN_DJGPPFAST") X+ # undef SCREEN_DJGPPFAST /* Can't use djgpp fast with MSC anyway */ X+ # else X+ # undef SCREEN_BIOS X+ # endif X+ # endif X # define ASCIIGRAPH X! # ifdef TEXTCOLOR X! # define VIDEOSHADES X! # endif X! #endif /* End of sanity check block */ X X #ifdef MSC7_WARN /* define with cl /DMSC7_WARN */ X #pragma warning(disable:4131) X*** /tmp/da23715 Mon Jul 12 18:15:29 1993 X--- include/vmsconf.h Thu Jul 1 14:55:09 1993 X*************** X*** 16,22 **** X * extra room for patching longer values into an existing executable. X */ X #define Local_WIZARD "NHWIZARD\0\0\0\0" X! #define Local_HACKDIR "DISK$USERS:[GAMES.NETHACK.3-1-2.PLAY]\0\0\0\0\0\0\0\0" X X /* X * This section cleans up the stuff done in config.h so that it X--- 16,22 ---- X * extra room for patching longer values into an existing executable. X */ X #define Local_WIZARD "NHWIZARD\0\0\0\0" X! #define Local_HACKDIR "DISK$USERS:[GAMES.NETHACK.3-1-3.PLAY]\0\0\0\0\0\0\0\0" X X /* X * This section cleans up the stuff done in config.h so that it X*** /tmp/da23723 Mon Jul 12 18:15:32 1993 X--- include/winX.h Thu Jul 1 15:32:58 1993 X*************** X*** 74,81 **** X XFontStruct *fs; /* Font for the window. */ X int num_lines; /* line count */ X struct line_element *head; /* head of circular line queue */ X struct line_element *last_pause;/* point to the line after the prev */ X! /* bottom of screen */ X struct line_element *last_pause_head;/* pointer to head of previous */ X /* turn */ X GC gc; /* GC for text drawing */ X--- 74,82 ---- X XFontStruct *fs; /* Font for the window. */ X int num_lines; /* line count */ X struct line_element *head; /* head of circular line queue */ X+ struct line_element *line_here;/* current drawn line position */ X struct line_element *last_pause;/* point to the line after the prev */ X! /* bottom of screen */ X struct line_element *last_pause_head;/* pointer to head of previous */ X /* turn */ X GC gc; /* GC for text drawing */ X*** /tmp/da23747 Mon Jul 12 18:15:38 1993 X--- include/wintty.h Tue Jul 6 15:20:10 1993 X*************** X*** 52,57 **** X--- 52,60 ---- X #define MAXWIN 20 /* maximum number of windows, cop-out */ X X /* tty dependent window types */ X+ #ifdef NHW_BASE X+ #undef NHW_BASE X+ #endif X #define NHW_BASE 6 X X extern struct window_procs tty_procs; X*************** X*** 190,195 **** X--- 193,202 ---- X X #ifdef NO_TERMS X # ifdef MAC X+ # ifdef putchar X+ # undef putchar X+ # undef putc X+ # endif X # define putchar term_putc X # define putc term_fputc X # define fputc term_fputc X*** /tmp/da23763 Mon Jul 12 18:15:42 1993 X--- include/you.h Mon Jul 12 16:10:25 1993 X*************** X*** 1,4 **** X! /* SCCS Id: @(#)you.h 3.1 93/04/24 */ X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X--- 1,4 ---- X! /* SCCS Id: @(#)you.h 3.1 93/07/07 */ X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X*************** X*** 51,57 **** X #define INTRINSIC (FROMOUTSIDE|FROMEXPER) X X long p_flgs; X- int NDECL((*p_tofn)); /* called after timeout */ X }; X X struct u_have { X--- 51,56 ---- X*************** X*** 207,214 **** X--- 206,215 ---- X long ucleansed; /* to record moves when player was cleansed */ X int uinvault; X struct monst *ustuck; X+ int umortality; /* how many times you died */ X int ugrave_arise; /* you die and become something aside from a ghost */ X int nr_killed[NUMMONS]; /* used for experience bookkeeping */ X+ time_t ubirthday; /* real world time when game began */ X }; X X #endif /* YOU_H */ X*** /tmp/da23779 Mon Jul 12 18:15:46 1993 X--- util/dgn_comp.l Thu Jul 1 14:42:43 1993 X*************** X*** 1,5 **** X %{ X! /* SCCS Id: @(#)dgn_lex.c 3.1 92/10/23 */ X /* Copyright (c) 1989 by Jean-Christophe Collet */ X /* Copyright (c) 1990 by M. Stephenson */ X /* NetHack may be freely redistributed. See license for details. */ X--- 1,5 ---- X %{ X! /* SCCS Id: @(#)dgn_lex.c 3.1 93/06/17 */ X /* Copyright (c) 1989 by Jean-Christophe Collet */ X /* Copyright (c) 1990 by M. Stephenson */ X /* NetHack may be freely redistributed. See license for details. */ X*************** X*** 15,26 **** X * Most of these don't exist in flex, yywrap is macro and X * yyunput is properly declared in flex.skel. X */ X! #ifndef FLEX_SCANNER X! int FDECL (yyback, (int *, int)); X! int NDECL (yylook); X! int NDECL (yyinput); X! int NDECL (yywrap); X! int NDECL (yylex); X /* Traditional lexes let yyunput() and yyoutput() default to int; X * newer ones may declare them as void since they don't return X * values. For even more fun, the lex supplied as part of the X--- 15,26 ---- X * Most of these don't exist in flex, yywrap is macro and X * yyunput is properly declared in flex.skel. X */ X! #if !defined(FLEX_SCANNER) && !defined(FLEXHACK_SCANNER) X! int FDECL(yyback, (int *, int)); X! int NDECL(yylook); X! int NDECL(yyinput); X! int NDECL(yywrap); X! int NDECL(yylex); X /* Traditional lexes let yyunput() and yyoutput() default to int; X * newer ones may declare them as void since they don't return X * values. For even more fun, the lex supplied as part of the X*************** X*** 44,59 **** X # endif X # endif X # ifdef VOIDYYPUT X! void FDECL (yyunput, (int)); X! void FDECL (yyoutput, (int)); X # else X! int FDECL (yyunput, (int)); X! int FDECL (yyoutput, (int)); X # endif X! #endif /* FLEX_SCANNER */ X X! void FDECL (init_yyin, (FILE *)); X! void FDECL (init_yyout, (FILE *)); X X #ifdef MICRO X #undef exit X--- 44,59 ---- X # endif X # endif X # ifdef VOIDYYPUT X! void FDECL(yyunput, (int)); X! void FDECL(yyoutput, (int)); X # else X! int FDECL(yyunput, (int)); X! int FDECL(yyoutput, (int)); X # endif X! #endif /* !FLEX_SCANNER && !FLEXHACK_SCANNER */ X X! void FDECL(init_yyin, (FILE *)); X! void FDECL(init_yyout, (FILE *)); X X #ifdef MICRO X #undef exit X*************** X*** 71,77 **** X * This is a hack required by Michael Hamel to get things X * working on the Mac. X */ X! #if defined(applec) && !defined(FLEX_SCANNER) X #undef input X #undef unput X #define unput(c) { yytchar = (c); if (yytchar == 10) yylineno--; *yysptr++ = yytchar; } X--- 71,77 ---- X * This is a hack required by Michael Hamel to get things X * working on the Mac. X */ X! #if defined(applec) && !defined(FLEX_SCANNER) && !defined(FLEXHACK_SCANNER) X #undef input X #undef unput X #define unput(c) { yytchar = (c); if (yytchar == 10) yylineno--; *yysptr++ = yytchar; } X*************** X*** 80,87 **** X # endif X X char X! input() { /* Under MPW \n is chr(13)! Compensate for this. */ X! X if (yysptr > yysbuf) return(*--yysptr); X else { X yytchar = getc(yyin); X--- 80,87 ---- X # endif X X char X! input() /* Under MPW \n is chr(13)! Compensate for this. */ X! { X if (yysptr > yysbuf) return(*--yysptr); X else { X yytchar = getc(yyin); X*************** X*** 93,99 **** X else return(yytchar); X } X } X! #endif /* applec && !FLEX_SCANNER */ X X %} X %% X--- 93,99 ---- X else return(yytchar); X } X } X! #endif /* applec && !FLEX_SCANNER && !FLEXHACK_SCANNER */ X X %} X %% X*************** X*** 140,146 **** X void init_yyin( input_f ) X FILE *input_f; X { X! #ifdef FLEX_SCANNER X if (yyin) X yyrestart(input_f); X else X--- 140,146 ---- X void init_yyin( input_f ) X FILE *input_f; X { X! #if defined(FLEX_SCANNER) || defined(FLEXHACK_SCANNER) X if (yyin) X yyrestart(input_f); X else X*** /tmp/da23795 Mon Jul 12 18:15:50 1993 X--- util/dgn_main.c Tue Jul 6 15:33:07 1993 X*************** X*** 17,23 **** X # endif X #endif X X! #if defined(MICRO) && !defined(AMIGA) X # define WRMODE "w+b" X #else X # define WRMODE "w+" X--- 17,23 ---- X # endif X #endif X X! #if (defined(MICRO) && !defined(AMIGA)) || defined(THINK_C) X # define WRMODE "w+b" X #else X # define WRMODE "w+" X*************** X*** 60,66 **** X char infile[64], outfile[64]; X FILE *fin, *fout; X int i, len; X! #ifdef MAC_THINKC5 X static char *mac_argv[] = { "dgn_comp", /* dummy argv[0] */ X ":dat:dungeon.pdf" X }; X--- 60,66 ---- X char infile[64], outfile[64]; X FILE *fin, *fout; X int i, len; X! #ifdef THINK_C X static char *mac_argv[] = { "dgn_comp", /* dummy argv[0] */ X ":dat:dungeon.pdf" X }; X*** /tmp/da23803 Mon Jul 12 18:15:52 1993 X--- util/lev_comp.l Thu Jul 1 14:42:51 1993 X*************** X*** 1,5 **** X %{ X! /* SCCS Id: @(#)lev_lex.c 3.1 93/05/27 */ X /* Copyright (c) 1989 by Jean-Christophe Collet */ X /* NetHack may be freely redistributed. See license for details. */ X X--- 1,5 ---- X %{ X! /* SCCS Id: @(#)lev_lex.c 3.1 93/06/17 */ X /* Copyright (c) 1989 by Jean-Christophe Collet */ X /* NetHack may be freely redistributed. See license for details. */ X X*************** X*** 12,23 **** X /* Most of these don't exist in flex, yywrap is macro and X * yyunput is properly declared in flex.skel. X */ X! #ifndef FLEX_SCANNER X! int FDECL (yyback, (int *, int)); X! int NDECL (yylook); X! int NDECL (yyinput); X! int NDECL (yywrap); X! int NDECL (yylex); X /* Traditional lexes let yyunput() and yyoutput() default to int; X * newer ones may declare them as void since they don't return X * values. For even more fun, the lex supplied as part of the X--- 12,23 ---- X /* Most of these don't exist in flex, yywrap is macro and X * yyunput is properly declared in flex.skel. X */ X! #if !defined(FLEX_SCANNER) && !defined(FLEXHACK_SCANNER) X! int FDECL(yyback, (int *, int)); X! int NDECL(yylook); X! int NDECL(yyinput); X! int NDECL(yywrap); X! int NDECL(yylex); X /* Traditional lexes let yyunput() and yyoutput() default to int; X * newer ones may declare them as void since they don't return X * values. For even more fun, the lex supplied as part of the X*************** X*** 41,56 **** X # endif X # endif X # ifdef VOIDYYPUT X! void FDECL (yyunput, (int)); X! void FDECL (yyoutput, (int)); X # else X! int FDECL (yyunput, (int)); X! int FDECL (yyoutput, (int)); X # endif X! #endif /* FLEX_SCANNER */ X X! void FDECL (init_yyin, (FILE *)); X! void FDECL (init_yyout, (FILE *)); X X #ifdef MICRO X #undef exit X--- 41,56 ---- X # endif X # endif X # ifdef VOIDYYPUT X! void FDECL(yyunput, (int)); X! void FDECL(yyoutput, (int)); X # else X! int FDECL(yyunput, (int)); X! int FDECL(yyoutput, (int)); X # endif X! #endif /* !FLEX_SCANNER && !FLEXHACK_SCANNER */ X X! void FDECL(init_yyin, (FILE *)); X! void FDECL(init_yyout, (FILE *)); X X #ifdef MICRO X #undef exit X*************** X*** 79,85 **** X * This is a hack required by Michael Hamel to get things X * working on the Mac. X */ X! #if defined(applec) && !defined(FLEX_SCANNER) X #undef input X #undef unput X #define unput(c) { yytchar = (c); if (yytchar == 10) yylineno--; *yysptr++ = yytchar; } X--- 79,85 ---- X * This is a hack required by Michael Hamel to get things X * working on the Mac. X */ X! #if defined(applec) && !defined(FLEX_SCANNER) && !defined(FLEXHACK_SCANNER) X #undef input X #undef unput X #define unput(c) { yytchar = (c); if (yytchar == 10) yylineno--; *yysptr++ = yytchar; } X*************** X*** 88,95 **** X # endif X X char X! input() { /* Under MPW \n is chr(13)! Compensate for this. */ X! X if (yysptr > yysbuf) return(*--yysptr); X else { X yytchar = getc(yyin); X--- 88,95 ---- X # endif X X char X! input() /* Under MPW \n is chr(13)! Compensate for this. */ X! { X if (yysptr > yysbuf) return(*--yysptr); X else { X yytchar = getc(yyin); X*************** X*** 101,107 **** X else return(yytchar); X } X } X! #endif /* applec && !FLEX_SCANNER */ X X %} X %e 1500 X--- 101,107 ---- X else return(yytchar); X } X } X! #endif /* applec && !FLEX_SCANNER && !FLEXHACK_SCANNER */ X X %} X %e 1500 X*************** X*** 121,127 **** X extern int yy_more_len; X X yy_more_len = 0; X! #endif X BEGIN(INITIAL); X yylval.map = (char *) alloc(yyleng-5); X strncpy(yylval.map, yytext,yyleng-6); X--- 121,127 ---- X extern int yy_more_len; X X yy_more_len = 0; X! #endif /* FLEX23_BUG */ X BEGIN(INITIAL); X yylval.map = (char *) alloc(yyleng-5); X strncpy(yylval.map, yytext,yyleng-6); X*************** X*** 247,253 **** X void init_yyin( input_f ) X FILE *input_f; X { X! #ifdef FLEX_SCANNER X if (yyin) X yyrestart(input_f); X else X--- 247,253 ---- X void init_yyin( input_f ) X FILE *input_f; X { X! #if defined(FLEX_SCANNER) || defined(FLEXHACK_SCANNER) X if (yyin) X yyrestart(input_f); X else X*** /tmp/da23812 Mon Jul 12 18:15:54 1993 X--- util/lev_comp.y Tue Jul 6 15:45:41 1993 X*************** X*** 202,208 **** X char lbuf[20]; X Strcpy(lbuf, $1); X Strcat(lbuf, LEV_EXT); X! #ifdef MAC_THINKC5 X fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY); X #else X fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY, OMASK); X--- 202,208 ---- X char lbuf[20]; X Strcpy(lbuf, $1); X Strcat(lbuf, LEV_EXT); X! #ifdef THINK_C X fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY); X #else X fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY, OMASK); X*************** X*** 237,243 **** X char lbuf[20]; X Strcpy(lbuf, $1); X Strcat(lbuf, LEV_EXT); X! #ifdef MAC_THINKC5 X fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY); X #else X fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY, OMASK); X--- 237,243 ---- X char lbuf[20]; X Strcpy(lbuf, $1); X Strcat(lbuf, LEV_EXT); X! #ifdef THINK_C X fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY); X #else X fout = open(lbuf, O_WRONLY|O_CREAT|O_BINARY, OMASK); X*** /tmp/da23820 Mon Jul 12 18:15:57 1993 X--- util/lev_main.c Mon Jul 12 13:38:34 1993 X*************** X*** 1,4 **** X! /* SCCS Id: @(#)lev_main.c 3.1 93/05/27 */ X /* Copyright (c) 1989 by Jean-Christophe Collet */ X /* NetHack may be freely redistributed. See license for details. */ X X--- 1,4 ---- X! /* SCCS Id: @(#)lev_main.c 3.1 93/07/10 */ X /* Copyright (c) 1989 by Jean-Christophe Collet */ X /* NetHack may be freely redistributed. See license for details. */ X X*************** X*** 81,88 **** X X static struct { X const char *name; X! short type; X! } trap_types[TRAPNUM] = { X { "arrow", ARROW_TRAP }, X { "dart", DART_TRAP }, X { "falling rock", ROCKTRAP }, X--- 81,88 ---- X X static struct { X const char *name; X! int type; X! } trap_types[] = { X { "arrow", ARROW_TRAP }, X { "dart", DART_TRAP }, X { "falling rock", ROCKTRAP }, X*************** X*** 102,110 **** X { "statue", STATUE_TRAP }, X { "magic", MAGIC_TRAP }, X { "anti magic", ANTI_MAGIC }, X! #ifdef POLYSELF X! { "polymorph", POLY_TRAP }, X #endif X { 0, 0 } X }; X X--- 102,111 ---- X { "statue", STATUE_TRAP }, X { "magic", MAGIC_TRAP }, X { "anti magic", ANTI_MAGIC }, X! #ifndef POLYSELF X! #define POLY_TRAP NO_TRAP /* this will result in a random trap */ X #endif X+ { "polymorph", POLY_TRAP }, X { 0, 0 } X }; X X*************** X*** 192,198 **** X { X FILE *fin; X int i; X! #ifdef MAC_THINKC5 X static char *mac_argv[] = { "lev_comp", /* dummy argv[0] */ X ":dat:Arch.des", X ":dat:Barb.des", X--- 193,199 ---- X { X FILE *fin; X int i; X! #ifdef THINK_C X static char *mac_argv[] = { "lev_comp", /* dummy argv[0] */ X ":dat:Arch.des", X ":dat:Barb.des", X*************** X*** 362,370 **** X register int i; X X SpinCursor(3); X! for(i=0; i < TRAPNUM - 1; i++) X if(!strcmp(s,trap_types[i].name)) X! return((int)trap_types[i].type); X return ERR; X } X X--- 363,371 ---- X register int i; X X SpinCursor(3); X! for (i=0; trap_types[i].name; i++) X if(!strcmp(s,trap_types[i].name)) X! return trap_types[i].type; X return ERR; X } X X*** /tmp/da23829 Mon Jul 12 18:16:00 1993 X--- util/makedefs.c Tue Jul 6 15:33:15 1993 X*************** X*** 24,34 **** X # ifdef applec /* Means the MPW compiler, I hope */ X # define MPWTOOL X # include X # else /* MAC without MPWTOOL */ X # define MACsansMPWTOOL X # endif X- #include X- #include X #endif /* MAC */ X X #ifndef MPWTOOL X--- 24,34 ---- X # ifdef applec /* Means the MPW compiler, I hope */ X # define MPWTOOL X # include X+ # include X+ # include X # else /* MAC without MPWTOOL */ X # define MACsansMPWTOOL X # endif X #endif /* MAC */ X X #ifndef MPWTOOL X*************** X*** 59,65 **** X #define WRMODE "w+" X #define RDMODE "r" X /* the quest.dat file is binary, while everything else is text... */ X! #if defined(MICRO) && !defined(AMIGA) X # define WRBMODE "w+b" X #else X # define WRBMODE "w+" X--- 59,65 ---- X #define WRMODE "w+" X #define RDMODE "r" X /* the quest.dat file is binary, while everything else is text... */ X! #if (defined(MICRO) && !defined(AMIGA)) || defined(THINK_C) X # define WRBMODE "w+b" X #else X # define WRBMODE "w+" X*** /tmp/da22538 Mon Jul 12 17:58:31 1993 X--- sys/unix/Makefile.src Fri Jul 9 15:33:33 1993 X*************** X*** 121,126 **** X--- 121,127 ---- X # Systos needs -lcurses16 if you use -mshort X # AIX 3.1 on RS/6000 likes -lcurses if TERMINFO defined in config.h X # and -ltermcap otherwise X+ # Linux uses -ltermcap X # X # libraries for tty ports X # WINTTYLIB = -ltermcap X*************** X*** 145,150 **** X--- 146,155 ---- X # DPX/2's also use the malloc(3x) routines. In addition, if you are building X # for X11, you must include libinet.a. X # LIBS = -lmalloc -linet X+ # X+ # Linux NetHack uses some bsd style ioctl functions, thus it is necessary to X+ # use the bsd libs. X+ # LIBS = -lbsd X LIBS = X X # make NetHack X*** /tmp/da22635 Mon Jul 12 17:58:59 1993 X--- sys/unix/unixunix.c Wed Jul 7 16:57:08 1993 X*************** X*** 260,265 **** X--- 260,268 ---- X register char *s; X { X register char *lp; X+ #if defined(SYSV) && !defined(AIX_31) && defined(COMPRESS) X+ int i; X+ #endif X X while((lp=index(s, '.')) || (lp=index(s, '/')) || (lp=index(s,' '))) X *lp = '_'; X*************** X*** 266,275 **** X #if defined(SYSV) && !defined(AIX_31) X /* avoid problems with 14 character file name limit */ X # ifdef COMPRESS X! if(strlen(s) > 10) X! /* leave room for .e from error and .Z from compress X! * appended to save files */ X! s[10] = '\0'; X # else X if(strlen(s) > 11) X /* leave room for .nn appended to level files */ X--- 269,283 ---- X #if defined(SYSV) && !defined(AIX_31) X /* avoid problems with 14 character file name limit */ X # ifdef COMPRESS X! /* leave room for .e from error and .Z from compress appended to X! * save files */ X! # ifdef COMPRESS_EXTENSION X! i = 12 - strlen(COMPRESS_EXTENSION); X! # else X! i = 10; /* should never happen... */ X! # endif X! if(strlen(s) > i) X! s[i] = '\0'; X # else X if(strlen(s) > 11) X /* leave room for .nn appended to level files */ X*** /tmp/da23059 Mon Jul 12 18:00:48 1993 X--- win/tty/wintty.c Wed Jul 7 17:11:30 1993 X*************** X*** 14,19 **** X--- 14,22 ---- X X #ifdef MAC X # define MICRO /* The Mac is a MICRO only for this file, not in general! */ X+ # ifdef THINK_C X+ extern void msmsg(const char *,...); X+ # endif X #endif X X #ifndef NO_TERMS X*************** X*** 1361,1367 **** X #endif /* ASCIIGRAPH && !NO_TERMS */ X X return; X! }; X X #ifdef CLIPPING X void X--- 1364,1370 ---- X #endif /* ASCIIGRAPH && !NO_TERMS */ X X return; X! } X X #ifdef CLIPPING X void END_OF_FILE if test 31010 -ne `wc -c <'patches03g'`; then echo shar: \"'patches03g'\" unpacked with wrong size! fi # end of 'patches03g' echo shar: End of archive 16 \(of 18\). cp /dev/null ark16isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 18 archives. echo "Now execute ./patchit3.sh" 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