home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume16 / nethack31 / part100 < prev    next >
Internet Message Format  |  1993-02-06  |  60KB

  1. Path: uunet!news.tek.com!master!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v16i108:  nethack31 - display oriented dungeons & dragons (Ver. 3.1), Part100/108
  5. Message-ID: <4473@master.CNA.TEK.COM>
  6. Date: 5 Feb 93 22:03:29 GMT
  7. Sender: news@master.CNA.TEK.COM
  8. Lines: 1573
  9. Approved: billr@saab.CNA.TEK.COM
  10. Xref: uunet comp.sources.games:1659
  11.  
  12. Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
  13. Posting-number: Volume 16, Issue 108
  14. Archive-name: nethack31/Part100
  15. Supersedes: nethack3p9: Volume 10, Issue 46-108
  16. Environment: Amiga, Atari, Mac, MS-DOS, OS2, Unix, VMS, X11
  17.  
  18.  
  19.  
  20. #! /bin/sh
  21. # This is a shell archive.  Remove anything before this line, then unpack
  22. # it by saving it into a file and typing "sh file".  To overwrite existing
  23. # files, type "sh file -c".  You can also feed this as standard input via
  24. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  25. # will see the following message at the end:
  26. #        "End of archive 100 (of 108)."
  27. # Contents:  dat/opthelp doc/nethack.6 include/mondata.h include/you.h
  28. #   sys/amiga/NewGame.uu sys/amiga/colorwin.c sys/unix/Makefile.utl
  29. #   sys/vms/install.com win/X11/Install.X11
  30. # Wrapped by billr@saab on Wed Jan 27 16:09:29 1993
  31. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  32. if test -f 'dat/opthelp' -a "${1}" != "-c" ; then 
  33.   echo shar: Will not clobber existing file \"'dat/opthelp'\"
  34. else
  35. echo shar: Extracting \"'dat/opthelp'\" \(6596 characters\)
  36. sed "s/^X//" >'dat/opthelp' <<'END_OF_FILE'
  37. XBoolean options available in all versions (with default values in []):
  38. X
  39. Xconfirm        ask before hitting tame or peaceful monsters       [TRUE]
  40. XDECgraphics    use DEC/VT line-drawing characters for the dungeon [FALSE]
  41. Xdisclose       offer information at the end of the game           [TRUE]
  42. X(fe)male       sex of the player (may only be set on startup)     [MALE]
  43. Xfixinv         try to retain the same letter for the same object  [TRUE]
  44. Xhelp           print all available info when using the / command  [TRUE]
  45. XIBMgraphics    use IBM extended characters for the dungeon        [FALSE]
  46. Xignintr        ignore interrupt signal, including breaks          [FALSE]
  47. Xlegacy         print introductory message                         [TRUE]
  48. Xlit_corridor   show a dark corridor as lit if in sight            [FALSE]
  49. Xnull           allow nulls to be sent to your terminal            [TRUE]
  50. X               try turning this option off (forcing NetHack to use its own
  51. X               delay code) if moving objects seem to teleport across rooms
  52. Xnumber_pad     use the number keys to move instead of yuhjklbn    [FALSE]
  53. Xpickup         automatically pick up objects you move over        [TRUE]
  54. Xrest_on_space  count the space bar as a rest character            [FALSE]
  55. Xsafe_pet       prevent you from (knowingly) attacking your pet(s) [TRUE]
  56. Xsilent         don't use your terminal's bell sound               [TRUE]
  57. Xsortpack       group similar kinds of objects in inventory        [TRUE]
  58. Xstandout       use standout mode for --More-- on messages         [FALSE]
  59. Xtime           display elapsed game time, in moves                [FALSE]
  60. Xtombstone      print tombstone when you die                       [TRUE]
  61. Xverbose        print more commentary during the game              [TRUE]
  62. X
  63. X
  64. XThere are further boolean options that exist in some versions of NetHack
  65. X3.1.  (You can learn which options exist in your version by checking your
  66. Xcurrent option setting, which is reached via the 'O' cmd.)
  67. X
  68. XBoolean option if INSURANCE was set at compile time:
  69. Xcheckpoint save game state after each level change, for possible  [TRUE]
  70. X           recovery after program crash
  71. X
  72. XBoolean option if NEWS was set at compile time:
  73. Xnews       print any news from game administrator on startup      [TRUE]
  74. X
  75. XBoolean options if DGK was set at compile time:
  76. XBIOS       allow the use of IBM ROM BIOS calls                    [FALSE]
  77. Xrawio      allow the use of raw I/O (may only be set on startup)  [FALSE]
  78. X
  79. XBoolean option if EXP_ON_BOTL was set at compile time:
  80. Xshowexp    display your accumulated experience points             [FALSE]
  81. X
  82. XBoolean option if SCORE_ON_BOTL was set at compile time:
  83. Xshowscore  display your approximate accumulated score             [FALSE]
  84. X
  85. XBoolean options if TEXTCOLOR was set at compile time:
  86. Xcolor      use different colors for objects on screen   [TRUE for micros]
  87. Xhilite_pet if color is FALSE, display pets in a highlighted way   [FALSE]
  88. X
  89. XAny Boolean option can be negated by prefixing it with a '!' or 'no'.
  90. X
  91. X
  92. XCompound options are written as option_name:option_value.
  93. X
  94. XCompound options which can be set during the game are:
  95. X
  96. Xfruit      the name of a fruit you enjoy eating  [slime mold]
  97. X           (basically a whimsy which NetHack uses from time to time).
  98. Xpackorder  a list of default symbols for kinds of objects that gives the
  99. X           order in which your pack will be displayed  [")[%?+!=/(*`0_]
  100. X           (If you specify only some kinds of items, the others from the
  101. X           default order will be appended to the end.)
  102. Xscores     the parts of the score list you wish to see when the game ends
  103. X           You choose a combination of top scores, scores around the top
  104. X           scores, and all of your own scores.  [!own/3 top/2 around]
  105. X
  106. XCompound options which may be set only on startup are:
  107. X
  108. Xcatname    the name of your first cat  [NONE]
  109. Xdogname    the name of your first dog  [NONE]
  110. Xgraphics   a list of symbols to be used in place of the default ones for
  111. X           drawing the dungeon.
  112. X           The symbols are subjected to a fair amount of processing, so
  113. X           that you can use C-style escapes such as \n or \081 as well as
  114. X           indicate control characters by ^x or meta characters by \Mx.
  115. X           As usual, \ can force the next character to be taken literally.
  116. X           Since many of the default symbols are overloaded, they are
  117. X           given here by name instead of symbol, with some added notes:
  118. X           stone                               (solid rock, normally ' ')
  119. X           vwall hwall tlcorn trcorn blcorn brcorn      (room boundaries)
  120. X           crwall tuwall tdwall tlwall trwall (wallified maze characters)
  121. X           nodoor vodoor hodoor      (no, vertical, horizontal open door)
  122. X           vcdoor hcdoor               (vertical, horizontal closed door)
  123. X           room darkcorr litcorr upstair dnstair upladder dnladder
  124. X           trap web altar throne sink fountain pool ice lava
  125. X           vodbridge hodbridge     (vertical, horizontal open drawbridge)
  126. X           vcdbridge hcdbridge   (vertical, horizontal closed drawbridge)
  127. X           air cloud water
  128. X           vbeam hbeam lslant rslant                  (generic zap beams)
  129. X           digbeam flashbeam      (special beams for digging and cameras)
  130. X           boomleft boomright                                (boomerangs)
  131. X           ss1 ss2 ss3 ss4                           (shielding sequence)
  132. X           sw_topl, sw_topm, sw_topr,                  (swallow, top row)
  133. X           sw_midl, sw_midr,            (swallow, middle row [no center])
  134. X           sw_botl, sw_botm, sw_botr                (swallow, bottom row)
  135. X           extl extm extr                      (explosion matrix top row)
  136. X           exml exmm exmr                   (explosion matrix middle row)
  137. X           exbl exbm exbr                   (explosion matrix bottom row)
  138. Xmonsters   like graphics, but for monster symbols
  139. X           default:  abcdefghijklmnopqrstuvwxyz
  140. X                     ABCDEFGHIJKLMNOPQRSTUVWXYZ@\ \\&;:~]
  141. Xmsghistory number of top line messages to save [20]
  142. Xname       the name of your character  [obtained by asking the system or
  143. X           the player]
  144. Xobjects    like graphics, but for object symbols
  145. X           default:  ])[="(%!?+/$*`0_.
  146. Xpettype    your preferred type of pet (cat or dog), if your character
  147. X           class uses both types  [RANDOM]
  148. Xwindowtype windowing system to be used  [depends on operating system]
  149. X
  150. X
  151. XSome sample options lists are:
  152. X!pickup,!tombstone,name:Gandalf,scores:own/3 top/2 around
  153. Xfemale,nonews,dogname:Rover,graphics: |--------|||-\\/+.#.<><>\^\"_\\#{}
  154. Xrest_on_space,!verbose
  155. END_OF_FILE
  156. if test 6596 -ne `wc -c <'dat/opthelp'`; then
  157.     echo shar: \"'dat/opthelp'\" unpacked with wrong size!
  158. fi
  159. # end of 'dat/opthelp'
  160. fi
  161. if test -f 'doc/nethack.6' -a "${1}" != "-c" ; then 
  162.   echo shar: Will not clobber existing file \"'doc/nethack.6'\"
  163. else
  164. echo shar: Extracting \"'doc/nethack.6'\" \(5923 characters\)
  165. sed "s/^X//" >'doc/nethack.6' <<'END_OF_FILE'
  166. X.TH NETHACK 6 "28 March 1989"
  167. X.UC 4
  168. X.SH NAME
  169. Xnethack \- Exploring The Mazes of Menace
  170. X.SH SYNOPSIS
  171. X.B nethack
  172. X[
  173. X.B \-d
  174. X.I directory
  175. X]
  176. X[
  177. X.B \-n
  178. X]
  179. X[
  180. X.B \-[ABCEHKPRSTVW]
  181. X]
  182. X[
  183. X.B \-[DX]
  184. X]
  185. X[
  186. X.B \-u
  187. X.I playername
  188. X]
  189. X[
  190. X.B \-dec
  191. X]
  192. X[
  193. X.B \-ibm
  194. X]
  195. X.br
  196. X.B nethack
  197. X[
  198. X.B \-d
  199. X.I directory
  200. X]
  201. X.B \-s
  202. X[
  203. X.B \-[ABCEHKPRSTVW]
  204. X]
  205. X[
  206. X.I playernames
  207. X]
  208. X.SH DESCRIPTION
  209. X.PP
  210. X.I NetHack
  211. Xis a display oriented Dungeons & Dragons(tm) - like game.
  212. XBoth display and command structure resemble rogue.
  213. X.PP
  214. XTo get started you really only need to know two commands.  The command
  215. X.B ?
  216. Xwill give you a list of the available commands (as well as other information)
  217. Xand the command
  218. X.B /
  219. Xwill identify the things you see on the screen.
  220. X.PP
  221. XTo win the game (as opposed to merely playing to beat other people's high
  222. Xscores) you must locate the Amulet of Yendor which is somewhere below
  223. Xthe 20th level of the dungeon and get it out.
  224. XNobody has achieved this yet; anybody who does will probably go down
  225. Xin history as a hero among heros.
  226. X.PP
  227. XWhen the game ends, whether by your dying, quitting, or escaping
  228. Xfrom the caves,
  229. X.I NetHack
  230. Xwill give you (a fragment of) the list of top scorers.
  231. XThe scoring is based on many aspects of your behavior, but a rough estimate
  232. Xis obtained by taking the amount of gold you've found in the cave plus four
  233. Xtimes your (real) experience.
  234. XPrecious stones may be worth a lot of gold when brought to the exit.
  235. XThere is a 10% penalty for getting yourself killed.
  236. X.PP
  237. XThe environment variable NETHACKOPTIONS can be used to initialize many
  238. Xrun-time options.
  239. XThe ? command provides a description of these options and syntax.
  240. X(The
  241. X.B \-dec
  242. Xand
  243. X.B \-ibm
  244. Xcommand line options are equivalent to the
  245. X.B decgraphics
  246. Xand
  247. X.B ibmgraphics
  248. Xrun-time options described there,
  249. Xand are provided purely for convenience on systems
  250. Xsupporting multiple types of terminals.)
  251. X.PP
  252. XThe
  253. X.B \-u
  254. X.I playername
  255. Xoption supplies the answer to the question "Who are you?".
  256. XIt overrides any name from NETHACKOPTIONS, HACKOPTIONS, USER, LOGNAME,
  257. Xor getlogin(), which will otherwise be tried in order.
  258. XIf none of these provides a useful name, the player will be asked for one.
  259. XPlayer names (in conjunction with uids) are used to identify save files,
  260. Xso you can have several saved games under different names.
  261. XConversely, you must use the appropriate player name to restore a saved game.
  262. X.PP
  263. XA
  264. X.I playername
  265. Xsuffix or a separate option consisting of one of
  266. X.B "\-A \-B \-C \-E \-H \-K \-P \-R \-S \-T \-V \-W"
  267. Xcan be used to determine the character role.
  268. X.PP
  269. XThe
  270. X.B \-s
  271. Xoption alone will print out the list of your scores.
  272. XIt may be followed by arguments
  273. X.B "\-A \-B \-C \-E \-H \-K \-P \-R \-S \-T \-V \-W"
  274. Xto print the
  275. Xscores of Archeologists, Barbarians, Cave(wo)men, Elves, Healers, Knights,
  276. XPriest(esse)s, Rogues, Samurai, Tourists, Valkyries, or Wizards.
  277. XIt may also be followed by one or more player names to print the scores of the
  278. Xplayers mentioned, or by 'all' to print out all scores.
  279. X.PP
  280. XThe
  281. X.B \-n
  282. Xoption suppresses printing of any news from the game administrator.
  283. X.PP
  284. XThe
  285. X.B \-D
  286. Xor
  287. X.B \-X
  288. Xoption will start the game in a special non-scoring discovery mode.
  289. X.B \-D
  290. Xwill, if the player is the game administrator, start in debugging (wizard)
  291. Xmode instead.
  292. X.PP
  293. XThe
  294. X.B \-d
  295. Xoption, which must be the first argument if it appears,
  296. Xsupplies a directory which is to serve as the playground.
  297. XIt overrides the value from NETHACKDIR, HACKDIR,
  298. Xor the directory specified by the game administrator during compilation
  299. X(usually /usr/games/lib/nethackdir).
  300. XThis option is usually only useful to the game administrator.
  301. XThe playground must contain several auxiliary files such as help files,
  302. Xthe list of top scorers, and a subdirectory
  303. X.I save
  304. Xwhere games are saved.
  305. X.SH AUTHORS
  306. X.PP
  307. XJay Fenlason (+ Kenny Woodland, Mike Thome and Jon Payne) wrote the
  308. Xoriginal hack, very much like rogue (but full of bugs).
  309. X.PP
  310. XAndries Brouwer continuously deformed their sources into an entirely
  311. Xdifferent game.
  312. X.PP
  313. XMike Stephenson has continued the perversion of sources, adding various
  314. Xwarped character classes and sadistic traps with the help of many strange
  315. Xpeople who reside in that place between the worlds, the Usenet Zone.
  316. XA number of these miscreants are immortalized in the historical
  317. Xroll of dishonor and various other places.
  318. X.PP
  319. XThe resulting mess is now called NetHack, to denote its
  320. Xdevelopment by the Usenet.  Andries Brouwer has made this request for the
  321. Xdistinction, as he may eventually release a new version of his own.
  322. X.SH FILES
  323. X.PP
  324. XAll files are in the playground, normally /usr/games/lib/nethackdir.
  325. X.br
  326. X.DT
  327. X.ta \w'cmdhelp, opthelp, wizhelp\ \ \ 'u
  328. Xnethack        The program itself.
  329. X.br
  330. Xdata, oracles, rumors    Data files used by NetHack.
  331. X.br
  332. Xoptions, quest.dat    More data files.
  333. X.br
  334. Xhelp, hh    Help data files.
  335. X.br
  336. Xcmdhelp, opthelp, wizhelp    More help data files.
  337. X.br
  338. X*.lev    Predefined special levels.
  339. X.br
  340. Xdungeon    Control file for special levels.
  341. X.br
  342. Xhistory    A short history of NetHack.
  343. X.br
  344. Xlicense    Rules governing redistribution.
  345. X.br
  346. Xrecord    The list of top scorers.
  347. X.br
  348. Xlogfile    An extended list of games
  349. X.br
  350. X    played.
  351. X.br
  352. Xxlock.nnn    Description of a dungeon level.
  353. X.br
  354. Xperm    Lock file for xlock.dd.
  355. X.br
  356. XbonesDD.nn    Descriptions of the ghost and
  357. X.br
  358. X    belongings of a deceased
  359. X.br
  360. X    adventurer.
  361. X.br
  362. Xsave    A subdirectory containing the
  363. X.br
  364. X    saved games.
  365. X.SH ENVIRONMENT
  366. X.DT
  367. X.ta \w'HACKPAGER or PAGER\ \ \ 'u
  368. XUSER or LOGNAME    Your login name.
  369. X.br
  370. XHOME        Your home directory.
  371. X.br
  372. XSHELL        Your shell.
  373. X.br
  374. XTERM        The type of your terminal.
  375. X.br
  376. XHACKPAGER or PAGER    Replacement for default pager.
  377. X.br
  378. XMAIL    Mailbox file.
  379. X.br
  380. XMAILREADER    Replacement for default reader
  381. X.br
  382. X    (probably /bin/mail or /usr/ucb/mail).
  383. X.br
  384. XNETHACKDIR    Playground.
  385. X.br
  386. XNETHACKOPTIONS    String predefining several NetHack
  387. X.br
  388. X    options.
  389. X.br
  390. X
  391. XIn addition, SHOPTYPE is used in debugging (wizard) mode.
  392. X.SH "SEE ALSO"
  393. X.PP
  394. Xdgn_comp(6), lev_comp(6), recover(6)
  395. X.SH BUGS
  396. X.PP
  397. XProbably infinite.
  398. X
  399. X
  400. X.PP
  401. XDungeons & Dragons is a Trademark of TSR Inc.
  402. END_OF_FILE
  403. if test 5923 -ne `wc -c <'doc/nethack.6'`; then
  404.     echo shar: \"'doc/nethack.6'\" unpacked with wrong size!
  405. fi
  406. # end of 'doc/nethack.6'
  407. fi
  408. if test -f 'include/mondata.h' -a "${1}" != "-c" ; then 
  409.   echo shar: Will not clobber existing file \"'include/mondata.h'\"
  410. else
  411. echo shar: Extracting \"'include/mondata.h'\" \(5910 characters\)
  412. sed "s/^X//" >'include/mondata.h' <<'END_OF_FILE'
  413. X/*    SCCS Id: @(#)mondata.h    3.1    92/11/26    */
  414. X/* Copyright (c) 1989 Mike Threepoint                  */
  415. X/* NetHack may be freely redistributed.  See license for details. */
  416. X
  417. X#ifndef MONDATA_H
  418. X#define MONDATA_H
  419. X
  420. X#ifndef ALIGN_H
  421. X#include "align.h"
  422. X#endif
  423. X
  424. X#define verysmall(ptr)        ((ptr)->msize < MZ_SMALL)
  425. X#define bigmonst(ptr)        ((ptr)->msize >= MZ_LARGE)
  426. X
  427. X#define resists_fire(ptr)    (((ptr)->mresists & MR_FIRE) != 0)
  428. X#define resists_cold(ptr)    (((ptr)->mresists & MR_COLD) != 0)
  429. X#define resists_sleep(ptr)    (((ptr)->mresists & MR_SLEEP) != 0)
  430. X#define resists_disint(ptr)    (((ptr)->mresists & MR_DISINT) != 0)
  431. X#define resists_elec(ptr)    (((ptr)->mresists & MR_ELEC) != 0)
  432. X#define resists_poison(ptr)    (((ptr)->mresists & MR_POISON) != 0)
  433. X#define resists_acid(ptr)    (((ptr)->mresists & MR_ACID) != 0)
  434. X#define resists_ston(ptr)    (((ptr)->mresists & MR_STONE) != 0)
  435. X
  436. X#define is_flyer(ptr)        (((ptr)->mflags1 & M1_FLY) != 0L)
  437. X#define is_floater(ptr)        ((ptr)->mlet == S_EYE)
  438. X#define is_clinger(ptr)        (((ptr)->mflags1 & M1_CLING) != 0L)
  439. X#define is_swimmer(ptr)        (((ptr)->mflags1 & M1_SWIM) != 0L)
  440. X#define magic_breathing(ptr)    (((ptr)->mflags1 & M1_AMPHIBIOUS) != 0L)
  441. X#define passes_walls(ptr)    (((ptr)->mflags1 & M1_WALLWALK) != 0L)
  442. X#define amorphous(ptr)        (((ptr)->mflags1 & M1_AMORPHOUS) != 0L)
  443. X#define noncorporeal(ptr)    ((ptr)->mlet == S_GHOST)
  444. X#define tunnels(ptr)        (((ptr)->mflags1 & M1_TUNNEL) != 0L)
  445. X#define needspick(ptr)        (((ptr)->mflags1 & M1_NEEDPICK) != 0L)
  446. X#define hides_under(ptr)    (((ptr)->mflags1 & M1_CONCEAL) != 0L)
  447. X#define is_hider(ptr)        (((ptr)->mflags1 & M1_HIDE) != 0L)
  448. X#define haseyes(ptr)        (((ptr)->mflags1 & M1_NOEYES) == 0L)
  449. X#define nohands(ptr)        (((ptr)->mflags1 & M1_NOHANDS) != 0L)
  450. X#define nolimbs(ptr)        (((ptr)->mflags1 & M1_NOLIMBS) == M1_NOLIMBS)
  451. X#define has_head(ptr)        (((ptr)->mflags1 & M1_NOHEAD) == 0L)
  452. X#define is_whirly(ptr)        ((ptr)->mlet == S_VORTEX || \
  453. X                 (ptr) == &mons[PM_AIR_ELEMENTAL])
  454. X#define mindless(ptr)        (((ptr)->mflags1 & M1_MINDLESS) != 0L)
  455. X#define humanoid(ptr)        (((ptr)->mflags1 & M1_HUMANOID) != 0L)
  456. X#define is_animal(ptr)        (((ptr)->mflags1 & M1_ANIMAL) != 0L)
  457. X#define slithy(ptr)        (((ptr)->mflags1 & M1_SLITHY) != 0L)
  458. X#define is_meaty(ptr)        (!amorphous(ptr) && \
  459. X                 (ptr)->mlet != S_BLOB && \
  460. X                 (ptr)->mlet != S_JELLY && \
  461. X                 (ptr)->mlet != S_FUNGUS)
  462. X#define is_wooden(ptr)        ((ptr) == &mons[PM_WOOD_GOLEM])
  463. X#define thick_skinned(ptr)    (((ptr)->mflags1 & M1_THICK_HIDE) != 0L)
  464. X#define lays_eggs(ptr)        (((ptr)->mflags1 & M1_OVIPAROUS) != 0L)
  465. X#define regenerates(ptr)    (((ptr)->mflags1 & M1_REGEN) != 0L)
  466. X#define perceives(ptr)        (((ptr)->mflags1 & M1_SEE_INVIS) != 0L)
  467. X#define can_teleport(ptr)    (((ptr)->mflags1 & M1_TPORT) != 0L)
  468. X#define control_teleport(ptr)    (((ptr)->mflags1 & M1_TPORT_CNTRL) != 0L)
  469. X#define telepathic(ptr)        ((ptr) == &mons[PM_FLOATING_EYE] || \
  470. X                 (ptr) == &mons[PM_MIND_FLAYER])
  471. X#define is_armed(ptr)        attacktype(ptr, AT_WEAP)
  472. X#define acidic(ptr)        (((ptr)->mflags1 & M1_ACID) != 0L)
  473. X#define poisonous(ptr)        (((ptr)->mflags1 & M1_POIS) != 0L)
  474. X#define carnivorous(ptr)    (((ptr)->mflags1 & M1_CARNIVORE) != 0L)
  475. X#define herbivorous(ptr)    (((ptr)->mflags1 & M1_HERBIVORE) != 0L)
  476. X#define metallivorous(ptr)    (((ptr)->mflags1 & M1_METALLIVORE) != 0L)
  477. X#define polyok(ptr)        (((ptr)->mflags2 & M2_NOPOLY) == 0L)
  478. X#define is_undead(ptr)        (((ptr)->mflags2 & M2_UNDEAD) != 0L)
  479. X#define is_were(ptr)        (((ptr)->mflags2 & M2_WERE) != 0L)
  480. X#define is_elf(ptr)        (((ptr)->mflags2 & M2_ELF) != 0L)
  481. X#define is_dwarf(ptr)        (((ptr)->mflags2 & M2_DWARF) != 0L)
  482. X#define is_giant(ptr)        (((ptr)->mflags2 & M2_GIANT) != 0L)
  483. X#define is_golem(ptr)        ((ptr)->mlet == S_GOLEM)
  484. X#define is_domestic(ptr)    (((ptr)->mflags2 & M2_DOMESTIC) != 0L)
  485. X#define is_orc(ptr)        (((ptr)->mflags2 & M2_ORC) != 0L)
  486. X#define is_human(ptr)        (((ptr)->mflags2 & M2_HUMAN) != 0L)
  487. X#define is_demon(ptr)        (((ptr)->mflags2 & M2_DEMON) != 0L)
  488. X#define is_mercenary(ptr)    (((ptr)->mflags2 & M2_MERC) != 0L)
  489. X#define is_male(ptr)        (((ptr)->mflags2 & M2_MALE) != 0L)
  490. X#define is_female(ptr)        (((ptr)->mflags2 & M2_FEMALE) != 0L)
  491. X#define is_neuter(ptr)        (((ptr)->mflags2 & M2_NEUTER) != 0L)
  492. X#define is_wanderer(ptr)    (((ptr)->mflags2 & M2_WANDER) != 0L)
  493. X#define always_hostile(ptr)    (((ptr)->mflags2 & M2_HOSTILE) != 0L)
  494. X#define always_peaceful(ptr)    (((ptr)->mflags2 & M2_PEACEFUL) != 0L)
  495. X#define extra_nasty(ptr)    (((ptr)->mflags2 & M2_NASTY) != 0L)
  496. X#define strongmonst(ptr)    (((ptr)->mflags2 & M2_STRONG) != 0L)
  497. X#  ifdef POLYSELF
  498. X#define can_breathe(ptr)    attacktype(ptr, AT_BREA)
  499. X#define cantwield(ptr)        (nohands(ptr) || verysmall(ptr))
  500. X#define cantweararm(ptr)    (breakarm(ptr) || sliparm(ptr))
  501. X#  endif /* POLYSELF */
  502. X#define throws_rocks(ptr)    (((ptr)->mflags2 & M2_ROCKTHROW) != 0L)
  503. X#define type_is_pname(ptr)    (((ptr)->mflags2 & M2_PNAME) != 0L)
  504. X#define is_lord(ptr)        (((ptr)->mflags2 & M2_LORD) != 0L)
  505. X#define is_prince(ptr)        (((ptr)->mflags2 & M2_PRINCE) != 0L)
  506. X#define is_ndemon(ptr)        (is_demon(ptr) && \
  507. X                 (((ptr)->mflags2 & (M2_LORD|M2_PRINCE)) == 0L))
  508. X#define is_dlord(ptr)        (is_demon(ptr) && is_lord(ptr))
  509. X#define is_dprince(ptr)        (is_demon(ptr) && is_prince(ptr))
  510. X#define is_minion(ptr)        ((ptr)->mflags2 & M2_MINION)
  511. X#define is_lminion(ptr)        (is_minion(ptr) && \
  512. X                 (ptr)->maligntyp >= A_COALIGNED)
  513. X#define likes_gold(ptr)        (((ptr)->mflags2 & M2_GREEDY) != 0L)
  514. X#define likes_gems(ptr)        (((ptr)->mflags2 & M2_JEWELS) != 0L)
  515. X#define likes_objs(ptr)        (((ptr)->mflags2 & M2_COLLECT) != 0L || \
  516. X                 is_armed(ptr))
  517. X#define likes_magic(ptr)    (((ptr)->mflags2 & M2_MAGIC) != 0L)
  518. X#define is_longworm(ptr)    (((ptr) == &mons[PM_BABY_LONG_WORM]) || \
  519. X                 ((ptr) == &mons[PM_LONG_WORM]) || \
  520. X                 ((ptr) == &mons[PM_LONG_WORM_TAIL]))
  521. X#define is_covetous(ptr)    ((ptr->mflags3 & M3_COVETOUS))
  522. X#define is_mplayer(ptr)        (((ptr) >= &mons[PM_ARCHEOLOGIST]) && \
  523. X                 ((ptr) <= &mons[PM_WIZARD]))
  524. X#define is_rider(ptr)        ((ptr) == &mons[PM_DEATH] || \
  525. X                 (ptr) == &mons[PM_FAMINE] || \
  526. X                 (ptr) == &mons[PM_PESTILENCE])
  527. X#endif /* MONDATA_H */
  528. END_OF_FILE
  529. if test 5910 -ne `wc -c <'include/mondata.h'`; then
  530.     echo shar: \"'include/mondata.h'\" unpacked with wrong size!
  531. fi
  532. # end of 'include/mondata.h'
  533. fi
  534. if test -f 'include/you.h' -a "${1}" != "-c" ; then 
  535.   echo shar: Will not clobber existing file \"'include/you.h'\"
  536. else
  537. echo shar: Extracting \"'include/you.h'\" \(6900 characters\)
  538. sed "s/^X//" >'include/you.h' <<'END_OF_FILE'
  539. X/*    SCCS Id: @(#)you.h    3.1    92/11/29    */
  540. X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  541. X/* NetHack may be freely redistributed.  See license for details. */
  542. X
  543. X#ifndef YOU_H
  544. X#define YOU_H
  545. X
  546. X#ifndef ALIGN_H
  547. X#include "align.h"
  548. X#endif
  549. X#ifndef ATTRIB_H
  550. X#include "attrib.h"
  551. X#endif
  552. X#ifndef MONST_H
  553. X#include "monst.h"
  554. X#endif
  555. X#ifndef YOUPROP_H
  556. X#include "youprop.h"
  557. X#endif
  558. X
  559. Xstruct prop {
  560. X
  561. X#define TIMEOUT        007777    /* mask */
  562. X
  563. X#define LEFT_RING    W_RINGL    /* 010000L */
  564. X#define RIGHT_RING    W_RINGR    /* 020000L */
  565. X#define LEFT_SIDE    LEFT_RING
  566. X#define RIGHT_SIDE    RIGHT_RING
  567. X#define BOTH_SIDES    (LEFT_SIDE | RIGHT_SIDE)
  568. X
  569. X#define WORN_ARMOR    W_ARM    /* 040000L */
  570. X#define WORN_CLOAK    W_ARMC    /* 0100000L */
  571. X#define WORN_HELMET    W_ARMH    /* 0200000L */
  572. X#define WORN_SHIELD    W_ARMS    /* 0400000L */
  573. X#define WORN_GLOVES    W_ARMG    /* 01000000L */
  574. X#define WORN_BOOTS    W_ARMF    /* 02000000L */
  575. X#define WORN_AMUL    W_AMUL    /* 04000000L */
  576. X#define WORN_BLINDF    W_TOOL    /* 010000000L */
  577. X#ifdef TOURIST
  578. X#define WORN_SHIRT    W_ARMU    /* 01000L */
  579. X#endif
  580. X
  581. X/*
  582. X * FROMEXPER is for a property gained by virtue of your experience level,
  583. X * which will be lost if you lose that level; FROMOUTSIDE is one that is
  584. X * gained in some other way (e.g., a throne, a prayer, or a corpse).
  585. X * INTRINSIC is either FROMEXPER or FROMOUTSIDE
  586. X */
  587. X#define FROMOUTSIDE    0200000000L
  588. X#define FROMEXPER    0400000000L
  589. X#define INTRINSIC    (FROMOUTSIDE|FROMEXPER)
  590. X
  591. X    long p_flgs;
  592. X    int NDECL((*p_tofn));    /* called after timeout */
  593. X};
  594. X
  595. Xstruct u_have {
  596. X    Bitfield(amulet,1);    /* carrying Amulet    */
  597. X    Bitfield(bell,1);    /* carrying Bell    */
  598. X    Bitfield(book,1);    /* carrying Book    */
  599. X    Bitfield(menorah,1);    /* carrying Candelabrum */
  600. X#ifdef MULDGN
  601. X    Bitfield(questart,1);    /* carrying the Quest Artifact */
  602. X    Bitfield(unused,3);
  603. X#else
  604. X    Bitfield(unused,4);
  605. X#endif
  606. X};
  607. X
  608. Xstruct u_event {
  609. X    Bitfield(minor_oracle,1);    /* received at least 1 cheap oracle */
  610. X    Bitfield(major_oracle,1);    /*  "  expensive oracle */
  611. X#ifdef MULDGN
  612. X    Bitfield(qexpelled,1);        /* expelled from the Quest dungeon */
  613. X    Bitfield(qcompleted,1);        /* successfully completed the Quest task */
  614. X#endif
  615. X    Bitfield(uheard_tune,2);    /* if you heard the passtune */
  616. X    Bitfield(uopened_dbridge,1);    /* if you open the drawbridge */
  617. X    Bitfield(invoked,1);        /* invoked the gate to the Sanctum level */
  618. X
  619. X    Bitfield(gehennom_entered,1);    /* entered Gehennom via Valley */
  620. X#ifdef ELBERETH
  621. X    Bitfield(uhand_of_elbereth,1);    /* if you become Hand of Elbereth */
  622. X#endif
  623. X    Bitfield(udemigod,1);        /* once you kill the wiz */
  624. X};
  625. X
  626. X
  627. Xstruct you {
  628. X    xchar ux, uy;
  629. X    schar dx, dy, dz;    /* direction of move (or zap or ... ) */
  630. X    schar di;        /* direction of FF */
  631. X    xchar ux0, uy0;        /* initial position FF */
  632. X    d_level uz, uz0;    /* your level on this and the previous turn */
  633. X    d_level utolev;        /* level monster teleported you to, or uz */
  634. X    char utotype;        /* bitmask of goto_level() flags for utolev */
  635. X    char usym;        /* usually '@' */
  636. X    boolean umoved;        /* changed map location (post-move) */
  637. X    int last_str_turn;    /* 0: none, 1: half turn, 2: full turn */
  638. X                /* +: turn right, -: turn left */
  639. X    unsigned ulevel;    /* 1 - MAXULEV */
  640. X    unsigned utrap;        /* trap timeout */
  641. X    unsigned utraptype;    /* defined if utrap nonzero */
  642. X#define TT_BEARTRAP    0
  643. X#define TT_PIT        1
  644. X#define TT_WEB        2
  645. X#define TT_LAVA        3
  646. X#define TT_INFLOOR    4
  647. X    char    urooms[5];    /* rooms (roomno + 3) occupied now */
  648. X    char    urooms0[5];    /* ditto, for previous position */
  649. X    char    uentered[5];    /* rooms (roomno + 3) entered this turn */
  650. X    char    ushops[5];    /* shop rooms (roomno + 3) occupied now */
  651. X    char    ushops0[5];    /* ditto, for previous position */
  652. X    char    ushops_entered[5]; /* ditto, shops entered this turn */
  653. X    char    ushops_left[5];    /* ditto, shops exited this turn */
  654. X
  655. X    int     uhunger;    /* refd only in eat.c and shk.c */
  656. X    unsigned uhs;        /* hunger state - see eat.c */
  657. X
  658. X    struct prop uprops[LAST_PROP+1];
  659. X
  660. X    unsigned umconf;
  661. X    const char *usick_cause;
  662. X/* For messages referring to hands, eyes, feet, etc... when polymorphed */
  663. X#define ARM 0
  664. X#define EYE 1
  665. X#define FACE 2
  666. X#define FINGER 3
  667. X#define FINGERTIP 4
  668. X#define FOOT 5
  669. X#define HAND 6
  670. X#define HANDED 7
  671. X#define HEAD 8
  672. X#define LEG 9
  673. X#define LIGHT_HEADED 10
  674. X#define NECK 11
  675. X#define SPINE 12
  676. X#define TOE 13
  677. X
  678. X    /* These ranges can never be more than MAX_RANGE (vision.h). */
  679. X    int nv_range;            /* current night vision range */
  680. X    int xray_range;            /* current xray vision range */
  681. X
  682. X    /*
  683. X     * These variables are valid globally only when punished and blind.
  684. X     */
  685. X#define BC_BALL  0x01    /* bit mask for ball  in 'bc_felt' below */
  686. X#define BC_CHAIN 0x02    /* bit mask for chain in 'bc_felt' below */
  687. X    int bglyph;    /* glyph under the ball */
  688. X    int cglyph;    /* glyph under the chain */
  689. X    int bc_order;    /* ball & chain order [see bc_order() in trap.c] */
  690. X    int bc_felt;    /* mask for ball/chain being felt */
  691. X
  692. X
  693. X    /*
  694. X     * Player type monster (e.g. PM_VALKYRIE).  This is set in u_init
  695. X     * and never changed afterward.
  696. X     */
  697. X    int umonster;
  698. X#ifdef POLYSELF
  699. X    int umonnum;                /* monster number or -1 */
  700. X    int mh, mhmax, mtimedone;        /* for polymorph-self */
  701. X    struct attribs    macurr,            /* for monster attribs */
  702. X            mamax;            /* for monster attribs */
  703. X    int ulycn;                /* lycanthrope type */
  704. X#endif
  705. X    unsigned ucreamed;
  706. X    unsigned uswldtim;        /* time you have been swallowed */
  707. X
  708. X    Bitfield (uswallow,1);        /* true if swallowed */
  709. X    Bitfield(uinwater,1);        /* if you're currently in water (only
  710. X                       underwater possible currently) */
  711. X#ifdef POLYSELF
  712. X    Bitfield(uundetected,1);    /* if you're a hiding monster/piercer */
  713. X    Bitfield(mfemale,1);        /* saved human value of flags.female */
  714. X#endif
  715. X    Bitfield(uinvulnerable,1);    /* you're invulnerable (praying) */
  716. X    Bitfield(usleep,1);        /* you're sleeping */
  717. X
  718. X    unsigned udg_cnt;        /* how long you have been demigod */
  719. X    struct u_event    uevent;        /* certain events have happened */
  720. X    struct u_have    uhave;        /* you're carrying special objects */
  721. X    struct attribs    acurr,        /* your current attributes (eg. str)*/
  722. X            aexe,        /* for gain/loss via "exercise" */
  723. X            abon,        /* your bonus attributes (eg. str) */
  724. X            amax,        /* your max attributes (eg. str) */
  725. X            atemp,        /* used for temporary loss/gain */
  726. X            atime;        /* used for loss/gain countdown */
  727. X    align    ualign;            /* character alignment */
  728. X#define CONVERT        2
  729. X    aligntyp ualignbase[CONVERT];    /* for ualign conversion record */
  730. X    schar uluck, moreluck;        /* luck and luck bonus */
  731. X#define LUCKADD        3    /* added value when carrying luck stone */
  732. X#define Luck    (u.uluck + u.moreluck)
  733. X#define LUCKMAX        10    /* on moonlit nights 11 */
  734. X#define LUCKMIN        (-10)
  735. X    schar    udaminc;
  736. X    schar    uac;
  737. X    int    uhp,uhpmax;
  738. X    int    uen, uenmax;        /* magical energy - M. Stephenson */
  739. X    int ugangr;            /* if the gods are angry at you */
  740. X    int ublessed, ublesscnt;    /* blessing/duration from #pray */
  741. X    long    ugold, ugold0;
  742. X    long    uexp, urexp;
  743. X    long    ucleansed;    /* to record moves when player was cleansed */
  744. X    int uinvault;
  745. X    struct monst *ustuck;
  746. X    int ugrave_arise; /* you die and become something aside from a ghost */
  747. X    int nr_killed[NUMMONS];        /* used for experience bookkeeping */
  748. X};
  749. X
  750. X#endif    /* YOU_H */
  751. END_OF_FILE
  752. if test 6900 -ne `wc -c <'include/you.h'`; then
  753.     echo shar: \"'include/you.h'\" unpacked with wrong size!
  754. fi
  755. # end of 'include/you.h'
  756. fi
  757. if test -f 'sys/amiga/NewGame.uu' -a "${1}" != "-c" ; then 
  758.   echo shar: Will not clobber existing file \"'sys/amiga/NewGame.uu'\"
  759. else
  760. echo shar: Extracting \"'sys/amiga/NewGame.uu'\" \(2167 characters\)
  761. sed "s/^X//" >'sys/amiga/NewGame.uu' <<'END_OF_FILE'
  762. Xbegin 777 NewGame.info
  763. XMXQ```0``````=@`^`%``(@`&`0L``0`DT>``)4KX``````````````````0`
  764. XM```!!!@`)-O@`"69&(````"``````````````````)Q```````!0`"$``@`"
  765. XM_0@#```````````````````!`````````````P````````````,`````````
  766. XM```#`````````````P````````````,``!__@``````#``!U57```````P`!
  767. XMJJJH``````,``5557``````#``:JJJH``````P`%??WU``````,`!OJ[^P``
  768. XM```#``5O_=4``````P`&JJJK`````/L`!575U0'_[/_[``:OOJO_____XP`%
  769. XM5554>^```!L#_JZJJT%4F*=3'\5UWO7224```S`&N^^K!EPE]TL"M55556K6
  770. XMHL`#)6?___\#4Z^``SJG____X@`*E-,<D?____H#5*W3("L?___XR`<`<RO]
  771. XM[___Z.ZGW#,H(8#___.`>H(#%"$#?__`+`!-BP!!&/@/0`,D0!,V"`P,<WQX
  772. XM``9+*`%F`X!CG#F`ZW_________________________^P````````````,0!
  773. XM\$`(`````$#`#X`$``0`@!``P#\``$`@`@"``,!^`$``((``@(#$?A__L```
  774. XM`0``Q'_U57`!P````,(_JJJH8`@``0#`'5557`!`1```P`:JJJH!```"`,`5
  775. XM`0`%`````0#$1H**"R$#!@``Q@4!`%4``"```,`6JJJK`>@.LP#$%455%1``
  776. XM$P``P`:JHHH``````,$E5554``````#(!*JJJP``````P`4U`!4``````,`&
  777. XMJ`BK``````#`!5555```````P`?___\``````,````````````#`````````
  778. XM````P````````````,````````````#`````````````P````````````,``
  779. XM``````````#`````````````P````````````(```````````````````%``
  780. XM(0`"``1:T`,``````/_____________`````````````P````````````,``
  781. XM``````````#`````````````P````````````,````````````#`````````
  782. XM````P````````````,````````````#```/G@```````P`!^_>```````,``
  783. XM]SOX``````#``:_]W```````P`>JJJX`````^,`%5=74`?_L__C`!J^^JW__
  784. XM___@P`55551[X```&,-^KJJK0528IU#>!77>]=))0```\8:[[ZL&3"6W2,+5
  785. XM5555:M8BP`#D1____P-`#H``^V?____"``J4T-U!____Z@,4K=#@*Q___\B(
  786. XM!@!PZ]WH_\P([B?<,.@A@,$$<X!R``#4(`-$*T`D`$V(P$$8^`%``R1`$/8(
  787. XM#`QS;'@`!DCH`68#@&.<.8#H@```````````````````````````````````
  788. XM```#!`?X0`@`````0P`?_@0`!`"`$`,`/_\`0"`"`(`#`'__@``@@`"`@P1_
  789. XM_X`````!``,$?_^```'````#`C__``!@"``!`P`?_@```$!$``,`!_/G@`$`
  790. XM``(#`!!^_&`````!`P1`]PHX(0,&``,&`8$`7```(``#`!>JJJX!Z`ZS`P05
  791. XM1544$``3``,`!JJBB@`````#`255550``````P@$JJJK````"`,`!34`%0``
  792. XM```#``:H"*L```!``P`%5554`````(,`!____P`(`$`#````````$````P`0
  793. XM``````!```,````````!```#`"```````````P```````````@,``P````!"
  794. XM"``#`````````````P````````````,````````````#?____________P``
  795. XM`!!(86-K17AE.DYE=$AA8VL`````%````!%(04-+1$E2/4YE=$AA8VLZ````
  796. XM`!9,159%3%,]3F5T:&%C:SIL979E;',`````$E-!5D4]3F5T:&%C:SIS879E
  797. X3``````Y0051(/4YE=$AA8VLZ`'9E
  798. X`
  799. Xend
  800. END_OF_FILE
  801. if test 2167 -ne `wc -c <'sys/amiga/NewGame.uu'`; then
  802.     echo shar: \"'sys/amiga/NewGame.uu'\" unpacked with wrong size!
  803. fi
  804. # end of 'sys/amiga/NewGame.uu'
  805. fi
  806. if test -f 'sys/amiga/colorwin.c' -a "${1}" != "-c" ; then 
  807.   echo shar: Will not clobber existing file \"'sys/amiga/colorwin.c'\"
  808. else
  809. echo shar: Extracting \"'sys/amiga/colorwin.c'\" \(6366 characters\)
  810. sed "s/^X//" >'sys/amiga/colorwin.c' <<'END_OF_FILE'
  811. X
  812. XSHORT Col_BorderVectors1[] = {
  813. X    0,0,
  814. X    59,0,
  815. X    59,12,
  816. X    0,12,
  817. X    0,0
  818. X};
  819. Xstruct Border Col_Border1 = {
  820. X    -1,-1,    /* XY origin relative to container TopLeft */
  821. X    3,0,JAM1,    /* front pen, back pen and drawmode */
  822. X    5,    /* number of XY vectors */
  823. X    Col_BorderVectors1,    /* pointer to XY vectors */
  824. X    NULL    /* next border in list */
  825. X};
  826. X
  827. Xstruct IntuiText Col_IText1 = {
  828. X    3,0,JAM2,    /* front and back text pens, drawmode and fill byte */
  829. X    13,1,    /* XY origin relative to container TopLeft */
  830. X    NULL,    /* font pointer or NULL for default */
  831. X    "Okay",    /* pointer to text */
  832. X    NULL    /* next IntuiText structure */
  833. X};
  834. X
  835. Xstruct Gadget Col_Okay = {
  836. X    NULL,    /* next gadget */
  837. X    8,65,    /* origin XY of hit box relative to window TopLeft */
  838. X    58,11,    /* hit box width and height */
  839. X    NULL,    /* gadget flags */
  840. X    RELVERIFY,    /* activation flags */
  841. X    BOOLGADGET,    /* gadget type flags */
  842. X    (APTR)&Col_Border1,    /* gadget border or image to be rendered */
  843. X    NULL,    /* alternate imagery for selection */
  844. X    &Col_IText1,    /* first IntuiText structure */
  845. X    NULL,    /* gadget mutual-exclude long word */
  846. X    NULL,    /* SpecialInfo structure */
  847. X    GADCOLOKAY,    /* user-definable data */
  848. X    NULL    /* pointer to user-definable data */
  849. X};
  850. X
  851. XSHORT Col_BorderVectors2[] = {
  852. X    0,0,
  853. X    59,0,
  854. X    59,12,
  855. X    0,12,
  856. X    0,0
  857. X};
  858. Xstruct Border Col_Border2 = {
  859. X    -1,-1,    /* XY origin relative to container TopLeft */
  860. X    3,0,JAM1,    /* front pen, back pen and drawmode */
  861. X    5,    /* number of XY vectors */
  862. X    Col_BorderVectors2,    /* pointer to XY vectors */
  863. X    NULL    /* next border in list */
  864. X};
  865. X
  866. Xstruct IntuiText Col_IText2 = {
  867. X    3,0,JAM2,    /* front and back text pens, drawmode and fill byte */
  868. X    6,1,    /* XY origin relative to container TopLeft */
  869. X    NULL,    /* font pointer or NULL for default */
  870. X    "Cancel",    /* pointer to text */
  871. X    NULL    /* next IntuiText structure */
  872. X};
  873. X
  874. Xstruct Gadget Col_Cancel = {
  875. X    &Col_Okay,    /* next gadget */
  876. X    218,65,    /* origin XY of hit box relative to window TopLeft */
  877. X    58,11,    /* hit box width and height */
  878. X    NULL,    /* gadget flags */
  879. X    RELVERIFY,    /* activation flags */
  880. X    BOOLGADGET,    /* gadget type flags */
  881. X    (APTR)&Col_Border2,    /* gadget border or image to be rendered */
  882. X    NULL,    /* alternate imagery for selection */
  883. X    &Col_IText2,    /* first IntuiText structure */
  884. X    NULL,    /* gadget mutual-exclude long word */
  885. X    NULL,    /* SpecialInfo structure */
  886. X    GADCOLCANCEL,    /* user-definable data */
  887. X    NULL    /* pointer to user-definable data */
  888. X};
  889. X
  890. Xstruct PropInfo Col_Col_RedPenSInfo = {
  891. X    AUTOKNOB+FREEHORIZ,    /* PropInfo flags */
  892. X    0,0,    /* horizontal and vertical pot values */
  893. X    -1,-1,    /* horizontal and vertical body values */
  894. X};
  895. X
  896. Xstruct Image Col_Image1 = {
  897. X    0,0,    /* XY origin relative to container TopLeft */
  898. X    263,7,    /* Image width and height in pixels */
  899. X    0,    /* number of bitplanes in Image */
  900. X    NULL,    /* pointer to ImageData */
  901. X    0x0000,0x0000,    /* PlanePick and PlaneOnOff */
  902. X    NULL    /* next Image structure */
  903. X};
  904. X
  905. Xstruct Gadget Col_RedPen = {
  906. X    &Col_Cancel,    /* next gadget */
  907. X    7,12,    /* origin XY of hit box relative to window TopLeft */
  908. X    271,11,    /* hit box width and height */
  909. X    NULL,    /* gadget flags */
  910. X    RELVERIFY+GADGIMMEDIATE+FOLLOWMOUSE,    /* activation flags */
  911. X    PROPGADGET,    /* gadget type flags */
  912. X    (APTR)&Col_Image1,    /* gadget border or image to be rendered */
  913. X    NULL,    /* alternate imagery for selection */
  914. X    NULL,    /* first IntuiText structure */
  915. X    NULL,    /* gadget mutual-exclude long word */
  916. X    (APTR)&Col_Col_RedPenSInfo,    /* SpecialInfo structure */
  917. X    GADREDPEN,    /* user-definable data */
  918. X    NULL    /* pointer to user-definable data */
  919. X};
  920. X
  921. Xstruct PropInfo Col_Col_GreenPenSInfo = {
  922. X    AUTOKNOB+FREEHORIZ,    /* PropInfo flags */
  923. X    0,0,    /* horizontal and vertical pot values */
  924. X    -1,-1,    /* horizontal and vertical body values */
  925. X};
  926. X
  927. Xstruct Image Col_Image2 = {
  928. X    0,0,    /* XY origin relative to container TopLeft */
  929. X    263,7,    /* Image width and height in pixels */
  930. X    0,    /* number of bitplanes in Image */
  931. X    NULL,    /* pointer to ImageData */
  932. X    0x0000,0x0000,    /* PlanePick and PlaneOnOff */
  933. X    NULL    /* next Image structure */
  934. X};
  935. X
  936. Xstruct Gadget Col_GreenPen = {
  937. X    &Col_RedPen,    /* next gadget */
  938. X    7,24,    /* origin XY of hit box relative to window TopLeft */
  939. X    271,11,    /* hit box width and height */
  940. X    NULL,    /* gadget flags */
  941. X    RELVERIFY+GADGIMMEDIATE+FOLLOWMOUSE,    /* activation flags */
  942. X    PROPGADGET,    /* gadget type flags */
  943. X    (APTR)&Col_Image2,    /* gadget border or image to be rendered */
  944. X    NULL,    /* alternate imagery for selection */
  945. X    NULL,    /* first IntuiText structure */
  946. X    NULL,    /* gadget mutual-exclude long word */
  947. X    (APTR)&Col_Col_GreenPenSInfo,    /* SpecialInfo structure */
  948. X    GADGREENPEN,    /* user-definable data */
  949. X    NULL    /* pointer to user-definable data */
  950. X};
  951. X
  952. Xstruct PropInfo Col_Col_BluePenSInfo = {
  953. X    AUTOKNOB+FREEHORIZ,    /* PropInfo flags */
  954. X    0,0,    /* horizontal and vertical pot values */
  955. X    -1,-1,    /* horizontal and vertical body values */
  956. X};
  957. X
  958. Xstruct Image Col_Image3 = {
  959. X    0,0,    /* XY origin relative to container TopLeft */
  960. X    263,7,    /* Image width and height in pixels */
  961. X    0,    /* number of bitplanes in Image */
  962. X    NULL,    /* pointer to ImageData */
  963. X    0x0000,0x0000,    /* PlanePick and PlaneOnOff */
  964. X    NULL    /* next Image structure */
  965. X};
  966. X
  967. Xstruct Gadget Col_BluePen = {
  968. X    &Col_GreenPen,    /* next gadget */
  969. X    7,36,    /* origin XY of hit box relative to window TopLeft */
  970. X    271,11,    /* hit box width and height */
  971. X    NULL,    /* gadget flags */
  972. X    RELVERIFY+GADGIMMEDIATE+FOLLOWMOUSE,    /* activation flags */
  973. X    PROPGADGET,    /* gadget type flags */
  974. X    (APTR)&Col_Image3,    /* gadget border or image to be rendered */
  975. X    NULL,    /* alternate imagery for selection */
  976. X    NULL,    /* first IntuiText structure */
  977. X    NULL,    /* gadget mutual-exclude long word */
  978. X    (APTR)&Col_Col_BluePenSInfo,    /* SpecialInfo structure */
  979. X    GADBLUEPEN,    /* user-definable data */
  980. X    NULL    /* pointer to user-definable data */
  981. X};
  982. X
  983. X#define Col_GadgetList1 Col_BluePen
  984. X
  985. Xstruct NewWindow Col_NewWindowStructure1 = {
  986. X    175,45,    /* window XY origin relative to TopLeft of screen */
  987. X    285,80,    /* window width and height */
  988. X    0,1,    /* detail and block pens */
  989. X    MOUSEBUTTONS+MOUSEMOVE+GADGETDOWN+GADGETUP+CLOSEWINDOW+VANILLAKEY+INTUITICKS,    /* IDCMP flags */
  990. X    WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE+NOCAREREFRESH,    /* other window flags */
  991. X    &Col_BluePen,    /* first gadget in gadget list */
  992. X    NULL,    /* custom CHECKMARK imagery */
  993. X    "Edit Screen Colors",    /* window title */
  994. X    NULL,    /* custom screen pointer */
  995. X    NULL,    /* custom bitmap */
  996. X    5,5,    /* minimum width and height */
  997. X    -1,-1,    /* maximum width and height */
  998. X    CUSTOMSCREEN    /* destination screen type */
  999. X};
  1000. X
  1001. X
  1002. X/* end of PowerWindows source generation */
  1003. END_OF_FILE
  1004. if test 6366 -ne `wc -c <'sys/amiga/colorwin.c'`; then
  1005.     echo shar: \"'sys/amiga/colorwin.c'\" unpacked with wrong size!
  1006. fi
  1007. # end of 'sys/amiga/colorwin.c'
  1008. fi
  1009. if test -f 'sys/unix/Makefile.utl' -a "${1}" != "-c" ; then 
  1010.   echo shar: Will not clobber existing file \"'sys/unix/Makefile.utl'\"
  1011. else
  1012. echo shar: Extracting \"'sys/unix/Makefile.utl'\" \(6899 characters\)
  1013. sed "s/^X//" >'sys/unix/Makefile.utl' <<'END_OF_FILE'
  1014. X#    Makefile for NetHack's utility programs.
  1015. X#    SCCS Id: @(#)Makefile.utl    3.1    92/11/01
  1016. X
  1017. X# if you are using gcc as your compiler,
  1018. X#    uncomment the CC definition below if it's not in your environment
  1019. X# CC = gcc
  1020. X#
  1021. X#    For Bull DPX/2 systems at B.O.S. 2.0 or higher use the following:
  1022. X#
  1023. X# CC = gcc -ansi -D_BULL_SOURCE -D_XOPEN_SOURCE -D_POSIX_SOURCE
  1024. X# 
  1025. X#    If you are using GCC 2.2.2 or higher on a DPX/2, just use:
  1026. X#
  1027. X# CC = gcc -ansi
  1028. X#
  1029. X# if your make doesn't define a default SHELL properly, you may need
  1030. X#    the line below (Atari users will need a bourne work-alike)
  1031. X# SHELL = /bin/sh
  1032. X
  1033. X# flags may have to be changed as required
  1034. X# flags for 286 Xenix:
  1035. X# CFLAGS = -Ml2t16 -O -LARGE -I../include
  1036. X# LFLAGS = -Ml -F 4000 -SEG 512
  1037. X
  1038. X# flags for 286 Microport SysV-AT
  1039. X# CFLAGS = -DDUMB -Ml -I../include
  1040. X# LFLAGS = -Ml
  1041. X
  1042. X# flags for Atari GCC
  1043. X# CFLAGS = -O -I../include
  1044. X# LFLAGS = -s
  1045. X
  1046. X# flags for Apollos using their native cc
  1047. X# (as long as it claims to be __STDC__ but isn't)
  1048. X# CFLAGS = -DAPOLLO -O -I../include
  1049. X
  1050. X# flags for AIX 3.1 cc on IBM RS/6000 to define
  1051. X# a suitable subset of standard libraries
  1052. X# (note that there is more info regarding the "-qchars=signed"
  1053. X# switch in file Install.unx note 8)
  1054. X# CFLAGS = -D_NO_PROTO -D_XOPEN_SOURCE -O -I../include -qchars=signed
  1055. X
  1056. X# flags for A/UX 2.01 using native cc or c89
  1057. X# gcc predefines AUX so that's not needed there
  1058. X# CFLAGS = -ZS -D_POSIX_SOURCE -O -I../include -DAUX
  1059. X
  1060. X# flags for debugging:
  1061. X# CFLAGS = -g -I../include
  1062. X
  1063. XCFLAGS = -g -I../include
  1064. XLFLAGS =
  1065. X
  1066. X# yacc/lex programs to use to generate *_comp.h, *_lex.c, and *_yacc.c.
  1067. X# if, instead of yacc/lex you have bison/flex, comment/uncomment the following.
  1068. XYACC     = yacc
  1069. XLEX      = lex
  1070. X# YACC     = bison -y
  1071. X# LEX      = flex
  1072. X# these are the names of the output files from YACC/LEX. Under MS-DOS
  1073. X# and similar systems, they may differ
  1074. XYTABC = y.tab.c
  1075. XYTABH = y.tab.h
  1076. XLEXYYC = lex.yy.c
  1077. X# YTABC = y_tab.c
  1078. X# YTABH = y_tab.h
  1079. X# LEXYYC = lexyy.c
  1080. X
  1081. X# Nothing below this line should have to be changed.
  1082. X
  1083. X# utility .c files
  1084. XMAKESRC = makedefs.c
  1085. XSPLEVSRC = lev_yacc.c lev_lex.c lev_main.c panic.c
  1086. XDGNCOMPSRC = dgn_yacc.c dgn_lex.c dgn_main.c
  1087. XUTILSRCS = $(MAKESRC) $(SPLEVSRC) $(DGNCOMPSRC)
  1088. X
  1089. X# object files for makedefs
  1090. XMAKEOBJS = makedefs.o ../src/monst.o ../src/objects.o
  1091. X
  1092. X# object files for special levels compiler
  1093. XSPLEVOBJS = lev_yacc.o lev_lex.o lev_main.o panic.o \
  1094. X    ../src/alloc.o ../src/drawing.o ../src/decl.o \
  1095. X    ../src/monst.o ../src/objects.o
  1096. X
  1097. X# object files for dungeon compiler
  1098. XDGNCOMPOBJS = dgn_yacc.o dgn_lex.o dgn_main.o panic.o ../src/alloc.o
  1099. X
  1100. X# object files for recovery utility
  1101. XRECOVOBJS = recover.o
  1102. X
  1103. X
  1104. X#    dependencies for makedefs
  1105. X#
  1106. Xmakedefs:    $(MAKEOBJS)
  1107. X    $(CC) $(LFLAGS) -o makedefs $(MAKEOBJS)
  1108. X
  1109. Xmakedefs.o:  ../include/config.h ../include/permonst.h ../include/objclass.h \
  1110. X        ../include/monsym.h ../include/artilist.h ../include/qtext.h
  1111. X
  1112. X../include/onames.h: makedefs
  1113. X    ./makedefs -o
  1114. X../include/pm.h: makedefs
  1115. X    ./makedefs -p
  1116. X../src/monstr.c: makedefs
  1117. X    ./makedefs -m
  1118. X../include/vis_tab.h: makedefs
  1119. X    ./makedefs -z
  1120. X../src/vis_tab.c: makedefs
  1121. X    ./makedefs -z
  1122. X
  1123. Xlintdefs:
  1124. X    @lint -axbh -I../include -DLINT $(MAKESRC) ../src/monst.c ../src/objects.c | sed '/_flsbuf/d'
  1125. X
  1126. X
  1127. X# the src Makefile is responsible for knowing when to call this, since
  1128. X# it knows all about the main src and include files
  1129. X../include/date.h::
  1130. X    ./makedefs -v
  1131. X
  1132. X
  1133. X#    dependencies for lev_comp
  1134. X#
  1135. Xlev_comp:  $(SPLEVOBJS)
  1136. X    $(CC) $(LFLAGS) -o lev_comp $(SPLEVOBJS)
  1137. X
  1138. Xlev_yacc.o:  ../include/hack.h ../include/sp_lev.h
  1139. Xlev_main.o:  ../include/hack.h ../include/sp_lev.h ../include/termcap.h
  1140. Xpanic.o:     ../include/config.h
  1141. X
  1142. X# see lev_comp.l for WEIRD_LEX discussion
  1143. X# egrep returns failure if it doesn't find anything, so we have to go to
  1144. X# some trouble to check for $(CC) failures
  1145. Xlev_lex.o:   ../include/hack.h ../include/lev_comp.h ../include/sp_lev.h
  1146. X    -@rm lev_lex.o 2>/dev/null
  1147. X    @echo $(CC) -c $(CFLAGS) lev_lex.c
  1148. X    -@$(CC) -c $(CFLAGS) -DWEIRD_LEX=`egrep -c _cplusplus lev_lex.c` lev_lex.c
  1149. X    @test -r lev_lex.o
  1150. X
  1151. X../include/lev_comp.h: lev_yacc.c
  1152. X
  1153. Xlev_yacc.c: lev_comp.y
  1154. X    $(YACC) -d lev_comp.y
  1155. X    mv $(YTABC) lev_yacc.c
  1156. X    mv $(YTABH) ../include/lev_comp.h
  1157. X
  1158. Xlev_lex.c: lev_comp.l
  1159. X    $(LEX) lev_comp.l
  1160. X    mv $(LEXYYC) lev_lex.c
  1161. X
  1162. X# with all of extern.h's functions to complain about, we drown in
  1163. X# 'defined but not used' without -u
  1164. Xlintlev:
  1165. X    @lint -axhu -I../include -DLINT $(SPLEVSRC) ../src/alloc.c ../src/monst.c ../src/objects.c | sed '/_flsbuf/d'
  1166. X
  1167. X
  1168. X#    dependencies for dgn_comp
  1169. X#
  1170. Xdgn_comp:  $(DGNCOMPOBJS)
  1171. X    $(CC) $(LFLAGS) -o dgn_comp $(DGNCOMPOBJS)
  1172. X
  1173. Xdgn_yacc.o:  ../include/config.h ../include/dgn_file.h
  1174. Xdgn_main.o:  ../include/config.h
  1175. X
  1176. X# see dgn_comp.l for WEIRD_LEX discussion
  1177. X# egrep returns failure if it doesn't find anything, so we have to go to
  1178. X# some trouble to check for $(CC) failures
  1179. Xdgn_lex.o:   ../include/config.h ../include/dgn_comp.h ../include/dgn_file.h
  1180. X    -@rm dgn_lex.o 2>/dev/null
  1181. X    @echo $(CC) -c $(CFLAGS) dgn_lex.c
  1182. X    -@$(CC) -c $(CFLAGS) -DWEIRD_LEX=`egrep -c _cplusplus dgn_lex.c` dgn_lex.c
  1183. X    @test -r dgn_lex.o
  1184. X
  1185. X
  1186. X../include/dgn_comp.h: dgn_yacc.c
  1187. X
  1188. Xdgn_yacc.c: dgn_comp.y
  1189. X    $(YACC) -d dgn_comp.y
  1190. X    mv $(YTABC) dgn_yacc.c
  1191. X    mv $(YTABH) ../include/dgn_comp.h
  1192. X
  1193. Xdgn_lex.c: dgn_comp.l
  1194. X    $(LEX) dgn_comp.l
  1195. X    mv $(LEXYYC) dgn_lex.c
  1196. X
  1197. X# with all of extern.h's functions to complain about, we drown in
  1198. X# 'defined but not used' without -u
  1199. Xlintdgn:
  1200. X    @lint -axhu -I../include -DLINT $(DGNCOMPSRC) panic.c ../src/alloc.c | sed '/_flsbuf/d'
  1201. X
  1202. X
  1203. X#    dependencies for recover
  1204. X#
  1205. Xrecover: $(RECOVOBJS)
  1206. X    $(CC) $(LFLAGS) -o recover $(RECOVOBJS)
  1207. X
  1208. Xrecover.o: ../include/config.h
  1209. X
  1210. X
  1211. X
  1212. X# using dependencies like
  1213. X#    ../src/foo::
  1214. X#        @( cd ../src ; $(MAKE) foo )
  1215. X# would always force foo to be up-to-date according to the src Makefile
  1216. X# when it's needed here.  unfortunately, some makes believe this syntax
  1217. X# means foo always changes, instead of foo should always be checked.
  1218. X# therefore, approximate via config.h dependencies, and hope that anybody
  1219. X# changing anything other than basic configuration also knows when not
  1220. X# to improvise things not in the instructions, like 'make makedefs' here
  1221. X# in util...
  1222. X
  1223. X# make sure object files from src are available when needed
  1224. X#
  1225. X../src/alloc.o: ../src/alloc.c ../include/config.h
  1226. X    @( cd ../src ; $(MAKE) alloc.o )
  1227. X../src/drawing.o: ../src/drawing.c ../include/config.h
  1228. X    @( cd ../src ; $(MAKE) drawing.o )
  1229. X../src/decl.o: ../src/decl.c ../include/config.h
  1230. X    @( cd ../src ; $(MAKE) decl.o )
  1231. X../src/monst.o: ../src/monst.c ../include/config.h
  1232. X    @( cd ../src ; $(MAKE) monst.o )
  1233. X../src/objects.o: ../src/objects.c ../include/config.h
  1234. X    @( cd ../src ; $(MAKE) objects.o )
  1235. X
  1236. X# make sure hack.h dependencies get transitive information
  1237. X../include/hack.h: ../include/config.h
  1238. X    @( cd ../src ; $(MAKE) ../include/hack.h )
  1239. X
  1240. Xtags: $(UTILSRCS)
  1241. X    @ctags -tw $(UTILSRCS)
  1242. X
  1243. Xclean:
  1244. X    rm -f *.o
  1245. X
  1246. Xspotless: clean
  1247. X    rm -f lev_lex.c lev_yacc.c dgn_lex.c dgn_yacc.c
  1248. X    rm -f ../include/lev_comp.h ../include/dgn_comp.h
  1249. X    rm -f makedefs lev_comp dgn_comp recover
  1250. END_OF_FILE
  1251. if test 6899 -ne `wc -c <'sys/unix/Makefile.utl'`; then
  1252.     echo shar: \"'sys/unix/Makefile.utl'\" unpacked with wrong size!
  1253. fi
  1254. # end of 'sys/unix/Makefile.utl'
  1255. fi
  1256. if test -f 'sys/vms/install.com' -a "${1}" != "-c" ; then 
  1257.   echo shar: Will not clobber existing file \"'sys/vms/install.com'\"
  1258. else
  1259. echo shar: Extracting \"'sys/vms/install.com'\" \(6535 characters\)
  1260. sed "s/^X//" >'sys/vms/install.com' <<'END_OF_FILE'
  1261. X$ ! vms/install.com -- set up nethack 'playground'
  1262. X$ !
  1263. X$ ! Use vmsbuild.com to create nethack.exe, makedefs, and lev_comp *first*.
  1264. X$ !
  1265. X$ ! Edit this file to define gamedir & gameuic, or else invoke it with two
  1266. X$ ! command line parameters, as in:
  1267. X$ !    @[.sys.vms]install "disk$users:[games.nethack]" "games"
  1268. X$ ! or    @[.sys.vms]install "[-.play]" "[40,1]"
  1269. X$ !
  1270. X$    ! default location is old playground, default owner is installer
  1271. X$    gamedir = f$trnlnm("HACKDIR")    !location of playground
  1272. X$    gameuic = f$user()        !owner of playground
  1273. X$    ! --- nothing below this line should need to be changed ---
  1274. X$    if p1.nes."" then  gamedir := 'p1'
  1275. X$    if p2.nes."" then  gameuic := 'p2'
  1276. X$
  1277. X$    ! note: all filespecs contain some punctuation,
  1278. X$    !    to avoid inadvertent logical name interaction
  1279. X$    play_files = "PERM.,RECORD.,LOGFILE."
  1280. X$    help_files = "HELP.,HH.,CMDHELP.,WIZHELP.,OPTHELP.,HISTORY.,LICENSE."
  1281. X$    data_files = "DATA.,RUMORS.,ORACLES.,OPTIONS.,QUEST.DAT"
  1282. X$    guidebook  = "[.doc]Guidebook.txt"
  1283. X$    invoc_proc = "[.sys.vms]nethack.com"
  1284. X$    trmcp_file = "[.sys.share]termcap"
  1285. X$    spec_files = "AIR.LEV,ASMODEUS.LEV,ASTRAL.LEV,BAALZ.LEV,BIGROOM.LEV," -
  1286. X           + "CASTLE.LEV,EARTH.LEV,FAKEWIZ%.LEV,FIRE.LEV," -
  1287. X           + "JUIBLEX.LEV,KNOX.LEV,MEDUSA-%.LEV,MINEFILL.LEV," -
  1288. X           + "MINETOWN.LEV,MINE_END.LEV,ORACLE.LEV,ORCUS.LEV," -
  1289. X           + "SANCTUM.LEV,TOWER%.LEV,VALLEY.LEV,WATER.LEV,WIZARD%.LEV"
  1290. X$    spec_input = "bigroom.des castle.des endgame.des " -
  1291. X           + "gehennom.des knox.des medusa.des mines.des " -
  1292. X           + "oracle.des tower.des yendor.des"
  1293. X$    qstl_files = "%-GOAL.LEV,%-FILL%.LEV,%-LOCATE.LEV,%-START.LEV"
  1294. X$    qstl_input = "Arch.des Barb.des Caveman.des Elf.des " -
  1295. X           + "Healer.des Knight.des Priest.des Rogue.des " -
  1296. X           + "Samurai.des Tourist.des Wizard.des Valkyrie.des"
  1297. X$    dngn_files = "DUNGEON."
  1298. X$    dngn_input = "dungeon.pdf"
  1299. X$ makedefs := $sys$disk:[-.util]makedefs
  1300. X$ lev_comp := $sys$disk:[-.util]lev_comp
  1301. X$ dgn_comp := $sys$disk:[-.util]dgn_comp
  1302. X$ milestone = "write sys$output f$fao("" !5%T "",0),"
  1303. X$ if p3.nes."" then  milestone = "!"
  1304. X$!
  1305. X$! make sure we've got a playground location
  1306. X$ gamedir := 'gamedir'
  1307. X$ if gamedir.eqs."" then  gamedir = "[.play]"    !last ditch default
  1308. X$ gamedir = f$parse(gamedir,,,,"SYNTAX_ONLY") - ".;"
  1309. X$ if gamedir.eqs."" then  write sys$error "% must specify playground directory"
  1310. X$ if gamedir.eqs."" then  exit %x1000002C    !ss$_abort
  1311. X$
  1312. X$!
  1313. X$!    ['p3' is used in Makefile.top]
  1314. X$ if p3.nes."" then  goto make_'p3'
  1315. X$
  1316. X$    milestone "<installation...>"
  1317. X$!
  1318. X$make_data:
  1319. X$    ! start from a known location -- [.sys.vms]
  1320. X$    set default 'f$parse(f$environment("PROCEDURE"),,,"DIRECTORY")'
  1321. X$! generate miscellaneous data files
  1322. X$    set default [-.-.dat]    !move to data directory
  1323. X$    milestone "(data)"
  1324. X$ makedefs -d    !data.base -> data
  1325. X$    milestone "(rumors)"
  1326. X$ makedefs -r    !rumors.tru + rumors.fal -> rumors
  1327. X$    milestone "(oracles)"
  1328. X$ makedefs -h    !oracles.txt -> oracles
  1329. X$    milestone "(dungeon preprocess)"
  1330. X$ makedefs -e    !dungeon.def -> dungeon.pdf
  1331. X$    milestone "(quest text)"
  1332. X$ makedefs -q    !quest.txt -> quest.dat
  1333. X$    milestone "(special levels)"
  1334. X$ lev_comp 'spec_input' !special levels
  1335. X$    milestone "(quest levels)"
  1336. X$ lev_comp 'qstl_input' !quest levels
  1337. X$    milestone "(dungeon compile)"
  1338. X$ dgn_comp 'dngn_input' !dungeon database
  1339. X$    set default [-]        !move up
  1340. X$ if p3.nes."" then  exit
  1341. X$
  1342. X$!
  1343. X$! set up the playground and save directories
  1344. X$    milestone "(directories)"
  1345. X$make_directories:
  1346. X$    srctree = f$environment("DEFAULT")
  1347. X$    set default 'gamedir'
  1348. X$ if f$parse("[-]").eqs."" then  create/dir/log [-] !default owner & protection
  1349. X$ if f$parse("[]" ).eqs."" then - !needs to be world writable
  1350. X   create/directory/owner='gameuic'/prot=(s:rwe,o:rwe,g:rwe,w:rwe)/log []
  1351. X$ if f$search("SAVE.DIR;1").eqs."" then -
  1352. X   create/directory/owner='gameuic'/prot=(s:rwe,o:rwe,g:rwe,w:rwe)/log -
  1353. X    [.SAVE]/version_limit=2
  1354. X$    set default 'srctree'
  1355. X$ if p3.nes."" then  exit
  1356. X$!
  1357. X$! create empty writeable files -- logfile, scoreboard, multi-user access lock
  1358. X$    milestone "(writeable files)"
  1359. X$make_writeable_files:
  1360. X!-!$ create/owner='gameuic'/prot=(s:rwed,o:rwed,g:rwed,w:rwed) -
  1361. X!-!    'gamedir''play_files'
  1362. X$    i = 0
  1363. X$ploop: f = f$element(i,",",play_files)
  1364. X$    if f.eqs."," then  goto pdone
  1365. X$    i = i + 1
  1366. X$    f = gamedir + f
  1367. X$    if f$search(f).nes.""    !file already exists
  1368. X$    then    if f$file_attrib(f,"RFM").eqs."STMLF" then  goto ploop
  1369. X$        rename/new_vers 'f' *.old    !needs to be stream_lf
  1370. X$    endif
  1371. X$    create/fdl=sys$input:/owner='gameuic' 'f'/log
  1372. Xfile
  1373. X organization sequential
  1374. X protection (system:rwd,owner:rwd,group:rw,world:rw)
  1375. Xrecord
  1376. X format stream_lf
  1377. X$    goto ploop
  1378. X$pdone:
  1379. X$ if p3.nes."" then  exit
  1380. X$!
  1381. X$! copy over the remaining game files, then make them readonly
  1382. X$    milestone "(readonly files)"
  1383. X$make_readonly_files:
  1384. X$ copy/prot=(s:rwed,o:rwed,g:re,w:re) -
  1385. X    [.dat]'help_files','data_files','spec_files','qstl_files','dngn_files' -
  1386. X    'gamedir'*.*
  1387. X$ set file/owner='gameuic'/prot=(s:re,o:re) -
  1388. X    'gamedir''help_files','data_files','spec_files','qstl_files','dngn_files'
  1389. X$ if p3.nes."" then  exit
  1390. X$!
  1391. X$    milestone "(nethack.exe)"
  1392. X$make_executable:
  1393. X$ copy/prot=(s:rwed,o:rwed,g:re,w:re) [.src]nethack.exe 'gamedir'*.*
  1394. X$ set file/owner='gameuic'/prot=(s:re,o:re) 'gamedir'nethack.exe
  1395. X$ if p3.nes."" then  exit
  1396. X$!
  1397. X$! provide invocation procedure (if available)
  1398. X$make_procedure:
  1399. X$ if f$search(invoc_proc).eqs."" then  goto skip_dcl
  1400. X$ if f$search("''gamedir'nethack.com").nes."" then -
  1401. X    if f$cvtime(f$file_attr("''gamedir'nethack.com","RDT")) -
  1402. X      .ges. f$cvtime(f$file_attr(invoc_proc,"RDT")) then  goto skip_dcl
  1403. X$    milestone "(nethack.com)"
  1404. X$  copy/prot=(s:rwed,o:rwed,g:re,w:re) 'invoc_proc' 'gamedir'nethack.com
  1405. X$  set file/owner='gameuic'/prot=(s:re,o:re) 'gamedir'nethack.com
  1406. X$skip_dcl:
  1407. X$ if p3.nes."" then  exit
  1408. X$!
  1409. X$! provide plain-text Guidebook doc file (if available)
  1410. X$make_documentation:
  1411. X$ if f$search(guidebook).eqs."" then  goto skip_doc
  1412. X$    milestone "(Guidebook)"
  1413. X$  copy/prot=(s:rwed,o:rwed,g:re,w:re) 'guidebook' 'gamedir'Guidebook.doc
  1414. X$  set file/owner='gameuic'/prot=(s:re,o:re) 'gamedir'Guidebook.doc
  1415. X$skip_doc:
  1416. X$ if p3.nes."" then  exit
  1417. X$!
  1418. X$! provide last-resort termcap file (if available)
  1419. X$make_termcap:
  1420. X$ if f$search(trmcp_file).eqs."" then  goto skip_termcap
  1421. X$ if f$search("''gamedir'termcap").nes."" then  goto skip_termcap
  1422. X$    milestone "(termcap)"
  1423. X$  copy/prot=(s:rwed,o:rwed,g:re,w:re) 'trmcp_file' 'gamedir'termcap
  1424. X$  set file/owner='gameuic'/prot=(s:re,o:re) 'gamedir'termcap
  1425. X$skip_termcap:
  1426. X$ if p3.nes."" then  exit
  1427. X$!
  1428. X$! done
  1429. X$    milestone "<done>"
  1430. X$ define/nolog hackdir 'gamedir'
  1431. X$ write sys$output -
  1432. X    f$fao("!/ Nethack installation complete. !/ Playground is !AS !/",gamedir)
  1433. X$ exit
  1434. END_OF_FILE
  1435. if test 6535 -ne `wc -c <'sys/vms/install.com'`; then
  1436.     echo shar: \"'sys/vms/install.com'\" unpacked with wrong size!
  1437. fi
  1438. # end of 'sys/vms/install.com'
  1439. fi
  1440. if test -f 'win/X11/Install.X11' -a "${1}" != "-c" ; then 
  1441.   echo shar: Will not clobber existing file \"'win/X11/Install.X11'\"
  1442. else
  1443. echo shar: Extracting \"'win/X11/Install.X11'\" \(5873 characters\)
  1444. sed "s/^X//" >'win/X11/Install.X11' <<'END_OF_FILE'
  1445. X
  1446. XThis is a first cut at an X11 window port for NetHack.  X11 offers enormous
  1447. Xpotential for NetHack, little of which is realized here.  If you have ideas
  1448. Xand extra time, feel free to send in improvements!
  1449. X
  1450. XThere are no explicit UNIX dependencies in this code, but it is only
  1451. Xknown to work under UNIX, using X11R4 or X11R5.  Other X11R4+ platforms
  1452. Xmay work as well, with some tweaking likely.  Follow WIN* in
  1453. Xsys/unix/Makefile.src for compilation hints.
  1454. X
  1455. XThe reason this uses the Athena widget set is that the Athena widgets come
  1456. Xfree from MIT (like X11).  Unfortunately, the companies that resell X11
  1457. X(value subtracted er, added software; yea, yea, that's the ticket) usually
  1458. Xdiscourage its use by either omitting the set or putting it on the
  1459. X"unsupported" portion of their tape.  If you do not have the Athena
  1460. Xwidgets, you may obtain them via anonymous ftp from export.lcs.mit.edu.
  1461. X
  1462. XTo use this code, define X11_GRAPHICS in include/config.h.  Add $(WINX11SRC),
  1463. X$(WINX11OBJ), and $(WINX11LIB) to WINSRC, WINOBJ, and WINLIB respectively
  1464. Xin src/Makefile.  This will give you an executable supporting both X11 and
  1465. Xtty windowing.
  1466. X
  1467. XIf you want special graphics symbols, you will also need to install one
  1468. Xor both of the included X11 fonts and use the symbol mappings found in
  1469. Xnethack.rc.  The fonts are found in nh10.bdf and ibm.bdf.  You first need
  1470. Xto convert the bdf files to whatever form your X11 server recognizes
  1471. X(usually using a command called bdftosnf, or on Ultrix systems, bdftopcf).
  1472. XThen run mkfontdir on the directory containing your font files (you might
  1473. Xwant to copy them to GAMEDIR, from the top Makefile, after you've done
  1474. X"make install").  If these commands aren't familiar, talk to your local
  1475. XX11 guru and read the man pages.  Finally, add that directory to your
  1476. Xfont search path (e.g. xset fp+ GAMEDIR, setting GAMEDIR to the value of
  1477. XGAMEDIR in the top Makefile).  Alternatively, you (assuming you are a
  1478. Xsystem administrator) can install the fonts in your standard X11 font
  1479. Xdirectory.  If you do not install the fonts in the standard X11 font
  1480. Xdirectory, all persons playing nethack must add that "xset fp+" command
  1481. Xto their .xinitrc file, or whatever file they execute when starting X11.
  1482. XAdding the "xset" command to the nethack.sh is also an alternative, though
  1483. Xit may clutter your X11 font search path after playing several games, so
  1484. Xthis method is not recommended.  See the note below for the alternative
  1485. Xinstallation procedure for Sun's OpenWindows.
  1486. X
  1487. XIf your X11 include files and libraries are not installed in a standard
  1488. Xplace (i.e. /usr/include/X11 and /usr/lib respectively) you will need to
  1489. Xprepend an appropriate -I<idirectory> parameter to CFLAGS and a
  1490. X-L<ldirectory> parameter to LFLAGS, setting <?directory> to the place to
  1491. Xfind the include and library files for X11.
  1492. X
  1493. XFinally, you should also install the NetHack.ad file in the normal X11
  1494. Xapplications defaults directory.  Alternatively, each person may append
  1495. Xthe contents of this file to their .Xdefaults file.  A second
  1496. Xalternative is copy NetHack.ad to GAMEDIR (from the top Makefile) and
  1497. Xadd a line to nethack.sh specifying this additional applications
  1498. Xdefaults directory:
  1499. X    XAPPLRESDIR=$HACKDIR; export XAPPLRESDIR
  1500. X
  1501. XTwo icon suggestions to the window manager are supported:  nh72 and nh56.
  1502. XData for them comes from source files nh72icon and nh56icon and they are
  1503. Xcompiled into the program via #include in winX.c.  Selection between them
  1504. Xis controlled by the "icon" resource in NetHack.ad; the default is nh72.
  1505. X
  1506. XSorry, an Imakefile is not included.  Unlike many X11 programs, X11
  1507. Xsupport is only a small, optional, part of nethack, and the Makefile is
  1508. Xneeded for systems that don't use X11.
  1509. X
  1510. XNotes for Sun's OpenWindows 3.x (2.x will not work):
  1511. X    1.    Define OPENWINBUG in include/unixconf.h.  Add -I/usr/openwin/include
  1512. X    to CFLAGS, -L/usr/openwin/lib to LFLAGS, and -lm to WINX11LIB in
  1513. X    src/Makefile.  (Naturally, if your OpenWindows is installed
  1514. X    elsewhere, adapt the two openwin paths.)  This will allow you
  1515. X    to create a game executable.
  1516. X
  1517. X    2.    Run the fonts through convertfont and run bldfamily on the directory.
  1518. X    The environment variable FONTPATH must include the directory the fonts
  1519. X    are in when NetHack is run.  For a personal installation, setting the
  1520. X    variable in your .profile or .login is the simplest thing.  For a
  1521. X    multi-user installation, add the lines
  1522. X        FONTPATH=$FONTPATH:$HACKDIR/fonts
  1523. X        export FONTPATH
  1524. X    near the top of sys/unix/nethack.sh (before installation), and put
  1525. X    the fonts and associated files in the "fonts" subdirectory of your
  1526. X    GAMEDIR from the top Makefile (after installation via 'make install').
  1527. X
  1528. X    3.  Something must still be done with the NetHack.ad file.  All three
  1529. X    of the possibilities mentioned for standard X11 should work, but
  1530. X    it may be simplest to use the second or third, paralleling your
  1531. X    FONTPATH choice.
  1532. X
  1533. X
  1534. XFile                Description
  1535. X---------    ---------------------------------------------------------------
  1536. Xnethack.rc    - A sample configuration file for fonts nh10 and ibm.
  1537. Xnh10.bdf    - A modified version of the 10x20 standard font.
  1538. Xibm.bdf        - A modified version of one of the ibm (8x14) nethack font.
  1539. X          Must be used in conjunction with NetHack.ad or nethack.rc.
  1540. Xnh32icon    - A 32x32 icon bitmap for use with window managers.
  1541. Xnh56icon    - A 56x56 icon bitmap for use with window managers.
  1542. Xnh72icon    - A 72x72 icon bitmap for use with window managers.
  1543. XNetHack.ad    - A sample .Xdefaults for a color screen.
  1544. X../../include/Window.h
  1545. X../../include/WindowP.h
  1546. XWindow.c    - A bare-bones widget that has 16 colors and a drawing canvas.
  1547. X../../include/winX.h
  1548. X        - Defines for the X window-port.
  1549. Xwin*.c        - Code for the X window-port
  1550. Xdialogs.c    - A better dialog widget.  Original code (modified slightly
  1551. X          by Dean Luick) distributed under the X copyright by Tim
  1552. X          Theisen.  This is from his Ghostview program (which is under
  1553. X          the GNU public license, v2 or higher).
  1554. END_OF_FILE
  1555. if test 5873 -ne `wc -c <'win/X11/Install.X11'`; then
  1556.     echo shar: \"'win/X11/Install.X11'\" unpacked with wrong size!
  1557. fi
  1558. # end of 'win/X11/Install.X11'
  1559. fi
  1560. echo shar: End of archive 100 \(of 108\).
  1561. cp /dev/null ark100isdone
  1562. MISSING=""
  1563. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
  1564. 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 \
  1565. 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 \
  1566. 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 \
  1567. 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 \
  1568. 101 102 103 104 105 106 107 108 ; do
  1569.     if test ! -f ark${I}isdone ; then
  1570.     MISSING="${MISSING} ${I}"
  1571.     fi
  1572. done
  1573. if test "${MISSING}" = "" ; then
  1574.     echo You have unpacked all 108 archives.
  1575.     echo "Now execute 'rebuild.sh'"
  1576.     rm -f ark10[0-8]isdone ark[1-9]isdone ark[1-9][0-9]isdone
  1577. else
  1578.     echo You still need to unpack the following archives:
  1579.     echo "        " ${MISSING}
  1580. fi
  1581. ##  End of shell archive.
  1582. exit 0
  1583.