[comp.sources.games.bugs] NetHack 2.3 Update Pt. 02 of 12

mike@genpyr.UUCP (Mike Stephenson) (04/10/88)

---------------------------------cut here-------------------------------------
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	Makefile.3B2
#	nansi.doc
#	food.tbl
#	fount.tbl
#	monster.tbl
#	weapon.tbl
# This archive created: Mon Apr  4 08:52:23 1988
export PATH; PATH=/bin:$PATH
echo shar: extracting "'Makefile.3B2'" '(7625 characters)'
if test -f 'Makefile.3B2'
then
	echo shar: will not over-write existing file "'Makefile.3B2'"
else
cat << \SHAR_EOF > 'Makefile.3B2'
#	Hack or Quest Makefile.
#	SCCS Id: @(#)Makefile.unix	2.3	87/12/12

#
#	In config.h, define "UNIX", "SYSV", and "TERMINFO".
#
#	Also, "typedef short int" for schar and uchar.
#

# if you are cross-compiling (eg. from Xenix into a Dos enviornment)
# you will have to redefine these filenames.
MAIN = unixmain.c
TTY  = unixtty.c
UNIX = unixunix.c

# flags may have to be changed as required
CFLAGS = -O
LFLAGS =

# on some systems the termcap library is in -ltermcap
TERMLIB = -ltermlib
LLIBS   = -lmalloc

# make NetHack
GAME     = nethack
GAMEUID  = games
GAMEGRP  = bin

#	GAMEDIR also appears in config.h as "HACKDIR".
GAMEDIR  = /usr/games/lib/$(GAME)dir
SHELLDIR = /usr/games
MANDIR   = /usr/man/man6
MANEXT   = 6

HACKCSRC = alloc.c apply.c bones.c cmd.c decl.c do.c do_name.c do_wear.c\
	dog.c dogmove.c dothrow.c eat.c end.c engrave.c fight.c fountain.c\
	hack.c invent.c ioctl.c lev.c main.c makemon.c mhitu.c\
	mklev.c mkmaze.c mkobj.c mkshop.c mon.c monmove.c monst.c o_init.c\
	objnam.c options.c pager.c polyself.c potion.c pray.c pri.c\
	prisym.c read.c rip.c rnd.c rumors.c save.c search.c shk.c shknam.c\
	sit.c spell.c steal.c termcap.c timeout.c topl.c topten.c track.c\
	trap.c tty.c u_init.c unix.c vault.c version.c wield.c wizard.c\
	worm.c worn.c write.c zap.c

CSOURCES = $(HACKCSRC) makedefs.c

HSOURCES = config.h date.h edog.h eshk.h extern.h flag.h func_tab.h\
	gen.h gold.h hack.h mfndpos.h mkroom.h monst.h msdos.h\
	obj.h objclass.h objects.h onames.h permonst.h rm.h\
	spell.h trap.h wseg.h you.h

SOURCES = $(CSOURCES) $(HSOURCES)

SPECIFICS = main.o tty.o unix.o
AUX = help hh nethack.6 nethack.sh
VARAUX = data rumors

DISTR = $(SOURCES) $(AUX) $(VARAUX) README.OLD README\
	Makefile Makefile.pc Make.ini

HOBJ = alloc.o apply.o bones.o cmd.o decl.o do.o do_name.o do_wear.o\
	dog.o dogmove.o dothrow.o eat.o end.o engrave.o fight.o fountain.o\
	hack.o invent.o ioctl.o lev.o main.o makemon.o mhitu.o\
	mklev.o mkmaze.o mkobj.o mkshop.o mon.o monmove.o monst.o o_init.o\
	objnam.o options.o pager.o polyself.o potion.o pray.o pri.o\
	prisym.o read.o rip.o rnd.o rumors.o save.o search.o shk.o shknam.o\
	sit.o spell.o steal.o termcap.o timeout.o topl.o topten.o track.o\
	trap.o tty.o u_init.o unix.o vault.o version.o wield.o wizard.o\
	worm.o worn.o write.o zap.o

$(GAME):	$(SPECIFICS) $(HOBJ) Makefile
	@echo "Loading ..."
	@cc $(LFLAGS) -o $(GAME) $(HOBJ) $(TERMLIB) $(LLIBS)

all:	$(GAME) Guidebook lint
	@echo "Done."

Guidebook:	Guidebook.mn
	nroff -mn Guidebook.mn > Guidebook

makedefs:	makedefs.c alloc.o config.h
	cc ${CFLAGS} -o makedefs alloc.o makedefs.c

RUMORFILES= rumors.base rumors.kaa rumors.mrx

rumors:	config.h $(RUMORFILES) makedefs
	./makedefs -r

data:	config.h data.base makedefs
	./makedefs -d

date.h:	$(SOURCES) makedefs
	./makedefs -D

trap.h:	config.h makedefs
	./makedefs -t

onames.h:	makedefs objects.h
	./makedefs -o

main.o:

main.c:	unixmain.c hack.h
	cp $(MAIN) main.c

tty.o:

tty.c:	unixtty.c hack.h func_tab.h
	cp $(TTY) tty.c

unix.o:

unix.c:	unixunix.c hack.h mkroom.h
	cp $(UNIX) unix.c

lint:
# lint cannot have -p here because (i) capitals are meaningful:
# [Ww]izard, (ii) identifiers may coincide in the first six places:
# doweararm() versus dowearring().
# _flsbuf comes from <stdio.h>, a bug in the system libraries.
	@echo lint -axbh -DLINT ...
	@lint -axbh -DLINT $(HACKCSRC) | sed '/_flsbuf/d'


diff:
	@- for i in $(SOURCES) $(AUX) ; do \
		cmp -s $$i $D/$$i || \
		( echo diff $D/$$i $$i ; diff $D/$$i $$i ; echo ) ; done

distribution: Makefile
	@- for i in READ_ME $(SOURCES) $(AUX) Makefile date.h onames.h\
		; do \
		cmp -s $$i $D/$$i || \
		( echo cp $$i $D ; cp $$i $D ) ; done
# the distribution directory also contains the empty files perm and record.

initial:
	-rm -rf $(GAMEDIR)
	-mkdir $(SHELLDIR)
	mkdir $(GAMEDIR) $(GAMEDIR)/save
	touch $(GAMEDIR)/perm
	touch $(GAMEDIR)/record
	touch $(GAMEDIR)/logfile
	chown $(GAMEUID) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/*
	chgrp $(GAMEGRP) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/*
	chmod 666 $(GAMEDIR)/*
	chmod 777 $(GAMEDIR) $(GAMEDIR)/save

install: $(VARAUX) $(GAME)
	-mkdir $(GAMEDIR)
	-mkdir $(GAMEDIR)/save
	-rm -f $(GAMEDIR)/$(GAME)
	-rm -f $(GAMEDIR)/bones* $(GAMEDIR)/alock* $(GAMEDIR)/wizard*
	-rm -f $(GAMEDIR)/save/*
	touch $(GAMEDIR)/perm $(GAMEDIR)/record
	cp help hh rumors data $(GAMEDIR)
	cp $(GAME).sh $(SHELLDIR)/$(GAME)
	cp $(GAME) $(GAMEDIR)/$(GAME)
	chown $(GAMEUID) $(SHELLDIR)/$(GAME) $(GAMEDIR)/*
	chgrp $(GAMEGRP) $(SHELLDIR)/$(GAME) $(GAMEDIR)/*
	chmod 0755 $(SHELLDIR)/$(GAME)
	chmod 04755 $(GAMEDIR)/$(GAME)
	-cp nethack.6 $(MANDIR)/$(GAME).$(MANEXT)

debug:
	ln $(GAMEDIR)/$(GAME) a.out
	ln $(GAMEDIR)/core core

tags: $(SOURCES)
	@echo ctags -tw ...
	@ctags -tw $(SOURCES)
  
clean:
	rm -f *.o

spotless: clean
	rm -f a.out core $(GAME) makedefs
	rm -f Makefile $(VARAUX) main.c tty.c unix.c

depend:
# For the moment we are lazy and disregard /usr/include files because
# the sources contain them conditionally. Perhaps we should use cpp.
#		( /bin/grep '^#[ 	]*include' $$i | sed -n \
#			-e 's,<\(.*\)>,"/usr/include/\1",' \
#
	for i in ${CSOURCES}; do \
		( /bin/grep '^#[ 	]*include[ 	]*"' $$i | sed -n \
			-e 's/[^"]*"\([^"]*\)".*/\1/' \
			-e H -e '$$g' -e '$$s/\n/ /g' \
			-e '$$s/.*/'$$i': &/' -e '$$s/\.c:/.o:/p' \
			>> makedep); done
	for i in ${HSOURCES}; do \
		( /bin/grep '^#[ 	]*include[ 	]*"' $$i | sed -n \
			-e 's/[^"]*"\([^"]*\)".*/\1/' \
			-e H -e '$$g' -e '$$s/\n/ /g' \
			-e '$$s/.*/'$$i': &\
				touch '$$i/p \
			>> makedep); done
	@echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
	@echo '$$r makedep' >>eddep
	@echo 'w' >>eddep
	@cp Makefile Makefile.bak
	ed - Makefile < eddep
	@rm -f eddep makedep
	@echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
	@echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
	@echo '# see make depend above' >> Makefile
	- diff Makefile Makefile.bak
	@rm -f Makefile.bak

# DO NOT DELETE THIS LINE

decl.o:  hack.h mkroom.h
apply.o:  hack.h edog.h mkroom.h
bones.o:  hack.h
hack.o:  hack.h
cmd.o:  hack.h func_tab.h
do.o:  hack.h
do_name.o:  hack.h
do_wear.o:  hack.h
dog.o:  hack.h edog.h mkroom.h
dogmove.o:  hack.h mfndpos.h edog.h mkroom.h
dothrow.o:  hack.h
eat.o:  hack.h
end.o:  hack.h
engrave.o:  hack.h
fight.o:  hack.h
fountain.o:  hack.h mkroom.h
invent.o:  hack.h wseg.h
ioctl.o:  config.h
lev.o:  hack.h mkroom.h wseg.h
makemon.o:  hack.h
mhitu.o:  hack.h
mklev.o:  hack.h mkroom.h
mkmaze.o:  hack.h mkroom.h
mkobj.o:  hack.h
mkshop.o:  hack.h mkroom.h eshk.h
mon.o:  hack.h mfndpos.h
monmove.o:  hack.h mfndpos.h
monst.o:  hack.h eshk.h
o_init.o:  config.h objects.h onames.h
objnam.o:  hack.h
options.o:  hack.h
pager.o:  hack.h
polyself.o: hack.h
potion.o:  hack.h
pray.o:  hack.h
pri.o:  hack.h
prisym.o:  hack.h wseg.h
read.o:  hack.h
rip.o:  hack.h
rumors.o:  hack.h
save.o:  hack.h
search.o:  hack.h
shk.o:  hack.h mfndpos.h mkroom.h eshk.h
shknam.o:  hack.h
sit.o: hack.h
spell.o:  hack.h
steal.o:  hack.h
termcap.o:  hack.h
timeout.o:  hack.h
topl.o:  hack.h
topten.o:  hack.h
track.o:  hack.h
trap.o:  hack.h edog.h mkroom.h
u_init.o:  hack.h
vault.o:  hack.h mkroom.h
wield.o:  hack.h
wizard.o:  hack.h
worm.o:  hack.h wseg.h
worn.o:  hack.h
write.o:  hack.h
zap.o:  hack.h
version.o:  hack.h date.h
extern.h: config.h spell.h obj.h
	touch extern.h
hack.h: extern.h flag.h gold.h monst.h objclass.h rm.h trap.h you.h 
	touch hack.h
objects.h:  config.h objclass.h
	touch objects.h
you.h: config.h onames.h permonst.h 
	touch you.h
# DEPENDENCIES MUST END AT END OF FILE
# IF YOU PUT STUFF HERE IT WILL GO AWAY
# see make depend above
SHAR_EOF
if test 7625 -ne "`wc -c < 'Makefile.3B2'`"
then
	echo shar: error transmitting "'Makefile.3B2'" '(should have been 7625 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'nansi.doc'" '(9370 characters)'
if test -f 'nansi.doc'
then
	echo shar: will not over-write existing file "'nansi.doc'"
else
cat << \SHAR_EOF > 'nansi.doc'
From utzoo!linus!harvard!rochester!srs!dan Wed Dec  9 21:22:38 1987
Received: by genat.UUCP (5.52/4.7)
	id AA12320; Wed, 9 Dec 87 21:22:29 EST
Received: by linus.research (3.2/4.7)
	id AA14176; Wed, 9 Dec 87 18:42:24 EST
From: <linus!harvard!rochester!srs!dan>
Posted-Date: Fri, 4 Dec 87 11:43:38 EST
Received: by harvard.harvard.edu; Mon, 7 Dec 87 19:39:35 EST
Received: by sol.cs.rochester.edu (3.2/h) id AA14555; Fri, 4 Dec 87 15:52:13 EST
Received: from rem.srs.com by srs.com (3.2/SMI-3.2)
	id AA14965; Fri, 4 Dec 87 11:43:43 EST
Received: by rem.srs.com (3.2/SMI-3.2)
	id AA00445; Fri, 4 Dec 87 11:43:38 EST
Date: Fri, 4 Dec 87 11:43:38 EST
Message-Id: <8712041643.AA00445@rem.srs.com>
To: rochester!harvard!linus!utzoo!genat!mike,
        rochester!harvard!linus!utzoo!genat!tekred!billr
Subject: nansi docs

*sigh*
Gee, guys, you could have given me some warning...
Anyway, here's the documentation for Nansi; perhaps you can poke it
in the next patch distribution.
Thanks,
   Dan Kegel
nansi	- enhanced MS-DOS ansi console driver

SYNOPSIS
	Include in \config.sys the line
		device=nansi.sys

DESCRIPTION
	Nansi.sys is a console driver which understands ANSI control sequences.
	It has several advantages over ANSI.SYS (the driver supplied with DOS):
	1. It supports new escape sequences (see below).
	2. It provides MUCH faster output under certain conditions.
	3. It supports the 43-line mode of the EGA.
	4. The darned bell is now 1/4 second instead of 1/2 second long.

	What a console driver does:
	When you, for example, type
		C:> type foo.txt
	COMMAND.COM opens the file foo.txt, reads it, and writes it to
	the console driver, which puts it up on the screen.

	Both ansi.sys and nansi.sys use IBM Video BIOS to control the screen.
	However, nansi.sys bypasses BIOS if the screen is in a text mode; this
	allows much faster operation under certain conditions.

	While putting text up on the screen, (n)ansi.sys keeps a lookout for
	the escape character (chr(27), known as ESC); this character signals
	the start of a terminal control sequence.
	Terminal control sequences follow the format
		ESC [ param; param; ...; param cmd
	where
		ESC	is the escape character chr$(27).
		[	is the left bracket character.
		param	is an ASCII decimal number, or a string in quotes.
		cmd	is a case-specific letter identifying the command.
	Usually, zero, one, or two parameters are given.  If parameters
	are omitted, they usually default to 1; however, some commands
	(KKR and DKOCT) treat the no-parameter case specially.
	Spaces are not allowed between parameters.

	For example, both ESC[1;1H and ESC[H send the cursor to the home
	position (1,1), which is the upper left.

	Either single or double quotes may be used to quote a string.
	Each character inside a quoted string is equivalent to one numeric
	parameter.  Quoted strings are normally used only for the Keyboard
	Key Reassignment command.

Control Sequences
	The following table lists the sequences understood by nansi.sys.
	Differences between nansi.sys and the standard ansi.sys are marked
	with a vertical bar (|).

Cursor Positioning
Short	Long name		Format		Notes
CUP	cursor position		ESC[y;xH	Sets cursor position.
HVP	cursor position		ESC[y;xf	Same as CUP; not recommended.
CUU	cursor up		ESC[nA		n = # of lines to move
CUD	cursor down		ESC[nB
CUF	cursor forward		ESC[nC		n = # of columns to move
CUB	cursor backward		ESC[nD
DSR	Device Status, Report!	ESC[6n		Find out cursor position.
CPR	Cursor Position report	ESC[y;xR<CR>	Response to DSR, as if typed.
SCP	Save Cursor Position	ESC[s		Not nestable.
RCP	Restore Cursor Position ESC[u

Editing
ED	Erase in Display	ESC[2J	Clears screen.
EL	Erase in Line		ESC[K	Clears to end of line.
IL  |	Insert Lines		ESC[nL	Inserts n blank lines at cursor line.
DL  |	Delete Lines		ESC[nM	Deletes n lines, including cursor line.
ICH |	Insert Characters	ESC[n@	Inserts n blank chars at cursor.
DCH |	Delete Characters	ESC[nP	Deletes n chars, including cursor char.


Mode-Setting
SGR	Set Graphics Rendition	ESC[n;n;...nm	See character attribute table.
SM	Set Mode		ESC[=nh		See screen mode table.
RM	Reset Mode		ESC[=nl		See screen mode table.
IBMKKR	Keyboard Key Reass.	ESC["string"p
	The first char of the string gives the key to redefine; the rest
	of the string is the key's new value.
	To specify unprintable chars, give the ASCII value of the char
	outside of quotes, as a normal parameter.
	IBM function keys are two byte strings; see the IBM Basic manual.
	For instance, ESC[0;";dir a:";13;p redefines function key 1 to
	have the value "dir a:" followed by the ENTER key.
      | If no parameters given, all keys are reset to their default values.

DKOCT | Output char translate	ESC[n;ny
      | When first char is encountered in output request, it is replaced with
      | the second char.  This might be useful for previewing text before
      | sending it to a printer with a funny print wheel.
      | If no parameters are given, all chars are reset to normal.


Character Attributes
	The Set Graphics Rendition command is used to select foreground
	and background colors or attributes.
	When you use multiple parameters, they are executed in sequence, and
	the effects are cumulative.
	   Attrib code		Value
		0		All attributes off (normal white on black)
		1		Bold
		4		Underline
		5		Blink
		7		Reverse Video
		8		Invisible (but why?)
		30-37		foregnd blk/red/grn/yel/blu/magenta/cyan/white
		40-47		background

Screen Modes
	The IBM BIOS supports several video modes; the codes given in the
	BIOS documentation are used as parameters to the Set Mode command.
      | (In bitmap modes, the cursor is simulated with a small blob (^V).)
	    Mode Code		Value
		0		text 40x25 Black & White
		1		text 40x25 Color
		2		text 80x25 Black & White
		3		text 80x25 Color
		4		bitmap 320x200 4 bits/pixel
		5		bitmap 320x200 1 bit/pixel
		6		bitmap 640x200 1 bit/pixel
		7		(cursor wrap kludge)
		13		bitmap 320x200 4 bits/pixel
		14		bitmap 640x200 4 bits/pixel
		15		[ IBM Monochrome display 640x350 2 bits/pixel?]
		16		bitmap 640x350 4 bits/pixel [with full 256K]
	Mode 7 is an unfortunate kludge; Setting mode 7 tells the cursor
	to wrap around to the next line when it passes the end of a line;
	Resetting mode 7 tells the cursor to not wrap, but rather stay put.
      | If your computer has the Enhanced Graphics Adaptor, modes between
      | 8 and 15 are also supported; see the EGA BIOS for info.
      | The EGA also lets you use a shorter character cell in text modes
      | in order to squeeze 43 lines of text out of the 25-line text modes.
      | To enter 43 line mode, set the desired 25-line text mode (0 to 3),
      | then Set Mode 43.  For instance: ESC[=3h ESC[=43h.
      | To exit 43 line mode, set the desired 25-line text mode again.
      | Nansi.sys ignores mode 43 unless there is an EGA on your computer.

Faster Output
      | Any program that sets the console to RAW mode, and buffers its
      | output properly, can achieve extremely high screen update speeds in
      | return for giving up the special functions of the keys ^C, ^S, and ^P.
      | See IOCTL in the MS-DOS 3.x Technical Reference for more info.
	Also, a small improvement in speed may be noticed with some
	programs that use the DOS console in normal mode, as this driver
	efficiently implements the (standard but undocumented) INT 29h
	most-favored-device putchar used by DOS.

EXAMPLES
	See the files setraw.* for Macro Assembler, Lattice C,
	and Microsoft C routines for entering and leaving raw mode.

	The files mode*.txt included with nansi.sys in the library
	new_ansi.lbr contain the Set Mode sequences to set various
	screen modes; for instance, to try out 43 line mode, type
		C:> type MODE43.TXT
	[ To get back to normality, type the file "mode3.txt"; don't use
	  the mode command, as that doesn't let nansi know what happened...]

	The programs view.com and more.com are demos of this driver's
	blinding screen update speed; refer to view.doc and more.doc for
	details.  Briefly, typing
		C:> more foo.txt
	shows you the file foo.txt, pausing every 24 lines for you to hit
	the spacebar.  Typing
		C:> view foo.txt
	shows you the first page of the file foo.txt; typing PgUp or PgDn moves
	you backwards or forwards in the file; typing 'q' exits to DOS.

BUGS
	Insert and delete character do not work in graphics modes.

	Graphics mode writing is slow.

	In graphics mode, the simulated cursor slows down single-char
	writes and screws up CED.COM; there should be a way to turn it off.

	Does not support erase-to-end-of-screen and other useful functions.

	Cursor Position Report has a carriage return in it, which is what
	ansi.sys does, but is nonstandard.

	When using 43 line mode, typing MODE CO80 will get you back
	to 25 line mode- but NANSI will still scroll as if there were 43
	lines!  You have to use the SET MODE escape sequence instead of MODE.

Version
	(The version number can be found by typing TYPE NANSI.SYS.)
	This version, 2.2, created February 1986.
	A later version is now (April '87) in the works.

	Problems should	be reported to Daniel Kegel:
	17 Mulberry St., Rochester, NY 14620
		    ...seismo!rochester!srs!dan
	Your suggestions for improvement would be most welcome.

NOTE
	This program may be distributed for educational and personal use
	only.  Commercial use is verboten; get in touch with the author.



SHAR_EOF
if test 9370 -ne "`wc -c < 'nansi.doc'`"
then
	echo shar: error transmitting "'nansi.doc'" '(should have been 9370 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'food.tbl'" '(2496 characters)'
if test -f 'food.tbl'
then
	echo shar: will not over-write existing file "'food.tbl'"
else
cat << \SHAR_EOF > 'food.tbl'
.TS
tab (#),center,expand,box;
l c c c c
l | n n n | l.
Name#Chance#Weight#Energy#Remarks
_
food ration #46#4#800
tripe ration#16#2#200#50% chance of vomiting.
pancake#3#1#200
dead lizard#3#1#40#Eat to avoid turning to stone.
fortune cookie#7#1#40
carrot#2#1#50
slice of pizza#5#1#250
cream pie#3#1#100
tins:#7#1#0
- spinach#50#7#600#Adds strength
- peaches#8#8#40
- salmon#8#7#60#Slippery hands for 1-15 turns
- apple juice#8#7#20
- substance#8#7#500#Tastes awful, adds experience.
- rotten meat#8#7#-50#Causes vomiting.
- empty can#8#7#0
orange#1#1#80
apple#1#1#50
pear#1#1#50
melon#1#1#100
banana#1#1#80
candy bar#1#1#100
egg#1#1#80
clove of garlic#1#1#40#Wield against vampires.
lump of royal jelly #0#1#200#Cures xans, strength +
.TE
.TS H
tab (#),center,expand,box;
l c c c 
l | n n | l.
Name#Weight#Energy#Remarks
_
.TH
dead human#40#400#Permanent aggravate monster.
dead giant ant#3#30#Poisonous.
dead giant bat#3#30#Confusion.
dead centaur#50#500
dead dragon#150#1500#Fire resistance.
dead floating eye#1#10#Telepathy, damage
dead freezing sphere#1#10#Cold resistance.
dead gnome#10#100
dead hobgoblin#20#200
dead stalker#40#400#See invisible.
dead jackal#10#100
dead kobold#10#100#Poisonous.
dead leprechaun#40#400#Teleport ability, damage. 
dead mimic#40#400#Mimic a treasure chest.
dead nymph#40#400#Teleport ability, damage. 
dead orc#20#200#Damage.
dead purple worm#70#700#Damage.
dead quantum mechanic#20#200#Teleport ability, damage.
dead rust monster#50#500#Damage.
dead snake#10#100#Poisonous.
dead troll#40#400
dead umber hulk#50#500#Damage.
dead vampire#40#400Poisonous.
dead wraith#1#10#Gain level.
dead xorn#70#700
dead yeti#70#700#Cold resistance.
dead zombie#3#30
dead acid blob#3#30#Poisonous.
dead giant beetle#1#10#Poisonous.
dead cockatrice#3#30#Instant death.
dead dog#20#200#Aggravate monsters.
dead ettin#3#30
dead fog cloud#1#10
dead gelatinous cube#10#100
dead homunculus#20#200#Poisonous.
dead imp#1#10
dead jaguar#30#300#Gain level?
dead killer bee#1#10#Poison resistance.
dead leocrotta#50#500
dead minotaur#70#700# 
dead nurse#40#400#Heal, aggravate monsters.
dead owlbear#70#700
dead piercer#20#200
dead quivering blob#10#100
dead giant rat#3#30
dead giant scorpion#10#100#Poisonous.
dead tengu#30#300#Teleport ability.
dead unicorn#30#300#Damage.
dead violet fungus#10#100#Hallucinogenic.
dead long worm#50#500
dead xan#30#300#Damage.
dead yellow light#1#10#Confusion, vision++
dead zruty#60#600#Damage.
dead giant#70#700#Strength++.
dead daemon#80#800
.TE
SHAR_EOF
if test 2496 -ne "`wc -c < 'food.tbl'`"
then
	echo shar: error transmitting "'food.tbl'" '(should have been 2496 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'fount.tbl'" '(1943 characters)'
if test -f 'fount.tbl'
then
	echo shar: will not over-write existing file "'fount.tbl'"
else
cat << \SHAR_EOF > 'fount.tbl'
.S 9 10
.TS H
tab (#), center, expand, box;
c c
l | l.
Message#Effect
_
.TH
``Good Lord!  An endless stream of snakes pours forth!''#3-4 snakes appear
``The fountain bubbles furiously for a moment, then calms.''#makemon failed
_
``You have unleashed a water demon!''#Infrequent, but dangerous
``Grateful for his release, he grants you a wish!''#Very unlikely (3%)
_
``You have attracted a water nymph!''#Nymph appears, will steal
``A large bubble rises to the surface and pops.''#makemon failed
_
``Water gushes forth from the overflowing fountain!''#Drowning pools
_
``You spot a gem in the sparkling waters!''#Real gem appears
_
``The fountain dries up!''#Usually happens after 2-5 dips
_
``The cool draught refreshes you.''#Decreases hunger
_
``The water is foul!  You gag and vomit.''#Hunger
``What a relief!''#Cures if already sick
_
``The water is contaminated!''#Poison damage, - strength
``Perhaps it is run off from the nearby orange farm.''#If poison resistant
_
``This water's no good!''#Curses an object, hunger
_
``You see an image of someone stalking you. But it disappears.''#Permanent see invisible
_
``You sense the presence of monsters.''#Detect monster
``You feel oddly disturbed.''#If no monsters
_
``This water gives you bad breath!''#Cause fear
_
``Your weapon rusts somewhat.''#-1 damage (swords only)
``Your weapon looks quite rusted.''#If < -6 already
_
``A murky hand from the depths reaches up to bless the sword.''#+5 Excalibur
``As the hand retreats, the fountain disappears!''
_
``Well, it looks wet now.''#Sword may be stickeycursed
``The water glows for a moment.''#Lift curse from weapon
``A feeling of loss comes over you.''#Missed lift curse
_
``Your thirst is quenched.''#No effect
``A strange tingling runs up your arm.''#No effect
``You feel a sudden chill.''#No effect
``An urge to take a bath nearly overwhelms you.''#No effect
``Far below you, you see coins glistening in the water.''#No effect
.TE
.S
SHAR_EOF
if test 1943 -ne "`wc -c < 'fount.tbl'`"
then
	echo shar: error transmitting "'fount.tbl'" '(should have been 1943 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'monster.tbl'" '(2364 characters)'
if test -f 'monster.tbl'
then
	echo shar: will not over-write existing file "'monster.tbl'"
else
cat << \SHAR_EOF > 'monster.tbl'
The descriptions are as follows:
.VL 10
.LI \fImlev\fR
Monster's level.
.LI \fImmove\fR
Non-Spelunkers have a \fImmove\fR of 12.
.LI \fIac\fR
Monster's armor class.
.LI Damage
Monster's basic attack on you.  Note that quasits, jaguars, dragons,
etc. have extra attacks.
.LI *
Whether monster is large.  Determines weapon damage.
.LI \(dg
Monsters specific to NetHack.
.LE
.TS H
tab (#),center,expand,box;
c c c c c c c
c l | n n n | l n.
Symbol#Monster#\fImlev\fR#\fImmove\fR#\fIac\fR#Damage#XP
_
.TH
A#giant ant*#3#18#3#1d6#16
B#bat#1#22#8#1d4#2
C#centaur*#4#18#4#1d6#17
D#dragon*#10#9#-1#3d10+2(1d8)#257
E#floating eye#2#1#9#0d0#5
F#freezing sphere#2#13#4#6d6#5
G#gnome#1#6#5#1d6#2
H#hobgoblin#1#9#5#1d8#2
I#invisible stalker*#8#12#3#4d4#131
J#jackal#0#12#7#1d2#1
K#keystone kop\(dg#1#6#7#1d4#
K#kobold#1#6#7#1d4#2
L#leprechaun#5#15#8#1d2#26
M#mimic#7#3#7#3d4#100
N#nymph#6#12#9#1d2#37
O#orc#2#9#6#1d8#5
P#purple worm*#15#9#6#2d8#411
Q#quantum mechanic\(dg#6#12#3#1d4#
Q#quasit#3#15#3#1d4+2(1d2)#10
R#rust monster#10#18#3#0d0#171
S#snake*#4#15#3#1d6#25
T#troll*#7#12#4#2d6+2(1d6)#114
U#umber hulk*#9#6#2#2d10+2(3d4)#169
V#vampire*#8#12#1#1d6#199
W#wraith#5#12#5#1d6#36
X#xorn#8#9#-2#4d6+3(1d6)#149
Y#yeti*#5#15#6#2(1d6)#26
Z#zombie#2#6#8#1d8#5
a#acid blob#2#3#8#0d0#9
b#giant beetle*#4#6#4#3d4#17
c#cockatrice#4#6#6#1d3#25
d#dog#4#16#5#1d6#17
d#large dog*#6#15#4#2d4#37
d#little dog#2#18#6#1d6#17
e#ettin*#10#12#3#2d8+3d#241
f#fog cloud#3#1#0#1d6#24
g#gelatinous cube*#4#6#8#2d4#17
h#homunculus#2#6#6#1d3#5
i#imp#2#6#2#1d4#15
j#jaguar#4#15#6#1d8+2(1d3)+2(1d4)#17
k#killer bee#4#14#4#2d4#17
l#leocrotta*#6#18#4#3d6#37
m#minotaur*#15#15#6#4d8#276
n#nurse*#11#6#0#1d3#208
o#owlbear*#5#12#5#2d6+2(1d6)+2d8#26
p#piercer#3#1#3#2d6#10
q#quivering blob#3#1#8#1d8#10
r#giant rat#0#12#7#1d3#1
r#rockmole\(dg#3#3#0#1d6#
s#giant spider\(dg*#5#15#3#1d4#
s#giant scorpion*#5#15#3#1d4+2(1d8)#36
t#tengu#5#13#5#1d7#26
u#unicorn#8#24#5#1d10#115
v#violet fungi#3#1#7#1d4#10
w#long worm*#8#3#5#1d4#115
w#wumpus*#8#3#2#3d6#
x#xan#7#18#-2#2d4#118
y#yellow light#3#15#0#0d0#24
z#zruty#9#8#3#3d6#132
 #ghost*#10#3#-5#?#265
&#demon*#10#9#-4#1d4#263
,#trapper*#12#3#3#0d0#303
1#wizard of yendor*#15#12#-2#1d12#
2#mail daemon#\-#\-#\-#n/a#
9#giant\(dg*#9#18#5#2d12#
:#chameleon#6#5#6#4d2#49
;#giant eel\(dg*#15#6#-3#3d6#
@#shopkeeper#10#18#0#4d8#40#165
~#lurker above*#10#3#3#0d0#151
.TE
SHAR_EOF
if test 2364 -ne "`wc -c < 'monster.tbl'`"
then
	echo shar: error transmitting "'monster.tbl'" '(should have been 2364 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'weapon.tbl'" '(1487 characters)'
if test -f 'weapon.tbl'
then
	echo shar: will not over-write existing file "'weapon.tbl'"
else
cat << \SHAR_EOF > 'weapon.tbl'
.VL 10
.LI Key:
C=Chance, W=Weight, SD=Small damage, LD=Large damage
*=pole arm, \(dg=NetHack only
.LI Notes:
Pole arms consist of a 5-9 foot pole capped with the implement described.
.LE
.TS H
tab (#),center,box;
c c c c c c
l | n n n n | l.
Name#C#W#SD#LD#Description
_
.TH
arrow#6#0#6#6
sling bullet#6#0#4#6#see sling
crossbow bolt#6#0#4#6
dart#6#0#3#2
shuriken#3#0#8#6#throwing star
rock#4#1#3#3
boomerang#1#3#9#9
mace#6#3#6#7#
axe#5#3#6#4
flail#5#3#6#5#stick w/spiked ball & chain
long sword#5#3#8#12#3-4' sword
two handed sword#4#4#12#12#5-6' sword (no shield)
dagger#4#3#4#3
worm tooth#0#4#2#2#see crysknife
crysknife#0#3#10#10#enchanted worm tooth
aklys#1#3#6#3#spear-thrower
bardiche*#1#3#4#4#5' shaft with wide axe
bec de corbin*#1#3#8#6#axe head/spike
bill-guisarme*#1#3#4#10#spearhead/hook
club#1#3#6#3
fauchard*#1#3#6#8#sickle blade
glaive*#1#3#6#10#straight blade
guisarme*#1#3#4#8#sharp pruning hook
halberd*#1#3#10#6#spearhead with axe
lucern hammer*#1#3#4#6#forward & down-curving spikes
javelin#1#3#6#6
katana#1#3#12#12#japanese sword
lance*#1#3#6#8
morning star#1#3#4#6#spiked ball on stick
partisan*#1#3#6#6#spearhead w/double axe
ranseur*#1#3#4#4#broad spearhead w/hilt
scimitar#1#3#8#8#large knife
spetum*#1#3#6#6#spearhead w/catching blades
broad sword#1#3#4#6#3-4' chopping sword
short sword#1#3#6#8#2-3' sword
trident#1#3#6#4#three-pronged fork
voulge*#1#3#4#4#single-edge blade
spear#4#3#6#8
bow#4#3#4#6
sling#4#3#6#6#uses bullets or rocks
crossbow#5#3#4#6
.TE
SHAR_EOF
if test 1487 -ne "`wc -c < 'weapon.tbl'`"
then
	echo shar: error transmitting "'weapon.tbl'" '(should have been 1487 characters)'
fi
fi # end of overwriting check
#	End of shell archive
exit 0
-- 
						Mike Stephenson

Mail:	Genamation Inc.		Phone:	(416) 475-9434
	351 Steelcase Rd. W
	Markham, Ontario.	UUCP:	uunet!{mnetor,utzoo}!genat!genpyr!mike
	Canada   L3R 3W1		uunet!{mnetor,utzoo}!genat!mike