billr@saab.CNA.TEK.COM (Bill Randle) (08/18/89)
Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu> Posting-number: Volume 8, Issue 6 Archive-name: NetHack3/Patch2a Patch-To: NetHack3: Volume 7, Issue 56-93 [Here's the second set of official patches to NetHack3 (in 7 parts). See the file UPDATE2 for the list of changes that have been made. Unpack this and all the other parts in your top level NetHack directory and execute the 'do_patch2.sh' shell script (if you're on Unix) to auto- matically apply the patches using 'patch'. If Patch2b unpacked with two control characters missing they are control-G's at the end of the two "echo " statements in Makefile.tcc. -br] #! /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 7)." # Contents: UPDATE2 do_patch2.sh patch02a # Wrapped by billr@saab on Fri Aug 18 08:32:41 1989 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'UPDATE2' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'UPDATE2'\" else echo shar: Extracting \"'UPDATE2'\" \(2893 characters\) sed "s/^X//" >'UPDATE2' <<'END_OF_FILE' X-------------- XUPDATE2 X-------------- XThis patch kit upgrades NetHack to version 3.0f. The kit should Xbe applied to the original release, patched with patchlevel 1. X XMany of the diffs included here are bugfixes to bugs reported to Xus by players. We are very grateful for these reports. X XThere were questions about our netnews usage. We use the good Xoffices of comp.sources.games because, unlike rec.games.hack, it Xis archived. It is the only way to secure the availability of Xthe source code and the official patches for future users. For Xthis reason, comp.sources.games will remain the only place where Xthe official NetHack patches are posted. X XOccasionally we may see a need to post a semi-official stopgap patch Xsuch as the one for the 'killer' bug posted just after Patch 1 in Xrec.games.hack and in comp.sources.games.bugs. These stopgap patches Xwill always be included in the next official patch kit. The 'killer' Xbugfix is, indeed, included here. X XThe above two newsgroups often contain many bug reports and unofficial Xfixes. We read these groups, and thus we get the reports. But it Xwill be helpful if you mailed nethack-bugs a copy of your posting. XIf your site gets these newsgroups, you may want to check them for Xmentions of bugs before reporting the same bug to nethack-bugs (or Xto the same newsgroups, for that matter -- unless you have additional Xinformation). X X X XNow, on to the main changes. X XObjects were rearranged slightly, so the cautious may want to throw Xout saved games and bones files. X XTimo Hakulinen provided an OS/2 port. X XVarious people convinced various OS versions to be better about Xsensing the available screen size at start-up. X XThe game tries now to be smarter about guessing defaults for players Xwho don't set environment variables of interest to NetHack. X XEric Raymond extended the PC color code slightly to allow its use by XSVR3.2 machines with color information from terminfo, and also allowed Xmany extended commands to be available via a meta key under SYSV. X XPaul Gyugyi provided a better makefile for MicroSoft C. X XThe MSDOS terminal problems, including always needing TERMLIB, are X(hopefully) fixed. X XThe '/' command now allows multiple identifications, and more things Xmay be usefully identified. X XMore code was shuffled and rewritten to satisfy compiler and preprocessor Xconstraints. X XStarving dogs again eat people food. X XCredit cards can no longer lock things. X XDoors have been toned down slightly, but are in no danger of being removed. X XThe gods' ranking of player troubles was revised. X XWizards can no longer start with certain useless items. X XVarious code, including game ending, seduction, and monster attack, is Xconsiderably cleaner. X XAbove all: scores of bugs were fixed. X X XPlease continue testing the game and reporting to nethack-bugs. Your Xresponse has been wonderful, and it has made this effort worth while. X X END_OF_FILE if test 2893 -ne `wc -c <'UPDATE2'`; then echo shar: \"'UPDATE2'\" unpacked with wrong size! fi # end of 'UPDATE2' fi if test -f 'do_patch2.sh' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'do_patch2.sh'\" else echo shar: Extracting \"'do_patch2.sh'\" \(496 characters\) sed "s/^X//" >'do_patch2.sh' <<'END_OF_FILE' X#! /bin/sh X# script to call patch to apply diff files X# make sure all of the patch files (and this file) are in your top level X# NetHack directory X# Xecho "applying patch2a" Xpatch -p <patch02a Xecho "applying patch2b" Xpatch -p <patch02b Xecho "applying patch2c" Xpatch -p <patch02c Xecho "applying patch2d" Xpatch -p <patch02d Xecho "applying patch2e" Xpatch -p <patch02e Xecho "applying patch2f" Xpatch -p <patch02f Xecho "applying patch2g" Xpatch -p <patch02g Xecho "all patches applied, check for rejects" END_OF_FILE if test 496 -ne `wc -c <'do_patch2.sh'`; then echo shar: \"'do_patch2.sh'\" unpacked with wrong size! fi chmod +x 'do_patch2.sh' # end of 'do_patch2.sh' fi if test -f 'patch02a' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patch02a'\" else echo shar: Extracting \"'patch02a'\" \(47487 characters\) sed "s/^X//" >'patch02a' <<'END_OF_FILE' X*** include/Old/patchlevel.h Wed Aug 16 14:09:33 1989 X--- include/patchlevel.h Wed Aug 16 14:03:09 1989 X*************** X*** 9,12 **** X * add more instructions for new environments and things commonly done wrong X */ X X! #define PATCHLEVEL 1 X--- 9,23 ---- X * add more instructions for new environments and things commonly done wrong X */ X X! /* X! * Patch 2, August 16, 1989 X! * add support for OS/2 (courtesy Timo Hakulinen) X! * add a better makefile for MicroSoft C (courtesy Paul Gyugyi) X! * more accomodation of compilers and preprocessors X! * add better screen-size sensing X! * expand color use for PCs and introduce it for SVR3 UNIX machines X! * extend '/' to multiple identifications X! * fix various minor bugs, and do further code cleaning X! */ X! X! #define PATCHLEVEL 2 X*** ./Old/Files Wed Aug 16 11:58:20 1989 X--- ./Files Wed Aug 16 10:25:13 1989 X*************** X*** 27,34 **** X X others: X (files for MSDOS version) X! Make.ini Makefile.pc Makefile.tcc Maketcc.ini NetHack.cnf X! termcap termcap.uu X (files for MSDOS, Amiga, and Atari versions) X pcmain.c pctty.c pcunix.c X (file for MSDOS and new Atari versions) X--- 27,34 ---- X X others: X (files for MSDOS version) X! Make.ini Makefile.msc Makefile.os2 Makefile.tcc Maketcc.ini X! NetHack.cnf termcap termcap.uu X (files for MSDOS, Amiga, and Atari versions) X pcmain.c pctty.c pcunix.c X (file for MSDOS and new Atari versions) X*************** X*** 44,57 **** X include: X (files for all versions) X amiconf.h artifact.h attrib.h config.h coord.h X! decl.h edog.h epri.h eshk.h extern.h X! flag.h func_tab.h global.h gold.h hack.h X! lev.h mfndpos.h mkroom.h monattk.h mondata.h X! monflag.h monst.h monsym.h msdos.h obj.h X! objclass.h patchlevel.h pcconf.h permonst.h prop.h X! rm.h sp_lev.h spell.h system.h tosconf.h X! tradstdc.h trap.h trapname.h unixconf.h vault.h X! wseg.h you.h youprop.h X (file for special level compiler (STRONGHOLD option)) X lev_comp.h X X--- 44,57 ---- X include: X (files for all versions) X amiconf.h artifact.h attrib.h config.h coord.h X! decl.h def_os2.h edog.h epri.h eshk.h X! extern.h flag.h func_tab.h global.h gold.h X! hack.h lev.h mfndpos.h mkroom.h monattk.h X! mondata.h monflag.h monst.h monsym.h msdos.h X! obj.h objclass.h patchlevel.h pcconf.h permonst.h X! prop.h rm.h sp_lev.h spell.h system.h X! tosconf.h tradstdc.h trap.h trapname.h unixconf.h X! vault.h wseg.h you.h youprop.h X (file for special level compiler (STRONGHOLD option)) X lev_comp.h X X*** ./Old/Makefile.top Wed Aug 16 11:58:50 1989 X--- ./Makefile.top Wed Aug 16 11:45:21 1989 X*************** X*** 55,61 **** X # (don't yank the old version out from under people who're playing it) X mv $(GAMEDIR)/$(GAME) $(GAMEDIR)/$(GAME).old X cp src/$(GAME) $(GAMEDIR) X! cp auxil/$(GAME).sh $(SHELLDIR)/$(GAME) X # correct the permissions on the new versions X -( cd $(GAMEDIR) ; chown $(GAMEUID) $(AUX) $(GAME) ; \ X chgrp $(GAMEGRP) $(AUX) $(GAME) ; \ X--- 55,63 ---- X # (don't yank the old version out from under people who're playing it) X mv $(GAMEDIR)/$(GAME) $(GAMEDIR)/$(GAME).old X cp src/$(GAME) $(GAMEDIR) X! sed -e 's;/usr/games/lib/nethackdir;$(GAMEDIR);' \ X! < auxil/nethack.sh \ X! > $(SHELLDIR)/$(GAME) X # correct the permissions on the new versions X -( cd $(GAMEDIR) ; chown $(GAMEUID) $(AUX) $(GAME) ; \ X chgrp $(GAMEGRP) $(AUX) $(GAME) ; \ X*************** X*** 79,85 **** X # copy over the game files X ( cd auxil ; cp $(AUX) $(GAMEDIR) ) X cp src/$(GAME) $(GAMEDIR) X! cp auxil/$(GAME).sh $(SHELLDIR)/$(GAME) X # set up the permissions X -chown $(GAMEUID) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/* X chgrp $(GAMEGRP) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/* X--- 81,89 ---- X # copy over the game files X ( cd auxil ; cp $(AUX) $(GAMEDIR) ) X cp src/$(GAME) $(GAMEDIR) X! sed -e 's;/usr/games/lib/nethackdir;$(GAMEDIR);' \ X! < auxil/nethack.sh \ X! > $(SHELLDIR)/$(GAME) X # set up the permissions X -chown $(GAMEUID) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/* X chgrp $(GAMEGRP) $(SHELLDIR)/$(GAME) $(GAMEDIR) $(GAMEDIR)/* X*************** X*** 91,98 **** X -$(GAMEMANCREATE) $(MANDIR)/$(GAME).$(MANEXT) X -$(LEVMANCREATE) $(MANDIR)/lev_comp.$(MANEXT) X X clean: X! ( cd src ; make clean) X X spotless: X! ( cd src ; make spotless) X--- 95,107 ---- X -$(GAMEMANCREATE) $(MANDIR)/$(GAME).$(MANEXT) X -$(LEVMANCREATE) $(MANDIR)/lev_comp.$(MANEXT) X X+ # 'make clean' removes all the .o files, but leaves around all the executables X+ # and compiled data files X clean: X! ( cd src ; make clean ) X X+ # 'make spotless' returns the source tree to near-distribution condition. X+ # it removes .o files, executables, and compiled data files X spotless: X! ( cd src ; make spotless ) X! ( cd auxil ; make spotless ) X*** amiga/Old/amitcap.c Wed Aug 16 12:00:51 1989 X--- amiga/amitcap.c Fri Aug 11 17:06:35 1989 X*************** X*** 16,22 **** X static char MR[] = "\2337m"; /* Reverse on CSI 7 m */ X static char ME[] = "\2330m"; /* Reverse off CSI 0 m */ X X! #ifdef MSDOSCOLOR /* creps@silver.bacs.indiana.edu */ X static char SO[] = "\23333m"; /* Standout: Color #3 (orange) */ X static char SE[] = "\2330m"; X #else X--- 16,22 ---- X static char MR[] = "\2337m"; /* Reverse on CSI 7 m */ X static char ME[] = "\2330m"; /* Reverse off CSI 0 m */ X X! #ifdef TEXTCOLOR X static char SO[] = "\23333m"; /* Standout: Color #3 (orange) */ X static char SE[] = "\2330m"; X #else X*************** X*** 24,33 **** X--- 24,42 ---- X static char SE[] = "\2330m"; X #endif X X+ #ifdef TEXTCOLOR X+ /* color maps */ X+ static int foreg[8] = { 2, 3, 1, 3, 3, 3, 3, 0 }; X+ static int backg[8] = { 1, 2, 2, 0, 1, 1, 1, 1 }; X+ #endif X X void X startup() X { X+ #ifdef TEXTCOLOR X+ register int c; X+ #endif X+ X (void) Initialize(); /* This opens screen, window, console, &c */ X X CO = COLNO; X*************** X*** 37,43 **** X X CD = "\233J"; /* used in pager.c */ X X! #ifdef MSDOSCOLOR X /* X * We need 5 different 'colors', but in a 4-color screen we really X * cannot make these available, even more so because we use the user's X--- 46,52 ---- X X CD = "\233J"; /* used in pager.c */ X X! #ifdef TEXTCOLOR X /* X * We need 5 different 'colors', but in a 4-color screen we really X * cannot make these available, even more so because we use the user's X*************** X*** 44,55 **** X * preferred Workbench colors. Instead, we use different combinations X * of the 4 possible colors. For orientation: default colors are X * white (1) on blue (0), and a orange (3) cursor on a black (2) character. X */ X! HI_GREEN = "\23331;42m"; /* White on Black */ X! HI_RED = "\23333;42m"; /* Orange on Black */ X! HI_YELLOW = "\23333;40m"; /* Orange on Blue */ X! HI_BLUE = "\23333;41m"; /* Orange on White */ X! HI_WHITE = "\23330;41m"; /* Blue on White */ X X HI = "\2331m"; /* Bold (hilight) */ X HE = "\2330m"; /* Plain */ X--- 53,72 ---- X * preferred Workbench colors. Instead, we use different combinations X * of the 4 possible colors. For orientation: default colors are X * white (1) on blue (0), and a orange (3) cursor on a black (2) character. X+ * X+ * "Black": Black on White X+ * "Red": Orange on Black X+ * "Green": White on Black X+ * "Yellow": Orange on Blue X+ * "Blue": Orange on White X+ * "Magenta": White on Black X+ * "Cyan": White on Black X+ * "White": Blue on White X */ X! for (c = 0; c < SIZE(HI_COLOR); c++) { X! HI_COLOR[c] = (char *) alloc(sizeof("E0;33;44m")); X! Sprintf(HI_COLOR[c], "\2333%d;4%dm", foreg[c], backg[c]); X! } X X HI = "\2331m"; /* Bold (hilight) */ X HE = "\2330m"; /* Plain */ X*** auxil/Old/Guidebook.mn Wed Aug 16 12:02:09 1989 X--- auxil/Guidebook.mn Tue Aug 15 22:59:21 1989 X*************** X*** 4,10 **** X .ds vr "NetHack Version 3.0 X .ds f0 "\*(vr X .ds f1 X! .ds f2 "July 22, 1989 X .mt X A Guide to the Mazes of Menace X .au X--- 4,10 ---- X .ds vr "NetHack Version 3.0 X .ds f0 "\*(vr X .ds f1 X! .ds f2 "August 13, 1989 X .mt X A Guide to the Mazes of Menace X .au X*************** X*** 500,520 **** X commands. You may obtain a list of them by entering `?'. What X extended commands are available depend on what features the game was X compiled with. Most extended commands are used only under limited X! circumstances. X .pg X If the X .op number_pad X option is on, some additional letter commands are available: X .lp j X! jump to another location. Same as ``#jump''. X .lp k X kick something (usually a door). Same as `^D'. X .lp l X! loot a box on the floor. Same as ``#loot''. X .lp N X! name an object or type of object. Same as ``#name''. X .lp u X! untrap a trapped object or door. Same as ``#untrap''. X X .hn 1 X Rooms and corridors X--- 500,523 ---- X commands. You may obtain a list of them by entering `?'. What X extended commands are available depend on what features the game was X compiled with. Most extended commands are used only under limited X! circumstances. Note that if your keyboard has a meta key (that is, one which X! when pressed in combination with another key modified it by turning on X! the 'meta' or 0x80 bit) these extended commands can be invoked by meta-ing the X! first letter of the command. X .pg X If the X .op number_pad X option is on, some additional letter commands are available: X .lp j X! jump to another location. Same as ``#jump'' or meta-j. X .lp k X kick something (usually a door). Same as `^D'. X .lp l X! loot a box on the floor. Same as ``#loot'' or meta-l. X .lp N X! name an object or type of object. Same as ``#name'' or meta-n. X .lp u X! untrap a trapped object or door. Same as ``#untrap'' or meta-u. X X .hn 1 X Rooms and corridors X*************** X*** 836,846 **** X .pg X You may encounter chests or boxes in your travels. These can be X opened with the ``#loot'' extended command when they are on the floor, X! or with the `a' (apply) command when you are carrying one. X! Chests are unwieldy objects, and must be set down to be unlocked X! (which can be accomplished by kicking them, X! using a key or lock picking tool with the `a' (apply) command, or X! by using a weapon to force the lock with the ``#force'' extended command). X .pg X Some chests are trapped, causing nasty things to happen when you X unlock or open them. You can check for and try to deactivate traps X--- 839,851 ---- X .pg X You may encounter chests or boxes in your travels. These can be X opened with the ``#loot'' extended command when they are on the floor, X! or with the `a' (apply) command when you are carrying one. However, X! chests are often locked, and require you to either use a key to unlock X! it, a tool to pick the lock, or to break it open with brute force. X! Chests are unwieldy objects, and must be set down to be unlocked (by X! kicking them, using a key or lock picking tool with the `a' (apply) X! command, or by using a weapon to force the lock with the ``#force'' X! extended command). X .pg X Some chests are trapped, causing nasty things to happen when you X unlock or open them. You can check for and try to deactivate traps X*************** X*** 969,975 **** X set. If it doesn't work, your terminal may not support alternate X character sets, or the termcap entry for your terminal doesn't have X the appropriate escape sequences. For the record, the sequences to X! add to the termcap entry are ``:as=^O:ae=^N:ti=\\E)0:''. X X The order of the symbols is: solid rock, vertical wall, horizontal X wall, upper left corner, upper right corner, lower left corner, lower X--- 974,980 ---- X set. If it doesn't work, your terminal may not support alternate X character sets, or the termcap entry for your terminal doesn't have X the appropriate escape sequences. For the record, the sequences to X! add to the termcap entry are ``:as=^N:ae=^O:ti=\\E)0:''. X X The order of the symbols is: solid rock, vertical wall, horizontal X wall, upper left corner, upper right corner, lower left corner, lower X*************** X*** 1119,1124 **** X--- 1124,1131 ---- X .pg X \fBEric R. Smith\fP ported NetHack 3.0 to the Atari. X .pg X+ \fBTimo Hakulinen\fP ported NetHack 3.0 to OS/2. X+ .pg X The following folks have made significant contributions to the playability X of the game: X X*************** X*** 1126,1138 **** X .TS S X center; X c c c. X! Tom Almy Eric Hendrickson Izchak Miller X! Ken Arromdee Bruce Holloway Gil Neiger X! Eric Backus Richard P. Hughey Eric S. Raymond X! John S. Bien Greg Laskin John Rupley X! Ralf Brown Steve Linhart Kevin Sweet X! Jean-Christophe Collet Roland McGrath Scott R. Turner X! Steve Creps Bruce Mewborne Janet Walz X .TE X .ed X X--- 1133,1146 ---- X .TS S X center; X c c c. X! Tom Almy Bruce Holloway Izchak Miller X! Ken Arromdee Richard P. Hughey Gil Neiger X! Eric Backus Del Lamb Eric S. Raymond X! John S. Bien Greg Laskin John Rupley X! Ralf Brown Steve Linhart Kevin Sweet X! Jean-Christophe Collet Benson I. Margulies Scott R. Turner X! Steve Creps Roland McGrath Janet Walz X! Eric Hendrickson Bruce Mewborne X .TE X .ed X X*** auxil/Old/Makefile.auxil Wed Aug 16 12:03:10 1989 X--- auxil/Makefile.auxil Wed Aug 16 11:39:13 1989 X*************** X*** 24,26 **** X--- 24,29 ---- X ../src/lev_comp castle.des X ../src/lev_comp endgame.des X ../src/lev_comp tower.des X+ X+ spotless: X+ -rm -f Guidebook data rumors castle endgame tower1 tower2 tower3 X*** auxil/Old/help Wed Aug 16 12:04:08 1989 X--- auxil/help Tue Aug 15 22:59:07 1989 X*************** X*** 139,145 **** X the commands you can use with "#" type "#?". The extended X commands you can use depends upon what options the game was X compiled with, along with your class and what type of monster X! you most closely resemble at a given moment. X X If the "number_pad" option is on, some additional letter commands X are available: X--- 139,149 ---- X the commands you can use with "#" type "#?". The extended X commands you can use depends upon what options the game was X compiled with, along with your class and what type of monster X! you most closely resemble at a given moment. If your keyboard X! has a meta key (that is, one which when pressed in combination X! with another key modified it by turning on the 'meta' or 0x80 X! bit) these extended commands can be invoked by meta-ing the X! first letter of the command. X X If the "number_pad" option is on, some additional letter commands X are available: X*** auxil/Old/hh Wed Aug 16 12:04:20 1989 X--- auxil/hh Tue Aug 15 22:59:11 1989 X*************** X*** 27,33 **** X X Game commands: X ^T 'port teleport (if you can) X! ^D kick kick a door X a apply apply or use a tool (pick-axe, key, camera, etc.) X A remove take off all armor X c close close a door X--- 27,33 ---- X X Game commands: X ^T 'port teleport (if you can) X! ^D kick kick (a door, or something else) X a apply apply or use a tool (pick-axe, key, camera, etc.) X A remove take off all armor X c close close a door X*************** X*** 73,75 **** X--- 73,78 ---- X l loot loot a box on the floor X N name name an object or type of object X u untrap untrap a trapped object X+ X+ If your keyboard has a meta key, 'jump' 'loot', 'name' and 'untrap' are X+ available as M-j, M-l, M-N or M-u respectively. X*** auxil/Old/history Wed Aug 16 12:04:32 1989 X--- auxil/history Wed Aug 16 10:15:34 1989 X*************** X*** 20,32 **** X coordinated a cast of thousands in enhancing and debugging NetHack 1.4 and X released NetHack versions 2.2 and 2.3. Later, he coordinated a major rewrite X of the game, heading a team which included Ken Arromdee, Jean-Christophe X! Collet, Steve Creps, Eric Hendrickson, Izchak Miller, John Rupley, Mike X! Threepoint, and Janet Walz, to produce NetHack 3.0. X X Olaf Seibert ported NetHack 2.3 and 3.0 to the Amiga. X X Eric R. Smith ported NetHack 3.0 to the Atari. X X X From time to time, some depraved individual out there in netland sends a X particularly intriguing modification to help out with the game. The Gods of X--- 20,34 ---- X coordinated a cast of thousands in enhancing and debugging NetHack 1.4 and X released NetHack versions 2.2 and 2.3. Later, he coordinated a major rewrite X of the game, heading a team which included Ken Arromdee, Jean-Christophe X! Collet, Steve Creps, Eric Hendrickson, Izchak Miller, Eric S. Raymond, John X! Rupley, Mike Threepoint, and Janet Walz, to produce NetHack 3.0. X X Olaf Seibert ported NetHack 2.3 and 3.0 to the Amiga. X X Eric R. Smith ported NetHack 3.0 to the Atari. X X+ Timo Hakulinen ported NetHack 3.0 to OS/2. X+ X X From time to time, some depraved individual out there in netland sends a X particularly intriguing modification to help out with the game. The Gods of X*************** X*** 33,44 **** X the Dungeon sometimes make note of the names of the worst of these miscreants X in this, the list of Dungeoneers: X X! Tom Almy Eric Hendrickson Izchak Miller X! Ken Arromdee Bruce Holloway Gil Neiger X! Eric Backus Richard P. Hughey Eric S. Raymond X John S. Bien Greg Laskin John Rupley X Ralf Brown Steve Linhart Kevin Sweet X! Jean-Christophe Collet Roland McGrath Scott R. Turner X! Steve Creps Bruce Mewborne Janet Walz X! and... The Unknown Hacker X! X--- 35,45 ---- X the Dungeon sometimes make note of the names of the worst of these miscreants X in this, the list of Dungeoneers: X X! Tom Almy Bruce Holloway Izchak Miller X! Ken Arromdee Richard P. Hughey Gil Neiger X! Eric Backus Del Lamb Eric S. Raymond X John S. Bien Greg Laskin John Rupley X Ralf Brown Steve Linhart Kevin Sweet X! Jean-Christophe Collet Benson I. Margulies Scott R. Turner X! Steve Creps Roland McGrath Janet Walz X! Eric Hendrickson Bruce Mewborne X*** auxil/Old/lev_comp.6 Wed Aug 16 12:04:49 1989 X--- auxil/lev_comp.6 Tue Aug 8 20:19:18 1989 X*************** X*** 1,4 **** X! .TH LEV_COMP 6 "5 JULY 1989" X .UC 4 X .SH NAME X lev_comp \- NetHack special levels compiler X--- 1,4 ---- X! .TH LEV_COMP 6 "5 July 1989" X .UC 4 X .SH NAME X lev_comp \- NetHack special levels compiler X*************** X*** 7,27 **** X [ X .I files X ] X .SH DESCRIPTION X .PP X .I Lev_comp X! is a special level compiler for NetHack version 3.0 and higher. X! It takes description files as arguments and produces level files that can be X! loaded by NetHack at runtime. X! If no arguments are given, it reads standard input. X .PP X! The purpose of this tool is to provide NetHack administrators and implementors X! with a convenient way for adding special levels to the game, X! or modifying existing ones, X! without having to recompile the entire world. X! At this time, the special levels code is not fully implemented, X! as the decision to load the special levels is hard-coded in the game. X! In a future release, it is expected to be a run-time decision. X .SH GRAMMAR X .PP X .LP X--- 7,28 ---- X [ X .I files X ] X+ .PP X+ If no arguments are given, it reads standard input. X .SH DESCRIPTION X .PP X .I Lev_comp X! is a special level compiler for NetHack version 3.0 and higher. It X! takes description files as arguments and produces level files that can X! be loaded by NetHack at runtime. X .PP X! The purpose of this tool is to provide NetHack administrators and X! implementors with a convenient way for adding special levels to the X! game, or modifying existing ones, without having to recompile the X! entire world. At this time, the special levels code is not fully X! implemented, as the decision to load the special levels is hard-coded X! in the game. In a future release, it is expected to be a run-time X! decision. X .SH GRAMMAR X .PP X .LP X*************** X*** 183,211 **** X MAZE : "fortress" X GEOMETRY : center , center X MAP X! }}}}}}}}}}}}} X! }}}|-----|}}} X! }}}|.....|}}} X! }|--.....--|} X! }|.........|} X! }|--.....--|} X! }}}|.....|}}} X! }}}|-----|}}} X! }}}}}}}}}}}}} X ENDMAP X! MONSTER: '@',"wizard of yendor", (6,4) X # a random dragon somewhere X MONSTER: 'D', random, random X! # a random trap in the EAST part X! TRAP: random, (10,4) X .fi X .PP X This example will produce a file named "fortress" that can be integrated into X! one of the numerous mazes of the game... X X .SH AUTHOR X .PP X! Jean-christophe Collet. X .SH BUGS X .PP X Probably infinite. X--- 184,222 ---- X MAZE : "fortress" X GEOMETRY : center , center X MAP X! }}}}}}}}} X! }}}|-|}}} X! }}|-.-|}} X! }|-...-|} X! }|.....|} X! }|-...-|} X! }}|-.-|}} X! }}}|-|}}} X! }}}}}}}}} X ENDMAP X! MONSTER: '@', "Wizard of Yendor", (4,4) X! OBJECT: '"', "Amulet of Yendor", (4,4) X! # a hell hound flanking the Wiz on a random side X! RANDOM_PLACES: (4,3), (4,5), (3,4), (5,4) X! MONSTER: 'd', "hell hound", place[0] X! # a chest on another random side X! OBJECT: '(', "chest", place[1] X # a random dragon somewhere X MONSTER: 'D', random, random X! # a random trap in the EAST end X! TRAP: random, (6,4) X! # an electric eel below the SOUTH end X! MONSTER: ';', "electric eel", (4,8) X! # make the walls non-diggable X! NON_DIGGABLE: (0,0,8,8) X .fi X .PP X This example will produce a file named "fortress" that can be integrated into X! one of the numerous mazes of the game. X X .SH AUTHOR X .PP X! Jean-Christophe Collet. X .SH BUGS X .PP X Probably infinite. X*** auxil/Old/nethack.sh Wed Aug 16 12:05:31 1989 X--- auxil/nethack.sh Fri Aug 11 14:43:01 1989 X*************** X*** 1,8 **** X #!/bin/sh X! # SCCS Id: @(#)nethack.sh 1.4 87/08/08 X HACKDIR=/usr/games/lib/nethackdir X HACK=$HACKDIR/nethack X MAXNROFPLAYERS=4 X X cd $HACKDIR X case $1 in X--- 1,35 ---- X #!/bin/sh X! # SCCS Id: @(#)nethack.sh 3.0 89/08/11 X! X HACKDIR=/usr/games/lib/nethackdir X HACK=$HACKDIR/nethack X MAXNROFPLAYERS=4 X+ X+ # see if we can find the full path name of PAGER, so help files work properly X+ # ideas from brian@radio.astro.utoronto.ca X+ if test $PAGER X+ then X+ if test ! -x $PAGER X+ then X+ IFS=: X+ for i in $PATH X+ do X+ if test -x $i/$PAGER X+ then X+ PAGER=$i/$PAGER X+ export PAGER X+ break X+ fi X+ done X+ IFS=' ' X+ fi X+ if test ! -x $PAGER X+ then X+ echo Cannot find $PAGER -- unsetting PAGER. X+ unset PAGER X+ fi X+ fi X+ X X cd $HACKDIR X case $1 in X*** auxil/Old/oracles Wed Aug 16 12:05:51 1989 X--- auxil/oracles Wed Aug 16 10:19:56 1989 X*************** X*** 1,10 **** X! If thy wand hath run out of charges, thou mayest zap it again and again; though X! nothing will happen at first, thy persistence shall surely be rewarded, as X! one last charge shall be wrested from it! X ----- X! To complete thy quest, thou needest enter the infernal regions. If thou hast X! not immunity to fire, such a trip will surely prove to be thy last; prepare X! thyself in advance. X ----- X Though the shopkeepers be wary, thieves have nevertheless stolen much by using X their digging wands to hasten exits through the pavement. X--- 1,10 ---- X! If thy wand hath run out of charges, thou mayst zap it again and again; though X! naught will happen at first, verily, thy persistence shall be rewarded, as X! one last charge may yet be wrested from it! X ----- X! To complete thy quest, thou needs must enter the infernal regions. If thou X! hast not immunity to fire, such a trip will surely prove to be thy last; X! prepare thyself in advance. X ----- X Though the shopkeepers be wary, thieves have nevertheless stolen much by using X their digging wands to hasten exits through the pavement. X*************** X*** 13,21 **** X that thou canst prevent this by, while in a confused state, reading the magical X parchments which normally are used to cause their enchantment. X ----- X! Behold the cockatrice, a mighty creature which can petrify anything normal it X! comes across--save the wise adventurer who eats a dead lizard or blob of acid X! when he feels himself slowly turning to stone. X ----- X While some armor protects against magical attacks, few types compare to the X items which come from the elven regions, though iron or crystalline plate X--- 13,22 ---- X that thou canst prevent this by, while in a confused state, reading the magical X parchments which normally are used to cause their enchantment. X ----- X! Behold the cockatrice, whose diminutive stature belies its hidden might. The X! cockatrice can petrify any ordinary being it contacts--save those wise X! adventurers who eat a dead lizard or blob of acid when they feel themselves X! slowly turning to stone. X ----- X While some armor protects against magical attacks, few types compare to the X items which come from the elven regions, though iron or crystalline plate X*************** X*** 33,43 **** X around on the level. Daring adventurers have also performed the same feat X sans need for scrolls or potions by stepping on the correct type of trap. X ----- X! Most all adventurers who come this way hope to pass the medusa. To do this, X! the best advice is to keep thine eyes blindfolded and to cause the creature X! to espy its own reflection in a mirror. X ----- X! And when it is written, "ad aerarium," diligent searching will often reveal X the way to a trap which sends one to the Magic Memory Vault, where the riches X of Croesus are stored; however, escaping from the vault with its gold is much X harder than getting in. X--- 34,44 ---- X around on the level. Daring adventurers have also performed the same feat X sans need for scrolls or potions by stepping on the correct type of trap. X ----- X! Almost all adventurers who come this way hope to pass the dread Medusa. To X! do this, the best advice is to keep thine eyes blindfolded and to cause the X! creature to espy its own reflection in a mirror. X ----- X! And where it is written "ad aerarium", diligent searching will often reveal X the way to a trap which sends one to the Magic Memory Vault, where the riches X of Croesus are stored; however, escaping from the vault with its gold is much X harder than getting in. X*************** X*** 44,61 **** X ----- X It is well known that wily shopkeepers doth raise their prices whene'er they X espy the garish apparel of the approaching tourist or the countenance of a X! disfavored patron. Prices favor the gentle of manner and the fair of face. X! The boor mayst expect unprofitable transactions. X ----- X The cliche of the kitchen sink swallowing any unfortunate rings that contact X! its pernicious surface doth reflect greater truth as many homilies, yet X even so, few hath developed the skill to identify enchanted rings by the X transfigurations effected upon the voracious device's frame. X ----- X The meat of enchanted creatures will ofttimes convey magical properties X unto the consumer. A fresh corpse of floating eye doth fetch a high X! price among wizards for its utility for to develop Telepathy, by which X! the sightless mayst locate surrounding minds. X ----- X The detection of blessings and curses is in the domain of the gods. They will X make this information available to mortals who request it at their places of X--- 45,62 ---- X ----- X It is well known that wily shopkeepers doth raise their prices whene'er they X espy the garish apparel of the approaching tourist or the countenance of a X! disfavored patron. They favor the gentle of manner and the fair of face. X! The boor may expect unprofitable transactions. X ----- X The cliche of the kitchen sink swallowing any unfortunate rings that contact X! its pernicious surface reflecteth greater truth than many homilies, yet X even so, few hath developed the skill to identify enchanted rings by the X transfigurations effected upon the voracious device's frame. X ----- X The meat of enchanted creatures will ofttimes convey magical properties X unto the consumer. A fresh corpse of floating eye doth fetch a high X! price among wizards for its utility in conferring Telepathy, by which X! the sightless may locate surrounding minds. X ----- X The detection of blessings and curses is in the domain of the gods. They will X make this information available to mortals who request it at their places of X*** auxil/Old/rumors.fal Wed Aug 16 12:06:04 1989 X--- auxil/rumors.fal Fri Aug 4 18:36:27 1989 X*************** X*** 54,60 **** X Engrave your wishes with a wand of wishing. X Eventually you will come to admire the swift elegance of a retreating nymph. X Ever heard hissing outside? I *knew* you hadn't! X! Ever lifted a dead dragon? X Ever seen your weapon glow plaid? X Ever seen a leocrotta dancing the tengu? X Ever tamed a shopkeeper? X--- 54,60 ---- X Engrave your wishes with a wand of wishing. X Eventually you will come to admire the swift elegance of a retreating nymph. X Ever heard hissing outside? I *knew* you hadn't! X! Ever lifted a dragon corpse? X Ever seen your weapon glow plaid? X Ever seen a leocrotta dancing the tengu? X Ever tamed a shopkeeper? X*************** X*** 108,113 **** X--- 108,114 ---- X Never play leapfrog with a unicorn. X Never step on a cursed engraving. X Never swim with a camera: there's nothing to take pictures of. X+ Never teach your pet rust monster to fetch. X Never trust a random generator in magic fields. X Never use a wand of death. X No level contains two shops. The maze is no level. So... X*** include/Old/amiconf.h Wed Aug 16 14:03:39 1989 X--- include/amiconf.h Fri Aug 11 17:13:35 1989 X*************** X*** 27,33 **** X * Configurable Amiga options: X */ X X! #define MSDOSCOLOR /* Use colored monsters and objects */ X #define HACKFONT /* Use special hack.font */ X #define SHELL /* Have a shell escape command (!) */ X #define MAIL /* Get mail at unexpected occasions */ X--- 27,33 ---- X * Configurable Amiga options: X */ X X! #define TEXTCOLOR /* Use colored monsters and objects */ X #define HACKFONT /* Use special hack.font */ X #define SHELL /* Have a shell escape command (!) */ X #define MAIL /* Get mail at unexpected occasions */ X*** include/Old/config.h Wed Aug 16 14:04:12 1989 X--- include/config.h Tue Aug 15 21:58:18 1989 X*************** X*** 14,24 **** X X #define UNIX /* delete if no fork(), exec() available */ X X! #ifdef __MSDOS__ /* Turbo C auto-defines __MSDOS__, others MSDOS */ X! #define MSDOS /* define for MS-DOS (actually defined by compiler) */ X #else X! /* # define MSDOS /* define for MS-DOS and most other micros */ X! /* # define AMIGA /* define for Commodore-Amiga */ X /* #define TOS /* for Atari 520/1040 */ X X /* #define STUPID /* avoid some complicated expressions if X--- 14,24 ---- X X #define UNIX /* delete if no fork(), exec() available */ X X! #ifdef __MSDOS__ /* Turbo C auto-defines __MSDOS__, MSC defines MSDOS */ X! #define MSDOS /* define for MS-DOS (in case compiler doesn't) */ X #else X! /* #define MSDOS /* define for MS-DOS and most other micros */ X! /* #define AMIGA /* define for Commodore-Amiga */ X /* #define TOS /* for Atari 520/1040 */ X X /* #define STUPID /* avoid some complicated expressions if X*** include/Old/decl.h Wed Aug 16 14:04:38 1989 X--- include/decl.h Tue Aug 15 21:58:26 1989 X*************** X*** 120,127 **** X E int in_doagain; X #endif X X! #ifdef MSDOSCOLOR X! E char *HI_RED, *HI_YELLOW, *HI_GREEN, *HI_BLUE, *HI_WHITE; /* termcap.c */ X #endif X X #ifndef OBJ_H X--- 120,134 ---- X E int in_doagain; X #endif X X! #ifdef TEXTCOLOR X! #define RED 1 X! #define GREEN 2 X! #define YELLOW 3 X! #define BLUE 4 X! #define MAGENTA 5 X! #define CYAN 6 X! #define WHITE 7 X! E char *HI_COLOR[8]; /* termcap.c */ X #endif X X #ifndef OBJ_H X*** include/Old/extern.h Wed Aug 16 14:05:24 1989 X--- include/extern.h Wed Aug 16 10:16:11 1989 X*************** X*** 76,81 **** X--- 76,82 ---- X X /* ### cmd.c ### */ X X+ E void reset_occupations (); X E void set_occupation P((int(*)(),char *,int)); X #ifdef REDO X E char pgetchar(); X*************** X*** 189,195 **** X--- 190,198 ---- X E void glibr(); X E struct obj *some_armor(); X E void corrode_armor(); X+ E void reset_remarm(); X E int doddoremarm(); X+ E int destroy_arm P((struct obj *)); X E void adj_abon P((struct obj *,schar)); X X /* ### dog.c ### */ X*************** X*** 240,246 **** X E int done2(); X E void done_in_by P((struct monst *)); X E void panic P((char *,...)); X! E void done P((char *)); X E void clearlocks(); X #ifdef NOSAVEONHANGUP X E void hangup(); X--- 243,249 ---- X E int done2(); X E void done_in_by P((struct monst *)); X E void panic P((char *,...)); X! E void done P((int)); X E void clearlocks(); X #ifdef NOSAVEONHANGUP X E void hangup(); X*************** X*** 322,329 **** X E int weight_cap(); X E int inv_weight(); X E int inv_cnt(); X! E int little_to_big P((int)); X! E int big_to_little P((int)); X #ifdef STUPID_CPP /* otherwise these functions are macros in hack.h */ X E char yn(); X E char ynq(); X--- 325,331 ---- X E int weight_cap(); X E int inv_weight(); X E int inv_cnt(); X! E int identify P((struct obj *)); X #ifdef STUPID_CPP /* otherwise these functions are macros in hack.h */ X E char yn(); X E char ynq(); X*************** X*** 380,385 **** X--- 382,388 ---- X X /* ### lock.c ### */ X X+ E void reset_pick(); X E int pick_lock P((struct obj *)); X E int doforce(); X E int boxlock P((struct obj *,struct obj *)); X*************** X*** 434,448 **** X /* ### mhitu.c ### */ X X #ifdef POLYSELF X- E boolean incompatible P((struct monst *)); X E struct monst *cloneu(); X #endif X- E boolean is_nymph P((struct monst *)); X- E boolean sp_melee P((struct monst *)); X E int mattacku P((struct monst *)); X E void mdamageu P((struct monst *,int)); X #ifdef SEDUCE X! E void doseduce P((struct monst *)); X #endif X X /* ### mklev.c ### */ X--- 437,449 ---- X /* ### mhitu.c ### */ X X #ifdef POLYSELF X E struct monst *cloneu(); X #endif X E int mattacku P((struct monst *)); X E void mdamageu P((struct monst *,int)); X+ E int could_seduce P((struct monst *,struct monst *,struct attack *)); X #ifdef SEDUCE X! E int doseduce P((struct monst *)); X #endif X X /* ### mklev.c ### */ X*************** X*** 564,572 **** X--- 565,576 ---- X E int gender P((struct monst *)); X E boolean levl_follower P((struct monst *)); X E struct permonst *player_mon(); X+ E int little_to_big P((int)); X+ E int big_to_little P((int)); X X /* ### monmove.c ### */ X X+ E boolean mb_trapped P((struct monst *)); X E int dochugw P((struct monst *)); X E boolean onscary P((int,int,struct monst *)); X E int dochug P((struct monst *)); X*************** X*** 582,587 **** X--- 586,592 ---- X E void flushout(); X E int tgetch(); X E int dosh(); X+ # ifdef DGK X E long freediskspace P((char *)); X E long filesize P((char *)); X E void eraseall P((char *,char *)); X*************** X*** 589,594 **** X--- 594,600 ---- X E void playwoRAMdisk(); X E int saveDiskPrompt P((int)); X E void gameDiskPrompt(); X+ # endif X E void read_config_file(); X E void set_lock_and_bones(); X E void append_slash P((char *)); X*************** X*** 595,605 **** X--- 601,622 ---- X E void getreturn P((char *)); X E void msmsg P((char *,...)); X E void chdrive P((char *)); X+ # ifndef TOS X E void disable_ctrlP(); X E void enable_ctrlP(); X+ # endif X+ # ifdef DGK X E FILE *fopenp P((char *,char *)); X+ # endif X E void msexit P((int)); X+ # ifdef DGK X+ E void get_scr_size(); X+ # endif X #endif /* MSDOS */ X+ #ifdef TOS X+ E int _copyfile P((int, int)); X+ E int kbhit(); X+ #endif /* TOS */ X X /* ### mthrowu.c ### */ X X*************** X*** 681,687 **** X E void askname(); X E void impossible P((char *,...)); X #ifdef CHDIR X! E void chdirx P((char *,char)); X #endif /* CHDIR */ X E void stop_occupation(); X #endif /* MSDOS */ X--- 698,704 ---- X E void askname(); X E void impossible P((char *,...)); X #ifdef CHDIR X! E void chdirx P((char *,boolean)); X #endif /* CHDIR */ X E void stop_occupation(); X #endif /* MSDOS */ X*************** X*** 845,856 **** X X E int doread(); X E int seffects P((struct obj *)); X- E int identify P((struct obj *)); X E void litroom P((boolean)); X E void do_genocide P((int)); X E void do_mapping(); X E void do_vicinity_map(); X- E int destroy_arm P((struct obj *)); X E int gold_detect P((struct obj *)); X E int food_detect P((struct obj *)); X E void punish P((struct obj *)); X--- 862,871 ---- X*************** X*** 1043,1048 **** X--- 1058,1064 ---- X E void cmore P((char *)); X E void clrlin(); X E void pline P((const char *,...)); X+ E void Norep P((const char *,...)); X E void You P((const char *,...)); X E void Your P((const char *,...)); X E void putsym P((char)); X*************** X*** 1099,1107 **** X X E struct monst *clone_mon P((struct monst *)); X E boolean special_case P((struct monst *)); X E boolean attack P((struct monst *)); X E boolean hmon P((struct monst *,struct obj *,int)); X! E int passive P((struct monst *,boolean,int)); X X /* ### unixmain.c ### */ X X--- 1115,1127 ---- X X E struct monst *clone_mon P((struct monst *)); X E boolean special_case P((struct monst *)); X+ E schar find_roll_to_hit P((struct monst *)); X E boolean attack P((struct monst *)); X E boolean hmon P((struct monst *,struct obj *,int)); X! E int damageum P((struct monst *, struct attack *)); X! E void missum P((struct monst *, struct attack *)); X! E int passive P((struct monst *,boolean,int,boolean)); X! E void stumble_onto_mimic P((struct monst *)); X X /* ### unixmain.c ### */ X X*** include/Old/global.h Wed Aug 16 14:06:34 1989 X--- include/global.h Tue Aug 15 21:58:18 1989 X*************** X*** 9,15 **** X X X /* #define BETA /* if a beta-test copy [MRS] */ X! #define VERSION "3.0e" /* version number. */ X X /* X * Files expected to exist in the playground directory. X--- 9,15 ---- X X X /* #define BETA /* if a beta-test copy [MRS] */ X! #define VERSION "3.0f" /* version number. */ X X /* X * Files expected to exist in the playground directory. X*** include/Old/hack.h Wed Aug 16 14:06:59 1989 X--- include/hack.h Tue Aug 15 21:58:27 1989 X*************** X*** 26,31 **** X--- 26,50 ---- X #define NULL ((genericptr_t)0) X #define DUMMY { 0 } X X+ /* this is the way the game ends */ X+ /* if these are rearranged, the arrays in end.c will need to be changed */ X+ #define DIED 0 X+ #define CHOKING 1 X+ #define POISONING 2 X+ #define STARVING 3 X+ #define DROWNING 4 X+ #define BURNING 5 X+ #define CRUSHING 6 X+ #define STONING 7 X+ #define GENOCIDED 8 X+ #define PANICKED 9 X+ #define TRICKED 10 X+ #define QUIT 11 X+ #define ESCAPED 12 X+ #ifdef ENDGAME X+ #define ASCENDED 13 X+ #endif X+ X #ifndef DECL_H X #include "decl.h" X #endif X*** include/Old/mondata.h Wed Aug 16 14:08:14 1989 X--- include/mondata.h Wed Aug 9 20:31:42 1989 X*************** X*** 77,84 **** X #define can_breathe(ptr) attacktype(ptr, AT_BREA) X #define cantwield(ptr) (nohands(ptr) || verysmall(ptr)) X #define cantweararm(ptr) (breakarm(ptr) || sliparm(ptr)) X- #define nolimbs(ptr) (((ptr)->mflags2 & M2_NOLIMBS) != 0L) X #endif /* POLYSELF */ X #define carnivorous(ptr) (((ptr)->mflags2 & M2_CARNIVORE) != 0L) X #define herbivorous(ptr) (((ptr)->mflags2 & M2_HERBIVORE) != 0L) X #define thick_skinned(ptr) (((ptr)->mflags2 & M2_THICK_HIDE) != 0L) X--- 77,84 ---- X #define can_breathe(ptr) attacktype(ptr, AT_BREA) X #define cantwield(ptr) (nohands(ptr) || verysmall(ptr)) X #define cantweararm(ptr) (breakarm(ptr) || sliparm(ptr)) X #endif /* POLYSELF */ X+ #define nolimbs(ptr) (((ptr)->mflags2 & M2_NOLIMBS) != 0L) X #define carnivorous(ptr) (((ptr)->mflags2 & M2_CARNIVORE) != 0L) X #define herbivorous(ptr) (((ptr)->mflags2 & M2_HERBIVORE) != 0L) X #define thick_skinned(ptr) (((ptr)->mflags2 & M2_THICK_HIDE) != 0L) X*** include/Old/pcconf.h Wed Aug 16 14:09:50 1989 X--- include/pcconf.h Tue Aug 15 21:57:19 1989 X*************** X*** 6,11 **** X--- 6,15 ---- X #ifndef PCCONF_H X #define PCCONF_H X X+ /* #define OS2 /* define for OS/2 (Timo Hakulinen) */ X+ /* #define OS2_CODEVIEW /* define for OS/2 CodeView debugger, X+ otherwise path searches may fail (TH) */ X+ X /* X * The following options are configurable: X */ X*************** X*** 86,97 **** X #endif X X #ifndef TOS X! # define MSDOSCOLOR /* */ X /* configurable colors */ X! # define HI_MON HI_RED /* red slaps! */ X! # define HI_OBJ HI_GREEN X! # define HI_GOLD HI_YELLOW X! # define HI_ZAP HI_BLUE /* blue zaps! */ X #endif X X #ifndef EXTERN_H X--- 90,106 ---- X #endif X X #ifndef TOS X! # define TEXTCOLOR /* */ X! #endif X! X! #ifdef TEXTCOLOR X /* configurable colors */ X! # define HI_MON RED /* red slaps! */ X! # define HI_OBJ MAGENTA X! # define HI_METAL CYAN X! # define HI_ORGANIC GREEN X! # define HI_GOLD YELLOW X! # define HI_ZAP BLUE /* blue zaps! */ X #endif X X #ifndef EXTERN_H X*** include/Old/rm.h Wed Aug 16 14:10:22 1989 X--- include/rm.h Tue Aug 15 20:32:25 1989 X*************** X*** 122,128 **** X X #define ERRCHAR ']' X X! #define MAXPCHARS 28 /* maximum number of mapped characters */ X X /* X * The 5 possible states of doors X--- 122,128 ---- X X #define ERRCHAR ']' X X! #define MAXPCHARS 32 /* maximum number of mapped characters */ X X /* X * The 5 possible states of doors X*************** X*** 185,194 **** X * at() display character types, in order of precedence. X */ X #define AT_APP (uchar)0 X! /* specific overrides */ X! #define AT_RED (uchar)1 /* flame */ X! #define AT_BLUE (uchar)4 /* water */ X! #define AT_WHITE (uchar)7 /* lightning */ X /* non-specific */ X #define AT_ZAP (uchar)8 X #define AT_MON (uchar)9 X--- 185,191 ---- X * at() display character types, in order of precedence. X */ X #define AT_APP (uchar)0 X! /* 1-7 are specific overrides, see decl.h */ X /* non-specific */ X #define AT_ZAP (uchar)8 X #define AT_MON (uchar)9 X*** include/Old/unixconf.h Wed Aug 16 14:12:01 1989 X--- include/unixconf.h Fri Aug 11 17:10:55 1989 X*************** X*** 42,48 **** X--- 42,50 ---- X run with Microport Sys V/AT version 2.4. X By Jay Maynard */ X X+ /* #define TEXTCOLOR /* Use System V r3.2 terminfo color support */ X X+ X /* X * The next two defines are intended mainly for the Andrew File System, X * which does not allow hard links. If NO_FILE_LINKS is defined, lock files X*************** X*** 70,79 **** X * variable MAILREADER; otherwise an internal pager will be used. X * A stat system call is done on the mailbox every MAILCKFREQ moves. X */ X X! #define MAIL X! #define DEF_MAILREADER "/usr/ucb/Mail" /* or e.g. /bin/mail */ X! #define MAILCKFREQ 50 X X #ifdef COMPRESS X /* Some implementations of compress need a 'quiet' option. X--- 72,89 ---- X * variable MAILREADER; otherwise an internal pager will be used. X * A stat system call is done on the mailbox every MAILCKFREQ moves. X */ X X! #define MAIL X! #if defined(BSD) || defined(ULTRIX) X! #define DEF_MAILREADER "/usr/ucb/Mail" X! #else X! # ifdef SYSV X! #define DEF_MAILREADER "/usr/bin/mailx" X! # else X! #define DEF_MAILREADER "/bin/mail" X! # endif X! #endif X! #define MAILCKFREQ 50 X X #ifdef COMPRESS X /* Some implementations of compress need a 'quiet' option. X*************** X*** 133,144 **** X #ifdef hc /* older versions of the MetaWare High-C compiler define this */ X # ifdef __HC__ X # undef __HC__ X! # endif __HC__ X # define __HC__ hc X # undef hc X! #endif hc X X #include "extern.h" X X #endif /* UNIXCONF_H /* */ X #endif /* UNIX /* */ X--- 141,164 ---- X #ifdef hc /* older versions of the MetaWare High-C compiler define this */ X # ifdef __HC__ X # undef __HC__ X! # endif X # define __HC__ hc X # undef hc X! #endif X! X! #ifdef TEXTCOLOR X! /* configurable colors */ X! # define HI_MON RED /* red slaps! */ X! # define HI_OBJ MAGENTA X! # define HI_METAL CYAN X! # define HI_ORGANIC GREEN X! # define HI_GOLD YELLOW X! # define HI_ZAP BLUE /* blue zaps! */ X! #endif X X+ #ifndef EXTERN_H X #include "extern.h" X+ #endif X X #endif /* UNIXCONF_H /* */ X #endif /* UNIX /* */ X*** /dev/null Tue Aug 15 10:53:49 1989 X--- include/def_os2.h Tue Aug 15 20:49:24 1989 X*************** X*** 0 **** X--- 1,108 ---- X+ /* SCCS Id: @(#)def_os2.h 3.0 89/08/13 X+ X+ /* OS/2 defines based on MSC 5.1 OS/2 include files. X+ Only a small portion of all OS/2 defines are needed, X+ so the actual include files are not used. X+ X+ Timo Hakulinen X+ */ X+ X+ #define APIENTRY pascal far X+ X+ #define CHAR char /* ch */ X+ #define SHORT int /* s */ X+ #define LONG long /* l */ X+ #define INT int /* i */ X+ X+ typedef unsigned char UCHAR; /* uch */ X+ typedef unsigned int USHORT; /* us */ X+ typedef unsigned long ULONG; /* ul */ X+ typedef unsigned int UINT; /* ui */ X+ X+ typedef unsigned char BYTE; /* b */ X+ typedef BYTE far *PBYTE; X+ X+ typedef unsigned short SHANDLE; X+ typedef SHANDLE HKBD; X+ typedef SHANDLE HVIO; X+ typedef SHANDLE HDIR; /* hdir */ X+ typedef HDIR far *PHDIR; X+ X+ typedef USHORT far *PUSHORT; X+ typedef char far *PSZ; X+ X+ typedef struct { X+ UCHAR chChar; X+ UCHAR chScan; X+ UCHAR fbStatus; X+ UCHAR bNlsShift; X+ USHORT fsState; X+ ULONG time; X+ } KBDKEYINFO; X+ typedef KBDKEYINFO far *PKBDKEYINFO; X+ X+ /* File time and date types */ X+ X+ typedef struct _FTIME { /* ftime */ X+ unsigned twosecs : 5; X+ unsigned minutes : 6; X+ unsigned hours : 5; X+ } FTIME; X+ typedef FTIME far *PFTIME; X+ X+ typedef struct _FDATE { /* fdate */ X+ unsigned day : 5; X+ unsigned month : 4; X+ unsigned year : 7; X+ } FDATE; X+ typedef FDATE far *PFDATE; X+ X+ typedef struct _FILEFINDBUF { /* findbuf */ X+ FDATE fdateCreation; X+ FTIME ftimeCreation; X+ FDATE fdateLastAccess; X+ FTIME ftimeLastAccess; X+ FDATE fdateLastWrite; X+ FTIME ftimeLastWrite; X+ ULONG cbFile; X+ ULONG cbFileAlloc; X+ USHORT attrFile; X+ UCHAR cchName; X+ CHAR achName[13]; X+ } FILEFINDBUF; X+ typedef FILEFINDBUF far *PFILEFINDBUF; X+ X+ /* KBDINFO structure, for KbdSet/GetStatus */ X+ typedef struct _KBDINFO { /* kbst */ X+ USHORT cb; X+ USHORT fsMask; X+ USHORT chTurnAround; X+ USHORT fsInterim; X+ USHORT fsState; X+ } KBDINFO; X+ typedef KBDINFO far *PKBDINFO; X+ X+ /* VIOMODEINFO structure, for VioGetMode */ X+ typedef struct _VIOMODEINFO { X+ USHORT cb; X+ UCHAR fbType; X+ UCHAR color; X+ USHORT col; X+ USHORT row; X+ USHORT hres; X+ USHORT vres; X+ UCHAR fmt_ID; X+ UCHAR attrib; X+ } VIOMODEINFO; X+ typedef VIOMODEINFO far *PVIOMODEINFO; X+ X+ /* OS2 API functions */ X+ X+ USHORT APIENTRY KbdGetStatus(PKBDINFO, HKBD); X+ USHORT APIENTRY KbdSetStatus(PKBDINFO, HKBD); X+ USHORT APIENTRY KbdCharIn(PKBDKEYINFO, USHORT, HKBD ); X+ USHORT APIENTRY DosQFSInfo(USHORT, USHORT, PBYTE, USHORT); X+ USHORT APIENTRY DosFindFirst(PSZ, PHDIR, USHORT, PFILEFINDBUF, USHORT, PUSHORT, ULONG); X+ USHORT APIENTRY DosFindNext(HDIR, PFILEFINDBUF, USHORT, PUSHORT); X+ USHORT APIENTRY DosSelectDisk(USHORT); X+ USHORT APIENTRY VioGetMode(PVIOMODEINFO, HVIO); END_OF_FILE if test 47487 -ne `wc -c <'patch02a'`; then echo shar: \"'patch02a'\" unpacked with wrong size! fi # end of 'patch02a' fi echo shar: End of archive 1 \(of 7\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 4 5 6 7 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 7 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0