Subject: v17i053: nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch1l/31 Newsgroups: comp.sources.games Approved: billr@saab.CNA.TEK.COM Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller) Posting-number: Volume 17, Issue 53 Archive-name: nethack31/Patch1l Patch-To: nethack31: Volume 16, Issue 1-116 Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11 #! /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 'patches01p' <<'END_OF_FILE' X*** /tmp/da08862 Thu Feb 25 10:26:41 1993 X--- sys/amiga/Install.ami Tue Feb 23 09:38:15 1993 X*************** X*** 2,10 **** X Using, Compiling, and Installing Amiga NetHack 3.1 X (or Everything You Never Wanted to Know Before NetHacking) X X! Last Revision: 12 January 1993 for NetHack 3.1 X X X I. Introduction X X I.A. Overview X--- 2,21 ---- X Using, Compiling, and Installing Amiga NetHack 3.1 X (or Everything You Never Wanted to Know Before NetHacking) X X! Last Revision: 22 February 1993 for NetHack 3.1.1 X X X+ 0. Pre-intro for NetHack 3.1.1. X+ New for 3.1.1: X+ Audio support. X+ Much faster loading, slightly smaller files. X+ HackWB allows NewGame to be copied for multiple sets of defaults. X+ HackCli allows options to be changed between games. X+ Many fewer bugs. X+ X+ We would also like to thank each and every one of the people who took X+ the time and effort to report bugs to us. THANK YOU! X+ X I. Introduction X X I.A. Overview X*************** X*** 53,58 **** X--- 64,71 ---- X X X II. Using Amiga NetHack 3.1 X+ The short version: from the WorkBench click on HackWB and from the X+ CLI invoke HackCli. X X II.A. Sources of Information X Where to go depends on what you want to find out. If you want to find X*************** X*** 59,70 **** X out about distributing NetHack, read the license (in NetHack:license or X type ?i during the game). For an introduction to NetHack, read the X GuideBook file. Finally, for information during the game on all kinds X! of things, type ? and select from the menu. X X II.B. The Amiga NetHack WorkBench Front End X! The Amiga NetHack Front End looks more or less like a WorkBench X! Drawer - and acts the same way. Games start with double clicks and X! menus provide more detailed control of games and defaults. On-line X help is available - just press the help key. X X Just as with WorkBench itself, options for games are set using the Info X--- 72,85 ---- X out about distributing NetHack, read the license (in NetHack:license or X type ?i during the game). For an introduction to NetHack, read the X GuideBook file. Finally, for information during the game on all kinds X! of things, type ? and select from the menu. Further information on X! HackWB is below and available from HackWB - press the Help key; more X! information on HackCli is in the NetHack ManPage. X X II.B. The Amiga NetHack WorkBench Front End X! The Amiga NetHack WorkBench Front End, HackWB, looks more or less like a X! WorkBench Drawer - and acts the same way. Games start with double clicks X! and menus provide more detailed control of games and defaults. On-line X help is available - just press the help key. X X Just as with WorkBench itself, options for games are set using the Info X*************** X*** 71,77 **** X menu item to modify Tooltypes. Most common options can be set more X easily using buttons available via Info also. X X! You can adjust the following using the ToolTypes from the Info command: X X * OPTIONS= - Options as available in the NetHack.cnf file. X X--- 86,93 ---- X menu item to modify Tooltypes. Most common options can be set more X easily using buttons available via Info also. X X! If necessary, you can adjust the following using the ToolTypes from the X! Info command: X X * OPTIONS= - Options as available in the NetHack.cnf file. X X*************** X*** 96,116 **** X values for OPTIONS, which will generally be overridden by ToolTypes X entries. X X! Also, there is one additional option that may be specified in the X! NetHack.cnf file or on an OPTIONS line: flush. When enabled, flush X! discards all characters in the queue except the first, which limits X! typeahead accidents. The default setting is noflush. X X Usually, most of the confusing options will be set in the NetHack.cnf X file once when the game is installed and can be ignored after that. X X II.C. The Amiga NetHack CLI Front End X! The CLI Front End provides the standard Unix-like command line interface X! to NetHack. Unlike the Unix front end however, the CLI front end will X! ask if you want to play again before exiting. See the ManPage file for X! the standard Unix flags for NetHack. In addition to those flags, Amiga X! NetHack accepts flags -l to force non-interlaced mode and -L to force X! interlaced mode. X X X III. Installing Amiga NetHack 3.1 X--- 112,133 ---- X values for OPTIONS, which will generally be overridden by ToolTypes X entries. X X! Also, there are two additional options that may be specified in the X! NetHack.cnf file or on an OPTIONS line: flush and silent. When enabled, X! flush discards all characters in the queue except the first, which limits X! typeahead accidents. The default setting is noflush. Silent turns off X! the (new for 3.1.1) audio output. X X Usually, most of the confusing options will be set in the NetHack.cnf X file once when the game is installed and can be ignored after that. X X II.C. The Amiga NetHack CLI Front End X! The CLI Front End, HackCli, provides the standard Unix-like command line X! interface to NetHack. Unlike the Unix front end however, the CLI front X! end will ask if you want to play again (and optionally change the X! arguments) before exiting. See the ManPage file for the standard Unix X! flags for NetHack. In addition to those flags, Amiga NetHack accepts X! flags -l to force non-interlaced mode and -L to force interlaced mode. X X X III. Installing Amiga NetHack 3.1 X*************** X*** 125,131 **** X work will be done by the time the build is finished. X X IF YOU ALREADY HAVE A PREVIOUS VERSION INSTALLED YOU MUST DELETE THE X! OLD SAVE AND BONES FILES - THEY WILL NOT WORK! X X Will NetHack fit on your machine? X NetHack 3.1 is large. NetHack 3.1 is very large. You will need: X--- 142,149 ---- X work will be done by the time the build is finished. X X IF YOU ALREADY HAVE A PREVIOUS VERSION INSTALLED YOU MUST DELETE THE X! OLD SAVE AND BONES FILES - THEY WILL NOT WORK! This includes save X! and bones files from NetHack 3.1.0. X X Will NetHack fit on your machine? X NetHack 3.1 is large. NetHack 3.1 is very large. You will need: X*************** X*** 148,170 **** X NHlevels X Hard Disk installation: X cd to wherever you want to install NetHack X! makedir NetHack X! makedir NetHack/save X! makedir NetHack/levels X In s:User-Sequence (under 2.0 or later) or s:Startup (under 1.3), X assign NetHack: to the NetHack directory you created above. X assign HackExe: to the same directory. X Install the files X Unpack the archives in the directories or onto the disks (you can X! tell what to unpack where by the file names). Use the table in the X! next section to see where things should end up. Be sure that the X! file 8 ends up in NetHack:hack/8. X X Configuration X Using your favorite text editor, edit NetHack:NetHack.cnf to match X your system. Check HackExe:NetHack.dir and be sure that the paths X! are correct. The HackWB program uses several standard Amiga programs X! that must be installed in their standard places: c:copy, c:rename. X X III.B. File Location Table X NetHack: X--- 166,194 ---- X NHlevels X Hard Disk installation: X cd to wherever you want to install NetHack X! make a new directory to be the main NetHack directory: X! makedir NetHack X! and the subdirectories: X! makedir NetHack/save X! makedir NetHack/levels X In s:User-Sequence (under 2.0 or later) or s:Startup (under 1.3), X assign NetHack: to the NetHack directory you created above. X assign HackExe: to the same directory. X Install the files X Unpack the archives in the directories or onto the disks (you can X! tell what to unpack where by the file names) by cd'ing to HackExe: X! and unpacking archive 1 and then to NetHack: and unpacking archive 2. X! Use the table in the next section to see where things should end up. X! Be sure that the file 8 ends up in NetHack:hack/8 and that the sounds X! files end up in the NetHack:sounds directory. X X Configuration X Using your favorite text editor, edit NetHack:NetHack.cnf to match X your system. Check HackExe:NetHack.dir and be sure that the paths X! are correct (note that the C or D beginning the line is required and X! is not part of the file path). The HackWB program uses two standard X! Amiga programs that must be installed in their standard places: c:copy, X! c:rename. X X III.B. File Location Table X NetHack: X*************** X*** 171,204 **** X A-filla.lev A-fillb.lev A-goal.lev A-locate.lev X A-start.lev air.lev asmodeus.lev astral.lev X B-filla.lev B-fillb.lev B-goal.lev B-locate.lev X! B-start.lev baalz.lev bigroom.lev C-filla.lev X! C-fillb.lev C-goal.lev C-locate.lev C-start.lev X! castle.lev cmdhelp data default.icon X dungeon E-filla.lev E-fillb.lev E-goal.lev X E-locate.lev E-start.lev earth.lev fakewiz1.lev X! fakewiz2.lev fire.lev Guidebook Guidebook.info X! H-filla.lev H-fillb.lev H-goal.lev H-locate.lev X! H-start.lev hack/8 hack.font HackWB X! HackWB.info HackCli help hh X! history juiblex.lev K-filla.lev K-fillb.lev X! K-goal.lev K-locate.lev K-start.lev knox.lev X! license logfile ManPage ManPage.info X! medusa-1.lev medusa-2.lev minefill.lev minetown.lev X! mine_end.lev NetHack.cnf NetHack.c01 NetHack.d00 X! news NewGame.info opthelp options X! oracle.lev oracles orcus.lev P-filla.lev X! P-fillb.lev P-goal.lev P-locate.lev P-start.lev X! perm quest.dat R-filla.lev R-fillb.lev X! R-goal.lev R-locate.lev R-start.lev ReadMe X! ReadMe.info record recover rumors X! S-filla.lev S-fillb.lev S-goal.lev S-locate.lev X! S-start.lev sanctum.lev T-filla.lev T-fillb.lev X! T-goal.lev T-locate.lev T-start.lev tower1.lev X! tower2.lev tower3.lev V-filla.lev V-fillb.lev X! V-goal.lev V-locate.lev V-start.lev valley.lev X! W-filla.lev W-fillb.lev W-goal.lev W-locate.lev X! W-start.lev water.lev wizard1.lev wizard2.lev X! wizard3.lev wizhelp X X HackExe: X NetHack.dir X--- 195,231 ---- X A-filla.lev A-fillb.lev A-goal.lev A-locate.lev X A-start.lev air.lev asmodeus.lev astral.lev X B-filla.lev B-fillb.lev B-goal.lev B-locate.lev X! B-start.lev baalz.lev Bell bigroom.lev X! Bugle C-filla.lev C-fillb.lev C-goal.lev X! C-locate.lev C-start.lev castle.lev cmdhelp X! data default.icon Drum_Of_Earthquake X dungeon E-filla.lev E-fillb.lev E-goal.lev X E-locate.lev E-start.lev earth.lev fakewiz1.lev X! fakewiz2.lev Fire_Horn fire.lev Frost_Horn X! Guidebook Guidebook.info H-filla.lev H-fillb.lev X! H-goal.lev H-locate.lev H-start.lev hack/8 X! hack.font HackWB HackWB.info HackCli X! help hh history juiblex.lev X! K-filla.lev K-fillb.lev K-goal.lev K-locate.lev X! K-start.lev knox.lev Leather_Drum license X! logfile Magic_Flute Magic_Harp ManPage X! ManPage.info medusa-1.lev medusa-2.lev minefill.lev X! minetown.lev mine_end.lev NetHack.cnf NetHack.c01 X! NetHack.d00 news NewGame.info opthelp X! options oracle.lev oracles orcus.lev X! P-filla.lev P-fillb.lev P-goal.lev P-locate.lev X! P-start.lev perm quest.dat R-filla.lev X! R-fillb.lev R-goal.lev R-locate.lev R-start.lev X! ReadMe ReadMe.info record recover X! rumors S-filla.lev S-fillb.lev S-goal.lev X! S-locate.lev S-start.lev sanctum.lev T-filla.lev X! T-fillb.lev T-goal.lev T-locate.lev T-start.lev X! Tooled_Horn tower1.lev tower2.lev tower3.lev X! V-filla.lev V-fillb.lev V-goal.lev V-locate.lev X! V-start.lev valley.lev W-filla.lev W-fillb.lev X! W-goal.lev W-locate.lev W-start.lev water.lev X! wizard1.lev wizard2.lev wizard3.lev wizhelp X! Wooden_Flute Wooden_Harp X X HackExe: X NetHack.dir X*************** X*** 215,226 **** X good bit of memory. X X IV.B. Basic Compilation X! NetHack can be built with SAS/C version 5.10b, Manx/Aztec version 5, X or the registered version of DICE. The "official" compiler for NetHack 3.1 X! patchlevel 0 is SAS/C 5.10b - we expect to be moving to SAS/C version 6.2 X! after it is released (6.0 was not available soon enough to gain our X! confidence for releasing binaries based on it). The game will compile X! under SAS/C 6.x with small changes. X X IV.B.1. Introduction to Compiling NetHack X Before doing any compilation, read the README files distributed X--- 242,250 ---- X good bit of memory. X X IV.B. Basic Compilation X! NetHack can be built with SAS/C version 6.2, Manx/Aztec version 5, X or the registered version of DICE. The "official" compiler for NetHack 3.1 X! patchlevel 1 is SAS/C 6.2 - we have dropped support for SAS/C 5.x. X X IV.B.1. Introduction to Compiling NetHack X Before doing any compilation, read the README files distributed X*************** X*** 236,249 **** X need to be checked: X X UNIX - undef X! MACROCPATH - undef X HACKDIR - define as "NetHack:" X X- For SAS/C 6.x, in config.h, make sure that '#define NEARDATA' is used X- and not '#define NEARDATA __near'. The v5 compiler recognizes a X- different syntax than the v6 compiler for this construct. You will X- need to build without __near for now to get around this problem. X- X At this point, you're almost ready to begin a compile. Read VERY X CAREFULLY through the Makefile to familiarize yourself with which X assignments are assumed. Otherwise, you're going to get something X--- 260,268 ---- X need to be checked: X X UNIX - undef X! MACRO_CPATH - undef X HACKDIR - define as "NetHack:" X X At this point, you're almost ready to begin a compile. Read VERY X CAREFULLY through the Makefile to familiarize yourself with which X assignments are assumed. Otherwise, you're going to get something X*************** X*** 264,272 **** X make install should be done in NetHack:; for both runs, the makefile X is Amiga:Makefile.ami. X X- For SAS/C 6.x: in Makefile.ami, comment out the SAS5 macros and X- uncomment the SAS6 macros. X- X Note that not all the source is simple C code. If you are modifying X lev_comp or dgn_comp you may need bison and/or flex (depending on what X modifications you are making). If you wish to modify the Intuition X--- 283,288 ---- X*************** X*** 282,297 **** X fails due to prototype errors for malloc and realloc, try deleting X the first line of lev_comp.c and dgn_comp.c. X X! IV.B.2. Compiling NetHack with SAS/C version 5 X X! NOTE WELL - Amiga NetHack will be dropping support for SAS/C version 5 X! and moving to SAS/C version 6 almost immediately. Upgrade now! You X! have been warned. X X- This version of NetHack was developed with SAS/C 5.10b and SAS/C 6.1. X- Earlier versions of the compiler are known to cause problems - don't X- use them. X- X A couple of notes and warnings from the SAS/C users on the team: X X * Included in the SAS/C port is code for generating a SnapShot.tb X--- 298,309 ---- X fails due to prototype errors for malloc and realloc, try deleting X the first line of lev_comp.c and dgn_comp.c. X X! IV.B.2. Compiling NetHack with SAS/C version 6.2 X X! NOTE WELL - Amiga NetHack has dropped support for SAS/C version 5. X! This version of NetHack was developed with SAS/C 6.2. Earlier versions X! of the compiler are known to cause problems - don't use them. X X A couple of notes and warnings from the SAS/C users on the team: X X * Included in the SAS/C port is code for generating a SnapShot.tb X*************** X*** 300,328 **** X image, but it does not increase the run time memory requirements. X (But note that this is not useful for split binaries - see below.) X X! * The 5.10b optimizer does not produce correct code for NetHack. X X * There are a large number of warnings under SAS/C, which are X harmless. X X! * Some versions of flex produce #line statements with the file name X! in quotes: version 5.10b doesn't like this. For some reason lc tries X! to access this file, which results in a bogus requestor for "Util: X! (yes, there is one quote mark in front of Util:) - select cancel X! and ignore the problem or add -L to the FLEX definition in X! Makefile.ami. SAS says that this will be fixed in 6.0. X! X! IV.B.3. Compiling NetHack with SAS/C version 6 X! Very simliar to compiling under version 5 except all the command lines X! are different - see the Makefile. Also, see the note above about X! NEARDATA. X! X! IV.B.4. Compiling NetHack with Manx/Aztec version 5 X The Manx port has not been tested recently and is probably broken. We X expect to have it back in shape soon but we welcome context diffs. As X of the last check, NetHack required version 5.0B of the compiler. X X! IV.B.5 Compiling NetHack with the registered version of DICE X The DICE port was complete at one point but has not been tested in X several months - it probably will not work as is. We welcome context X diffs (or volunteers) to fix it. X--- 312,329 ---- X image, but it does not increase the run time memory requirements. X (But note that this is not useful for split binaries - see below.) X X! * The 5.10b optimizer did not produce correct code for NetHack. The X! current optimizer has not been tested. X X * There are a large number of warnings under SAS/C, which are X harmless. X X! IV.B.3. Compiling NetHack with Manx/Aztec version 5 X The Manx port has not been tested recently and is probably broken. We X expect to have it back in shape soon but we welcome context diffs. As X of the last check, NetHack required version 5.0B of the compiler. X X! IV.B.4 Compiling NetHack with the registered version of DICE X The DICE port was complete at one point but has not been tested in X several months - it probably will not work as is. We welcome context X diffs (or volunteers) to fix it. X*************** X*** 347,350 **** X decision is based on the presence (or absence) of HackExe:NetHack.dir. X Note that the contents of NetHack.dir after a build will generally not X be the correct contents for a floppy based system. X- X--- 348,350 ---- X*** /tmp/da08870 Thu Feb 25 19:26:12 1993 X--- sys/amiga/Makefile.ami Thu Feb 25 19:26:52 1993 X*************** X*** 1,12 **** X # NetHack Makefile. X! # SCCS Id: @(#)Makefile.ami 3.3 93/01/08 X # Copyright (c) Kenneth Lorber, Bethesda, Maryland, 1991, 1992, 1993. X # NetHack may be freely redistributed. See license for details. X X! # This makefile is arranged for compiling for the Amiga with SAS/C 5.10b but X! # can be configured for compiling with Manx C 5, SAS/C 6.1, or registered DICE X # with simple changes. The appropriate changes are identified by #[compiler] X! # where compiler is one of: SAS5, SAS6, MANX, or DICE; the options in X # this makefile as should be set according to the compiler being used. X X # Note: When using the Manx compiler, an alternate make utility is X--- 1,12 ---- X # NetHack Makefile. X! # SCCS Id: @(#)Makefile.ami 3.3 93/02/02 X # Copyright (c) Kenneth Lorber, Bethesda, Maryland, 1991, 1992, 1993. X # NetHack may be freely redistributed. See license for details. X X! # This makefile is arranged for compiling for the Amiga with SAS/C 6.2 but X! # can be configured for compiling with Manx C 5, or registered DICE X # with simple changes. The appropriate changes are identified by #[compiler] X! # where compiler is one of: SAS6, MANX, or DICE; the options in X # this makefile as should be set according to the compiler being used. X X # Note: When using the Manx compiler, an alternate make utility is X*************** X*** 35,46 **** X # cd NetHack: X # smake -f Amiga:Makefile.ami install X # X- #[SAS5] X- # cd OBJ: X- # lmk -f Amiga:Makefile.ami X- # cd NetHack: X- # lmk -f Amiga:Makefile.ami install X- # X #[MANX] X # cd OBJ: X # make -f Amiga:Makefile.ami X--- 35,40 ---- X*************** X*** 82,93 **** X # setdate Ram:hack.sym {date & time of Incl:hack.h} X # smake -f Amiga:Makefile.ami X # X- #[SAS5] X- # cd NetHack: X- # lmk -f Amiga:Makefile.ami Ram:hack.sym X- # setdate Ram:hack.sym {date & time of Incl:hack.h} X- # lmk -f Amiga:Makefile.ami X- # X #[MANX] X # cd NetHack: X # make -f Amiga:Makefile.ami Ram:hack.sym X--- 76,81 ---- X*************** X*** 95,109 **** X # make -f Amiga:Makefile.ami X X #[SAS5] X- # If we were to use the precompiled header file feature, we would uncomment X- # these following two lines. However, there are still problems in the X- # behavior of this feature in version 5.04, so these lines are commented X- # out for now. X- X- #HDEP = Ram:hack.sym X- #CSYM = -HRam:hack.sym X- X- #[SAS5] X # If we were to use the precompiled header file feature in a newer version X # of SAS/C, we would comment out these following two lines. X # If we don't use precompiled header files, we uncomment it as well. X--- 83,88 ---- X*************** X*** 138,144 **** X # FBFIL and FBLIB may be used, if required by your version of flex or bison, X # to specify additional files or libraries to be linked with X FBFIL = X! FBLIB = lib:compat.lib X X # If you're compiling this on a 1.3 system, you'll have to uncomment the X # following (for use with the ifchange script below). Also useful instead of X--- 117,123 ---- X # FBFIL and FBLIB may be used, if required by your version of flex or bison, X # to specify additional files or libraries to be linked with X FBFIL = X! FBLIB = #lib lib:compat.lib X X # If you're compiling this on a 1.3 system, you'll have to uncomment the X # following (for use with the ifchange script below). Also useful instead of X*************** X*** 148,158 **** X # Pathname for the C compiler being used. X X #[SAS6] X! #CC = sc X X- #[SAS5] X- CC = lc X- X #[MANX] X #CC = cc X X--- 127,134 ---- X # Pathname for the C compiler being used. X X #[SAS6] X! CC = sc X X #[MANX] X #CC = cc X X*************** X*** 183,220 **** X # undefine this to not compile with GSTs X #GST=gst=$(GSTFILE) X # X! #DEBUG=l X! #CFLAGS = data=far nminc debug=$(DEBUG) idir=incl: cpu=any nostkchk ign=104 \ X! # ignore=85,62 strmerge optsize ppbuf=8000 afp $(ERRREXX) $(GST) X # for files that are too large for the standard flags: X! #CFLAGS2 = code=far nostrmerge X! #WBCFLAGS = ignore=217,62 data=far ansi nminc code=far debug=sf $(ERRREXX) $(GST) X! #WBC2FLAGS = define=CLI X! #WBLFLAGS = X! #CCFLAGS = define= X! #SPLFLAGS = ignore=77 define=SPLIT X X- #[SAS5] X- # Note: make sure your CLI stack size is large (at least 50K) or lev_comp X- # and makedefs may fail terribly - stack checking is disabled. X- CFLAGS = -b0 -cfi -d1 -iIncl: -ma -v -cs -ms -z8000 -r0 #-O X- # for files that are too large for the standard flags: X- CFLAGS2 = -r0 X- CCDEF = -d X- WBCFLAGS = -r0 -b0 -cafis -d1 #-O X- WBC2FLAGS = -dCLI X- WBLFLAGS = X- SPLFLAGS = -cd -dSPLIT X- X #[MANX] X #CFLAGS = -iincl: -mc -md -ms -pa -ps -bs -wo -qq X #WBCFLAGS = -mc -md -ms -pa -ps -bs -wo -qq -pp X- #WBLFLAGS = +cd X X #[DICE] X #CFLAGS = -c -Iincl: -mD -mC -ms X #WBCFLAGS = -c -ms X- #WBLFLAGS = X X # Components of varous link command lines: X # $(LINK) should be the pathname of the linker being used (with any options X--- 159,182 ---- X # undefine this to not compile with GSTs X #GST=gst=$(GSTFILE) X # X! DEBUG=l X! CFLAGS = data=far nminc debug=$(DEBUG) idir=incl: cpu=any nostkchk ign=104 \ X! codename=none ignore=85,62 strmerge optsize ppbuf=8000 \ X! afp $(ERRREXX) $(GST) X # for files that are too large for the standard flags: X! CFLAGS2 = code=far nostrmerge X! WBCFLAGS = ignore=217,62 data=far ansi nminc code=far \ X! debug=sf $(ERRREXX) $(GST) X! WBC2FLAGS = define=CLI X! SPLFLAGS = ignore=77 define=SPLIT dollarok X X #[MANX] X #CFLAGS = -iincl: -mc -md -ms -pa -ps -bs -wo -qq X #WBCFLAGS = -mc -md -ms -pa -ps -bs -wo -qq -pp X X #[DICE] X #CFLAGS = -c -Iincl: -mD -mC -ms X #WBCFLAGS = -c -ms X X # Components of varous link command lines: X # $(LINK) should be the pathname of the linker being used (with any options X*************** X*** 230,259 **** X X #[SAS6] X X! #LINK = sc link X! #LIN = startup=catch X! #LLINK = with Amiga:ami.lnk X! #LLIB = lib=Lib:sc.lib lib=lib:amiga.lib BATCH #scnb.lib or sc.lib X! #FLLIB = lib=$(FBLIB) Lib:sc.lib BATCH X! #OBJSPEC = objname= X! #PNSPEC = pname= X! #INCLSPEC = idir= X! #DEFSPEC = define= X! #IGNSPEC = ignore= X! #COMPACT_HEADERS=$(GSTFILE) $(COPYNGST) X! X! #[SAS5] X! X! LINK = Blink to X! LIN = from Lib:catch.o X LLINK = with Amiga:ami.lnk X! LLIB = lib Lib:lc.lib lib:amiga.lib BATCH #lcnb.lib or lc.lib X! FLLIB = lib $(FBLIB) Lib:lc.lib BATCH X! OBJSPEC = -o X PNSPEC = X! INCLSPEC = -i X! DEFSPEC = -d X! IGNSPEC = -j X X #[MANX] X X--- 192,208 ---- X X #[SAS6] X X! LINK = slink noicons maxhunk 10000 to X! LIN = from lib:catch.o X LLINK = with Amiga:ami.lnk X! LLIB = lib Lib:sc.lib lib lib:amiga.lib BATCH #scnb.lib or sc.lib X! FLLIB = $(FBLIB) lib Lib:sc.lib BATCH X! OBJSPEC = objname= X PNSPEC = X! INCLSPEC = idir= X! DEFSPEC = define= X! IGNSPEC = ignore= X! COMPACT_HEADERS=$(GSTFILE) $(COPYNGST) X X #[MANX] X X*************** X*** 348,354 **** X X AMIGAOBJ = \ X OBJ:amidos.o OBJ:amirip.o OBJ:amiwbench.o OBJ:amiwind.o \ X! OBJ:winami.o X X SHAREOBJ = \ X OBJ:pcmain.o $(RANDOBJ) X--- 297,303 ---- X X AMIGAOBJ = \ X OBJ:amidos.o OBJ:amirip.o OBJ:amiwbench.o OBJ:amiwind.o \ X! OBJ:winami.o OBJ:amisnd.o X X SHAREOBJ = \ X OBJ:pcmain.o $(RANDOBJ) X*************** X*** 363,369 **** X all: $(COMPACT_HEADERS) NetHack:lev_comp NetHack:dgn_comp $(GAME) \ X NetHack:HackWB NetHack:recover NetHack:HackCli NetHack:splitter X X! install: inst-data inst-dungeon inst-icons inst-fonts HackExe:NetHack.dir X X Amiga:compacted: X lmk -f compact.lmk DST=$(COMPACT_DEST) SRC=$(COMPACT_SRC) X--- 312,318 ---- X all: $(COMPACT_HEADERS) NetHack:lev_comp NetHack:dgn_comp $(GAME) \ X NetHack:HackWB NetHack:recover NetHack:HackCli NetHack:splitter X X! install: inst-data inst-dungeon inst-icons inst-fonts inst-sounds HackExe:NetHack.dir X X Amiga:compacted: X lmk -f compact.lmk DST=$(COMPACT_DEST) SRC=$(COMPACT_SRC) X*************** X*** 396,402 **** X # The default method for creating object files: X X #[SAS6] X- #[SAS5] X X .c.o: X $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)$@ $< X--- 345,350 ---- X*************** X*** 611,616 **** X--- 559,567 ---- X X OBJ:amiwind.o: Amiga:amiwind.c Amiga:amimenu.c $(HDEP) X X+ OBJ:amisnd.o: Amiga:amisnd.c $(HDEP) X+ $(CC) $(CFLAGS) debug=ff $(OBJSPEC)OBJ:amisnd.o Amiga:amisnd.c X+ X OBJ:winami.o: Amiga:winami.c $(HDEP) Amiga:char.c Amiga:colorwin.c Amiga:randwin.c X X OBJ:amiwbench.o: Amiga:amiwbench.c $(HDEP) X*************** X*** 674,679 **** X--- 625,704 ---- X $(KDFILES) $(PDFILES) $(RDFILES) $(SDFILES) $(TDFILES) \ X $(VDFILES) $(WDFILES) X X+ SOUNDFILES= \ X+ NetHack:cvtsnd \ X+ NetHack:sounds \ X+ NetHack:sounds/Bell NetHack:sounds/Bugle NetHack:sounds/Drum_Of_Earthquake \ X+ NetHack:sounds/Fire_Horn NetHack:sounds/Frost_Horn \ X+ NetHack:sounds/Leather_Drum NetHack:sounds/Magic_Flute \ X+ NetHack:sounds/Magic_Harp NetHack:sounds/Tooled_Horn \ X+ NetHack:sounds/Wooden_Flute NetHack:sounds/Wooden_Harp X+ X+ inst-sounds: ${SOUNDFILES} X+ X+ NetHack:sounds: X+ -makedir NetHack:sounds X+ X+ NetHack:cvtsnd: OBJO:cvtsnd.o X+ ${LINK} ${PNSPEC}$@ $(LIN) OBJO:cvtsnd.o $(FLLIB) X+ X+ OBJO:cvtsnd.o: Amiga:cvtsnd.c X+ X+ NetHack:sounds/Bell: share:sounds/bell.uu X+ uudecode share:sounds/bell.uu X+ NetHack:cvtsnd Bell NetHack:sounds/Bell X+ -delete Bell X+ X+ NetHack:sounds/Bugle: share:sounds/bugle.uu X+ uudecode share:sounds/Bugle.uu X+ NetHack:cvtsnd Bugle NetHack:sounds/Bugle X+ -delete Bugle X+ X+ NetHack:sounds/Drum_Of_Earthquake: share:sounds/erthdrum.uu X+ uudecode share:sounds/erthdrum.uu X+ NetHack:cvtsnd Drum_Of_Earthquake NetHack:sounds/Drum_Of_Earthquake X+ -delete Drum_Of_Earthquake X+ X+ NetHack:sounds/Fire_Horn: share:sounds/firehorn.uu X+ uudecode share:sounds/firehorn.uu X+ NetHack:cvtsnd Fire_Horn NetHack:sounds/Fire_Horn X+ -delete Fire_Horn X+ X+ NetHack:sounds/Frost_Horn: share:sounds/frsthorn.uu X+ uudecode share:sounds/frsthorn.uu X+ NetHack:cvtsnd Frost_Horn NetHack:sounds/Frost_Horn X+ -delete Frost_Horn X+ X+ NetHack:sounds/Leather_Drum: share:sounds/lethdrum.uu X+ uudecode share:sounds/lethdrum.uu X+ NetHack:cvtsnd Leather_Drum NetHack:sounds/Leather_Drum X+ -delete Leather_Drum X+ X+ NetHack:sounds/Magic_Flute: share:sounds/mgcflute.uu X+ uudecode share:sounds/mgcflute.uu X+ NetHack:cvtsnd Magic_Flute NetHack:sounds/Magic_Flute X+ -delete Magic_Flute X+ X+ NetHack:sounds/Magic_Harp: share:sounds/mgcharp.uu X+ uudecode share:sounds/mgcharp.uu X+ NetHack:cvtsnd Magic_Harp NetHack:sounds/Magic_Harp X+ -delete Magic_Harp X+ X+ NetHack:sounds/Tooled_Horn: share:sounds/toolhorn.uu X+ uudecode share:sounds/toolhorn.uu X+ NetHack:cvtsnd Tooled_Horn NetHack:sounds/Tooled_Horn X+ -delete Tooled_Horn X+ X+ NetHack:sounds/Wooden_Flute: share:sounds/wdnflute.uu X+ uudecode share:sounds/wdnflute.uu X+ NetHack:cvtsnd Wooden_Flute NetHack:sounds/Wooden_Flute X+ -delete Wooden_Flute X+ X+ NetHack:sounds/Wooden_Harp: share:sounds/wdnharp.uu X+ uudecode share:sounds/wdnharp.uu X+ NetHack:cvtsnd Wooden_Harp NetHack:sounds/Wooden_Harp X+ -delete Wooden_Harp X+ X INSTDUNGEONFILES= \ X NetHack:NetHack.cnf NetHack:air.lev NetHack:asmodeus.lev \ X NetHack:astral.lev NetHack:baalz.lev NetHack:bigroom.lev \ X*************** X*** 702,767 **** X NetHack:castle.lev: Dat:castle.des NetHack:lev_comp X NetHack:lev_comp Dat:castle.des X X! NetHack:air.lev NetHack:earth.lev NetHack:fire.lev NetHack:water.lev NetHack:astral.lev: Dat:endgame.des NetHack:lev_comp X NetHack:lev_comp Dat:endgame.des X X! NetHack:asmodeus.lev NetHack:baalz.lev NetHack:juiblex.lev NetHack:orcus.lev NetHack:sanctum.lev NetHack:valley.lev: Dat:gehennom.des NetHack:lev_comp X NetHack:lev_comp Dat:gehennom.des X X NetHack:knox.lev: Dat:knox.des NetHack:lev_comp X NetHack:lev_comp Dat:knox.des X X! NetHack:mine_end.lev NetHack:minetown.lev NetHack:minefill.lev: Dat:mines.des NetHack:lev_comp X NetHack:lev_comp Dat:mines.des X X NetHack:oracle.lev: Dat:oracle.des NetHack:lev_comp X NetHack:lev_comp Dat:oracle.des X X! NetHack:tower1.lev NetHack:tower2.lev NetHack:tower3.lev: Dat:tower.des NetHack:lev_comp X NetHack:lev_comp Dat:tower.des X X! NetHack:wizard1.lev NetHack:wizard2.lev NetHack:wizard3.lev NetHack:fakewiz1.lev NetHack:fakewiz2.lev: Dat:yendor.des NetHack:lev_comp X NetHack:lev_comp Dat:yendor.des X X! NetHack:medusa-1.lev NetHack:medusa-2.lev: Dat:medusa.des NetHack:lev_comp X NetHack:lev_comp Dat:medusa.des X X! $(ADFILES): Dat:Arch.des NetHack:lev_comp X NetHack:lev_comp Dat:Arch.des X X! $(BDFILES): Dat:Barb.des NetHack:lev_comp X NetHack:lev_comp Dat:Barb.des X X! $(CDFILES): Dat:Caveman.des NetHack:lev_comp X NetHack:lev_comp Dat:Caveman.des X X! $(EDFILES): Dat:Elf.des NetHack:lev_comp X NetHack:lev_comp Dat:Elf.des X X! $(HDFILES): Dat:Healer.des NetHack:lev_comp X NetHack:lev_comp Dat:Healer.des X X! $(KDFILES): Dat:Knight.des NetHack:lev_comp X NetHack:lev_comp Dat:Knight.des X X! $(PDFILES): Dat:Priest.des NetHack:lev_comp X NetHack:lev_comp Dat:Priest.des X X! $(RDFILES): Dat:Rogue.des NetHack:lev_comp X NetHack:lev_comp Dat:Rogue.des X X! $(SDFILES): Dat:Samurai.des NetHack:lev_comp X NetHack:lev_comp Dat:Samurai.des X X! $(TDFILES): Dat:Tourist.des NetHack:lev_comp X NetHack:lev_comp Dat:Tourist.des X X! $(VDFILES): Dat:Valkyrie.des NetHack:lev_comp X NetHack:lev_comp Dat:Valkyrie.des X X! $(WDFILES): Dat:Wizard.des NetHack:lev_comp X NetHack:lev_comp Dat:Wizard.des X- X X NetHack:dungeon: Dat:dungeon.def NetHack:makedefs NetHack:dgn_comp X NetHack:makedefs -e X--- 727,809 ---- X NetHack:castle.lev: Dat:castle.des NetHack:lev_comp X NetHack:lev_comp Dat:castle.des X X! NetHack:air.lev NetHack:earth.lev NetHack:fire.lev NetHack:water.lev NetHack:astral.lev: do_endgame X! do_endgame: Dat:endgame.des NetHack:lev_comp X NetHack:lev_comp Dat:endgame.des X X! NetHack:asmodeus.lev NetHack:baalz.lev NetHack:juiblex.lev NetHack:orcus.lev NetHack:sanctum.lev NetHack:valley.lev: do_gehennom X! do_gehennom: Dat:gehennom.des NetHack:lev_comp X NetHack:lev_comp Dat:gehennom.des X X NetHack:knox.lev: Dat:knox.des NetHack:lev_comp X NetHack:lev_comp Dat:knox.des X X! NetHack:mine_end.lev NetHack:minetown.lev NetHack:minefill.lev: do_mines X! do_mines: Dat:mines.des NetHack:lev_comp X NetHack:lev_comp Dat:mines.des X X NetHack:oracle.lev: Dat:oracle.des NetHack:lev_comp X NetHack:lev_comp Dat:oracle.des X X! NetHack:tower1.lev NetHack:tower2.lev NetHack:tower3.lev: do_tower X! do_tower: Dat:tower.des NetHack:lev_comp X NetHack:lev_comp Dat:tower.des X X! NetHack:wizard1.lev NetHack:wizard2.lev NetHack:wizard3.lev NetHack:fakewiz1.lev NetHack:fakewiz2.lev: do_yendor X! do_yendor: Dat:yendor.des NetHack:lev_comp X NetHack:lev_comp Dat:yendor.des X X! NetHack:medusa-1.lev NetHack:medusa-2.lev: do_medusa X! do_medusa: Dat:medusa.des NetHack:lev_comp X NetHack:lev_comp Dat:medusa.des X X! $(ADFILES): do_adfiles X! do_adfiles: Dat:Arch.des NetHack:lev_comp X NetHack:lev_comp Dat:Arch.des X X! $(BDFILES): do_bdfiles X! do_bdfiles: Dat:Barb.des NetHack:lev_comp X NetHack:lev_comp Dat:Barb.des X X! $(CDFILES): do_cdfiles X! do_cdfiles: Dat:Caveman.des NetHack:lev_comp X NetHack:lev_comp Dat:Caveman.des X X! $(EDFILES): do_edfiles X! do_edfiles: Dat:Elf.des NetHack:lev_comp X NetHack:lev_comp Dat:Elf.des X X! $(HDFILES): do_hdfiles X! do_hdfiles: Dat:Healer.des NetHack:lev_comp X NetHack:lev_comp Dat:Healer.des X X! $(KDFILES): do_kdfiles X! do_kdfiles: Dat:Knight.des NetHack:lev_comp X NetHack:lev_comp Dat:Knight.des X X! $(PDFILES): do_pdfiles X! do_pdfiles: Dat:Priest.des NetHack:lev_comp X NetHack:lev_comp Dat:Priest.des X X! $(RDFILES): do_rdfiles X! do_rdfiles: Dat:Rogue.des NetHack:lev_comp X NetHack:lev_comp Dat:Rogue.des X X! $(SDFILES): do_sdfiles X! do_sdfiles: Dat:Samurai.des NetHack:lev_comp X NetHack:lev_comp Dat:Samurai.des X X! $(TDFILES): do_tdfiles X! do_tdfiles: Dat:Tourist.des NetHack:lev_comp X NetHack:lev_comp Dat:Tourist.des X X! $(VDFILES): do_vdfiles X! do_vdfiles: Dat:Valkyrie.des NetHack:lev_comp X NetHack:lev_comp Dat:Valkyrie.des X X! $(WDFILES): do_wdfiles X! do_wdfiles: Dat:Wizard.des NetHack:lev_comp X NetHack:lev_comp Dat:Wizard.des X X NetHack:dungeon: Dat:dungeon.def NetHack:makedefs NetHack:dgn_comp X NetHack:makedefs -e X*** /tmp/da08902 Thu Feb 25 10:26:51 1993 X--- sys/amiga/amidos.c Mon Feb 22 11:49:51 1993 X*************** X*** 18,24 **** X #include X X #undef COUNT X! #ifdef LATTICE X # include X # include X #endif X--- 18,24 ---- X #include X X #undef COUNT X! #ifdef __SASC_60 X # include X # include X #endif X*************** X*** 35,41 **** X X extern char Initialized; X X! #ifndef __SASC X int Enable_Abort = 0; /* for stdio package */ X #endif X X--- 35,41 ---- X X extern char Initialized; X X! #ifndef __SASC_60 X int Enable_Abort = 0; /* for stdio package */ X #endif X X*** /tmp/da08942 Thu Feb 25 10:26:59 1993 X--- sys/amiga/amii.hlp Wed Feb 24 18:01:06 1993 X*************** X*** 1,4 **** X! Amiga specific help file for NetHack 3.1 X X The Amiga port of NetHack supports a number of additional commands X and facilities specific to the Amiga. Listed below are the things X--- 1,4 ---- X! Amiga specific help file for NetHack 3.1.1 X X The Amiga port of NetHack supports a number of additional commands X and facilities specific to the Amiga. Listed below are the things X*** /tmp/da08958 Thu Feb 25 10:27:03 1993 X--- sys/amiga/amirip.c Tue Feb 23 09:37:53 1993 X*************** X*** 42,48 **** X static void grass ( int x , int y ); X static void strand ( int x , int y , int dir ); X static void tomb_text ( char *p ); X- static void getret( void ); X void draw_moon(int phase); X X extern char *killed_by_prefix[]; X--- 42,47 ---- X*************** X*** 159,165 **** X X extern struct DisplayDesc *amiIDisplay; X extern struct Screen *HackScreen; X- extern unsigned short amii_curmap[]; X extern int havelace; X X #undef BLACK X--- 158,163 ---- X*************** X*** 181,187 **** X 0x0000, 0x0EEF, 0x0730, 0x0778, 0x0082, 0x0573, 0x0000, 0x0000, X }; X X! #define AREA_SIZE 500 X static WORD areabuffer[ AREA_SIZE ]; X X static struct NewWindow newwin = X--- 179,185 ---- X 0x0000, 0x0EEF, 0x0730, 0x0778, 0x0082, 0x0573, 0x0000, 0x0000, X }; X X! #define AREA_SIZE 200 X static WORD areabuffer[ AREA_SIZE ]; X X static struct NewWindow newwin = X*************** X*** 194,200 **** X X int wh; /* was local in outrip, but needed for SCALE macro */ X X! #define DEPTH ripwin->RPort->BitMap->Depth X /*TODO: should use real algorithm to get circles */ X #define SCALE(x) ((wh<300)?(x):((x)*2)) X #define MOONSX MOONSIZE X--- 192,198 ---- X X int wh; /* was local in outrip, but needed for SCALE macro */ X X! #define WIN_DEPTH ripwin->RPort->BitMap->Depth X /*TODO: should use real algorithm to get circles */ X #define SCALE(x) ((wh<300)?(x):((x)*2)) X #define MOONSX MOONSIZE X*************** X*** 215,233 **** X struct BitMap sbm; X struct RastPort srp; X struct AreaInfo ainfo; X! short abuf[5]; X struct TmpRas atr; X! PLANEPTR ap; X X /*TODO: sizes here are bigger than needed */ X! InitBitMap(&sbm,DEPTH,MOONSIZE*4,MOONSIZE*2); X! for(x=0;xWidth),rn2(horizon)); X X /* moon (NB destroys area fill pattern) */ X phase = phase_of_the_moon() % 8; X--- 393,399 ---- X /* stars */ X SetAPen(rp,WHITE); X for(c=d(30,40);c;c--) X! WritePixel(rp,rn2(ripwin->Width-1),rn2(horizon)); X X /* moon (NB destroys area fill pattern) */ X phase = phase_of_the_moon() % 8; X*************** X*** 396,405 **** X draw_moon(phase); X X /* grass */ X- offset=(phase<4)?-1:1; X SetAPen(rp,GREEN); X! for( x = 0; x < ripwin->Width; x+=10+rn2(10)) X grass(x, horizon+5 ); X X /* fence - horizontal, then vertical, each with a moonlit side */ X SetAPen(rp,GREY); X--- 400,414 ---- X draw_moon(phase); X X /* grass */ X SetAPen(rp,GREEN); X! for( x = 5; x < ripwin->Width-5; x+=5+rn2(8)) X grass(x, horizon+5 ); X+ for( x = 5; x < ripwin->Width-5; x+=5+rn2(10)) X+ grass(x, horizon+10 ); X+ for( x = 5; x < ripwin->Width-5; x+=5+rn2(15)) X+ grass(x, horizon+10 ); X+ for( x = 5; x < ripwin->Width-5; x+=5+rn2(20)) X+ grass(x, horizon+10 ); X X /* fence - horizontal, then vertical, each with a moonlit side */ X SetAPen(rp,GREY); X*************** X*** 408,413 **** X--- 417,423 ---- X Move(rp,0,horizon+30); X Draw(rp,ripwin->Width,horizon+30); X X+ offset=(phase<4)?-1:1; X for(x=30;xWidth;x+=50) X { X Move(rp,x,horizon-SCALE(25)); X*************** X*** 459,468 **** X X { X char *p=buf; X! int x; X for(x=STONE_LINE_LEN;x;x--)*p++='W'; X *p='\0'; X! tw = max( tw, TextLength(rp,buf,STONE_LINE_LEN) + 40 ); X } X X SetAPen( rp, phase ? BLACK : GREY ); X--- 469,479 ---- X X { X char *p=buf; X! int x, tmp; X for(x=STONE_LINE_LEN;x;x--)*p++='W'; X *p='\0'; X! tmp = TextLength(rp,buf,STONE_LINE_LEN) + 40; X! tw = max( tw, tmp); X } X X SetAPen( rp, phase ? BLACK : GREY ); X*************** X*** 631,637 **** X CloseWindow( ripwin ); X ripwin = NULL; X Permit(); X! LoadRGB4( &HackScreen->ViewPort, amii_curmap, 8L ); X } X X static void grass(x,y) X--- 642,648 ---- X CloseWindow( ripwin ); X ripwin = NULL; X Permit(); X! LoadRGB4( &HackScreen->ViewPort, flags.amii_curmap, 8L ); X } X X static void grass(x,y) X*** /tmp/da08974 Thu Feb 25 10:27:08 1993 X--- sys/amiga/amiwbench.c Sun Feb 21 16:41:28 1993 X*************** X*** 344,349 **** X--- 344,350 ---- X } X KillIcon=FALSE; X X+ #if 0 X dobj=GetDiskObject(base); X X /* Save the current pointer */ X*************** X*** 376,384 **** X /* Put in the pen colors... */ X for( j = 0; j < (1L << DEPTH); ++j ) X { X- extern unsigned short amii_curmap[]; X sprintf( types[ PENS ] + strlen( types[ PENS ] ), X! "%03x,", amii_curmap[ j ] ); X } X X /* Remove trailing comma */ X--- 377,384 ---- X /* Put in the pen colors... */ X for( j = 0; j < (1L << DEPTH); ++j ) X { X sprintf( types[ PENS ] + strlen( types[ PENS ] ), X! "%03x,", flags.amii_curmap[ j ] ); X } X X /* Remove trailing comma */ X*************** X*** 395,400 **** X--- 395,401 ---- X X dobj->do_ToolTypes = (void *)savtp; X FreeDiskObject(dobj); X+ #endif X } X X /* How much disk space will we need for the icon? */ X*** /tmp/da08982 Thu Feb 25 10:27:10 1993 X--- sys/amiga/amiwind.c Mon Feb 22 12:09:55 1993 X*************** X*** 322,328 **** X * It would certainly look nicer if this could be done using a X * PA_SOFTINT message port, but we cannot call RawKeyConvert() X * during a software interrupt. X! * Anyway, kbhit() is called often enough, and usually gets X * ahead of input demands, when the user types ahead. X */ X X--- 322,328 ---- X * It would certainly look nicer if this could be done using a X * PA_SOFTINT message port, but we cannot call RawKeyConvert() X * during a software interrupt. X! * Anyway, amikbhit()/kbhit() is called often enough, and usually gets X * ahead of input demands, when the user types ahead. X */ X X*************** X*** 388,395 **** X * between characters and incoming messages. X */ X X! int kbhit() X { X register struct IntuiMessage *message; X while( KbdBuffered < KBDBUFFER / 2 ) X { X--- 388,406 ---- X * between characters and incoming messages. X */ X X! int X! kbhit() X { X+ int c; X+ c = amikbhit(); X+ if( c <= 0 ) X+ return( 0 ); X+ return( c ); X+ } X+ X+ int X+ amikbhit() X+ { X register struct IntuiMessage *message; X while( KbdBuffered < KBDBUFFER / 2 ) X { X*************** X*** 417,423 **** X X int WindowGetchar( ) X { X! while ((lastevent.type = WEUNK), kbhit() <= 0) { X WaitPort(HackPort); X } X return BufferGetchar(); X--- 428,434 ---- X X int WindowGetchar( ) X { X! while ((lastevent.type = WEUNK), amikbhit() <= 0) { X WaitPort(HackPort); X } X return BufferGetchar(); X*************** X*** 426,432 **** X WETYPE WindowGetevent() X { X lastevent.type = WEUNK; X! while (kbhit() == 0) X { X WaitPort(HackPort); X } X--- 437,443 ---- X WETYPE WindowGetevent() X { X lastevent.type = WEUNK; X! while (amikbhit() == 0) X { X WaitPort(HackPort); X } X*************** X*** 456,462 **** X--- 467,478 ---- X ((struct Process *) FindTask(NULL))->pr_WindowPtr = (APTR) pr_WindowPtr; X if (ConsoleIO.io_Device) X CloseDevice( (struct IORequest *)&ConsoleIO ); X+ ConsoleIO.io_Device = 0; X X+ if( ConsoleIO.io_Message.mn_ReplyPort ) X+ DeletePort( ConsoleIO.io_Message.mn_ReplyPort ); X+ ConsoleIO.io_Message.mn_ReplyPort = 0; X+ X if (HackPort) { X Forbid(); X while (msg = (struct IntuiMessage *) GetMsg(HackPort)) X*************** X*** 478,484 **** X sizeof( struct EasyStruct ), X 0, X "Nethack Problem", X! "Can't Close Screen, Close Remaining Windows", X "Okay", X }; X EasyRequest( NULL, &easy, NULL, NULL ); X--- 494,500 ---- X sizeof( struct EasyStruct ), X 0, X "Nethack Problem", X! "Can't Close Screen, Close Visiting Windows", X "Okay", X }; X EasyRequest( NULL, &easy, NULL, NULL ); X*** /tmp/da08990 Thu Feb 25 10:27:12 1993 X--- sys/amiga/amiwind.p Mon Feb 22 12:09:59 1993 X*************** X*** 1,35 **** X /* SCCS Id: @(#)amiwind.p 3.1 93/01/08 */ X /* Copyright (c) Gregg Wonderly, Naperville, IL, 1992, 1993 */ X /* NetHack may be freely redistributed. See license for details. */ X /* amiwind.c */ X #ifdef INTUI_NEW_LOOK X! struct Window *FDECL(OpenShWindow, (struct ExtNewWindow *)); X #else X! struct Window *FDECL(OpenShWindow, (struct NewWindow *)); X #endif X! void FDECL(CloseShWindow, (struct Window *)); X! int NDECL(kbhit ); X! int NDECL(WindowGetchar ); X! WETYPE NDECL(WindowGetevent ); X! void NDECL(WindowFlush ); X! void FDECL(WindowPutchar, (char )); X! void FDECL(WindowFPuts, (const char *)); X! void FDECL(WindowPuts, (const char *)); X void FDECL( WindowPrintf, ( char *,... )); X! void NDECL(CleanUp ); X! int FDECL(ConvertKey, ( struct IntuiMessage * )); X! void FDECL(Abort, (long )); X! void FDECL(flush_glyph_buffer, (struct Window *)); X! void FDECL(amiga_print_glyph, (winid , int , int )); X! void FDECL(start_glyphout, (winid )); X! void FDECL(end_glyphout, (winid )); X #ifdef INTUI_NEW_LOOK X! struct ExtNewWindow *FDECL(DupNewWindow, (struct ExtNewWindow *)); X! void FDECL(FreeNewWindow, (struct ExtNewWindow *)); X #else X! struct NewWindow *FDECL(DupNewWindow, (struct NewWindow *)); X! void FDECL(FreeNewWindow, (struct NewWindow *)); X #endif X! void NDECL(bell ); X! void NDECL(amii_delay_output ); X! void FDECL(amii_number_pad, (int )); X--- 1,37 ---- X /* SCCS Id: @(#)amiwind.p 3.1 93/01/08 */ X /* Copyright (c) Gregg Wonderly, Naperville, IL, 1992, 1993 */ X /* NetHack may be freely redistributed. See license for details. */ X+ X /* amiwind.c */ X #ifdef INTUI_NEW_LOOK X! struct Window *FDECL( OpenShWindow, (struct ExtNewWindow *) ); X #else X! struct Window *FDECL( OpenShWindow, (struct NewWindow *) ); X #endif X! void FDECL( CloseShWindow, (struct Window *)); X! int NDECL( kbhit ); X! int NDECL( amikbhit ); X! int NDECL( WindowGetchar ); X! WETYPE NDECL( WindowGetevent ); X! void NDECL( WindowFlush ); X! void FDECL( WindowPutchar, (char )); X! void FDECL( WindowFPuts, (const char *)); X! void FDECL( WindowPuts, (const char *)); X void FDECL( WindowPrintf, ( char *,... )); X! void NDECL( CleanUp ); X! int FDECL( ConvertKey, ( struct IntuiMessage * )); X! void FDECL( Abort, (long )); X! void FDECL( flush_glyph_buffer, (struct Window *)); X! void FDECL( amiga_print_glyph, (winid , int , int )); X! void FDECL( start_glyphout, (winid )); X! void FDECL( end_glyphout, (winid )); X #ifdef INTUI_NEW_LOOK X! struct ExtNewWindow *FDECL( DupNewWindow, (struct ExtNewWindow *)); X! void FDECL( FreeNewWindow, (struct ExtNewWindow *)); X #else X! struct NewWindow *FDECL( DupNewWindow, (struct NewWindow *)); X! void FDECL( FreeNewWindow, (struct NewWindow *)); X #endif X! void NDECL( bell ); X! void NDECL( amii_delay_output ); X! void FDECL( amii_number_pad, (int )); X*** /tmp/da09030 Thu Feb 25 10:27:21 1993 X--- sys/amiga/colorwin.c Mon Feb 1 11:37:47 1993 X*************** X*** 18,30 **** X 3,0,JAM2, /* front and back text pens, drawmode and fill byte */ X 13,1, /* XY origin relative to container TopLeft */ X NULL, /* font pointer or NULL for default */ X! "Okay", /* pointer to text */ X NULL /* next IntuiText structure */ X }; X X! struct Gadget Col_Okay = { X NULL, /* next gadget */ X! 8,65, /* origin XY of hit box relative to window TopLeft */ X 58,11, /* hit box width and height */ X NULL, /* gadget flags */ X RELVERIFY, /* activation flags */ X--- 18,30 ---- X 3,0,JAM2, /* front and back text pens, drawmode and fill byte */ X 13,1, /* XY origin relative to container TopLeft */ X NULL, /* font pointer or NULL for default */ X! "Save", /* pointer to text */ X NULL /* next IntuiText structure */ X }; X X! struct Gadget Col_Save = { X NULL, /* next gadget */ X! 9,77, /* origin XY of hit box relative to window TopLeft */ X 58,11, /* hit box width and height */ X NULL, /* gadget flags */ X RELVERIFY, /* activation flags */ X*************** X*** 34,40 **** X &Col_IText1, /* first IntuiText structure */ X NULL, /* gadget mutual-exclude long word */ X NULL, /* SpecialInfo structure */ X! GADCOLOKAY, /* user-definable data */ X NULL /* pointer to user-definable data */ X }; X X--- 34,40 ---- X &Col_IText1, /* first IntuiText structure */ X NULL, /* gadget mutual-exclude long word */ X NULL, /* SpecialInfo structure */ X! GADCOLSAVE, /* user-definable data */ X NULL /* pointer to user-definable data */ X }; X X*************** X*** 55,60 **** X--- 55,99 ---- X X struct IntuiText Col_IText2 = { X 3,0,JAM2, /* front and back text pens, drawmode and fill byte */ X+ 17,1, /* XY origin relative to container TopLeft */ X+ NULL, /* font pointer or NULL for default */ X+ "Use", /* pointer to text */ X+ NULL /* next IntuiText structure */ X+ }; X+ X+ struct Gadget Col_Okay = { X+ &Col_Save, /* next gadget */ X+ 117,77, /* origin XY of hit box relative to window TopLeft */ X+ 58,11, /* hit box width and height */ X+ NULL, /* gadget flags */ X+ RELVERIFY, /* activation flags */ X+ BOOLGADGET, /* gadget type flags */ X+ (APTR)&Col_Border2, /* gadget border or image to be rendered */ X+ NULL, /* alternate imagery for selection */ X+ &Col_IText2, /* first IntuiText structure */ X+ NULL, /* gadget mutual-exclude long word */ X+ NULL, /* SpecialInfo structure */ X+ GADCOLOKAY, /* user-definable data */ X+ NULL /* pointer to user-definable data */ X+ }; X+ X+ SHORT Col_BorderVectors3[] = { X+ 0,0, X+ 59,0, X+ 59,12, X+ 0,12, X+ 0,0 X+ }; X+ struct Border Col_Border3 = { X+ -1,-1, /* XY origin relative to container TopLeft */ X+ 3,0,JAM1, /* front pen, back pen and drawmode */ X+ 5, /* number of XY vectors */ X+ Col_BorderVectors3, /* pointer to XY vectors */ X+ NULL /* next border in list */ X+ }; X+ X+ struct IntuiText Col_IText3 = { X+ 3,0,JAM2, /* front and back text pens, drawmode and fill byte */ X 6,1, /* XY origin relative to container TopLeft */ X NULL, /* font pointer or NULL for default */ X "Cancel", /* pointer to text */ X*************** X*** 63,76 **** X X struct Gadget Col_Cancel = { X &Col_Okay, /* next gadget */ X! 218,65, /* origin XY of hit box relative to window TopLeft */ X 58,11, /* hit box width and height */ X NULL, /* gadget flags */ X RELVERIFY, /* activation flags */ X BOOLGADGET, /* gadget type flags */ X! (APTR)&Col_Border2, /* gadget border or image to be rendered */ X NULL, /* alternate imagery for selection */ X! &Col_IText2, /* first IntuiText structure */ X NULL, /* gadget mutual-exclude long word */ X NULL, /* SpecialInfo structure */ X GADCOLCANCEL, /* user-definable data */ X--- 102,115 ---- X X struct Gadget Col_Cancel = { X &Col_Okay, /* next gadget */ X! 218,77, /* origin XY of hit box relative to window TopLeft */ X 58,11, /* hit box width and height */ X NULL, /* gadget flags */ X RELVERIFY, /* activation flags */ X BOOLGADGET, /* gadget type flags */ X! (APTR)&Col_Border3, /* gadget border or image to be rendered */ X NULL, /* alternate imagery for selection */ X! &Col_IText3, /* first IntuiText structure */ X NULL, /* gadget mutual-exclude long word */ X NULL, /* SpecialInfo structure */ X GADCOLCANCEL, /* user-definable data */ X*************** X*** 174,180 **** X X struct NewWindow Col_NewWindowStructure1 = { X 175,45, /* window XY origin relative to TopLeft of screen */ X! 285,80, /* window width and height */ X 0,1, /* detail and block pens */ X MOUSEBUTTONS+MOUSEMOVE+GADGETDOWN+GADGETUP+CLOSEWINDOW+VANILLAKEY+INTUITICKS, /* IDCMP flags */ X WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE+NOCAREREFRESH, /* other window flags */ X--- 213,219 ---- X X struct NewWindow Col_NewWindowStructure1 = { X 175,45, /* window XY origin relative to TopLeft of screen */ X! 284,93, /* window width and height */ X 0,1, /* detail and block pens */ X MOUSEBUTTONS+MOUSEMOVE+GADGETDOWN+GADGETUP+CLOSEWINDOW+VANILLAKEY+INTUITICKS, /* IDCMP flags */ X WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE+NOCAREREFRESH, /* other window flags */ X END_OF_FILE if test 53277 -ne `wc -c <'patches01p'`; then echo shar: \"'patches01p'\" unpacked with wrong size! fi # end of 'patches01p' if test -f 'sys/amiga/colors.uu' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'sys/amiga/colors.uu'\" to \"'sys/amiga/colors.uu.orig'\" mv -f 'sys/amiga/colors.uu' 'sys/amiga/colors.uu.orig' fi echo shar: Extracting \"'sys/amiga/colors.uu'\" \(2016 characters\) sed "s/^X//" >'sys/amiga/colors.uu' <<'END_OF_FILE' Xbegin 664 colors.pw XM4&]W97)7:6YD;W=S('8R+C5C(*DQ.3@W+"`Q.3@X(&)Y($E.3U9!5%)/3DE# XM4RP@24Y#+B`@("`@("`@("`@("`@("`@("`@("`@```"[`````E```#\```` XM`0`````!`````!%A;6EG83IC;VQO@``````````53879E``````H````!!\0:V`?'-,@'S-<8!\S7*`?,UT`' XMS-=0````!5-A=F4``````0`````!``````M'041#3TQ3059%``````$````` X"`0!0 X` Xend END_OF_FILE if test 2016 -ne `wc -c <'sys/amiga/colors.uu'`; then echo shar: \"'sys/amiga/colors.uu'\" unpacked with wrong size! fi # end of 'sys/amiga/colors.uu' echo shar: End of archive 12 \(of 31\). cp /dev/null ark12isdone 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 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 31 archives. echo "Now execute 'patchit.sh'" rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0