[comp.sources.games] v08i054: NetHack3 - display oriented dungeons & dragons

billr@saab.CNA.TEK.COM (Bill Randle) (11/23/89)

Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
Posting-number: Volume 8, Issue 54
Archive-name: NetHack3/Patch6a
Patch-To: NetHack3: Volume 7, Issue 56-93

	[As before, unpack this in your top level NetHack3 directory.
	 This set of patches will overwrite several existing files
	 whose diffs were larger than the source itself and create
	 several patches06? files to be feed to patch. Use the
	 do_patch6.sh script to do this automatically. Note that
	 monst.c is split into two parts. The do_patch6.sh script
	 cats them together. When I get a chance I will put a copy
	 of NetHack3 will all 6 patches applied in the archives on
	 saab and uunet. There are 15 parts (a-o) in this patch (#6).
		-br]

[[And now a word from the development team...
This patch contains two major improvements:

First, thanks to Ari Huttunen, different door states show up as different
(configurable) characters on the screen.

Second, doors can now be entered/exited diagonally both for player and
monster.

Third, a gaggle of people credited in the appropriate files developed an
overlay manager for MS-DOS and MSC such that all the options of NetHack can
be supported.  See Install.dos and ovlmgr.* for further details.

In more minor news:

You no longer have to pick up food to eat it, and you no longer necessarily
resume eating your interrupted meal.

You can no longer get properties from wielding a non-weapon.

There is a new option, CLIPPING, which allows playing on small screens or
windows.

The multiple demon types portion of HARD has been split off into the new
INFERNO option.

The Macintosh port has been further refined.

The / command now takes configurable characters into account when identifying
items.

Leprechauns and lichs and nymphs and nagas had their letters switched so that
the more formidable monsters get capital letters.  Several new low-level
monsters were added.

Drawbridge interactions are much smarter, thanks to Kevin Darcy.

And a large number of minor bug fixes and efficiency enhancements.]]

#! /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 1 (of 15)."
# Contents:  MANIFEST.P6 do_patch6.sh patches06b
# Wrapped by billr@saab on Wed Nov 22 11:10:02 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'MANIFEST.P6' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'MANIFEST.P6'\"
else
echo shar: Extracting \"'MANIFEST.P6'\" \(796 characters\)
sed "s/^X//" >'MANIFEST.P6' <<'END_OF_FILE'
X   File Name		Archive #	Description
X-----------------------------------------------------------
X Install.dos               13	
X MANIFEST.P6                1	This shipping list
X UPDATE6                    3	
X do_patch6.sh               1	
X include/extern.h          15	
X include/system.h          10	
X others/Makefile.tcc       14	
X patches06a                10	
X patches06b                 1	
X patches06c                 5	
X patches06d                 2	
X patches06e                 8	
X patches06f                 3	
X patches06g                 6	
X patches06h                 7	
X patches06i                 9	
X patches06j                 4	
X patches06k                11	
X patches06l                12	
X src/dbridge.c             15	
X src/monst.c1              14	
X src/monst.c2              13	
END_OF_FILE
if test 796 -ne `wc -c <'MANIFEST.P6'`; then
    echo shar: \"'MANIFEST.P6'\" unpacked with wrong size!
fi
# end of 'MANIFEST.P6'
fi
if test -f 'do_patch6.sh' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'do_patch6.sh'\"
else
echo shar: Extracting \"'do_patch6.sh'\" \(830 characters\)
sed "s/^X//" >'do_patch6.sh' <<'END_OF_FILE'
X#! /bin/sh
X# script to call patch to apply diff files
X# make sure all of the patch files (and this file) are in your top level
X# NetHack directory
X#
Xecho "creating monst.c from monst.c1 and monst.c2"
Xcat src/monst.c1 src/monst.c2 > src/monst.c
Xecho "applying patch6a"
Xpatch -p <patches06a
Xecho "applying patch6b"
Xpatch -p <patches06b
Xecho "applying patch6c"
Xpatch -p <patches06c
Xecho "applying patch6d"
Xpatch -p <patches06d
Xecho "applying patch6e"
Xpatch -p <patches06e
Xecho "applying patch6f"
Xpatch -p <patches06f
Xecho "applying patch6g"
Xpatch -p <patches06g
Xecho "applying patch6h"
Xpatch -p <patches06h
Xecho "applying patch6i"
Xpatch -p <patches06i
Xecho "applying patch6j"
Xpatch -p <patches06j
Xecho "applying patch6k"
Xpatch -p <patches06k
Xecho "applying patch6l"
Xpatch -p <patches06l
Xecho "all patches applied, check for rejects"
END_OF_FILE
if test 830 -ne `wc -c <'do_patch6.sh'`; then
    echo shar: \"'do_patch6.sh'\" unpacked with wrong size!
fi
chmod +x 'do_patch6.sh'
# end of 'do_patch6.sh'
fi
if test -f 'patches06b' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patches06b'\"
else
echo shar: Extracting \"'patches06b'\" \(53394 characters\)
sed "s/^X//" >'patches06b' <<'END_OF_FILE'
X*** amiga/Old/NetHack.cnf	Sun Nov 19 12:14:58 1989
X--- amiga/NetHack.cnf	Fri Oct 20 13:29:58 1989
X***************
X*** 42,48 ****
X  # stone, vertical wall, horizontal wall, top left corner, top right corner, 
X  # bottom left corner, bottom right corner, crosswall, up T wall, down T wall, 
X  # left T wall, right T wall, vertical beam, horizontal beam, left slant, right
X! # slant, door, floor, corridor, up stairs, down stairs, trap, web, pool,
X  # fountain, sink, throne, altar, up ladder, down ladder, vertical drawbridge
X  # wall, horizontal drawbridge wall 
X  #
X--- 42,49 ----
X  # stone, vertical wall, horizontal wall, top left corner, top right corner, 
X  # bottom left corner, bottom right corner, crosswall, up T wall, down T wall, 
X  # left T wall, right T wall, vertical beam, horizontal beam, left slant, right
X! # slant, no door, vertical open door, horizontal open door, closed door,
X! # floor, corridor, up stairs, down stairs, trap, web, pool,
X  # fountain, sink, throne, altar, up ladder, down ladder, vertical drawbridge
X  # wall, horizontal drawbridge wall 
X  #
X***************
X*** 52,56 ****
X  # Note that the hack.font has special graphics characters from 192 on.
X  
X  # An example using the hack.font graphics character set:
X! #	   ' '  |   -   .   .   `   '   -   -   -   -   -   |   -   \   /   +   .   #   <   >   ^   "   }   {   #   \   _   <   >   #   #
X! GRAPHICS = 032 192 193 194 195 196 197 198 216 214 215 213 192 193 092 047 198 046 035 060 062 094 034 125 123 035 092 095 060 062 035 035
X--- 53,57 ----
X  # Note that the hack.font has special graphics characters from 192 on.
X  
X  # An example using the hack.font graphics character set:
X! #	   ' '  |   -   .   .   `   '   -   -   -   -   -   |   -   \   /   .   -   |   +   .   #   <   >   ^   "   }   {   #   \   _   <   >   #   #
X! GRAPHICS = 032 192 193 194 195 196 197 198 216 214 215 213 192 193 092 047 046 193 192 198 046 035 060 062 094 034 125 123 035 092 095 060 062 035 035
X*** amiga/Old/amidos.c	Sun Nov 19 12:15:36 1989
X--- amiga/amidos.c	Fri Oct 20 13:29:41 1989
X***************
X*** 478,484 ****
X  	    int  lth;
X  
X  	    if ((lth = sscanf(bufp,
X! 	     "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",
X  				&translate[0], &translate[1], &translate[2],
X  				&translate[3], &translate[4], &translate[5],
X  				&translate[6], &translate[7], &translate[8],
X--- 478,484 ----
X  	    int  lth;
X  
X  	    if ((lth = sscanf(bufp,
X! 	"%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",
X  				&translate[0], &translate[1], &translate[2],
X  				&translate[3], &translate[4], &translate[5],
X  				&translate[6], &translate[7], &translate[8],
X***************
X*** 489,495 ****
X  				&translate[21], &translate[22], &translate[23],
X  				&translate[24], &translate[25], &translate[26],
X  				&translate[27], &translate[28], &translate[29],
X! 				&translate[30], &translate[31])) < 0) {
X  		    msmsg ("Syntax error in GRAPHICS\n");
X  		    getreturn("to continue");
X  	    } /* Yuck! Worked only with low-byte first!!! */
X--- 489,496 ----
X  				&translate[21], &translate[22], &translate[23],
X  				&translate[24], &translate[25], &translate[26],
X  				&translate[27], &translate[28], &translate[29],
X! 				&translate[30], &translate[31], &translate[32],
X! 				&translate[33], &translate[34])) < 0) {
X  		    msmsg ("Syntax error in GRAPHICS\n");
X  		    getreturn("to continue");
X  	    } /* Yuck! Worked only with low-byte first!!! */
X*** include/Old/amiconf.h	Sun Nov 19 15:12:11 1989
X--- include/amiconf.h	Fri Nov 17 20:51:36 1989
X***************
X*** 20,29 ****
X  #include "pcconf.h"     /* remainder of stuff is almost same as the PC */
X  #endif
X  
X- #undef  index
X- #undef  rindex
X- extern char  *index P((const char *,int));
X- extern char  *rindex P((const char *,int));
X  #define memcpy(dest, source, size)  movmem(source, dest, size)
X  
X  /*
X--- 20,25 ----
X*** include/Old/config.h	Sun Nov 19 15:12:56 1989
X--- include/config.h	Fri Nov 17 20:51:38 1989
X***************
X*** 42,54 ****
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--- 42,53 ----
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***************
X*** 79,86 ****
X   *	smaller bones/level/save files, but require additional code and time.
X   */
X  
X! #define COMPRESS "/usr/local/compress"
X! /* #define ZEROCOMP	/* Use only if COMPRESS is not used -- Olaf Seibert */
X  
X  
X  #define CHDIR		/* delete if no chdir() available */
X--- 78,87 ----
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*** 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--- 91,97 ----
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" 	/* nethack directory */
X  
X  /*
X   * Some system administrators are stupid enough to make Hack suid root
X***************
X*** 99,105 ****
X   * since the user might create files in a directory of his choice.
X   * Of course SECURE is meaningful only if HACKDIR is defined.
X   */
X! /* #define SECURE			/* do setuid(getuid()) after chdir() */
X  
X  /*
X   * If it is desirable to limit the number of people that can play Hack
X--- 100,106 ----
X   * since the user might create files in a directory of his choice.
X   * Of course SECURE is meaningful only if HACKDIR is defined.
X   */
X! /* #define SECURE	/* do setuid(getuid()) after chdir() */
X  
X  /*
X   * If it is desirable to limit the number of people that can play Hack
X***************
X*** 171,209 ****
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--- 172,218 ----
X   * complexity of the game but also to the size of the load module.
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*** include/Old/decl.h	Sun Nov 19 15:13:23 1989
X--- include/decl.h	Sun Nov 19 09:24:33 1989
X***************
X*** 51,56 ****
X--- 51,57 ----
X  E xchar fountsound, sinksound;	/* numbers of noisy things */
X  
X  E char pl_character[PL_CSIZ];
X+ E const char *pl_classes;
X  #ifdef TUTTI_FRUTTI
X  E char pl_fruit[PL_FSIZ];
X  E int current_fruit;
X***************
X*** 118,123 ****
X--- 119,129 ----
X  
X  #ifdef REDO
X  E int in_doagain;
X+ #endif
X+ 
X+ #ifdef CLIPPING
X+ E boolean clipping;
X+ E int clipx, clipy, clipxmax, clipymax;
X  #endif
X  
X  #ifdef TEXTCOLOR
X*** include/Old/flag.h	Sun Nov 19 15:15:17 1989
X--- include/flag.h	Sat Nov 18 09:25:28 1989
X***************
X*** 52,58 ****
X  	boolean  pickup;	/* whether you pickup or move and look */
X  	boolean  num_pad;	/* use numbers for movement commands */
X  #ifdef TEXTCOLOR
X! 	boolean  use_color;	/* use color grapics */
X  #endif
X  #ifdef DGK
X  	boolean  IBMBIOS;	/* whether we can use a BIOS call for
X--- 52,58 ----
X  	boolean  pickup;	/* whether you pickup or move and look */
X  	boolean  num_pad;	/* use numbers for movement commands */
X  #ifdef TEXTCOLOR
X! 	boolean  use_color;	/* use color graphics */
X  #endif
X  #ifdef DGK
X  	boolean  IBMBIOS;	/* whether we can use a BIOS call for
X*** include/Old/global.h	Sun Nov 19 15:15:38 1989
X--- include/global.h	Fri Nov 17 20:51:37 1989
X***************
X*** 1,4 ****
X! /*	SCCS Id: @(#)global.h	3.0	89/07/12
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: @(#)global.h	3.0	89/11/08
X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X  /* NetHack may be freely redistributed.  See license for details. */
X  
X***************
X*** 9,15 ****
X  
X  
X  /* #define BETA		/* if a beta-test copy  [MRS] */
X! #define VERSION	"3.0g"	/* version number. */
X  
X  /*
X   * Files expected to exist in the playground directory.
X--- 9,15 ----
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*** include/Old/hack.h	Sun Nov 19 15:15:59 1989
X--- include/hack.h	Sun Nov 19 09:24:34 1989
X***************
X*** 79,84 ****
X--- 79,94 ----
X  #include	"extern.h"
X  #endif
X  
X+ #ifdef OVERLAY
X+ #ifndef TRAMPOLI_H
X+ #include	"trampoli.h"
X+ #endif
X+ 
X+ #undef EXTERN_H
X+ #include	"extern.h"
X+ #endif /* OVERLAY */
X+ 
X+ 
X  #ifdef STRONGHOLD
X  # define Inhell		(dlevel > stronghold_level && dlevel <= MAXLEVEL)
X  #else
X***************
X*** 103,109 ****
X  #define	makeknown(x)	objects[x].oc_name_known = 1
X  # endif /* STUPID_CPP */
X  
X! #ifdef MSDOS
X  #define getuid() 1
X  #define getlogin() ((char *) NULL)
X  #endif /* MSDOS */
X--- 113,119 ----
X  #define	makeknown(x)	objects[x].oc_name_known = 1
X  # endif /* STUPID_CPP */
X  
X! #if defined(MSDOS) || defined(MACOS)
X  #define getuid() 1
X  #define getlogin() ((char *) NULL)
X  #endif /* MSDOS */
X*** include/Old/macconf.h	Sun Nov 19 15:16:31 1989
X--- include/macconf.h	Fri Nov 17 20:51:36 1989
X***************
X*** 62,68 ****
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--- 62,68 ----
X  #include	<Stdlib.h>
X  #include	<String.h>
X  #undef getuid
X! #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
X  #ifdef stdout
X  #undef stdout
X  #define stdout (FILE *)NULL
X***************
X*** 190,195 ****
X--- 190,196 ----
X  #define	LEVEL_TYPE	'LEVL'
X  #define	HACK_DATA	'HDTA'
X  #define MONST_DATA	101
X+ #define OBJECT_DATA	104
X  #define	DEFAULT_DATA	100
X  
X  #include "extern.h"
X*** include/Old/mondata.h	Sun Nov 19 15:17:13 1989
X--- include/mondata.h	Fri Nov 10 17:01:04 1989
X***************
X*** 1,4 ****
X! /*	SCCS Id: @(#)mondata.h	3.0	89/03/06
X  /* NetHack may be freely redistributed.  See license for details. */
X  /* Copyright (c) 1989 Mike Threepoint */
X  
X--- 1,4 ----
X! /*	SCCS Id: @(#)mondata.h	3.0	89/11/08
X  /* NetHack may be freely redistributed.  See license for details. */
X  /* Copyright (c) 1989 Mike Threepoint */
X  
X***************
X*** 7,14 ****
X  
X  # ifndef STUPID_CPP	/* otherwise these macros are functions in mondata.c */
X  
X! #define bigmonst(ptr)		(((ptr)->mflags1 & M1_BIG) != 0L)
X! #define verysmall(ptr)		(((ptr)->mflags1 & M1_VSMALL) != 0L)
X  #define is_flyer(ptr)		(((ptr)->mflags1 & M1_FLY) != 0L)
X  #define is_floater(ptr) 	((ptr)->mlet == S_EYE)
X  #define is_swimmer(ptr) 	(((ptr)->mflags1 & M1_SWIM) != 0L)
X--- 7,15 ----
X  
X  # ifndef STUPID_CPP	/* otherwise these macros are functions in mondata.c */
X  
X! #define verysmall(ptr)		((ptr)->msize < MZ_SMALL)
X! #define bigmonst(ptr)		((ptr)->msize >= MZ_LARGE)
X! 
X  #define is_flyer(ptr)		(((ptr)->mflags1 & M1_FLY) != 0L)
X  #define is_floater(ptr) 	((ptr)->mlet == S_EYE)
X  #define is_swimmer(ptr) 	(((ptr)->mflags1 & M1_SWIM) != 0L)
X***************
X*** 60,71 ****
X  #define is_wanderer(ptr)	(((ptr)->mflags2 & M2_WANDER) != 0L)
X  #define is_lord(ptr)		(((ptr)->mflags1 & M1_LORD) != 0L)
X  #define is_prince(ptr)		(((ptr)->mflags1 & M1_PRINCE) != 0L)
X! #ifdef HARD
X  #define is_ndemon(ptr)		(is_demon(ptr) && \
X  			 (((ptr)->mflags1 & (M1_LORD | M1_PRINCE)) == 0L))
X! #else /* HARD */
X  #define is_ndemon(ptr)		(ptr == &mons[PM_DEMON])
X! #endif /* HARD */
X  #define is_dlord(ptr)		(is_demon(ptr) && is_lord(ptr))
X  #define is_dprince(ptr)		(is_demon(ptr) && is_prince(ptr))
X  #define type_is_pname(ptr)	(((ptr)->mflags2 & M2_PNAME) != 0L)
X--- 61,72 ----
X  #define is_wanderer(ptr)	(((ptr)->mflags2 & M2_WANDER) != 0L)
X  #define is_lord(ptr)		(((ptr)->mflags1 & M1_LORD) != 0L)
X  #define is_prince(ptr)		(((ptr)->mflags1 & M1_PRINCE) != 0L)
X! #ifdef INFERNO
X  #define is_ndemon(ptr)		(is_demon(ptr) && \
X  			 (((ptr)->mflags1 & (M1_LORD | M1_PRINCE)) == 0L))
X! #else
X  #define is_ndemon(ptr)		(ptr == &mons[PM_DEMON])
X! #endif
X  #define is_dlord(ptr)		(is_demon(ptr) && is_lord(ptr))
X  #define is_dprince(ptr)		(is_demon(ptr) && is_prince(ptr))
X  #define type_is_pname(ptr)	(((ptr)->mflags2 & M2_PNAME) != 0L)
X*** include/Old/monflag.h	Sun Nov 19 15:17:26 1989
X--- include/monflag.h	Fri Nov 10 17:01:08 1989
X***************
X*** 1,4 ****
X! /*	SCCS Id: @(#)monflag.h	3.0	89/06/23
X  /* NetHack may be freely redistributed.  See license for details. */
X  /* Copyright (c) 1989 Mike Threepoint */
X  
X--- 1,4 ----
X! /*	SCCS Id: @(#)monflag.h	3.0	89/11/09
X  /* NetHack may be freely redistributed.  See license for details. */
X  /* Copyright (c) 1989 Mike Threepoint */
X  
X***************
X*** 18,55 ****
X  #define MS_NEIGH	10	/* neighs, as an equine */
X  #define MS_WAIL 	11	/* wails, as a tortured soul */
X  #define MS_GURGLE	12	/* gurgles, as liquid or through saliva */
X  #define MS_SHRIEK	15	/* wakes up others */
X! #define MS_IMITATE	18	/* imitates others (leocrotta) */
X! #define MS_MUMBLE	19	/* says something or other */
X  #define MS_SEDUCE	20	/* "Hello, sailor." (Nymphs) */
X! #ifdef KOPS
X! #define MS_ARREST	21	/* "Stop in the name of the law!" (Kops) */
X! #endif
X! #define MS_LAUGH	22	/* grins, smiles, giggles, and laughs */
X! #define MS_JEER 	23	/* berates you */
X! #ifdef HARD
X! #define MS_BRIBE	24	/* asks for money, or berates you */
X  #endif
X! #define MS_CUSS 	25	/* really berates you (the Wiz) */
X  #ifdef ORACLE
X! #define MS_ORACLE	26	/* do a consultation */
X  #endif
X  #ifdef ALTARS
X! #define MS_PRIEST	27	/* ask for contribution; do cleansing */
X  #endif
X- #define MS_GUARD	28	/* "Please drop that gold and follow me." */
X- #define MS_NURSE	29	/* "Take off your shirt, please." */
X- #define MS_SELL 	30	/* demand payment, complain about shoplifters */
X- #define MS_DJINNI	31	/* "Thank you for freeing me!" */
X  #ifdef ARMY
X! #define MS_SOLDIER	32	/* army expressions */
X  #endif
X- #define MS_VAMPIRE	33	/* vampiric seduction, Vlad's exclamations */
X- #define MS_HUMANOID	34	/* generic traveling companion */
X- #define MS_ORC		MS_GRUNT	/* other intelligent brutes */
X  
X- #define M1_BIG		0x00000001L
X- #define M1_VSMALL	0x00000002L
X  #define M1_FLY		0x00000004L
X  #define M1_SWIM		0x00000008L
X  #define M1_WALLWALK	0x00000010L
X--- 18,54 ----
X  #define MS_NEIGH	10	/* neighs, as an equine */
X  #define MS_WAIL 	11	/* wails, as a tortured soul */
X  #define MS_GURGLE	12	/* gurgles, as liquid or through saliva */
X+ #define MS_BURBLE	13	/* burbles (jabberwock) */
X  #define MS_SHRIEK	15	/* wakes up others */
X! #define MS_LAUGH	17	/* grins, smiles, giggles, and laughs */
X! #define MS_MUMBLE	18	/* says something or other */
X! #define MS_IMITATE	19	/* imitates others (leocrotta) */
X  #define MS_SEDUCE	20	/* "Hello, sailor." (Nymphs) */
X! #define MS_VAMPIRE	21	/* vampiric seduction, Vlad's exclamations */
X! #define MS_ORC		MS_GRUNT	/* intelligent brutes */
X! #define MS_JEER 	24	/* berates you */
X! #ifdef INFERNO
X! #define MS_BRIBE	25	/* asks for money, or berates you */
X  #endif
X! #define MS_CUSS 	26	/* really berates you (the Wiz) */
X! #define MS_NURSE	27	/* "Take off your shirt, please." */
X! #define MS_DJINNI	28	/* "Thank you for freeing me!" */
X! #define MS_HUMANOID	29	/* generic traveling companion */
X! #define MS_GUARD	30	/* "Please drop that gold and follow me." */
X! #define MS_SELL 	31	/* demand payment, complain about shoplifters */
X  #ifdef ORACLE
X! #define MS_ORACLE	32	/* do a consultation */
X  #endif
X  #ifdef ALTARS
X! #define MS_PRIEST	33	/* ask for contribution; do cleansing */
X! #endif
X! #ifdef KOPS
X! #define MS_ARREST	34	/* "Stop in the name of the law!" (Kops) */
X  #endif
X  #ifdef ARMY
X! #define MS_SOLDIER	35	/* army expressions */
X  #endif
X  
X  #define M1_FLY		0x00000004L
X  #define M1_SWIM		0x00000008L
X  #define M1_WALLWALK	0x00000010L
X***************
X*** 105,109 ****
X--- 104,116 ----
X  #define M2_OMNIVORE	0x00300000L	/* eats both */
X  #define M2_THICK_HIDE	0x01000000L	/* has thick hide or scales */
X  #define M2_AMORPHOUS	0x02000000L	/* fluid; can slide under doors */
X+ 
X+ #define MZ_TINY		0		/* < 2' */
X+ #define MZ_SMALL 	1		/* 2-4' */
X+ #define MZ_MEDIUM	2		/* 4-7' */
X+ #define MZ_HUMAN	MZ_MEDIUM	/* human-sized */
X+ #define MZ_LARGE 	3		/* 7-12' */
X+ #define MZ_HUGE		4		/* 12-25' */
X+ #define MZ_GIGANTIC	7		/* off the scale */
X  
X  #endif /* MONFLAG_H */
X*** include/Old/monsym.h	Sun Nov 19 15:17:50 1989
X--- include/monsym.h	Fri Nov 17 19:33:10 1989
X***************
X*** 1,4 ****
X! /*	SCCS Id: @(#)makemon.c	3.0	88/04/11
X  /*	Monster symbols and creation information rev 1.0 */
X  /* NetHack may be freely redistributed.  See license for details. */
X  
X--- 1,4 ----
X! /*	SCCS Id: @(#)monsym.h	3.0	89/11/08
X  /*	Monster symbols and creation information rev 1.0 */
X  /* NetHack may be freely redistributed.  See license for details. */
X  
X***************
X*** 10,24 ****
X  #define	S_COCKATRICE	'c'
X  #define	S_DOG		'd'
X  #define	S_EYE		'e'
X! #define S_FELINE	'f'
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! #define	S_NAGA		'n'
X  #define	S_ORC		'o'
X  #define	S_PIERCER	'p'
X  #define	S_QUADRUPED	'q'
X--- 10,24 ----
X  #define	S_COCKATRICE	'c'
X  #define	S_DOG		'd'
X  #define	S_EYE		'e'
X! #define	S_FELINE	'f'
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_LEPRECHAUN	'l'
X  #define	S_MIMIC		'm'
X! #define	S_NYMPH 	'n'
X  #define	S_ORC		'o'
X  #define	S_PIERCER	'p'
X  #define	S_QUADRUPED	'q'
X***************
X*** 29,35 ****
X  #define	S_VORTEX	'v'
X  #define	S_WORM		'w'
X  #define	S_XAN		'x'
X! #define S_YLIGHT	'y'
X  #define	S_ZRUTY		'z'
X  #define	S_APE		'A'
X  #define	S_BAT		'B'
X--- 29,35 ----
X  #define	S_VORTEX	'v'
X  #define	S_WORM		'w'
X  #define	S_XAN		'x'
X! #define	S_YLIGHT	'y'
X  #define	S_ZRUTY		'z'
X  #define	S_APE		'A'
X  #define	S_BAT		'B'
X***************
X*** 42,50 ****
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! #define	S_NYMPH		'N'
X  #define	S_OGRE		'O'
X  #define	S_PUDDING	'P'
X  #define	S_QUANTMECH	'Q'
X--- 42,50 ----
X  #define	S_STALKER	'I'
X  #define	S_JABBERWOCK	'J'
X  #define	S_KOP		'K'
X! #define	S_LICH		'L'
X  #define	S_MUMMY		'M'
X! #define	S_NAGA		'N'
X  #define	S_OGRE		'O'
X  #define	S_PUDDING	'P'
X  #define	S_QUANTMECH	'Q'
X***************
X*** 59,68 ****
X  #define	S_ZOMBIE	'Z'
X  #define	S_HUMAN		'@'
X  #define	S_GHOST		' '
X! #define S_GOLEM		'\''
X  #define	S_DEMON		'&'
X  #define	S_EEL		';'
X! #define	S_CHAMELEON	':'
X  
X  #define	S_WORM_TAIL	'~'
X  #define	S_MIMIC_DEF	']'
X--- 59,68 ----
X  #define	S_ZOMBIE	'Z'
X  #define	S_HUMAN		'@'
X  #define	S_GHOST		' '
X! #define	S_GOLEM		'\''
X  #define	S_DEMON		'&'
X  #define	S_EEL		';'
X! #define	S_LIZARD	':'
X  
X  #define	S_WORM_TAIL	'~'
X  #define	S_MIMIC_DEF	']'
X*** include/Old/obj.h	Sun Nov 19 15:18:14 1989
X--- include/obj.h	Sun Nov 12 10:39:23 1989
X***************
X*** 1,4 ****
X! /*	SCCS Id: @(#)obj.h	3.0	88/04/12
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: @(#)obj.h	3.0	89/11/10
X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X  /* NetHack may be freely redistributed.  See license for details. */
X  
X***************
X*** 22,27 ****
X--- 22,28 ----
X  				   marks your eggs, spinach tins, key shapes
X  				   indicates statues have spellbooks inside
X  				   tells which fruit a fruit is
X+ 				   marks diluted potions
X  				   special for uball and amulet %% BAH */
X  #define N_LOX	10	/* # of key/lock shapes */
X  	char	olet;
X***************
X*** 31,39 ****
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  	Bitfield(known,1);	/* exact nature known */
X  	Bitfield(dknown,1);	/* color or text known */
X--- 32,40 ----
X  	Bitfield(oinvis,1);	/* not yet implemented */
X  	Bitfield(olocked,1);	/* object is locked */
X  #define recharged olocked	/* recharged once */
X! #define orotten olocked 	/* rotten food */
X  	Bitfield(otrapped,1);	/* container is trapped */
X! #define opoisoned otrapped	/* object (weapon) is coated with poison */
X  	Bitfield(odispl,1);
X  	Bitfield(known,1);	/* exact nature known */
X  	Bitfield(dknown,1);	/* color or text known */
X***************
X*** 42,51 ****
X  	Bitfield(blessed,1);
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--- 43,54 ----
X  	Bitfield(blessed,1);
X  	Bitfield(unpaid,1);	/* on some bill */
X  	Bitfield(rustfree,1);
X! #ifndef NO_SIGNAL
X! # define in_use rustfree	/* for magic items before useup items */
X! #endif
X  	Bitfield(no_charge,1);	/* if shk shouldn't charge for this */
X  	Bitfield(onamelth,6);
X+ 	unsigned oeaten;	/* nutrition left in food, if partly eaten */
X  	long age;		/* creation date */
X  	long owornmask;
X  
X*** include/Old/objclass.h	Sun Nov 19 15:18:27 1989
X--- include/objclass.h	Tue Nov  7 14:25:54 1989
X***************
X*** 47,54 ****
X  #define WP_BOW		1
X  #define WP_SLING	2
X  #define WP_CROSSBOW	3
X! #define	a_ac		oc_oc1	/* for armors - only used in ARM_BONUS */
X! #define ARM_BONUS(obj)	((10 - objects[obj->otyp].a_ac) + obj->spe)
X  #define	a_can		oc_oc2	/* for armors */
X  #define bits		oc_oc1	/* for wands */
X  				/* wands */
X--- 47,53 ----
X  #define WP_BOW		1
X  #define WP_SLING	2
X  #define WP_CROSSBOW	3
X! #define	a_ac		oc_oc1	/* for armors - used in ARM_BONUS in do.c */
X  #define	a_can		oc_oc2	/* for armors */
X  #define bits		oc_oc1	/* for wands */
X  				/* wands */
X***************
X*** 66,72 ****
X--- 65,80 ----
X  #endif
X  };
X  
X+ #if defined(MACOS) && !defined(MAKEDEFS_C)
X+ struct small_objclass{
X+ 	char *oc_name;		/* actual name */
X+ 	char *oc_descr;		/* description when name unknown */
X+ };
X+ extern struct small_objclass sm_obj[];
X+ extern struct objclass *objects;
X+ #else
X  extern struct objclass objects[];
X+ #endif    /* MACOS && !MAKEDEFS_C */
X  
X  /* definitions of all object-symbols */
X  
X***************
X*** 90,98 ****
X  #ifdef SPELLS
X  #define	SPBOOK_SYM	'+'	/* actually SPELL-book */
X  #endif
X- /* Other places with explicit knowledge of object symbols:
X-  * pager.c:	if(q == '%') pline("%%	a piece of food");
X-  */
X  
X  #ifdef TUTTI_FRUTTI
X  struct fruit {
X--- 98,103 ----
X*** include/Old/patchlevel.h	Sun Nov 19 15:18:44 1989
X--- include/patchlevel.h	Sun Nov 19 15:11:38 1989
X***************
X*** 48,55 ****
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--- 48,69 ----
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 (courtesy Kevin Darcy)
X   *  a handful of other bug fixes
X   */
X  
X! /*
X!  *  Patch 6, November 19, 1989
X!  *  add overlay support for MS-DOS (courtesy Pierre Martineau, Stephen
X!  *	Spackman, and Norm Meluch)
X!  *  refine Macintosh port
X!  *  different door states show as different symbols (courtesy Ari Huttunen)
X!  *  smarter drawbridges (courtesy Kevin Darcy)
X!  *  add CLIPPING and split INFERNO off HARD
X!  *  further refine eating code wrt picking up and resumption
X!  *  make first few levels easier, by adding :x monsters and increasing initial
X!  *	attribute points and hitting probability
X!  *  teach '/' about configurable symbols
X!  */
X! 
X! #define PATCHLEVEL	6
X*** include/Old/pcconf.h	Sun Nov 19 15:18:57 1989
X--- include/pcconf.h	Fri Nov 17 20:51:35 1989
X***************
X*** 10,22 ****
X  /* #define OS2_CODEVIEW /* define for OS/2 CodeView debugger,
X  			   otherwise path searches may fail (TH) */
X  
X  /*
X   *  The following options are configurable:
X   */
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--- 10,25 ----
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  
X+ #define OVERLAY 		/* MS DOS overlay manager - PGM */
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***************
X*** 24,37 ****
X  
X  #define RANDOM		/* have Berkeley random(3) */
X  
X! #define PATHLEN		64	/* maximum pathlength */
X  #define FILENAME	80	/* maximum filename length (conservative) */
X  #ifndef MSDOS_H
X! #include "msdos.h"	/* contains necessary externs for [os_name].c */
X  #endif
X! #define glo(x)	name_file(lock, (int)x)	/* name_file used for bones */
X  extern const char *configfile;
X- /*#define SHELL			/* via exec of COMMAND.COM */
X  
X  #ifdef DGK
X  /*	Selectable DGK options:
X--- 27,43 ----
X  
X  #define RANDOM		/* have Berkeley random(3) */
X  
X! #define SHELL		/* via exec of COMMAND.COM */
X! 
X! #endif /* TOS */
X! 
X! #define PATHLEN 	64	/* maximum pathlength */
X  #define FILENAME	80	/* maximum filename length (conservative) */
X  #ifndef MSDOS_H
X! #include "msdos.h"      /* contains necessary externs for [os_name].c */
X  #endif
X! #define glo(x)	name_file(lock, (int)x) /* name_file used for bones */
X  extern const char *configfile;
X  
X  #ifdef DGK
X  /*	Selectable DGK options:
X***************
X*** 41,47 ****
X  /*	Non-Selectable DGK options:
X   */
X  # define FROMPERM	 1	/* for ramdisk use */
X! # define TOPERM		 2	/* for ramdisk use */
X  
X  #endif /* DGK /**/
X  
X--- 47,53 ----
X  /*	Non-Selectable DGK options:
X   */
X  # define FROMPERM	 1	/* for ramdisk use */
X! # define TOPERM 	 2	/* for ramdisk use */
X  
X  #endif /* DGK /**/
X  
X***************
X*** 67,75 ****
X  #endif /* RANDOM */
X  
X  #ifdef __TURBOC__
X! #define	alloc	malloc
X  # if __TURBOC__ < 0x0200 /* version 2.0 has signal() */
X! #define	signal	ssignal
X  # endif
X  /* rename the next two functions - they clash with the Turbo C library */
X  #define getdate getdate_
X--- 73,81 ----
X  #endif /* RANDOM */
X  
X  #ifdef __TURBOC__
X! #define alloc	malloc
X  # if __TURBOC__ < 0x0200 /* version 2.0 has signal() */
X! #define signal	ssignal
X  # endif
X  /* rename the next two functions - they clash with the Turbo C library */
X  #define getdate getdate_
X***************
X*** 77,88 ****
X  #endif
X  
X  #ifndef TOS
X! #define	FCMASK	0660	/* file creation mask */
X  #endif
X  
X  #include <fcntl.h>
X  
X! #define	exit	msexit		/* do chdir first */
X  
X  #ifndef REDO
X  #undef	Getchar
X--- 83,94 ----
X  #endif
X  
X  #ifndef TOS
X! #define FCMASK	0660	/* file creation mask */
X  #endif
X  
X  #include <fcntl.h>
X  
X! #define exit	msexit		/* do chdir first */
X  
X  #ifndef REDO
X  #undef	Getchar
X*** include/Old/permonst.h	Sun Nov 19 15:19:11 1989
X--- include/permonst.h	Fri Nov 10 17:01:27 1989
X***************
X*** 47,53 ****
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--- 47,54 ----
X  	unsigned	cwt,			/* weight of corpse */
X  			cnutrit;		/* its nutritional value */
X  	short		pxlth;			/* length of extension */
X! 	uchar		msound; 		/* noise it makes (6 bits) */
X! 	uchar		msize;			/* physical size (3 bits) */
X  	long		mflags1,		/* boolean bitflags */
X  			mflags2;		/* more boolean bitflags */
X  # ifdef TEXTCOLOR
X*** include/Old/rm.h	Sun Nov 19 15:19:32 1989
X--- include/rm.h	Sun Nov  5 16:52:50 1989
X***************
X*** 10,17 ****
X--- 10,34 ----
X   * and generalized for NetHack's release 2 by Eric S. Raymond (eric@snark)
X   * building on Don G. Kneller's MS-DOS implementation. See options.c for
X   * the code that permits the user to set the contents of the symbol structure.
X+  *
X+  * The door representation was changed by Ari Huttunen(ahuttune@niksula.hut.fi)
X   */
X  
X+ /*
X+  * TLCORNER	TDWALL		TRCORNER
X+  * +- 		-+- 		-+
X+  * |  		 |  	 	 |
X+  *
X+  * TRWALL	CROSSWALL	TLWALL		HWALL
X+  * |  		 |  		 |
X+  * +- 		-+- 		-+		---
X+  * |  		 |  		 |
X+  *
X+  * BLCORNER	TUWALL		BRCORNER	VWALL
X+  * |  		 |  		 |		|
X+  * +- 		-+- 		-+		|
X+  */
X+ 
X  /* Level location types */
X  #define STONE		0
X  #define HWALL		1
X***************
X*** 46,61 ****
X   * these types are subject to change.
X   * Instead, use one of the macros below.
X   */
X  #define IS_WALL(typ)	((typ) && (typ) <= TRWALL)
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 ACCESSIBLE(typ)	((typ) >= DOOR)		/* good position */
X  #define IS_ROOM(typ)	((typ) >= ROOM)		/* ROOM, STAIRS, furniture.. */
X  #define ZAP_POS(typ)	((typ) >= POOL)
X  #define SPACE_POS(typ)	((typ) > DOOR)
X- #define IS_CORNER(typ)	((typ) >= TLCORNER && (typ) <= BRCORNER)
X- #define IS_T(typ)	((typ) >= CRWALL && (typ) <= TRWALL)
X  #define IS_POOL(typ)	((typ) >= POOL && (typ) <= DRAWBRIDGE_UP)
X  #define IS_THRONE(typ)	((typ) == THRONE)
X  #define IS_FOUNTAIN(typ) ((typ) == FOUNTAIN)
X--- 63,78 ----
X   * these types are subject to change.
X   * Instead, use one of the macros below.
X   */
X+ #ifndef STUPID_CPP	/* otherwise these macros are functions in prisym.c */
X  #define IS_WALL(typ)	((typ) && (typ) <= TRWALL)
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  #define SPACE_POS(typ)	((typ) > DOOR)
X  #define IS_POOL(typ)	((typ) >= POOL && (typ) <= DRAWBRIDGE_UP)
X  #define IS_THRONE(typ)	((typ) == THRONE)
X  #define IS_FOUNTAIN(typ) ((typ) == FOUNTAIN)
X***************
X*** 63,68 ****
X--- 80,86 ----
X  #define IS_ALTAR(typ)	((typ) == ALTAR)
X  #define IS_DRAWBRIDGE(typ) ((typ) == DRAWBRIDGE_UP || (typ) == DRAWBRIDGE_DOWN)
X  #define IS_FURNITURE(typ) ((typ) >= STAIRS && (typ) <= ALTAR)
X+ #endif
X  
X  /*
X   * The level-map symbols may be compiled in or defined at initialization time
X***************
X*** 69,129 ****
X   */
X  
X  /* screen symbols for using character graphics. */
X! struct symbols {
X!     unsigned char stone, vwall, hwall, tlcorn, trcorn, blcorn, brcorn;
X!     unsigned char crwall, tuwall, tdwall, tlwall, trwall;
X!     unsigned char vbeam, hbeam, lslant, rslant;
X!     unsigned char door, room, corr, upstair, dnstair, trap, web;
X!     unsigned char pool;
X!     unsigned char fountain;
X!     unsigned char sink;
X!     unsigned char throne;
X!     unsigned char altar;
X!     unsigned char upladder, dnladder, dbvwall, dbhwall;
X! };
X! extern struct symbols showsyms;
X  #ifdef REINCARNATION
X! extern struct symbols savesyms;
X  #endif
X! extern const struct symbols defsyms;
X  
X! #define STONE_SYM	showsyms.stone
X! #define VWALL_SYM	showsyms.vwall
X! #define HWALL_SYM	showsyms.hwall
X! #define TLCORN_SYM	showsyms.tlcorn
X! #define TRCORN_SYM	showsyms.trcorn
X! #define BLCORN_SYM	showsyms.blcorn
X! #define BRCORN_SYM	showsyms.brcorn
X! #define CRWALL_SYM	showsyms.crwall
X! #define TUWALL_SYM	showsyms.tuwall
X! #define TDWALL_SYM	showsyms.tdwall
X! #define TLWALL_SYM	showsyms.tlwall
X! #define TRWALL_SYM	showsyms.trwall
X! #define VBEAM_SYM	showsyms.vbeam
X! #define HBEAM_SYM	showsyms.hbeam
X! #define LSLANT_SYM	showsyms.lslant
X! #define RSLANT_SYM	showsyms.rslant
X! #define DOOR_SYM	showsyms.door
X! #define ROOM_SYM	showsyms.room
X! #define	CORR_SYM	showsyms.corr
X! #define UP_SYM		showsyms.upstair
X! #define DN_SYM		showsyms.dnstair
X! #define TRAP_SYM	showsyms.trap
X! #define WEB_SYM		showsyms.web
X! #define	POOL_SYM	showsyms.pool
X! #define FOUNTAIN_SYM	showsyms.fountain
X! #define SINK_SYM	showsyms.sink
X! #define THRONE_SYM	showsyms.throne
X! #define ALTAR_SYM	showsyms.altar
X! #define UPLADDER_SYM	showsyms.upladder
X! #define DNLADDER_SYM	showsyms.dnladder
X! #define DB_VWALL_SYM	showsyms.dbvwall
X! #define DB_HWALL_SYM	showsyms.dbhwall
X  
X  #define	ERRCHAR	']'
X  
X- #define MAXPCHARS	32	/* maximum number of mapped characters */
X- 
X  /*
X   * The 5 possible states of doors
X   */
X--- 87,177 ----
X   */
X  
X  /* screen symbols for using character graphics. */
X! #define S_stone		0
X! #define S_vwall		1
X! #define S_hwall		2
X! #define S_tlcorn	3
X! #define S_trcorn	4
X! #define S_blcorn	5
X! #define S_brcorn	6
X! #define S_crwall	7
X! #define S_tuwall	8
X! #define S_tdwall	9
X! #define S_tlwall	10
X! #define S_trwall	11
X! #define S_vbeam		12
X! #define S_hbeam		13
X! #define S_lslant	14
X! #define S_rslant	15
X! #define S_ndoor		16
X! #define S_vodoor	17
X! #define S_hodoor	18
X! #define S_cdoor		19
X! #define S_room		20
X! #define S_corr		21
X! #define S_upstair	22
X! #define S_dnstair	23
X! #define S_trap		24
X! #define S_web		25
X! #define S_pool		26
X! #define S_fountain	27
X! #define S_sink		28
X! #define S_throne	29
X! #define S_altar		30
X! #define S_upladder	31
X! #define S_dnladder	32
X! #define S_dbvwall	33
X! #define S_dbhwall	34
X! 
X! #define MAXPCHARS	35	/* maximum number of mapped characters */
X! 
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! extern symbol_array defsyms;
X  
X! #define STONE_SYM	showsyms[S_stone]
X! #define VWALL_SYM	showsyms[S_vwall]
X! #define HWALL_SYM	showsyms[S_hwall]
X! #define TLCORN_SYM	showsyms[S_tlcorn]
X! #define TRCORN_SYM	showsyms[S_trcorn]
X! #define BLCORN_SYM	showsyms[S_blcorn]
X! #define BRCORN_SYM	showsyms[S_brcorn]
X! #define CRWALL_SYM	showsyms[S_crwall]
X! #define TUWALL_SYM	showsyms[S_tuwall]
X! #define TDWALL_SYM	showsyms[S_tdwall]
X! #define TLWALL_SYM	showsyms[S_tlwall]
X! #define TRWALL_SYM	showsyms[S_trwall]
X! #define VBEAM_SYM	showsyms[S_vbeam]
X! #define HBEAM_SYM	showsyms[S_hbeam]
X! #define LSLANT_SYM	showsyms[S_lslant]
X! #define RSLANT_SYM	showsyms[S_rslant]
X! #define NO_DOOR_SYM	showsyms[S_ndoor]
X! #define H_OPEN_DOOR_SYM	showsyms[S_hodoor]
X! #define V_OPEN_DOOR_SYM	showsyms[S_vodoor]
X! #define CLOSED_DOOR_SYM	showsyms[S_cdoor]
X! #define ROOM_SYM	showsyms[S_room]
X! #define	CORR_SYM	showsyms[S_corr]
X! #define UP_SYM		showsyms[S_upstair]
X! #define DN_SYM		showsyms[S_dnstair]
X! #define TRAP_SYM	showsyms[S_trap]
X! #define WEB_SYM		showsyms[S_web]
X! #define	POOL_SYM	showsyms[S_pool]
X! #define FOUNTAIN_SYM	showsyms[S_fountain]
X! #define SINK_SYM	showsyms[S_sink]
X! #define THRONE_SYM	showsyms[S_throne]
X! #define ALTAR_SYM	showsyms[S_altar]
X! #define UPLADDER_SYM	showsyms[S_upladder]
X! #define DNLADDER_SYM	showsyms[S_dnladder]
X! #define DB_VWALL_SYM	showsyms[S_dbvwall]
X! #define DB_HWALL_SYM	showsyms[S_dbhwall]
X  
X  #define	ERRCHAR	']'
X  
X  /*
X   * The 5 possible states of doors
X   */
X***************
X*** 166,172 ****
X   */
X  #define DB_MOAT		0
X  #define DB_FLOOR	8
X! #define DB_UNDER	8	/* mask for underneath */
X  
X  /* 
X   * Some walls may be non diggable.
X--- 214,221 ----
X   */
X  #define DB_MOAT		0
X  #define DB_FLOOR	8
X! #define DB_ICE		16
X! #define DB_UNDER	24	/* mask for underneath */
X  
X  /* 
X   * Some walls may be non diggable.
X***************
X*** 182,198 ****
X  #define LA_DOWN 	2
X  
X  /*
X   * at() display character types, in order of precedence.
X   */
X  #define AT_APP		(uchar)0
X! /* 1-7 are specific overrides, see decl.h */
X  /* non-specific */
X! #define AT_ZAP		(uchar)8
X! #define AT_MON		(uchar)9
X  #define AT_U		AT_MON
X! #define AT_OBJ		(uchar)10
X  #define AT_GLD		AT_OBJ
X! #define AT_MAP		(uchar)11
X  
X  /*
X   * The structure describing a coordinate position.
X--- 231,258 ----
X  #define LA_DOWN 	2
X  
X  /*
X+  * Room areas may be iced pools,
X+  */
X+ #define ICED_POOL	8
X+ #define ICED_MOAT	16
X+ 
X+ 
X+ /*
X   * at() display character types, in order of precedence.
X   */
X+ #ifndef MAXCOLORS
X+ #define MAXCOLORS	1
X+ #endif
X+  
X  #define AT_APP		(uchar)0
X! /* 1-MAXCOLORS are specific overrides, see color.h */
X  /* non-specific */
X! #define AT_ZAP		(uchar)(MAXCOLORS+1)
X! #define AT_MON		(uchar)(MAXCOLORS+2)
X  #define AT_U		AT_MON
X! #define AT_OBJ		(uchar)(MAXCOLORS+3)
X  #define AT_GLD		AT_OBJ
X! #define AT_MAP		(uchar)(MAXCOLORS+4)
X  
X  /*
X   * The structure describing a coordinate position.
X***************
X*** 213,218 ****
X--- 273,280 ----
X  #define diggable	doormask
X  #define ladder		doormask
X  #define drawbridgemask	doormask
X+ #define looted		doormask
X+ #define icedpool	doormask
X  
X  #ifdef MACOS
X  typedef struct
X*** include/Old/sp_lev.h	Sun Nov 19 15:19:49 1989
X--- include/sp_lev.h	Tue Nov 14 20:33:13 1989
X***************
X*** 43,49 ****
X  
X  typedef struct {
X  	xchar x1, y1, x2, y2;
X! } dig;
X  
X  typedef struct {
X  	xchar x, y, up;
X--- 43,49 ----
X  
X  typedef struct {
X  	xchar x1, y1, x2, y2;
X! } digpos;
X  
X  typedef struct {
X  	xchar x, y, up;
X***************
X*** 80,86 ****
X  	char nwalk;
X  	walk **walks;
X  	char ndig;
X! 	dig **digs;
X  	char nlad;
X  	lad **lads;
X  #ifdef ALTARS
X--- 80,86 ----
X  	char nwalk;
X  	walk **walks;
X  	char ndig;
X! 	digpos **digs;
X  	char nlad;
X  	lad **lads;
X  #ifdef ALTARS
X*** /dev/null	Sun Nov 19 15:20:27 1989
X--- include/termcap.h	Fri Oct 27 18:13:49 1989
X***************
X*** 0 ****
X--- 1,19 ----
X+ /*	SCCS Id: @(#)termcap.h	3.0	89/10/27
X+ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1989. */
X+ /* NetHack may be freely redistributed.  See license for details. */
X+ 
X+ /* common #defines for pri.c and termcap.c */
X+ 
X+ #ifndef MSDOS
X+ # ifndef MACOS
X+ #  define TERMLIB	/* include termcap code */
X+ # endif
X+ #endif
X+ 
X+ /* might display need graphics code? */
X+ #if !defined(AMIGA) && !defined(TOS) && !defined(MACOS)
X+ # if defined(TERMLIB) || defined(DECRAINBOW) || defined(OS2)
X+ #  define ASCIIGRAPH
X+    extern boolean IBMgraphics;      /* does terminal use IBM extended ASCII? */
X+ # endif
X+ #endif
X*** include/Old/tosconf.h	Sun Nov 19 15:20:38 1989
X--- include/tosconf.h	Fri Nov 17 20:51:35 1989
X***************
X*** 13,20 ****
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 */
X! /* #define NO_SIGNAL */
X  
X  #ifdef __GNUC__
X  #define FCMASK	0666
X--- 13,20 ----
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***************
X*** 34,45 ****
X  #endif
X  
X  /* configurable options */
X! #define DGK
X! #define RANDOM
X! #define SHELL
X! #define TEXTCOLOR
X! #define TERMLIB
X  
X  #ifndef MSDOS_H
X  #include "msdos.h"
X  #endif
X--- 34,49 ----
X  #endif
X  
X  /* configurable options */
X! #define DGK			/* lots of enhancements 	*/
X! #define RANDOM			/* improved random numbers 	*/
X! #define SHELL			/* allow spawning of shell 	*/
X! #define TEXTCOLOR		/* allow color 			*/
X! #define TERMLIB			/* use termcap			*/
X  
X+ #ifndef TERMLIB
X+ #define ANSI_DEFAULT		/* use vt52 by default		*/
X+ #endif
X+ 
X  #ifndef MSDOS_H
X  #include "msdos.h"
X  #endif
X***************
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--- 50,55 ----
X  #ifndef PCCONF_H
X  #include "pcconf.h"	 	 /* remainder of stuff is same as the PC */
X  #endif
X! 
X  #endif /* TOSCONF_H /* */
X  #endif /* TOS /* */
X*** include/Old/tradstdc.h	Sun Nov 19 15:20:50 1989
X--- include/tradstdc.h	Fri Nov 17 20:51:18 1989
X***************
X*** 71,92 ****
X  #endif
X  #endif /* NEED_VARARGS */
X  
X! #if (defined(__STDC__) || defined(MSDOS)) && !defined(AMIGA)
X  
X  /* Used for robust ANSI parameter forward declarations:
X!  * int sprintf P((char *, const char *, ...));
X   *
X!  * P() is used to surround parameter list for functions with a fixed number
X!  * of arguments; V() is used for varying numbers of arguments.  Separate
X!  * macros are needed because ANSI will mix old-style declarations with
X!  * prototypes, except in the case of varargs.
X   */
X  
X! # define P(s)		s
X  # if defined(MSDOS) || defined(USE_STDARG)
X! #  define V(s)		s
X  # else
X! #  define V(s)		()
X  # endif
X  
X  # ifdef __TURBOC__	/* Cover for stupid Turbo C */
X--- 71,92 ----
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! #  define VDECL(f,p)	f()
X  # endif
X  
X  # ifdef __TURBOC__	/* Cover for stupid Turbo C */
X***************
X*** 102,109 ****
X  
X  #else /* __STDC__ */	/* a "traditional" C  compiler */
X  
X! # define P(s)		()
X! # define V(s)		()
X  
X  # ifndef genericptr_t
X  #  ifdef AMIGA
X--- 102,109 ----
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*** /dev/null	Sun Nov 19 15:21:01 1989
X--- include/trampoli.h	Fri Nov 17 20:45:01 1989
X***************
X*** 0 ****
X--- 1,241 ----
X+ /*	SCCS Id: @(#)trampoli.h 	3.0	89/11/15	  */
X+ /* Copyright (c) 1989, by Norm Meluch and Stephen Spackman	  */
X+ /* NetHack may be freely redistributed.  See license for details. */
X+ 
X+ #ifndef TRAMPOLI_H
X+ #define TRAMPOLI_H
X+ 
X+ #ifdef OVERLAY
X+ 
X+ /* ### apply.c ### */
X+ #define dig()     dig_()
X+ #define doapply() doapply_()
X+ #define dojump()  dojump_()
X+ #define dorub()   dorub_()
X+ 
X+ 
X+ /* ### cmd.c ### */
X+ #define doextcmd()         doextcmd_()
X+ #define doextlist()        doextlist_()
X+ #ifdef POLYSELF
X+ #define domonability()     domonability_()
X+ #endif /* POLYSELF */
X+ #define timed_occupation() timed_occupation_()
X+ #if defined(WIZARD) || defined(EXPLORE_MODE)
X+ #define wiz_attributes()   wiz_attributes_()
X+ #endif
X+ #ifdef WIZARD
X+ #define wiz_detect()       wiz_detect_()
X+ #define wiz_genesis()      wiz_genesis_()
X+ #define wiz_identify()     wiz_identify_()
X+ #define wiz_level_tele()   wiz_level_tele_()
X+ #define wiz_map()          wiz_map_()
X+ #define wiz_where()        wiz_where_()
X+ #define wiz_wish()         wiz_wish_()
X+ #endif
X+ 
X+ 
X+ /* ### do.c ### */
X+ #define doddrop()  doddrop_()
X+ #define dodown()   dodown_()
X+ #define dodrop()   dodrop_()
X+ #define donull()   donull_()
X+ #define doup()     doup_()
X+ #define dowipe()   dowipe_()
X+ #define drop(x)    drop_(x)
X+ #define wipeoff()  wipeoff_()
X+ 
X+ 
X+ /* ### do_name.c ### */
X+ #define ddocall()  ddocall_()
X+ #define do_mname() do_mname_()
X+ 
X+ 
X+ /* ### do_wear.c ### */
X+ #define Armor_off()   Armor_off_()
X+ #define Boots_off()   Boots_off_()
X+ #define Gloves_off()  Gloves_off_()
X+ #define Helmet_off()  Helmet_off_()
X+ #define Armor_on()    Armor_on_()
X+ #define Boots_on()    Boots_on_()
X+ #define Gloves_on()   Gloves_on_()
X+ #define Helmet_on()   Helmet_on_()
X+ #define doddoremarm() doddoremarm_()
X+ #define doputon()     doputon_()
X+ #define doremring()   doremring_()
X+ #define dotakeoff()   dotakeoff_()
X+ #define dowear()      dowear_()
X+ #define select_off(x) select_off_(x)
X+ #define take_off()    take_off_()
X+ 
X+ 
X+ /* ### dokick.c ### */
X+ #define dokick() dokick_()
X+ 
X+ 
X+ /* ### dothrow.c ### */
X+ #define dothrow() dothrow_()
X+ 
X+ 
X+ /* ### eat.c ### */
X+ #define Hear_again() Hear_again_()
X+ #define Meatdone()   Meatdone_()
X+ #define doeat()      doeat_()
X+ #define eatfood()    eatfood_()
X+ #define opentin()    opentin_()
X+ #define unfaint()    unfaint_()
X+ 
X+ 
X+ /* ### end.c ### */
X+ #define done2() done2_()
X+ 
X+ 
X+ /* ### engrave.c ### */
X+ #define doengrave() doengrave_()
X+ 
X+ 
X+ /* ### hack.c ### */
X+ #define dopickup() dopickup_()
X+ #define identify(x) identify_(x)
X+ 
X+ 
X+ /* ### invent.c ### */
X+ #define ckunpaid(x)  ckunpaid_(x)
X+ #define ddoinv()     ddoinv_()
X+ #define dolook()     dolook_()
X+ #define dopramulet() dopramulet_()
X+ #define doprarm()    doprarm_()
X+ #define doprgold()   doprgold_()
X+ #define doprring()   doprring_()
X+ #define doprtool()   doprtool_()
X+ #define doprwep()    doprwep_()
X+ #define dotypeinv()  dotypeinv_()
X+ 
X+ 
X+ /* ### ioctl.c ### */
X+ /*
X+ #ifdef UNIX
X+ #ifdef SUSPEND
X+ #define dosuspend() dosuspend_()
X+ #endif
X+ #endif
X+ */
X+ 
X+ 
X+ /* ### lock.c ### */
X+ #define doclose()   doclose_()
X+ #define doforce()   doforce_()
X+ #define doopen()    doopen_()
X+ #define forcelock() forcelock_()
X+ #define picklock()  picklock_()
X+ 
X+ 
X+ /* ### o_init.c ### */
X+ #define dodiscovered() dodiscovered_()
X+ 
X+ 
X+ /* ### objnam.c ### */
X+ #define doname(x)   doname_(x)
X+ #define xname(x)    xname_(x)
X+ 
X+ /* ### options.c ### */
X+ #define doset()          doset_()
X+ #define dotogglepickup() dotogglepickup_()
X+ 
X+ 
X+ /* ### pager.c ### */
X+ #define dohelp()     dohelp_()
X+ #define dohistory()  dohistory_()
X+ #ifdef UNIX
X+ #ifdef SHELL
X+ #define dosh()       dosh_()
X+ #endif
X+ #endif
X+ #define dowhatdoes() dowhatdoes_()
X+ #define dowhatis()   dowhatis_()
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+ #define out_container(x) out_container_(x)
X+ 
X+ 
X+ /* ### potion.c ### */
X+ #define dodrink() dodrink_()
X+ #define dodip()   dodip_()
X+ 
X+ 
X+ /* ### pray.c ### */
X+ #ifdef THEOLOGY
X+ #define dopray()      dopray_()
X+ #define dosacrifice() dosacrifice_()
X+ #endif /* THEOLOGY */
X+ #define doturn()      doturn_()
X+ 
X+ 
X+ /* ### pri.c ### */
X+ #define doredraw() doredraw_()
X+ 
X+ 
X+ /* ### read.c ### */
X+ #define doread() doread_()
X+ 
X+ 
X+ /* ### save.c ### */
X+ #define dosave() dosave_()
X+ 
X+ 
X+ /* ### search.c ### */
X+ #define doidtrap() doidtrap_()
X+ #define dosearch() dosearch_()
X+ 
X+ 
X+ /* ### shk.c ### */
X+ #define dopay() dopay_()
X+ 
X+ 
X+ /* ### sit.c ### */
X+ #define dosit() dosit_()
X+ 
X+ 
X+ /* ### sounds.c ### */
X+ #define dotalk() dotalk_()
X+ 
X+ 
X+ /* ### spell.c ### */
X+ #ifdef SPELLS
X+ #define learn()	learn_()
X+ #define docast()   docast_()
X+ #define dovspell() dovspell_()
X+ #endif
X+ 
X+ 
X+ /* ### steal.c ### */
X+ #define stealarm() stealarm_()
X+ 
X+ 
X+ /* ### topl.c ### */
X+ #define doredotopl() doredotopl_()
X+ 
X+ /* ### trap.c ### */
X+ #define dotele()     dotele_()
X+ #define dountrap()   dountrap_()
X+ #define float_down() float_down_()
X+ 
X+ /* ### version.c ### */
X+ #define doversion() doversion_()
X+ 
X+ /* ### wield.c ### */
X+ #define dowield() dowield_()
X+ 
X+ /* ### zap.c ### */
X+ #define bhitm(x, y) bhitm_(x, y)
X+ #define bhito(x, y) bhito_(x, y)
X+ #define dozap()     dozap_()
X+ 
X+ #endif /* OVERLAY */
X+ 
X+ #endif /* TRAMPOLI_H */
END_OF_FILE
if test 53394 -ne `wc -c <'patches06b'`; then
    echo shar: \"'patches06b'\" unpacked with wrong size!
fi
# end of 'patches06b'
fi
echo shar: End of archive 1 \(of 15\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 15 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