[comp.sources.games] v08i067: 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 67
Archive-name: NetHack3/Patch6n
Patch-To: NetHack3: Volume 7, Issue 56-93



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 14 (of 15)."
# Contents:  others/Makefile.tcc src/monst.c1
# Wrapped by billr@saab on Wed Nov 22 10:50:21 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'others/Makefile.tcc' -a "${1}" != "-c" ; then 
  echo shar: clobbering existing file \"'others/Makefile.tcc'\"
fi
echo shar: Extracting \"'others/Makefile.tcc'\" \(15148 characters\)
sed "s/^X//" >'others/Makefile.tcc' <<'END_OF_FILE'
X#	SCCS Id: @(#)Makefile.tcc	3.0	89/11/18
X#	PC NetHack 3.0 Makefile for Turbo C 2.0
X#	Perpetrator: Mike Threepoint, 890707
X
X###
X### Directories
X###
X# makedefs.c hardcodes the include and auxil directories, don't change them.
XOBJ	= o
XINCL	= ..\include
XAUX	= ..\auxil
XSRC	= ..\src
XOTHERS	= ..\others
X
X
X###
X### Locals
X###
X
X# the name of the game
XGAME	= nethack
X
X# the place of the game
XGAMEDIR = \games\$(GAME)
X
X# the filename of the game
XGAMEFILE = $(GAMEDIR)\$(GAME).exe
X
X
X###
X### Compiler
X###
XCC	= tcc
X
X# must use Huge model; Large is limited to 64K total global data.
XMODEL	= h
X
X# signed chars, jump optimize, strict ANSI, register optimize, no stack frame
XCFLAGS	= -c -no -m$(MODEL) -I$(INCL) -K- -O -A -Z -k- -w-pia -w-pro $(WIZARD)
X## Note: Turbo C 2.0's -Z is bugged.  If you have weird problems, try -Z-.
X
X# wizardly defines
XWIZARD	= -DDEBUG
X
X# linkers
XTLINK	= tlink
XLINK	= link
X## There is a bug in TLINK and huge model:
X##
X## TLINK 1.0 treated huge like large, with 64K data limit.
X## TLINK 1.1 fixed that, but chokes over huge data segments anyway.
X## TLINK 2.0 links and is smaller than LINK /EXEPACK, but for some
X## reason with too many objects it produces a file that freaks out
X## and hangs the system.
X##
X## Also note:
X##
X## Using /EXEPACK with LINK will greatly reduce the size of the
X## executable (about 50K), it will also greatly increase the memory
X## required to load it (about 20K).
X
XLIBS	= $(LIB)\c$(MODEL)
X# no need to link in the floating point library
XC0	= $(LIB)\c0$(MODEL).obj
X
XLFLAGS	= /noi /seg:1024
XTLFLAGS = /x/c
X
X# assembler
XASM	= tasm
XAFLAGS	= /MX
X
X
X###
X### Rules
X###
X# search order
X.SUFFIXES: .exe .obj .c .asm .y .l
X# .c -> .obj
X.c.obj:
X	$(CC) $(CFLAGS) -c $<
X# .asm -> .obj
X.asm.obj:
X	$(ASM) $< $(AFLAGS);
X# .obj -> .exe (for tlink)
X.obj.exe:
X	$(TLINK) $(TLFLAGS) $(C0) $<, $@,, $(LIBS);
X## Note: .y -> .c or .l -> .c rules are missing, because none of the developers
X##	 had a yacc or lex for the PC to write rules for.
X
X
X###
X### Optional features (see pcconf.h)
X###
X# uncomment the blank definitions if not used
X
X# overlays
X#OVERLAY = $(OBJ)\trampoli.obj ovlmgr.obj
X#OVERLAY_H = $(INCL)\trampoli.h
X#LINK_LIST = $(OVERLAYS)
XOVERLAY =
XOVERLAY_H =
XLINK_LIST = $(HOBJ)
X
X# Fish's TERMLIB termcap library (see the rule below)
X#TERMLIB = $(LIB)\termlib.lib
XTERMLIB =
X
X# high-quality BSD random number generation routines
X#RANDOM = $(OBJ)\random.obj
XRANDOM =
X
X
X###
X### Dependencies
X###
X# nothing below this line should have to be changed
X# other things that must be reconfigured are in config.h and $(TARG)conf.h
X
X# target prefix
XTARG	= pc
X
X# object files for makedefs.exe
XMAKEOBJS = $(OBJ)\makedefs.obj $(OBJ)\monst.obj $(OBJ)\objects.obj
X
X# object files for lev_comp.exe
XSPLEVOBJS = $(OBJ)\lev_comp.obj   $(OBJ)\lev_lex.obj  $(OBJ)\lev_main.obj \
X	    $(OBJ)\monst.obj	  $(OBJ)\objects.obj
X
X# object files for termlib.lib
XTERMOBJS = $(OBJ)\tgetent.obj  $(OBJ)\tgetflag.obj  $(OBJ)\tgetnum.obj \
X	   $(OBJ)\tgetstr.obj  $(OBJ)\tgoto.obj     $(OBJ)\tputs.obj \
X	   $(OBJ)\isdigit.obj  $(OBJ)\fgetlr.obj
XTERMLIST = -+ $(OBJ)\tgetent.obj -+ $(OBJ)\tgetflag.obj -+ $(OBJ)\tgetnum.obj \
X	   -+ $(OBJ)\tgetstr.obj -+ $(OBJ)\tgoto.obj	-+ $(OBJ)\tputs.obj \
X	   -+ $(OBJ)\isdigit.obj -+ $(OBJ)\fgetlr.obj
X
X# alloc.c is completely unnecessary for any PC NetHack executable.
X# panic.c is unnecessary for makedefs.exe and lev_comp.exe.
X# ioctl.c is unnecessary for nethack.exe.
X
XROOT =	$(OBJ)\main.obj 	$(OBJ)\allmain.obj	$(OBJ)\termcap.obj \
X	$(OBJ)\cmd.obj		$(OBJ)\hack.obj 	$(OBJ)\msdos.obj \
X	$(OVERLAY)
X
X# the overlays -- the Microsoft Overlay Linker is limited to 63
X
XOVL01 = $(OBJ)\decl.obj
XOVL02 = $(OBJ)\topl.obj
XOVL03 = $(OBJ)\pri.obj $(OBJ)\prisym.obj
XOVL04 = $(OBJ)\rnd.obj $(RANDOM)
XOVL05 = $(OBJ)\timeout.obj
XOVL06 = $(OBJ)\mon.obj $(OBJ)\exper.obj $(OBJ)\attrib.obj
XOVL07 = $(OBJ)\monst.obj $(OBJ)\mondata.obj
XOVL08 = $(OBJ)\monmove.obj $(OBJ)\track.obj
XOVL09 = $(OBJ)\dog.obj $(OBJ)\dogmove.obj
XOVL10 = $(OBJ)\makemon.obj
XOVL11 = $(OBJ)\do_name.obj $(OBJ)\getline.obj
XOVL12 = $(OBJ)\weapon.obj
XOVL13 = $(OBJ)\wield.obj
XOVL14 = $(OBJ)\invent.obj
XOVL15 = $(OBJ)\objects.obj
XOVL16 = $(OBJ)\mkobj.obj $(OBJ)\o_init.obj
XOVL17 = $(OBJ)\objnam.obj
XOVL18 = $(OBJ)\worn.obj
XOVL19 = $(OBJ)\do_wear.obj
XOVL20 = $(OBJ)\trap.obj
XOVL21 = $(OBJ)\dothrow.obj
XOVL22 = $(OBJ)\dokick.obj
XOVL23 = $(OBJ)\uhitm.obj
XOVL24 = $(OBJ)\mhitu.obj
XOVL25 = $(OBJ)\mcastu.obj
XOVL26 = $(OBJ)\mhitm.obj
XOVL27 = $(OBJ)\mthrowu.obj
XOVL28 = $(OBJ)\steal.obj
XOVL29 = $(OBJ)\priest.obj
XOVL30 = $(OBJ)\vault.obj
XOVL31 = $(OBJ)\shk.obj $(OBJ)\shknam.obj
XOVL32 = $(OBJ)\wizard.obj
XOVL33 = $(OBJ)\worm.obj
XOVL34 = $(OBJ)\were.obj
XOVL35 = $(OBJ)\demon.obj
XOVL36 = $(OBJ)\artifact.obj
XOVL37 = $(OBJ)\music.obj $(OBJ)\dbridge.obj
XOVL38 = $(OBJ)\sit.obj $(OBJ)\fountain.obj
XOVL39 = $(OBJ)\sounds.obj
XOVL40 = $(OBJ)\spell.obj
XOVL41 = $(OBJ)\read.obj
XOVL42 = $(OBJ)\potion.obj
XOVL43 = $(OBJ)\zap.obj
XOVL44 = $(OBJ)\eat.obj $(OBJ)\rumors.obj
XOVL45 = $(OBJ)\do.obj
XOVL46 = $(OBJ)\search.obj
XOVL47 = $(OBJ)\lock.obj
XOVL48 = $(OBJ)\apply.obj
XOVL49 = $(OBJ)\engrave.obj
XOVL50 = $(OBJ)\write.obj
XOVL51 = $(OBJ)\pray.obj
XOVL52 = $(OBJ)\options.obj
XOVL53 = $(OBJ)\pickup.obj
XOVL54 = $(OBJ)\polyself.obj
XOVL55 = $(OBJ)\u_init.obj
XOVL56 = $(OBJ)\extralev.obj
XOVL57 = $(OBJ)\mklev.obj $(OBJ)\mkroom.obj
XOVL58 = $(OBJ)\mkmaze.obj $(OBJ)\sp_lev.obj
XOVL59 = $(OBJ)\restore.obj $(OBJ)\save.obj $(OBJ)\bones.obj
XOVL60 = $(OBJ)\rip.obj $(OBJ)\topten.obj $(OBJ)\end.obj
XOVL61 = $(OBJ)\unix.obj $(OBJ)\tty.obj $(OBJ)\mail.obj
XOVL62 = $(OBJ)\pager.obj
XOVL63 = $(OBJ)\version.obj
X
X# date.h dependencies
XVOBJ = $(ROOT)	$(OVL01) $(OVL02) $(OVL03) $(OVL04) $(OVL05) $(OVL06) $(OVL07) \
X       $(OVL08) $(OVL09) $(OVL10) $(OVL11) $(OVL12) $(OVL13) $(OVL14) $(OVL15) \
X       $(OVL16) $(OVL17) $(OVL18) $(OVL19) $(OVL20) $(OVL21) $(OVL22) $(OVL23) \
X       $(OVL24) $(OVL25) $(OVL26) $(OVL27) $(OVL28) $(OVL29) $(OVL30) $(OVL31) \
X       $(OVL32) $(OVL33) $(OVL34) $(OVL35) $(OVL36) $(OVL37) $(OVL38) $(OVL39) \
X       $(OVL40) $(OVL41) $(OVL42) $(OVL43) $(OVL44) $(OVL45) $(OVL46) $(OVL47) \
X       $(OVL48) $(OVL49) $(OVL50) $(OVL51) $(OVL52) $(OVL53) $(OVL54) $(OVL55) \
X       $(OVL56) $(OVL57) $(OVL58) $(OVL59) $(OVL60) $(OVL61) $(OVL62)
X
X# nethack.exe dependencies, non-overlay link list
XHOBJ =	$(VOBJ) $(OVL63)
X
X# overlay link list
XOVERLAYS = $(ROOT)    ($(OVL01)) ($(OVL02)) ($(OVL03)) ($(OVL04)) ($(OVL05)) \
X	   ($(OVL06)) ($(OVL07)) ($(OVL08)) ($(OVL09)) ($(OVL10)) ($(OVL11)) \
X	   ($(OVL12)) ($(OVL13)) ($(OVL14)) ($(OVL15)) ($(OVL16)) ($(OVL17)) \
X	   ($(OVL18)) ($(OVL19)) ($(OVL20)) ($(OVL21)) ($(OVL22)) ($(OVL23)) \
X	   ($(OVL24)) ($(OVL25)) ($(OVL26)) ($(OVL27)) ($(OVL28)) ($(OVL29)) \
X	   ($(OVL30)) ($(OVL31)) ($(OVL32)) ($(OVL33)) ($(OVL34)) ($(OVL35)) \
X	   ($(OVL36)) ($(OVL37)) ($(OVL38)) ($(OVL39)) ($(OVL40)) ($(OVL41)) \
X	   ($(OVL42)) ($(OVL43)) ($(OVL44)) ($(OVL45)) ($(OVL46)) ($(OVL47)) \
X	   ($(OVL48)) ($(OVL49)) ($(OVL50)) ($(OVL51)) ($(OVL52)) ($(OVL53)) \
X	   ($(OVL54)) ($(OVL55)) ($(OVL56)) ($(OVL57)) ($(OVL58)) ($(OVL59)) \
X	   ($(OVL60)) ($(OVL61)) ($(OVL62)) ($(OVL63))
X
X# header dependencies
X
XPCCONF_H   = $(INCL)\$(TARG)conf.h  $(INCL)\msdos.h	$(INCL)\system.h
XGLOBAL_H   = $(INCL)\global.h	    $(INCL)\coord.h	$(PCCONF_H)
XCONFIG_H   = $(INCL)\config.h	    $(INCL)\tradstdc.h	$(GLOBAL_H)
XTRAP_H	   = $(INCL)\trap.h
XPERMONST_H = $(INCL)\permonst.h     $(INCL)\monflag.h
XYOU_H	   = $(INCL)\you.h	    $(INCL)\attrib.h	$(PERMONST_H) \
X	     $(INCL)\mondata.h	    $(INCL)\monst.h	$(INCL)\youprop.h
XDECL_H	   = $(INCL)\spell.h	    $(INCL)\obj.h	$(YOU_H) \
X	     $(INCL)\onames.h	    $(INCL)\pm.h
XHACK_H	   = $(CONFIG_H)	    $(DECL_H)		$(INCL)\monsym.h \
X	     $(INCL)\mkroom.h	    $(INCL)\objclass.h	$(INCL)\gold.h \
X	     $(INCL)\trap.h	    $(INCL)\flag.h	$(INCL)\rm.h \
X	     $(OVERLAY_H)
X
X## extern.h, and decl.h contain only external declarations.
X##
X## If anything in them changes, all other files involving the changed routines
X## should be changed to reflect them.  Including them in their respective
X## dependency lists will make sure everything is correct, but causes frequent
X## near-total recompiles.  By leaving them out, we allow quicker testing of
X## changes, but we presume the wiz knows to be circumspect.
X
X
X###
X### Main targets
X###
X
X$(GAME): $(GAMEFILE) $(GAMEDIR)\data $(GAMEDIR)\rumors
X
X$(GAMEFILE): $(GAMEDIR) $(OBJ) $(HOBJ) $(TERMLIB) Makefile
X	@echo Linking...
X	if exist $@ del $@
X        $(LINK) $(C0) $(LINK_LIST),$@,,$(LIBS) $(TERMLIB) $(LFLAGS);
X	@echo NetHack is up to date.
X
Xall:	$(GAME) install
X	@echo Done.
X
X$(OBJ):
X	mkdir $(OBJ)
X
X$(GAMEDIR):
X	mkdir $(GAMEDIR)
X	mkdir $(GAMEDIR)\bones
X
X
X###
X### makedefs.exe
X###
X
Xmakedefs.exe:  $(MAKEOBJS)
X	@$(TLINK) $(TLFLAGS) $(C0) $(MAKEOBJS),$@,,$(LIBS);
X
X$(OBJ)\makedefs.obj:  $(INCL)\config.h $(INCL)\permonst.h $(INCL)\objclass.h
X
X
X###
X### makedefs-generated files
X###
X
X# date.h should be remade any time any of the source is modified
X$(INCL)\date.h: 	makedefs.exe $(VOBJ)
X	makedefs -v
X
X$(INCL)\trap.h: 	makedefs.exe
X	makedefs -t
X
X$(INCL)\onames.h:	makedefs.exe
X	makedefs -o
X
X$(INCL)\pm.h:		makedefs.exe
X	makedefs -p
X
X$(GAMEDIR)\data:	makedefs.exe $(AUX)\data.base
X	makedefs -d
X	xcopy $(AUX)\data $(GAMEDIR)
X	del $(AUX)\data
X
X$(GAMEDIR)\rumors:	makedefs.exe $(AUX)\rumors.tru $(AUX)\rumors.fal
X	makedefs -r
X	xcopy $(AUX)\rumors $(GAMEDIR)
X	del $(AUX)\rumors
X
X
X###
X### lev_comp.exe
X###
X
Xlev_comp.exe:  $(SPLEVOBJS)
X	$(TLINK) $(TLFLAGS) $(C0) $(SPLEVOBJS),$@,,$(LIBS);
X
X## Note: UNIX yacc may generate a line reading "#", which Turbo C 2.0, despite
X##	 the manual's claims that it should be ignored, treats as an error.
X##	 You may have to remove such a line to compile lev_comp.c.
X$(OBJ)\lev_comp.obj:  $(HACK_H) $(INCL)\sp_lev.h
X	$(CC) $(CFLAGS) -A- $*.c
X$(OBJ)\lev_lex.obj:  $(INCL)\lev_comp.h $(HACK_H) $(INCL)\sp_lev.h
X$(OBJ)\lev_main.obj:  $(HACK_H) $(INCL)\sp_lev.h
X
X# If you have yacc or lex programs, and make any changes,
X# add some .y.c and .l.c rules to your Make.ini.
X#
X#lev_comp.c:  lev_comp.y
X#lev_lex.c:  lev_comp.l
X
X
X###
X### termlib.lib
X###
X
X#$(TERMLIB): $(TERMOBJS)
X#	tlib $(TERMLIB) /C $(TERMLIST);
X
X
X###
X### Secondary targets
X###
X
Xinstall:  $(GAMEDIR)\NetHack.cnf $(GAMEDIR)\record $(GAMEDIR)\termcap spec_levs
X	xcopy $(AUX)\*. $(GAMEDIR)
X	@echo Auxiliary files installed.
X
X$(GAMEDIR)\NetHack.cnf:
X	xcopy $(OTHERS)\NetHack.cnf $(GAMEDIR)
X$(GAMEDIR)\record:
X	touch $(GAMEDIR)\record
X$(GAMEDIR)\termcap:
X	xcopy $(OTHERS)\termcap $(GAMEDIR)
X
Xspec_levs: $(AUX)\castle.des $(AUX)\endgame.des $(AUX)\tower.des lev_comp.exe
X	lev_comp $(AUX)\castle.des
X	lev_comp $(AUX)\endgame.des
X	lev_comp $(AUX)\tower.des
X	chdir $(AUX)
X	xcopy castle $(GAMEDIR)
X	del castle
X	xcopy endgame $(GAMEDIR)
X	del endgame
X	xcopy tower? $(GAMEDIR)
X	del tower?
X	chdir $(SRC)
X	@echo Special levels compiled.
X
Xclean:
X	del $(OBJ)\*.obj
X	rmdir $(OBJ)
X
Xspotless: clean
X	del $(INCL)\date.h
X	del $(INCL)\onames.h
X	del $(INCL)\pm.h
X	del makedefs.exe
X	if exist lev_comp.exe del lev_comp.exe
X
X
X###
X### Other dependencies
X###
X
X# OS-dependent filenames
X$(OBJ)\main.obj:     $(HACK_H) $(TARG)main.c
X	$(CC) $(CFLAGS) -o$@ $(TARG)main.c
X
X$(OBJ)\tty.obj:      $(HACK_H) $(INCL)\func_tab.h $(TARG)tty.c
X	$(CC) $(CFLAGS) -o$@ $(TARG)tty.c
X
X$(OBJ)\unix.obj:     $(HACK_H) $(TARG)unix.c
X	$(CC) $(CFLAGS) -o$@ $(TARG)unix.c
X
X# GO AHEAD, DELETE THIS LINE
X
X$(OBJ)\allmain.obj:	$(HACK_H)
X$(OBJ)\alloc.obj:	$(CONFIG_H)
X$(OBJ)\apply.obj:	$(HACK_H)   $(INCL)\edog.h
X$(OBJ)\artifact.obj:	$(HACK_H)   $(INCL)\artifact.h
X$(OBJ)\attrib.obj:	$(HACK_H)
X$(OBJ)\bones.obj:	$(HACK_H)
X$(OBJ)\cmd.obj: 	$(HACK_H)   $(INCL)\func_tab.h
X$(OBJ)\dbridge.obj:	$(HACK_H)
X$(OBJ)\decl.obj:	$(HACK_H)
X$(OBJ)\demon.obj:	$(HACK_H)
X$(OBJ)\do.obj:		$(HACK_H)
X$(OBJ)\do_name.obj:	$(HACK_H)
X$(OBJ)\do_wear.obj:	$(HACK_H)
X$(OBJ)\dog.obj: 	$(HACK_H)   $(INCL)\edog.h
X$(OBJ)\dogmove.obj:	$(HACK_H)   $(INCL)\mfndpos.h	 $(INCL)\edog.h
X$(OBJ)\dokick.obj:	$(HACK_H)
X$(OBJ)\dothrow.obj:	$(HACK_H)
X$(OBJ)\eat.obj: 	$(HACK_H)
X$(OBJ)\end.obj: 	$(HACK_H)   $(INCL)\eshk.h
X$(OBJ)\engrave.obj:	$(HACK_H)
X$(OBJ)\exper.obj:	$(HACK_H)
X$(OBJ)\extralev.obj:	$(HACK_H)
X$(OBJ)\fountain.obj:	$(HACK_H)
X$(OBJ)\getline.obj:	$(HACK_H)   $(INCL)\func_tab.h
X$(OBJ)\hack.obj:	$(HACK_H)
X$(OBJ)\invent.obj:	$(HACK_H)   $(INCL)\lev.h	 $(INCL)\wseg.h
X$(OBJ)\ioctl.obj:	$(HACK_H)
X$(OBJ)\lev_comp.obj:	$(HACK_H)   $(INCL)\sp_lev.h
X$(OBJ)\lev_lex.obj:	$(HACK_H)   $(INCL)\sp_lev.h	 $(INCL)\lev_comp.h
X$(OBJ)\lev_main.obj:	$(HACK_H)   $(INCL)\sp_lev.h
X$(OBJ)\lock.obj:	$(HACK_H)
X$(OBJ)\makemon.obj:	$(HACK_H)
X$(OBJ)\mail.obj:	$(HACK_H)
X$(OBJ)\mcastu.obj:	$(HACK_H)
X$(OBJ)\mhitm.obj:	$(HACK_H)   $(INCL)\artifact.h
X$(OBJ)\mhitu.obj:	$(HACK_H)   $(INCL)\artifact.h	 $(INCL)\edog.h
X$(OBJ)\mklev.obj:	$(HACK_H)
X$(OBJ)\mkmaze.obj:	$(HACK_H)
X$(OBJ)\mkobj.obj:	$(HACK_H)
X$(OBJ)\mkroom.obj:	$(HACK_H)
X$(OBJ)\mon.obj: 	$(HACK_H)   $(INCL)\mfndpos.h	 $(INCL)\wseg.h
X$(OBJ)\mondata.obj:	$(HACK_H)   $(INCL)\eshk.h	 $(INCL)\epri.h
X$(OBJ)\monmove.obj:	$(HACK_H)   $(INCL)\mfndpos.h	 $(INCL)\artifact.h
X$(OBJ)\monst.obj:	$(CONFIG_H) $(PERMONST_H)	 $(INCL)\eshk.h \
X				    $(INCL)\vault.h	 $(INCL)\epri.h
X$(OBJ)\msdos.obj:	$(HACK_H) msdos.c
X	$(CC) $(CFLAGS) -A- $*.c
X# set ANSI only off -- many MS-DOS specific things.
X$(OBJ)\mthrowu.obj:	$(HACK_H)
X$(OBJ)\music.obj:	$(HACK_H)
X$(OBJ)\o_init.obj:	$(HACK_H)   $(INCL)\onames.h
X$(OBJ)\objects.obj:	$(CONFIG_H) $(INCL)\obj.h	 $(INCL)\objclass.h \
X				    $(INCL)\prop.h
X$(OBJ)\objnam.obj:	$(HACK_H)
X$(OBJ)\options.obj:	$(HACK_H)
X$(OBJ)\pager.obj:	$(HACK_H)
X$(OBJ)\panic.obj:	$(CONFIG_H)
X$(OBJ)\pickup.obj:	$(HACK_H)
X$(OBJ)\polyself.obj:	$(HACK_H)
X$(OBJ)\potion.obj:	$(HACK_H)
X$(OBJ)\pray.obj:	$(HACK_H)
X$(OBJ)\pri.obj: 	$(HACK_H)   $(INCL)\epri.h	 $(INCL)\termcap.h
X$(OBJ)\priest.obj:	$(HACK_H)   $(INCL)\mfndpos.h	 $(INCL)\eshk.h \
X				    $(INCL)\epri.h
X$(OBJ)\prisym.obj:	$(HACK_H)   $(INCL)\lev.h	 $(INCL)\wseg.h
X$(OBJ)\random.obj:
X$(OBJ)\read.obj:	$(HACK_H)
X$(OBJ)\restore.obj:	$(HACK_H)   $(INCL)\lev.h	 $(INCL)\wseg.h
X$(OBJ)\rip.obj:
X	$(CC) $(CFLAGS) -d- $*.c
X# must not merge strings, or the tombstone lines will overlap
X$(OBJ)\rnd.obj: 	$(HACK_H)
X$(OBJ)\rumors.obj:	$(HACK_H)
X$(OBJ)\save.obj:	$(HACK_H)   $(INCL)\lev.h	 $(INCL)\wseg.h
X$(OBJ)\search.obj:	$(HACK_H)   $(INCL)\artifact.h
X$(OBJ)\shk.obj: 	$(HACK_H)   $(INCL)\eshk.h
X$(OBJ)\shknam.obj:	$(HACK_H)   $(INCL)\eshk.h
X$(OBJ)\sit.obj: 	$(HACK_H)
X$(OBJ)\sounds.obj:	$(HACK_H)   $(INCL)\edog.h	 $(INCL)\eshk.h
X$(OBJ)\sp_lev.obj:	$(HACK_H)   $(INCL)\sp_lev.h
X$(OBJ)\spell.obj:	$(HACK_H)
X$(OBJ)\steal.obj:	$(HACK_H)
X$(OBJ)\termcap.obj:	$(HACK_H)   $(INCL)\termcap.h
X$(OBJ)\timeout.obj:	$(HACK_H)
X$(OBJ)\topl.obj:	$(HACK_H)
X$(OBJ)\topten.obj:	$(HACK_H)
X$(OBJ)\track.obj:	$(HACK_H)
X$(OBJ)\trampoli.obj:	$(HACK_H)
X$(OBJ)\trap.obj:	$(HACK_H)   $(INCL)\edog.h	 $(INCL)\trapname.h
X$(OBJ)\u_init.obj:	$(HACK_H)
X$(OBJ)\uhitm.obj:	$(HACK_H)   $(INCL)\artifact.h
X$(OBJ)\vault.obj:	$(HACK_H)   $(INCL)\vault.h
X$(OBJ)\version.obj:	$(HACK_H)   $(INCL)\date.h
X$(OBJ)\weapon.obj:	$(HACK_H)
X$(OBJ)\were.obj:	$(HACK_H)
X$(OBJ)\wield.obj:	$(HACK_H)
X$(OBJ)\wizard.obj:	$(HACK_H)
X$(OBJ)\worm.obj:	$(HACK_H)   $(INCL)\wseg.h
X$(OBJ)\worn.obj:	$(HACK_H)
X$(OBJ)\write.obj:	$(HACK_H)
X$(OBJ)\zap.obj: 	$(HACK_H)
END_OF_FILE
if test 15148 -ne `wc -c <'others/Makefile.tcc'`; then
    echo shar: \"'others/Makefile.tcc'\" unpacked with wrong size!
fi
# end of 'others/Makefile.tcc'
if test -f 'src/monst.c1' -a "${1}" != "-c" ; then 
  echo shar: clobbering existing file \"'src/monst.c1'\"
fi
echo shar: Extracting \"'src/monst.c1'\" \(39921 characters\)
sed "s/^X//" >'src/monst.c1' <<'END_OF_FILE'
X/*	SCCS Id: @(#)monst.c	3.0	89/11/09
X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X/* NetHack may be freely redistributed.  See license for details. */
X
X/* since this file is also used in auxiliary programs, don't include all the
X * function declarations for all of nethack
X */
X#define EXTERN_H
X/* #define MAKEDEFS_C	1	/* define for Macs when compiling makedefs */
X#include "config.h"
X#include "permonst.h"
X#include "monsym.h"
X#include "eshk.h"
X#include "vault.h"
X#include "epri.h"
X
X#define NO_ATTK 	{ 0, 0, 0, 0 }
X
X#ifdef C
X#undef C
X#endif
X#ifdef TEXTCOLOR
X#include "color.h"
X#define C(color)	color
X#define HI_DOMESTIC	BLUE
X#define HI_LORD 	MAGENTA
X#else
X#define C(color)
X#endif
X
X#ifndef SPLITMON_2
Xstruct permonst playermon = {		/* used by weapons bonus code */
X	"player", S_HUMAN, 1, 10, 10, 0, 0, G_GENO | G_NOGEN,
X	{ { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	45, 400, PL_NSIZ, MS_SILENT, MZ_HUMAN, M1_HUMANOID | M1_COLLECT,
X	M2_HUMAN | M2_STRONG | M2_NEEDPICK, C(HI_MON)
X},	*uasmon = &playermon;
X#endif /* SPLITMON_2 */
X
X/*
X *	Rule #1:	monsters of a given class are contiguous in the
X *			mons[] array.
X *
X *	Rule #2:	monsters of a given class are presented in ascending
X *			order of strength.
X *
X *	Rule #3:	monster frequency is included in the geno mask;
X *			the frequency can be from 0 to 7.  0's will also
X *			be skipped during generation.
X *
X * Guidelines for color assignment:
X *
X *	* Use the same color for all `growth stages' of a monster (ex.
X *	  little dog/big dog, baby naga/full-grown naga.
X *
X *	* Use described color wherever possible. If the class has `real'
X *	  members with strong color associations, use those.
X *
X *	* Favor `cool' colors for cold-resistent monsters, `warm' ones for
X *	  fire-resistent ones.
X *
X *	* Try to reserve purple (magenta) for powerful `ruler' monsters (queen
X *	  bee, kobold lord, &c.).
X *
X * The aim in assigning colors is to be consistent enough so a player can
X * become `intuitive' about them, deducing some or all of these rules
X * unconsciously. Use your common sense.
X */
X
X#if defined(MACOS) && !defined(MAKEDEFS_C)
Xstruct permonst *mons;	   /* for SMALLDATA - mons data stored in NetHack app */
X#else
X#ifndef SPLITMON_2
Xstruct permonst mons[] = {
X/*	ants	*/
X	{ "giant ant",	S_ANT, 2, 18, 3, 0, 0, (G_GENO | G_SGROUP | 3),
X	  { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  1, 10, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_EGGS,
X	  M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
X	{ "soldier ant", S_ANT, 3, 18, 3, 0, 0, (G_GENO | G_SGROUP | 2),
X	  { { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_DRST, 3, 4 },
X	  NO_ATTK, NO_ATTK, NO_ATTK }, 2, 20, 0, MS_SILENT, MZ_TINY,
X	  M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES,
X	  M2_HOSTILE | M2_CARNIVORE, C(BLUE) },
X	{ "fire ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1),
X	  { { AT_BITE, AD_FIRE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  3, 30, 0, MS_SILENT, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_EGGS |
X	  M1_FIRE_RES, M2_HOSTILE | M2_CARNIVORE, C(RED) },
X	{ "giant beetle", S_ANT, 5, 6, 4, 0, 0, (G_GENO | 3),
X	  { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  1, 10, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS | M1_POIS |
X	  M1_POIS_RES, M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
X	{ "killer bee", S_ANT, 1, 18, -1, 0, 0, (G_GENO | G_LGROUP | 2),
X	  { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  1, 10, 0, MS_BUZZ, MZ_TINY, M1_ANIMAL | M1_FLY | M1_NOHANDS |
X	  M1_POIS | M1_POIS_RES, M2_HOSTILE, C(YELLOW) },
X	{ "queen bee", S_ANT, 9, 24, -4, 0, 0, (G_GENO | G_NOGEN),
X	  { { AT_STNG, AD_DRST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  1, 10, 0, MS_BUZZ, MZ_TINY, M1_ANIMAL | M1_FLY | M1_NOHANDS |
X	  M1_POIS | M1_POIS_RES | M1_PRINCE, M2_HOSTILE, C(HI_LORD) },
X/*	blobs	*/
X	{ "acid blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 2),
X	  { { AT_NONE, AD_ACID, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  3, 30, 0, MS_SILENT, MZ_TINY,
X	  M1_NOEYES | M1_NOHANDS | M1_POIS | M1_SLEE_RES | M1_STON_RES,
X	  M2_WANDER | M2_NOLIMBS | M2_AMORPHOUS, C(GREEN) },
X	{ "quivering blob", S_BLOB, 5, 1, 8, 0, 0, (G_GENO | 2),
X	  { { AT_TUCH, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
X	  M2_WANDER | M2_HOSTILE | M2_NOLIMBS, C(WHITE) },
X	{ "gelatinous cube", S_BLOB, 6, 6, 8, 0, 0, (G_GENO | 2),
X	  { { AT_TUCH, AD_PLYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_SILENT, MZ_LARGE, M1_NOEYES | M1_NOHANDS |
X	  M1_FIRE_RES | M1_COLD_RES | M1_ELEC_RES | M1_SLEE_RES,
X	  M2_WANDER | M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, C(CYAN) },
X/*	cockatrice	*/
X	{ "cockatrice", S_COCKATRICE, 5, 6, 6, 30, 0, (G_GENO | 5),
X	  { { AT_BITE, AD_PHYS, 1, 3 }, { AT_TUCH, AD_STON, 0, 0 },
X	  NO_ATTK, NO_ATTK, NO_ATTK }, 3, 30, 0, MS_HISS, MZ_SMALL,
X	  M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS_RES | M1_STON_RES,
X	  M2_HOSTILE, C(YELLOW) },
X/*	dog	*/
X	{ "little dog", S_DOG, 2, 18, 6, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  15, 150, 0, MS_BARK, MZ_SMALL,
X	  M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE, C(HI_DOMESTIC) },
X	{ "dog", S_DOG, 4, 16, 5, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_BARK, MZ_MEDIUM,
X	  M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE, C(HI_DOMESTIC) },
X	{ "large dog", S_DOG, 6, 15, 4, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  25, 250, 0, MS_BARK, MZ_MEDIUM,
X	  M1_ANIMAL | M1_NOHANDS, M2_STRONG | M2_CARNIVORE, C(HI_DOMESTIC) },
X	{ "jackal", S_DOG, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
X	  { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  25, 250, 0, MS_BARK, MZ_SMALL,
X	  M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X	{ "jackalwere", S_DOG, 2, 12, 7, 10, -7, G_NOGEN | G_NOCORPSE,
X	  { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  25, 250, 0, MS_BARK, MZ_SMALL,
X	  M1_NOPOLY | M1_WERE | M1_NOHANDS | M1_POIS | M1_REGEN,
X	  M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X	{ "wolf", S_DOG, 5, 12, 4, 0, 0, (G_GENO | G_SGROUP | 2),
X	  { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  25, 250, 0, MS_BARK, MZ_SMALL,
X	  M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X	{ "wolfwere", S_DOG, 5, 12, 4, 20, -7, G_NOGEN | G_NOCORPSE,
X	  { { AT_BITE, AD_WERE, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  25, 250, 0, MS_BARK, MZ_MEDIUM,
X	  M1_NOPOLY | M1_WERE | M1_NOHANDS | M1_POIS | M1_REGEN,
X	  M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X	{ "winter wolf", S_DOG, 7, 12, 4, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_COLD, 2, 6 },
X	  NO_ATTK, NO_ATTK, NO_ATTK, },
X	  30, 300, 0, MS_BARK, MZ_LARGE, M1_ANIMAL | M1_NOHANDS | M1_COLD_RES,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(WHITE) },
X	{ "warg", S_DOG, 7, 12, 4, 0, -5, (G_GENO | G_SGROUP | 2),
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  35, 350, 0, MS_BARK, MZ_MEDIUM, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X	{ "hell hound pup", S_DOG, 7, 12, 4, 20, -5,
X	  (G_HELL | G_GENO | G_SGROUP | 1),
X	  { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_FIRE, 2, 6 },
X	  NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_BARK, MZ_SMALL, M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
X	  M2_HOSTILE | M2_CARNIVORE, C(RED) },
X	{ "hell hound", S_DOG, 12, 14, 2, 20, 0, (G_HELL | G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BREA, AD_FIRE, 3, 6 },
X	  NO_ATTK, NO_ATTK, NO_ATTK, },
X	  30, 300, 0, MS_BARK, MZ_MEDIUM, M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
X#ifdef CHARON
X	{ "Cerberus", S_DOG, 12, 10, 2, 20, -7, (G_HELL | G_UNIQ | 1),
X	  { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BITE, AD_PHYS, 3, 6 },
X	  { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK },
X	  50, 350, 0, MS_BARK, MZ_LARGE,
X	  M1_NOPOLY | M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
X#endif
X/*	eyes	*/
X	{ "floating eye", S_EYE, 2, 1, 9, 10, 0, (G_GENO | 5),
X	  { { AT_NONE, AD_PLYS, 0, 70 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  1, 10, 0, MS_SILENT, MZ_SMALL, M1_FLY | M1_NOHANDS,
X	  M2_HOSTILE | M2_NOLIMBS, C(BLUE)},
X	{ "freezing sphere", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 2),
X	  { { AT_EXPL, AD_COLD, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  1, 10, 0, MS_SILENT, MZ_SMALL, M1_FLY | M1_NOHANDS | M1_COLD_RES,
X	  M2_HOSTILE | M2_NOLIMBS, C(WHITE) },
X/*	felines 	*/
X	{ "kitten", S_FELINE, 2, 18, 6, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  15, 150, 0, MS_MEW, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
X	  M2_WANDER | M2_CARNIVORE, C(HI_DOMESTIC) },
X	{ "housecat", S_FELINE, 4, 16, 5, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_MEW, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
X	  M2_CARNIVORE, C(HI_DOMESTIC) },
X	{ "large cat", S_FELINE, 6, 15, 4, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  25, 250, 0, MS_MEW, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
X	  M2_STRONG | M2_CARNIVORE, C(HI_DOMESTIC) },
X	{ "jaguar", S_FELINE, 4, 15, 6, 0, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
X	    { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_CARNIVORE, C(YELLOW) },
X	{ "tiger", S_FELINE, 6, 12, 6, 0, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
X	    { AT_BITE, AD_PHYS, 1, 10 }, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_CARNIVORE, C(YELLOW) },
X/*	gremlins	*/
X	{ "gremlin", S_GREMLIN, 5, 12, 2, 25, -9, (G_GENO | 2),
X	  { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
X	  { AT_BITE, AD_PHYS, 1, 4 }, { AT_CLAW, AD_CURS, 0, 0 }, NO_ATTK },
X	  10, 30, 0, MS_LAUGH, MZ_SMALL,
X	  M1_SWIM | M1_HUMANOID | M1_POIS | M1_STALK, 0, C(GREEN) },
X/*	humanoids	*/
X#ifdef TOLKIEN
X	{ "hobbit", S_HUMANOID, 1, 9, 7, 0, 6, (G_GENO | 2),
X	  { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_HUMANOID, MZ_SMALL,
X	  M1_HUMANOID | M1_COLLECT, 0, C(HI_MON) },
X#endif
X	{ "bugbear", S_HUMANOID, 3, 9, 5, 0, -6, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  25, 250, 0, MS_GROWL, MZ_LARGE, M1_HUMANOID | M1_COLLECT,
X	  M2_STRONG, C(BROWN) },
X	{ "dwarf", S_HUMANOID,	2, 6, 4, 10, 4, (G_GENO | 3),
X	  { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_HUMANOID, MZ_HUMAN,
X	  M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
X	  M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_MON)},
X	{ "dwarf lord", S_HUMANOID,  4, 6, 4, 10, 5, (G_GENO | 2),
X	  { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
X	    NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID, MZ_HUMAN,
X	  M1_HUMANOID | M1_LORD | M1_GREEDY | M1_JEWELS | M1_COLLECT,
X	  M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_MON) },
X	{ "dwarf king", S_HUMANOID,  6, 6, 4, 20, 6, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
X	    NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID, MZ_HUMAN,
X	  M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT | M1_PRINCE,
X	  M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_LORD) },
X/*	imps & other minor demons/devils */
X	{ "manes", S_IMP, 1, 3, 7, 0, -7, (G_GENO | G_LGROUP | G_NOCORPSE | 1),
X	  { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
X	    { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
X	  10, 100, 0, MS_JEER, MZ_SMALL, M1_POIS | M1_STALK, 0, C(RED) },
X	{ "homunculus", S_IMP, 2, 12, 6, 10, -7, (G_GENO | 2),
X	  { { AT_BITE, AD_SLEE, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_SILENT, MZ_TINY, M1_FLY | M1_POIS |
X	  M1_POIS_RES | M1_SLEE_RES | M1_STALK, 0, C(GREEN) },
X	{ "lemure", S_IMP, 3, 3, 7, 0, -7,
X	  (G_HELL | G_GENO | G_LGROUP | G_NOCORPSE | 1),
X	  { { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  10, 100, 0, MS_SILENT, MZ_MEDIUM, M1_POIS | M1_SLEE_RES | M1_REGEN |
X	  M1_STALK, M2_HOSTILE | M2_WANDER, C(RED) },
X	{ "imp", S_IMP, 3, 12, 2, 20, -7, (G_GENO | 1),
X	  { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  1, 10, 0, MS_JEER, MZ_TINY, M1_REGEN | M1_STALK, M2_WANDER, C(RED) },
X	{ "quasit", S_IMP, 3, 15, 2, 20, -7, (G_GENO | 2),
X	  { { AT_CLAW, AD_DRDX, 1, 2 }, { AT_CLAW, AD_DRDX, 1, 2 },
X	    { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_SILENT, MZ_SMALL,
X	  M1_POIS_RES | M1_REGEN | M1_STALK, 0, C(RED) },
X	{ "tengu", S_IMP, 6, 13, 5, 30, 7, (G_GENO | 3),
X	  { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_SQAWK, MZ_SMALL,
X	  M1_POIS_RES | M1_TPORT | M1_TPORT_CONTROL | M1_STALK, 0, C(CYAN) },
X/*	jellies 	*/
X	{ "blue jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
X	  { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  2, 20, 0, MS_SILENT, MZ_MEDIUM,
X	  M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_COLD_RES,
X	  M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(BLUE) },
X	{ "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
X	  { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  2, 20, 0, MS_SILENT, MZ_MEDIUM,
X	  M1_NOEYES | M1_NOHANDS | M1_POIS | M1_STON_RES,
X	  M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(GREEN) },
X	{ "ochre jelly", S_JELLY, 6, 3, 8, 20, 0, (G_GENO | 2),
X	  { { AT_ENGL, AD_ACID, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  2, 20, 0, MS_SILENT, MZ_MEDIUM,
X	  M1_NOEYES | M1_NOHANDS | M1_POIS | M1_STON_RES,
X	  M2_HOSTILE | M2_OMNIVORE | M2_NOLIMBS | M2_AMORPHOUS, C(HI_GOLD)},
X/*	kobolds 	*/
X	{ "kobold", S_KOBOLD,  0, 6, 7, 0, -2, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  10, 100, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_COLLECT,
X	  M2_HOSTILE, C(BROWN) },
X	{ "large kobold", S_KOBOLD,  1, 6, 6, 0, -3, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  15, 150, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_COLLECT,
X	  M2_HOSTILE, C(BROWN) },
X	{ "kobold lord", S_KOBOLD,  2, 6, 5, 0, -4, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_COLLECT |
X	  M1_LORD, M2_HOSTILE, C(HI_LORD) },
X	{ "kobold shaman", S_KOBOLD, 1, 6, 6, 10, -4, (G_GENO | 1),
X	  { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  15, 150, 0, MS_ORC, MZ_SMALL, M1_HUMANOID | M1_POIS | M1_MAGIC,
X	  M2_HOSTILE, C(BROWN) },
X/*	leprechauns	*/
X	{ "leprechaun", S_LEPRECHAUN, 5, 15, 8, 20, 0, (G_GENO | 4),
X	  { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_SGLD, 0, 0 },
X	    NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_LAUGH, MZ_TINY, M1_HUMANOID | M1_TPORT | M1_GREEDY,
X	  M2_HOSTILE, C(GREEN) },
X/*	mimics	*/
X	{ "small mimic", S_MIMIC, 7, 3, 7, 0, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_SILENT, MZ_MEDIUM, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
X	  M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(BROWN) },
X	{ "large mimic", S_MIMIC, 8, 3, 7, 10, 0, (G_GENO | 1),
X	  { { AT_CLAW, AD_STCK, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  40, 400, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
X	  M2_HOSTILE | M2_STRONG | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE,
X	  C(BROWN) },
X	{ "giant mimic", S_MIMIC, 9, 3, 7, 20, 0, (G_GENO | 1),
X	  { { AT_CLAW, AD_STCK, 3, 6 }, { AT_CLAW, AD_STCK, 3, 6 },
X	    NO_ATTK, NO_ATTK, NO_ATTK },
X	  60, 500, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
X	  M2_HOSTILE | M2_STRONG | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE,
X	  C(BROWN) },
X/*	nymphs	*/
X	{ "wood nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
X	    NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE, MZ_HUMAN,
X	  M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_FEM, M2_HOSTILE, C(GREEN) },
X	{ "water nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
X	    NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE, MZ_HUMAN,
X	  M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_FEM | M1_SWIM,
X	  M2_HOSTILE, C(BLUE) },
X	{ "mountain nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
X	    NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_SEDUCE, MZ_HUMAN,
X	  M1_HUMANOID | M1_TPORT | M1_COLLECT | M1_FEM, M2_HOSTILE, C(BROWN) },
X/*	orcs	*/
X	{ "goblin", S_ORC,  0, 6, 6, 0, -3, (G_GENO | 2),
X	  { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  10, 100, 0, MS_ORC, MZ_SMALL,
X	  M1_HUMANOID | M1_COLLECT, M2_ORC, C(YELLOW) },
X	{ "hobgoblin", S_ORC,  1, 9, 6, 0, -4, (G_GENO | 2),
X	  { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_ORC, MZ_HUMAN,
X	  M1_HUMANOID | M1_COLLECT, M2_ORC | M2_STRONG, C(RED) },
X	/* "orc" for zombie corpses only; they don't get created at random */
X	{ "orc", S_ORC,  1, 9, 6, 0, -3, (G_GENO | G_NOGEN | G_LGROUP),
X	  { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  15, 150, 0, MS_ORC, MZ_HUMAN,
X	  M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
X	  M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
X	{ "hill orc", S_ORC, 2, 9, 6, 0, -4, (G_GENO | G_LGROUP | 2),
X	  { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_ORC, MZ_HUMAN,
X	  M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
X	  M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
X#ifdef TOLKIEN
X	{ "Mordor orc", S_ORC, 3, 5, 6, 0, -5, (G_GENO | G_LGROUP | 1),
X	  { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_ORC, MZ_HUMAN,
X	  M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
X	  M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
X	{ "Uruk-hai", S_ORC, 3, 7, 5, 0, -4, (G_GENO | G_LGROUP | 1),
X	  { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_ORC, MZ_HUMAN,
X	  M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
X	  M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
X#endif
X	{ "orc shaman", S_ORC, 3, 9, 5, 10, -5, (G_GENO | 1),
X	  { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_ORC, MZ_HUMAN,
X	  M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_MAGIC,
X	  M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
X	{ "orc-captain", S_ORC, 5, 5, 4, 0, -5, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
X	    NO_ATTK, NO_ATTK, NO_ATTK },
X	  35, 350, 0, MS_ORC, MZ_HUMAN,
X	  M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT,
X	  M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) },
X/*	 piercers	*/
X	{ "rock piercer", S_PIERCER, 3, 1, 3, 0, 0, (G_GENO | 2),
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_SILENT, MZ_SMALL, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
X	  M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
X	{ "iron piercer", S_PIERCER, 5, 1, 0, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  40, 300, 0, MS_SILENT, MZ_MEDIUM, M1_ANIMAL | M1_NOEYES | M1_NOHANDS,
X	  M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
X/*	quadrupeds (generic)	*/
X	{ "rothe", S_QUADRUPED, 2, 9, 7, 0, 0, (G_GENO | G_SGROUP | 4),
X	  { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 1, 3 },
X	    { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
X	  10, 100, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_CARNIVORE, C(WHITE) },
X	{ "osquip", S_QUADRUPED, 3, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 200, 0, MS_SQEEK, MZ_SMALL, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X#ifdef TOLKIEN
X	{ "mumakil", S_QUADRUPED, 5, 9, 0, 0, -2, (G_GENO | 1),
X	  { { AT_BUTT, AD_PHYS, 4, 12 }, { AT_BITE, AD_PHYS, 2, 6 },
X	    NO_ATTK, NO_ATTK, NO_ATTK },
X	  70, 500, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) },
X#endif
X	{ "leocrotta", S_QUADRUPED, 6, 18, 4, 10, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_BITE, AD_PHYS, 2, 6 },
X	    { AT_CLAW, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_IMITATE, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) },
X	{ "wumpus", S_QUADRUPED, 8, 3, 2, 10, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(HI_MON) },
X	{ "titanothere", S_QUADRUPED, 12, 12, 6, 0, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  65, 650, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) },
X	{ "baluchitherium", S_QUADRUPED, 14, 12, 5, 0, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_PHYS, 5, 4 }, { AT_CLAW, AD_PHYS, 5, 4 },
X	    NO_ATTK, NO_ATTK, NO_ATTK },
X	  80, 800, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_STRONG | M2_HERBIVORE | M2_THICK_HIDE, C(GRAY) },
X/*	rodents 	*/
X	{ "sewer rat",	S_RODENT, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 1),
X	  { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  2, 20, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X	{ "giant rat",	S_RODENT, 1, 10, 7, 0, 0, (G_GENO | G_SGROUP | 2),
X	  { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  3, 30, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X	{ "rabid rat", S_RODENT, 2, 12, 6, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_DRCO, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  3, 10, 0, MS_SQEEK, MZ_TINY, M1_ANIMAL | M1_NOHANDS | M1_POIS,
X	  M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X	{ "ratwere", S_RODENT, 2, 12, 6, 10, -7, G_NOGEN | G_NOCORPSE,
X	  { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  3, 30, 0, MS_SQEEK, MZ_TINY, M1_WERE | M1_NOHANDS | M1_NOPOLY |
X	  M1_POIS | M1_REGEN, M2_HOSTILE | M2_CARNIVORE, C(BROWN) },
X	{ "rock mole", S_RODENT, 3, 3, 0, 20, 0, (G_GENO | 2),
X	  { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  3, 30, 0, MS_SILENT, MZ_SMALL, M1_ANIMAL | M1_NOHANDS |
X	  M1_GREEDY | M1_JEWELS | M1_COLLECT, M2_HOSTILE | M2_TUNNEL, C(BROWN)},
X/*	spiders and scorpions	*/
X	{ "cave spider", S_SPIDER, 1, 12, 3, 0, 0, (G_GENO | G_SGROUP | 2),
X	  { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  5, 50, 0, MS_SILENT, MZ_TINY,
X	  M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS_RES,
X	  M2_HOSTILE | M2_CONCEAL | M2_CARNIVORE, C(WHITE) },
X	{ "scorpion", S_SPIDER, 5, 15, 3, 0, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
X	    { AT_STNG, AD_DRST, 1, 4 }, NO_ATTK, NO_ATTK },
X	  10, 100, 0, MS_SILENT, MZ_SMALL,
X	  M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS,
X	  M2_HOSTILE | M2_CONCEAL | M2_CARNIVORE, C(RED) },
X	{ "giant spider", S_SPIDER, 5, 15, 4, 0, 0, (G_GENO | 1),
X	  { { AT_BITE, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  10, 100, 0, MS_SILENT, MZ_LARGE,
X	  M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(MAGENTA) },
X/*	trappers, lurkers, &c.	*/
X	{ "lurker above", S_TRAPPER, 10, 3, 3, 0, 0, (G_GENO | 2),
X	  { { AT_ENGL, AD_DGST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  40, 350, 0, MS_SILENT, MZ_HUGE,
X	  M1_ANIMAL | M1_NOEYES | M1_NOHANDS | M1_STALK | M1_FLY,
X	  M2_HOSTILE | M2_STRONG | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
X	{ "trapper", S_TRAPPER, 12, 3, 3, 0, 0, (G_GENO | 2),
X	  { { AT_ENGL, AD_DGST, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  40, 350, 0, MS_SILENT, MZ_HUGE,
X	  M1_ANIMAL | M1_NOEYES | M1_NOHANDS | M1_STALK,
X	  M2_HOSTILE | M2_STRONG | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) },
X/*	unicorns	*/
X	{ "white unicorn", S_UNICORN, 4, 24, 2, 70, 7, (G_GENO | 2),
X	  { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
X	    NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_NEIGH, MZ_LARGE, M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
X	  M2_WANDER | M2_STRONG | M2_HERBIVORE, C(WHITE) },
X	{ "gray unicorn", S_UNICORN, 4, 24, 2, 70, 0, (G_GENO | 1),
X	  { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
X	    NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_NEIGH, MZ_LARGE, M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
X	  M2_WANDER | M2_STRONG | M2_HERBIVORE, C(GRAY) },
X	{ "black unicorn", S_UNICORN, 4, 24, 2, 70, -7, (G_GENO | 1),
X	  { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
X	    NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_NEIGH, MZ_LARGE, M1_NOHANDS | M1_POIS_RES | M1_JEWELS,
X	  M2_WANDER | M2_STRONG | M2_HERBIVORE, C(BLACK) },
X/*	vortices	*/
X	{ "fog cloud",	S_VORTEX, 3,  1, 0, 0, 0, (G_GENO | G_NOCORPSE | 2),
X	  { { AT_ENGL, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  10, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
X	  M2_HOSTILE | M2_NOLIMBS, C(GRAY) },
X	{ "dust vortex", S_VORTEX, 4, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 2),
X	  { { AT_ENGL, AD_BLND, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
X	  M2_HOSTILE | M2_NOLIMBS, C(BROWN) },
X	{ "energy vortex", S_VORTEX, 6, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
X	  { { AT_ENGL, AD_ELEC, 1, 6 }, { AT_ENGL, AD_DREN, 0, 0 },
X	    NO_ATTK, NO_ATTK, NO_ATTK }, 20, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_ELEC_RES,
X	  M2_HOSTILE | M2_NOLIMBS, C(BRIGHT|BLUE) },
X	{ "ice vortex", S_VORTEX, 5, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
X	  { { AT_ENGL, AD_COLD, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_COLD_RES,
X	  M2_HOSTILE | M2_NOLIMBS, C(CYAN) },
X	{ "steam vortex", S_VORTEX, 7, 22, 2, 30, 0,
X	  (G_HELL | G_GENO | G_NOCORPSE | 2),
X	  { { AT_ENGL, AD_FIRE, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FIRE_RES,
X	  M2_HOSTILE | M2_NOLIMBS, C(BLUE) },
X	{ "fire vortex", S_VORTEX, 8, 22, 2, 30, 0,
X	  (G_HELL | G_GENO | G_NOCORPSE | 1),
X	  { { AT_ENGL, AD_FIRE, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FIRE_RES,
X	  M2_HOSTILE | M2_NOLIMBS, C(YELLOW) },
X/*	worms	*/
X#ifdef WORM
X	{ "baby long worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  25, 250, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_NOLIMBS | M2_CARNIVORE, C(BROWN) },
X#endif
X	{ "baby purple worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  25, 250, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_NOHANDS,
X	  M2_HOSTILE | M2_NOLIMBS | M2_CARNIVORE, C(MAGENTA) },
X#ifdef WORM
X	{ "long worm", S_WORM, 8, 3, 5, 10, 0, (G_GENO | 2),
X	  { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_SILENT, MZ_GIGANTIC,
X	  M1_ANIMAL | M1_NOHANDS | M1_NOPOLY | M1_EGGS,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_NOLIMBS | M2_CARNIVORE,
X	  C(BROWN) },
X#endif
X	{ "purple worm", S_WORM, 15, 9, 6, 20, 0, (G_GENO | 2),
X	  { { AT_BITE, AD_PHYS, 2, 8 }, { AT_ENGL, AD_DGST, 1, 10 },
X	    NO_ATTK, NO_ATTK, NO_ATTK }, 70, 700, 0, MS_SILENT, MZ_GIGANTIC,
X	  M1_ANIMAL | M1_NOHANDS | M1_EGGS,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_NOLIMBS | M2_CARNIVORE,
X	  C(MAGENTA)},
X/*	xan, &c.	*/
X	{ "grid bug", S_XAN, 0, 12, 9, 0, 0,
X	  (G_GENO | G_SGROUP | G_NOCORPSE | 3),
X	  { { AT_BITE, AD_ELEC, 1, 1}, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  5, 50, 0, MS_BUZZ, MZ_TINY, M1_ANIMAL | M1_ELEC_RES, M2_HOSTILE,
X	  C(MAGENTA)},
X	{ "xan", S_XAN, 7, 18, -4, 0, 0, (G_GENO | 3),
X	  { { AT_STNG, AD_LEGS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  30, 300, 0, MS_BUZZ, MZ_TINY, M1_FLY | M1_ANIMAL | M1_NOHANDS |
X	  M1_POIS | M1_POIS_RES, M2_HOSTILE, C(RED) },
X/*	yellow light	*/
X	{ "yellow light", S_YLIGHT,  3, 15, 0, 0, 0, (G_GENO | 4),
X	  { { AT_EXPL, AD_BLND, 10, 20 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  1, 10, 0, MS_SILENT, MZ_SMALL, M1_FLY | M1_NOHANDS,
X	  M2_HOSTILE | M2_NOLIMBS, C(BRIGHT|YELLOW)},
X/*	zruty	*/
X	{ "zruty", S_ZRUTY, 9, 8, 3, 0, 0, (G_GENO | 2),
X	  { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
X	    { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK },
X	  60, 600, 0, MS_SILENT, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) },
X/*	Apes	*/
X	{ "ape", S_APE, 4, 12, 6, 0, 0, (G_GENO | G_SGROUP | 2),
X	  { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
X	    { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
X	  M2_STRONG | M2_CARNIVORE, C(BROWN) },
X	{ "carnivorous ape", S_APE, 5, 12, 6, 0, 0, (G_GENO | 1),
X	  { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
X	    { AT_HUGS, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK },
X	  55, 550, 0, MS_GROWL, MZ_LARGE, M1_ANIMAL | M1_HUMANOID,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) },
X/*	Bats	*/
X	{ "bat", S_BAT, 0, 22, 8, 0, 0, (G_GENO | G_SGROUP | 1),
X	  { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  2, 20, 0, MS_SQEEK, MZ_TINY, M1_FLY | M1_ANIMAL | M1_NOHANDS,
X	  M2_WANDER | M2_CARNIVORE, C(BLACK) },
X	{ "giant bat", S_BAT, 2, 22, 7, 0, 0, (G_GENO | 2),
X	  { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  3, 30, 0, MS_SQEEK, MZ_MEDIUM, M1_FLY | M1_ANIMAL | M1_NOHANDS,
X	  M2_WANDER | M2_HOSTILE | M2_CARNIVORE, C(BLACK) },
X	{ "vampire bat", S_BAT, 5, 20, 6, 0, 0, (G_GENO | 2),
X	  { { AT_BITE, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRST, 0, 0 },
X	    NO_ATTK, NO_ATTK, NO_ATTK },
X	  3, 20, 0, MS_SQEEK, MZ_TINY, M1_FLY | M1_ANIMAL | M1_UNDEAD |
X	  M1_NOHANDS | M1_POIS | M1_REGEN, M2_HOSTILE, C(BLACK) },
X/*	Centaurs	*/
X	{ "plains centaur", S_CENTAUR, 4, 18, 4, 0, 0, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_KICK, AD_PHYS, 1, 6 },
X	    NO_ATTK, NO_ATTK, NO_ATTK},
X	  50, 500, 0, MS_SILENT, MZ_LARGE, M1_COLLECT | M1_GREEDY, M2_STRONG,
X	  C(BROWN)  },
X	{ "forest centaur", S_CENTAUR, 5, 18, 3, 10, -1, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_KICK, AD_PHYS, 1, 6 },
X	    NO_ATTK, NO_ATTK, NO_ATTK},
X	  55, 600, 0, MS_SILENT, MZ_LARGE, M1_COLLECT | M1_GREEDY, M2_STRONG,
X	  C(GREEN)  },
X	{ "mountain centaur", S_CENTAUR, 6, 20, 2, 10, -3, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 1, 10 }, { AT_KICK, AD_PHYS, 1, 6 },
X	    { AT_KICK, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK },
X	  55, 500, 0, MS_SILENT, MZ_LARGE, M1_COLLECT | M1_GREEDY, M2_STRONG,
X	  C(BROWN)},
X/*	Dragons 	*/
X	{ "baby gray dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_ROAR, MZ_HUGE,
X	  M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) },
X	{ "baby red dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_ROAR, MZ_HUGE,
X	  M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_FIRE_RES,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(RED) },
X	{ "baby white dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_ROAR, MZ_HUGE,
X	  M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_COLD_RES,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(WHITE) },
X	{ "baby blue dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_ROAR, MZ_HUGE,
X	  M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_ELEC_RES,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(BLUE) },
X	{ "baby green dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_ROAR, MZ_HUGE,
X	  M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_POIS |
X	  M1_POIS_RES, M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(GREEN)},
X	{ "baby orange dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_ROAR, MZ_HUGE,
X	  M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_SLEE_RES,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(ORANGE_COLORED) },
X	{ "baby black dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_ROAR, MZ_HUGE,
X	  M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(BLACK) },
X	{ "baby yellow dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
X	  { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 500, 0, MS_ROAR, MZ_HUGE,
X	  M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS,
X	  M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(YELLOW) },
X	{ "gray dragon", S_DRAGON, 10, 9, -1, 20, 4, (G_GENO | 1),
X	  { { AT_BREA, AD_MAGM, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
X	    { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
X	  150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
X	  M1_NOHANDS | M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(GRAY)},
X	{ "red dragon", S_DRAGON, 10, 9, -1, 20, -4, (G_GENO | 1),
X	  { { AT_BREA, AD_FIRE, 6, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
X	    { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
X	  150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
X	  M1_NOHANDS | M1_EGGS | M1_FIRE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(RED)},
X	{ "orange dragon", S_DRAGON, 10, 9, -1, 20, 5, (G_GENO | 1),
X	  { { AT_BREA, AD_SLEE, 4, 25 }, { AT_BITE, AD_PHYS, 3, 8 },
X	    { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
X	  150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
X	  M1_NOHANDS | M1_EGGS | M1_SLEE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(ORANGE_COLORED)},
X	{ "white dragon", S_DRAGON, 10, 9, -1, 20, -5, (G_GENO | 1),
X	  { { AT_BREA, AD_COLD, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
X	    { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
X	  150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
X	  M1_NOHANDS | M1_EGGS | M1_COLD_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(WHITE)},
X	{ "black dragon", S_DRAGON, 10, 9, -1, 20, -6, (G_GENO | 1),
X	  { { AT_BREA, AD_DISN, 4, 10 }, { AT_BITE, AD_PHYS, 3, 8 },
X	    { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
X	  150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
X	  M1_NOHANDS | M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(BLACK)},
X	{ "blue dragon", S_DRAGON, 10, 9, -1, 20, -7, (G_GENO | 1),
X	  { { AT_BREA, AD_ELEC, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
X	    { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
X	  150, 1500, 0, MS_ROAR, MZ_GIGANTIC, M1_FLY | M1_SEE_INVIS |
X	  M1_NOHANDS | M1_EGGS | M1_ELEC_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(BLUE)},
X	{ "green dragon", S_DRAGON, 10, 9, -1, 20, 6, (G_GENO | 1),
X	  { { AT_BREA, AD_DRST, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
X	    { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
X	  150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
X	  M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES |
X	  M1_GREEDY | M1_JEWELS | M1_MAGIC,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(GREEN)},
X	{ "yellow dragon", S_DRAGON, 10, 9, -1, 20, 7, (G_GENO | 1),
X	  { { AT_BREA, AD_ACID, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
X	    { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK },
X	  150, 1500, 0, MS_ROAR, MZ_GIGANTIC,
X	  M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_EGGS | M1_POIS | M1_STON_RES |
X	  M1_GREEDY | M1_JEWELS | M1_MAGIC,
X	  M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE,
X	  C(YELLOW)},
X/*	Elementals	*/
X	{ "air elemental", S_ELEMENTAL, 8, 36, 2, 30, 0, (G_NOCORPSE | 1),
X	  { { AT_ENGL, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  5, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FLY,
X	  M2_STRONG | M2_NOLIMBS, C(CYAN) },
X	{ "fire elemental", S_ELEMENTAL, 8, 12, 2, 30, 0, (G_NOCORPSE | 1),
X	  { { AT_CLAW, AD_FIRE, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  5, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FLY | M1_FIRE_RES,
X	  M2_STRONG | M2_NOLIMBS, C(YELLOW) },
X	{ "earth elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
X	  { { AT_CLAW, AD_PHYS, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_WALLWALK | M1_NOEYES | M1_NOHANDS | M1_POIS_RES |
X	  M1_STON_RES, M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(BROWN) },
X	{ "water elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
X	  { { AT_CLAW, AD_PHYS, 5, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  50, 0, 0, MS_SILENT, MZ_HUGE,
X	  M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_SWIM,
X	  M2_STRONG | M2_NOLIMBS, C(BLUE) },
X/*	Fungi	*/
X	{ "violet fungus", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 2),
X	  { { AT_TUCH, AD_PHYS, 1, 4 }, { AT_TUCH, AD_STCK, 0, 0 },
X	    NO_ATTK, NO_ATTK, NO_ATTK }, 10, 100, 0, MS_SILENT, MZ_SMALL,
X	  M1_NOEYES | M1_NOHANDS | M1_POIS_RES,
X	  M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, C(MAGENTA) },
X	{ "brown mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
X	  { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  5, 30, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS |
X	  M1_POIS_RES | M1_COLD_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
X	  C(BROWN)},
X	{ "yellow mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 2),
X	  { { AT_NONE, AD_STUN, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  5, 30, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS |
X	  M1_POIS | M1_POIS_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
X	  C(YELLOW)},
X	{ "green mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
X	  { { AT_NONE, AD_ACID, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  5, 30, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS |
X	  M1_POIS | M1_STON_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
X	  C(GREEN)},
X	{ "red mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
X	  { { AT_NONE, AD_FIRE, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  5, 30, 0, MS_SILENT, MZ_SMALL, M1_NOEYES | M1_NOHANDS |
X	  M1_POIS_RES | M1_FIRE_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE,
X	  C(RED)},
X/*	Gnomes	*/
X	{ "gnome", S_GNOME, 1, 6, 5, 4, 0, (G_GENO | G_SGROUP | 1),
X	  { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  10, 100, 0, MS_ORC, MZ_SMALL,
X	  M1_HUMANOID | M1_COLLECT, 0, C(HI_MON) },
X	{ "gnome lord", S_GNOME, 3, 8, 4, 4, 0, (G_GENO | 2),
X	  { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  15, 120, 0, MS_ORC, MZ_SMALL,
X	  M1_HUMANOID | M1_COLLECT | M1_LORD, 0, C(HI_MON) },
X	{ "gnome king", S_GNOME, 5, 10, 2, 20, 0, (G_GENO | 1),
X	  { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  20, 150, 0, MS_ORC, MZ_SMALL,
X	  M1_HUMANOID | M1_COLLECT | M1_PRINCE, 0, C(HI_LORD) },
X	{ "gnomish wizard", S_GNOME, 3, 10, 4, 10, 0, (G_GENO | 1),
X	  { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
X	  15, 120, 0, MS_ORC, MZ_SMALL,
X	  M1_HUMANOID | M1_MAGIC, 0, C(HI_MON) },
X#ifdef SPLITMON_1
X};
X#endif
X#endif /* !SPLITMON_2 */
END_OF_FILE
if test 39921 -ne `wc -c <'src/monst.c1'`; then
    echo shar: \"'src/monst.c1'\" unpacked with wrong size!
fi
# end of 'src/monst.c1'
echo shar: End of archive 14 \(of 15\).
cp /dev/null ark14isdone
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