[OK, friends and neighbors here it is at long last - NetHack 3.1.
As the subject line indicates, this is being posted in 108 parts.
This will be done over a period of several days, so as not to
overload anyone's news spool directory. Please be patient. -br]
[The following cover note is from the authors...]
[[NetHack 3.1 is a product of two years of intensive work by the NetHack
Development Team and its Amiga, Atari, Macintosh, OS/2, MSDOS, and VMS
ports sub-teams. These include over thirty members from different
countries. The team wishes to express its gratitude to the management
of linc.cis.upenn.edu for its generous support of this unique development
activity.
NetHack 3.1 is a new generation of NetHack. Here is a list of some of
its main new features:
* Unlike 3.0, NetHack 3.1 is a multi-dungeon game. New dungeons "branch"
off the main dungeon at different locations.
* A unifying mythology was adopted for the game. There are tasks which
must be completed in various dungeons before the main task of capturing
the Amulet can be undertaken. There are different quests for the
different character classes.
* There is a new multi-level endgame full of surprises.
* Many of the monsters in NetHack 3.1 now can wield weapons, zap wands,
read scrolls, and cast spells. Fighting them must take these special
abilities into consideration.
* The game's display was completely re-written. It is now based on a
line-of-sight principle, and it gives a new "feel" to the game. The
new display was written with a standardized window interface, which
allows easy substitution and addition of windowing systems independent
of operating system. For example, the UNIX port now supports X11 as
well as the traditional tty.
* Numerous local changes were made, and many new monsters, objects, and
intelligent artifacts were added.
You will discover the details and the rest of the changes for yourselves.
As we did with 3.0, we will periodically release patchlevel revisions of
NetHack 3.1, which will include bug fixes and further development results.
Avoid applying free-lanced patches, if you want to take advantage of these
patchlevel updates.
Despite our effort, there are, no doubt, many bugs still in the code.
The Amiga and Macintosh ports, in particular, still have rough edges due
to time constraints on their port-team members. A port to Windows NT is
underway but is not suitable for release at this time. We call upon you
to help in debugging both the game and the ports. The address of the
NetHack development team remains nethac...@linc.cis.upenn.edu.
As always, your comments and suggestions will be appreciated. Enjoy.]]
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 1 (of 108)."
# Contents: README MANIFEST dat doc include include/config.h src sys
# sys/amiga sys/amiga sys/amiga/splitter sys/amiga/splitter
# sys/atari sys/atari sys/mac sys/mac sys/msdos sys/msdos sys/os2
# sys/os2 sys/share sys/share sys/unix sys/unix sys/vms sys/vms util
# win win/X11 win/X11 win/tty win/tty
# Wrapped by billr@saab on Wed Jan 27 16:08:45 1993
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'README' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(9769 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
X
X NetHack 3.1 -- General information
X
XNetHack 3.1 is a new generation of the dungeon exploration game NetHack.
XIt is a distant descendent of Hack, and a direct descendent of NetHack 3.0.
XIt is the product of two years of very intensive effort by the NetHack
XDevelopment Team and its porting sub-teams. Many parts of 3.0 were
Xrewritten for NetHack 3.1, and many new features were added.
X
XThere are a number of dramatic new additions or changes in the game:
X
XA general "mythology" was adopted for the game. The various tasks in the
Xgame are now articulated in the context of that mythology, and this gives
Xthe game a greater coherence and unity.
X
XThe dungeon design was changed. Unlike the linear form of the dungeon in
X3.0, the dungeon in 3.1 is tree-structured, with dungeons that branch off
Xthe "main" dungeon. These branch-dungeons have each unique features which
Xdistinguish them from one another. As a part of this new design, a dungeon
X"compiler" was added, which enables some control of the game's dungeon
Xdesign from a data file. A goal for the future is making that control
Xcomplete.
X
XThe special levels facility of the game was greatly enhanced. It is now
Xhighly versatile, and we took advantage of its extended capacity to add many
Xnew special levels.
X
XThe game's display code was completely re-written. The display is now based
Xon a line-of-sight principle. It is much more efficient than the old
Xdisplay code, and a lot more interesting.
X
XIntelligent creatures in the game can now wear armor, and they can wield
Xand use weapons in combat. They can also use wands, spells, and throw
Xobjects. This must be taken into consideration in choosing a game strategy.
X
XWe sought to increase the differences between the various character
Xclasses, so as to make playing each of them a distinct experience. To this
Xend, special character-specific tasks and dungeons were introduced into the
Xgame.
X
XThese are some of the most prominent global changes. But there are many
Xother changes in the game, and they are not less dramatic. To mention just
Xa few: The shop code was revised. Shopkeepers are smarter, and they know
Xhow to repair damage to their shop. The endgame is now a multi-level
Xdungeon, full of surprises. The artifact code was rewritten, and gaining
Xaccess to the Amulet of Yendor requires the coordinated use of special
Xartifacts. Many new creatures and objects were added to the game. We leave
Xit to you to discover the rest for yourselves.
X
XWe dedicate the game to the many players of 3.0, with special note of those
Xwho communicated with us and contributed their ideas to the development of
Xthis new version.
X
X - - - - - - - - - - -
X
XPlease read items (1), (2) and (3) BEFORE doing anything with your new code.
X
X1. Unpack the code in a dedicated new directory. We will refer to that
X directory as the 'Top' directory. It makes no difference what you
X call it.
X
X2. If there is no flaw in the packaging, many sub-directories will be
X automatically created, and files will be deposited in them:
X
X a. A 'dat' directory, which contains a variety of data files.
X b. A 'doc' directory, which contains various documentation.
X c. An 'include' directory, which contains all *.h files.
X d. A 'src' directory, which contains game *.c files used by all versions.
X e. A 'util' directory, which contains files for utility programs.
X f. A 'sys' directory, which contains subdirectories for files that
X are operating-system specific.
X g. A 'sys/share' subdirectory, which contains files shared by some OSs.
X h. A 'sys/amiga' subdirectory, which contains files specific to AmigaDOS.
X i. A 'sys/amiga/splitter' subsubdirectory, which contains files
X for the Amiga splitter program.
X j. A 'sys/atari' subdirectory, which contains files specific to TOS.
X k. A 'sys/mac' subdirectory, which contains files specific to MacOS.
X l. A 'sys/msdos' subdirectory, which contains files specific to MS-DOS.
X m. A 'sys/os2' subdirectory, which contains files specific to OS/2.
X n. A 'sys/unix' subdirectory, which contains files specific to UNIX.
X o. A 'sys/vms' subdirectory, which contains files specific to VMS.
X p. A 'win' directory, which contains subdirectories for files that
X are windowing-system specific (but not operating-system specific).
X q. A 'win/tty' subdirectory, which contains files specific to ttys.
X r. A 'win/X11' subdirectory, which contains files specific to X11.
X
X The names of these directories should not be changed, unless you are
X ready to go through the makefiles and the makedefs program and change
X all the directory references in them.
X
X3. Having unpacked, you should have a file called 'Files' in your Top
X directory. This file contains the list of all the files you now SHOULD
X have in each directory. Please check the files in each directory
X against this list to make sure that you have a complete set.
X
X4. Before you do anything else, please read carefully the file called
X 'license' in the dat subdirectory. It is expected that you comply
X with the terms of that license, and we are very serious about it. In
X particular, you are prohibited by the terms of the license from using
X NetHack 3.1 for gainful purposes.
X
X5. If everything is in order, you can now turn to trying to get the program
X to compile and run on your particular system. It is worth mentioning
X that the default configuration is BSD/Sun/SunOS4.x (simply because
X the code was housed on such a system). It is also worth mentioning
X here that NetHack 3.1 is a huge program by comparison with 3.0, let
X alone 2.3. If you intend to run it on a small machine, you'll have
X to make hard choices among the options available in config.h.
X
X The files sys/*/Install.* were written to guide you in configuring the
X program for your operating system. The files win/*/Install.* are
X available, where necessary, to help you in configuring the program
X for particular windowing environments. Reading them, and the man page,
X should answer most of your questions.
X
X At the time of this release, NetHack 3.1 is known to run on:
X
X AT&T 3B1 running System V (3.51)
X AT&T 3B2/600 & 3B2/622 running System V R3.2.1
X AT&T 3B2/1000 Model 80 running System V R3.2.2
X AT&T 3B4000 running System V
X AT&T 6386 running System V R3.2
X Bull DPX/2 2x0 and 3x0 running B.O.S 02.00.xx
X Bull DPX/20 1xx 4xx 6xx or 8xx running BOSX V3.2
X Bull XPS100 running System V R3.1 (Rel VS/25 only)
X Data General AViiON systems running DG/UX
X DEC vaxen running Ultrix and BSD
X Decstations running Ultrix 3.1 or 4.0 using the cc compiler only
X Decstations running Ultrix 4.2 using either cc or gcc (1.39 OSF)
X Encore Multimax running UMAX 4.2
X Gould NP1 running UTX 3/2
X H-P 9000s300 running HP-UX
X IBM PC/RT and RS/6000 running AIX
X Mips M2000 running RiscOS 4.1
X NeXT running Mach (using BSD configuration)
X Pyramid 9820x running OSx 4.4c
X SGI Iris running IRIX
X Stardent Vistra 800 running SysV R4.0
X Stride 460 running UniStride 2.1
X Sun-3s, -4s, and -386is running SunOS 3.x and 4.x
X Sun-4s running Solaris 2.x (aka SunOS 5.x)
X Valid Logic Systems SCALD-System
X 286 box running Microport SysV/AT (not extensively tested)
X
X Apple Macintosh running MacOS
X Atari ST/TT/Falcon running TOS (or MultiTOS) with GCC
X Commodore Amiga running AmigaDOS 1.3/2.x with SAS/C 5.10b or
X Manx 5.0 (but see Install.ami about DICE and SAS/C 6.1)
X DEC Alpha/VMS (aka OpenVMS AXP), running V1.0
X DEC VAX/VMS, running V4.6 through V5.5-2, T6.0
X IBM PC compatibles running MS-DOS with MicroSoft C or DJGPP
X IBM PS/2 and AT compatibles running OS/2 1.1 - 2.0 with Microsoft C
X 5.1 or 6.0, and OS/2 2.0 with GCC emx 0.8f or IBM C Set/2
X
X - - - - - - - - - - -
X
XIf you have problems building the game, or you find bugs in it, the
Xdevelopment team may be reached as
X
X nethac...@linc.cis.upenn.edu
X
XPlease be sure to include your machine type, OS, and patchlevel.
X
XPatches especially should be directed to this address. If you've changed
Xsomething to get NetHack to run on your system, it's likely that others have
Xdone it by making slightly different modifications. By routing your patches
Xthrough the development team, we should be able to avoid making everyone else
Xchoose among variant patches claiming to do the same thing, to keep most of
Xthe copies of 3.1 synchronized by means of official patches, and to maintain
Xthe painfully-created file organization. (Remember the mess when everybody
Xjust posted their own patches to 2.3? There were no archived bug-fixes to
Xgive people who got 2.3 after its initial release, so the same bugs kept being
Xdiscovered by new batches of people. We were successful in preventing this
Xfrom happening to 3.0. Please cooperate to keep this from happening to 3.1.)
X
XIt is inevitable that we will reject some proposed additions of new features
Xeither because they do not fit our conception of the game, or because they
Xrequire more code than we consider they're worth. If we reject your feature,
Xyou are free, of course, to post the patches to the net yourself and let the
Xmarketplace decide its worth.
X
XAll of this amounts to the following: If you decide to apply a free-lanced
Xpatch to your 3.1 code, you are on your own. In our own patches, we will
Xassume that your code is synchronized with ours.
X
X -- Good luck, and happy Hacking --
X
END_OF_FILE
if test 9769 -ne `wc -c <'README'`; then
echo shar: \"'README'\" unpacked with wrong size!
fi
# end of 'README'
fi
if test -f 'MANIFEST' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'MANIFEST'\"
else
echo shar: Extracting \"'MANIFEST'\" \(13530 characters\)
sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
X File Name Archive # Description
X-----------------------------------------------------------
X Files 95
X MANIFEST 1 This shipping list
X Porting 99
X README 1
X UPDATE0 106
X dat 1
X dat/Arch.des 36
X dat/Barb.des 90
X dat/Caveman.des 88
X dat/Elf.des 31
X dat/Healer.des 21
X dat/Knight.des 30
X dat/Priest.des 91
X dat/Rogue.des 82
X dat/Samurai.des 89
X dat/Tourist.des 86
X dat/Valkyrie.des 20
X dat/Wizard.des 87
X dat/bigroom.des 65
X dat/castle.des 98
X dat/cmdhelp 93
X dat/data.base 75
X dat/dungeon.def 8
X dat/endgame.des 81
X dat/gehennom.des 62
X dat/help 96
X dat/hh 103
X dat/history 103
X dat/knox.des 67
X dat/license 103
X dat/medusa.des 98
X dat/mines.des 14
X dat/opthelp 100
X dat/oracle.des 106
X dat/oracles.txt 101
X dat/quest.tx1 36
X dat/quest.tx2 29
X dat/rumors.fal 55
X dat/rumors.tru 68
X dat/tower.des 92
X dat/wizhelp 72
X dat/yendor.des 13
X doc 1
X doc/Guidebook.mn 6
X doc/Guidebook.te1 74
X doc/Guidebook.te2 53
X doc/Guidebook.uu1 9
X doc/Guidebook.uu2 14
X doc/dgn_comp.6 97
X doc/lev_comp.6 92
X doc/nethack.6 100
X doc/recover.6 105
X doc/tmac.n 71
X doc/window.doc 53
X include 1
X include/Window.h 105
X include/WindowP.h 107
X include/align.h 107
X include/amiconf.h 105
X include/artifact.h 106
X include/artilist.h 99
X include/attrib.h 3
X include/color.h 102
X include/config.h 1
X include/coord.h 107
X include/decl.h 96
X include/def_os2.h 104
X include/dgn_file.h 79
X include/display.h 95
X include/dungeon.h 102
X include/edog.h 107
X include/emin.h 42
X include/engrave.h 107
X include/epri.h 107
X include/eshk.h 107
X include/extern.h 4
X include/flag.h 66
X include/func_tab.h 107
X include/global.h 12
X include/hack.h 104
X include/lev.h 27
X include/macconf.h 97
X include/mail.h 107
X include/mfndpos.h 107
X include/micro.h 107
X include/mkroom.h 104
X include/monattk.h 104
X include/mondata.h 100
X include/monflag.h 99
X include/monst.h 103
X include/monsym.h 104
X include/obj.h 103
X include/objclass.h 102
X include/os2conf.h 62
X include/patchlevel.h 102
X include/pcconf.h 105
X include/permonst.h 106
X include/prop.h 107
X include/qtext.h 106
X include/quest.h 106
X include/rect.h 107
X include/rm.h 93
X include/sp_lev.h 104
X include/spell.h 84
X include/system.h 29
X include/termcap.h 106
X include/tosconf.h 106
X include/tradstdc.h 97
X include/trampoli.h 97
X include/trap.h 89
X include/unixconf.h 98
X include/vault.h 107
X include/vision.h 85
X include/vmsconf.h 94
X include/winX.h 90
X include/winami.h 106
X include/winprocs.h 104
X include/wintty.h 102
X include/wintype.h 56
X include/you.h 100
X include/youprop.h 9
X rebuild.sh 104
X src 1
X src/allmain.c 95
X src/alloc.c 107
X src/apply.c 3
X src/artifact.c 74
X src/attrib.c 51
X src/ball.c 40
X src/bones.c 93
X src/botl.c 92
X src/cmd.c 81
X src/dbridge.c 64
X src/decl.c 97
X src/detect.c 79
X src/display.c 52
X src/do.c 65
X src/do_name.c 83
X src/do_wear.c 41
X src/dog.c 33
X src/dogmove.c 50
X src/dokick.c 59
X src/dothrow.c 60
X src/drawing.c 65
X src/dungeon.c 35
X src/eat.c 12
X src/end.c 85
X src/engrave.c 72
X src/exper.c 102
X src/explode.c 99
X src/extralev.c 96
X src/files.c 61
X src/fountain.c 89
X src/hack.c 34
X src/hacklib.c 25
X src/invent.c 13
X src/lock.c 56
X src/mail.c 37
X src/makemon.c 31
X src/mcastu.c 95
X src/mhitm.c 79
X src/mhitu.c1 56
X src/mhitu.c2 57
X src/minion.c 101
X src/mklev.c 54
X src/mkmap.c 91
X src/mkmaze.c 71
X src/mkobj.c 83
X src/mkroom.c 86
X src/mon.c 21
X src/mondata.c 90
X src/monmove.c 69
X src/monst.c1 11
X src/monst.c2 40
X src/monst.c3 60
X src/mplayer.c 96
X src/mthrowu.c 39
X src/muse.c 45
X src/music.c 35
X src/o_init.c 94
X src/objects.c 23
X src/objnam.c 10
X src/options.c 80
X src/pager.c 47
X src/pickup.c 80
X src/pline.c 101
X src/polyself.c 73
X src/potion.c 70
X src/pray.c 28
X src/priest.c 46
X src/quest.c 87
X src/questpgr.c 27
X src/read.c 66
X src/rect.c 68
X src/restore.c 63
X src/rip.c 81
X src/rnd.c 106
X src/rumors.c 94
X src/save.c 54
X src/shk.c1 47
X src/shk.c2 33
X src/shknam.c 43
X src/sit.c 19
X src/sounds.c 49
X src/sp_lev.c1 77
X src/sp_lev.c2 62
X src/spell.c 41
X src/steal.c 17
X src/timeout.c 23
X src/topten.c 67
X src/track.c 107
X src/trap.c1 73
X src/trap.c2 67
X src/u_init.c 82
X src/uhitm.c 19
X src/vault.c 66
X src/version.c 73
X src/vision.c1 44
X src/vision.c2 58
X src/weapon.c 88
X src/were.c 105
X src/wield.c 96
X src/windows.c 106
X src/wizard.c 44
X src/worm.c 82
X src/worn.c 18
X src/write.c 103
X src/zap.c1 68
X src/zap.c2 61
X sys 1
X sys/amiga 1
X sys/amiga/HackWB.uu 107
X sys/amiga/Install.ami 45
X sys/amiga/Makefile.ami 63
X sys/amiga/NHinfo.uu 106
X sys/amiga/NetHack.cnf 105
X sys/amiga/NewGame.uu 100
X sys/amiga/amidos.c 92
X sys/amiga/amidos.p 107
X sys/amiga/amifont.uu 107
X sys/amiga/amifont8.uu 105
X sys/amiga/amigst.c 107
X sys/amiga/amii.hlp 106
X sys/amiga/amimenu.c 11
X sys/amiga/amirip.c 83
X sys/amiga/amiwbench.c 28
X sys/amiga/amiwind.c 58
X sys/amiga/amiwind.p 107
X sys/amiga/ask.uu 2
X sys/amiga/char.c 10
X sys/amiga/charwin.uu 105
X sys/amiga/colors.uu 5
X sys/amiga/colorwin.c 100
X sys/amiga/dflticon.uu 106
X sys/amiga/hackwb.hlp 106
X sys/amiga/ifchange 107
X sys/amiga/randwin.c 7
X sys/amiga/randwin.uu 107
X sys/amiga/scroll.uu 43
X sys/amiga/splitter 1
X sys/amiga/splitter/amiout.h 105
X sys/amiga/splitter/arg.c 101
X sys/amiga/splitter/arg.h 107
X sys/amiga/splitter/loader.c 93
X sys/amiga/splitter/multi.c 6
X sys/amiga/splitter/multi.h 107
X sys/amiga/splitter/split.doc 59
X sys/amiga/splitter/split.h 101
X sys/amiga/splitter/splitter.c 88
X sys/amiga/string.uu 107
X sys/amiga/wb.c1 39
X sys/amiga/wb.c2 22
X sys/amiga/wbcli.c 38
X sys/amiga/wbdata.c 102
X sys/amiga/wbdefs.h 102
X sys/amiga/wbprotos.h 86
X sys/amiga/wbstruct.h 106
X sys/amiga/wbwin.c 7
X sys/amiga/wbwin.uu 77
X sys/amiga/winami.c1 20
X sys/amiga/winami.c2 24
X sys/amiga/winami.p 101
X sys/atari 1
X sys/atari/Install.tos 16
X sys/atari/Makefile.utl 101
X sys/atari/atari.cnf 105
X sys/atari/atarifnt.uue 99
X sys/atari/nethack.mnu 107
X sys/atari/setup.g 103
X sys/atari/tos.c 99
X sys/mac 1
X sys/mac/Install.mpw 103
X sys/mac/MacHelp 104
X sys/mac/NHmake.hqx 55
X sys/mac/NHrez.hqx 102
X sys/mac/NHrsrc.hqx 78
X sys/mac/NHsound.hq1 27
X sys/mac/NHsound.hq2 25
X sys/mac/NHsound.hq3 26
X sys/mac/NHsound.hq4 30
X sys/mac/News 32
X sys/mac/hack.h 26
X sys/mac/maccurs.c 101
X sys/mac/macerrs.c 103
X sys/mac/macfile.c 91
X sys/mac/macmain.c 90
X sys/mac/macsnd.c 106
X sys/mac/mactopl.c 95
X sys/mac/macunix.c 107
X sys/mac/macwin.c1 37
X sys/mac/macwin.c2 48
X sys/mac/mgetline.c 98
X sys/mac/mhdump.c 12
X sys/mac/mmodal.c 104
X sys/mac/mstring.c 107
X sys/msdos 1
X sys/msdos/Install.dos 84
X sys/msdos/MakeGCC.src 32
X sys/msdos/MakeGCC.utl 98
X sys/msdos/MakeMSC.src 69
X sys/msdos/MakeMSC.utl 98
X sys/msdos/Makefile.dat 99
X sys/msdos/exesmurf.c 89
X sys/msdos/exesmurf.doc 102
X sys/msdos/maintovl.doc 85
X sys/msdos/msdos.c 91
X sys/msdos/nhico.uu 107
X sys/msdos/nhpif.uu 107
X sys/msdos/ovlmgr.asm 18
X sys/msdos/ovlmgr.doc 84
X sys/msdos/ovlmgr.uu 94
X sys/msdos/setup.bat 106
X sys/msdos/trampoli.c 38
X sys/os2 1
X sys/os2/Install.os2 34
X sys/os2/Makefile.os2 49
X sys/os2/nhpmico.uu 98
X sys/os2/os2.c 99
X sys/share 1
X sys/share/Makefile.lib 107
X sys/share/NetHack.cnf 103
X sys/share/dgn_comp.h 107
X sys/share/dgn_lex.c 84
X sys/share/dgn_yacc.c 57
X sys/share/lev_comp.h 106
X sys/share/lev_lex.c 51
X sys/share/lev_yacc.c1 32
X sys/share/lev_yacc.c2 72
X sys/share/pcmain.c 93
X sys/share/pcsys.c 95
X sys/share/pctty.c 107
X sys/share/pcunix.c 96
X sys/share/random.c 88
X sys/share/termcap 90
X sys/share/termcap.uu 42
X sys/unix 1
X sys/unix/Install.unx 26
X sys/unix/Makefile.dat 106
X sys/unix/Makefile.doc 4
X sys/unix/Makefile.src 70
X sys/unix/Makefile.top 103
X sys/unix/Makefile.utl 100
X sys/unix/cpp1.shr 2
X sys/unix/cpp2.shr 5
X sys/unix/cpp3.shr 8
X sys/unix/ioctl.c 105
X sys/unix/nethack.sh 107
X sys/unix/setup.sh 107
X sys/unix/snd86unx.shr 78
X sys/unix/unixmain.c 94
X sys/unix/unixtty.c 97
X sys/unix/unixunix.c 97
X sys/vms 1
X sys/vms/Install.vms 76
X sys/vms/Makefile.dat 105
X sys/vms/Makefile.doc 106
X sys/vms/Makefile.src 48
X sys/vms/Makefile.top 104
X sys/vms/Makefile.utl 94
X sys/vms/gnutermcap.c 52
X sys/vms/gnutparam.c 89
X sys/vms/install.com 100
X sys/vms/lev_lex.h 78
X sys/vms/nethack.com 91
X sys/vms/oldcrtl.c 101
X sys/vms/spec_lev.com 105
X sys/vms/vmsbuild.com 22
X sys/vms/vmsfiles.c 98
X sys/vms/vmsmail.c 87
X sys/vms/vmsmain.c 92
X sys/vms/vmsmisc.c 107
X sys/vms/vmstty.c 87
X sys/vms/vmsunix.c 42
X util 1
X util/dgn_comp.l 104
X util/dgn_comp.y 86
X util/dgn_main.c 105
X util/lev_comp.l 43
X util/lev_comp.y 50
X util/lev_main.c 64
X util/makedefs.c 17
X util/panic.c 106
X util/recover.c 101
X win 1
X win/X11 1
X win/X11/Install.X11 100
X win/X11/NetHack.ad 105
X win/X11/Window.c 102
X win/X11/dialogs.c 91
X win/X11/ibm.bdf 108
X win/X11/nethack.rc 43
X win/X11/nh10.bdf 15
X win/X11/nh32icon 107
X win/X11/nh56icon 43
X win/X11/nh72icon 104
X win/X11/winX.c 16
X win/X11/winmap.c 75
X win/X11/winmenu.c 92
X win/X11/winmesg.c 85
X win/X11/winmisc.c 24
X win/X11/winstat.c 76
X win/X11/wintext.c 93
X win/X11/winval.c 105
X win/tty 1
X win/tty/getline.c 103
X win/tty/termcap.c 59
X win/tty/topl.c 96
X win/tty/wintty.c 46
END_OF_FILE
if test 13530 -ne `wc -c <'MANIFEST'`; then
echo shar: \"'MANIFEST'\" unpacked with wrong size!
fi
# end of 'MANIFEST'
fi
if test ! -d 'dat' ; then
echo shar: Creating directory \"'dat'\"
mkdir 'dat'
fi
if test ! -d 'doc' ; then
echo shar: Creating directory \"'doc'\"
mkdir 'doc'
fi
if test ! -d 'include' ; then
echo shar: Creating directory \"'include'\"
mkdir 'include'
fi
if test -f 'include/config.h' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'include/config.h'\"
else
echo shar: Extracting \"'include/config.h'\" \(12825 characters\)
sed "s/^X//" >'include/config.h' <<'END_OF_FILE'
X/* SCCS Id: @(#)config.h 3.1 92/08/29 */
X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
X/* NetHack may be freely redistributed. See license for details. */
X
X#ifndef CONFIG_H /* make sure the compiler does not see the typedefs twice */
X#define CONFIG_H
X
X
X/*
X * Section 1: OS selection.
X * Select the version of the OS you are using.
X * For "UNIX" select either SYSV or BSD in unixconf.h.
X * A "VMS" option is not needed since the VMS C-compilers
X * provide it (no need to change sec#1, vmsconf.h handles it).
X */
X
X#define UNIX /* delete if no fork(), exec() available */
X
X/*
X * MS DOS - compilers
X *
X * Microsoft C auto-defines MSDOS,
X * Borland C auto-defines __TURBOC__,
X * DJGPP auto-defines MSDOS.
X */
X
X/* #define MSDOS /* use if not defined by compiler or cases below */
X
X#ifdef __TURBOC__
X# define MSDOS
X#endif
X
X#ifdef MSDOS
X# undef UNIX
X#endif
X
X/*
X * Mac Stuff.
X */
X
X#ifdef applec /* MPW auto-defined symbol */
X# define MAC
X# undef UNIX /* Just in case */
X#endif
X/* #define MAC /* We're on some mac-ish platform */
X
X#ifdef MAC
X# ifdef THINK_C
X# define NEED_VARARGS
X# endif
X#endif
X
X/*
X * Amiga setup.
X */
X#ifdef AZTEC_C /* Manx auto-defines this */
X# ifdef MCH_AMIGA /* Manx auto-defines this for AMIGA */
X# ifndef AMIGA
X#define AMIGA /* define for Commodore-Amiga */
X# endif /* (Lattice auto-defines AMIGA) */
X#define AZTEC_50 /* define for version 5.0 of manx */
X# endif
X#endif
X#ifdef LATTICE
X# define NEARDATA __near /* put some data close */
X# define NO_SCAN_BRACK /* scanf doesn't handle [] (this define available
X * for any system with this problem) */
X#else
X# define NEARDATA
X#endif
X#ifdef AMIGA
X# ifdef UNIX
X "Please re-read the compilation documentation. Thank you."
X# endif
X#endif
X
X/*
X * Atari auto-detection
X */
X
X#ifdef atarist
X# undef UNIX
X# define TOS
X#else
X# ifdef __MINT__
X# undef UNIX
X# define TOS
X# endif
X#endif
X
X/*
X * and other systems...
X */
X
X/* #define OS2 /* define for OS/2 */
X
X/* #define TOS /* define for Atari ST/TT */
X
X/* #define STUPID /* avoid some complicated expressions if
X your C compiler chokes on them */
X/* #define TERMINFO /* uses terminfo rather than termcap */
X /* should be defined for HPUX and most, but not all,
X SYSV */
X /* in particular, it should NOT be defined for the
X * UNIXPC unless you remove the use of the shared
X * library in the makefile */
X/* #define MINIMAL_TERM /* if a terminal handles highlighting or tabs poorly,
X try this define, used in pager.c and termcap.c */
X/* #define ULTRIX_CC20 /* define only if using cc v2.0 on a DECstation */
X/* #define ULTRIX_PROTO /* define for Ultrix 4.0 (or higher) on a DECstation;
X * if you get compiler errors, don't define this. */
X /* Hint: if you're not developing code, don't define
X ULTRIX_PROTO. */
X
X#ifdef AMIGA
X# define NEED_VARARGS
X#endif
X
X#ifdef VMS /* really old compilers need special handling, detected here */
X# undef UNIX
X# ifdef __DECC /* buggy early versions want widened prototypes */
X# define NOTSTDC /* except when typedefs are involved */
X# define USE_VARARGS
X# undef __HIDE_FORBIDDEN_NAMES /* need non-ANSI library support functions */
X# else
X# ifdef VAXC /* must use CC/DEFINE=ANCIENT_VAXC for vaxc v2.2 or older */
X# ifdef ANCIENT_VAXC /* vaxc v2.2 and earlier [lots of warnings to come] */
X# define KR1ED /* simulate defined() */
X# define USE_VARARGS
X# else /* vaxc v2.3,2.4,or 3.x, or decc in vaxc mode */
X# if defined(USE_PROTOTYPES) /* this breaks 2.2 (*forces* use of ANCIENT)*/
X# define __STDC__ 0 /* vaxc is not yet ANSI compliant, but close enough */
X# define signed /* well, almost close enough */
X#include <stddef.h>
X# define UNWIDENED_PROTOTYPES
X# endif
X# define USE_STDARG
X# endif
X# endif /*VAXC*/
X# endif /*__DECC*/
X# ifdef VERYOLD_VMS /* v4.5 or earlier; no longer available for testing */
X# define USE_OLDARGS /* <varargs.h> is there, vprintf & vsprintf aren't */
X# ifdef USE_VARARGS
X# undef USE_VARARGS
X# endif
X# ifdef USE_STDARG
X# undef USE_STDARG
X# endif
X# endif
X#endif /*VMS*/
X
X#ifdef vax
X/* just in case someone thinks a DECstation is a vax. It's not, it's a mips */
X# ifdef ULTRIX_PROTO
X# undef ULTRIX_PROTO
X# endif
X# ifdef ULTRIX_CC20
X# undef ULTRIX_CC20
X# endif
X#endif
X
X#ifdef KR1ED /* For compilers which cannot handle defined() */
X#define defined(x) (-x-1 != -1)
X/* Because:
X * #define FOO => FOO={} => defined( ) => (-1 != - - 1) => 1
X * #define FOO 1 or on command-line -DFOO
X * => defined(1) => (-1 != - 1 - 1) => 1
X * if FOO isn't defined, FOO=0. But some compilers default to 0 instead of 1
X * for -DFOO, oh well.
X * => defined(0) => (-1 != - 0 - 1) => 0
X *
X * But:
X * defined("") => (-1 != - "" - 1)
X * [which is an unavoidable catastrophe.]
X */
X#endif
X
X/* Windowing systems...
X * Define all of those you want supported in your binary.
X * Some combinations make no sense. See the installation document.
X */
X#define TTY_GRAPHICS /* good old tty based graphics */
X/* #define X11_GRAPHICS /* X11 interface */
X
X/*
X * Define the default window system. This should be one that is compiled
X * into your system (see defines above). Known window systems are:
X *
X * tty, X11, mac, amii
X */
X
X/* MAC also means MAC windows */
X#ifdef MAC
X# ifndef AUX
X# undef TTY_GRAPHICS
X# undef X11_GRAPHICS
X# define DEFAULT_WINDOW_SYS "mac"
X# endif
X#endif
X
X/* no options yet: Amiga also means Intuition windows */
X#ifdef AMIGA
X# undef TTY_GRAPHICS
X# define DEFAULT_WINDOW_SYS "amii"
X#endif
X
X#ifndef DEFAULT_WINDOW_SYS
X# define DEFAULT_WINDOW_SYS "tty"
X#endif
X
X
X
X/*
X * Section 2: Some global parameters and filenames.
X * Commenting out WIZARD, LOGFILE, or NEWS removes that feature
X * from the game; otherwise set the appropriate wizard name.
X * LOGFILE and NEWS refer to files in the playground.
X */
X
X#ifndef WIZARD /* allow for compile-time or Makefile changes */
X# ifndef KR1ED
X# define WIZARD "wizard" /* the person allowed to use the -D option */
X# else
X# define WIZARD
X# define WIZARD_NAME "wizard"
X# endif
X#endif
X
X#define LOGFILE "logfile" /* larger file for debugging purposes */
X#define NEWS "news" /* the file containing the latest hack news */
X
X/*
X * If COMPRESS is defined, it should contain the full path name of your
X * 'compress' program. Defining INTERNAL_COMP causes NetHack to do
X * simpler byte-stream compression internally. Both COMPRESS and
X * INTERNAL_COMP create smaller bones/level/save files, but require
X * additional code and time. Currently, only UNIX fully implements
X * COMPRESS; other ports should be able to uncompress save files a
X * la unixmain.c if so inclined.
X */
X
X#ifdef UNIX
X# define COMPRESS "/usr/ucb/compress" /* path name for 'compress' */
X#endif
X#ifndef COMPRESS
X# define INTERNAL_COMP /* control use of NetHack's compression routines */
X#endif
X
X/*
X * Defining INSURANCE slows down level changes, but allows games that
X * died due to program or system crashes to be resumed from the point
X * of the last level change, after running a utility program.
X */
X#define INSURANCE /* allow crashed game recovery */
X
X#ifndef MAC
X# define CHDIR /* delete if no chdir() available */
X#endif
X
X#ifdef CHDIR
X/*
X * If you define HACKDIR, then this will be the default playground;
X * otherwise it will be the current directory.
X */
X#define HACKDIR "/usr/games/lib/nethackdir" /* nethack directory */
X
X/*
X * Some system administrators are stupid enough to make Hack suid root
X * or suid daemon, where daemon has other powers besides that of reading or
X * writing Hack files. In such cases one should be careful with chdir's
X * since the user might create files in a directory of his choice.
X * Of course SECURE is meaningful only if HACKDIR is defined.
X */
X/* #define SECURE /* do setuid(getuid()) after chdir() */
X
X/*
X * If it is desirable to limit the number of people that can play Hack
X * simultaneously, define HACKDIR, SECURE and MAX_NR_OF_PLAYERS.
X * #define MAX_NR_OF_PLAYERS 6
X */
X#endif /* CHDIR */
X
X
X
X/*
X * Section 3: Definitions that may vary with system type.
X * For example, both schar and uchar should be short ints on
X * the AT&T 3B2/3B5/etc. family.
X */
X
X/*
X * Uncomment the following line if your compiler doesn't understand the
X * 'void' type (and thus would give all sorts of compile errors without
X * this definition).
X */
X/* #define NOVOID /* define if no "void" data type. */
X
X/*
X * Uncomment the following line if your compiler falsely claims to be
X * a standard C compiler (i.e., defines __STDC__ without cause).
X * Examples are Apollo's cc (in some versions) and possibly SCO UNIX's rcc.
X */
X/* #define NOTSTDC /* define for lying compilers */
X
X#include "tradstdc.h"
X
X/*
X * type schar: small signed integers (8 bits suffice) (eg. TOS)
X *
X * typedef char schar;
X *
X * will do when you have signed characters; otherwise use
X *
X * typedef short int schar;
X */
X#ifdef AZTEC
X# define schar char
X#else
Xtypedef signed char schar;
X#endif
X
X/*
X * type uchar: small unsigned integers (8 bits suffice - but 7 bits do not)
X *
X * typedef unsigned char uchar;
X *
X * will be satisfactory if you have an "unsigned char" type;
X * otherwise use
X *
X * typedef unsigned short int uchar;
X */
Xtypedef unsigned char uchar;
X
X/*
X * Various structures have the option of using bitfields to save space.
X * If your C compiler handles bitfields well (e.g., it can initialize structs
X * containing bitfields), you can define BITFIELDS. Otherwise, the game will
X * allocate a separate character for each bitfield. (The bitfields used never
X * have more than 7 bits, and most are only 1 bit.)
X */
X#define BITFIELDS /* Good bitfield handling */
X
X/* #define STRNCMPI /* compiler/library has the strncmpi function */
X
X/*
X * There are various choices for the NetHack vision system. There is a
X * choice of two algorithms with the same behavior. Defining VISION_TABLES
X * creates huge (60K) tables at compile time, drastically increasing data
X * size, but runs slightly faster than the alternate algorithm. (MSDOS in
X * particular cannot tolerate the increase in data size; other systems can
X * flip a coin weighted to local conditions.)
X *
X * If VISION_TABLES is defined, two-dimensional tables will be generated.
X * Some compilers need braces around the rows of such arrays; some need
X * them not to be there. Known preferences:
X * Braces: Sun, DEC vaxen (Ultrix), DEC Mips
X * Bull DPX/2 K&R (Green Hills)
X * No Braces: gcc, hc (IBM High C compiler), AT&T 3B, MSC 5.1
X * Bull DPX/2 Ansi (Green Hills/-Xa option), MPW C
X * If VISION_TABLES is not defined, things will be faster if you can use
X * MACRO_CPATH. Some cpps, however, cannot deal with the size of the
X * functions that have been macroized.
X */
X
X/*#define VISION_TABLES /* use vision tables generated at compile time */
X#ifdef VISION_TABLES
X# define BRACES /* put braces around rows of 2d arrays */
X#else
X# define MACRO_CPATH /* use clear_path macros instead of functions */
X#endif
X
X
X
X/*
X * Section 4: THE FUN STUFF!!!
X *
X * Conditional compilation of special options are controlled here.
X * If you define the following flags, you will add not only to the
X * complexity of the game but also to the size of the load module.
X *
X * Note: Commenting MULDGN will yield a game similar to 3.0, without
X * Quest dungeons and tasks, and without some other special dungeons.
X */
X
X/* game features */
X#define POLYSELF /* Polymorph self code by Ken Arromdee */
X#define SOUNDS /* Add more life to the dungeon */
X/* dungeon features */
X#define SINKS /* Kitchen sinks - Janet Walz */
X/* dungeon levels */
X#define WALLIFIED_MAZE /* Fancy mazes - Jean-Christophe Collet */
X#define REINCARNATION /* Special Rogue-like levels */
X/* monsters & objects */
X#define KOPS /* Keystone Kops by Scott R. Turner */
X#define ARMY /* Soldiers, barracks by Steve Creps */
X#define SEDUCE /* Succubi/incubi seduction, by KAA, suggested by IM */
X#define WALKIES /* Leash code by M. Stephenson */
X#define TOURIST /* Tourist players with cameras and Hawaiian shirts */
X#define TUTTI_FRUTTI /* fruit option as in Rogue, but which works, by KAA */
X#define MUSE /* Let monsters use more things - KAA */
X#define MULDGN /* Multi-branch dungeons MRS & IM */
X/* difficulty */
X#define ELBERETH /* Engraving the E-word repels monsters */
X#define EXPLORE_MODE /* Allow non-scoring play with additional powers */
X/* I/O */
X#define REDO /* support for redoing last command - DGK */
X#define COM_COMPL /* Command line completion by John S. Bien */
X#ifndef AMIGA
X# define CLIPPING /* allow smaller screens -- ERS */
X#endif
X
X#ifdef REDO
X# define DOAGAIN '\001' /* ^A, the "redo" key used in cmd.c and getline.c */
X#endif
X
X#define EXP_ON_BOTL /* Show experience on bottom line */
X/* #define SCORE_ON_BOTL /* added by Gary Erickson (erickson@ucivax) */
X
X#include "global.h" /* Define everything else according to choices above */
X
X#endif /* CONFIG_H */
END_OF_FILE
if test 12825 -ne `wc -c <'include/config.h'`; then
echo shar: \"'include/config.h'\" unpacked with wrong size!
fi
# end of 'include/config.h'
fi
if test ! -d 'src' ; then
echo shar: Creating directory \"'src'\"
mkdir 'src'
fi
if test ! -d 'sys' ; then
echo shar: Creating directory \"'sys'\"
mkdir 'sys'
fi
if test ! -d 'sys/amiga' ; then
echo shar: Creating directory \"'sys/amiga'\"
mkdir 'sys/amiga'
fi
if test ! -d 'sys/amiga/splitter' ; then
echo shar: Creating directory \"'sys/amiga/splitter'\"
mkdir 'sys/amiga/splitter'
fi
if test ! -d 'sys/atari' ; then
echo shar: Creating directory \"'sys/atari'\"
mkdir 'sys/atari'
fi
if test ! -d 'sys/mac' ; then
echo shar: Creating directory \"'sys/mac'\"
mkdir 'sys/mac'
fi
if test ! -d 'sys/msdos' ; then
echo shar: Creating directory \"'sys/msdos'\"
mkdir 'sys/msdos'
fi
if test ! -d 'sys/os2' ; then
echo shar: Creating directory \"'sys/os2'\"
mkdir 'sys/os2'
fi
if test ! -d 'sys/share' ; then
echo shar: Creating directory \"'sys/share'\"
mkdir 'sys/share'
fi
if test ! -d 'sys/unix' ; then
echo shar: Creating directory \"'sys/unix'\"
mkdir 'sys/unix'
fi
if test ! -d 'sys/vms' ; then
echo shar: Creating directory \"'sys/vms'\"
mkdir 'sys/vms'
fi
if test ! -d 'util' ; then
echo shar: Creating directory \"'util'\"
mkdir 'util'
fi
if test ! -d 'win' ; then
echo shar: Creating directory \"'win'\"
mkdir 'win'
fi
if test ! -d 'win/X11' ; then
echo shar: Creating directory \"'win/X11'\"
mkdir 'win/X11'
fi
if test ! -d 'win/tty' ; then
echo shar: Creating directory \"'win/tty'\"
mkdir 'win/tty'
fi
echo shar: End of archive 1 \(of 108\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 \
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 \
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 \
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 \
101 102 103 104 105 106 107 108 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 108 archives.
echo "Now execute 'rebuild.sh'"
rm -f ark10[0-8]isdone 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