home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume9 / umoria3 / part31 < prev    next >
Encoding:
Internet Message Format  |  1990-05-21  |  48.4 KB

  1. Path: uunet!cs.utexas.edu!uwm.edu!ogicse!zephyr.ens.tek.com!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v09i086:  umoria3 - single player dungeon simulation (ver. 5.2), Part31/31
  5. Message-ID: <5622@tekred.CNA.TEK.COM>
  6. Date: 17 May 90 16:32:13 GMT
  7. Sender: news@tekred.CNA.TEK.COM
  8. Lines: 1774
  9. Approved: billr@saab.CNA.TEK.COM
  10. Posted: Thu May 17 09:32:13 1990
  11.  
  12. Submitted-by: wilson@ernie.Berkeley.EDU (Jim Wilson)
  13. Posting-number: Volume 9, Issue 86
  14. Archive-name: umoria3/Part31
  15. Supersedes: umoria2: Volume 5, Issue 32-37,41-52,87
  16.  
  17.  
  18.  
  19. #! /bin/sh
  20. # This is a shell archive.  Remove anything before this line, then unpack
  21. # it by saving it into a file and typing "sh file".  To overwrite existing
  22. # files, type "sh file -c".  You can also feed this as standard input via
  23. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  24. # will see the following message at the end:
  25. #        "End of archive 31 (of 31)."
  26. # Contents:  atari_st/atarist.c doc/ERRORS doc/README files/hours
  27. #   files/news files/owizcmds.hlp files/rwizcmds.hlp ibmpc/ERRORS
  28. #   ibmpc/MAKE.BAT ibmpc/MORIA.CNF ibmpc/README ibmpc/TERMCAP
  29. #   ibmpc/ms_ansi.h mac/README mac/dumpres/DumpRes.h
  30. #   mac/dumpres/TestDR.c mac/macdata.c mac/macrsrc.h
  31. #   mac/scrnmgr/ERRORS mac/scrnmgr/ScrnTest.r misc/flock.c
  32. #   misc/funckeys.h misc/mabbrev util/README util/mc/ERRORS
  33. #   util/mc/generic.h util/mc/st.h util/weapons/ERRORS
  34. #   util/weapons/highchar.in util/weapons/lowchar.in
  35. #   util/weapons/medchar.in util/weapons/mkallwpn
  36. #   util/weapons/mkallwpn.lst vms/ERRORS vms/cbreak.c vms/uexit.c
  37. # Wrapped by billr@saab on Wed May 16 11:54:51 1990
  38. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  39. if test -f 'atari_st/atarist.c' -a "${1}" != "-c" ; then 
  40.   echo shar: Will not clobber existing file \"'atari_st/atarist.c'\"
  41. else
  42. echo shar: Extracting \"'atari_st/atarist.c'\" \(818 characters\)
  43. sed "s/^X//" >'atari_st/atarist.c' <<'END_OF_FILE'
  44. X
  45. X#include <stdio.h>
  46. X
  47. X#include "constant.h"
  48. X#include "config.h"
  49. X#include "types.h"
  50. X#include "externs.h"
  51. X
  52. X#if defined(GEMDOS) && (__STDC__ == 0)
  53. X#include <time.h>
  54. X#include <osbind.h>
  55. X#include <bios.h>
  56. X#include "curses.h"
  57. X/* check_input does a non blocking read (consuming the input if any) and
  58. X   returns 1 if there was input pending */
  59. Xint check_input(microsec)
  60. Xint microsec;
  61. X{
  62. X    time_t start;
  63. X    
  64. X    if(microsec != 0 && (turn & (unsigned long)0x3f) == 0){
  65. X        start = clock();
  66. X        while ((clock() <= (start + 100)));/*    half second pause */
  67. X    }
  68. X    if (Bconstat(2) != 0L)
  69. X      {
  70. X        (void) getch();
  71. X        return 1;
  72. X      }
  73. X    else
  74. X      return 0;
  75. X}
  76. X
  77. Xvoid user_name(buf)
  78. Xchar *buf;
  79. X{
  80. X    extern char *getenv();
  81. X    register char *p;
  82. X    
  83. X    if(p=getenv("NAME")) strcpy(buf, p);
  84. X    else if(p=getenv("USER")) strcpy(buf, p);
  85. X    else strcpy(buf, "X");
  86. X}
  87. X#endif
  88. END_OF_FILE
  89. if test 818 -ne `wc -c <'atari_st/atarist.c'`; then
  90.     echo shar: \"'atari_st/atarist.c'\" unpacked with wrong size!
  91. fi
  92. # end of 'atari_st/atarist.c'
  93. fi
  94. if test -f 'doc/ERRORS' -a "${1}" != "-c" ; then 
  95.   echo shar: Will not clobber existing file \"'doc/ERRORS'\"
  96. else
  97. echo shar: Extracting \"'doc/ERRORS'\" \(676 characters\)
  98. sed "s/^X//" >'doc/ERRORS' <<'END_OF_FILE'
  99. Xmoria.ms should:
  100. X
  101. Xthe backslashes in the direction table don't show up in the output for
  102. Xsome reason
  103. X
  104. Xexplain non obvious spells/prayers, many of the priest spells are confusing,
  105. Xreally should have a general section on spells explaining the 'G' command,
  106. Xhow int/wis and level affects number of spells/prayers, how area effect
  107. Xspells work, centering before casting an area effect spell is very useful
  108. Xand perhaps other stuff about spells/magic
  109. X
  110. Xexplain the special inventory/equipment mode?
  111. X
  112. Xexplain how misc abilities depend on level, give table of class versus
  113. Xability showing the relative gain per level values
  114. X
  115. Xmention too-heavy weapons?
  116. X
  117. Xsays nothing about levels and EXP
  118. END_OF_FILE
  119. if test 676 -ne `wc -c <'doc/ERRORS'`; then
  120.     echo shar: \"'doc/ERRORS'\" unpacked with wrong size!
  121. fi
  122. # end of 'doc/ERRORS'
  123. fi
  124. if test -f 'doc/README' -a "${1}" != "-c" ; then 
  125.   echo shar: Will not clobber existing file \"'doc/README'\"
  126. else
  127. echo shar: Extracting \"'doc/README'\" \(1390 characters\)
  128. sed "s/^X//" >'doc/README' <<'END_OF_FILE'
  129. XFEATURES.NEW
  130. X    mentions all of the important user visible changes from
  131. X    umoria 4.87 to umoria 5.x.
  132. X
  133. Xhistory
  134. X    is a brief history of the program umoria.
  135. X
  136. Xmoria.6
  137. X    is the nroff source for a man page for umoria.  Use the command
  138. X    'nroff -man moria.6' to view it.  By default, it assumes that
  139. X    umoria was compiled with the original command set.  If you
  140. X    compiled umoria with the rogue like command set, then remove
  141. X    the three characters defore the .ds command at the start for
  142. X    a more appropriate man page.
  143. X
  144. Xmoria.man
  145. X    is an already processed copy of the man page (with bold and underlined
  146. X    characters removed) for those without the nroff program.
  147. X
  148. Xmoria1.ms, moria2.ms
  149. X    is the document "The Dungeons of Moria".  It is a complete description
  150. X    of the game.  You may want to adjust the margin and line length
  151. X    values at the beginning.  To view it, use the command
  152. X    'tbl moria1.ms moria2.ms | nroff -ms'.  It is split into two
  153. X    parts so that it can be easily mailed.
  154. X
  155. Xmoria1.txt, moria2.txt
  156. X    is an already processed copy of the document "The Dungeons of Moria"
  157. X    (with bold and underlined characters removed) for those without
  158. X    the nroff program.  It is split into two parts so that it can be
  159. X    easily mailed.
  160. X
  161. Xpronounc
  162. X    explains how to pronounce the name moria.
  163. X
  164. Xversions.inf
  165. X    explains the differences between some of the many different
  166. X    versions of moria, and also gives info on how to obtain them.
  167. END_OF_FILE
  168. if test 1390 -ne `wc -c <'doc/README'`; then
  169.     echo shar: \"'doc/README'\" unpacked with wrong size!
  170. fi
  171. # end of 'doc/README'
  172. fi
  173. if test -f 'files/hours' -a "${1}" != "-c" ; then 
  174.   echo shar: Will not clobber existing file \"'files/hours'\"
  175. else
  176. echo shar: Extracting \"'files/hours'\" \(336 characters\)
  177. sed "s/^X//" >'files/hours' <<'END_OF_FILE'
  178. X    Moria operating hours are:
  179. X    |     AM    |    PM        |
  180. X    1          111      111
  181. X    2123456789012123456789012
  182. XSUN:XXXXXXXXXXXXXXXXXXXXXXXX
  183. XMON:XXXXXXXXXXXXXXXXXXXXXXXX
  184. XTUE:XXXXXXXXXXXXXXXXXXXXXXXX
  185. XWED:XXXXXXXXXXXXXXXXXXXXXXXX
  186. XTHU:XXXXXXXXXXXXXXXXXXXXXXXX
  187. XFRI:XXXXXXXXXXXXXXXXXXXXXXXX
  188. XSAT:XXXXXXXXXXXXXXXXXXXXXXXX
  189. X       (X=Open; .=Closed)
  190. END_OF_FILE
  191. if test 336 -ne `wc -c <'files/hours'`; then
  192.     echo shar: \"'files/hours'\" unpacked with wrong size!
  193. fi
  194. # end of 'files/hours'
  195. fi
  196. if test -f 'files/news' -a "${1}" != "-c" ; then 
  197.   echo shar: Will not clobber existing file \"'files/news'\"
  198. else
  199. echo shar: Extracting \"'files/news'\" \(649 characters\)
  200. sed "s/^X//" >'files/news' <<'END_OF_FILE'
  201. X             *********************
  202. X             **   Umoria 5.2    **
  203. X             *********************
  204. X         Copyright (c) 1985 Robert Alan Koeneke
  205. X           Copyright (c) 1989 James E. Wilson
  206. X
  207. XProgrammers : Robert Alan Koeneke / University of Oklahoma
  208. X          Jimmey Wayne Todd     / University of Oklahoma
  209. XUNIX Port : James E. Wilson    / UC Berkeley
  210. X
  211. XThis is a beta release of Umoria 5.2.  Please send bug reports to
  212. Xwilson@ernie.berkeley.EDU or to the USENET newsgroup rec.games.moria.
  213. X
  214. XPlease read the file doc/FEATURES.NEW.  In particular, note the new commands
  215. X'G' for learning spells, and '=' for setting options.  Also, to attack
  216. Xinvisible creatures in walls, you must tunnel.
  217. END_OF_FILE
  218. if test 649 -ne `wc -c <'files/news'`; then
  219.     echo shar: \"'files/news'\" unpacked with wrong size!
  220. fi
  221. # end of 'files/news'
  222. fi
  223. if test -f 'files/owizcmds.hlp' -a "${1}" != "-c" ; then 
  224.   echo shar: Will not clobber existing file \"'files/owizcmds.hlp'\"
  225. else
  226. echo shar: Extracting \"'files/owizcmds.hlp'\" \(376 characters\)
  227. sed "s/^X//" >'files/owizcmds.hlp' <<'END_OF_FILE'
  228. X:  - Map area.
  229. X^A - Remove Curse and Cure all maladies.
  230. X^B - Print random objects sample.
  231. X^D - Down/Up n levels.
  232. X^E - Change character.
  233. X^F - Delete monsters.
  234. X^G - Allocate treasures.
  235. X^H - Wizard Help.
  236. X^I - Identify.
  237. X^J - Gain experience.
  238. X^L - Wizard light.
  239. X^T - Teleport player.
  240. X^U  - Summon monster.
  241. X^W - Wizard password on/off.
  242. X@ - Create any object *CAN CAUSE FATAL ERROR*
  243. END_OF_FILE
  244. if test 376 -ne `wc -c <'files/owizcmds.hlp'`; then
  245.     echo shar: \"'files/owizcmds.hlp'\" unpacked with wrong size!
  246. fi
  247. # end of 'files/owizcmds.hlp'
  248. fi
  249. if test -f 'files/rwizcmds.hlp' -a "${1}" != "-c" ; then 
  250.   echo shar: Will not clobber existing file \"'files/rwizcmds.hlp'\"
  251. else
  252. echo shar: Extracting \"'files/rwizcmds.hlp'\" \(376 characters\)
  253. sed "s/^X//" >'files/rwizcmds.hlp' <<'END_OF_FILE'
  254. X*  - Wizard light.
  255. X:  - Map area.
  256. X\  - Wizard Help.
  257. X^A - Remove Curse and Cure all maladies.
  258. X^D - Down/Up n levels.
  259. X^E - Change character.
  260. X^F - Delete monsters.
  261. X^G - Allocate treasures.
  262. X^I - Identify.
  263. X^O - Print random objects sample.
  264. X^T - Teleport player.
  265. X^W - Wizard password on/off.
  266. X@  - Create any object *CAN CAUSE FATAL ERROR*
  267. X+  - Gain experience.
  268. X&  - Summon monster.
  269. END_OF_FILE
  270. if test 376 -ne `wc -c <'files/rwizcmds.hlp'`; then
  271.     echo shar: \"'files/rwizcmds.hlp'\" unpacked with wrong size!
  272. fi
  273. # end of 'files/rwizcmds.hlp'
  274. fi
  275. if test -f 'ibmpc/ERRORS' -a "${1}" != "-c" ; then 
  276.   echo shar: Will not clobber existing file \"'ibmpc/ERRORS'\"
  277. else
  278. echo shar: Extracting \"'ibmpc/ERRORS'\" \(135 characters\)
  279. sed "s/^X//" >'ibmpc/ERRORS' <<'END_OF_FILE'
  280. Xthe two files Makefile and Makefile.XNX are obsolete, and need to be
  281. Xupdated
  282. X
  283. Xthe config.doc file is obsolete, and needs to be updated
  284. END_OF_FILE
  285. if test 135 -ne `wc -c <'ibmpc/ERRORS'`; then
  286.     echo shar: \"'ibmpc/ERRORS'\" unpacked with wrong size!
  287. fi
  288. # end of 'ibmpc/ERRORS'
  289. fi
  290. if test -f 'ibmpc/MAKE.BAT' -a "${1}" != "-c" ; then 
  291.   echo shar: Will not clobber existing file \"'ibmpc/MAKE.BAT'\"
  292. else
  293. echo shar: Extracting \"'ibmpc/MAKE.BAT'\" \(162 characters\)
  294. sed "s/^X//" >'ibmpc/MAKE.BAT' <<'END_OF_FILE'
  295. Xcl -c -AL -Os -Gs -Zp -Gt32 -DPC_CURSES *.c
  296. Xlink <mlink.lnk
  297. Xexemod moria.exe /stack 3fff
  298. Xrename moria.exe moria.xxx
  299. Xexepack moria.xxx moria.exe
  300. Xdelete moria.xxx
  301. X
  302. END_OF_FILE
  303. if test 162 -ne `wc -c <'ibmpc/MAKE.BAT'`; then
  304.     echo shar: \"'ibmpc/MAKE.BAT'\" unpacked with wrong size!
  305. fi
  306. # end of 'ibmpc/MAKE.BAT'
  307. fi
  308. if test -f 'ibmpc/MORIA.CNF' -a "${1}" != "-c" ; then 
  309.   echo shar: Will not clobber existing file \"'ibmpc/MORIA.CNF'\"
  310. else
  311. echo shar: Extracting \"'ibmpc/MORIA.CNF'\" \(2485 characters\)
  312. sed "s/^X//" >'ibmpc/MORIA.CNF' <<'END_OF_FILE'
  313. X# Configuration file for PC MORIA 4.87
  314. X#
  315. X# All lines that have the # character as the first character are
  316. X# comment lines.  Blank lines are totally ignored.
  317. X
  318. X
  319. X
  320. X##################################################################
  321. X###                  Configuration                             ###
  322. X##################################################################
  323. X
  324. X# MORIA is very easy to configure.  The biggest problem is that there
  325. X# is not enough room on a single 360K floppy disk to hold the DOS
  326. X# DOS system files, MORIA.EXE (about 340K) and a MORIA save file
  327. X# (about 80K or so).  Below are a few methods for configuring MORIA
  328. X# depending on your disk storage.  Once you decide which method to
  329. X# use, follow the instructions then remove the comment character ('#')
  330. X# from the beginning of the lines that start with 'SAVE' and 'SCORE'.
  331. X# Only remove the '#' from 1 pair of lines.
  332. X
  333. X
  334. X
  335. X#################### 1 hard disk systems #########################
  336. X#
  337. X# Create a C:\games subdirectory on your hard disk and put C:\games
  338. X# on your PATH.  Copy MORIA.EXE and MORIA.CNF to C:\games.
  339. X#
  340. X#SAVE c:\games\moria.sav;n
  341. X#SCORE c:\games\moria.scr
  342. X
  343. X
  344. X#################### 2 360K floppy disk systems ##################
  345. X#
  346. X# Format /s a floppy disk and copy MORIA.CNF to it.   Format (no /s)
  347. X# a second floppy disk and copy MORIA.EXE to it.  When you want to play
  348. X# MORIA, put the first diskette in drive A, the second in drive B and
  349. X# type B:MORIA
  350. X#
  351. X#SAVE a:\moria.sav
  352. X#SCORE a:\moria.scr
  353. X
  354. X
  355. X#################### 1 high density floppy disk systems ##########
  356. X#
  357. X# Format /s 1 high-density diskette and copy MORIA.CNF and MORIA.EXE
  358. X# to it.
  359. X#
  360. X#SAVE a:\moria.sav
  361. X#SCORE a:\moria.scr
  362. X
  363. X
  364. X
  365. X
  366. X##################################################################
  367. X###                  Other OPTIONS                             ###
  368. X##################################################################
  369. X
  370. X# These graphics characters are a solid box and a centered dot
  371. XGRAPHICS 177 249
  372. X
  373. X# IBMbios option enables the numeric keypad.  Possibly unusable
  374. X# on a non-IBM clone.
  375. XIBMBIOS
  376. X
  377. X# Rawio makes output somewhat faster and allows ^P (control P) to
  378. X# be used for the "previous message" MORIA command.  Cannot be
  379. X# used on a Dec Rainbow.
  380. X#RAWIO
  381. X
  382. X# Being used to LARN and HACK, I prefer the ROGUE-like interface
  383. XKEYBOARD ROGUE
  384. X
  385. X# It is possible to have MORIA output ANSI sequences, rather than
  386. X# use BIOS calls.  This "ANSI" option is required for Dec Rainbows
  387. X# and other computers that are not IBM BIOS compatible.
  388. X#ANSI
  389. END_OF_FILE
  390. if test 2485 -ne `wc -c <'ibmpc/MORIA.CNF'`; then
  391.     echo shar: \"'ibmpc/MORIA.CNF'\" unpacked with wrong size!
  392. fi
  393. # end of 'ibmpc/MORIA.CNF'
  394. fi
  395. if test -f 'ibmpc/README' -a "${1}" != "-c" ; then 
  396.   echo shar: Will not clobber existing file \"'ibmpc/README'\"
  397. else
  398. echo shar: Extracting \"'ibmpc/README'\" \(85 characters\)
  399. sed "s/^X//" >'ibmpc/README' <<'END_OF_FILE'
  400. X
  401. XTo compile this program, you need a copy of PC-Curses, a screen management
  402. Xpackage.
  403. END_OF_FILE
  404. if test 85 -ne `wc -c <'ibmpc/README'`; then
  405.     echo shar: \"'ibmpc/README'\" unpacked with wrong size!
  406. fi
  407. # end of 'ibmpc/README'
  408. fi
  409. if test -f 'ibmpc/TERMCAP' -a "${1}" != "-c" ; then 
  410.   echo shar: Will not clobber existing file \"'ibmpc/TERMCAP'\"
  411. else
  412. echo shar: Extracting \"'ibmpc/TERMCAP'\" \(1337 characters\)
  413. sed "s/^X//" >'ibmpc/TERMCAP' <<'END_OF_FILE'
  414. X# Termcap file for PC MORIA.  This file will only be necessary if you
  415. X# are using the "ANSI" option in MORIA.CNF (see README for details).
  416. X# For PCs, ATs and clones, there is no reason to use the "ANSI" option
  417. X# and this file can be safely discarded.  For DEC Rainbow users, this
  418. X# file is required.  It must be either in the current directory, in
  419. X# directory \ETC, or somewhere on the PATH for MORIA to find it
  420. X#
  421. X# Monochrome IBMPC.
  422. X#    This is a termcap for the NANSI.SYS device driver.
  423. X#    It is the same as the ANSI termcap, except NANSI supports
  424. X#    line insert (al) and delete (dl) while ANSI does not.
  425. X#
  426. Xibmpc-mono:\
  427. X    :co#80:\
  428. X    :li#24:\
  429. X    :cl=\E[2J:\
  430. X    :bs:\
  431. X    :ho=\E[H:\
  432. X    :cm=\E[%i%2;%2H:\
  433. X    :up=\E[A:\
  434. X    :xd=\E[B:\
  435. X    :nd=\E[C:\
  436. X    :bc=\E[D:\
  437. X    :ce=\E[K:\
  438. X    :ti=\E[m:\
  439. X    :te=\E[m:\
  440. X    :so=\E[1m:\
  441. X    :se=\E[m:\
  442. X    :us=\E[1m:\
  443. X    :ue=\E[m:\
  444. X    :al=\E[L:\
  445. X    :dl=\E[M:
  446. X#
  447. X# Color IBMPC.
  448. X#    This is a termcap for the NANSI.SYS device driver.
  449. X#    It is the same as the ANSI termcap, except NANSI supports
  450. X#    line insert (al) and delete (dl) while ANSI does not.
  451. X#
  452. X#    Gratiously supplied by Darren Friedlein.
  453. X#
  454. Xibmpc-color:\
  455. X    :co#80:\
  456. X    :li#24:\
  457. X    :cl=\E[2J:\
  458. X    :bs:\
  459. X    :ho=\E[H:\
  460. X    :cm=\E[%i%2;%2H:\
  461. X    :up=\E[A:\
  462. X    :xd=\E[B:\
  463. X    :nd=\E[C:\
  464. X    :bc=\E[D:\
  465. X    :ce=\E[K:\
  466. X    :ti=\E[44;37m\E1m:\
  467. X    :te=\E[0m:\
  468. X    :so=\E[31m:\
  469. X    :se=\E[37m:\
  470. X    :us=\E[33m:\
  471. X    :ue=\E[37m:\
  472. X    :al=\E[L:\
  473. X    :dl=\E[M:
  474. END_OF_FILE
  475. if test 1337 -ne `wc -c <'ibmpc/TERMCAP'`; then
  476.     echo shar: \"'ibmpc/TERMCAP'\" unpacked with wrong size!
  477. fi
  478. # end of 'ibmpc/TERMCAP'
  479. fi
  480. if test -f 'ibmpc/ms_ansi.h' -a "${1}" != "-c" ; then 
  481.   echo shar: Will not clobber existing file \"'ibmpc/ms_ansi.h'\"
  482. else
  483. echo shar: Extracting \"'ibmpc/ms_ansi.h'\" \(2225 characters\)
  484. sed "s/^X//" >'ibmpc/ms_ansi.h' <<'END_OF_FILE'
  485. X/* ms_ansi.h: ANSI definitions for MSDOS
  486. X
  487. X   Copyright (c) 1989 James E. Wilson, Don Kneller
  488. X
  489. X   This software may be copied and distributed for educational, research, and
  490. X   not for profit purposes provided that this copyright and statement are
  491. X   included in all such copies. */
  492. X
  493. X/* To allow the choice between PCcurses (which may not work on all machines)
  494. X * and ANSI (which should work on all machines), indirect the output routines
  495. X * through pointers and adjust the pointers to the correct routines at
  496. X * initialization time.
  497. X */
  498. X#ifdef LINT_ARGS
  499. Xint    (*output_addch)(int);
  500. Xint    (*output_mvaddstr)(int, int, char *);
  501. Xint    (*output_mvprintw)(int, int, char *, ...);
  502. Xint    (*output_move)(int, int);
  503. Xint    (*output_endwin)(void);
  504. Xint    (*output_clrtobot)(void);
  505. Xint    (*output_clrtoeol)(void);
  506. Xint    (*output_mvaddch)(int, int, char);
  507. Xint    (*output_initscr)(void);
  508. Xint    (*output_refresh)(void);
  509. Xint    (*output_clear)(void);
  510. X
  511. Xint    (*output_nocrmode)(void);
  512. Xint    (*output_crmode)(void);
  513. Xint    (*output_nonl)(void);
  514. Xint    (*output_nl)(void);
  515. Xint    (*output_noecho)(void);
  516. Xint    (*output_echo)(void);
  517. X#else
  518. Xextern int    (*output_addch)();
  519. Xextern int    (*output_mvaddstr)();
  520. Xextern int    (*output_mvprintw)();
  521. Xextern int    (*output_move)();
  522. Xextern int    (*output_endwin)();
  523. Xextern int    (*output_clrtobot)();
  524. Xextern int    (*output_clrtoeol)();
  525. Xextern int    (*output_mvaddch)();
  526. Xextern int    (*output_initscr)();
  527. Xextern int    (*output_refresh)();
  528. Xextern int    (*output_clear)();
  529. X
  530. Xextern int    (*output_nocrmode)();
  531. Xextern int    (*output_crmode)();
  532. Xextern int    (*output_nonl)();
  533. Xextern int    (*output_nl)();
  534. Xextern int    (*output_noecho)();
  535. Xextern int    (*output_echo)();
  536. X#endif
  537. X
  538. Xextern int    ansi;
  539. X
  540. X#define addch        (*output_addch)
  541. X#define mvaddstr    (*output_mvaddstr)
  542. X#define mvprintw    (*output_mvprintw)
  543. X#undef move        /* from curses.h */
  544. X#define move        (*output_move)
  545. X#define endwin        (*output_endwin)
  546. X#define clrtobot    (*output_clrtobot)
  547. X#define clrtoeol    (*output_clrtoeol)
  548. X#define mvaddch        (*output_mvaddch)
  549. X#define initscr        (*output_initscr)
  550. X#define refresh        (*output_refresh)
  551. X#define clear        (*output_clear)
  552. X#define nocrmode    (*output_nocrmode)
  553. X#define crmode        (*output_crmode)
  554. X#define nonl        (*output_nonl)
  555. X#define nl        (*output_nl)
  556. X#define noecho        (*output_noecho)
  557. X#define echo        (*output_echo)
  558. END_OF_FILE
  559. if test 2225 -ne `wc -c <'ibmpc/ms_ansi.h'`; then
  560.     echo shar: \"'ibmpc/ms_ansi.h'\" unpacked with wrong size!
  561. fi
  562. # end of 'ibmpc/ms_ansi.h'
  563. fi
  564. if test -f 'mac/README' -a "${1}" != "-c" ; then 
  565.   echo shar: Will not clobber existing file \"'mac/README'\"
  566. else
  567. echo shar: Extracting \"'mac/README'\" \(1305 characters\)
  568. sed "s/^X//" >'mac/README' <<'END_OF_FILE'
  569. X1.    To build Moria on the mac, you will need MPW C 3.0 or better.
  570. X
  571. X2.    The top directory of the source distribution is denoted "{DistDir}"
  572. X    in the rest of this document.  It has as an immediate subdirectory
  573. X    "mac" which contains the file you are now reading, and an MPW script
  574. X    called "Install".
  575. X
  576. X3.    The "Install" script configures the files of the source distribution
  577. X    for use with MPW.  It also creates a new directory on your disk into
  578. X    which the files required to build the game will be moved (since they
  579. X    are spread out across several directories as received).  Invoke this
  580. X    script as follows --
  581. X    
  582. X    a.    Set the directory to "{DistDir}mac"
  583. X    b.    Execute the command "Install {DistDir} {NewDir}" where "{NewDir}"
  584. X        is the name of the directory you want created to hold all the
  585. X        source required to build to mac version of the game.
  586. X        
  587. X4.    The mac version of the game uses two subroutine packages which must
  588. X    be built first as follows --
  589. X    
  590. X    a.    Set the directory to "{DistDir}mac:scrnmgr"
  591. X    b.    Build (cmd-B) "Install" (or execute "BuildProgram Install").
  592. X    c.    Set the directory to "{DistDir}mac:dumpres"
  593. X    d.    Build (cmd-B) "Install" (or execute "BuildProgram Install").
  594. X    
  595. X5.    Now the game can be built as follows --
  596. X
  597. X    a.    Set the directory to "{NewDir}"
  598. X    b.    Build (cmd-B) "Moria" (or execute "BuildProgram Moria").
  599. END_OF_FILE
  600. if test 1305 -ne `wc -c <'mac/README'`; then
  601.     echo shar: \"'mac/README'\" unpacked with wrong size!
  602. fi
  603. # end of 'mac/README'
  604. fi
  605. if test -f 'mac/dumpres/DumpRes.h' -a "${1}" != "-c" ; then 
  606.   echo shar: Will not clobber existing file \"'mac/dumpres/DumpRes.h'\"
  607. else
  608. echo shar: Extracting \"'mac/dumpres/DumpRes.h'\" \(345 characters\)
  609. sed "s/^X//" >'mac/dumpres/DumpRes.h' <<'END_OF_FILE'
  610. Xvoid DumpRes(
  611. X    char *fileName,
  612. X    int resType, int resID, char *resName, int resAttrs,
  613. X    char *elemPtr, unsigned elemCnt, unsigned elemSiz,
  614. X    void (*strProc)(char *elem, void (*proc)(char **str))
  615. X);
  616. X
  617. Xint LoadRes(
  618. X    char **memPtr,
  619. X    int resType, int resID,
  620. X    unsigned elemCnt, unsigned elemSiz,
  621. X    void (*strProc)(char *elem, void (*proc)(char **str))
  622. X);
  623. END_OF_FILE
  624. if test 345 -ne `wc -c <'mac/dumpres/DumpRes.h'`; then
  625.     echo shar: \"'mac/dumpres/DumpRes.h'\" unpacked with wrong size!
  626. fi
  627. # end of 'mac/dumpres/DumpRes.h'
  628. fi
  629. if test -f 'mac/dumpres/TestDR.c' -a "${1}" != "-c" ; then 
  630.   echo shar: Will not clobber existing file \"'mac/dumpres/TestDR.c'\"
  631. else
  632. echo shar: Extracting \"'mac/dumpres/TestDR.c'\" \(1031 characters\)
  633. sed "s/^X//" >'mac/dumpres/TestDR.c' <<'END_OF_FILE'
  634. X#include <StdIO.h>
  635. X
  636. X#include <Resources.h>
  637. X
  638. X#include "DumpRes.h"
  639. X
  640. Xtypedef struct {
  641. X    char *name;
  642. X    int x, y, z;
  643. X} Test;
  644. X
  645. XTest table[5] = {
  646. X    { "Huron", 1, 2, 3 },
  647. X    { "Ontario", 4, 5, 6 },
  648. X    { "Michigan", 7, 8, 9 },
  649. X    { "Erie", 10, 11, 12 },
  650. X    { "Superior", 13, 14, 15 }
  651. X};
  652. X
  653. XTest *data;
  654. X
  655. Xvoid MyStrProc(ptr, proc)
  656. Xchar *ptr;
  657. Xvoid (*proc)(char **);
  658. X
  659. X{
  660. X    (*proc)(&((Test *) ptr)->name);
  661. X    return;
  662. X}
  663. X
  664. Xmain()
  665. X
  666. X{
  667. X    short resFile;
  668. X    int i, rc;
  669. X    
  670. X    DumpRes(
  671. X        "DumpResTest.rsrc",
  672. X        'TEST', 256, "Test Data", 0,
  673. X        (char *) table, 5, sizeof(Test),
  674. X        MyStrProc
  675. X    );
  676. X    
  677. X    resFile = OpenResFile("\pDumpResTest.rsrc");
  678. X    
  679. X    if (resFile != -1) {
  680. X    
  681. X        data = NULL;
  682. X        
  683. X        rc = LoadRes(
  684. X            &((char *) data),
  685. X            'TEST', 256,
  686. X            5, sizeof(Test),
  687. X            MyStrProc
  688. X        );
  689. X        
  690. X        if (rc)
  691. X            for (i = 0; i < 5; i++)
  692. X                fprintf(stderr, "%s : %d %d %d\n", data[i].name, data[i].x, data[i].y, data[i].z);
  693. X                
  694. X        else
  695. X            fprintf(stderr, "LoadRes failed.\n");
  696. X            
  697. X        CloseResFile(resFile);
  698. X        
  699. X    }
  700. X    
  701. X    else
  702. X        fprintf(stderr, "Unable to open file for LoadRes testing.\n");
  703. X        
  704. X    return(0);
  705. X}
  706. END_OF_FILE
  707. if test 1031 -ne `wc -c <'mac/dumpres/TestDR.c'`; then
  708.     echo shar: \"'mac/dumpres/TestDR.c'\" unpacked with wrong size!
  709. fi
  710. # end of 'mac/dumpres/TestDR.c'
  711. fi
  712. if test -f 'mac/macdata.c' -a "${1}" != "-c" ; then 
  713.   echo shar: Will not clobber existing file \"'mac/macdata.c'\"
  714. else
  715. echo shar: Extracting \"'mac/macdata.c'\" \(2384 characters\)
  716. sed "s/^X//" >'mac/macdata.c' <<'END_OF_FILE'
  717. X/* This program creates the initialized global data resources.        */
  718. X/* It is compiled as an MPW tool.                                    */
  719. X
  720. X/* Monsters.c, treasur1.c, treasur2.c, variable.c are included.        */
  721. X/* But, when this program is built, the compiler is instructed to    */
  722. X/* actually include the initialized global data.  We just copy it    */
  723. X/* into resource handles and dump them to the executable.            */
  724. X
  725. X/* Why do this?  MPW handles >32K global data ok (otherwise, this    */
  726. X/* program could not compile).  However, we have to pay the price    */
  727. X/* in efficiency.  The code hacks to keep the global data in        */
  728. X/* resources are trivial, mainly redefining the variable to be a    */
  729. X/* pointer instead of an array.  This scheme has the added            */
  730. X/* advantage of providing a means for re-initialization of the        */
  731. X/* global data.  MacMoria, which is "restartable" requires this.    */
  732. X
  733. X/* See macrsrc.c for a list of variables involved.                    */
  734. X
  735. X#include <stdio.h>
  736. X
  737. X#include <types.h>
  738. X#include <memory.h>
  739. X
  740. X#include <dumpres.h>
  741. X
  742. X#include "macrsrc.h"
  743. X
  744. X#define RES_ATTRS                0
  745. X
  746. Xmain(argc, argv)
  747. Xint argc;
  748. Xchar *argv[];
  749. X
  750. X{
  751. X    int i;
  752. X    unsigned size, temp;
  753. X    char *p, *q;
  754. X    restable_type *r;
  755. X    
  756. X    if (argc != 2) {
  757. X        fprintf(stderr, "### %s: Usage - %s targetFileName\n", argv[0], argv[0]);
  758. X        return(1);
  759. X    }
  760. X    
  761. X    for (i = 0, r = restable; i < MAX_RESOURCES; i++, r++) {
  762. X    
  763. X        DumpRes(
  764. X            argv[1],
  765. X            r->resType, r->resID, r->resName, RES_ATTRS,
  766. X            r->memPtr, r->elemCnt, r->elemSiz,
  767. X            r->strProc
  768. X        );
  769. X        
  770. X    }
  771. X    
  772. X    size = 0;
  773. X    for (i = 0; i < MAX_RESTART; i++) size += restart_vars[i].size;
  774. X    
  775. X    p = NewPtr(size);
  776. X    if (p == NULL) {
  777. X        fprintf(stderr, "Cannot get %d bytes for restart vars.\n", size);
  778. X        exit(1);
  779. X    }
  780. X    
  781. X    q = p;
  782. X    for (i = 0; i < MAX_RESTART; i++) {
  783. X        BlockMove(restart_vars[i].ptr, q, restart_vars[i].size);
  784. X        q += restart_vars[i].size;
  785. X    }
  786. X    
  787. X    DumpRes(
  788. X        argv[1],
  789. X        restartRsrc, restart_id, "Restart Vars", RES_ATTRS,
  790. X        p, 1, size,
  791. X        NULL
  792. X    );
  793. X    
  794. X    printf("restable info --\n");
  795. X    for (i = 0, size = 0; i < MAX_RESOURCES; ++i) {
  796. X        size += (temp = restable[i].elemCnt * restable[i].elemSiz);
  797. X        printf("%3d  %8d\n", i, temp);
  798. X    }
  799. X    printf("     --------\n");
  800. X    printf("     %8d\n\n", size);
  801. X    
  802. X    printf("memtable info --\n");
  803. X    for (i = 0, size = 0; i < MAX_PTRS; ++i) {
  804. X        size += (temp = memtable[i].elemCnt * memtable[i].elemSiz);
  805. X        printf("%3d  %8d\n", i, temp);
  806. X    }
  807. X    printf("     --------\n");
  808. X    printf("     %8d\n\n", size);
  809. X    
  810. X    return(0);
  811. X}
  812. END_OF_FILE
  813. if test 2384 -ne `wc -c <'mac/macdata.c'`; then
  814.     echo shar: \"'mac/macdata.c'\" unpacked with wrong size!
  815. fi
  816. # end of 'mac/macdata.c'
  817. fi
  818. if test -f 'mac/macrsrc.h' -a "${1}" != "-c" ; then 
  819.   echo shar: Will not clobber existing file \"'mac/macrsrc.h'\"
  820. else
  821. echo shar: Extracting \"'mac/macrsrc.h'\" \(1786 characters\)
  822. sed "s/^X//" >'mac/macrsrc.h' <<'END_OF_FILE'
  823. X#define treasureRsrc        'TREA'
  824. X#define monsterRsrc            'MONS'
  825. X#define spellRsrc            'SPLL'
  826. X#define charPtrRsrc            'CPTR'
  827. X#define raceRsrc            'RACE'
  828. X#define backgroundRsrc        'BKGD'
  829. X#define ownerRsrc            'OWNR'
  830. X
  831. X#define restartRsrc            'RSRT'
  832. X
  833. X#define stringRsrc            'STR#'
  834. X
  835. X#define object_list_id        128
  836. X#define c_list_id            129
  837. X#define magic_spell_id        130
  838. X#define race_id                131
  839. X#define background_id        132
  840. X#define owners_id            133
  841. X#define player_title_id        134
  842. X#define colors_id            135
  843. X#define mushrooms_id        136
  844. X#define woods_id            137
  845. X#define metals_id            138
  846. X#define rocks_id            139
  847. X#define amulets_id            140
  848. X#define syllables_id        141
  849. X
  850. X#define restart_id            150
  851. X
  852. Xtypedef struct restable_type {
  853. X    #ifdef RSRC
  854. X        char *memPtr;
  855. X    #else
  856. X        char **memPtr;
  857. X    #endif
  858. X    char *resName;
  859. X    int resType, resID;
  860. X    unsigned elemCnt, elemSiz;
  861. X    void (*strProc)(char *ptr, void (*proc)(char **str));
  862. X    int restartFlag;
  863. X} restable_type;
  864. X
  865. X#define MAX_RESOURCES            14
  866. X
  867. Xextern restable_type restable[MAX_RESOURCES];
  868. X
  869. Xtypedef struct memtable_type {
  870. X    char **memPtr;
  871. X    unsigned elemCnt, elemSiz;
  872. X    int restartFlag;
  873. X} memtable_type;
  874. X
  875. X#define MAX_PTRS                3
  876. X
  877. Xextern memtable_type memtable[MAX_PTRS];
  878. X
  879. Xtypedef struct restart_type {
  880. X    char *ptr;
  881. X    unsigned size;
  882. X} restart_type;
  883. X
  884. X#define MAX_RESTART                37
  885. X
  886. Xextern restart_type restart_vars[MAX_RESTART];
  887. X
  888. Xtypedef struct clrtable_type {
  889. X    char *ptr;
  890. X    unsigned size;
  891. X} clrtable_type;
  892. X
  893. X#define MAX_CLRS                15
  894. X
  895. Xextern clrtable_type clrtable[MAX_CLRS];
  896. X
  897. Xvoid treasure_strproc(char *ptr, void (*proc)(char **str));
  898. Xvoid creature_strproc(char *ptr, void (*proc)(char **str));
  899. Xvoid race_strproc(char *ptr, void (*proc)(char **str));
  900. Xvoid background_strproc(char *ptr, void (*proc)(char **str));
  901. Xvoid owner_strproc(char *ptr, void (*proc)(char **str));
  902. Xvoid char_ptr_strproc(char *ptr, void (*proc)(char **str));
  903. END_OF_FILE
  904. if test 1786 -ne `wc -c <'mac/macrsrc.h'`; then
  905.     echo shar: \"'mac/macrsrc.h'\" unpacked with wrong size!
  906. fi
  907. # end of 'mac/macrsrc.h'
  908. fi
  909. if test -f 'mac/scrnmgr/ERRORS' -a "${1}" != "-c" ; then 
  910.   echo shar: Will not clobber existing file \"'mac/scrnmgr/ERRORS'\"
  911. else
  912. echo shar: Extracting \"'mac/scrnmgr/ERRORS'\" \(196 characters\)
  913. sed "s/^X//" >'mac/scrnmgr/ERRORS' <<'END_OF_FILE'
  914. Xthe file ScrnMgr.c was greater than 60K, so it was split into two parts,
  915. XScrnMgr1.c and ScrnMgr2.c, so that it could be posted to comp.sources.games,
  916. Xthe MakeFile needs to be fixed to handle this
  917. END_OF_FILE
  918. if test 196 -ne `wc -c <'mac/scrnmgr/ERRORS'`; then
  919.     echo shar: \"'mac/scrnmgr/ERRORS'\" unpacked with wrong size!
  920. fi
  921. # end of 'mac/scrnmgr/ERRORS'
  922. fi
  923. if test -f 'mac/scrnmgr/ScrnTest.r' -a "${1}" != "-c" ; then 
  924.   echo shar: Will not clobber existing file \"'mac/scrnmgr/ScrnTest.r'\"
  925. else
  926. echo shar: Extracting \"'mac/scrnmgr/ScrnTest.r'\" \(1803 characters\)
  927. sed "s/^X//" >'mac/scrnmgr/ScrnTest.r' <<'END_OF_FILE'
  928. X/*    Copyright (C) Curtis McCauley, 1989.  All rights reserved.
  929. X
  930. X    You may copy this subroutine package freely, modify it as you desire,
  931. X    and distribute it at will, as long as the copyright notice in the source
  932. X    material is not disturbed, excepting that no one may use this package or
  933. X    any part of it for commercial purposes of any kind without the express
  934. X    written consent of its author. */
  935. X    
  936. X#include "Types.r"
  937. X
  938. Xinclude "ScrnMgr.rsrc";
  939. X
  940. Xresource 'STR ' (128, "About Title", purgeable) {
  941. X    "About ScrnTest\311"
  942. X};
  943. X
  944. Xresource 'DITL' (1024, "Dummy Alert", purgeable) {
  945. X    {    /* array DITLarray: 2 elements */
  946. X        /* [1] */
  947. X        {88, 224, 108, 284},
  948. X        Button {
  949. X            enabled,
  950. X            "Ok"
  951. X        },
  952. X        /* [2] */
  953. X        {8, 64, 72, 288},
  954. X        StaticText {
  955. X            disabled,
  956. X            "This is a dummy alert."
  957. X        }
  958. X    }
  959. X};
  960. X
  961. Xresource 'ALRT' (1024, "Dummy Alert", purgeable) {
  962. X    {40, 42, 158, 352},
  963. X    1024,
  964. X    {    /* array: 4 elements */
  965. X        /* [1] */
  966. X        OK, visible, sound1,
  967. X        /* [2] */
  968. X        OK, visible, sound1,
  969. X        /* [3] */
  970. X        OK, visible, sound1,
  971. X        /* [4] */
  972. X        OK, visible, sound1
  973. X    }
  974. X};
  975. X
  976. Xresource 'MENU' (133, "ScrnTest") {
  977. X    133,
  978. X    textMenuProc,
  979. X    allEnabled,
  980. X    enabled,
  981. X    "ScrnTest",
  982. X    {    /* array: 2 elements */
  983. X        /* [1] */
  984. X        "X Out", noIcon, "", "", plain,
  985. X        /* [2] */
  986. X        "Dummy Alert", noIcon, "A", "", plain
  987. X    }
  988. X};
  989. X
  990. Xresource 'MENU' (233, "ScrnTest (No Keys)") {
  991. X    233,
  992. X    textMenuProc,
  993. X    allEnabled,
  994. X    enabled,
  995. X    "ScrnTest",
  996. X    {    /* array: 2 elements */
  997. X        /* [1] */
  998. X        "X Out", noIcon, "", "", plain,
  999. X        /* [2] */
  1000. X        "Dummy Alert", noIcon, "", "", plain
  1001. X    }
  1002. X};
  1003. X
  1004. Xresource 'SIZE' (-1) {
  1005. X    dontSaveScreen,
  1006. X    acceptSuspendResumeEvents,
  1007. X    enableOptionSwitch,
  1008. X    canBackground,
  1009. X    multiFinderAware,
  1010. X    backgroundAndForeground,
  1011. X    dontGetFrontClicks,
  1012. X    ignoreChildDiedEvents,
  1013. X    not32BitCompatible,
  1014. X    reserved,
  1015. X    reserved,
  1016. X    reserved,
  1017. X    reserved,
  1018. X    reserved,
  1019. X    reserved,
  1020. X    reserved,
  1021. X    128 * 1024,
  1022. X    128 * 1024    
  1023. X};
  1024. END_OF_FILE
  1025. if test 1803 -ne `wc -c <'mac/scrnmgr/ScrnTest.r'`; then
  1026.     echo shar: \"'mac/scrnmgr/ScrnTest.r'\" unpacked with wrong size!
  1027. fi
  1028. # end of 'mac/scrnmgr/ScrnTest.r'
  1029. fi
  1030. if test -f 'misc/flock.c' -a "${1}" != "-c" ; then 
  1031.   echo shar: Will not clobber existing file \"'misc/flock.c'\"
  1032. else
  1033. echo shar: Extracting \"'misc/flock.c'\" \(1155 characters\)
  1034. sed "s/^X//" >'misc/flock.c' <<'END_OF_FILE'
  1035. X
  1036. X#ifdef USG
  1037. X
  1038. X/*                                                                    -CJS-
  1039. X// The following code is provided especially for systems which
  1040. X// have no flock system call. It has never been tested.
  1041. X*/
  1042. X
  1043. X#define L_SET 0
  1044. X
  1045. X#define LOCK_EX    1
  1046. X#define LOCK_SH    2
  1047. X#define LOCK_NB    4
  1048. X#define LOCK_UN    8
  1049. X
  1050. X/*
  1051. X// An flock HACK. LOCK_SH and LOCK_EX are not distinguished. DO NOT release a
  1052. X// lock which you failed to set! ALWAYS release a lock you set!
  1053. X*/
  1054. XSTATIC flock(f, l)
  1055. Xint f, l;
  1056. X{
  1057. X  struct stat sbuf;
  1058. X  char lockname[80];
  1059. X
  1060. X  if(fstat(f,  &sbuf) < 0)
  1061. X    return FALSE;
  1062. X  (void) sprintf(lockname, "/tmp/moria.%d", sbuf.st_ino);
  1063. X  if(l & LOCK_UN){
  1064. X    return unlink(lockname);
  1065. X    }
  1066. X  while(open(lockname, O_WRONLY|O_CREAT|O_EXCL, 0) < 0){
  1067. X    if(errno != EEXIST)
  1068. X      return FALSE;
  1069. X    if(stat(lockname, &sbuf) < 0)
  1070. X      return FALSE;
  1071. X/*
  1072. X// Log Locks which last more than 10 seconds get deleted.
  1073. X*/
  1074. X    if((f == logfile_fd || f == lstfile_fd)
  1075. X       && time((long *)0) - sbuf.st_mtime > 10) {
  1076. X      if (unlink(lockname) < 0)
  1077. X    return FALSE;
  1078. X      }
  1079. X    else if(l & LOCK_NB)
  1080. X      return FALSE;
  1081. X    else
  1082. X      (void) sleep(1);
  1083. X    }
  1084. X  return TRUE;
  1085. X}
  1086. X#endif
  1087. END_OF_FILE
  1088. if test 1155 -ne `wc -c <'misc/flock.c'`; then
  1089.     echo shar: \"'misc/flock.c'\" unpacked with wrong size!
  1090. fi
  1091. # end of 'misc/flock.c'
  1092. fi
  1093. if test -f 'misc/funckeys.h' -a "${1}" != "-c" ; then 
  1094.   echo shar: Will not clobber existing file \"'misc/funckeys.h'\"
  1095. else
  1096. echo shar: Extracting \"'misc/funckeys.h'\" \(1110 characters\)
  1097. sed "s/^X//" >'misc/funckeys.h' <<'END_OF_FILE'
  1098. X/* funckeys.h*/
  1099. X/* default mappings for SUN-3 function keys */
  1100. X
  1101. X#define FCHAR '['
  1102. X
  1103. Xchar keyarray[50];
  1104. Xchar rkeys[] = {
  1105. X    INPUT_ERROR,            /* nothing */
  1106. X    INPUT_ERROR,            /* r1 */
  1107. X    INPUT_ERROR,            /* r2 */
  1108. X    INPUT_ERROR,            /* r3 */
  1109. X    '7',            /* r4 */
  1110. X    '8',            /* r5 */
  1111. X    '9',            /* r6 */
  1112. X    '4',            /* r7 */
  1113. X    '5',            /* r8 */
  1114. X    '6',            /* r9 */
  1115. X    '1',            /* r10 */
  1116. X    '2',            /* r11 */
  1117. X    '3',            /* r12 */
  1118. X    INPUT_ERROR,            /* r13 */
  1119. X    INPUT_ERROR,            /* r14 */
  1120. X    '.'                /* r15 */
  1121. X};
  1122. X
  1123. Xchar lkeys[] = {
  1124. X    INPUT_ERROR,
  1125. X    INPUT_ERROR,            /* l1 */
  1126. X    INPUT_ERROR,            /* l2 */
  1127. X    INPUT_ERROR,            /* l3 */
  1128. X    INPUT_ERROR,            /* l4 */
  1129. X    INPUT_ERROR,            /* l5 */
  1130. X    INPUT_ERROR,            /* l6 */
  1131. X    INPUT_ERROR,            /* l7 */
  1132. X    INPUT_ERROR,            /* l8 */
  1133. X    INPUT_ERROR,            /* l9 */
  1134. X    INPUT_ERROR                /* l10 */
  1135. X};
  1136. X
  1137. Xchar fkeys[] = {
  1138. X    INPUT_ERROR,
  1139. X    INPUT_ERROR,            /* f1 */
  1140. X    INPUT_ERROR,            /* f2 */
  1141. X    INPUT_ERROR,            /* f3 */
  1142. X    INPUT_ERROR,            /* f4 */
  1143. X    INPUT_ERROR,            /* f5 */
  1144. X    INPUT_ERROR,            /* f6 */
  1145. X    INPUT_ERROR,            /* f7 */
  1146. X    INPUT_ERROR,            /* f8 */
  1147. X    INPUT_ERROR,            /* f9 */
  1148. X};
  1149. END_OF_FILE
  1150. if test 1110 -ne `wc -c <'misc/funckeys.h'`; then
  1151.     echo shar: \"'misc/funckeys.h'\" unpacked with wrong size!
  1152. fi
  1153. # end of 'misc/funckeys.h'
  1154. fi
  1155. if test -f 'misc/mabbrev' -a "${1}" != "-c" ; then 
  1156.   echo shar: Will not clobber existing file \"'misc/mabbrev'\"
  1157. else
  1158. echo shar: Extracting \"'misc/mabbrev'\" \(1326 characters\)
  1159. sed "s/^X//" >'misc/mabbrev' <<'END_OF_FILE'
  1160. Xglobal
  1161. X ESC-[-2-1-0-z    R3
  1162. X ESC-[-2-0-2-z    L8
  1163. X ESC-[-2-3-1-z    F5
  1164. X ESC-[-2-3-6-z    F8
  1165. X ESC-[-M-A    DoubleMouseLeft
  1166. X ESC-[-M-B    DoubleMouseMiddle
  1167. X ESC-[-M-C    DoubleMouseRight
  1168. X ESC-[-2-2-0-z    R13
  1169. X ESC-[-2-1-2-z    R5
  1170. X ESC-[-2-0-4-z    L9
  1171. X ESC-[-M-^A    MouseLeft
  1172. X ESC-[-2-3-3-z    F6
  1173. X ESC-[-M-^B    MouseMiddle
  1174. X ESC-[-2-2-5-z    F2
  1175. X ESC-[-M-^C    MouseRight
  1176. X ESC-[-2-0-9-z    R2
  1177. X ESC-[-M-^E    ShiftMouseLeft
  1178. X ESC-[-M-^F    ShiftMouseMiddle
  1179. X ESC-[-M-^G    ShiftMouseRight
  1180. X ESC-[-1-9-4-z    L2
  1181. X ESC-[-M-^I    CtrlMouseLeft
  1182. X ESC-[-M-^J    CtrlMouseMiddle
  1183. X ESC-[-M-^K    CtrlMouseRight
  1184. X ESC-[-2-0-1-z    L7
  1185. X ESC-[-M-^Q    MetaMouseLeft
  1186. X ESC-[-M-^R    MetaMouseMiddle
  1187. X ESC-[-M-^S    MetaMouseRight
  1188. X ESC-[-2-2-2-z    R15
  1189. X ESC-[-2-1-4-z    R7
  1190. X ESC-[-2-0-6-z    L10
  1191. X ESC-[-2-3-5-z    F7
  1192. X ESC-[-2-2-7-z    F4
  1193. X ESC-[-1-9-6-z    L4
  1194. X ESC-[-2-1-1-z    R4
  1195. X ESC-[-2-2-4-z    F1
  1196. X ESC-[-2-1-6-z    R9
  1197. X ESC-[-2-0-8-z    R1
  1198. X ESC-[-2-3-7-z    F9
  1199. X ESC-[-2-2-9-z    F4
  1200. X ESC-[-1-9-8-z    L5
  1201. X ESC-[-M-!    ModelineMouseLeft
  1202. X ESC-[-2-0-0-z    L6
  1203. X ESC-[-M-"    ModelineMouseMiddle
  1204. X ESC-[-M-#    ModelineMouseRight
  1205. X ESC-[-2-1-3-z    R6
  1206. X ESC-[-M-'    ShiftModelineMouseRight
  1207. X ESC-[-2-2-6-z    F3
  1208. X ESC-[-M-)    CtrlModelineMouseLeft
  1209. X ESC-[-A    R8
  1210. X ESC-[-2-1-8-z    R11
  1211. X ESC-[-B    R14
  1212. X ESC-[-C    R12
  1213. X ESC-[-D    R10
  1214. X ESC-[-1-9-5-z    L3
  1215. Xnormal-mode
  1216. Xtext-mode
  1217. Xelec-c
  1218. X main    main
  1219. X default    default
  1220. X do    do
  1221. X while    while
  1222. X else    else
  1223. X if    if
  1224. X switch    switch
  1225. X argc    argc
  1226. X for    for
  1227. X #d    #define
  1228. X #i    #include
  1229. X case    case
  1230. X
  1231. END_OF_FILE
  1232. if test 1326 -ne `wc -c <'misc/mabbrev'`; then
  1233.     echo shar: \"'misc/mabbrev'\" unpacked with wrong size!
  1234. fi
  1235. # end of 'misc/mabbrev'
  1236. fi
  1237. if test -f 'util/README' -a "${1}" != "-c" ; then 
  1238.   echo shar: Will not clobber existing file \"'util/README'\"
  1239. else
  1240. echo shar: Extracting \"'util/README'\" \(722 characters\)
  1241. sed "s/^X//" >'util/README' <<'END_OF_FILE'
  1242. Xmap.c is obsolete print map to file code from 4.87
  1243. X
  1244. Xmc is the monster compiler by Joseph N Hall, eventually, this will be
  1245. Xused to generate the monster.c file, which should be more maintainable than
  1246. Xthe current method
  1247. X
  1248. Xmcheck.inf: my and David J. Grabiner's ideas on monster consistency, and
  1249. Xchecks that should be added to the monster compiler
  1250. X
  1251. Xmonster.cng: a list of some of the changes to the monster.c file, is this
  1252. Xstill needed?
  1253. X
  1254. Xprintit.c: some code which would pretty print item/monster descriptions for
  1255. Xumoria 4.87, by Carl Hommel, obsolete
  1256. X
  1257. Xshowmon.c: obsolete code from 4.87 for printing the monster dictionary,
  1258. Xsuperceded by the monster memories
  1259. X
  1260. Xweapons: a program which roughly indicates which weapons are best
  1261. END_OF_FILE
  1262. if test 722 -ne `wc -c <'util/README'`; then
  1263.     echo shar: \"'util/README'\" unpacked with wrong size!
  1264. fi
  1265. # end of 'util/README'
  1266. fi
  1267. if test -f 'util/mc/ERRORS' -a "${1}" != "-c" ; then 
  1268.   echo shar: Will not clobber existing file \"'util/mc/ERRORS'\"
  1269. else
  1270. echo shar: Extracting \"'util/mc/ERRORS'\" \(334 characters\)
  1271. sed "s/^X//" >'util/mc/ERRORS' <<'END_OF_FILE'
  1272. Xbefore calling writecreatures in main(), should call a subroutine
  1273. Xverifycreatures, i.e. check to make sure no conflicting bits are set
  1274. X
  1275. Xwould prefer 'a' for cchar instead of "a"
  1276. X
  1277. Xprefer exp over xp
  1278. X
  1279. Xprefer 2d4 instead of 2 d 4
  1280. X
  1281. Xshould be able to specify none/void or similar for empty slots
  1282. X
  1283. Xneed descriptions for all of the monsters
  1284. END_OF_FILE
  1285. if test 334 -ne `wc -c <'util/mc/ERRORS'`; then
  1286.     echo shar: \"'util/mc/ERRORS'\" unpacked with wrong size!
  1287. fi
  1288. # end of 'util/mc/ERRORS'
  1289. fi
  1290. if test -f 'util/mc/generic.h' -a "${1}" != "-c" ; then 
  1291.   echo shar: Will not clobber existing file \"'util/mc/generic.h'\"
  1292. else
  1293. echo shar: Extracting \"'util/mc/generic.h'\" \(529 characters\)
  1294. sed "s/^X//" >'util/mc/generic.h' <<'END_OF_FILE'
  1295. X/*
  1296. X * generic.h
  1297. X *
  1298. X * useful generic union type, used here and there
  1299. X *
  1300. X * Author:
  1301. X * Joseph Nathan Hall
  1302. X */
  1303. X
  1304. X#ifndef _GENERIC_H_
  1305. X#define _GENERIC_H_
  1306. X
  1307. Xtypedef union {
  1308. X    int    i;
  1309. X    long    l;
  1310. X    float    f;
  1311. X    double    d;
  1312. X    char    c;
  1313. X    char    *s;
  1314. X    char    **s_A;
  1315. X    char    *v;
  1316. X    } generic_t, *generic_Pt;
  1317. X
  1318. X#define GEN_TYPE_NONE 0
  1319. X#define GEN_TYPE_INT 1
  1320. X#define GEN_TYPE_LONG 2
  1321. X#define GEN_TYPE_FLOAT 3
  1322. X#define GEN_TYPE_DOUBLE 4
  1323. X#define GEN_TYPE_CHAR 5
  1324. X#define GEN_TYPE_STRING 6
  1325. X#define GEN_TYPE_STRING_A 7
  1326. X#define GEN_TYPE_VOID_PTR 8
  1327. X
  1328. X#endif /* _GENERIC_H_ */
  1329. END_OF_FILE
  1330. if test 529 -ne `wc -c <'util/mc/generic.h'`; then
  1331.     echo shar: \"'util/mc/generic.h'\" unpacked with wrong size!
  1332. fi
  1333. # end of 'util/mc/generic.h'
  1334. fi
  1335. if test -f 'util/mc/st.h' -a "${1}" != "-c" ; then 
  1336.   echo shar: Will not clobber existing file \"'util/mc/st.h'\"
  1337. else
  1338. echo shar: Extracting \"'util/mc/st.h'\" \(1481 characters\)
  1339. sed "s/^X//" >'util/mc/st.h' <<'END_OF_FILE'
  1340. X/*
  1341. X * st.h
  1342. X *    
  1343. X * definitions for the symbol table module
  1344. X *
  1345. X * Author:
  1346. X * Joseph Nathan Hall
  1347. X */
  1348. X
  1349. X#ifndef _ST_H_
  1350. X#define    _ST_H_
  1351. X
  1352. X#ifndef TRUE
  1353. X#define TRUE 1
  1354. X#endif
  1355. X
  1356. X#ifndef FALSE
  1357. X#define FALSE 0
  1358. X#endif
  1359. X
  1360. X/*
  1361. X * Needs generic_t
  1362. X */
  1363. X
  1364. X#include "generic.h"
  1365. X
  1366. X/*
  1367. X * maximum length of symbol strings
  1368. X */
  1369. X
  1370. X#define ST_MAX_SYM_LEN        32
  1371. X
  1372. X/*
  1373. X * Struct for individual entries
  1374. X */
  1375. X
  1376. Xtypedef    struct st_EntryStruct {
  1377. X
  1378. X    char    name[ST_MAX_SYM_LEN];    /* symbol string            */
  1379. X    int        type;            /* symbol type                */
  1380. X    struct st_EntryStruct *next_P;    /* next entry in chain            */
  1381. X    generic_t    gval;            /* symbol value                */
  1382. X
  1383. X} st_Entry_t, *st_Entry_Pt;
  1384. X
  1385. X/*
  1386. X * Struct for table header
  1387. X */
  1388. X
  1389. Xtypedef struct {
  1390. X
  1391. X    char    name[ST_MAX_SYM_LEN];    
  1392. X                    /* table name                */
  1393. X    int        size,            /* size of table to be allocated        */
  1394. X        entryCt;        /* # of entries in table currently        */
  1395. X    st_Entry_Pt    *tab_A;            /* vector of ptrs to entries        */
  1396. X
  1397. X} st_Table_t, *st_Table_Pt;
  1398. X
  1399. X#define    ST_SYM_FOUND        0
  1400. X#define ST_OK            0
  1401. X#define ST_SYM_NOT_FOUND    1
  1402. X#define ST_NULL_TABLE        2
  1403. X
  1404. X#define ST_MAX_INPUT_LEN    256
  1405. X
  1406. X/*
  1407. X * functions defined in st_symtab.c
  1408. X */
  1409. X
  1410. Xextern st_Table_Pt St_NewTable();
  1411. Xextern void St_DelTable();
  1412. Xextern int St_GetSym();
  1413. Xextern int St_DefSym();
  1414. Xextern int St_ReplSym();
  1415. Xextern int St_DelSym();
  1416. Xextern st_Table_Pt St_GetTable();
  1417. Xextern void St_DumpTable();
  1418. Xextern char **St_ListTable();
  1419. Xextern char **St_SListTable();
  1420. Xextern int St_TableSize();
  1421. X
  1422. X#endif /* _ST_H_ */
  1423. X
  1424. END_OF_FILE
  1425. if test 1481 -ne `wc -c <'util/mc/st.h'`; then
  1426.     echo shar: \"'util/mc/st.h'\" unpacked with wrong size!
  1427. fi
  1428. # end of 'util/mc/st.h'
  1429. fi
  1430. if test -f 'util/weapons/ERRORS' -a "${1}" != "-c" ; then 
  1431.   echo shar: Will not clobber existing file \"'util/weapons/ERRORS'\"
  1432. else
  1433. echo shar: Extracting \"'util/weapons/ERRORS'\" \(386 characters\)
  1434. sed "s/^X//" >'util/weapons/ERRORS' <<'END_OF_FILE'
  1435. Xthe program is a bit simplistic, as it does not consider monster AC,
  1436. Xand does not correctly handle weapons that are too heavy to wield properly
  1437. X
  1438. Xthe README, dragon.inf, and weapons.lst files are probably out of date,
  1439. Xand need to be updated
  1440. X
  1441. Xthe README and dragon.inf files contain info that doesn't belong here,
  1442. Xperhaps create a hints file in the doc directory that contains this info?
  1443. END_OF_FILE
  1444. if test 386 -ne `wc -c <'util/weapons/ERRORS'`; then
  1445.     echo shar: \"'util/weapons/ERRORS'\" unpacked with wrong size!
  1446. fi
  1447. # end of 'util/weapons/ERRORS'
  1448. fi
  1449. if test -f 'util/weapons/highchar.in' -a "${1}" != "-c" ; then 
  1450.   echo shar: Will not clobber existing file \"'util/weapons/highchar.in'\"
  1451. else
  1452. echo shar: Extracting \"'util/weapons/highchar.in'\" \(858 characters\)
  1453. sed "s/^X//" >'util/weapons/highchar.in' <<'END_OF_FILE'
  1454. X36
  1455. X44
  1456. X160      1d8 10 10
  1457. X 95      1d9 10 10
  1458. X150      2d4 10 10
  1459. X140      3d4 10 10
  1460. X180      2d8 10 10
  1461. X170      3d4 10 10
  1462. X180      2d6 10 10
  1463. X160      2d6 10 10
  1464. X150      2d5 10 10
  1465. X 40      1d4 10 10
  1466. X110      1d7 10 10
  1467. X 20      1d4 10 10
  1468. X 30      1d5 10 10
  1469. X 15      1d4 10 10
  1470. X 12      1d4 10 10
  1471. X260      4d5 10 10
  1472. X170      1d10 10 10
  1473. X150      2d6 10 10
  1474. X 30      1d5 10 10
  1475. X190      2d6 10 10
  1476. X190      3d4 10 10
  1477. X 30      1d4 10 10
  1478. X120      3d4 10 10
  1479. X300      2d8 10 10
  1480. X130      1d10 10 10
  1481. X120      2d5 10 10
  1482. X120      2d4 10 10
  1483. X180      3d4 10 10
  1484. X150      2d6 10 10
  1485. X160      2d5 10 10
  1486. X 40      1d6 10 10
  1487. X 50      1d7 10 10
  1488. X 75      1d6 10 10
  1489. X 50      1d6 10 10
  1490. X100      1d7 10 10
  1491. X 80      1d6 10 10
  1492. X280      3d6 10 10
  1493. X200      3d6 10 10
  1494. X180      3d6 10 10
  1495. X240      4d5 10 10
  1496. X200      4d4 10 10
  1497. X280      4d6 10 10
  1498. X120      3d3 10 10
  1499. X100      1d3 10 10
  1500. X18/100 18/100
  1501. END_OF_FILE
  1502. if test 858 -ne `wc -c <'util/weapons/highchar.in'`; then
  1503.     echo shar: \"'util/weapons/highchar.in'\" unpacked with wrong size!
  1504. fi
  1505. # end of 'util/weapons/highchar.in'
  1506. fi
  1507. if test -f 'util/weapons/lowchar.in' -a "${1}" != "-c" ; then 
  1508.   echo shar: Will not clobber existing file \"'util/weapons/lowchar.in'\"
  1509. else
  1510. echo shar: Extracting \"'util/weapons/lowchar.in'\" \(762 characters\)
  1511. sed "s/^X//" >'util/weapons/lowchar.in' <<'END_OF_FILE'
  1512. X10
  1513. X44
  1514. X160      1d8 3 3
  1515. X 95      1d9 3 3
  1516. X150      2d4 3 3
  1517. X140      3d4 3 3
  1518. X180      2d8 3 3
  1519. X170      3d4 3 3
  1520. X180      2d6 3 3
  1521. X160      2d6 3 3
  1522. X150      2d5 3 3
  1523. X 40      1d4 3 3
  1524. X110      1d7 3 3
  1525. X 20      1d4 3 3
  1526. X 30      1d5 3 3
  1527. X 15      1d4 3 3
  1528. X 12      1d4 3 3
  1529. X260      4d5 3 3
  1530. X170      1d10 3 3
  1531. X150      2d6 3 3
  1532. X 30      1d5 3 3
  1533. X190      2d6 3 3
  1534. X190      3d4 3 3
  1535. X 30      1d4 3 3
  1536. X120      3d4 3 3
  1537. X300      2d8 3 3
  1538. X130      1d10 3 3
  1539. X120      2d5 3 3
  1540. X120      2d4 3 3
  1541. X180      3d4 3 3
  1542. X150      2d6 3 3
  1543. X160      2d5 3 3
  1544. X 40      1d6 3 3
  1545. X 50      1d7 3 3
  1546. X 75      1d6 3 3
  1547. X 50      1d6 3 3
  1548. X100      1d7 3 3
  1549. X 80      1d6 3 3
  1550. X280      3d6 3 3
  1551. X200      3d6 3 3
  1552. X180      3d6 3 3
  1553. X240      4d5 3 3
  1554. X200      4d4 3 3
  1555. X280      4d6 3 3
  1556. X120      3d3 3 3
  1557. X100      1d3 3 3
  1558. X11 15
  1559. END_OF_FILE
  1560. if test 762 -ne `wc -c <'util/weapons/lowchar.in'`; then
  1561.     echo shar: \"'util/weapons/lowchar.in'\" unpacked with wrong size!
  1562. fi
  1563. # end of 'util/weapons/lowchar.in'
  1564. fi
  1565. if test -f 'util/weapons/medchar.in' -a "${1}" != "-c" ; then 
  1566.   echo shar: Will not clobber existing file \"'util/weapons/medchar.in'\"
  1567. else
  1568. echo shar: Extracting \"'util/weapons/medchar.in'\" \(762 characters\)
  1569. sed "s/^X//" >'util/weapons/medchar.in' <<'END_OF_FILE'
  1570. X20
  1571. X44
  1572. X160      1d8 6 6
  1573. X 95      1d9 6 6
  1574. X150      2d4 6 6
  1575. X140      3d4 6 6
  1576. X180      2d8 6 6
  1577. X170      3d4 6 6
  1578. X180      2d6 6 6
  1579. X160      2d6 6 6
  1580. X150      2d5 6 6
  1581. X 40      1d4 6 6
  1582. X110      1d7 6 6
  1583. X 20      1d4 6 6
  1584. X 30      1d5 6 6
  1585. X 15      1d4 6 6
  1586. X 12      1d4 6 6
  1587. X260      4d5 6 6
  1588. X170      1d10 6 6
  1589. X150      2d6 6 6
  1590. X 30      1d5 6 6
  1591. X190      2d6 6 6
  1592. X190      3d4 6 6
  1593. X 30      1d4 6 6
  1594. X120      3d4 6 6
  1595. X300      2d8 6 6
  1596. X130      1d10 6 6
  1597. X120      2d5 6 6
  1598. X120      2d4 6 6
  1599. X180      3d4 6 6
  1600. X150      2d6 6 6
  1601. X160      2d5 6 6
  1602. X 40      1d6 6 6
  1603. X 50      1d7 6 6
  1604. X 75      1d6 6 6
  1605. X 50      1d6 6 6
  1606. X100      1d7 6 6
  1607. X 80      1d6 6 6
  1608. X280      3d6 6 6
  1609. X200      3d6 6 6
  1610. X180      3d6 6 6
  1611. X240      4d5 6 6
  1612. X200      4d4 6 6
  1613. X280      4d6 6 6
  1614. X120      3d3 6 6
  1615. X100      1d3 6 6
  1616. X18 18
  1617. END_OF_FILE
  1618. if test 762 -ne `wc -c <'util/weapons/medchar.in'`; then
  1619.     echo shar: \"'util/weapons/medchar.in'\" unpacked with wrong size!
  1620. fi
  1621. # end of 'util/weapons/medchar.in'
  1622. fi
  1623. if test -f 'util/weapons/mkallwpn' -a "${1}" != "-c" ; then 
  1624.   echo shar: Will not clobber existing file \"'util/weapons/mkallwpn'\"
  1625. else
  1626. echo shar: Extracting \"'util/weapons/mkallwpn'\" \(369 characters\)
  1627. sed "s/^X//" >'util/weapons/mkallwpn' <<'END_OF_FILE'
  1628. X#!/bin/sh
  1629. X
  1630. X#
  1631. X# this shell script will generate a formated list of what all weapons will
  1632. X# do 
  1633. X
  1634. Xin=$1
  1635. Xout=`basename $in .in`.out
  1636. X
  1637. Xecho "          Name                | Mblow | Blows | wt ratio | dam | w/ critical |" >$out
  1638. X
  1639. Xcalchits <$in \ |
  1640. X   sed -n -e "2,45p" | cut -c10-10,14-17,19-30,35-45,49-53,57- | \
  1641. X   paste -d" " mkallwpn.lst - | sort -t"|" -bnr +5 -6 >>$out
  1642. X
  1643. END_OF_FILE
  1644. if test 369 -ne `wc -c <'util/weapons/mkallwpn'`; then
  1645.     echo shar: \"'util/weapons/mkallwpn'\" unpacked with wrong size!
  1646. fi
  1647. chmod +x 'util/weapons/mkallwpn'
  1648. # end of 'util/weapons/mkallwpn'
  1649. fi
  1650. if test -f 'util/weapons/mkallwpn.lst' -a "${1}" != "-c" ; then 
  1651.   echo shar: Will not clobber existing file \"'util/weapons/mkallwpn.lst'\"
  1652. else
  1653. echo shar: Extracting \"'util/weapons/mkallwpn.lst'\" \(1320 characters\)
  1654. sed "s/^X//" >'util/weapons/mkallwpn.lst' <<'END_OF_FILE'
  1655. XAwl-Pike                     
  1656. XBacksword                    
  1657. XBall and Chain               
  1658. XBastard Sword                
  1659. XBattle Axe (Balestarius)     
  1660. XBattle Axe (European)        
  1661. XBeaked Axe                   
  1662. XBroad Axe                    
  1663. XBroadsword                   
  1664. XCat-O-Nine Tails             
  1665. XCutlass                      
  1666. XDagger (Bodkin)              
  1667. XDagger (Main Gauche)         
  1668. XDagger (Misercorde)          
  1669. XDagger (Stiletto)            
  1670. XExecutioner's Sword          
  1671. XFauchard                     
  1672. XFlail                        
  1673. XFoil                         
  1674. XGlaive                       
  1675. XHalberd                      
  1676. XJavelin                      
  1677. XKatana                       
  1678. XLance                        
  1679. XLongsword                    
  1680. XLucerne Hammer               
  1681. XMace                         
  1682. XMace (Lead filled)           
  1683. XMorningstar                  
  1684. XPike                         
  1685. XRapier                       
  1686. XSabre                        
  1687. XSmall Sword                  
  1688. XSpear                        
  1689. XThrusting Sword (Baselard)   
  1690. XThrusting Sword (Bilbo)      
  1691. XTwo Handed Great Flail       
  1692. XTwo Handed Sword (Claymore)  
  1693. XTwo Handed Sword (Espadon)   
  1694. XTwo Handed Sword (Flamberge) 
  1695. XTwo Handed Sword (No-Dachi)  
  1696. XTwo Handed Sword (Zweihander)
  1697. XWar Hammer                   
  1698. XWooden Club                  
  1699. END_OF_FILE
  1700. if test 1320 -ne `wc -c <'util/weapons/mkallwpn.lst'`; then
  1701.     echo shar: \"'util/weapons/mkallwpn.lst'\" unpacked with wrong size!
  1702. fi
  1703. # end of 'util/weapons/mkallwpn.lst'
  1704. fi
  1705. if test -f 'vms/ERRORS' -a "${1}" != "-c" ; then 
  1706.   echo shar: Will not clobber existing file \"'vms/ERRORS'\"
  1707. else
  1708. echo shar: Extracting \"'vms/ERRORS'\" \(120 characters\)
  1709. sed "s/^X//" >'vms/ERRORS' <<'END_OF_FILE'
  1710. Xthe VMS support is incomplete
  1711. X
  1712. XMakefile is obsolete and needs to be updated, and other files are
  1713. Xprobably obsolete also
  1714. END_OF_FILE
  1715. if test 120 -ne `wc -c <'vms/ERRORS'`; then
  1716.     echo shar: \"'vms/ERRORS'\" unpacked with wrong size!
  1717. fi
  1718. # end of 'vms/ERRORS'
  1719. fi
  1720. if test -f 'vms/cbreak.c' -a "${1}" != "-c" ; then 
  1721.   echo shar: Will not clobber existing file \"'vms/cbreak.c'\"
  1722. else
  1723. echo shar: Extracting \"'vms/cbreak.c'\" \(47 characters\)
  1724. sed "s/^X//" >'vms/cbreak.c' <<'END_OF_FILE'
  1725. Xcbreak()
  1726. X{
  1727. X    return;
  1728. X}
  1729. X
  1730. Xnocbreak()
  1731. X{
  1732. X    return;
  1733. X}
  1734. END_OF_FILE
  1735. if test 47 -ne `wc -c <'vms/cbreak.c'`; then
  1736.     echo shar: \"'vms/cbreak.c'\" unpacked with wrong size!
  1737. fi
  1738. # end of 'vms/cbreak.c'
  1739. fi
  1740. if test -f 'vms/uexit.c' -a "${1}" != "-c" ; then 
  1741.   echo shar: Will not clobber existing file \"'vms/uexit.c'\"
  1742. else
  1743. echo shar: Extracting \"'vms/uexit.c'\" \(535 characters\)
  1744. sed "s/^X//" >'vms/uexit.c' <<'END_OF_FILE'
  1745. X/*    special exit command, to exit cleanly from VMS program.
  1746. X
  1747. X    Unix programs usually return 0 for "good execution",
  1748. X    and 1 for "some problem occured."  In VMS, we WANT the
  1749. X    program to return a 1, or else we get an ugly
  1750. X    "%NONAME-W-NOMSG, Message number 00000000"
  1751. X    message upon image exit (yeech!).
  1752. X
  1753. X    So, we convert 0 exit codes to 1's, leaving all others alone.
  1754. X*/
  1755. Xuexit(exitcode)
  1756. Xint exitcode;
  1757. X{
  1758. X    if(exitcode == 0)    /* On Unix, clean, on VMS, yeech! */
  1759. X        exit(1);    /* converted... */
  1760. X    else
  1761. X        exit(exitcode); /* returned unscathed... */
  1762. X}
  1763. END_OF_FILE
  1764. if test 535 -ne `wc -c <'vms/uexit.c'`; then
  1765.     echo shar: \"'vms/uexit.c'\" unpacked with wrong size!
  1766. fi
  1767. # end of 'vms/uexit.c'
  1768. fi
  1769. echo shar: End of archive 31 \(of 31\).
  1770. cp /dev/null ark31isdone
  1771. MISSING=""
  1772. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ; do
  1773.     if test ! -f ark${I}isdone ; then
  1774.     MISSING="${MISSING} ${I}"
  1775.     fi
  1776. done
  1777. if test "${MISSING}" = "" ; then
  1778.     echo You have unpacked all 31 archives.
  1779.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1780. else
  1781.     echo You still need to unpack the following archives:
  1782.     echo "        " ${MISSING}
  1783. fi
  1784. ##  End of shell archive.
  1785. exit 0
  1786.