[comp.sources.games] v02i053: dungeon - game of adventure, Patch1

games-request@tekred.TEK.COM (10/10/87)

Submitted by: Bill Randle <games-request@tekred.TEK.COM>
Comp.sources.games: Volume 2, Issue 53
Archive-name: dungeon/Patch1

	[This is the first official patch for dungeon, posted in two
	 parts (Patch1 and Patch2).  See README.pch for more info.
	 Run the dungeon.pch file thru patch(1) to update your sources.]

#! /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 shell archive."
# Contents:  README.pch Makefile.bsd Makefile.sun Makefile.sysv
#   dungeon.pch
# Wrapped by billr@tekred on Fri Oct  9 17:01:57 1987
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f README.pch -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"README.pch\"
else
echo shar: Extracting \"README.pch\" \(848 characters\)
sed "s/^X//" >README.pch <<'END_OF_README.pch'
XOfficial patches 1 and 2 for net release of dungeon.   Oct. 9, 1987
X
XPatch1 contains the patches to the source files and Makefile.  Patch2
Xcontains the patches to the uuencoded text file (dtext.dat.uu).  I
Xhad to split this up into two patches because of the size of the
Xcontext diffs to the text file.
X
XThe Makefile has been split into three pre-configured makefiles for
Xgeneric BSD systems, System V systems and Suns.  Copy the one that
Xbest matches your system into the file Makefile and edit the paths,
Xetc. as needed.
X
XThe sources patches fix a few logic bugs in the program, but mainly
Xconsist of cleanups for System V compatability.  Thanks to Dave
XNewkirk (ihnp4!ihlpm!dcn) and Randy (randy@peora.ccur.com) for their
Xinvaluable help in this area.
X
X	-Bill Randle
X	Moderator, comp.sources.games
X	Tektronix, Inc.
X	games-request@tekred.TEK.COM
END_OF_README.pch
if test 848 -ne `wc -c <README.pch`; then
    echo shar: \"README.pch\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f Makefile.bsd -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"Makefile.bsd\"
else
echo shar: Extracting \"Makefile.bsd\" \(9540 characters\)
sed "s/^X//" >Makefile.bsd <<'END_OF_Makefile.bsd'
X# Makefile for creating dungeon
X# Edit BIN DDIR and FFLAGS suitable for your system
X# Also, if you are running System V change the .F.o production
X#  and production for dinit.F as indicated.
X#
X# need SUFFIXES for System V (doesn't grok .F)
X.SUFFIXES: .F
X.c.o:
X	cc -c $(CFLAGS) $*.c
X.F.o:
X	f77 -c $(FFLAGS) $*.F
X# For System V use the following production instead:
X#	@/lib/cpp $(CPPFLAGS) $*.F > $*.f
X#	f77 -c $(FFLAGS) $*.f
X#	rm $*.f
X
X# define SYSV if running System V or V7
XCFLAGS = -O # -DSYSV -g -i
XCPPFLAGS = -P
X#
X# f77 compiler flags for BSD Vax (and other similar machines)
XFOPTS = -q # -g -Ddebug
X# use -Nn650 for System V to increase default symbol table size
X# also, define SYSV and no -g flag (causes runtime errors)
X#FOPTS = -q -Nn650 -DSYSV # -Ddebug
X# f77 compiler flags for pdp (64K split I/D)
X#FOPTS = -q -I2 -L1 -i -DPDP # -Nn650 -Ddebug
XFFLAGS = -O $(FOPTS)
X
X# flags for the loader
XLDFLAGS = # -s -g -v
X
X# Directory path for main program - default /usr/games
XBIN = /usr/games
X# Directory path for data files - default is /usr/games/lib/dunlib
XLIB = /usr/games/lib/dunlib
XDDIR = \'/usr/games/lib/dunlib
XDCDIR =\"/usr/games/lib/dunlib
X# Directory path for man page - default /usr/manl/man6
XMDIR = /usr/manl/man6
X# userid for wizard - allows invoking game debugging tool - default 0
XWIZDEF = -DWIZARDID=320
X
XHDRS =	advers.h clock.h curxt.h debug.h exits.h files.h flags.h\
X	gamestate.h io.h mindex.h objects.h oflags.h oindex.h\
X	parser.h puzzle.h rflag.h rindex.h rooms.h screen.h state.h\
X	verbs.h villians.h vocab.h xpars.h xsrch.h
X
XFSRC =  actors.F ballop.F clockr.F demons.F\
X	dgame.F dinit.F dmain.F dso1.F dso2.F\
X	dso3.F dso4.F dso5.F dso6.F dso7.F\
X	dsub.F dverb1.F dverb2.F gdt.F lightp.F\
X	nobjs.F np.F np1.F np2.F np3.F nrooms.F objcts.F\
X	rooms.F sobjs.F sverbs.F verbs.F villns.F
X
XCSRC =	cinit.c cio.c cspeak.c decode.c lex.c listen.c rtim.c
X
XOBJS =  actors.o ballop.o clockr.o demons.o\
X	dgame.o dinit.o dmain.o dso1.o dso2.o\
X	dso3.o dso4.o dso5.o dso6.o dso7.o\
X	dsub.o dverb1.o dverb2.o gdt.o lightp.o\
X	nobjs.o np.o np1.o np2.o np3.o nrooms.o objcts.o\
X	rooms.o rtim.o sobjs.o sverbs.o verbs.o villns.o
X
XPDPOBJS = cinit.o cio.o lex.o
XLISTEN = listen.o
XSPEAK = cspeak.o speak.o
X
Xvax:	dungeon dtext.dat
Xpdp:	dungpdp speak listen dtext.dat
X
Xdungeon: $(OBJS)
X	f77 -o dungeon $(OBJS) $(LDFLAGS)
X	@echo done
X
Xdungpdp: $(OBJS) $(PDPOBJS)
X	f77 -i -s -o dungpdp $(OBJS) $(PDPOBJS)
X	@echo done
X
Xspeak:	$(SPEAK)
X	f77 -i -s -o speak $(SPEAK)
X	
Xspeak.o: speak.F
X	f77 $(FFLAGS) -DDDIR=$(DDIR) -c speak.F
X# For System V use the following instead:
X#	@/lib/cpp $(CPPFLAGS) speak.F > speak.f
X#	f77 $(FFLAGS) -DDDIR=$(DDIR) -c speak.f
X#	rm $*.f
X
Xlisten:	$(LISTEN)
X	cc $(CFLAGS) -o listen $(LISTEN)
X
Xlisten.o: listen.c
X	cc $(CFLAGS) -DCINDEXFILE=$(DCDIR)/dindx.dat\" -c listen.c
X
Xdinit.o: dinit.F
X	f77 $(FFLAGS) -DDDIR=$(DDIR) $(WIZDEF) -c dinit.F
X# For System V use the following instead:
X#	@/lib/cpp $(CPPFLAGS) dinit.F > dinit.f
X#	f77 $(FFLAGS) -DDDIR=$(DDIR) $(WIZDEF) -c dinit.f
X#	rm $*.f
X
X# uncomment the following for Suns to get around an optimizer bug
X# -P means partial optimization.
X#objcts.o: objcts.F
X#	f77 $(FOPTS) -P -c objcts.F
X
Xinstall-vax: vax
X	cp dungeon $(BIN)
X	-mkdir $(LIB)
X	cp dindx.dat dtext.dat $(LIB)
X	cp dungeon.6 $(MDIR)/dungeon.6
X
Xinstall-pdp: pdp
X	cp dungeon.sh $(BIN)
X	-mkdir $(LIB)
X	cp dindx.dat dtext.dat rtext.dat dungpdp $(LIB)
X	cp dungeon.6 $(MDIR)/dungeon.6
X
Xdtext.dat: 
X	./maketxt.sh
X
X
Xclean:
X	-rm $(OBJS) Mk* core makedep eddep
X
Xdepend:
X	grep '^#include' $(FSRC) $(CSRC) $(HDRS) | grep -v '<' | \
X	sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' \
X	    -e 's/\.c/.o/' \
X	    -e 's/\.F/.o/' \
X	    -e 's,../[a-zA-Z]*/,,' | \
X	awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \
X		else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
X		       else rec = rec " " $$2 } } \
X	      END { print rec } ' > makedep
X	echo '$$r makedep' >>eddep
X	echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep
X	echo '$$r makedep' >>eddep
X	echo 'w' >>eddep
X	cp Makefile Makefile.bak
X	ed - Makefile < eddep
X	rm eddep makedep
X
X# DO NOT DELETE THIS LINE -- make depend uses it
X
Xactors.o: parser.h gamestate.h rooms.h rflag.h rindex.h xsrch.h objects.h
Xactors.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h gamestate.h
Xactors.o: debug.h rooms.h rflag.h rindex.h objects.h oflags.h oindex.h
Xactors.o: villians.h flags.h
Xballop.o: parser.h gamestate.h state.h rooms.h rflag.h curxt.h xpars.h
Xballop.o: objects.h oflags.h oindex.h clock.h verbs.h flags.h
Xclockr.o: gamestate.h state.h rooms.h rflag.h rindex.h objects.h oflags.h
Xclockr.o: oindex.h clock.h curxt.h xsrch.h villians.h advers.h flags.h
Xclockr.o: gamestate.h objects.h oflags.h clock.h
Xdemons.o: parser.h gamestate.h objects.h oflags.h oindex.h villians.h advers.h
Xdemons.o: verbs.h flags.h gamestate.h parser.h objects.h oflags.h clock.h
Xdemons.o: advers.h verbs.h gamestate.h curxt.h xsrch.h objects.h oindex.h
Xdemons.o: villians.h advers.h rindex.h objects.h oindex.h villians.h flags.h
Xdgame.o: parser.h gamestate.h state.h io.h rooms.h rindex.h objects.h oflags.h
Xdgame.o: oindex.h advers.h verbs.h flags.h parser.h villians.h gamestate.h
Xdgame.o: objects.h advers.h
Xdinit.o: files.h parser.h gamestate.h state.h screen.h mindex.h io.h debug.h
Xdinit.o: rooms.h rflag.h rindex.h exits.h curxt.h xpars.h objects.h oindex.h
Xdinit.o: clock.h villians.h advers.h flags.h
Xdmain.o: parser.h gamestate.h state.h screen.h puzzle.h io.h debug.h rooms.h
Xdmain.o: rflag.h rindex.h exits.h curxt.h xpars.h xsrch.h objects.h oflags.h
Xdmain.o: oindex.h clock.h villians.h advers.h verbs.h flags.h
Xdso1.o: gamestate.h rooms.h rflag.h objects.h oflags.h oindex.h advers.h
Xdso1.o: flags.h gamestate.h objects.h oflags.h advers.h objects.h
Xdso2.o: gamestate.h rooms.h rflag.h objects.h oindex.h advers.h gamestate.h
Xdso2.o: state.h advers.h flags.h gamestate.h state.h clock.h advers.h flags.h
Xdso3.o: rooms.h exits.h curxt.h xpars.h objects.h oflags.h
Xdso4.o: objects.h oflags.h objects.h oflags.h objects.h state.h advers.h
Xdso4.o: parser.h objects.h oflags.h oindex.h villians.h flags.h
Xdso5.o: parser.h objects.h oflags.h verbs.h rooms.h rflag.h objects.h oflags.h
Xdso5.o: advers.h objects.h
Xdso6.o: rooms.h rflag.h rindex.h rindex.h flags.h
Xdso7.o: rooms.h rflag.h rindex.h objects.h oflags.h flags.h flags.h
Xdsub.o: gamestate.h mindex.h io.h parser.h objects.h debug.h objects.h
Xdsub.o: objects.h objects.h parser.h gamestate.h state.h io.h debug.h rooms.h
Xdsub.o: rflag.h rindex.h objects.h oflags.h oindex.h advers.h flags.h advers.h
Xdsub.o: flags.h parser.h gamestate.h screen.h rooms.h rflag.h xsrch.h objects.h
Xdsub.o: advers.h verbs.h flags.h
Xdverb1.o: parser.h gamestate.h state.h objects.h oflags.h advers.h parser.h
Xdverb1.o: gamestate.h rindex.h objects.h oflags.h advers.h verbs.h parser.h
Xdverb1.o: gamestate.h objects.h oflags.h advers.h verbs.h parser.h gamestate.h
Xdverb1.o: objects.h oflags.h verbs.h
Xdverb2.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h exits.h
Xdverb2.o: objects.h clock.h villians.h advers.h flags.h parser.h gamestate.h
Xdverb2.o: state.h screen.h puzzle.h rooms.h exits.h objects.h clock.h
Xdverb2.o: villians.h advers.h flags.h parser.h gamestate.h rooms.h rflag.h
Xdverb2.o: curxt.h xsrch.h objects.h oflags.h clock.h villians.h advers.h
Xdverb2.o: flags.h gamestate.h parser.h puzzle.h rooms.h rindex.h exits.h
Xdverb2.o: curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h advers.h flags.h
Xgdt.o: parser.h gamestate.h state.h screen.h puzzle.h io.h mindex.h debug.h
Xgdt.o: rooms.h rindex.h exits.h objects.h oindex.h clock.h villians.h advers.h
Xgdt.o: flags.h
Xlightp.o: parser.h gamestate.h objects.h oflags.h oindex.h clock.h verbs.h
Xlightp.o: flags.h
Xnobjs.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h rflag.h
Xnobjs.o: rindex.h objects.h oflags.h oindex.h clock.h villians.h advers.h
Xnobjs.o: verbs.h flags.h gamestate.h parser.h verbs.h flags.h
Xnp.o: parser.h io.h debug.h parser.h xsrch.h parser.h debug.h
Xnp1.o: parser.h gamestate.h debug.h objects.h oindex.h advers.h verbs.h vocab.h
Xnp2.o: parser.h gamestate.h debug.h objects.h oflags.h advers.h vocab.h
Xnp2.o: objects.h oflags.h vocab.h
Xnp3.o: parser.h vocab.h debug.h vocab.h parser.h objects.h parser.h parser.h
Xnp3.o: gamestate.h state.h objects.h oflags.h advers.h parser.h gamestate.h
Xnp3.o: objects.h oflags.h advers.h
Xnrooms.o: parser.h gamestate.h state.h io.h rooms.h rflag.h rindex.h objects.h
Xnrooms.o: oflags.h oindex.h xsrch.h clock.h advers.h verbs.h flags.h
Xnrooms.o: gamestate.h flags.h rindex.h flags.h
Xobjcts.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h
Xobjcts.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h
Xrooms.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h
Xrooms.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h
Xsobjs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h
Xsobjs.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h
Xsverbs.o: parser.h gamestate.h state.h screen.h io.h rooms.h rflag.h rindex.h
Xsverbs.o: exits.h curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h clock.h
Xsverbs.o: advers.h verbs.h flags.h
Xverbs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h xsrch.h
Xverbs.o: objects.h oflags.h oindex.h advers.h verbs.h clock.h
Xvillns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h
Xvillns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h
Xvillns.o: parser.h gamestate.h rindex.h objects.h oflags.h oindex.h clock.h
Xvillns.o: villians.h verbs.h flags.h
END_OF_Makefile.bsd
if test 9540 -ne `wc -c <Makefile.bsd`; then
    echo shar: \"Makefile.bsd\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f Makefile.sun -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"Makefile.sun\"
else
echo shar: Extracting \"Makefile.sun\" \(9540 characters\)
sed "s/^X//" >Makefile.sun <<'END_OF_Makefile.sun'
X# Makefile for creating dungeon
X# Edit BIN DDIR and FFLAGS suitable for your system
X# Also, if you are running System V change the .F.o production
X#  and production for dinit.F as indicated.
X#
X# need SUFFIXES for System V (doesn't grok .F)
X.SUFFIXES: .F
X.c.o:
X	cc -c $(CFLAGS) $*.c
X.F.o:
X	f77 -c $(FFLAGS) $*.F
X# For System V use the following production instead:
X#	@/lib/cpp $(CPPFLAGS) $*.F > $*.f
X#	f77 -c $(FFLAGS) $*.f
X#	rm $*.f
X
X# define SYSV if running System V or V7
XCFLAGS = -O # -DSYSV -g -i
XCPPFLAGS = -P
X#
X# f77 compiler flags for BSD Vax (and other similar machines)
XFOPTS = -q # -g -Ddebug
X# use -Nn650 for System V to increase default symbol table size
X# also, define SYSV and no -g flag (causes runtime errors)
X#FOPTS = -q -Nn650 -DSYSV # -Ddebug
X# f77 compiler flags for pdp (64K split I/D)
X#FOPTS = -q -I2 -L1 -i -DPDP # -Nn650 -Ddebug
XFFLAGS = -O $(FOPTS)
X
X# flags for the loader
XLDFLAGS = # -s -g -v
X
X# Directory path for main program - default /usr/games
XBIN = /usr/games
X# Directory path for data files - default is /usr/games/lib/dunlib
XLIB = /usr/games/lib/dunlib
XDDIR = \'/usr/games/lib/dunlib
XDCDIR =\"/usr/games/lib/dunlib
X# Directory path for man page - default /usr/manl/man6
XMDIR = /usr/manl/man6
X# userid for wizard - allows invoking game debugging tool - default 0
XWIZDEF = -DWIZARDID=320
X
XHDRS =	advers.h clock.h curxt.h debug.h exits.h files.h flags.h\
X	gamestate.h io.h mindex.h objects.h oflags.h oindex.h\
X	parser.h puzzle.h rflag.h rindex.h rooms.h screen.h state.h\
X	verbs.h villians.h vocab.h xpars.h xsrch.h
X
XFSRC =  actors.F ballop.F clockr.F demons.F\
X	dgame.F dinit.F dmain.F dso1.F dso2.F\
X	dso3.F dso4.F dso5.F dso6.F dso7.F\
X	dsub.F dverb1.F dverb2.F gdt.F lightp.F\
X	nobjs.F np.F np1.F np2.F np3.F nrooms.F objcts.F\
X	rooms.F sobjs.F sverbs.F verbs.F villns.F
X
XCSRC =	cinit.c cio.c cspeak.c decode.c lex.c listen.c rtim.c
X
XOBJS =  actors.o ballop.o clockr.o demons.o\
X	dgame.o dinit.o dmain.o dso1.o dso2.o\
X	dso3.o dso4.o dso5.o dso6.o dso7.o\
X	dsub.o dverb1.o dverb2.o gdt.o lightp.o\
X	nobjs.o np.o np1.o np2.o np3.o nrooms.o objcts.o\
X	rooms.o rtim.o sobjs.o sverbs.o verbs.o villns.o
X
XPDPOBJS = cinit.o cio.o lex.o
XLISTEN = listen.o
XSPEAK = cspeak.o speak.o
X
Xvax:	dungeon dtext.dat
Xpdp:	dungpdp speak listen dtext.dat
X
Xdungeon: $(OBJS)
X	f77 -o dungeon $(OBJS) $(LDFLAGS)
X	@echo done
X
Xdungpdp: $(OBJS) $(PDPOBJS)
X	f77 -i -s -o dungpdp $(OBJS) $(PDPOBJS)
X	@echo done
X
Xspeak:	$(SPEAK)
X	f77 -i -s -o speak $(SPEAK)
X	
Xspeak.o: speak.F
X	f77 $(FFLAGS) -DDDIR=$(DDIR) -c speak.F
X# For System V use the following instead:
X#	@/lib/cpp $(CPPFLAGS) speak.F > speak.f
X#	f77 $(FFLAGS) -DDDIR=$(DDIR) -c speak.f
X#	rm $*.f
X
Xlisten:	$(LISTEN)
X	cc $(CFLAGS) -o listen $(LISTEN)
X
Xlisten.o: listen.c
X	cc $(CFLAGS) -DCINDEXFILE=$(DCDIR)/dindx.dat\" -c listen.c
X
Xdinit.o: dinit.F
X	f77 $(FFLAGS) -DDDIR=$(DDIR) $(WIZDEF) -c dinit.F
X# For System V use the following instead:
X#	@/lib/cpp $(CPPFLAGS) dinit.F > dinit.f
X#	f77 $(FFLAGS) -DDDIR=$(DDIR) $(WIZDEF) -c dinit.f
X#	rm $*.f
X
X# uncomment the following for Suns to get around an optimizer bug
X# -P means partial optimization.
X#objcts.o: objcts.F
X#	f77 $(FOPTS) -P -c objcts.F
X
Xinstall-vax: vax
X	cp dungeon $(BIN)
X	-mkdir $(LIB)
X	cp dindx.dat dtext.dat $(LIB)
X	cp dungeon.6 $(MDIR)/dungeon.6
X
Xinstall-pdp: pdp
X	cp dungeon.sh $(BIN)
X	-mkdir $(LIB)
X	cp dindx.dat dtext.dat rtext.dat dungpdp $(LIB)
X	cp dungeon.6 $(MDIR)/dungeon.6
X
Xdtext.dat: 
X	./maketxt.sh
X
X
Xclean:
X	-rm $(OBJS) Mk* core makedep eddep
X
Xdepend:
X	grep '^#include' $(FSRC) $(CSRC) $(HDRS) | grep -v '<' | \
X	sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' \
X	    -e 's/\.c/.o/' \
X	    -e 's/\.F/.o/' \
X	    -e 's,../[a-zA-Z]*/,,' | \
X	awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \
X		else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
X		       else rec = rec " " $$2 } } \
X	      END { print rec } ' > makedep
X	echo '$$r makedep' >>eddep
X	echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep
X	echo '$$r makedep' >>eddep
X	echo 'w' >>eddep
X	cp Makefile Makefile.bak
X	ed - Makefile < eddep
X	rm eddep makedep
X
X# DO NOT DELETE THIS LINE -- make depend uses it
X
Xactors.o: parser.h gamestate.h rooms.h rflag.h rindex.h xsrch.h objects.h
Xactors.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h gamestate.h
Xactors.o: debug.h rooms.h rflag.h rindex.h objects.h oflags.h oindex.h
Xactors.o: villians.h flags.h
Xballop.o: parser.h gamestate.h state.h rooms.h rflag.h curxt.h xpars.h
Xballop.o: objects.h oflags.h oindex.h clock.h verbs.h flags.h
Xclockr.o: gamestate.h state.h rooms.h rflag.h rindex.h objects.h oflags.h
Xclockr.o: oindex.h clock.h curxt.h xsrch.h villians.h advers.h flags.h
Xclockr.o: gamestate.h objects.h oflags.h clock.h
Xdemons.o: parser.h gamestate.h objects.h oflags.h oindex.h villians.h advers.h
Xdemons.o: verbs.h flags.h gamestate.h parser.h objects.h oflags.h clock.h
Xdemons.o: advers.h verbs.h gamestate.h curxt.h xsrch.h objects.h oindex.h
Xdemons.o: villians.h advers.h rindex.h objects.h oindex.h villians.h flags.h
Xdgame.o: parser.h gamestate.h state.h io.h rooms.h rindex.h objects.h oflags.h
Xdgame.o: oindex.h advers.h verbs.h flags.h parser.h villians.h gamestate.h
Xdgame.o: objects.h advers.h
Xdinit.o: files.h parser.h gamestate.h state.h screen.h mindex.h io.h debug.h
Xdinit.o: rooms.h rflag.h rindex.h exits.h curxt.h xpars.h objects.h oindex.h
Xdinit.o: clock.h villians.h advers.h flags.h
Xdmain.o: parser.h gamestate.h state.h screen.h puzzle.h io.h debug.h rooms.h
Xdmain.o: rflag.h rindex.h exits.h curxt.h xpars.h xsrch.h objects.h oflags.h
Xdmain.o: oindex.h clock.h villians.h advers.h verbs.h flags.h
Xdso1.o: gamestate.h rooms.h rflag.h objects.h oflags.h oindex.h advers.h
Xdso1.o: flags.h gamestate.h objects.h oflags.h advers.h objects.h
Xdso2.o: gamestate.h rooms.h rflag.h objects.h oindex.h advers.h gamestate.h
Xdso2.o: state.h advers.h flags.h gamestate.h state.h clock.h advers.h flags.h
Xdso3.o: rooms.h exits.h curxt.h xpars.h objects.h oflags.h
Xdso4.o: objects.h oflags.h objects.h oflags.h objects.h state.h advers.h
Xdso4.o: parser.h objects.h oflags.h oindex.h villians.h flags.h
Xdso5.o: parser.h objects.h oflags.h verbs.h rooms.h rflag.h objects.h oflags.h
Xdso5.o: advers.h objects.h
Xdso6.o: rooms.h rflag.h rindex.h rindex.h flags.h
Xdso7.o: rooms.h rflag.h rindex.h objects.h oflags.h flags.h flags.h
Xdsub.o: gamestate.h mindex.h io.h parser.h objects.h debug.h objects.h
Xdsub.o: objects.h objects.h parser.h gamestate.h state.h io.h debug.h rooms.h
Xdsub.o: rflag.h rindex.h objects.h oflags.h oindex.h advers.h flags.h advers.h
Xdsub.o: flags.h parser.h gamestate.h screen.h rooms.h rflag.h xsrch.h objects.h
Xdsub.o: advers.h verbs.h flags.h
Xdverb1.o: parser.h gamestate.h state.h objects.h oflags.h advers.h parser.h
Xdverb1.o: gamestate.h rindex.h objects.h oflags.h advers.h verbs.h parser.h
Xdverb1.o: gamestate.h objects.h oflags.h advers.h verbs.h parser.h gamestate.h
Xdverb1.o: objects.h oflags.h verbs.h
Xdverb2.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h exits.h
Xdverb2.o: objects.h clock.h villians.h advers.h flags.h parser.h gamestate.h
Xdverb2.o: state.h screen.h puzzle.h rooms.h exits.h objects.h clock.h
Xdverb2.o: villians.h advers.h flags.h parser.h gamestate.h rooms.h rflag.h
Xdverb2.o: curxt.h xsrch.h objects.h oflags.h clock.h villians.h advers.h
Xdverb2.o: flags.h gamestate.h parser.h puzzle.h rooms.h rindex.h exits.h
Xdverb2.o: curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h advers.h flags.h
Xgdt.o: parser.h gamestate.h state.h screen.h puzzle.h io.h mindex.h debug.h
Xgdt.o: rooms.h rindex.h exits.h objects.h oindex.h clock.h villians.h advers.h
Xgdt.o: flags.h
Xlightp.o: parser.h gamestate.h objects.h oflags.h oindex.h clock.h verbs.h
Xlightp.o: flags.h
Xnobjs.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h rflag.h
Xnobjs.o: rindex.h objects.h oflags.h oindex.h clock.h villians.h advers.h
Xnobjs.o: verbs.h flags.h gamestate.h parser.h verbs.h flags.h
Xnp.o: parser.h io.h debug.h parser.h xsrch.h parser.h debug.h
Xnp1.o: parser.h gamestate.h debug.h objects.h oindex.h advers.h verbs.h vocab.h
Xnp2.o: parser.h gamestate.h debug.h objects.h oflags.h advers.h vocab.h
Xnp2.o: objects.h oflags.h vocab.h
Xnp3.o: parser.h vocab.h debug.h vocab.h parser.h objects.h parser.h parser.h
Xnp3.o: gamestate.h state.h objects.h oflags.h advers.h parser.h gamestate.h
Xnp3.o: objects.h oflags.h advers.h
Xnrooms.o: parser.h gamestate.h state.h io.h rooms.h rflag.h rindex.h objects.h
Xnrooms.o: oflags.h oindex.h xsrch.h clock.h advers.h verbs.h flags.h
Xnrooms.o: gamestate.h flags.h rindex.h flags.h
Xobjcts.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h
Xobjcts.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h
Xrooms.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h
Xrooms.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h
Xsobjs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h
Xsobjs.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h
Xsverbs.o: parser.h gamestate.h state.h screen.h io.h rooms.h rflag.h rindex.h
Xsverbs.o: exits.h curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h clock.h
Xsverbs.o: advers.h verbs.h flags.h
Xverbs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h xsrch.h
Xverbs.o: objects.h oflags.h oindex.h advers.h verbs.h clock.h
Xvillns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h
Xvillns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h
Xvillns.o: parser.h gamestate.h rindex.h objects.h oflags.h oindex.h clock.h
Xvillns.o: villians.h verbs.h flags.h
END_OF_Makefile.sun
if test 9540 -ne `wc -c <Makefile.sun`; then
    echo shar: \"Makefile.sun\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f Makefile.sysv -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"Makefile.sysv\"
else
echo shar: Extracting \"Makefile.sysv\" \(9606 characters\)
sed "s/^X//" >Makefile.sysv <<'END_OF_Makefile.sysv'
X# Makefile for creating dungeon
X# Edit BIN DDIR and FFLAGS suitable for your system
X# Also, if you are running System V change the .F.o production
X#  and production for dinit.F as indicated.
X#
X# need SUFFIXES for System V (doesn't grok .F)
X.SUFFIXES: .F
X.c.o:
X	cc -c $(CFLAGS) $*.c
X.F.o:
X#	f77 -c $(FFLAGS) $*.F
X# For System V use the following production instead:
X	@/lib/cpp $(CPPFLAGS) $*.F > $*.f
X	f77 -c $(FFLAGS) $*.f
X	rm $*.f
X
X# define SYSV if running System V or V7
X# define SYSV *and* XELOS if running the XELOS OS
XCFLAGS = -O -DSYSV # -DXELOS -g -i
XCPPFLAGS = -P
X#
X# f77 compiler flags for BSD Vax (and other similar machines)
X#FOPTS = -q # -g -Ddebug
X# use -Nn650 for System V to increase default symbol table size
X# also, define SYSV and no -g flag (causes runtime errors)
XFOPTS = -q -Nn650 -DSYSV # -Ddebug
X# f77 compiler flags for pdp (64K split I/D)
X#FOPTS = -q -I2 -L1 -i -DPDP # -Nn650 -Ddebug
XFFLAGS = -O $(FOPTS)
X
X# flags for the loader
XLDFLAGS = # -s -g -v
X
X# Directory path for main program - default /usr/games
XBIN = /usr/games
X# Directory path for data files - default is /usr/games/lib/dunlib
XLIB = /usr/games/lib/dunlib
XDDIR = \'/usr/games/lib/dunlib
XDCDIR =\"/usr/games/lib/dunlib
X# Directory path for man page - default /usr/manl/man6
XMDIR = /usr/manl/man6
X# userid for wizard - allows invoking game debugging tool - default 0
XWIZDEF = -DWIZARDID=320
X
XHDRS =	advers.h clock.h curxt.h debug.h exits.h files.h flags.h\
X	gamestate.h io.h mindex.h objects.h oflags.h oindex.h\
X	parser.h puzzle.h rflag.h rindex.h rooms.h screen.h state.h\
X	verbs.h villians.h vocab.h xpars.h xsrch.h
X
XFSRC =  actors.F ballop.F clockr.F demons.F\
X	dgame.F dinit.F dmain.F dso1.F dso2.F\
X	dso3.F dso4.F dso5.F dso6.F dso7.F\
X	dsub.F dverb1.F dverb2.F exit.F gdt.F lightp.F\
X	nobjs.F np.F np1.F np2.F np3.F nrooms.F objcts.F\
X	rooms.F sobjs.F sverbs.F verbs.F villns.F
X
XCSRC =	cinit.c cio.c cspeak.c decode.c lex.c listen.c rtim.c
X
XOBJS =  actors.o ballop.o clockr.o demons.o\
X	dgame.o dinit.o dmain.o dso1.o dso2.o\
X	dso3.o dso4.o dso5.o dso6.o dso7.o\
X	dsub.o dverb1.o dverb2.o exit.o gdt.o lightp.o\
X	nobjs.o np.o np1.o np2.o np3.o nrooms.o objcts.o\
X	rooms.o rtim.o sobjs.o sverbs.o verbs.o villns.o
X
XPDPOBJS = cinit.o cio.o lex.o
XLISTEN = listen.o
XSPEAK = cspeak.o speak.o
X
Xvax:	dungeon dtext.dat
Xpdp:	dungpdp speak listen dtext.dat
X
Xdungeon: $(OBJS)
X	f77 -o dungeon $(OBJS) $(LDFLAGS)
X	@echo done
X
Xdungpdp: $(OBJS) $(PDPOBJS)
X	f77 -i -s -o dungpdp $(OBJS) $(PDPOBJS)
X	@echo done
X
Xspeak:	$(SPEAK)
X	f77 -i -s -o speak $(SPEAK)
X	
Xspeak.o: speak.F
X#	f77 $(FFLAGS) -DDDIR=$(DDIR) -c speak.F
X# For System V use the following instead:
X	@/lib/cpp $(CPPFLAGS) speak.F > speak.f
X	f77 $(FFLAGS) -DDDIR=$(DDIR) -c speak.f
X	rm $*.f
X
Xlisten:	$(LISTEN)
X	cc $(CFLAGS) -o listen $(LISTEN)
X
Xlisten.o: listen.c
X	cc $(CFLAGS) -DCINDEXFILE=$(DCDIR)/dindx.dat\" -c listen.c
X
Xdinit.o: dinit.F
X#	f77 $(FFLAGS) -DDDIR=$(DDIR) $(WIZDEF) -c dinit.F
X# For System V use the following instead:
X	@/lib/cpp $(CPPFLAGS) dinit.F > dinit.f
X	f77 $(FFLAGS) -DDDIR=$(DDIR) $(WIZDEF) -c dinit.f
X	rm $*.f
X
X# uncomment the following for Suns to get around an optimizer bug
X# -P means partial optimization.
X#objcts.o: objcts.F
X#	f77 $(FOPTS) -P -c objcts.F
X
Xinstall-vax: vax
X	cp dungeon $(BIN)
X	-mkdir $(LIB)
X	cp dindx.dat dtext.dat $(LIB)
X	cp dungeon.6 $(MDIR)/dungeon.6
X
Xinstall-pdp: pdp
X	cp dungeon.sh $(BIN)
X	-mkdir $(LIB)
X	cp dindx.dat dtext.dat rtext.dat dungpdp $(LIB)
X	cp dungeon.6 $(MDIR)/dungeon.6
X
Xdtext.dat: 
X	./maketxt.sh
X
X
Xclean:
X	-rm $(OBJS) Mk* core makedep eddep
X
Xdepend:
X	grep '^#include' $(FSRC) $(CSRC) $(HDRS) | grep -v '<' | \
X	sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' \
X	    -e 's/\.c/.o/' \
X	    -e 's/\.F/.o/' \
X	    -e 's,../[a-zA-Z]*/,,' | \
X	awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \
X		else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
X		       else rec = rec " " $$2 } } \
X	      END { print rec } ' > makedep
X	echo '$$r makedep' >>eddep
X	echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep
X	echo '$$r makedep' >>eddep
X	echo 'w' >>eddep
X	cp Makefile Makefile.bak
X	ed - Makefile < eddep
X	rm eddep makedep
X
X# DO NOT DELETE THIS LINE -- make depend uses it
X
Xactors.o: parser.h gamestate.h rooms.h rflag.h rindex.h xsrch.h objects.h
Xactors.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h gamestate.h
Xactors.o: debug.h rooms.h rflag.h rindex.h objects.h oflags.h oindex.h
Xactors.o: villians.h flags.h
Xballop.o: parser.h gamestate.h state.h rooms.h rflag.h curxt.h xpars.h
Xballop.o: objects.h oflags.h oindex.h clock.h verbs.h flags.h
Xclockr.o: gamestate.h state.h rooms.h rflag.h rindex.h objects.h oflags.h
Xclockr.o: oindex.h clock.h curxt.h xsrch.h villians.h advers.h flags.h
Xclockr.o: gamestate.h objects.h oflags.h clock.h
Xdemons.o: parser.h gamestate.h objects.h oflags.h oindex.h villians.h advers.h
Xdemons.o: verbs.h flags.h gamestate.h parser.h objects.h oflags.h clock.h
Xdemons.o: advers.h verbs.h gamestate.h curxt.h xsrch.h objects.h oindex.h
Xdemons.o: villians.h advers.h rindex.h objects.h oindex.h villians.h flags.h
Xdgame.o: parser.h gamestate.h state.h io.h rooms.h rindex.h objects.h oflags.h
Xdgame.o: oindex.h advers.h verbs.h flags.h parser.h villians.h gamestate.h
Xdgame.o: objects.h advers.h
Xdinit.o: files.h parser.h gamestate.h state.h screen.h mindex.h io.h debug.h
Xdinit.o: rooms.h rflag.h rindex.h exits.h curxt.h xpars.h objects.h oindex.h
Xdinit.o: clock.h villians.h advers.h flags.h
Xdmain.o: parser.h gamestate.h state.h screen.h puzzle.h io.h debug.h rooms.h
Xdmain.o: rflag.h rindex.h exits.h curxt.h xpars.h xsrch.h objects.h oflags.h
Xdmain.o: oindex.h clock.h villians.h advers.h verbs.h flags.h
Xdso1.o: gamestate.h rooms.h rflag.h objects.h oflags.h oindex.h advers.h
Xdso1.o: flags.h gamestate.h objects.h oflags.h advers.h objects.h
Xdso2.o: gamestate.h rooms.h rflag.h objects.h oindex.h advers.h gamestate.h
Xdso2.o: state.h advers.h flags.h gamestate.h state.h clock.h advers.h flags.h
Xdso3.o: rooms.h exits.h curxt.h xpars.h objects.h oflags.h
Xdso4.o: objects.h oflags.h objects.h oflags.h objects.h state.h advers.h
Xdso4.o: parser.h objects.h oflags.h oindex.h villians.h flags.h
Xdso5.o: parser.h objects.h oflags.h verbs.h rooms.h rflag.h objects.h oflags.h
Xdso5.o: advers.h objects.h
Xdso6.o: rooms.h rflag.h rindex.h rindex.h flags.h
Xdso7.o: rooms.h rflag.h rindex.h objects.h oflags.h flags.h flags.h
Xdsub.o: gamestate.h mindex.h io.h parser.h objects.h debug.h objects.h
Xdsub.o: objects.h objects.h parser.h gamestate.h state.h io.h debug.h rooms.h
Xdsub.o: rflag.h rindex.h objects.h oflags.h oindex.h advers.h flags.h advers.h
Xdsub.o: flags.h parser.h gamestate.h screen.h rooms.h rflag.h xsrch.h objects.h
Xdsub.o: advers.h verbs.h flags.h
Xdverb1.o: parser.h gamestate.h state.h objects.h oflags.h advers.h parser.h
Xdverb1.o: gamestate.h rindex.h objects.h oflags.h advers.h verbs.h parser.h
Xdverb1.o: gamestate.h objects.h oflags.h advers.h verbs.h parser.h gamestate.h
Xdverb1.o: objects.h oflags.h verbs.h
Xdverb2.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h exits.h
Xdverb2.o: objects.h clock.h villians.h advers.h flags.h parser.h gamestate.h
Xdverb2.o: state.h screen.h puzzle.h rooms.h exits.h objects.h clock.h
Xdverb2.o: villians.h advers.h flags.h parser.h gamestate.h rooms.h rflag.h
Xdverb2.o: curxt.h xsrch.h objects.h oflags.h clock.h villians.h advers.h
Xdverb2.o: flags.h gamestate.h parser.h puzzle.h rooms.h rindex.h exits.h
Xdverb2.o: curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h advers.h flags.h
Xgdt.o: parser.h gamestate.h state.h screen.h puzzle.h io.h mindex.h debug.h
Xgdt.o: rooms.h rindex.h exits.h objects.h oindex.h clock.h villians.h advers.h
Xgdt.o: flags.h
Xlightp.o: parser.h gamestate.h objects.h oflags.h oindex.h clock.h verbs.h
Xlightp.o: flags.h
Xnobjs.o: parser.h gamestate.h state.h screen.h puzzle.h rooms.h rflag.h
Xnobjs.o: rindex.h objects.h oflags.h oindex.h clock.h villians.h advers.h
Xnobjs.o: verbs.h flags.h gamestate.h parser.h verbs.h flags.h
Xnp.o: parser.h io.h debug.h parser.h xsrch.h parser.h debug.h
Xnp1.o: parser.h gamestate.h debug.h objects.h oindex.h advers.h verbs.h vocab.h
Xnp2.o: parser.h gamestate.h debug.h objects.h oflags.h advers.h vocab.h
Xnp2.o: objects.h oflags.h vocab.h
Xnp3.o: parser.h vocab.h debug.h vocab.h parser.h objects.h parser.h parser.h
Xnp3.o: gamestate.h state.h objects.h oflags.h advers.h parser.h gamestate.h
Xnp3.o: objects.h oflags.h advers.h
Xnrooms.o: parser.h gamestate.h state.h io.h rooms.h rflag.h rindex.h objects.h
Xnrooms.o: oflags.h oindex.h xsrch.h clock.h advers.h verbs.h flags.h
Xnrooms.o: gamestate.h flags.h rindex.h flags.h
Xobjcts.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h
Xobjcts.o: oflags.h oindex.h clock.h advers.h verbs.h flags.h
Xrooms.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h
Xrooms.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h
Xsobjs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h objects.h
Xsobjs.o: oflags.h oindex.h clock.h villians.h advers.h verbs.h flags.h
Xsverbs.o: parser.h gamestate.h state.h screen.h io.h rooms.h rflag.h rindex.h
Xsverbs.o: exits.h curxt.h xpars.h xsrch.h objects.h oflags.h oindex.h clock.h
Xsverbs.o: advers.h verbs.h flags.h
Xverbs.o: parser.h gamestate.h state.h rooms.h rflag.h rindex.h xsrch.h
Xverbs.o: objects.h oflags.h oindex.h advers.h verbs.h clock.h
Xvillns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h
Xvillns.o: parser.h gamestate.h objects.h oflags.h oindex.h verbs.h flags.h
Xvillns.o: parser.h gamestate.h rindex.h objects.h oflags.h oindex.h clock.h
Xvillns.o: villians.h verbs.h flags.h
END_OF_Makefile.sysv
if test 9606 -ne `wc -c <Makefile.sysv`; then
    echo shar: \"Makefile.sysv\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f dungeon.pch -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"dungeon.pch\"
else
echo shar: Extracting \"dungeon.pch\" \(12478 characters\)
sed "s/^X//" >dungeon.pch <<'END_OF_dungeon.pch'
X*** parser.h.orig	Mon Feb  2 08:53:32 1987
X--- parser.h	Fri Oct  9 08:58:57 1987
X***************
X*** 14,20 ****
X  C
X  	COMMON /PV/ ACT,O1,O2,P1,P2
X  	INTEGER OBJVEC(2),PRPVEC(2),PVEC(5)
X! 	EQUIVALENCE (OBJVEC(1),O1),(PRPVEC(1),P1),(PVEC,ACT)
X  C
X  	COMMON /SYNTAX/ VFLAG,DOBJ,DFL1,DFL2,DFW1,DFW2,
X  &		IOBJ,IFL1,IFL2,IFW1,IFW2
X--- 14,20 ----
X  C
X  	COMMON /PV/ ACT,O1,O2,P1,P2
X  	INTEGER OBJVEC(2),PRPVEC(2),PVEC(5)
X! 	EQUIVALENCE (OBJVEC(1),O1),(PRPVEC(1),P1),(PVEC(1),ACT)
X  C
X  	COMMON /SYNTAX/ VFLAG,DOBJ,DFL1,DFL2,DFW1,DFW2,
X  &		IOBJ,IFL1,IFL2,IFW1,IFW2
X*** /dev/null	Fri Oct  9 16:13:36 1987
X--- patchlvl.h	Fri Oct  9 16:12:53 1987
X***************
X*** 0 ****
X--- 1 ----
X+ #define PATCHLEVEL 1
X*** rtim.c.orig	Mon Feb  9 10:14:23 1987
X--- rtim.c	Fri Oct  9 10:07:34 1987
X***************
X*** 4,16 ****
X   * that are not available in the Unix/f77 library.
X   */
X  
X! /* routine to get time in hours minutes and seconds */
X  
X  #include <sys/types.h>
X  #include <sys/timeb.h>
X- /* for V7 this should be <time.h> */
X  #include <sys/time.h>
X  
X  
X  long time();
X  struct tm *localtime();
X--- 4,23 ----
X   * that are not available in the Unix/f77 library.
X   */
X  
X! #ifdef SYSV
X! #include <stdio.h>
X! #endif
X  
X  #include <sys/types.h>
X+ 
X+ #ifdef SYSV
X+ #include <time.h>
X+ #else
X  #include <sys/timeb.h>
X  #include <sys/time.h>
X+ #endif
X  
X+ /* routine to get time in hours minutes and seconds */
X  
X  long time();
X  struct tm *localtime();
X***************
X*** 32,37 ****
X--- 39,64 ----
X  	return;
X  }
X  
X+ #ifdef SYSV
X+ /* idate - return day (1-31), month (1-12) and year (AD) */
X+ /*	by Dave Newkirk, ihnp4!ihlpm!dcn */
X+ 
X+ idate_( date )
X+ long date[];
X+ {
X+ 	struct tm *t, *localtime();
X+ 	long time(), *tloc, loc;
X+ 
X+ 	tloc = &loc;			/* get pointer to time in seconds */
X+ 	time(tloc);
X+ 	t = localtime(tloc);		/* get time structure filled in */
X+ 	date[0] = t->tm_mday;
X+ 	date[1] = t->tm_mon + 1;
X+ 	date[2] = t->tm_year + 1900;
X+ 
X+ } /* end idate */
X+ #endif
X+ 
X  /* random number initializer */
X  inirnd_(seedptr)
X  
X***************
X*** 59,61 ****
X--- 86,109 ----
X  
X  	return(rndval);
X  }
X+ 
X+ #ifdef SYSV
X+ /* thanks to Dave Newkirk, ihnp4!ihlpm!dcn for the following routines */
X+ 
X+ /* getuid - fortran callable getuid */
X+ 
X+ int
X+ getuid_()
X+ {
X+ 	return (int)getuid();
X+ }
X+ 
X+ /* unbuf - make output completely unbuffered */
X+ 
X+ unbuf_()
X+ {
X+ 	void setbuf();
X+ 
X+ 	setbuf(stdout, NULL);
X+ }
X+ #endif
X*** demons.F.orig	Mon Feb  9 10:57:07 1987
X--- demons.F	Fri Oct  9 15:42:21 1987
X***************
X*** 133,138 ****
X--- 133,139 ----
X  	INTEGER DEF1R(3),DEF2R(4),DEF3R(5)
X  	INTEGER RVECTR(66),RSTATE(45)
X  #include "gamestate.h"
X+ #include "debug.h"
X  C
X  C PARSE VECTOR
X  C
X***************
X*** 180,186 ****
X  	BLOW=RMISS
X  C						!ASSUME NO RESULT.
X  #ifdef debug
X! 	PRINT 10,H,V,RMK,HFLG,OUT
X  10	FORMAT(' BLOW 10-- ',3I7,L7,I7)
X  #endif debug
X  	IF(.NOT.HFLG) GO TO 1000
X--- 181,187 ----
X  	BLOW=RMISS
X  C						!ASSUME NO RESULT.
X  #ifdef debug
X! 	IF(DEBUG) PRINT 10,H,V,RMK,HFLG,OUT
X  10	FORMAT(' BLOW 10-- ',3I7,L7,I7)
X  #endif debug
X  	IF(.NOT.HFLG) GO TO 1000
X***************
X*** 249,255 ****
X  C
X  2000	CONTINUE
X  #ifdef debug
X! 	PRINT 2050,ATT,OA,DEF,OD,DWEAP
X  2050	FORMAT(' BLOW 2050-- ',5I7)
X  #endif debug
X  	IF(DEF.GT.0) GO TO 2100
X--- 250,256 ----
X  C
X  2000	CONTINUE
X  #ifdef debug
X! 	IF(DEBUG) PRINT 2050,ATT,OA,DEF,OD,DWEAP
X  2050	FORMAT(' BLOW 2050-- ',5I7)
X  #endif debug
X  	IF(DEF.GT.0) GO TO 2100
X***************
X*** 298,304 ****
X  	J=DV
X  	IF(.NOT.HFLG .AND.(DWEAP.NE.0)) J=ODESC2(DWEAP)
X  #ifdef debug
X! 	PRINT 2650,RES,MI,I,J,MBASE
X  2650	FORMAT(' BLOW 2650-- ',5I7)
X  #endif debug
X  	CALL RSPSUB(I,J)
X--- 299,305 ----
X  	J=DV
X  	IF(.NOT.HFLG .AND.(DWEAP.NE.0)) J=ODESC2(DWEAP)
X  #ifdef debug
X! 	IF(DEBUG) PRINT 2650,RES,MI,I,J,MBASE
X  2650	FORMAT(' BLOW 2650-- ',5I7)
X  #endif debug
X  	CALL RSPSUB(I,J)
X*** dmain.F.orig	Thu Feb 12 11:05:36 1987
X--- dmain.F	Thu Sep 17 14:46:53 1987
X***************
X*** 45,51 ****
X  C
X  C DATA STATEMENTS FOR CONSTANT ARRAYS
X  C
X! 	DATA VMAJ/2/,VMIN/6/,VEDIT/'A'/
X  C
X  	DATA SDIR/o'40000'/,SIND/o'20000'/,SSTD/o'10000'/,
X  &		SFLIP/o'4000'/,SDRIV/o'2000'/,SVMASK/o'777'/
X--- 45,51 ----
X  C
X  C DATA STATEMENTS FOR CONSTANT ARRAYS
X  C
X! 	DATA VMAJ/2/,VMIN/6/,VEDIT/'B'/
X  C
X  	DATA SDIR/o'40000'/,SIND/o'20000'/,SSTD/o'10000'/,
X  &		SFLIP/o'4000'/,SDRIV/o'2000'/,SVMASK/o'777'/
X*** dso3.F.orig	Thu Sep 17 13:15:28 1987
X--- dso3.F	Fri Sep 18 09:03:35 1987
X***************
X*** 23,29 ****
X  100	I=TRAVEL(XI)
X  C						!GET ENTRY.
X  	XROOM1=and(I,XRMASK)
X! 	XTYPE=and((and(I,not(XLFLAG))/XFSHFT),XFMASK)+1
X  	GO TO (110,120,130,130),XTYPE
X  C						!BRANCH ON ENTRY.
X  	CALL BUG(10,XTYPE)
X--- 23,31 ----
X  100	I=TRAVEL(XI)
X  C						!GET ENTRY.
X  	XROOM1=and(I,XRMASK)
X! c mask to 16-bits to get rid of sign extension problems with 32-bit ints
X! 	XXXFLG = and(not(XLFLAG), 65535)
X! 	XTYPE=and((and(I,XXXFLG)/XFSHFT),XFMASK)+1
X  	GO TO (110,120,130,130),XTYPE
X  C						!BRANCH ON ENTRY.
X  	CALL BUG(10,XTYPE)
X*** gdt.F.orig	Thu Feb 12 11:07:59 1987
X--- gdt.F	Thu Sep 17 13:43:17 1987
X***************
X*** 18,24 ****
X  	CHARACTER*2 DBGCMD(38),CMD
X  	INTEGER ARGTYP(38)
X  	LOGICAL VALID1,VALID2,VALID3
X! 	character*2 ldbgcmd(38)
X  #include "parser.h"
X  #include "gamestate.h"
X  #include "state.h"
X--- 18,24 ----
X  	CHARACTER*2 DBGCMD(38),CMD
X  	INTEGER ARGTYP(38)
X  	LOGICAL VALID1,VALID2,VALID3
X! 	character*2 ldbgcm(38)
X  #include "parser.h"
X  #include "gamestate.h"
X  #include "state.h"
X***************
X*** 52,58 ****
X  &		'AF','HE','NR','NT','NC','ND','RR','RT','RC','RD',
X  &		'TK','EX','AR','AO','AA','AC','AX','AV','D2','DN',
X  &		'AN','DM','DT','AH','DP','PD','DZ','AZ'/
X! 	DATA ldbgcmd/'dr','do','da','dc','dx','dh','dl','dv','df','ds',
X  &		'af','he','nr','nt','nc','nd','rr','rt','rc','rd',
X  &		'tk','ex','ar','ao','aa','ac','ax','av','d2','dn',
X  &		'an','dm','dt','ah','dp','pd','dz','az'/
X--- 52,58 ----
X  &		'AF','HE','NR','NT','NC','ND','RR','RT','RC','RD',
X  &		'TK','EX','AR','AO','AA','AC','AX','AV','D2','DN',
X  &		'AN','DM','DT','AH','DP','PD','DZ','AZ'/
X! 	DATA ldbgcm/'dr','do','da','dc','dx','dh','dl','dv','df','ds',
X  &		'af','he','nr','nt','nc','nd','rr','rt','rc','rd',
X  &		'tk','ex','ar','ao','aa','ac','ax','av','d2','dn',
X  &		'an','dm','dt','ah','dp','pd','dz','az'/
X***************
X*** 91,97 ****
X  	  IF(CMD.EQ.DBGCMD(I)) GO TO 2300
X  C						!FOUND?
X  C	  check for lower case command, as well
X! 	  if(cmd .eq. ldbgcmd(i)) go to 2300
X  2100	CONTINUE
X  2200	WRITE(OUTCH,220)
X  C						!NO, LOSE.
X--- 91,97 ----
X  	  IF(CMD.EQ.DBGCMD(I)) GO TO 2300
X  C						!FOUND?
X  C	  check for lower case command, as well
X! 	  if(cmd .eq. ldbgcm(i)) go to 2300
X  2100	CONTINUE
X  2200	WRITE(OUTCH,220)
X  C						!NO, LOSE.
X*** np.F.orig	Tue Feb 10 17:25:07 1987
X--- np.F	Fri Oct  9 08:57:09 1987
X***************
X*** 43,49 ****
X  	do 275 j=2,length
X  	  sysbuf(j-1:j-1) = buffer(j)
X  275	continue
X! 	sysbuf(j:j) = char(0)
X  	call system(sysbuf)
X  	go to 5
X  
X--- 43,49 ----
X  	do 275 j=2,length
X  	  sysbuf(j-1:j-1) = buffer(j)
X  275	continue
X! 	sysbuf(length:length) = char(0)
X  	call system(sysbuf)
X  	go to 5
X  
X***************
X*** 148,160 ****
X  	LOGICAL FUNCTION LEX(INBUF,INLNT,OUTBUF,OP,VBFLAG)
X  	IMPLICIT INTEGER(A-Z)
X  	CHARACTER INBUF(78),J,DLIMIT(9)
X! 	INTEGER OUTBUF(40)
X  	LOGICAL VBFLAG
X  #include "parser.h"
X  C
X  #include "debug.h"
X  C
X! 	DATA DLIMIT/'A','Z',o'100','1','9',o'22','-','-',o'22'/
X  C
X  	DO 100 I=1,40
X  C						!CLEAR OUTPUT BUF.
X--- 148,170 ----
X  	LOGICAL FUNCTION LEX(INBUF,INLNT,OUTBUF,OP,VBFLAG)
X  	IMPLICIT INTEGER(A-Z)
X  	CHARACTER INBUF(78),J,DLIMIT(9)
X! 	INTEGER OUTBUF(40),ZLIMIT(9)
X  	LOGICAL VBFLAG
X  #include "parser.h"
X  C
X  #include "debug.h"
X  C
X! c the System V compiler doesn't like octal initialization of character
X! c arrays, so the following is done for its benefit
X! c
X! c	DATA DLIMIT/'A','Z',o'100','1','9',o'22','-','-',o'22'/
X! c
X! 	DATA ZLIMIT/o'101',o'132',o'100',o'61',o'71',o'22',o'55',o'55',o'22'/
X! c
X! 	do 99 i=1,9
X! 	  dlimit(i) = char(zlimit(i))
X! c					! copy integers to chars
X! 99	continue
X  C
X  	DO 100 I=1,40
X  C						!CLEAR OUTPUT BUF.
X*** np1.F.orig	Mon Feb  9 11:47:32 1987
X--- np1.F	Fri Sep 25 16:58:35 1987
X***************
X*** 867,873 ****
X  C						!GET CURRENT TOKEN.
X  	  LBUF2=LBUF(I+1)
X  #ifdef debug
X! 	  write(0,*) 'lbuf1=',lbuf1,' lbuf2=',lbuf2
X  #endif
X  	  IF(LBUF1.EQ.0) GO TO 1500
X  C						!END OF BUFFER?
X--- 867,873 ----
X  C						!GET CURRENT TOKEN.
X  	  LBUF2=LBUF(I+1)
X  #ifdef debug
X! 	  if (dflag) write(0,*) 'lbuf1=',lbuf1,' lbuf2=',lbuf2
X  #endif
X  	  IF(LBUF1.EQ.0) GO TO 1500
X  C						!END OF BUFFER?
X***************
X*** 1023,1031 ****
X  C 6000--	UNIDENTIFIABLE OBJECT (INDEX INTO OVOC IS J)
X  C
X  6000	IF(OBJ.LT.0) GO TO 6100
X! 	I=579
X! 	IF(LIT(HERE)) I=618
X! 	IF(VBFLAG) CALL RSPEAK(I)
X  	RETURN
X  C
X  6100	IF(OBJ.NE.-10000) GO TO 6200
X--- 1023,1031 ----
X  C 6000--	UNIDENTIFIABLE OBJECT (INDEX INTO OVOC IS J)
X  C
X  6000	IF(OBJ.LT.0) GO TO 6100
X! 	J=579
X! 	IF(LIT(HERE)) J=618
X! 	IF(VBFLAG) CALL RSPEAK(J)
X  	RETURN
X  C
X  6100	IF(OBJ.NE.-10000) GO TO 6200
X*** np3.F.orig	Mon Feb  9 11:48:57 1987
X--- np3.F	Fri Sep 25 17:02:57 1987
X***************
X*** 24,30 ****
X  	SYNMCH=.FALSE.
X  #ifdef debug
X  	DFLAG=and(PRSFLG, 16).NE.0
X! 	write(0,*) "synflags=",sdir,sind,sstd,sflip,sdriv,svmask
X  #endif
X  	J=ACT
X  C						!SET UP PTR TO SYNTAX.
X--- 24,30 ----
X  	SYNMCH=.FALSE.
X  #ifdef debug
X  	DFLAG=and(PRSFLG, 16).NE.0
X! 	if(dflag) write(0,*) "synflags=",sdir,sind,sstd,sflip,sdriv,svmask
X  #endif
X  	J=ACT
X  C						!SET UP PTR TO SYNTAX.
X*** rooms.F.orig	Mon Feb  2 08:53:37 1987
X--- rooms.F	Fri Oct  9 09:00:04 1987
X***************
X*** 130,136 ****
X  4500	IF(PRSA.NE.WALKIW) RETURN
X  C						!WALKIN?
X  	IF(and(OFLAG2(DOOR),(OPENBT+TCHBT)).NE.OPENBT) RETURN
X! 	OFLAG2(DOOR)=and(and(OFLAG2(DOOR),CHBT), not(OPENBT))
X  	CALL RSPEAK(22)
X  C						!SLAM AND BOLT DOOR.
X  	RETURN
X--- 130,136 ----
X  4500	IF(PRSA.NE.WALKIW) RETURN
X  C						!WALKIN?
X  	IF(and(OFLAG2(DOOR),(OPENBT+TCHBT)).NE.OPENBT) RETURN
X! 	OFLAG2(DOOR)=and( or(OFLAG2(DOOR),TCHBT), not(OPENBT))
X  	CALL RSPEAK(22)
X  C						!SLAM AND BOLT DOOR.
X  	RETURN
X*** dinit.F.orig	Sat Feb 14 11:00:08 1987
X--- dinit.F	Fri Oct  9 16:57:08 1987
X***************
X*** 22,28 ****
X  	IMPLICIT INTEGER (A-Z)
X  #ifndef PDP
X  	LOGICAL PROTCT
X! 	INTEGER DATARRY(3)
X  #endif PDP
X  #include "parser.h"
X  #include "gamestate.h"
X--- 22,28 ----
X  	IMPLICIT INTEGER (A-Z)
X  #ifndef PDP
X  	LOGICAL PROTCT
X! 	INTEGER DATARR(3)
X  #endif PDP
X  #include "parser.h"
X  #include "gamestate.h"
X***************
X*** 53,58 ****
X--- 53,63 ----
X  C INIT, PAGE 2
X  C
X  #ifndef PDP
X+ #ifdef SYSV
X+ C make output unbuffered
X+ 	call unbuf
X+ C
X+ #endif
X  C FIRST CHECK FOR PROTECTION VIOLATION
X  C
X  	IF(PROTCT(X)) GO TO 10000
X***************
X*** 432,438 ****
X--- 437,448 ----
X  C NOW RESTORE FROM EXISTING INDEX FILE.
X  C
X  	OPEN(UNIT=1,file=INDXFILE,status='OLD',
X+ #ifdef XELOS
X+ &		FORM='FORMATTED',ACCESS='SEQUENTIAL',ERR=1900,recl=1)
X+ #else
X  &		FORM='FORMATTED',ACCESS='SEQUENTIAL',ERR=1900)
X+ #endif
X+ 	rewind(unit=1, err=1900)
X  	READ(1,130) I,J,K
X  C						!GET VERSION.
X  	IF((I.NE.VMAJ).OR.(J.NE.VMIN))
X***************
X*** 441,446 ****
X--- 451,457 ----
X  	OPEN(UNIT=DBCH,file=TEXTFILE,status='OLD',
X  &		FORM='UNFORMATTED',ACCESS='DIRECT',
X  &		recl=76,ERR=1950)
X+ 	rewind(unit=dbch, err=1950)
X  
X  #ifdef debug
X  	PRINT 150
X***************
X*** 474,481 ****
X  1025	CALL ITIME(SHOUR,SMIN,SSEC)
X  C						!GET TIME AND DATE.
X  C	CALL IDATE(I,J,K)
X! 	CALL IDATE(DATARRY(1))
X! 	CALL INIRND(or(DATARRY(1),or(DATARRY(2),DATARRY(3))),
X  &		or(SHOUR,or(SMIN,SSEC)))
X  C
X  	WINNER=PLAYER
X--- 485,492 ----
X  1025	CALL ITIME(SHOUR,SMIN,SSEC)
X  C						!GET TIME AND DATE.
X  C	CALL IDATE(I,J,K)
X! 	CALL IDATE(DATARR(1))
X! 	CALL INIRND(or(DATARR(1),or(DATARR(2),DATARR(3))),
X  &		or(SHOUR,or(SMIN,SSEC)))
X  C
X  	WINNER=PLAYER
X*** dverb2.F.orig	Thu Sep 17 13:09:07 1987
X--- dverb2.F	Fri Oct  9 16:58:15 1987
X***************
X*** 82,87 ****
X--- 82,88 ----
X  #else
X  	OPEN (UNIT=1,file='dsave.dat',ACCESS='SEQUENTIAL',
X  &		status='UNKNOWN',FORM='UNFORMATTED',ERR=100)
X+ 	rewind (unit=1, err=100)
X  C
X  	CALL GTTIME(I)
X  C						!GET TIME.
X***************
X*** 186,192 ****
X--- 187,198 ----
X  	RETURN
X  #else
X  	OPEN (UNIT=1,file='dsave.dat',ACCESS='SEQUENTIAL',
X+ #ifdef XELOS
X+ &		status='OLD',FORM='UNFORMATTED',ERR=100,recl=1)
X+ #else
X  &		status='OLD',FORM='UNFORMATTED',ERR=100)
X+ #endif
X+ 	rewind (unit=1, err=100)
X  C
X  	READ(1) I,J,K
X  	IF(or((I.NE.VMAJ),(J.NE.VMIN))) GO TO 200
END_OF_dungeon.pch
if test 12478 -ne `wc -c <dungeon.pch`; then
    echo shar: \"dungeon.pch\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of shell archive.
exit 0