home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume16 / nethck31 / patch2q < prev    next >
Encoding:
Internet Message Format  |  1993-06-15  |  61.6 KB

  1. Path: uunet!gatech!europa.eng.gtefsd.com!emory!ogicse!news.tek.com!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v17i092:  nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch2q/33
  5. Message-ID: <1v8in0$j4g@ying.cna.tek.com>
  6. Date: 11 Jun 93 00:13:20 GMT
  7. Article-I.D.: ying.1v8in0$j4g
  8. Organization: Tektronix, Inc, Redmond, OR, USA
  9. Lines: 2070
  10. Approved: billr@saab.CNA.TEK.COM
  11. NNTP-Posting-Host: saab.cna.tek.com
  12. Xref: uunet comp.sources.games:1757
  13.  
  14. Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
  15. Posting-number: Volume 17, Issue 92
  16. Archive-name: nethack31/Patch2q
  17. Patch-To: nethack31: Volume 16, Issue 1-116
  18. Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11
  19.  
  20.  
  21.  
  22. #! /bin/sh
  23. # This is a shell archive.  Remove anything before this line, then unpack
  24. # it by saving it into a file and typing "sh file".  To overwrite existing
  25. # files, type "sh file -c".  You can also feed this as standard input via
  26. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  27. # will see the following message at the end:
  28. #        "End of archive 17 (of 33)."
  29. # Contents:  patches02k sys/mac/mrecover.hqx
  30. # Wrapped by billr@saab on Thu Jun 10 16:55:04 1993
  31. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  32. if test -f 'patches02k' -a "${1}" != "-c" ; then 
  33.   echo shar: Renaming existing file \"'patches02k'\" to \"'patches02k.orig'\"
  34.   mv -f 'patches02k' 'patches02k.orig'
  35. fi
  36. echo shar: Extracting \"'patches02k'\" \(54276 characters\)
  37. sed "s/^X//" >'patches02k' <<'END_OF_FILE'
  38. X*** /tmp/da11703    Tue Jun  1 17:00:00 1993
  39. X--- sys/amiga/Install.ami    Mon May 17 13:36:03 1993
  40. X***************
  41. X*** 2,19 ****
  42. X        Using, Compiling, and Installing Amiga NetHack 3.1
  43. X        (or Everything You Never Wanted to Know Before NetHacking)
  44. X  
  45. X!          Last Revision: 22 February 1993 for NetHack 3.1.1
  46. X  
  47. X  
  48. X! 0. Pre-intro for NetHack 3.1.1.
  49. X!    New for 3.1.1:
  50. X!      Audio support.
  51. X!      Much faster loading, slightly smaller files.
  52. X!      HackWB allows NewGame to be copied for multiple sets of defaults.
  53. X!      HackCli allows options to be changed between games.
  54. X!      Many fewer bugs.
  55. X! 
  56. X!    We would also like to thank each and every one of the people who took
  57. X     the time and effort to report bugs to us.  THANK YOU!
  58. X  
  59. X  I. Introduction
  60. X--- 2,19 ----
  61. X        Using, Compiling, and Installing Amiga NetHack 3.1
  62. X        (or Everything You Never Wanted to Know Before NetHacking)
  63. X  
  64. X!          Last Revision: 12 May 1993 for NetHack 3.1.2
  65. X  
  66. X  
  67. X! 0. Pre-intro for NetHack 3.1.2.
  68. X!    New for 3.1.2:
  69. X!      Addition of asksavedisk option to eliminate need for savedir;n syntax
  70. X!      Scrolling message window if screen is tall enough.
  71. X!      Consolidation of defaults and config information into one in HackWB.
  72. X!      All known fatal bugs dealing with the Amiga port have been fixed.
  73. X!      Preliminary tty mode - see below.
  74. X!      
  75. X!    We would like to thank each and every one of the people who took
  76. X     the time and effort to report bugs to us.  THANK YOU!
  77. X  
  78. X  I. Introduction
  79. X***************
  80. X*** 52,59 ****
  81. X      compiling NetHack, you may use the same address, or, for compiler
  82. X      specific problems, send mail to:
  83. X          Greg Olson (golson@sundown.sun.com)  for Manx
  84. X!         Ken Lorber (keni@oasys.dt.navy.mil) for SAS/C, or
  85. X!         Richard Addison (addison@pollux.usc.edu) for either.
  86. X      We do not currently have a contact for the DICE port.
  87. X  
  88. X  I.C. Credits
  89. X--- 52,58 ----
  90. X      compiling NetHack, you may use the same address, or, for compiler
  91. X      specific problems, send mail to:
  92. X          Greg Olson (golson@sundown.sun.com)  for Manx
  93. X!         Richard Addison (addison@pollux.usc.edu) for SAS/C.
  94. X      We do not currently have a contact for the DICE port.
  95. X  
  96. X  I.C. Credits
  97. X***************
  98. X*** 195,230 ****
  99. X      A-filla.lev    A-fillb.lev    A-goal.lev    A-locate.lev
  100. X      A-start.lev    air.lev        asmodeus.lev    astral.lev
  101. X      B-filla.lev    B-fillb.lev    B-goal.lev    B-locate.lev
  102. X!     B-start.lev    baalz.lev    Bell        bigroom.lev
  103. X!     Bugle        C-filla.lev    C-fillb.lev    C-goal.lev
  104. X!     C-locate.lev    C-start.lev    castle.lev    cmdhelp
  105. X!     data        default.icon    Drum_Of_Earthquake
  106. X      dungeon        E-filla.lev    E-fillb.lev    E-goal.lev
  107. X      E-locate.lev    E-start.lev    earth.lev    fakewiz1.lev
  108. X!     fakewiz2.lev    Fire_Horn    fire.lev    Frost_Horn
  109. X!     Guidebook    Guidebook.info    H-filla.lev    H-fillb.lev
  110. X!     H-goal.lev    H-locate.lev    H-start.lev    hack/8
  111. X!     hack.font    HackWB        HackWB.info    HackCli
  112. X!     help        hh        history        juiblex.lev
  113. X!     K-filla.lev    K-fillb.lev    K-goal.lev    K-locate.lev
  114. X!     K-start.lev    knox.lev    Leather_Drum    license
  115. X!     logfile        Magic_Flute    Magic_Harp    ManPage
  116. X!     ManPage.info    medusa-1.lev    medusa-2.lev    minefill.lev
  117. X!     minetown.lev    mine_end.lev    NetHack.cnf    NetHack.c01
  118. X!     NetHack.d00    news        NewGame.info    opthelp
  119. X!     options        oracle.lev    oracles        orcus.lev
  120. X!     P-filla.lev    P-fillb.lev    P-goal.lev    P-locate.lev
  121. X!     P-start.lev    perm        quest.dat    R-filla.lev
  122. X!     R-fillb.lev    R-goal.lev    R-locate.lev    R-start.lev
  123. X!     ReadMe        ReadMe.info    record        recover
  124. X!     rumors        S-filla.lev    S-fillb.lev    S-goal.lev
  125. X!     S-locate.lev    S-start.lev    sanctum.lev    T-filla.lev
  126. X!     T-fillb.lev    T-goal.lev    T-locate.lev    T-start.lev
  127. X!     Tooled_Horn    tower1.lev    tower2.lev    tower3.lev
  128. X!     V-filla.lev    V-fillb.lev    V-goal.lev    V-locate.lev
  129. X!     V-start.lev    valley.lev    W-filla.lev    W-fillb.lev
  130. X!     W-goal.lev    W-locate.lev    W-start.lev    water.lev
  131. X!     wizard1.lev    wizard2.lev    wizard3.lev    wizhelp
  132. X      Wooden_Flute    Wooden_Harp
  133. X  
  134. X      HackExe:
  135. X--- 194,235 ----
  136. X      A-filla.lev    A-fillb.lev    A-goal.lev    A-locate.lev
  137. X      A-start.lev    air.lev        asmodeus.lev    astral.lev
  138. X      B-filla.lev    B-fillb.lev    B-goal.lev    B-locate.lev
  139. X!     B-start.lev    baalz.lev    bigroom.lev    C-filla.lev
  140. X!     C-fillb.lev    C-goal.lev    C-locate.lev    C-start.lev
  141. X!     castle.lev    cmdhelp        data        default.icon
  142. X      dungeon        E-filla.lev    E-fillb.lev    E-goal.lev
  143. X      E-locate.lev    E-start.lev    earth.lev    fakewiz1.lev
  144. X!     fakewiz2.lev    fire.lev    Guidebook    Guidebook.info
  145. X!     H-filla.lev    H-fillb.lev    H-goal.lev    H-locate.lev
  146. X!     H-start.lev    hack.font    HackWB        HackWB.info
  147. X!     HackCli        help        hh        history
  148. X!     juiblex.lev    K-filla.lev    K-fillb.lev    K-goal.lev
  149. X!     K-locate.lev    K-start.lev    knox.lev    license
  150. X!     logfile        ManPage        ManPage.info    medusa-1.lev
  151. X!     medusa-2.lev    minefill.lev    minetown.lev    mine_end.lev
  152. X!     NetHack.cnf    NetHack.c01    NetHack.d00    news
  153. X!     NewGame.info    opthelp        options        oracle.lev
  154. X!     oracles        orcus.lev    P-filla.lev    P-fillb.lev
  155. X!     P-goal.lev    P-locate.lev    P-start.lev    perm
  156. X!     quest.dat    R-filla.lev    R-fillb.lev    R-goal.lev
  157. X!     R-locate.lev    R-start.lev    ReadMe        ReadMe.info
  158. X!     record        recover        rumors        S-filla.lev
  159. X!     S-fillb.lev    S-goal.lev    S-locate.lev    S-start.lev
  160. X!     sanctum.lev    T-filla.lev    T-fillb.lev    T-goal.lev
  161. X!     T-locate.lev    T-start.lev    tower1.lev    tower2.lev
  162. X!     tower3.lev    V-filla.lev    V-fillb.lev    V-goal.lev
  163. X!     V-locate.lev    V-start.lev    valley.lev    W-filla.lev
  164. X!     W-fillb.lev    W-goal.lev    W-locate.lev    W-start.lev
  165. X!     water.lev    wizard1.lev    wizard2.lev    wizard3.lev
  166. X!     wizhelp
  167. X! 
  168. X!     NetHack:hack
  169. X!     8
  170. X! 
  171. X!     NetHack:sounds
  172. X!     Bell        Bugle        Drum_Of_Earthquake
  173. X!     Fire_Horn    Frost_Horn    Leather_Drum
  174. X!     Magic_Flute    Magic_Harp    Tooled_Horn
  175. X      Wooden_Flute    Wooden_Harp
  176. X  
  177. X      HackExe:
  178. X***************
  179. X*** 267,274 ****
  180. X      CAREFULLY through the Makefile to familiarize yourself with which
  181. X      assignments are assumed.  Otherwise, you're going to get something
  182. X      like "Insert NHS: in any drive." requestors.  You will need the
  183. X!     programs uudecode, flex, and bison.  Be sure the p bit is set in
  184. X!     the permissions for ifchange.  The first thing Makefile.ami does
  185. X      is build a program called 'makedefs', which handles a variety of
  186. X      data file generation, and a pair of programs called 'lev_comp' and
  187. X      'dgn_comp' which compile the special levels.  Makedefs will then be
  188. X--- 272,278 ----
  189. X      CAREFULLY through the Makefile to familiarize yourself with which
  190. X      assignments are assumed.  Otherwise, you're going to get something
  191. X      like "Insert NHS: in any drive." requestors.  You will need the
  192. X!     programs uudecode, flex, and bison.  The first thing Makefile.ami does
  193. X      is build a program called 'makedefs', which handles a variety of
  194. X      data file generation, and a pair of programs called 'lev_comp' and
  195. X      'dgn_comp' which compile the special levels.  Makedefs will then be
  196. X***************
  197. X*** 308,314 ****
  198. X  
  199. X      * Included in the SAS/C port is code for generating a SnapShot.tb
  200. X        file upon catching various internal disasters.  That is why the
  201. X!       -d1 flag is in the makefile.  This adds about 270K to the disk
  202. X        image, but it does not increase the run time memory requirements.
  203. X            (But note that this is not useful for split binaries - see below.)
  204. X  
  205. X--- 312,318 ----
  206. X  
  207. X      * Included in the SAS/C port is code for generating a SnapShot.tb
  208. X        file upon catching various internal disasters.  That is why the
  209. X!       debug=l flag is in the makefile.  This adds about 270K to the disk
  210. X        image, but it does not increase the run time memory requirements.
  211. X            (But note that this is not useful for split binaries - see below.)
  212. X  
  213. X***************
  214. X*** 348,350 ****
  215. X--- 352,369 ----
  216. X      decision is based on the presence (or absence) of HackExe:NetHack.dir.
  217. X      Note that the contents of NetHack.dir after a build will generally not
  218. X      be the correct contents for a floppy based system.
  219. X+ 
  220. X+ IV.C.2 TTY Interface
  221. X+     There is a basic tty interface available under 3.1.2.  This is a
  222. X+     preliminary version and it will change in the future.  Expect bugs.
  223. X+     (Due to the instability of the interface it will not be in the
  224. X+     official binaries for 3.1.2).  The TTY mode is designed for use in
  225. X+     a BBS setting - it is specifically not recommended for use on the
  226. X+     console.  The TTY interface is not currently compatible with split
  227. X+     binaries - invoke NetHack directly as NetHack.  In addition, you should
  228. X+     specify #undef SHELL when you compile and add "OPTIONS=windowtype=tty"
  229. X+     and delete GRAPHICS from NetHack.cnf; a 24x80 ANSI-compatible terminal
  230. X+     is assumed.  The present version does not deal with protecting one
  231. X+     user's saved games from another's, or deal with situations such as
  232. X+     low disk space gracefully.  Bug reports and suggestions for improvements
  233. X+     are requested from the user community.
  234. X*** /tmp/da11711    Tue Jun  1 17:00:03 1993
  235. X--- sys/amiga/Makefile.ami    Tue Jun  1 12:07:34 1993
  236. X***************
  237. X*** 22,27 ****
  238. X--- 22,28 ----
  239. X  #   Incl:    "include" directory
  240. X  #   Share:    "share" directory
  241. X  #   NHS:    "src" directory
  242. X+ #   TTY:    "win/tty" directory
  243. X  #   Util:    "util" directory
  244. X  #   OBJ:    destination for object files for main binary
  245. X  #   OBJO:    destination for object files for everything else
  246. X***************
  247. X*** 112,118 ****
  248. X  UUDEC    = uudecode
  249. X  
  250. X  # Flex/Bison command assignments -- Useful only if you have flex/bison
  251. X! FLEX    = flex
  252. X  BISON    = bison
  253. X  # FBFIL and FBLIB may be used, if required by your version of flex or bison,
  254. X  # to specify additional files or libraries to be linked with
  255. X--- 113,119 ----
  256. X  UUDEC    = uudecode
  257. X  
  258. X  # Flex/Bison command assignments -- Useful only if you have flex/bison
  259. X! FLEX    = flex #-Sshare:flexhack.skel
  260. X  BISON    = bison
  261. X  # FBFIL and FBLIB may be used, if required by your version of flex or bison,
  262. X  # to specify additional files or libraries to be linked with
  263. X***************
  264. X*** 124,133 ****
  265. X--- 125,147 ----
  266. X  # "protect +s ifchange"
  267. X  EXECUTE = execute
  268. X  
  269. X+ # SHARED LIBRARY CONFIGURATION
  270. X+ # to build for shared libraries, you need these two objects
  271. X+ # LIBOBJS = OBJ:aglue.o OBJ:amilib.o
  272. X+ 
  273. X+ # NON-SHARED LIBRARY CONFIGURATION
  274. X+ # To build for one particular windowing configuration,
  275. X+ # you need these seven objects
  276. X+ LIBOBJS = OBJ:winami.o OBJ:winstr.o OBJ:winreq.o OBJ:winfuncs.o \
  277. X+       OBJ:winkey.o OBJ:winmenu.o OBJ:amiwind.o
  278. X+ 
  279. X+ AMDEP = amiga:winproto.h amiga:winext.h amiga:windefs.h Incl:winami.h
  280. X+ 
  281. X  # Pathname for the C compiler being used.
  282. X  
  283. X  #[SAS6]
  284. X  CC    = sc
  285. X+ ASM    = asm
  286. X  
  287. X  #[MANX]
  288. X  #CC    = cc
  289. X***************
  290. X*** 159,171 ****
  291. X  # undefine this to not compile with GSTs
  292. X  #GST=gst=$(GSTFILE)
  293. X  #
  294. X! DEBUG=l
  295. X! CFLAGS    = data=far nminc debug=$(DEBUG) idir=incl: cpu=any nostkchk ign=104 \
  296. X!     codename=none ignore=85,62 strmerge optsize ppbuf=8000 \
  297. X      afp $(ERRREXX) $(GST)
  298. X  # for files that are too large for the standard flags:
  299. X  CFLAGS2 = code=far nostrmerge
  300. X! WBCFLAGS = ignore=217,62 data=far ansi nminc code=far \
  301. X      debug=sf $(ERRREXX) $(GST)
  302. X  WBC2FLAGS = define=CLI
  303. X  SPLFLAGS = ignore=77 define=SPLIT dollarok
  304. X--- 173,190 ----
  305. X  # undefine this to not compile with GSTs
  306. X  #GST=gst=$(GSTFILE)
  307. X  #
  308. X! VIEWWINDOW=#define=VIEWWINDOW
  309. X! DEBUG=debug=l
  310. X! #OPTFLAGS=opt optsize optinl optcomp=10 optpeep optgo optdep=5 \
  311. X!     optrdep=5 optalias
  312. X! CFLAGS    = data=far nminc $(DEBUG) idir=incl: cpu=any nostkchk ign=104 \
  313. X!     nover codename=none ignore=85,62 strmerge ppbuf=8000 \
  314. X!     $(OPTFLAGS) \
  315. X!     ${VIEWWINDOW} \
  316. X      afp $(ERRREXX) $(GST)
  317. X  # for files that are too large for the standard flags:
  318. X  CFLAGS2 = code=far nostrmerge
  319. X! WBCFLAGS = ignore=217,62 data=far ansi nminc code=far idir=incl: cpu=any afp \
  320. X      debug=sf $(ERRREXX) $(GST)
  321. X  WBC2FLAGS = define=CLI
  322. X  SPLFLAGS = ignore=77 define=SPLIT dollarok
  323. X***************
  324. X*** 296,311 ****
  325. X      OBJ:monstr.o
  326. X  
  327. X  AMIGAOBJ = \
  328. X!     OBJ:amidos.o    OBJ:amirip.o     OBJ:amiwbench.o OBJ:amiwind.o    \
  329. X!     OBJ:winami.o    OBJ:amisnd.o
  330. X  
  331. X  SHAREOBJ = \
  332. X      OBJ:pcmain.o    $(RANDOBJ)
  333. X  
  334. X  
  335. X  # All the object files for NetHack:
  336. X  
  337. X! HOBJ = $(COMMOBJ) $(AMIGAOBJ) $(SHAREOBJ) $(MAKEDEFOBJ)
  338. X  
  339. X  # Getting down to business:
  340. X  
  341. X--- 315,333 ----
  342. X      OBJ:monstr.o
  343. X  
  344. X  AMIGAOBJ = \
  345. X!     OBJ:amidos.o    OBJ:amirip.o     OBJ:amiwbench.o \
  346. X!     $(LIBOBJS) OBJ:amisnd.o
  347. X  
  348. X  SHAREOBJ = \
  349. X      OBJ:pcmain.o    $(RANDOBJ)
  350. X  
  351. X+ TTYOBJ = \
  352. X+     OBJ:getline.o OBJ:termcap.o OBJ:topl.o OBJ:wintty.o OBJ:amitty.o \
  353. X+     OBJ:rip.o
  354. X  
  355. X  # All the object files for NetHack:
  356. X  
  357. X! HOBJ = $(COMMOBJ) $(AMIGAOBJ) $(SHAREOBJ) $(MAKEDEFOBJ) $(TTYOBJ)
  358. X  
  359. X  # Getting down to business:
  360. X  
  361. X***************
  362. X*** 557,569 ****
  363. X  
  364. X  OBJ:amirip.o:  Amiga:amirip.c $(HDEP)
  365. X  
  366. X! OBJ:amiwind.o:  Amiga:amiwind.c Amiga:amimenu.c $(HDEP)
  367. X  
  368. X  OBJ:amisnd.o:    Amiga:amisnd.c $(HDEP)
  369. X-     $(CC) $(CFLAGS) debug=ff $(OBJSPEC)OBJ:amisnd.o Amiga:amisnd.c
  370. X  
  371. X! OBJ:winami.o:    Amiga:winami.c $(HDEP) Amiga:char.c Amiga:colorwin.c Amiga:randwin.c
  372. X  
  373. X  OBJ:amiwbench.o:  Amiga:amiwbench.c $(HDEP)
  374. X  
  375. X  OBJ:random.o:  Share:random.c
  376. X--- 579,605 ----
  377. X  
  378. X  OBJ:amirip.o:  Amiga:amirip.c $(HDEP)
  379. X  
  380. X! OBJ:aglue.o:  Amiga:aglue.a
  381. X!     $(ASM) -d $(AFLAGS) -oOBJ:aglue.o Amiga:aglue.a
  382. X  
  383. X  OBJ:amisnd.o:    Amiga:amisnd.c $(HDEP)
  384. X  
  385. X! OBJ:winstr.o:    Amiga:winstr.c $(HDEP) $(AMDEP)
  386. X  
  387. X+ OBJ:winreq.o:    Amiga:winreq.c $(HDEP) $(AMDEP) Amiga:colorwin.c
  388. X+ 
  389. X+ OBJ:winfuncs.o:    Amiga:winfuncs.c $(HDEP) $(AMDEP) Incl:patchlevel.h
  390. X+ 
  391. X+ OBJ:winkey.o:    Amiga:winkey.c $(HDEP) $(AMDEP)
  392. X+ 
  393. X+ OBJ:winmenu.o:    Amiga:winmenu.c $(HDEP) $(AMDEP)
  394. X+ 
  395. X+ OBJ:winami.o:    Amiga:winami.c $(HDEP) $(AMDEP) Amiga:char.c Amiga:randwin.c
  396. X+ 
  397. X+ OBJ:amilib.o:    Amiga:amilib.c $(HDEP) $(AMDEP)
  398. X+ 
  399. X+ OBJ:amiwind.o:  Amiga:amiwind.c $(HDEP) $(AMDEP)
  400. X+ 
  401. X  OBJ:amiwbench.o:  Amiga:amiwbench.c $(HDEP)
  402. X  
  403. X  OBJ:random.o:  Share:random.c
  404. X***************
  405. X*** 585,597 ****
  406. X  ASP    = Amiga:splitter
  407. X  OBJO:wb.o: $(WBH) Amiga:wb.c Amiga:wbwin.c Amiga:wbdata.c
  408. X      $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:wb.o Amiga:wb.c
  409. X! OBJO:wbx.o: $(WBH) Amiga:wbcli.c Amiga:wbwin.c Amiga:wbdata.c Incl:date.h
  410. X      $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:wbx.o Amiga:wbcli.c
  411. X  OBJO:loader.o: $(ASP)/loader.c $(ASP)/split.h $(ASP)/amiout.h $(ASP)/multi.h
  412. X      $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:loader.o $(ASP)/loader.c
  413. X  OBJO:multi.o: $(ASP)/multi.c $(ASP)/multi.h
  414. X      $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:multi.o $(ASP)/multi.c
  415. X! OBJO:cli.o: $(WBH) Amiga:wbcli.c Incl:date.h
  416. X      $(CC) $(WBCFLAGS) $(WBC2FLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:cli.o Amiga:wbcli.c
  417. X  ####
  418. X  # splitter support
  419. X--- 621,633 ----
  420. X  ASP    = Amiga:splitter
  421. X  OBJO:wb.o: $(WBH) Amiga:wb.c Amiga:wbwin.c Amiga:wbdata.c
  422. X      $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:wb.o Amiga:wb.c
  423. X! OBJO:wbx.o: $(WBH) Amiga:wbcli.c Amiga:wbwin.c Amiga:wbdata.c #Incl:date.h
  424. X      $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:wbx.o Amiga:wbcli.c
  425. X  OBJO:loader.o: $(ASP)/loader.c $(ASP)/split.h $(ASP)/amiout.h $(ASP)/multi.h
  426. X      $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:loader.o $(ASP)/loader.c
  427. X  OBJO:multi.o: $(ASP)/multi.c $(ASP)/multi.h
  428. X      $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:multi.o $(ASP)/multi.c
  429. X! OBJO:cli.o: $(WBH) Amiga:wbcli.c Incl:patchlevel.h #Incl:date.h
  430. X      $(CC) $(WBCFLAGS) $(WBC2FLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:cli.o Amiga:wbcli.c
  431. X  ####
  432. X  # splitter support
  433. X***************
  434. X*** 993,998 ****
  435. X--- 1029,1035 ----
  436. X  OBJ:rumors.o:  NHS:rumors.c $(HDEP)
  437. X  OBJ:save.o:  NHS:save.c $(HDEP) Incl:lev.h Incl:quest.h
  438. X  OBJ:shk.o:  NHS:shk.c $(HDEP) Incl:eshk.h
  439. X+     $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ NHS:shk.c
  440. X  OBJ:shknam.o:  NHS:shknam.c $(HDEP) Incl:eshk.h
  441. X  OBJ:sit.o:  NHS:sit.c $(HDEP)
  442. X  OBJ:sounds.o:  NHS:sounds.c $(HDEP) Incl:edog.h Incl:eshk.h
  443. X***************
  444. X*** 1017,1022 ****
  445. X--- 1054,1067 ----
  446. X  OBJ:worn.o:  NHS:worn.c $(HDEP)
  447. X  OBJ:write.o:  NHS:write.c $(HDEP)
  448. X  OBJ:zap.o:  NHS:zap.c $(HDEP)
  449. X+ 
  450. X+ OBJ:getline.o:    TTY:getline.c $(HDEP) Incl:wintty.h
  451. X+ OBJ:termcap.o:    TTY:termcap.c $(HDEP) Incl:wintty.h Incl:termcap.h
  452. X+ OBJ:topl.o:    TTY:topl.c $(HDEP) Incl:wintty.h Incl:termcap.h
  453. X+ OBJ:wintty.o:    TTY:wintty.c $(HDEP) Incl:wintty.h Incl:termcap.h
  454. X+ OBJ:amitty.o:    amiga:amitty.c $(HDEP)
  455. X+ OBJ:rip.o:    NHS:rip.c $(HDEP) #more?
  456. X+ 
  457. X  Incl:config.h:  Incl:tradstdc.h Incl:global.h
  458. X      -setdate Incl:config.h
  459. X      -wait 2
  460. X*** /tmp/da14854    Wed Jun  2 08:41:45 1993
  461. X--- sys/amiga/NetHack.cnf    Wed Jun  2 08:41:02 1993
  462. X***************
  463. X*** 15,28 ****
  464. X  #OPTIONS=packorder:")[%?+/=!(*0_`,scores:10t/2a,noverbose
  465. X  
  466. X  # Other general options
  467. X! #OPTIONS=time,rest_on_space,nopickup
  468. X  
  469. X  # The search path for files like record, help, opthelp, etc.
  470. X  #PATH=NetHack:
  471. X! PATH=NetHack:playground
  472. X  
  473. X  # My own setup
  474. X! #OPTIONS=name:Rhialto,catname:Killie,time,nopickup
  475. X  
  476. X  # A hard disk configuration.
  477. X  #
  478. X--- 15,28 ----
  479. X  #OPTIONS=packorder:")[%?+/=!(*0_`,scores:10t/2a,noverbose
  480. X  
  481. X  # Other general options
  482. X! #OPTIONS=time,rest_on_space,noautopickup
  483. X  
  484. X  # The search path for files like record, help, opthelp, etc.
  485. X  #PATH=NetHack:
  486. X! PATH=NetHack:
  487. X  
  488. X  # My own setup
  489. X! #OPTIONS=name:Rhialto,catname:Killie,time,noautopickup
  490. X  
  491. X  # A hard disk configuration.
  492. X  #
  493. X***************
  494. X*** 91,96 ****
  495. X         215 213 046 193 192 198 198 046 229 035 \
  496. X         060 062 060 062 094 034 095 092 035 123 \
  497. X         125 042 125 042 042 035 035 046 035 125 \
  498. X!        192 193 092 047 042 033 123 125 064 038 \
  499. X!        042 035 047 201 092 200 200 092 201 047 \
  500. X         230 234 231 236 212 237 232 235 233
  501. X--- 91,114 ----
  502. X         215 213 046 193 192 198 198 046 229 035 \
  503. X         060 062 060 062 094 034 095 092 035 123 \
  504. X         125 042 125 042 042 035 035 046 035 125 \
  505. X!        241 240 242 243 042 033 123 125 064 038 \
  506. X!        042 035 244 245 246 247 239 248 249 250 \
  507. X         230 234 231 236 212 237 232 235 233
  508. X+ # Monitors vary greatly in their color response.  If the default colors
  509. X+ # are not good on your monitor, here are some other alternatives:
  510. X+ #CBM 1960, set color/contrast for good pure red, green, and blue. True colors.
  511. X+ #PENS=000,fff,a61,7bb,0f0,e0c,00f,f00
  512. X+ #CBM 1960, set color/contrast as above, better colors for NetHack.
  513. X+ #PENS=667,fff,da1,7bb,2f0,e0d,0af,f42
  514. X+ #and one other suggestion:
  515. X+ #PENS=888,ffc,840,0b8,4e4,e8b,7be,a04
  516. X+ PENS=000,fff,830,7ae,181,c06,23e,c00
  517. X+ # for an "interlaced"+ line screen, the default is courier:13.  If you want
  518. X+ #  a different font, set it here.  The format is "fontname.font:size"; i.e. the
  519. X+ # .font extension is required.
  520. X+ #FONT=topaz.font:13
  521. X+ # Proportional fonts such as CGTimes are probably not a good idea because they
  522. X+ # result in many things not being spaced out correctly.
  523. X+ #FONT=CGTimes.font:15
  524. X+ # This sized proportional font is readable, but still has spacing problems
  525. X+ #FONT=CGTimes.font:21
  526. X*** /tmp/da11743    Tue Jun  1 17:00:12 1993
  527. X--- sys/amiga/amidos.c    Mon Apr 26 17:36:56 1993
  528. X***************
  529. X*** 34,39 ****
  530. X--- 34,40 ----
  531. X  #include "Amiga:amidos.p"
  532. X  
  533. X  extern char Initialized;
  534. X+ extern struct window_procs amii_procs;
  535. X  
  536. X  #ifndef __SASC_60
  537. X  int Enable_Abort = 0;   /* for stdio package */
  538. X***************
  539. X*** 83,89 ****
  540. X      extern struct ExecBase *SysBase;
  541. X  
  542. X      /* Only under 2.0 and later ROMs do we have System() */
  543. X!     if( SysBase->LibNode.lib_Version >= 37 )
  544. X      {
  545. X      getlin("Enter CLI Command...", buf );
  546. X      i = System( buf, NULL );
  547. X--- 84,90 ----
  548. X      extern struct ExecBase *SysBase;
  549. X  
  550. X      /* Only under 2.0 and later ROMs do we have System() */
  551. X!     if( SysBase->LibNode.lib_Version >= 37 && !amibbs)
  552. X      {
  553. X      getlin("Enter CLI Command...", buf );
  554. X      i = System( buf, NULL );
  555. X***************
  556. X*** 261,282 ****
  557. X  /* this should be replaced */
  558. X  saveDiskPrompt(start)
  559. X  {
  560. X-     extern int saveprompt;
  561. X      char buf[BUFSIZ], *bp;
  562. X      BPTR fileLock;
  563. X  
  564. X!     if (saveprompt) {
  565. X          /* Don't prompt if you can find the save file */
  566. X      if (fileLock = Lock(SAVEF, SHARED_LOCK)) {
  567. X          UnLock(fileLock);
  568. X!         clear_nhwindow( WIN_BASE );
  569. X          return 1;
  570. X      }
  571. X      pline( "If save file is on a SAVE disk, put that disk in now." );
  572. X      if( strlen( SAVEF ) > QBUFSZ - 25 - 22 )
  573. X          panic( "not enough buffer space for prompt" );
  574. X!     getlind("File name ?", buf, SAVEF);
  575. X!     clear_nhwindow( WIN_BASE );
  576. X      if (!start && *buf == '\033')
  577. X          return 0;
  578. X  
  579. X--- 262,301 ----
  580. X  /* this should be replaced */
  581. X  saveDiskPrompt(start)
  582. X  {
  583. X      char buf[BUFSIZ], *bp;
  584. X      BPTR fileLock;
  585. X  
  586. X!     if (flags.asksavedisk) {
  587. X          /* Don't prompt if you can find the save file */
  588. X      if (fileLock = Lock(SAVEF, SHARED_LOCK)) {
  589. X          UnLock(fileLock);
  590. X! #if defined(TTY_GRAPHICS)
  591. X!         if(windowprocs.win_init_nhwindows!=amii_procs.win_init_nhwindows)
  592. X!         clear_nhwindow( WIN_MAP );
  593. X! #endif
  594. X! #if defined(AMII_GRAPHICS)
  595. X!         if(windowprocs.win_init_nhwindows==amii_procs.win_init_nhwindows)
  596. X!         clear_nhwindow( WIN_BASE );
  597. X! #endif
  598. X          return 1;
  599. X      }
  600. X      pline( "If save file is on a SAVE disk, put that disk in now." );
  601. X      if( strlen( SAVEF ) > QBUFSZ - 25 - 22 )
  602. X          panic( "not enough buffer space for prompt" );
  603. X! /* THIS IS A HACK */
  604. X! #if defined(TTY_GRAPHICS)
  605. X!     if(windowprocs.win_init_nhwindows!=amii_procs.win_init_nhwindows){
  606. X!         getlin("File name ?",buf);
  607. X!         clear_nhwindow( WIN_MAP );
  608. X!     }
  609. X! #endif
  610. X! #if defined(AMII_GRAPHICS)
  611. X!     if(windowprocs.win_init_nhwindows==amii_procs.win_init_nhwindows){
  612. X!         getlind("File name ?", buf, SAVEF);
  613. X!         clear_nhwindow( WIN_BASE );
  614. X!     }
  615. X! #endif
  616. X!     clear_nhwindow( WIN_MESSAGE);
  617. X      if (!start && *buf == '\033')
  618. X          return 0;
  619. X  
  620. X***************
  621. X*** 448,454 ****
  622. X      chdir(orgdir);      /* chdir, not chdirx */
  623. X  #endif
  624. X  
  625. X!     CleanUp();
  626. X      exit(code);
  627. X  }
  628. X  
  629. X--- 467,476 ----
  630. X      chdir(orgdir);      /* chdir, not chdirx */
  631. X  #endif
  632. X  
  633. X! #ifdef AMII_GRAPHICS
  634. X!     if(windowprocs.win_init_nhwindows==amii_procs.win_init_nhwindows)
  635. X!     CleanUp();
  636. X! #endif
  637. X      exit(code);
  638. X  }
  639. X  
  640. X*** /tmp/da11751    Tue Jun  1 17:00:15 1993
  641. X--- sys/amiga/amidos.p    Tue Apr 13 15:41:37 1993
  642. X***************
  643. X*** 28,35 ****
  644. X--- 28,39 ----
  645. X  void NDECL(gameDiskPrompt );
  646. X  void FDECL(append_slash, (char *));
  647. X  void FDECL(getreturn, (const char *));
  648. X+ #ifndef msmsg
  649. X  void FDECL(msmsg, ( const char *, ... ));
  650. X+ #endif
  651. X+ #if 0
  652. X  FILE *FDECL(fopenp, (const char * , const char *));
  653. X+ #endif
  654. X  #ifndef    __SASC_60
  655. X  int FDECL(chdir, (char *));
  656. X  #endif
  657. X*** /tmp/da11784    Tue Jun  1 17:00:22 1993
  658. X--- sys/amiga/amii.hlp    Mon May 24 11:20:33 1993
  659. X***************
  660. X*** 1,4 ****
  661. X!             Amiga specific help file for NetHack 3.1.1
  662. X  
  663. X  The Amiga port of NetHack supports a number of additional commands
  664. X  and facilities specific to the Amiga.  Listed below are the things
  665. X--- 1,4 ----
  666. X!             Amiga specific help file for NetHack 3.1.2
  667. X  
  668. X  The Amiga port of NetHack supports a number of additional commands
  669. X  and facilities specific to the Amiga.  Listed below are the things
  670. X***************
  671. X*** 23,28 ****
  672. X--- 23,30 ----
  673. X          SCORE=                  Scores for specified players.
  674. X          CHARACTER=              Class of player (e.g. Rogue).
  675. X          PENS=xxx,xxx,...        8 pen settings for game palette.
  676. X+         FONT=name.font:size     Set the text font for text info.
  677. X+                                 "courier.font:13" is the default.
  678. X          PATH=                   PATH for locating files.
  679. X          OPTIONS=                Comma separated list of options.
  680. X          HACKDIR=                Directory to play game in.
  681. X*** /tmp/da11800    Tue Jun  1 17:00:26 1993
  682. X--- sys/amiga/amimenu.c    Tue Apr 13 15:41:42 1993
  683. X***************
  684. X*** 7,13 ****
  685. X  
  686. X  #define TEXT(nam,str) \
  687. X  static struct IntuiText nam = \
  688. X!   {1,5,JAM2,0,0,0L,(UBYTE*)str,0L}  /* 1,5 == C_WHITE,C_MAGENTA */
  689. X  
  690. X      /* Commands */
  691. X      TEXT(T_HELP,  "?   Display help menu");
  692. X--- 7,13 ----
  693. X  
  694. X  #define TEXT(nam,str) \
  695. X  static struct IntuiText nam = \
  696. X!   {0,1,JAM2,0,0,0L,(UBYTE*)str,0L}  /* 0,1 == C_BLACK,C_WHITE */
  697. X  
  698. X      /* Commands */
  699. X      TEXT(T_HELP,  "?   Display help menu");
  700. X***************
  701. X*** 154,162 ****
  702. X  /* Width = #letters * 8 + 8 + 10 */
  703. X  
  704. X  struct Menu HackMenu[] = {
  705. X!    { &HackMenu[1], 10,0, 72,0,MENUENABLED,"Commands",     &cmdsub[0] }, /*8*/
  706. X!    { &HackMenu[2], 92,0, 80,0,MENUENABLED,"Inventory",    &invsub[0] }, /*9*/
  707. X!    { &HackMenu[3],182,0, 64,0,MENUENABLED,"Actions",      &actsub[0] }, /*7*/
  708. X!    { &HackMenu[4],256,0,104,0,MENUENABLED,"Preparations", &armsub[0] }, /*12*/
  709. X!    { NULL,    370,0, 72,0,MENUENABLED,"Movement",     &movsub[0] },    /*8*/
  710. X  };
  711. X--- 154,162 ----
  712. X  /* Width = #letters * 8 + 8 + 10 */
  713. X  
  714. X  struct Menu HackMenu[] = {
  715. X!    { &HackMenu[1], 0,0, 72,0,MENUENABLED,"Commands",     &cmdsub[0] }, /*8*/
  716. X!    { &HackMenu[2], 82,0, 80,0,MENUENABLED,"Inventory",    &invsub[0] }, /*9*/
  717. X!    { &HackMenu[3],172,0, 64,0,MENUENABLED,"Actions",      &actsub[0] }, /*7*/
  718. X!    { &HackMenu[4],246,0,104,0,MENUENABLED,"Preparations", &armsub[0] }, /*12*/
  719. X!    { NULL,    360,0, 72,0,MENUENABLED,"Movement",     &movsub[0] },    /*8*/
  720. X  };
  721. X*** /tmp/da11808    Tue Jun  1 17:00:28 1993
  722. X--- sys/amiga/amirip.c    Mon May  3 13:34:28 1993
  723. X***************
  724. X*** 1,4 ****
  725. X! /*  SCCS Id: @(#)amirip.c   3.2 93/01/08
  726. X  /* Copyright (c) Kenneth Lorber, Bethesda, Maryland 1991, 1992, 1993. */
  727. X  /* NetHack may be freely redistributed.  See license for details. */
  728. X  
  729. X--- 1,4 ----
  730. X! /*    SCCS Id: @(#)amirip.c    3.2    93/04/26    */
  731. X  /* Copyright (c) Kenneth Lorber, Bethesda, Maryland 1991, 1992, 1993. */
  732. X  /* NetHack may be freely redistributed.  See license for details. */
  733. X  
  734. X***************
  735. X*** 17,22 ****
  736. X--- 17,24 ----
  737. X  #include <string.h>
  738. X  #include "winami.h"
  739. X  
  740. X+ #ifdef AMII_GRAPHICS
  741. X+ 
  742. X  #undef  NULL
  743. X  #define NULL    0
  744. X  
  745. X***************
  746. X*** 156,162 ****
  747. X  static struct RastPort *rp;
  748. X  static unsigned char tomb_line;
  749. X  
  750. X! extern struct DisplayDesc *amiIDisplay;
  751. X  extern struct Screen *HackScreen;
  752. X  extern int havelace;
  753. X  
  754. X--- 158,164 ----
  755. X  static struct RastPort *rp;
  756. X  static unsigned char tomb_line;
  757. X  
  758. X! extern struct amii_DisplayDesc *amiIDisplay;
  759. X  extern struct Screen *HackScreen;
  760. X  extern int havelace;
  761. X  
  762. X***************
  763. X*** 330,338 ****
  764. X  #undef WIN_DEPTH
  765. X  
  766. X  void
  767. X! outrip( how, tmpwin )
  768. X! int how;
  769. X  winid tmpwin;
  770. X  {
  771. X      int done, rtxth;
  772. X      struct IntuiMessage *imsg;
  773. X--- 332,340 ----
  774. X  #undef WIN_DEPTH
  775. X  
  776. X  void
  777. X! amii_outrip( tmpwin, how )
  778. X  winid tmpwin;
  779. X+ int how;
  780. X  {
  781. X      int done, rtxth;
  782. X      struct IntuiMessage *imsg;
  783. X***************
  784. X*** 710,712 ****
  785. X--- 712,716 ----
  786. X        ((tomb_line-6)*(rp->TxHeight+1))+horizon);
  787. X      Text(rp,buf,strlen(buf));
  788. X  }
  789. X+ 
  790. X+ #endif /* AMII_GRAPHICS */
  791. X*** /tmp/da11816    Tue Jun  1 17:00:30 1993
  792. X--- sys/amiga/amisnd.c    Mon Mar 29 12:32:22 1993
  793. X***************
  794. X*** 148,155 ****
  795. X--- 148,157 ----
  796. X          *t = '_';
  797. X      if( (fp = fopen( name, "r" )) == NULL )
  798. X      {
  799. X+         if((fp=fopen(&name[15],"r"))==NULL){
  800. X          perror( name );
  801. X          return;
  802. X+         }
  803. X      }
  804. X  
  805. X      AudioIO = (struct IOAudio *)
  806. X*** /tmp/da11832    Tue Jun  1 17:00:33 1993
  807. X--- sys/amiga/amiwbench.c    Mon May 24 11:38:38 1993
  808. X***************
  809. X*** 33,39 ****
  810. X--- 33,45 ----
  811. X  extern struct Library *IconBase;
  812. X  #endif
  813. X  
  814. X+ extern void NDECL( preserve_icon );
  815. X+ extern void NDECL( clear_icon );
  816. X+ #ifndef    SHAREDLIB
  817. X+ extern void FDECL( amii_set_text_font, ( char *, int ) );
  818. X+ #endif
  819. X  extern int FDECL(parse_config_line, (FILE *, char *, char *, char *));
  820. X+ extern char *FDECL( ami_default_icon, ( char * ) );
  821. X  
  822. X  int ami_argc;           /* global argc */
  823. X  char **ami_argv;        /* global argv */
  824. X***************
  825. X*** 46,56 ****
  826. X--- 52,67 ----
  827. X  static char iconname[PATHLEN+5];
  828. X  static char origicon[PATHLEN+5];
  829. X  static char savefname[PL_NSIZ];     /* name from name of save file */
  830. X+ int amibbs=0;            /* BBS mode */
  831. X  
  832. X+ #ifdef AMII_GRAPHICS
  833. X  extern int bigscreen;
  834. X+ #endif
  835. X  extern const char *classes; /* liberated from pcmain */
  836. X  extern char PATH[];
  837. X  
  838. X+ static void score(char *);
  839. X+ 
  840. X  /* Called after NetHack.cnf (and maybe NETHACKOPTIONS) are read.
  841. X   * If this is a request to show the score file, do it here and quit.
  842. X   */
  843. X***************
  844. X*** 109,114 ****
  845. X--- 120,126 ----
  846. X      }
  847. X  
  848. X      argline[0]='\0';
  849. X+ #ifdef AMII_GRAPHICS
  850. X      if( p = FindToolType( dobj->do_ToolTypes, "SCREEN" ) )
  851. X      {
  852. X      extern int bigscreen;
  853. X***************
  854. X*** 117,127 ****
  855. X      else if( MatchToolValue( p, "LACE" ) )
  856. X          bigscreen = 1;
  857. X      }
  858. X      if(dobj->do_ToolTypes)for(x=0;p=dobj->do_ToolTypes[x];x++){
  859. X      lp=index(p,'=');
  860. X!     if( !lp++ || strncmp(p, "SCORE", 5 ) == 0 ){
  861. X          if((strncmp(p,"SCORES",6)==0) || (strncmp(p,"SCORE",5)==0)){
  862. X!         if( !lp ) lp = "";
  863. X          doscore=1;
  864. X          scorearg=(char *)alloc(strlen(lp)+1);
  865. X          strcpy(scorearg,lp);
  866. X--- 129,143 ----
  867. X      else if( MatchToolValue( p, "LACE" ) )
  868. X          bigscreen = 1;
  869. X      }
  870. X+ #endif
  871. X      if(dobj->do_ToolTypes)for(x=0;p=dobj->do_ToolTypes[x];x++){
  872. X      lp=index(p,'=');
  873. X!     if( !lp || strncmp(p, "SCORE", 5 ) == 0 ){
  874. X          if((strncmp(p,"SCORES",6)==0) || (strncmp(p,"SCORE",5)==0)){
  875. X!         if( !lp )
  876. X!             lp = "";
  877. X!         else
  878. X!             ++lp;
  879. X          doscore=1;
  880. X          scorearg=(char *)alloc(strlen(lp)+1);
  881. X          strcpy(scorearg,lp);
  882. X***************
  883. X*** 131,136 ****
  884. X--- 147,153 ----
  885. X          TTparse=FALSE;
  886. X          }
  887. X      } else {
  888. X+         lp++;
  889. X          TTparse=TRUE;
  890. X          /* new things */
  891. X          if((strncmp(p,"CMDLINE",7)==0)||
  892. X***************
  893. X*** 140,147 ****
  894. X--- 157,186 ----
  895. X          if(*p=='I'){
  896. X              FromTool=0; /* ugly hack bugfix */
  897. X              FromCLI=1;  /* frontend ICLI only */
  898. X+             if(*argline==':'){
  899. X+             char *x=lp;
  900. X+             amibbs=1;
  901. X+ #ifdef for_later
  902. X+             copy to next blank in argline to amibasename
  903. X+             delete from argline
  904. X+ #else
  905. X+             while(*x && !isspace(*x))x++;
  906. X+             while(*x && isspace(*x))x++;
  907. X+             strncpy(argline,x,79);
  908. X+ #endif
  909. X+             }
  910. X          }
  911. X          }
  912. X+         else if( strncmp( p, "FONT", 4 ) == 0 )
  913. X+         {
  914. X+         if( p = strdup( lp ) )
  915. X+         {
  916. X+             lp = strchr( p, ':' );
  917. X+             *lp++ = 0;
  918. X+             amii_set_text_font( p, atoi( lp ) );
  919. X+             free( p );
  920. X+         }
  921. X+         }
  922. X          else if( strncmp( p, "SCREEN",6 ) )
  923. X          {
  924. X          if (!parse_config_line((FILE *)0, p, 0, tmp_levels)){
  925. X***************
  926. X*** 148,160 ****
  927. X              raw_printf("Bad ToolTypes line: '%s'\n",p);
  928. X              getreturn("to continue");
  929. X          }
  930. X!         }
  931. X!     TTparse=FALSE;
  932. X      }
  933. X      }
  934. X!     /* cleanup - from files.c, except we only change things
  935. X!      * that are explicitly changed, since we already
  936. X!      * did this once to get the defaults (in amidos.c)  */
  937. X      if(plname[0]){
  938. X      plnamesuffix(); /* from files.c */
  939. X      set_savefile_name();
  940. X--- 187,202 ----
  941. X              raw_printf("Bad ToolTypes line: '%s'\n",p);
  942. X              getreturn("to continue");
  943. X          }
  944. X!         } 
  945. X!         TTparse=FALSE;
  946. X      }
  947. X      }
  948. X! 
  949. X!     /* cleanup - from files.c, except we only change things
  950. X!      * that are explicitly changed, since we already
  951. X!      * did this once to get the defaults (in amidos.c)
  952. X!      */
  953. X! 
  954. X      if(plname[0]){
  955. X      plnamesuffix(); /* from files.c */
  956. X      set_savefile_name();
  957. X***************
  958. X*** 166,191 ****
  959. X      }
  960. X      FreeDiskObject(dobj);   /* we'll get it again later if we need it */
  961. X  
  962. X!     if(doscore){
  963. X!     long ac;
  964. X!     char *p;
  965. X!     char **av=calloc(1,50*sizeof(char *));
  966. X! #ifdef CHDIR
  967. X!     chdirx(hackdir,0);
  968. X! #endif
  969. X!     av[0]="NetHack";            /* why not? */
  970. X!     av[1]="-s";             /* why not? */
  971. X!     for(ac=2,p=scorearg;*p;ac++){
  972. X!         av[ac]=p;
  973. X!         while(*p && !isspace(*p))p++;
  974. X!         if(!*p)break;
  975. X!         *p++='\0';
  976. X!         while(*p && isspace(*p))p++;
  977. X!     }
  978. X!     prscore(ac+1,av);
  979. X!     free( av );
  980. X!     exit(0);        /* overloaded */
  981. X!     }
  982. X  
  983. X          /* if the user started us from the tool icon,
  984. X           * we can't save the game in the same place
  985. X--- 208,214 ----
  986. X      }
  987. X      FreeDiskObject(dobj);   /* we'll get it again later if we need it */
  988. X  
  989. X!     if(doscore)score(scorearg);
  990. X  
  991. X          /* if the user started us from the tool icon,
  992. X           * we can't save the game in the same place
  993. X***************
  994. X*** 197,204 ****
  995. X      }
  996. X  }
  997. X  
  998. X! /* Simulate the command line (-s is already done, although this is
  999. X!  * not exactly the way it should be). Note that we do not handle the
  1000. X   * entire range of standard NetHack flags.
  1001. X   */
  1002. X  void ami_wbench_args(){
  1003. X--- 220,226 ----
  1004. X      }
  1005. X  }
  1006. X  
  1007. X! /* Simulate the command line. Note that we do not handle the
  1008. X   * entire range of standard NetHack flags.
  1009. X   */
  1010. X  void ami_wbench_args(){
  1011. X***************
  1012. X*** 234,239 ****
  1013. X--- 256,262 ----
  1014. X  # endif
  1015. X          break;
  1016. X  #endif
  1017. X+ #ifdef AMII_GRAPHICS
  1018. X      case 'L':   /* interlaced screen */
  1019. X          bigscreen = 1;
  1020. X          break;
  1021. X***************
  1022. X*** 240,245 ****
  1023. X--- 263,269 ----
  1024. X      case 'l':   /* No interlaced screen */
  1025. X          bigscreen = -1;
  1026. X          break;
  1027. X+ #endif
  1028. X      case 'u':
  1029. X          {
  1030. X          char *c,*dest;
  1031. X***************
  1032. X*** 257,262 ****
  1033. X--- 281,289 ----
  1034. X          strcpy(savefname,plname);
  1035. X          set_savefile_name();
  1036. X          break;
  1037. X+     case 's':
  1038. X+         score(p);
  1039. X+         /* NOTREACHED */
  1040. X      default:
  1041. X          p--;
  1042. X          if(index(classes,toupper(*p))){
  1043. X***************
  1044. X*** 270,294 ****
  1045. X          /* FALL THROUGH */
  1046. X      case '?':
  1047. X          {
  1048. X!         char buf[77];
  1049. X  
  1050. X!         raw_printf("Usage: %s -s [-[%s]] [maxrank] [name]...",
  1051. X!           hname, classes);
  1052. X!         raw_print("       or");
  1053. X!         sprintf(buf,"       %s [-u name] [-[%s]]", hname, classes);
  1054. X  #if defined(WIZARD) || defined(EXPLORE_MODE)
  1055. X!         strcat(buf," [-[DX]]");
  1056. X  #endif
  1057. X  #ifdef NEWS
  1058. X!         strcat(buf," [-n]");
  1059. X  #endif
  1060. X  #ifdef MFLOPPY
  1061. X  # ifndef AMIGA
  1062. X!         strcat(" [-r]");
  1063. X  # endif
  1064. X  #endif
  1065. X!         raw_print(buf);
  1066. X!         exit(0);
  1067. X          }
  1068. X      }
  1069. X      }
  1070. X--- 297,321 ----
  1071. X          /* FALL THROUGH */
  1072. X      case '?':
  1073. X          {
  1074. X!         char buf[77];
  1075. X  
  1076. X!         raw_printf("Usage: %s -s [-[%s]] [maxrank] [name]...",
  1077. X!           hname, classes);
  1078. X!         raw_print("       or");
  1079. X!         sprintf(buf,"       %s [-u name] [-[%s]]", hname, classes);
  1080. X  #if defined(WIZARD) || defined(EXPLORE_MODE)
  1081. X!         strcat(buf," [-[DX]]");
  1082. X  #endif
  1083. X  #ifdef NEWS
  1084. X!         strcat(buf," [-n]");
  1085. X  #endif
  1086. X  #ifdef MFLOPPY
  1087. X  # ifndef AMIGA
  1088. X!         strcat(" [-r]");
  1089. X  # endif
  1090. X  #endif
  1091. X!         raw_print(buf);
  1092. X!         exit(0);
  1093. X          }
  1094. X      }
  1095. X      }
  1096. X***************
  1097. X*** 315,326 ****
  1098. X  {
  1099. X      BPTR lock;
  1100. X      char tmp[PATHLEN+5];
  1101. X!     struct DiskObject *dobj;
  1102. X!     char **savtp, *ourtools[ 21 ];
  1103. X! #define CHARACTER   0
  1104. X! #define PENS        1
  1105. X!     char types[ 4 ][ 80 ];  /* Buffer space for tooltypes until written */
  1106. X!     int i, j;
  1107. X  
  1108. X      if(!FromWBench)return;
  1109. X      if(FromCLI)return;
  1110. X--- 342,348 ----
  1111. X  {
  1112. X      BPTR lock;
  1113. X      char tmp[PATHLEN+5];
  1114. X!     char *n;
  1115. X  
  1116. X      if(!FromWBench)return;
  1117. X      if(FromCLI)return;
  1118. X***************
  1119. X*** 327,401 ****
  1120. X  
  1121. X      strcpy(tmp,base);
  1122. X      strcat(tmp,".info");
  1123. X      if(FromTool){               /* user clicked on main icon */
  1124. X!     (void)CopyFile(DEFAULT_ICON,tmp);
  1125. X      } else {                /* from project */
  1126. X      lock=Lock(tmp,ACCESS_READ);
  1127. X      if(lock==0){    /* maybe our name changed - try to get
  1128. X!          * original icon */
  1129. X          if(!Rename(origicon,tmp)){
  1130. X          /* nope, build a new icon */
  1131. X!         lock=Lock(DEFAULT_ICON,ACCESS_READ);
  1132. X          if(lock==0)return;      /* no icon today */
  1133. X          UnLock(lock);
  1134. X!         (void)CopyFile(DEFAULT_ICON,tmp);
  1135. X          }
  1136. X      } else UnLock(lock);
  1137. X      }
  1138. X      KillIcon=FALSE;
  1139. X- 
  1140. X- #if 0
  1141. X-     dobj=GetDiskObject(base);
  1142. X- 
  1143. X-     /* Save the current pointer */
  1144. X- 
  1145. X-     savtp = (char **)dobj->do_ToolTypes;
  1146. X- 
  1147. X-     /* Copy the old and set new entries for the WorkBench. */
  1148. X- 
  1149. X-     for( i = 0; savtp[i]; ++i )
  1150. X-     {
  1151. X-     /* Ignore any current settings of these values */
  1152. X- 
  1153. X-     if( strncmpi( savtp[ i ], "CHARACTER=", 10 ) == 0 ||
  1154. X-         strncmpi( savtp[ i ], "PENS=", 5 ) == 0 )
  1155. X-     {
  1156. X-         continue;
  1157. X-     }
  1158. X- 
  1159. X-     ourtools[ i ] = savtp[ i ];
  1160. X-     }
  1161. X- 
  1162. X-     /* Fill in the needed values. */
  1163. X- 
  1164. X-     ourtools[ i++ ] = types[ CHARACTER ];
  1165. X-     sprintf( types[ CHARACTER ], "CHARACTER=%c", *pl_character );
  1166. X- 
  1167. X-     ourtools[ i++ ] = types[ PENS ];
  1168. X-     strcpy( types[ PENS ], "PENS=" );
  1169. X- 
  1170. X-     /* Put in the pen colors... */
  1171. X-     for( j = 0; j < (1L << DEPTH); ++j )
  1172. X-     {
  1173. X-     sprintf( types[ PENS ] + strlen( types[ PENS ] ),
  1174. X-       "%03x,", flags.amii_curmap[ j ] );
  1175. X-     }
  1176. X- 
  1177. X-     /* Remove trailing comma */
  1178. X-     types[ PENS ][ strlen( types[ PENS ] ) - 1 ] = 0;
  1179. X- 
  1180. X-     ourtools[ i ] = NULL;
  1181. X- 
  1182. X-     /* Set the tools pointer to the temporary copy */
  1183. X- 
  1184. X-     dobj->do_ToolTypes = (void *)ourtools;
  1185. X-     PutDiskObject(base,dobj);
  1186. X- 
  1187. X-     /* Restore the pointer and free the structures */
  1188. X- 
  1189. X-     dobj->do_ToolTypes = (void *)savtp;
  1190. X-     FreeDiskObject(dobj);
  1191. X- #endif
  1192. X  }
  1193. X  
  1194. X  /* How much disk space will we need for the icon? */
  1195. X--- 349,373 ----
  1196. X  
  1197. X      strcpy(tmp,base);
  1198. X      strcat(tmp,".info");
  1199. X+ 
  1200. X+     /* Get the name of the icon */
  1201. X+     n = ami_default_icon( DEFAULT_ICON );
  1202. X      if(FromTool){               /* user clicked on main icon */
  1203. X!     (void)CopyFile( n, tmp );
  1204. X      } else {                /* from project */
  1205. X      lock=Lock(tmp,ACCESS_READ);
  1206. X      if(lock==0){    /* maybe our name changed - try to get
  1207. X!              * original icon */
  1208. X          if(!Rename(origicon,tmp)){
  1209. X          /* nope, build a new icon */
  1210. X!         lock=Lock( n, ACCESS_READ);
  1211. X          if(lock==0)return;      /* no icon today */
  1212. X          UnLock(lock);
  1213. X!         (void)CopyFile( n,tmp);
  1214. X          }
  1215. X      } else UnLock(lock);
  1216. X      }
  1217. X      KillIcon=FALSE;
  1218. X  }
  1219. X  
  1220. X  /* How much disk space will we need for the icon? */
  1221. X***************
  1222. X*** 414,420 ****
  1223. X      strcat(tmp,".info");
  1224. X      lock=Lock(tmp,ACCESS_READ);
  1225. X      if(lock==0){    /* check the default */
  1226. X!     lock=Lock(DEFAULT_ICON,ACCESS_READ);
  1227. X      if(lock==0)return(0);
  1228. X      }
  1229. X      fib = (struct FileInfoBlock *)AllocMem(ALLOC_SIZE, MEMF_CLEAR);
  1230. X--- 386,392 ----
  1231. X      strcat(tmp,".info");
  1232. X      lock=Lock(tmp,ACCESS_READ);
  1233. X      if(lock==0){    /* check the default */
  1234. X!     lock=Lock( ami_default_icon( DEFAULT_ICON ),ACCESS_READ);
  1235. X      if(lock==0)return(0);
  1236. X      }
  1237. X      fib = (struct FileInfoBlock *)AllocMem(ALLOC_SIZE, MEMF_CLEAR);
  1238. X***************
  1239. X*** 429,434 ****
  1240. X--- 401,422 ----
  1241. X      return(rv);
  1242. X  }
  1243. X  
  1244. X+ char *
  1245. X+ ami_default_icon( defname )
  1246. X+     char *defname;
  1247. X+ {
  1248. X+     long lock;
  1249. X+     static char name[ 300 ];
  1250. X+ 
  1251. X+     strcpy( name, "NetHack:x.icon" );
  1252. X+     name[ 8 ] = pl_character[ 0 ];
  1253. X+ 
  1254. X+     if( access( name, 0 ) == 0 )
  1255. X+         return( name );
  1256. X+ 
  1257. X+     return( defname );
  1258. X+ }
  1259. X+ 
  1260. X  /* Delete the icon associated with the given file (NOT the file itself! */
  1261. X  /* (Don't worry if the icon doesn't exist */
  1262. X  void ami_wbench_unlink(base)
  1263. X***************
  1264. X*** 447,455 ****
  1265. X--- 435,446 ----
  1266. X  
  1267. X  static int preserved=0;        /* wizard mode && saved save file */
  1268. X  
  1269. X+ void
  1270. X  preserve_icon(){
  1271. X      preserved=1;
  1272. X  }
  1273. X+ 
  1274. X+ void
  1275. X  clear_icon(){
  1276. X      if(!FromWBench)return;
  1277. X      if(FromCLI)return;
  1278. X***************
  1279. X*** 498,501 ****
  1280. X--- 489,519 ----
  1281. X      }
  1282. X      FreeMem(fib,ALLOC_SIZE);
  1283. X      return(-1);     /* give up */
  1284. X+ }
  1285. X+ 
  1286. X+ static void
  1287. X+ score(scorearg)
  1288. X+     char *scorearg;
  1289. X+         {
  1290. X+     long ac;
  1291. X+     char *p;
  1292. X+     char **av=calloc(1,50*sizeof(char *));
  1293. X+ 
  1294. X+ #ifdef CHDIR
  1295. X+     chdirx(hackdir,0);
  1296. X+ #endif
  1297. X+     av[0]="NetHack";            /* why not? */
  1298. X+     av[1]="-s";             /* why not? */
  1299. X+     av[2]=0;
  1300. X+     for(ac=2,p=scorearg;*p;ac++){
  1301. X+         av[ac]=p;av[ac+1]=0;
  1302. X+         while(*p && !isspace(*p))p++;
  1303. X+         if(!*p)break;
  1304. X+         *p++='\0';
  1305. X+         while(*p && isspace(*p))p++;
  1306. X+         /* *p='\0';    /* extra? */
  1307. X+     }
  1308. X+     prscore(ac+1,av);
  1309. X+     free( av );
  1310. X+     exit(0);        /* #defined to msexit() */
  1311. X  }
  1312. X*** /tmp/da11968    Tue Jun  1 17:01:16 1993
  1313. X--- sys/amiga/wbcli.c    Tue Jun  1 10:42:19 1993
  1314. X***************
  1315. X*** 11,17 ****
  1316. X   * interface; not #defining it supports (along with wb.c) the WB interface.
  1317. X   */
  1318. X  
  1319. X! #include "Incl:date.h"          /* this gives us the version string */
  1320. X  
  1321. X  #ifdef AZTEC_C
  1322. X  /* Aztec doesn't recognize __chip syntax */
  1323. X--- 11,18 ----
  1324. X   * interface; not #defining it supports (along with wb.c) the WB interface.
  1325. X   */
  1326. X  
  1327. X! /*#include "Incl:date.h"          /* this gives us the version string */
  1328. X! #include "Incl:patchlevel.h"    /* and the individual bits */
  1329. X  
  1330. X  #ifdef AZTEC_C
  1331. X  /* Aztec doesn't recognize __chip syntax */
  1332. X***************
  1333. X*** 52,57 ****
  1334. X--- 53,61 ----
  1335. X  #ifdef CLI
  1336. X  char *cnfsavedir="NetHack:save";    /* unless overridden in cnf file */
  1337. X  char argline[255];  /* no overflow - bigger than ADOS will pass */
  1338. X+ #ifdef for_later
  1339. X+ int amibbs=0;                /* BBS mode flag */
  1340. X+ #endif
  1341. X  
  1342. X  void WaitEOG(GPTR);
  1343. X  char *eos(char *);
  1344. X***************
  1345. X*** 63,69 ****
  1346. X  #else
  1347. X  extern char *options[NUMIDX+1];
  1348. X  extern GPTR gamehead,gameavail;
  1349. X- extern DEFAULTS defgame;
  1350. X  extern struct Window *win;
  1351. X  #endif  /* CLI */
  1352. X  
  1353. X--- 67,72 ----
  1354. X***************
  1355. X*** 123,148 ****
  1356. X      GPTR gptr;
  1357. X      BPTR lc,lc2;
  1358. X      struct FileInfoBlock finfo;
  1359. X!     char *name;
  1360. X      char namebuf[50];
  1361. X      char **argv=(char **)wbs;
  1362. X- #undef CMDLINE
  1363. X- #define CMDLINE
  1364. X- #ifdef CMDLINE
  1365. X      char newcmdline[80]="";
  1366. X      char forcenewcmd=0;
  1367. X- #endif
  1368. X  
  1369. X      ZapOptions( curopts );
  1370. X      InitWB( argc, (struct WBStartup *)argv );
  1371. X!     errmsg( NO_FLASH, "Welcome to NetHack Version 3.1.1!\n" );
  1372. X      CopyRight( );
  1373. X  
  1374. X      ReadConfig( );
  1375. X  
  1376. X!     /* Wait till user quits */
  1377. X  
  1378. X! #ifdef CMDLINE
  1379. X      {
  1380. X      int c;
  1381. X                  /* slow but easy - not a critical path */
  1382. X--- 126,155 ----
  1383. X      GPTR gptr;
  1384. X      BPTR lc,lc2;
  1385. X      struct FileInfoBlock finfo;
  1386. X!     char *name=0;
  1387. X      char namebuf[50];
  1388. X      char **argv=(char **)wbs;
  1389. X      char newcmdline[80]="";
  1390. X      char forcenewcmd=0;
  1391. X  
  1392. X      ZapOptions( curopts );
  1393. X      InitWB( argc, (struct WBStartup *)argv );
  1394. X!     errmsg( NO_FLASH, "Welcome to NetHack Version %d.%d.%d!\n",
  1395. X!       VERSION_MAJOR, VERSION_MINOR, PATCHLEVEL );
  1396. X      CopyRight( );
  1397. X  
  1398. X      ReadConfig( );
  1399. X  
  1400. X! #ifdef for_later
  1401. X!     /* check for BBS mode */
  1402. X!     if (argc>1 && argv[1][0]==':'){
  1403. X!     amibbs=1;
  1404. X!     strcpy(newcmdline,":");
  1405. X!     amibasename= &argv[1][1];
  1406. X!     }
  1407. X! #endif
  1408. X  
  1409. X!         /* check/re-assemble initial command line */
  1410. X      {
  1411. X      int c;
  1412. X                  /* slow but easy - not a critical path */
  1413. X***************
  1414. X*** 158,175 ****
  1415. X          }else{
  1416. X          name= &argv[c][2];
  1417. X          }
  1418. X      }
  1419. X      if(c<argc)strcpy(eos(newcmdline)," ");
  1420. X      }
  1421. X      eos(newcmdline)[-1]='\0';
  1422. X      strcpy(argline,newcmdline);
  1423. X-     if(!name){
  1424. X-     errmsg(NO_FLASH, "No name found.\n");
  1425. X-     argline[0]=' ';
  1426. X      }
  1427. X-     }
  1428. X- #endif
  1429. X  
  1430. X      while( !quit )
  1431. X      {
  1432. X      char tbuf[80];
  1433. X--- 165,183 ----
  1434. X          }else{
  1435. X          name= &argv[c][2];
  1436. X          }
  1437. X+         if(!name){
  1438. X+         errmsg(NO_FLASH, "No name found.\n");
  1439. X+         newcmdline[0]='\0';    /* don't leave -u as default */
  1440. X+         forcenewcmd=1;
  1441. X+         }
  1442. X      }
  1443. X      if(c<argc)strcpy(eos(newcmdline)," ");
  1444. X      }
  1445. X      eos(newcmdline)[-1]='\0';
  1446. X      strcpy(argline,newcmdline);
  1447. X      }
  1448. X  
  1449. X+     /* Wait till user quits */
  1450. X      while( !quit )
  1451. X      {
  1452. X      char tbuf[80];
  1453. X***************
  1454. X*** 177,210 ****
  1455. X      char *dirname=cnfsavedir;
  1456. X  /* play a game */
  1457. X  
  1458. X! #ifdef CMDLINE
  1459. X!     if(forcenewcmd)goto build_new_argline;    /* allow initial args to be
  1460. X!                          * wrong */
  1461. X! #endif
  1462. X! #ifndef CMDLINE
  1463. X!     {
  1464. X!         int c;
  1465. X!         argline[0]='\0';
  1466. X!         name="NewGame.info";        /* this will fail - it's in NetHack: */
  1467. X!         for(c=1;c<argc;c++){
  1468. X!         /* slow but easy - not a critical path */
  1469. X!         strcpy(eos(argline),argv[c]);
  1470. X!         if(!strncmp(argv[c],"-u",2)){
  1471. X!             if(!strcmp(argv[c],"-u")){
  1472. X!             name= argv[c+1];
  1473. X!             }else{
  1474. X!             name= &argv[c][2];
  1475. X!             }
  1476. X!         }
  1477. X!         if(c<argc)strcpy(eos(argline)," ");
  1478. X!         }
  1479. X!         eos(argline)[-1]='\0';
  1480. X!     }
  1481. X!     if(!name){
  1482. X!         errmsg(NO_FLASH,"No name found.\n");
  1483. X!         cleanup(1);
  1484. X!     }
  1485. X! #endif
  1486. X  #undef TESTCMDLINE
  1487. X  #ifdef TESTCMDLINE
  1488. X  __builtin_printf("sending '%s'\n",argline);
  1489. X--- 185,192 ----
  1490. X      char *dirname=cnfsavedir;
  1491. X  /* play a game */
  1492. X  
  1493. X!     if(forcenewcmd)
  1494. X!         goto build_new_argline;    /* allow initial args to be wrong */
  1495. X  #undef TESTCMDLINE
  1496. X  #ifdef TESTCMDLINE
  1497. X  __builtin_printf("sending '%s'\n",argline);
  1498. X***************
  1499. X*** 211,216 ****
  1500. X--- 193,199 ----
  1501. X  #else
  1502. X      strcpy(namebuf,cnfsavedir);
  1503. X      condaddslash(namebuf);
  1504. X+     if(!name)name="NewGame.info";
  1505. X      strcpy(eos(namebuf),name);
  1506. X      lc=Lock(namebuf,ACCESS_READ);
  1507. X      if(!lc){
  1508. X***************
  1509. X*** 239,272 ****
  1510. X      FreeGITEM(gptr);
  1511. X  #endif /* TESTCMDLINE */
  1512. X  /* ask about another? */
  1513. X- #ifndef CMDLINE
  1514. X-     printf("Play again? [yn] ");
  1515. X-     fgets(tbuf,sizeof(tbuf),stdin);
  1516. X-     while(*p && isspace(*p))p++;
  1517. X-     switch(*p){
  1518. X-     case 'n':
  1519. X-     case 'N':
  1520. X-         quit=1;
  1521. X-     }
  1522. X- #else
  1523. X  build_new_argline:
  1524. X      forcenewcmd=0;
  1525. X      {
  1526. X! #define NBA    *stpblk(argline)    /* non-blank argline */
  1527. X!     printf("Enter options for next game %s%s%s(space return to clear) ",
  1528. X!         NBA?"(default ":"" ,
  1529. X!         NBA?argline:"" ,
  1530. X!         NBA?")\n":"");
  1531. X!     printf("or Q to quit: ");
  1532. X      fgets(tbuf,sizeof(tbuf),stdin);
  1533. X      tbuf[strlen(tbuf)-1]='\0';        /* kill \n */
  1534. X      if(strlen(tbuf)==1 && (*p=='q' || *p=='Q')){
  1535. X          quit=1;
  1536. X!     } else
  1537. X          if(strlen(tbuf))strcpy(argline,tbuf);
  1538. X      }
  1539. X- #undef NBA
  1540. X- #endif
  1541. X      }
  1542. X      cleanup(0);
  1543. X  }
  1544. X--- 222,251 ----
  1545. X      FreeGITEM(gptr);
  1546. X  #endif /* TESTCMDLINE */
  1547. X  /* ask about another? */
  1548. X  build_new_argline:
  1549. X      forcenewcmd=0;
  1550. X+ #ifdef for_later
  1551. X+     if(amibbs) {
  1552. X+         quit = 1;        /* bbs mode aborts after one game */
  1553. X+     } else
  1554. X+ #endif
  1555. X      {
  1556. X!     char *x=argline;
  1557. X!     while(isspace(*x))x++;
  1558. X!     if(*x){            /* non-blank argline */
  1559. X!         printf("%s %s %s",
  1560. X!           "Enter options for next game.  Default:\n\t", argline,
  1561. X!           "\n(space return to clear) or Q to quit:\n");
  1562. X!     } else {
  1563. X!         printf("Enter options for next game or Q to quit:\n");
  1564. X!     }
  1565. X      fgets(tbuf,sizeof(tbuf),stdin);
  1566. X      tbuf[strlen(tbuf)-1]='\0';        /* kill \n */
  1567. X      if(strlen(tbuf)==1 && (*p=='q' || *p=='Q')){
  1568. X          quit=1;
  1569. X!         } else
  1570. X          if(strlen(tbuf))strcpy(argline,tbuf);
  1571. X      }
  1572. X      }
  1573. X      cleanup(0);
  1574. X  }
  1575. X***************
  1576. X*** 343,348 ****
  1577. X--- 322,328 ----
  1578. X      int argc;
  1579. X      register struct WBStartup *wbs;
  1580. X  {
  1581. X+     char **argv=(char **)wbs;
  1582. X  
  1583. X      /* Open Libraries */
  1584. X      GfxBase= (struct GfxBase *) OldOpenLibrary("graphics.library");
  1585. X***************
  1586. X*** 371,376 ****
  1587. X--- 351,388 ----
  1588. X      Delay(400);
  1589. X      cleanup(1);
  1590. X      }
  1591. X+ /* we should include hack.h but due to conflicting options to sc
  1592. X+  * we can't parse tradstdc.h and clib/graphics_protos.h - fake it
  1593. X+  */
  1594. X+ #define NEWS
  1595. X+ #define WIZARD
  1596. X+     if (argc>1 && argv[1][0]=='?'){
  1597. X+         (void) printf(
  1598. X+ "\nUsage:\n %s [:uname] [-d dir] -s [-[%s]] [maxrank] [name]...",
  1599. X+         argv[0], classes);
  1600. X+         (void) printf("\n or");
  1601. X+         (void) printf("\n %s [-d dir] [-u name] [-[%s]]",
  1602. X+         argv[0], classes);
  1603. X+ #if defined(WIZARD) || defined(EXPLORE_MODE)
  1604. X+         (void) printf(" [-[DX]]");
  1605. X+ #endif
  1606. X+ #ifdef NEWS
  1607. X+         (void) printf(" [-n]");
  1608. X+ #endif
  1609. X+ #ifndef AMIGA
  1610. X+         (void) printf(" [-I] [-i] [-d]");
  1611. X+ #endif
  1612. X+ #ifdef MFLOPPY
  1613. X+ # ifndef AMIGA
  1614. X+         (void) printf(" [-r]");
  1615. X+ # endif
  1616. X+ #endif
  1617. X+ #ifdef AMIGA
  1618. X+         (void) printf(" [-[lL]]");
  1619. X+ #endif
  1620. X+         putchar('\n');
  1621. X+         cleanup(1);
  1622. X+     }
  1623. X  }
  1624. X  
  1625. X  /* CLI */
  1626. X***************
  1627. X*** 482,488 ****
  1628. X      }
  1629. X  
  1630. X      /* Set the game name for the status command */
  1631. X!     sprintf( gptr->gname, "NetHack 3.1.1 %s", gptr->name );
  1632. X  
  1633. X      /* Create a process for the game to execute in */
  1634. X      ctask = FindTask( NULL );
  1635. X--- 494,501 ----
  1636. X      }
  1637. X  
  1638. X      /* Set the game name for the status command */
  1639. X!     sprintf( gptr->gname, "NetHack %d.%d.%d %s",
  1640. X!       VERSION_MAJOR, VERSION_MINOR, PATCHLEVEL, gptr->name );
  1641. X  
  1642. X      /* Create a process for the game to execute in */
  1643. X      ctask = FindTask( NULL );
  1644. X***************
  1645. X*** 518,524 ****
  1646. X      gptr->wbs->sm_Process = proc;
  1647. X      gptr->wbs->sm_Segment = gptr->seglist;
  1648. X      gptr->wbs->sm_NumArgs = 2;
  1649. X!     gptr->wbs->sm_ToolWindow = "con:0/0/100/300/NetHack 3.1.1";
  1650. X      gptr->wbs->sm_ArgList = gptr->wba;
  1651. X  
  1652. X      /* Fill in the args */
  1653. X--- 531,542 ----
  1654. X      gptr->wbs->sm_Process = proc;
  1655. X      gptr->wbs->sm_Segment = gptr->seglist;
  1656. X      gptr->wbs->sm_NumArgs = 2;
  1657. X!     {
  1658. X!     static char title[45];    /* some slack */
  1659. X!     sprintf(title,"con:0/0/100/300/NetHack %d.%d.%d",
  1660. X!       VERSION_MAJOR, VERSION_MINOR, PATCHLEVEL);
  1661. X!     gptr->wbs->sm_ToolWindow = title;
  1662. X!     }
  1663. X      gptr->wbs->sm_ArgList = gptr->wba;
  1664. X  
  1665. X      /* Fill in the args */
  1666. X***************
  1667. X*** 628,642 ****
  1668. X  menu_copyopt()
  1669. X  {
  1670. X      GPTR gptr;
  1671. X!     char newname[ 100 ], oldname[ 100 ], cmd[ 200 ];
  1672. X  
  1673. X      if( ( gptr = NeedGame() ) == NULL )
  1674. X      return;
  1675. X  
  1676. X!     if( StrRequest( "Enter new player name", newname, gptr->fname ) == 0 )
  1677. X      return;
  1678. X  
  1679. X!     if( strcmp( newname, gptr->fname ) == 0 )
  1680. X      {
  1681. X      errmsg( FLASH, "Copying aborted, new name same as old" );
  1682. X      return;
  1683. X--- 646,660 ----
  1684. X  menu_copyopt()
  1685. X  {
  1686. X      GPTR gptr;
  1687. X!     char newname[ 100 ], oldname[ 100 ], cmd[ 300 ], dir[ 100 ];
  1688. X  
  1689. X      if( ( gptr = NeedGame() ) == NULL )
  1690. X      return;
  1691. X  
  1692. X!     if( StrRequest( "Enter new player name", newname, gptr->name ) == 0 )
  1693. X      return;
  1694. X  
  1695. X!     if( strcmp( newname, gptr->name ) == 0 )
  1696. X      {
  1697. X      errmsg( FLASH, "Copying aborted, new name same as old" );
  1698. X      return;
  1699. X***************
  1700. X*** 643,651 ****
  1701. X      }
  1702. X  
  1703. X      strcpy( oldname, GameName( gptr, NULL ) );
  1704. X-     strcpy( newname, GameName( gptr, newname ) );
  1705. X  
  1706. X!     sprintf( cmd, "c:copy \"%s\" \"%s\"", oldname, newname );
  1707. X      Execute( cmd, NULL, NULL );
  1708. X      MapGadgets( R_DISK, 1 );
  1709. X  }
  1710. X--- 661,674 ----
  1711. X      }
  1712. X  
  1713. X      strcpy( oldname, GameName( gptr, NULL ) );
  1714. X  
  1715. X!     strcpy( dir, options[ SAVE_IDX ] );
  1716. X!     if( strchr( "/:", dir[strlen(dir)-1] ) == 0 && *dir )
  1717. X!     strcat( dir, "/" );
  1718. X!     if( gptr->dobj->do_Gadget.GadgetID == GADNEWGAME )
  1719. X!     sprintf( cmd, "c:copy \"%s\" \"%s%s.cfg.info\"", oldname, dir, newname );
  1720. X!     else
  1721. X!     sprintf( cmd, "c:copy \"%s\" \"%s%s.info\"", oldname, dir, newname );
  1722. X      Execute( cmd, NULL, NULL );
  1723. X      MapGadgets( R_DISK, 1 );
  1724. X  }
  1725. X***************
  1726. X*** 752,757 ****
  1727. X--- 775,800 ----
  1728. X      Permit();
  1729. X  }
  1730. X  
  1731. X+ void RemoveGITEM( ggptr )
  1732. X+     register GPTR ggptr;
  1733. X+ {
  1734. X+     register GPTR gptr, pgptr = NULL;
  1735. X+ 
  1736. X+     for( gptr = gamehead; gptr; pgptr = gptr, gptr = gptr->next )
  1737. X+     {
  1738. X+     if( gptr == ggptr )
  1739. X+     {
  1740. X+         if( pgptr )
  1741. X+         pgptr->next = gptr->next;
  1742. X+         else
  1743. X+         gamehead = gptr->next;
  1744. X+         FreeGITEM( gptr );
  1745. X+         return;
  1746. X+     }
  1747. X+     }
  1748. X+ }
  1749. X+ 
  1750. X+ 
  1751. X  #else   /* CLI */
  1752. X  
  1753. X  void CloseLibraries( )
  1754. X***************
  1755. X*** 975,981 ****
  1756. X      }
  1757. X  
  1758. X      /* Add the scores entry */
  1759. X!         SetToolLine( gptr, "SCORES", *buf1 ? buf1 : "all" );
  1760. X  
  1761. X      /* Get the scores */
  1762. X      run_game( gptr );
  1763. X--- 1018,1024 ----
  1764. X      }
  1765. X  
  1766. X      /* Add the scores entry */
  1767. X!     SetToolLine( gptr, "SCORES", *buf1 ? buf1 : "all" );
  1768. X  
  1769. X      /* Get the scores */
  1770. X      run_game( gptr );
  1771. X***************
  1772. X*** 1033,1040 ****
  1773. X      char *str;
  1774. X      register GPTR gptr;
  1775. X  {
  1776. X-     if( gptr->dobj->do_Gadget.GadgetID == GADNEWGAME )
  1777. X-     return( 1 );
  1778. X      if( strncmp( str, "CHARACTER=", 10 ) == 0 )
  1779. X      return( 0 );
  1780. X      return( 1 );
  1781. X--- 1076,1081 ----
  1782. X***************
  1783. X*** 1408,1414 ****
  1784. X      sp[1] = gd->Height - 1;
  1785. X      sp[2] = -1;
  1786. X      sp[3] = -1;
  1787. X!     sp[4] = gd->Width - 1;
  1788. X      sp[5] = -1;
  1789. X  
  1790. X      sp[6] = gd->Width + 1;
  1791. X--- 1449,1455 ----
  1792. X      sp[1] = gd->Height - 1;
  1793. X      sp[2] = -1;
  1794. X      sp[3] = -1;
  1795. X!     sp[4] = gd->Width-1;
  1796. X      sp[5] = -1;
  1797. X  
  1798. X      sp[6] = gd->Width + 1;
  1799. X***************
  1800. X*** 1576,1598 ****
  1801. X      OPTR optr;
  1802. X      GPTR gptr;
  1803. X  {
  1804. X!     char **sp;
  1805. X  
  1806. X!     for( sp = gptr->dobj->do_ToolTypes; *sp; ++sp )
  1807. X!     {
  1808. X!     if( strnicmp( *sp, "options=", 8 ) == 0 )
  1809. X!     {
  1810. X!         break;
  1811. X!     }
  1812. X!     }
  1813. X! 
  1814. X!     if( *sp == NULL )
  1815. X!     {
  1816. X!     errmsg( NO_FLASH, "Options not set for %s", gptr->name );
  1817. X!     return;
  1818. X!     }
  1819. X! 
  1820. X!     CopyOptionStr( optr, *sp + 8 );
  1821. X  }
  1822. X  
  1823. X  /* !CLI */
  1824. X--- 1617,1628 ----
  1825. X      OPTR optr;
  1826. X      GPTR gptr;
  1827. X  {
  1828. X!     char *sp;
  1829. X  
  1830. X!     sp = ToolsEntry( gptr, "OPTIONS" );
  1831. X!     ZapOptions( optr );
  1832. X!     if( sp && *sp )
  1833. X!     CopyOptionStr( optr, sp );
  1834. X  }
  1835. X  
  1836. X  /* !CLI */
  1837. X***************
  1838. X*** 1658,1664 ****
  1839. X      }
  1840. X  
  1841. X      /* If at end of string or comma and we have some text... */
  1842. X!     if( !*t || *t == ',' && *buf )
  1843. X      {
  1844. X          /* Mark end */
  1845. X          *s = 0;
  1846. X--- 1688,1694 ----
  1847. X      }
  1848. X  
  1849. X      /* If at end of string or comma and we have some text... */
  1850. X!     if( ( !*t || *t == ',' ) && *buf )
  1851. X      {
  1852. X          /* Mark end */
  1853. X          *s = 0;
  1854. X***************
  1855. X*** 1732,1738 ****
  1856. X  {
  1857. X      PutOptions( optr );
  1858. X      SetToolLine( gptr, "OPTIONS", options[ OPTIONS_IDX ] );
  1859. X-     UpdateGameIcon( gptr );
  1860. X  }
  1861. X  
  1862. X  void
  1863. X--- 1762,1767 ----
  1864. X***************
  1865. X*** 1773,1789 ****
  1866. X   * later to clean up whatever "GetDiskObject" allocated.
  1867. X   */
  1868. X  void ReallocTools( gptr, add )
  1869. X!     GPTR gptr;
  1870. X!     int add;
  1871. X  {
  1872. X!     int i, cnt;
  1873. X!     char **sp, **tp;
  1874. X  
  1875. X      for( cnt = 0, tp = gptr->dobj->do_ToolTypes; tp && *tp ; ++tp )
  1876. X      ++cnt;
  1877. X  
  1878. X!     if( !tp )
  1879. X      {
  1880. X      /* If no tooltypes array, fudge something to start with */
  1881. X      if( sp = xmalloc( 2 * sizeof( char * ) ) )
  1882. X      {
  1883. X--- 1802,1824 ----
  1884. X   * later to clean up whatever "GetDiskObject" allocated.
  1885. X   */
  1886. X  void ReallocTools( gptr, add )
  1887. X!     register GPTR gptr;
  1888. X!     register int add;
  1889. X  {
  1890. X!     register int i, cnt;
  1891. X!     register char **sp, **tp;
  1892. X  
  1893. X+     /* Already allocated */
  1894. X+     if( gptr->talloc && add == 0 )
  1895. X+         return;
  1896. X+ 
  1897. X      for( cnt = 0, tp = gptr->dobj->do_ToolTypes; tp && *tp ; ++tp )
  1898. X      ++cnt;
  1899. X  
  1900. X!     if( !tp || cnt == 0 )
  1901. X      {
  1902. X+     if( gptr->talloc )
  1903. X+         free( gptr->dobj->do_ToolTypes );
  1904. X      /* If no tooltypes array, fudge something to start with */
  1905. X      if( sp = xmalloc( 2 * sizeof( char * ) ) )
  1906. X      {
  1907. X***************
  1908. X*** 1799,1807 ****
  1909. X          sp[i++] = strdup( *tp );
  1910. X      }
  1911. X  
  1912. X!     sp[i] = NULL;
  1913. X      }
  1914. X!     gptr->otools = gptr->dobj->do_ToolTypes;
  1915. X      gptr->dobj->do_ToolTypes = sp;
  1916. X      gptr->toolcnt = cnt + 1;
  1917. X      gptr->talloc = 1;
  1918. X--- 1834,1846 ----
  1919. X          sp[i++] = strdup( *tp );
  1920. X      }
  1921. X  
  1922. X!     if( gptr->talloc && gptr->dobj->do_ToolTypes )
  1923. X!         free( gptr->dobj->do_ToolTypes );
  1924. X!     while( i < cnt+add+1 )
  1925. X!         sp[ i++ ] = NULL;
  1926. X      }
  1927. X!     if( ! gptr->talloc )
  1928. X!     gptr->otools = gptr->dobj->do_ToolTypes;
  1929. X      gptr->dobj->do_ToolTypes = sp;
  1930. X      gptr->toolcnt = cnt + 1;
  1931. X      gptr->talloc = 1;
  1932. X***************
  1933. X*** 1808,1817 ****
  1934. X  }
  1935. X  
  1936. X  void FreeTools( gptr )
  1937. X!     GPTR gptr;
  1938. X  {
  1939. X!     int i;
  1940. X!     char **sp;
  1941. X  
  1942. X      if( !gptr->talloc )
  1943. X      return;
  1944. X--- 1847,1856 ----
  1945. X  }
  1946. X  
  1947. X  void FreeTools( gptr )
  1948. X!     register GPTR gptr;
  1949. X  {
  1950. X!     register int i;
  1951. X!     register char **sp;
  1952. X  
  1953. X      if( !gptr->talloc )
  1954. X      return;
  1955. X***************
  1956. X*** 1835,1842 ****
  1957. X  
  1958. X      /* Realloc ToolTypes to be in memory we know how to manage */
  1959. X  
  1960. X!     if( gptr->talloc == 0 )
  1961. X!     ReallocTools( gptr, 0 );
  1962. X  
  1963. X      sp = gptr->dobj->do_ToolTypes;
  1964. X      len = strlen( name );
  1965. X--- 1874,1880 ----
  1966. X  
  1967. X      /* Realloc ToolTypes to be in memory we know how to manage */
  1968. X  
  1969. X!     ReallocTools( gptr, 0 );
  1970. X  
  1971. X      sp = gptr->dobj->do_ToolTypes;
  1972. X      len = strlen( name );
  1973. X*** /tmp/da12128    Tue Jun  1 17:02:15 1993
  1974. X--- sys/amiga/splitter/loader.c    Thu May 20 15:41:48 1993
  1975. X***************
  1976. X*** 276,282 ****
  1977. X--- 276,284 ----
  1978. X      {
  1979. X          ULONG *p=where;        /* clear memory block */
  1980. X          ULONG c=(where[-2]/4)-1;    /* (len includes ptr) */
  1981. X+ #if 0            /* don't ship enabled - Gigamem returns 0 */
  1982. X          if(!TypeOfMem(p))spanic("clearing bogus memory");
  1983. X+ #endif
  1984. X          while(c--)*p++=0;    /* not memset - use longs for speed */
  1985. X      }
  1986. X  
  1987. END_OF_FILE
  1988. if test 54276 -ne `wc -c <'patches02k'`; then
  1989.     echo shar: \"'patches02k'\" unpacked with wrong size!
  1990. fi
  1991. # end of 'patches02k'
  1992. if test -f 'sys/mac/mrecover.hqx' -a "${1}" != "-c" ; then 
  1993.   echo shar: Renaming existing file \"'sys/mac/mrecover.hqx'\" to \"'sys/mac/mrecover.hqx.orig'\"
  1994.   mv -f 'sys/mac/mrecover.hqx' 'sys/mac/mrecover.hqx.orig'
  1995. fi
  1996. echo shar: Extracting \"'sys/mac/mrecover.hqx'\" \(4001 characters\)
  1997. sed "s/^X//" >'sys/mac/mrecover.hqx' <<'END_OF_FILE'
  1998. X(This file must be converted with BinHex 4.0)
  1999. X
  2000. X:%QebC@0[GQ9b,R"bEfSZFR0bB`"bFh*M8P0&4!#3#!ar&9d!N!3"!*!$#S!!!!Q
  2001. X!!!!"r`!!Bk-+B80XDfPZDA3ZBi!#!*!$9%9B9%Y"5%`"!!!`$febC@0[GQ9b,VN
  2002. XZFR0bB`)!N!0bFh*M8P0&4!%!!$3!!(*cFQ058d9%!3!!0!#3"%qm!*!-CKDRXp9
  2003. XM!*!'$(m!N!J3!*!$Bk-+B80XDfa[Eh!ZBi!#!*!$9%9B9%Y"5%`"!!"J!'`!N!4
  2004. XMU`#3"&Le!!"F!*!,SqX*YD8(Z%F!N!4hD3#3%$e9!"F!N"dL!!%!N!8i!'i!6!$
  2005. XQ"!*25`#3"3S!#J!U!8U)!Pi`!*!$$!!S!#J!JJ&m!)!!"!#3!``!+!!S!-)"I!#
  2006. X"!!3!N!0)!))!N!MrN!2l"%9NDA3%9@jNE`"D!!!",3#3"!0$GA3!@!!!"%0[F(N
  2007. X!3`!!"9"KFh4P!&B!!!9$E'9KFJ#3#$J!J!#3#2q3!rF"&"""BQpeG#"5C@0[GQ9
  2008. Xb,T!$!*!%"dKPE(!ZN!-!N!3",3#3#%3!!!2!!X!$`!'!!m!--!J3%#J35"H)%!J
  2009. X)%!``!m!!!!2!"q!(i!IJ!m!2m"ri(rJrr$rm2r`rr"ri(rJ2m!2!!!N!"`#3!d!
  2010. X'J!l!CZ!hB"r!6mcq%[mUkG6XL#N3-V!&@!5-!`3!!"r!Ir"rq2rmrrlrr[q3#(r
  2011. XrIrmrrarq$ri$q!#3!aaZD&*M!*!$!8C548B!N!@!5801)`#3"B!!N!-(39"36!#
  2012. X3"K364'&fD@3J5'&TFR0dEfiJ-bmj-`!!!3#3"Km!N!0r`!!JIm!!1$q`!"3rF!!
  2013. X512J!#6Gi!!6rH!!#IlJ!!6ri!''Iq!$rc$$Jrq3"-1lb!T!!kIN&82IPLU$[ip9
  2014. X!6Z%LJ!(Jb3!2m))!$r%N!!I#LJ!!"9N!!!UNJ!!93N!!%S&J!"N!d!!1!&!!N!-
  2015. X`!*!)$rm!!$rr`!"rrr!!Irri!2rrr!$rrri!rj!$!2q3!i$rN!2!rj!$i2q3!r$
  2016. XrN!2irj!$r2q3!rcrN!2qrj!$r[q3"(rrN!0rrj!$2rq3!crrN!-Irj!$$rq3!`I
  2017. XrN!-$rj!$!Iq3!`$rN!-!Irrr!$rrrJ!Irri!"rrm!!(rm!!!!J#3&[q3!`#3$!m
  2018. X4N!2r!*!)m!!!$a'3!am!N!Mrm!!!m4%4(rm!N!F2h`!!m4%4m4m!N!F2hI!!m4r
  2019. Xr%4(`!*!(rGm!mI%4m4(`!*!($phr%C!$m4(`!*!)rGm4N!-I%I!!N!J2hI%4N!6
  2020. X`!*!&$r!!$rhI%Irr%I!!N!Aa(rra(phr!!$r!!$rm!!!m4'3"2hI!*!%$d6r!!$
  2021. Xa(a%I%4rGm!#3!r6d6`!!m4mIm4(rrGm!!!p2N!-!!2%4m4%4m!r3m!$dN!2`!!$
  2022. Xa(a'3!r!!m!m26j!$!*!$$rm4(a(`!!rGp%6dm!#3"!rrm4(`!!$r4242!*!&$a'
  2023. X3!am!!24%42!!N!82m4%4(`!24242!*!($rrrm!$dp%6pm!#3#Jp2N!2ph`#3#[5
  2024. X3!r!2hI!!N!J26j!$!!$ph`#3#!p%p2!!!!r3m!#3"`rd6`#3"2$I!*!)rr!!N!3
  2025. X2h`#3$rm!N#@!!!!2rr!!N!Aa(am!N!-0d!mI%I!!N!2G$a(am!#3!`hI%4m!N!-
  2026. X2!0hrr`$r!2(rrG!!$d6`m4%Ih3$dp2$a(am0hdp2!2rr(`$d42!!N!2`$d42!*!
  2027. X&p26p!*!%$dp2$G!!N!-242!!h3#3"2m!!!d!N!`J"S!1`'EJ0f!I`%r-rK,r+ZR
  2028. X8l)JT%$+`"9J%M!-%!*!&pJ!"!*!&H!"Z!)`!jJ3#6dX!N!8+!!S!DJ&+L08a+5"
  2029. X6C@aPBh3J)Np`C@iZN!-L)'CbEfdJG'KP)%CTE'8JE@9ZG5i0-LNJ8f9XC@0d)(4
  2030. XSC5"RB@eP)(4[)(*PBfpfCA)JCR*[E5"dD'8JC'PKE'pR,Jdc+5"AB@Pd)'C[FL"
  2031. XdD'8JFQ9cG@ad)#K25b"[FL"6Eh*bH5NZ$3e%Eb"ZEh3JBA4dC@e`G#"dEb"bC@0
  2032. X[GQ9b)'%JCf&YC5"dD'&d)'Pc)#*TEL"`FQpRFQ9cFb)J+'NZC5iJFh4TE'`JFR9
  2033. XZEQPZCb"TEL"1CA4)B@0V+5%!N!4!!a'!!*!$!c-Z-695C@0[GQ9b)$-Z-5#3"#J
  2034. Xc,cNc+3eZCA4SB@0V,@*eCh0!E'PZBbjMDA-ZGA"PEQiZC@4e!*!$)!-4J!#3!`-
  2035. Xc,M%98Q9MEhCPFL!c,M%JN!3S-bmj-bN!N!0#!)%!N!MrN!2V"%CTE'8(6h"PELk
  2036. X3!`"2!!!",3#3"!K$E'pcC5"%33"A!!!",3#3"!44G@Pd!&%!N!B8!*!$"!!!J!#
  2037. X3!c!!N!-3!*!$3!#3"%)%8(*TGNCA8N3(3faPB@jeF%4A8N3(8(*PC@e`G%4-6NF
  2038. X(9f&bEQPZCd4-6NF&3@*[FR4%6%j("NP2)%*eCN4-6NF!N!0%!!!$`!0!!m!"J!'
  2039. X!!N!%B!3J"'!&S!3J"'!#3!'!!!!$`!IJ"q!(i!2!!m!(i!r`$r!2m!r`$r!2m!I
  2040. XJ!m!"J!!*!!F!N!0%!!!$`!,!!m!"J!'!!N!$`!*!"m!'3!2!!N!$`!'!!!!$`!I
  2041. XJ"q!(i!2!!m!(i!IJ"q!2i!rJ"q!(i!IJ!m!"J!!*!!F!N!-G!#J!+!"!!8!!"!#
  2042. X3#!%!#&"bEfGbCA0c!*!$%!#3"`F!#`!4!3f!!*!%4!!!!m!$3!2!!B!"J!*!"Q!
  2043. X%)!CJ"D!')!4J!d!"J!!!!m!(i!IJ"q!$`!2!"q!2m!r`$r!2m!r`$r!(i!2!!B!
  2044. X!#3!(!*!$4!!!!m!$3!2!!B!"J!0!"L!&B!8J"@!&)!9J!N!"J!!!!m!(i!IJ"q!
  2045. X$`!2!"q!2m!r`$r!2m!r`$r!(i!2!!B!!#3!(!*!$4!!!!m!#`!2!!B!"J!*!!m!
  2046. X#3!2J!Q!$`!*!!m!"J!!!!m!(i!IJ"q!$`!2!"q!(i!IJ"r!(m!IJ"q!(i!2!!B!
  2047. X!#3!(!*!$4!!!!m!#`!2!!B!$J!q3!!`3'CJCQ"QB'CJ*N!!-%!2!!!!$`!IJ"q!
  2048. X(i!2!$r!Iq"ri2r`rr$rm2r`Iq"ri$r!$`!!*!!F!N!0%!!!$`!0!!m!"J!'!!m!
  2049. X&)!DJ"+!'S!5J"U!$3!'!!!!$`!IJ"q!(i!2!!m!(i!r`$r!2m!r`$r!2m!IJ!m!
  2050. X"J!!*!!F!!!%!N!-+J!!!#B!!!!(r!"[mX!4U!*!$(!(k!!p"6&*8!!%!JN4*9%`
  2051. X!!J#D689193!#!,j$99*6!!F!iNP$6L-!!!&#D@0c)`!!!8j#6N4-!!!"@QjS8Q-
  2052. X!!!&Q4P*&4J!!!A*fCA*c!!%"IQPME$3!!!'@D@0c0!!!!D*65801!!!"VQePE8)
  2053. X!!!'k9%e36!!!!FC%6%p(!!!"dJ#!rrm!N!-Q!"[lI!#"rrm!N!-f!"[lH!#!rrm
  2054. XJ!*!%'rZ3!!#"rrmJ!!90!"[lP!%!rrmJ!!J%!"[ke!##rrm!N!0'!"[lC!#!rrm
  2055. X!N!15!"[l@!#"rrm!!!D[!"[l5!#!rrm8!!$1!"[lY!#"rrm8!!G6!"[lF!##rrm
  2056. X8!!HE!"[lG!#(rrm8!!JB!"[lT!#&rrm8!!KJ!"[kI!#'rrm8!!LS!"[lS!#%rrm
  2057. X8!!M`!"[lR!#$rrm8!!Ni!"[l(!#!rrm!!!'G!"[kN!!!J2rr!!!"&J!Eql!!J2r
  2058. Xr!!!"@J!Eqf`!!2rr!!!"K3!Er-!!J2rr!!!"HJ!Eqi3!!Irr!!!'4`!Eqc!!![r
  2059. Xr!!!'L`!Er'!!J2rr!!!#S3!Eqi`!J2rr!!!%T3!Eqe`!J2rr!!!&+3!Eqe!!J2r
  2060. Xr&!!'p3!Eqf!!J!#3"!F0!"[l2!%!rrm!!!IM!"[QP!4YC@e#,TN:
  2061. END_OF_FILE
  2062. if test 4001 -ne `wc -c <'sys/mac/mrecover.hqx'`; then
  2063.     echo shar: \"'sys/mac/mrecover.hqx'\" unpacked with wrong size!
  2064. fi
  2065. # end of 'sys/mac/mrecover.hqx'
  2066. echo shar: End of archive 17 \(of 33\).
  2067. cp /dev/null ark17isdone
  2068. MISSING=""
  2069. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ; do
  2070.     if test ! -f ark${I}isdone ; then
  2071.     MISSING="${MISSING} ${I}"
  2072.     fi
  2073. done
  2074. if test "${MISSING}" = "" ; then
  2075.     echo You have unpacked all 33 archives.
  2076.     echo "Now execute ./patchit.sh"
  2077.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2078. else
  2079.     echo You still need to unpack the following archives:
  2080.     echo "        " ${MISSING}
  2081. fi
  2082. ##  End of shell archive.
  2083. exit 0
  2084.