home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!news.tek.com!master!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v16i001: nethack31 - display oriented dungeons & dragons (Ver. 3.1), Part01/108
- Message-ID: <4284@master.CNA.TEK.COM>
- Date: 28 Jan 93 19:08:38 GMT
- Sender: news@master.CNA.TEK.COM
- Lines: 1243
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
- Posting-number: Volume 16, Issue 1
- Archive-name: nethack31/Part01
- Supersedes: nethack3p9: Volume 10, Issue 46-102
- Environment: Amiga, Atari, Mac, MS-DOS, OS2, Unix, VMS, X11
-
- [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 nethack-bugs@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 nethack-bugs@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
-