home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!paladin.american.edu!darwin.sura.net!mips!swrinde!elroy.jpl.nasa.gov!usc!rpi!uwm.edu!ogicse!zephyr.ens.tek.com!master!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v14i070: umoria4 - single player dungeon simulation (ver. 5.5), Part38/39
- Message-ID: <3434@master.CNA.TEK.COM>
- Date: 22 Aug 92 22:16:12 GMT
- Sender: news@master.CNA.TEK.COM
- Lines: 1517
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: grabiner@math.harvard.edu (David Grabiner)
- Posting-number: Volume 14, Issue 70
- Archive-name: umoria4/Part38
- Supersedes: umoria3: Volume 9, Issue 55-97; Volume 10, Issue 15-17
- Environment: Curses, Unix, Mac, MS-DOS, Atari-ST, Amiga, VMS
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 38 (of 39)."
- # Contents: atari_st/Makefile.bam atari_st/Makefile.roe
- # atari_st/moria.prj atari_st/st-stuff.c bldfiles.sh doc/dragon.inf
- # doc/pronounc doc/where.inf files/origcmds.hlp files/roglcmds.hlp
- # files/version.hlp ibmpc/MORIA.CNF ibmpc/ms_ansi.h mac/Install.doc
- # mac/macdata.c mac/macrsrc.h mac/scrnmgr/MakeFile.hqx vms/debug.mms
- # vms/descrip.mms
- # Wrapped by billr@saab on Thu Aug 20 09:11:36 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'atari_st/Makefile.bam' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'atari_st/Makefile.bam'\"
- else
- echo shar: Extracting \"'atari_st/Makefile.bam'\" \(2896 characters\)
- sed "s/^X//" >'atari_st/Makefile.bam' <<'END_OF_FILE'
- X# An atari ST makefile for the Bammi RTL.
- X
- X# BINDIR is the directory where the moria binary while be put
- X# LIBDIR is where the other files (score, news, hours) will be put
- X# LIBDIR must be the same directory defined in config.h
- X
- XCFLAGS = -DBAMMI_LIB -O -fstrength-reduce
- XCC = cgcc
- X
- XSRCS = main.c misc1.c misc2.c misc3.c misc4.c store1.c files.c io.c \
- X create.c desc.c generate.c sets.c dungeon.c creature.c death.c \
- X eat.c help.c magic.c potions.c prayer.c save.c staffs.c wands.c \
- X scrolls.c spells.c wizard.c store2.c signals.c moria1.c moria2.c \
- X moria3.c moria4.c monsters.c treasure.c variable.c rnd.c recall.c \
- X player.c tables.c st-stuff.c
- X
- XOBJS = main.o misc1.o misc2.o misc3.o misc4.o store1.o files.o io.o \
- X create.o desc.o generate.o sets.o dungeon.o creature.o death.o \
- X eat.o help.o magic.o potions.o prayer.o save.o staffs.o wands.o \
- X scrolls.o spells.o wizard.o store2.o signals.o moria1.o moria2.o \
- X moria3.o moria4.o monsters.o treasure.o variable.o rnd.o recall.o \
- X player.o tables.o st-stuff.o
- X
- Xmoria : $(OBJS)
- X $(CC) -o moria $(OBJS) -lcurses
- X
- Xcreate.o: constant.h types.h externs.h config.h
- Xcreature.o: constant.h types.h externs.h config.h
- Xdeath.o: constant.h types.h externs.h config.h
- Xdesc.o: constant.h types.h externs.h config.h
- Xdungeon.o: constant.h types.h externs.h config.h
- Xeat.o: constant.h types.h externs.h config.h
- Xfiles.o: constant.h types.h externs.h config.h
- Xgenerate.o: constant.h types.h externs.h config.h
- Xhelp.o: constant.h types.h externs.h config.h
- Xio.o: constant.h types.h externs.h config.h
- Xmagic.o: constant.h types.h externs.h config.h
- Xmain.o: constant.h types.h externs.h config.h
- Xmisc1.o: constant.h types.h externs.h config.h
- Xmisc2.o: constant.h types.h externs.h config.h
- Xmisc3.o: constant.h types.h externs.h config.h
- Xmisc4.o: constant.h types.h externs.h config.h
- Xmonsters.o: constant.h types.h config.h
- Xmoria1.o: constant.h types.h externs.h config.h
- Xmoria2.o: constant.h types.h externs.h config.h
- Xmoria3.o: constant.h types.h externs.h config.h
- Xmoria4.o: constant.h types.h externs.h config.h
- Xplayer.o: constant.h types.h config.h
- Xpotions.o: constant.h types.h externs.h config.h
- Xprayer.o: constant.h types.h externs.h config.h
- Xrecall.o: constant.h config.h types.h externs.h
- Xrnd.o: constant.h types.h
- Xsave.o: constant.h types.h externs.h config.h
- Xscrolls.o: constant.h types.h externs.h config.h
- Xsets.o: constant.h config.h
- Xsignals.o: constant.h types.h externs.h config.h
- Xspells.o: constant.h types.h externs.h config.h
- Xstaffs.o: constant.h types.h externs.h config.h
- Xstore1.o: constant.h types.h externs.h config.h
- Xstore2.o: constant.h types.h externs.h config.h
- Xst-stuff.o: constant.h types.h externs.h config.h
- Xtables.o: constant.h types.h config.h
- Xtreasure.o: constant.h types.h config.h
- Xvariable.o: constant.h types.h config.h
- Xwands.o: constant.h types.h externs.h config.h
- Xwizard.o: constant.h types.h externs.h config.h
- END_OF_FILE
- if test 2896 -ne `wc -c <'atari_st/Makefile.bam'`; then
- echo shar: \"'atari_st/Makefile.bam'\" unpacked with wrong size!
- fi
- # end of 'atari_st/Makefile.bam'
- fi
- if test -f 'atari_st/Makefile.roe' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'atari_st/Makefile.roe'\"
- else
- echo shar: Extracting \"'atari_st/Makefile.roe'\" \(2884 characters\)
- sed "s/^X//" >'atari_st/Makefile.roe' <<'END_OF_FILE'
- X# An Atari ST Makefile for the Roede RTL.
- X
- X# BINDIR is the directory where the moria binary while be put
- X# LIBDIR is where the other files (score, news, hours) will be put
- X# LIBDIR must be the same directory defined in config.h
- X
- XCFLAGS = -O -fstrength-reduce
- XCC = cgcc
- X
- XSRCS = main.c misc1.c misc2.c misc3.c misc4.c store1.c files.c io.c \
- X create.c desc.c generate.c sets.c dungeon.c creature.c death.c \
- X eat.c help.c magic.c potions.c prayer.c save.c staffs.c wands.c \
- X scrolls.c spells.c wizard.c store2.c signals.c moria1.c moria2.c \
- X moria3.c moria4.c monsters.c treasure.c variable.c rnd.c recall.c \
- X player.c tables.c st-stuff.c
- X
- XOBJS = main.o misc1.o misc2.o misc3.o misc4.o store1.o files.o io.o \
- X create.o desc.o generate.o sets.o dungeon.o creature.o death.o \
- X eat.o help.o magic.o potions.o prayer.o save.o staffs.o wands.o \
- X scrolls.o spells.o wizard.o store2.o signals.o moria1.o moria2.o \
- X moria3.o moria4.o monsters.o treasure.o variable.o rnd.o recall.o \
- X player.o tables.o st-stuff.o
- X
- Xmoria : $(OBJS)
- X $(CC) -o moria $(OBJS) -lcurses
- X
- Xcreate.o: constant.h types.h externs.h config.h
- Xcreature.o: constant.h types.h externs.h config.h
- Xdeath.o: constant.h types.h externs.h config.h
- Xdesc.o: constant.h types.h externs.h config.h
- Xdungeon.o: constant.h types.h externs.h config.h
- Xeat.o: constant.h types.h externs.h config.h
- Xfiles.o: constant.h types.h externs.h config.h
- Xgenerate.o: constant.h types.h externs.h config.h
- Xhelp.o: constant.h types.h externs.h config.h
- Xio.o: constant.h types.h externs.h config.h
- Xmagic.o: constant.h types.h externs.h config.h
- Xmain.o: constant.h types.h externs.h config.h
- Xmisc1.o: constant.h types.h externs.h config.h
- Xmisc2.o: constant.h types.h externs.h config.h
- Xmisc3.o: constant.h types.h externs.h config.h
- Xmisc4.o: constant.h types.h externs.h config.h
- Xmonsters.o: constant.h types.h config.h
- Xmoria1.o: constant.h types.h externs.h config.h
- Xmoria2.o: constant.h types.h externs.h config.h
- Xmoria3.o: constant.h types.h externs.h config.h
- Xmoria4.o: constant.h types.h externs.h config.h
- Xplayer.o: constant.h types.h config.h
- Xpotions.o: constant.h types.h externs.h config.h
- Xprayer.o: constant.h types.h externs.h config.h
- Xrecall.o: constant.h config.h types.h externs.h
- Xrnd.o: constant.h types.h
- Xsave.o: constant.h types.h externs.h config.h
- Xscrolls.o: constant.h types.h externs.h config.h
- Xsets.o: constant.h config.h
- Xsignals.o: constant.h types.h externs.h config.h
- Xspells.o: constant.h types.h externs.h config.h
- Xstaffs.o: constant.h types.h externs.h config.h
- Xstore1.o: constant.h types.h externs.h config.h
- Xstore2.o: constant.h types.h externs.h config.h
- Xst-stuff.o: constant.h types.h externs.h config.h
- Xtables.o: constant.h types.h config.h
- Xtreasure.o: constant.h types.h config.h
- Xvariable.o: constant.h types.h config.h
- Xwands.o: constant.h types.h externs.h config.h
- Xwizard.o: constant.h types.h externs.h config.h
- END_OF_FILE
- if test 2884 -ne `wc -c <'atari_st/Makefile.roe'`; then
- echo shar: \"'atari_st/Makefile.roe'\" unpacked with wrong size!
- fi
- # end of 'atari_st/Makefile.roe'
- fi
- if test -f 'atari_st/moria.prj' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'atari_st/moria.prj'\"
- else
- echo shar: Extracting \"'atari_st/moria.prj'\" \(2602 characters\)
- sed "s/^X//" >'atari_st/moria.prj' <<'END_OF_FILE'
- Xmoria.tos ; name of executable program is topmost window
- X
- X= ; list of modules follows...
- X
- XTCSTART.O ; startup code
- X
- X; all modules are compiled with -P -G except for those marked here
- X; with just -G. HPP 24/12/90
- X
- Xcreate.c (constant.h,types.h,externs.h,config.h)
- Xcreature.c (constant.h,types.h,externs.h,config.h)
- Xdeath.c (constant.h,types.h,externs.h,config.h)
- Xdesc.c (constant.h,types.h,externs.h,config.h)
- Xdungeon.c (constant.h,types.h,externs.h,config.h)
- Xeat.c (constant.h,types.h,externs.h,config.h)
- Xfiles.c (constant.h,types.h,externs.h,config.h)
- Xgenerate.c (constant.h,types.h,externs.h,config.h)
- Xhelp.c (constant.h,types.h,externs.h,config.h)
- Xio.c (constant.h,types.h,externs.h,config.h)
- Xmagic.c (constant.h,types.h,externs.h,config.h)
- Xmain.c (constant.h,types.h,externs.h,config.h)
- Xmisc1.c (constant.h,types.h,externs.h,config.h)
- Xmisc2.c (constant.h,types.h,externs.h,config.h)
- Xmisc3.c (constant.h,types.h,externs.h,config.h)
- Xmisc4.c (constant.h,types.h,externs.h,config.h)
- Xmonsters.c (constant.h,types.h,config.h) [-G]
- Xmoria1.c (constant.h,types.h,externs.h,config.h)
- Xmoria2.c (constant.h,types.h,externs.h,config.h)
- Xmoria3.c (constant.h,types.h,externs.h,config.h)
- Xmoria4.c (constant.h,types.h,externs.h,config.h)
- Xplayer.c (constant.h,types.h,config.h) [-G]
- Xpotions.c (constant.h,types.h,externs.h,config.h)
- Xprayer.c (constant.h,types.h,externs.h,config.h)
- Xrecall.c (constant.h,config.h,types.h,externs.h)
- Xrnd.c (constant.h,types.h) [-G]
- Xsave.c (constant.h,types.h,externs.h,config.h)
- Xscrolls.c (constant.h,types.h,externs.h,config.h)
- Xsets.c (constant.h,config.h) [-G]
- Xsignals.c (constant.h,types.h,externs.h,config.h) [-G]
- Xspells.c (constant.h,types.h,externs.h,config.h)
- Xstaffs.c (constant.h,types.h,externs.h,config.h)
- Xstore1.c (constant.h,types.h,externs.h,config.h)
- Xstore2.c (constant.h,types.h,externs.h,config.h)
- Xtables.c (constant.h,types.h,config.h) [-G]
- Xtreasure.c (constant.h,types.h,config.h) [-G]
- Xatarist.c (constant.h,config.h,types.h,externs.h) [-G]
- Xvariable.c (constant.h,types.h,config.h) [-G]
- Xwands.c (constant.h,types.h,externs.h,config.h)
- Xwizard.c (constant.h,types.h,externs.h,config.h)
- X
- Xcurses.c (cursinc.h) [-G]
- X
- XTCSTDLIB.LIB ; standard library
- XTCEXTLIB.LIB ; extended library
- XTCTOSLIB.LIB ; TOS library
- X
- X
- END_OF_FILE
- if test 2602 -ne `wc -c <'atari_st/moria.prj'`; then
- echo shar: \"'atari_st/moria.prj'\" unpacked with wrong size!
- fi
- # end of 'atari_st/moria.prj'
- fi
- if test -f 'atari_st/st-stuff.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'atari_st/st-stuff.c'\"
- else
- echo shar: Extracting \"'atari_st/st-stuff.c'\" \(1942 characters\)
- sed "s/^X//" >'atari_st/st-stuff.c' <<'END_OF_FILE'
- X/* atari_st/st-stuff.c: Atari ST support code for GCC
- X
- X Copyright (c) 1990-92 Scott Kolodzieski, James E. Wilson
- X
- X This software may be copied and distributed for educational, research, and
- X not for profit purposes provided that this copyright and statement are
- X included in all such copies. */
- X
- X#include <stdio.h>
- X#include "config.h"
- X#include "constant.h"
- X#include "types.h"
- X#include "externs.h"
- X#include <time.h>
- X
- X#include <osbind.h>
- X#include <curses.h>
- X
- X/* this routine looks for an enviornment variable called MORIA_ROOT
- X which may contain a sting specifing the base directory for the moria
- X MORIA_ROOT/files subdirectory. this is more usefull on a version of
- X unix-moria that runs on many personal computers, allowing the program
- X run from any directory, no matter where it is based. also it allows
- X the files directory to be anywhere on the system...
- X
- X
- X scott kolodzieski
- X*/
- Xchar *prefix_file(name)
- Xchar *name;
- X{ char p_buff[80];
- X char *p;
- X p = (char *)p_buff;
- X p = (char *)getenv("MORIA_ROOT");
- X if (p == (char *)NULL)
- X strcpy(extended_file_name,name);
- X else
- X { strcpy(extended_file_name,p);
- X strcat(extended_file_name,name);
- X }
- X return(extended_file_name);
- X}
- X
- X
- X#if defined(atarist) && defined(__GNUC__) && defined(BAMMI_LIB)
- Xint sigsetmask(x)
- Xint x;
- X{ return(1);
- X}
- X#endif
- X
- X/* check_input does a non blocking read (consuming the input if any) and
- X returns 1 if there was input pending */
- Xint check_input(microsec)
- Xint microsec;
- X{
- X time_t start;
- X
- X if(microsec != 0 && (turn & (unsigned long)0x3f) == 0){
- X start = clock();
- X while ((clock() <= (start + 100)));/* half second pause */
- X }
- X if (Bconstat(2) != 0L)
- X {
- X (void) getch();
- X return 1;
- X }
- X else
- X return 0;
- X}
- X
- Xvoid user_name(buf)
- Xchar *buf;
- X{
- X extern char *getenv();
- X register char *p;
- X
- X if(p=getenv("NAME")) strcpy(buf, p);
- X else if(p=getenv("USER")) strcpy(buf, p);
- X else strcpy(buf, "X");
- X}
- END_OF_FILE
- if test 1942 -ne `wc -c <'atari_st/st-stuff.c'`; then
- echo shar: \"'atari_st/st-stuff.c'\" unpacked with wrong size!
- fi
- # end of 'atari_st/st-stuff.c'
- fi
- if test -f 'bldfiles.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'bldfiles.sh'\"
- else
- echo shar: Extracting \"'bldfiles.sh'\" \(838 characters\)
- sed "s/^X//" >'bldfiles.sh' <<'END_OF_FILE'
- X#!/bin/sh
- X#
- X# simple shell script to build large files from
- X# the splitting required for posting.
- X#
- Xecho building files...
- Xecho OOChanges
- Xcat OOChanges.1 OOChanges.2 > OOChanges
- Xrm OOChanges.1 OOChanges.2
- Xecho doc/moria1.ms
- Xcat doc/moria1.ms.1 doc/moria1.ms.2 > doc/moria1.ms
- Xrm doc/moria1.ms.1 doc/moria1.ms.2
- Xecho doc/moria2.txt
- Xcat doc/moria2.txt.1 doc/moria2.txt.2 > doc/moria2.txt
- Xrm doc/moria2.txt.1 doc/moria2.txt.2
- Xecho mac/scrnmgr/ScrnMgr.c
- Xcat mac/scrnmgr/ScrnMgr.c.1 mac/scrnmgr/ScrnMgr.c.2 > mac/scrnmgr/ScrnMgr.c
- Xrm mac/scrnmgr/ScrnMgr.c.1 mac/scrnmgr/ScrnMgr.c.2
- Xecho source/misc3.c
- Xcat source/misc3.c.1 source/misc3.c.2 > source/misc3.c
- Xrm source/misc3.c.1 source/misc3.c.2
- Xecho source/spells.c
- Xcat source/spells.c.1 source/spells.c.2 > source/spells.c
- Xrm source/spells.c.1 source/spells.c.2
- Xecho ...file building complete
- END_OF_FILE
- if test 838 -ne `wc -c <'bldfiles.sh'`; then
- echo shar: \"'bldfiles.sh'\" unpacked with wrong size!
- fi
- chmod +x 'bldfiles.sh'
- # end of 'bldfiles.sh'
- fi
- if test -f 'doc/dragon.inf' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/dragon.inf'\"
- else
- echo shar: Extracting \"'doc/dragon.inf'\" \(2517 characters\)
- sed "s/^X//" >'doc/dragon.inf' <<'END_OF_FILE'
- X
- XEvery breath weapon does 1/3 of the monster's current hit points,
- Xexcept lightning, which does 1/4.
- X
- XAcid damage is then halved if you have any armor to corrode, or
- Xdivided by 4 if you have resist acid and some armor.
- X
- XCold or fire damage is divided by 3 if you have permanent resistance
- X(from a ring, armor, or weapon) or temporary resistance (from a potion
- Xor priest spell), and by 9 if you have both.
- X
- XLightning damage is divided by 3 if you have resistance.
- X
- XGas damage always has full effect.
- X
- X
- XAncient Multi-Hued Dragon: (40/276)
- X 2080 total hit points
- X lightning: 520/173
- X acid: 693/347/173
- X fire/cold: 693/231/77
- X gas: 693
- X
- XEven a 40th level half-troll warrior with 18/100 constitution,
- Xheroism, and superheroism would probably not have 693 hit points.
- XThus you must never fight AMHD's if you are giving them any
- Xopportunity to breathe on you. I don't like to go down to level 40
- Xunless I have 231 hit points and resistance, so that I can survive 4
- Xout of 5 breaths from off-screen AMHD's.
- X
- XAncient Green Dragon: (39/269)
- X 720 total hit points
- X gas: 240
- X
- XAncient White Dragon: (38/263)
- X 704 total hit points
- X cold: 235/78/26
- X
- XAncient Blue Dragon: (39/268)
- X 696 total hit points
- X lightning: 174/58
- X
- XAncient Black Dragon: (39/270)
- X 720 total hit points
- X acid: 240/120/60
- X
- XAncient Red Dragon: (40/273)
- X 840 total hit points
- X fire: 280/93/31
- X
- XBalrog:
- X 3000 total hit points
- X fire: 1000/333/111
- X
- XThus a mage with less than 333 hp can be killed by one breath from the
- XBalrog, before he gets a chance to drink invulnerability potions. For
- Xa mage to get 333 hp, he must be human, and he must use the grape
- Xjelly trick.
- X
- X
- XMature Multi-Hued Dragon: (38/262)
- X 640 total hit points
- X lightning: 160/53
- X acid: 213/107/53
- X fire/cold: 213/71/24
- X gas: 213
- X
- XMature Green Dragon: (36/256)
- X 384 total hit points
- X gas: 128
- X
- XMature White Dragon: (35/250)
- X 384 total hit points
- X cold: 128/43/14
- X
- XMature Blue Dragon: (36/255)
- X 384 total hit points
- X lightning: 96/32
- X
- XMature Black Dragon: (37/261)
- X 464 total hit points
- X acid: 155/77/39
- X
- XMature Red Dragon: (37/260)
- X 480 total hit points
- X fire: 160/53/18
- X
- XYoung Multi-Hued Dragon: (36/254)
- X 320 total hit points
- X lightning: 80/27
- X acid: 107/53/27
- X fire/cold: 107/36/12
- X gas: 107
- X
- END_OF_FILE
- if test 2517 -ne `wc -c <'doc/dragon.inf'`; then
- echo shar: \"'doc/dragon.inf'\" unpacked with wrong size!
- fi
- # end of 'doc/dragon.inf'
- fi
- if test -f 'doc/pronounc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/pronounc'\"
- else
- echo shar: Extracting \"'doc/pronounc'\" \(2553 characters\)
- sed "s/^X//" >'doc/pronounc' <<'END_OF_FILE'
- X
- XI used to pronounce the name as muh-RYE-uh. This is probably because I
- Xhave heard a song "They call the wind Mariah!" which uses this
- Xpronounciation. This song is from the musical "Paint Your Wagon" by
- XLerner and Lowe.
- X
- XThis game is based on the books by J. R. R. Tolkien, though, so I got out my
- Xbooks and looked it up. Below is the result of my investigation.
- X
- X-- "The Return of the King", Part Three of the trilogy "The Lord of the Rings"
- XAppendix F,
- X section II: On Translation, paragraph 19
- X"But Moria is an Elvish name, and given without love; for the Eldar, though
- Xthey might at need, in their bitter wars with the Dark Power and his servants,
- Xcontrive fortresses underground, were not dwellers in such places of choice."
- X section I: The Languages and Peoples of the Third Age,
- X subsection Of the Elves, paragraph 2
- X"Of the Eldarin tongues two are found in this book: the High-elven or Quenya,
- Xand the Grey-elven or Sindarin."
- X paragraph 4
- X"The Exiles, dwelling among the more numerous Grey-elves, had adopted the
- XSindarin for daily use; and hence it was the tongue of all those Elves and
- XElf-lords that appear in this history."
- X
- XAppendix E
- X section I: Pronunciation of Words and Names
- X subsection Consonants
- X"I initially before another vowel has the consonantal sound of y in you,
- Xyore in Sindarin only: as in Ioreth, Iarwain."
- X"R represents a trilled r in all positions; the sound was not lost before
- Xconsonants (as in English part). The Orcs, and some Dwarves, are said to have
- Xused a back or uvular r, a sound which the Eldar found distasteful."
- X subsection Vowels, paragraph 1
- X"That is, the sounds were approximately those represented by i, e, a, o, u in
- XEnglish machine, were, father, for, brute, irrespective of quantity."
- X subsection Vowels, paragraph 4
- X"In Sindarin long vowels in stressed monosyllables are marked with the
- Xcircumflex, since they tended in such cases to be specially prolonged; so in
- Xdu^n compared with Du'nadan." [Note: see ia^ below]
- X subsection Stress, paragraph 1
- X"In words of two syllables it falls in practically all cases on the first
- Xsyllable."
- X
- X-- "The Silmarillion"
- XAppendix: Elements in Quenya and Sindarin Names
- X"mor 'dark' in Mordor, Morgoth, Moria, etc."
- X"ia^ 'void, abyss' in Moria"
- X[Note: ia^ apparently is a single syllable because of the circumflex over
- Xthe a.]
- X
- XHence, the correct pronounciation appears to be
- X MOR-yah (trill the r)
- X
- XAlternatively, MOR-ee-ah might be acceptable if the ee sound is kept short,
- Xand you don't have to trill the r if you feel uncomfortable doing it.
- END_OF_FILE
- if test 2553 -ne `wc -c <'doc/pronounc'`; then
- echo shar: \"'doc/pronounc'\" unpacked with wrong size!
- fi
- # end of 'doc/pronounc'
- fi
- if test -f 'doc/where.inf' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/where.inf'\"
- else
- echo shar: Extracting \"'doc/where.inf'\" \(2538 characters\)
- sed "s/^X//" >'doc/where.inf' <<'END_OF_FILE'
- X
- XMuch of the data in this file is about 2 years out of date and may no longer
- Xbe true.
- X
- X********
- X
- XHow to get a copy depends on which version you want, and what network and
- Xother resources you have access too. It is far too involved to include
- Xevery case here. If none of these apply, you can send me mail. Be specific
- Xabout what you want.
- X
- X*********
- X
- XFrom BITNET/EUNET:
- X
- XThe PC and Apple II GS versions are available from the LISTSERV at UTARLVM1.
- XThe UNIX and VM/SP versions are available from the LISTSERV at BLEKUL11.
- XThe Mac version is available from the info-mac archives. There is a server
- Xat PUCC, I believe, that handles this.
- X
- X**************
- X
- XFrom Internet:
- X
- XHere are some anonymous ftp sites where you can get Moria from...
- XUNIX: uunet.uu.net (North America), sunic.sunet.se (Europe), in the directory
- X comp.sources.games/volume5/umoria2
- XAtari ST: terminator.cc.umich.edu
- XAmiga Moria v3.0: jyu.fi
- XPCMoria 4.00+: hotel.cis.ksu.edu (contact jwd to get more recent versions)
- XApple IIGS: husc6.harvard.edu
- XMacMoria: sumex.stanford.edu
- X
- XIn addition, I have a moria ftp archive on kukulcan.Berkeley.EDU (Internet
- Xnumber 128.32.131.190), which has a copy of everything listed in the history
- Xfile except for Imoria, PC-Moria 4.00+ and the VM/SP and Archimedes ports of
- Xumoria.
- X
- X***************
- X
- XThe UNIX sources are available via anonymous UUCP from various places in
- Xthe US. Tell me where you are, and I can tell you the nearest UUCP site.
- X
- X**************
- X
- XCheck with local user groups or commercial services. For example, I know
- Xthat BCS, BMUG, Genie, and Compuserve all have copies of MacMoria 4.87.
- X
- XAlso, try posting a request to rec.games.moria with a local distribution.
- XSomeone nearby may already have a copy.
- X
- X*********************
- X
- XIf all else fails, you can get a copy from me via the mail.
- XI can put anything on a Mac floppy, I can put everything onto a 9-track
- Xtape in UNIX tar format, I can put the IBM-PC version onto PC diskettes
- X(I can put other things onto IBM-PC versions but there will be a delay,
- Xas I have to find time to do the download). Send me email for more
- Xinfo.
- X
- XI have copies of the following:
- Xsources: Moria 4.8 (VMS/Pascal), Moria 5.0 (VMS/Pascal), Umoria 4.87 (C),
- X PC-Moria 4.873 (MSC), TC-Moria 4.873 (Turbo C), Atari ST 4.85 (MWC,
- X diffs from Umoria 4.85), Umoria 5.x (C)
- Xbinaries: PC-Moria 4.873, TC-Moria 4.873 (512K and 640K), Amiga Moria v3.0,
- X Amiga Umoria 4.85, MacMoria 4.87, Apple II GS 4.83
- X
- X***********************
- X
- XI do not email Moria sources/binaries.
- X
- X**************************
- END_OF_FILE
- if test 2538 -ne `wc -c <'doc/where.inf'`; then
- echo shar: \"'doc/where.inf'\" unpacked with wrong size!
- fi
- # end of 'doc/where.inf'
- fi
- if test -f 'files/origcmds.hlp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'files/origcmds.hlp'\"
- else
- echo shar: Extracting \"'files/origcmds.hlp'\" \(2852 characters\)
- sed "s/^X//" >'files/origcmds.hlp' <<'END_OF_FILE'
- XCommand summary: (@ is optional count, ~ is direction, ^R redraws, ESC aborts)
- X a Aim and fire a wand | @ B ~ Bash item or monster
- X b Browse a book | C Character description
- X c ~ Close a door | @ D ~ Disarm a trap/chest
- X d Drop an item | E Eat some food
- X e Equipment list | F Fill lamp with oil
- X f Fire/Throw an item | G Gain new magic spells
- X i Inventory list | L Locate with map
- X@ j ~ Jam a door with spike | M Map shown reduced size
- X l ~ Look given direction | @ R Rest (Count or *=restore)
- X m Magic spell casting | S Search Mode
- X@ o ~ Open a door/chest | @ T ~ Tunnel in a direction
- X p Pray | V View scoreboard
- X q Quaff a potion | = Set options
- X r Read a scroll | ? Type this page
- X@ s Search for traps or doors | { Inscribe an object
- X t Take off an item | @ - Move without pickup
- X u Use a staff | . ~ Run in direction
- X v Version info and credits | / Identify a character
- X w Wear/Wield an item | CTRL-K Quit the game
- X x Exchange weapon | @ CTRL-P Repeat the last message
- X < Go up an up-staircase | CTRL-X Save character and quit
- X > Go down a down-staircase | @ ~ for movement
- XDirections: 7 8 9
- X 4 5 6 [5 is stay]
- X 1 2 3
- X
- XTo give a count to a command, type a '#', followed by the digits. A count
- Xof 0 defaults to a count of 99. Counts only work with some commands, and
- Xwill be terminated by the same things that end a rest or a run. In
- Xparticular, typing any character during the execution of a counted command
- Xwill terminate the command. To count a movement command, hit space after
- Xthe number, and you will be prompted for the command, which may be a digit.
- XCounted searches or tunnels will terminate on success, or if you are
- Xattacked. A count with control-P will specify the number of previous messages
- Xto display.
- X
- XControl-R will redraw the screen whenever it is input, not only at command
- Xlevel. Control commands may be entered with a single key stroke, or with two
- Xkey strokes by typing ^ and then a letter.
- X
- XType ESCAPE to abort the look command at any point.
- X
- XSome commands will prompt for a spell, or an inventory item. Selection is
- Xby an alphabetic character - entering a capital causes a desription to be
- Xprinted, and the selection may be aborted.
- X
- XTyping `R*' will make you rest until both your mana and your hp reach their
- Xmaximum values.
- END_OF_FILE
- if test 2852 -ne `wc -c <'files/origcmds.hlp'`; then
- echo shar: \"'files/origcmds.hlp'\" unpacked with wrong size!
- fi
- # end of 'files/origcmds.hlp'
- fi
- if test -f 'files/roglcmds.hlp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'files/roglcmds.hlp'\"
- else
- echo shar: Extracting \"'files/roglcmds.hlp'\" \(3049 characters\)
- sed "s/^X//" >'files/roglcmds.hlp' <<'END_OF_FILE'
- XCommand summary: (@ is optional count, ~ is direction, ^R redraws, ESC aborts)
- X c ~ Close a door. | C Character player description.
- X d Drop an item. | @ D ~ Disarm a trap/chest.
- X e Equipment list. | E Eat some food.
- X@ f ~ Force (bash) item or mons.| F Fill lamp with oil.
- X i Inventory list. | G Gain new magic spells.
- X m magic spell casting. | M Map, show reduced size.
- X@ o ~ Open a door/chest. | P Peruse a book.
- X p Pray. | Q Quit the game.
- X q Quaff a potion. | @ R Rest (Count or *=restore).
- X r Read a scroll. | @ S ~ Spike a door.
- X@ s Search for traps or doors.| T Take off an item.
- X t Throw an item. | V View scores.
- X v Version info | W Where: locate self.
- X w Wear/Wield an item. | X Exchange weapon.
- X x ~ Examine surroundings | Z Zap a staff.
- X z Zap a wand. | # Search Mode.
- X = Set options. | < Go up an up-staircase.
- X / Identify a character. | > Go down a down-staircase.
- X@ CTRL-P Previous message review | { Inscribe an object.
- X@ - ~ Move without pickup. | ? Type this page.
- X@ CTRL ~ Tunnel in a direction. | CTRL-X Save character and exit.
- X@ SHIFT ~ Run in direction. | @ ~ For movement.
- XDirections: y k u
- X h . l [. is stay]
- X b j n
- X
- XTo give a count to a command, type the number in digits, then the command.
- XA count of 0 defaults to a count of 99. Counts only work with some commands,
- Xand will be terminated by the same things that end a rest or a run. In
- Xparticular, typing any character during the execution of a counted command
- Xwill terminate the command. Counted searches or tunnels will terminate on
- Xsuccess, or if you are attacked. A count with control-P will specify the
- Xnumber of previous messages to display.
- X
- XControl-R will redraw the screen whenever it is input, not only at command
- Xlevel. Control commands may be entered with a single key stroke, or with two
- Xkey strokes by typing ^ and then a letter.
- X
- XType ESCAPE to abort the look command at any point.
- X
- XSome commands will prompt for a spell, or an inventory item. Selection is
- Xby an alphabetic character - entering a capital causes a desription to be
- Xprinted, and the selection may be aborted.
- X
- XTyping `R*' will make you rest until both your mana and your hp reach their
- Xmaximum values.
- X
- XUsing repeat counts with the tunnel left command does not work well, because
- Xtunnel left is the backspace character, and will delete the number you have
- Xjust typed in. To avoid this, you can either enter ^H as two characters
- X(^ and then H), or you can type ' ' (i.e. the space character) after the
- Xnumber at which point you will get a command prompt and backspace will
- Xwork correctly.
- END_OF_FILE
- if test 3049 -ne `wc -c <'files/roglcmds.hlp'`; then
- echo shar: \"'files/roglcmds.hlp'\" unpacked with wrong size!
- fi
- # end of 'files/roglcmds.hlp'
- fi
- if test -f 'files/version.hlp' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'files/version.hlp'\"
- else
- echo shar: Extracting \"'files/version.hlp'\" \(2193 characters\)
- sed "s/^X//" >'files/version.hlp' <<'END_OF_FILE'
- X VMS Moria Version 4.8
- XVersion 0.1 : 03/25/83
- XVersion 1.0 : 05/01/84
- XVersion 2.0 : 07/10/84
- XVersion 3.0 : 11/20/84
- XVersion 4.0 : 01/20/85
- X
- XModules :
- X V1.0 Dungeon Generator - RAK
- X Character Generator - RAK & JWT
- X Moria Module - RAK
- X Miscellaneous - RAK & JWT
- X V2.0 Town Level & Misc - RAK
- X V3.0 Internal Help & Misc - RAK
- X V4.0 Source Release Version - RAK
- X
- XRobert Alan Koeneke Jimmey Wayne Todd Jr.
- XStudent/University of Oklahoma Student/University of Oklahoma
- X
- X
- X
- X
- X
- X Umoria Version 5.5 (formerly UNIX Moria)
- XVersion 4.83 : 5/14/87
- XVersion 4.85 : 10/26/87
- XVersion 4.87 : 5/27/88
- XVersion 5.0 : 11/2/89
- XVersion 5.2 : 5/9/90
- XVersion 5.3 : 3/25/91
- XVersion 5.4 : 10/12/91
- XVersion 5.5 : 8/12/92
- X
- XDavid J. Grabiner, Harvard University
- X grabiner@math.harvard.edu
- XJames E. Wilson, Cygnus Support
- X wilson@kithrup.com
- X
- XOther contributors:
- XD. G. Kneller - MSDOS Moria port, reduced map display, 16 bit integers
- XChristopher J. Stuart - recall, options, inventory, running code, etc.
- XCurtis McCauley - Macintosh Moria port for MPW C
- XStephen A. Jacobs - Atari ST Moria port for MW C
- X
- X
- X
- XOther contributors:
- XWilliam Setzer - object naming code
- XDavid J. Grabiner - numerous bug reports, consistency checks, etc
- XDan Bernstein - UNIX hangup signal fix, many bug fixes
- XCorey Gehman - Amiga Moria port
- XRalph Waters - VMS support code, IBM-PC Turbo C bug fixes
- XJohsua Delahunty - VMS support code
- XTodd Pierzina - VMS support code
- XJoseph Hall - line of sight code, monster compiler
- XEric Vaitl - PC-Curses replacement for Turbo C
- XScott Kolodzieski - Atari ST port for Gnu C
- XHildo Biersma - Atari ST port for Turbo C
- XBen Schreiber - Macintosh port for Think C
- X
- X
- X
- X
- X
- XCopyright (c) 1989-92 James E. Wilson, Robert A. Keoneke
- X This software may be copied and distributed for educational, research, and
- X not for profit purposes provided that this copyright and statement are
- X included in all such copies.
- X
- XUmoria Version 5.5, patch level 0
- END_OF_FILE
- if test 2193 -ne `wc -c <'files/version.hlp'`; then
- echo shar: \"'files/version.hlp'\" unpacked with wrong size!
- fi
- # end of 'files/version.hlp'
- fi
- if test -f 'ibmpc/MORIA.CNF' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'ibmpc/MORIA.CNF'\"
- else
- echo shar: Extracting \"'ibmpc/MORIA.CNF'\" \(2560 characters\)
- sed "s/^X//" >'ibmpc/MORIA.CNF' <<'END_OF_FILE'
- X# Configuration file for PC MORIA 5.x
- X#
- X# All lines that have the # character as the first character are
- X# comment lines. Blank lines are totally ignored.
- X
- X
- X
- X##################################################################
- X### Configuration ###
- X##################################################################
- X
- X# MORIA is very easy to configure. The biggest problem is that there
- X# is not enough room on a single 360K floppy disk to hold the DOS
- X# DOS system files, MORIA.EXE (about 340K) and a MORIA save file
- X# (about 80K or so). Below are a few methods for configuring MORIA
- X# depending on your disk storage. Once you decide which method to
- X# use, follow the instructions then remove the comment character ('#')
- X# from the beginning of the lines that start with 'SAVE' and 'SCORE'.
- X# Only remove the '#' from 1 pair of lines.
- X
- X
- X
- X#################### 1 hard disk systems #########################
- X#
- X# Create a C:\games subdirectory on your hard disk and put C:\games
- X# on your PATH. Copy MORIA.EXE and MORIA.CNF to C:\games.
- X#
- X#SAVE c:\games\moria.sav;n
- X#SCORE c:\games\moria.scr
- X
- X
- X#################### 2 360K floppy disk systems ##################
- X#
- X# Format /s a floppy disk and copy MORIA.CNF to it. Format (no /s)
- X# a second floppy disk and copy MORIA.EXE to it. When you want to play
- X# MORIA, put the first diskette in drive A, the second in drive B and
- X# type B:MORIA
- X#
- X#SAVE a:\moria.sav
- X#SCORE a:\moria.scr
- X
- X
- X#################### 1 high density floppy disk systems ##########
- X#
- X# Format /s 1 high-density diskette and copy MORIA.CNF and MORIA.EXE
- X# to it.
- X#
- X#SAVE a:\moria.sav
- X#SCORE a:\moria.scr
- X
- X
- X
- X
- X##################################################################
- X### Other OPTIONS ###
- X##################################################################
- X
- X# These graphics characters are a solid box and a centered dot
- XGRAPHICS 177 249
- X
- X# IBMbios option enables the numeric keypad. Possibly unusable
- X# on a non-IBM clone.
- XIBMBIOS
- X
- X# Rawio makes output somewhat faster and allows ^P (control P) to
- X# be used for the "previous message" MORIA command. Cannot be
- X# used on a Dec Rainbow.
- X#RAWIO
- X
- X# Being used to LARN and HACK, I prefer the ROGUE-like interface
- XKEYBOARD ROGUE
- X
- X# It is possible to have MORIA output ANSI sequences, rather than
- X# use BIOS calls. This "ANSI" option is required for Dec Rainbows
- X# and other computers that are not IBM BIOS compatible.
- X#ANSI
- END_OF_FILE
- if test 2560 -ne `wc -c <'ibmpc/MORIA.CNF'`; then
- echo shar: \"'ibmpc/MORIA.CNF'\" unpacked with wrong size!
- fi
- # end of 'ibmpc/MORIA.CNF'
- fi
- if test -f 'ibmpc/ms_ansi.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'ibmpc/ms_ansi.h'\"
- else
- echo shar: Extracting \"'ibmpc/ms_ansi.h'\" \(2289 characters\)
- sed "s/^X//" >'ibmpc/ms_ansi.h' <<'END_OF_FILE'
- X/* ibmpc/ms_ansi.h: ANSI definitions for MSDOS
- X
- X Copyright (c) 1989-92 James E. Wilson, Don Kneller
- X
- X This software may be copied and distributed for educational, research, and
- X not for profit purposes provided that this copyright and statement are
- X included in all such copies. */
- X
- X/* To allow the choice between PCcurses (which may not work on all machines)
- X * and ANSI (which should work on all machines), indirect the output routines
- X * through pointers and adjust the pointers to the correct routines at
- X * initialization time.
- X */
- X#ifdef LINT_ARGS
- Xint (*output_addch)(int);
- Xint (*output_mvaddstr)(int, int, char *);
- Xint (*output_mvprintw)(int, int, char *, ...);
- Xint (*output_move)(int, int);
- Xint (*output_endwin)(void);
- Xint (*output_clrtobot)(void);
- Xint (*output_clrtoeol)(void);
- Xint (*output_mvaddch)(int, int, char);
- Xint (*output_initscr)(void);
- Xint (*output_refresh)(void);
- Xint (*output_clear)(void);
- X
- Xint (*output_nocrmode)(void);
- Xint (*output_crmode)(void);
- Xint (*output_nonl)(void);
- Xint (*output_nl)(void);
- Xint (*output_noecho)(void);
- Xint (*output_echo)(void);
- Xint ansi_prep (int, int, int);
- X#else
- Xextern int (*output_addch)();
- Xextern int (*output_mvaddstr)();
- Xextern int (*output_mvprintw)();
- Xextern int (*output_move)();
- Xextern int (*output_endwin)();
- Xextern int (*output_clrtobot)();
- Xextern int (*output_clrtoeol)();
- Xextern int (*output_mvaddch)();
- Xextern int (*output_initscr)();
- Xextern int (*output_refresh)();
- Xextern int (*output_clear)();
- X
- Xextern int (*output_nocrmode)();
- Xextern int (*output_crmode)();
- Xextern int (*output_nonl)();
- Xextern int (*output_nl)();
- Xextern int (*output_noecho)();
- Xextern int (*output_echo)();
- Xextern int ansi_prep();
- X#endif
- X
- Xextern int ansi;
- X
- X#define addch (*output_addch)
- X#define mvaddstr (*output_mvaddstr)
- X#define mvprintw (*output_mvprintw)
- X#undef move /* from curses.h */
- X#define move (*output_move)
- X#define endwin (*output_endwin)
- X#define clrtobot (*output_clrtobot)
- X#define clrtoeol (*output_clrtoeol)
- X#define mvaddch (*output_mvaddch)
- X#define initscr (*output_initscr)
- X#define refresh (*output_refresh)
- X#define clear (*output_clear)
- X#define nocrmode (*output_nocrmode)
- X#define crmode (*output_crmode)
- X#define nonl (*output_nonl)
- X#define nl (*output_nl)
- X#define noecho (*output_noecho)
- X#define echo (*output_echo)
- END_OF_FILE
- if test 2289 -ne `wc -c <'ibmpc/ms_ansi.h'`; then
- echo shar: \"'ibmpc/ms_ansi.h'\" unpacked with wrong size!
- fi
- # end of 'ibmpc/ms_ansi.h'
- fi
- if test -f 'mac/Install.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mac/Install.doc'\"
- else
- echo shar: Extracting \"'mac/Install.doc'\" \(2474 characters\)
- sed "s/^X//" >'mac/Install.doc' <<'END_OF_FILE'
- XMacintosh Build Instructions:
- X=============================
- X
- XMPW C:
- X------
- XFor MPW C, see Install.hqx (decompress it first, though).
- X
- X
- XTHINK C 4.0:
- X------------
- X
- XMake sure the directories are organized as follows:
- X
- X UMoria
- X |
- X +-----+-----+------+
- X | | | |
- X files doc mac source
- X |
- X +-------+
- X | |
- X dumpres scrnmgr
- X
- X1) Unpack DumpRes1.hqx, DumpRes2.hqx, MacMoria.hqx (the project) and
- X miscrsrc.hqx, and put them in the UMoria folder (or a folder above it).
- X
- X2) Build the dumped resources:
- X a) Exit :UMoria:source:config.h as follows:
- X - Uncomment #define RSRC
- X - Uncomment #define RSRC_PART1
- X b) Build DumpRes1, and run it. When given a command line, (ccommand
- X dialog) enter parameter MacMoria.dump.rsrc
- X c) Recomment RSRC_PART1 and uncomment RSRC_PART2, and repeat b) with
- X DumpRes2.
- X d) Recomment all resource '#define's so that the application can be
- X built.
- X
- X3) Build standard resources:
- X a) Duplicate the files :UMoria:mac:scrnmgr:scrnmgr.ro and
- X :UMoria:mac:moria.ro, and put the copies in the same folder as
- X the project files.
- X b) Use RMaker (which comes with THINK C) to compile scrnmgr.ro and
- X then moria.ro (the copies of them, that is).
- X
- X4) Build the application: Load and build the project MacMoria. Then
- X build the application from it.
- X
- X5) Add the help files to the application's data fork:
- X a) Use ResEdit to change the type of MacMoria (the application)
- X to 'TEXT'.
- X b) Make sure you have no active virus protection (GateKeeper Aid
- X gave me trouble at this stage).
- X c) Load the MacMoria application into THINK C as a document. It
- X should be blank.
- X d) Place a copy of the contents of each of the files from
- X :UMoria:files in this file. Precede each one with a line of
- X the form #<filename> (<filename> is just the base file name, eg
- X news or roglcmds.hlp).
- X e) Use ResEdit to set the type back to 'APPL'.
- X f) If you are experimenting with modifications, you can avoid this
- X lengthy process by changing the conditional in :UMoria:mac:mac.c,
- X function mac_helpfile() to #if 0, and create a seperate text
- X only file as described in d), named MacMoria.files.
- X
- X6) Prepare manual:
- X If you wish, you can load the manual (from :UMoria:doc) into a word-
- X processor, and save it more neatly formatted.
- X
- X
- XIf you have any trouble with these procedures, contact bs@cs.brandeis.edu
- X(Benjamin Schreiber).
- X
- END_OF_FILE
- if test 2474 -ne `wc -c <'mac/Install.doc'`; then
- echo shar: \"'mac/Install.doc'\" unpacked with wrong size!
- fi
- # end of 'mac/Install.doc'
- fi
- if test -f 'mac/macdata.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mac/macdata.c'\"
- else
- echo shar: Extracting \"'mac/macdata.c'\" \(2750 characters\)
- sed "s/^X//" >'mac/macdata.c' <<'END_OF_FILE'
- X/* mac/macdata.c: this program creates the initialized global data resources
- X
- X Copyright (c) 1989-92 Curtis McCauley, James E. Wilson
- X
- X This software may be copied and distributed for educational, research, and
- X not for profit purposes provided that this copyright and statement are
- X included in all such copies. */
- X
- X/* Monsters.c, player.c, tables.c, treasure.c, and variables.c are included.
- X But, when this program is built, the compiler is instructed to
- X actually include the initialized global data. We just copy it
- X into resource handles and dump them to the executable. */
- X
- X/* Why do this? MPW handles >32K global data ok (otherwise, this
- X program could not compile). However, we have to pay the price
- X in efficiency. The code hacks to keep the global data in
- X resources are trivial, mainly redefining the variable to be a
- X pointer instead of an array. This scheme has the added
- X advantage of providing a means for re-initialization of the
- X global data. MacMoria, which is "restartable" requires this. */
- X
- X/* See macrsrc.c for a list of variables involved. */
- X
- X#include <stdio.h>
- X
- X#ifndef THINK_C
- X#include <types.h>
- X#include <memory.h>
- X
- X#include <dumpres.h>
- X#else
- X#include <console.h>
- X
- X#include "DumpRes.h"
- X#endif
- X
- X#include "config.h"
- X#include "macrsrc.h"
- X
- X#define RES_ATTRS 0
- X
- Xmain(argc, argv)
- Xint argc;
- Xchar *argv[];
- X
- X{
- X int i;
- X unsigned size, temp;
- X char *p, *q;
- X restable_type *r;
- X
- X#ifdef THINK_C
- X argc = ccommand(&argv);
- X#endif
- X
- X if (argc != 2) {
- X fprintf(stderr, "### %s: Usage - %s targetFileName\n", argv[0], argv[0]);
- X return(1);
- X }
- X
- X for (i = 0, r = restable; i < MAX_RESOURCES; i++, r++) {
- X
- X DumpRes(
- X argv[1],
- X r->resType, r->resID, r->resName, RES_ATTRS,
- X r->memPtr, r->elemCnt, r->elemSiz,
- X r->strProc
- X );
- X
- X }
- X
- X#ifndef RSRC_PART1
- X size = 0;
- X for (i = 0; i < MAX_RESTART; i++) size += restart_vars[i].size;
- X
- X p = NewPtr(size);
- X if (p == NULL) {
- X fprintf(stderr, "Cannot get %d bytes for restart vars.\n", size);
- X exit(1);
- X }
- X
- X q = p;
- X for (i = 0; i < MAX_RESTART; i++) {
- X BlockMove(restart_vars[i].ptr, q, restart_vars[i].size);
- X q += restart_vars[i].size;
- X }
- X
- X DumpRes(
- X argv[1],
- X restartRsrc, restart_id, "Restart Vars", RES_ATTRS,
- X p, 1, size,
- X NULL
- X );
- X#endif
- X
- X#ifndef THINK_C
- X printf("restable info --\n");
- X for (i = 0, size = 0; i < MAX_RESOURCES; ++i) {
- X size += (temp = restable[i].elemCnt * restable[i].elemSiz);
- X printf("%3d %8d\n", i, temp);
- X }
- X printf(" --------\n");
- X printf(" %8d\n\n", size);
- X
- X printf("memtable info --\n");
- X for (i = 0, size = 0; i < MAX_PTRS; ++i) {
- X size += (temp = memtable[i].elemCnt * memtable[i].elemSiz);
- X printf("%3d %8d\n", i, temp);
- X }
- X printf(" --------\n");
- X printf(" %8d\n\n", size);
- X#endif
- X
- X return(0);
- X}
- END_OF_FILE
- if test 2750 -ne `wc -c <'mac/macdata.c'`; then
- echo shar: \"'mac/macdata.c'\" unpacked with wrong size!
- fi
- # end of 'mac/macdata.c'
- fi
- if test -f 'mac/macrsrc.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mac/macrsrc.h'\"
- else
- echo shar: Extracting \"'mac/macrsrc.h'\" \(2315 characters\)
- sed "s/^X//" >'mac/macrsrc.h' <<'END_OF_FILE'
- X/* mac/macrsrc.h: definitions for code handling C data as resources
- X
- X Copyright (c) 1989-1991 Curtis McCauley, James E. Wilson
- X
- X This software may be copied and distributed for educational, research, and
- X not for profit purposes provided that this copyright and statement are
- X included in all such copies. */
- X
- X#define treasureRsrc 'TREA'
- X#define monsterRsrc 'MONS'
- X#define spellRsrc 'SPLL'
- X#define charPtrRsrc 'CPTR'
- X#define raceRsrc 'RACE'
- X#define backgroundRsrc 'BKGD'
- X#define ownerRsrc 'OWNR'
- X
- X#define restartRsrc 'RSRT'
- X
- X#define stringRsrc 'STR#'
- X
- X#define object_list_id 128
- X#define c_list_id 129
- X#define magic_spell_id 130
- X#define race_id 131
- X#define background_id 132
- X#define owners_id 133
- X#define player_title_id 134
- X#define colors_id 135
- X#define mushrooms_id 136
- X#define woods_id 137
- X#define metals_id 138
- X#define rocks_id 139
- X#define amulets_id 140
- X#define syllables_id 141
- X
- X#define restart_id 150
- X
- Xtypedef struct restable_type {
- X #ifdef RSRC
- X char *memPtr;
- X #else
- X char **memPtr;
- X #endif
- X char *resName;
- X long resType, resID;
- X unsigned long elemCnt, elemSiz;
- X void (*strProc)(char *ptr, void (*proc)(char **str));
- X int restartFlag;
- X} restable_type;
- X
- X/* THINK C can't handle data > 32K, so we need to do this in 2 parts. */
- X
- X#ifdef RSRC_PART1
- X#define MAX_RESOURCES 1
- X#else
- X#ifdef RSRC_PART2
- X#define MAX_RESOURCES 13
- X#else
- X#define MAX_RESOURCES 14
- X#endif
- X#endif
- X
- Xextern restable_type restable[MAX_RESOURCES];
- X
- Xtypedef struct memtable_type {
- X char **memPtr;
- X unsigned long elemCnt, elemSiz;
- X int restartFlag;
- X} memtable_type;
- X
- X#define MAX_PTRS 3
- X
- Xextern memtable_type memtable[MAX_PTRS];
- X
- Xtypedef struct restart_type {
- X char *ptr;
- X unsigned long size;
- X} restart_type;
- X
- X#define MAX_RESTART 34
- X
- Xextern restart_type restart_vars[MAX_RESTART];
- X
- Xtypedef struct clrtable_type {
- X char *ptr;
- X unsigned long size;
- X} clrtable_type;
- X
- X#define MAX_CLRS 16
- X
- Xextern clrtable_type clrtable[MAX_CLRS];
- X
- Xvoid treasure_strproc(char *ptr, void (*proc)(char **str));
- Xvoid creature_strproc(char *ptr, void (*proc)(char **str));
- Xvoid race_strproc(char *ptr, void (*proc)(char **str));
- Xvoid background_strproc(char *ptr, void (*proc)(char **str));
- Xvoid owner_strproc(char *ptr, void (*proc)(char **str));
- Xvoid char_ptr_strproc(char *ptr, void (*proc)(char **str));
- END_OF_FILE
- if test 2315 -ne `wc -c <'mac/macrsrc.h'`; then
- echo shar: \"'mac/macrsrc.h'\" unpacked with wrong size!
- fi
- # end of 'mac/macrsrc.h'
- fi
- if test -f 'mac/scrnmgr/MakeFile.hqx' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mac/scrnmgr/MakeFile.hqx'\"
- else
- echo shar: Extracting \"'mac/scrnmgr/MakeFile.hqx'\" \(2456 characters\)
- sed "s/^X//" >'mac/scrnmgr/MakeFile.hqx' <<'END_OF_FILE'
- X(This file must be converted with BinHex 4.0)
- X:#%eKDf9'D@aP!&4&@&408&-J!3!!!!94!!!"IJkH)`P$Eh"jFQPRD(3J+%-T)%0
- XeFR4TFb"0Bd0KG@aPH5`J-6Ni15iJ)%&XE#"bD@GSG(-JFQ9cCA*fC@3Z$5-0)`P
- XCEh8JE@&j)'0[F(NJG'KTFb"cG@*bEh9dD@jP)("KBfYKCf8JCR*PC@aj,#"YEf4
- XTCRNJDA3JBA-JH@pe)'4PFfPbC5`0)`PKEQ3JC'PcG(*TBR9dC5"TG#"KG#"hD@a
- XX,#"KFb"XEfjR)'&c)(4SC5"MEh"jFQPRD(3JEQpdD@0P)'PZ)(4SC5"cEh9bBf8
- X0)`PYBA4PFQPKE#"TFb"ZEh3JC'PcG(9bBQ9N,#"PH'0PF(4TEQFJG'KKG#"ZEb"
- X[EQ8JE@&j)(9cC5"dD'Pc)("KBfYKCf8JEh)0)`PKERNJF'&bG#"[CL"TG#"QEh)
- XJBfpYE@9bBfPKE#"`GA*`Eh0PFb"[CL"KERNJDfPZC#"hDA4SEh9d)(4SC5"PH("
- XbCA0c$5-*Gh*TG(4PEL"MEfjcC@jd)'pQ)'PdFb"KGA4SEh)Z$3N03dp`G'P[ER-
- XJ25!YE@*R)'pZ$8a2F(4TEfjc)$d0$5-J5PFk)'&NC'9N)(4SDA-JG'mJBA9dEfe
- XKG'PMB@aXH5"MEfeLD@jP)(4SC5"dGfmJ8f0bENeRFLjM)("KFR4c$90MFQj0Ch)
- XZBb$%)&0MFQj0Ch)a,Q-J8f0bENeRFM)ZB`d*Bf&dC@jKG'8J8f0bENeRFM%ZBb"
- X6Bh*Z6@Gb-LjM)$iJ8f0bENeRFLjM$3e6Bh*Z6@Gb,QmJa#"6Bh*Z6@Gb,Q-J8f0
- XbENeRFLjS$3P$)(Y$6h"dD@pZFhdJ,@mJ8f0bENeRFLj[)&0MFQj0Ch)ZB`d*$90
- XMFQj0Ch)ZFR0bBb$%)&0MFQj0Ch)ZFJd*8Q9k)&0MFQj0Ch)ZFL!YEb"6Bh*Z6@G
- Xb,R*cFQ-J,A3J*h*cFQ-R)#eM)#G58d9%*`d08f0bEP4PFh3ZBbj[)-3J8f0bEP4
- XPFh3ZBb"6Bh*Z6@Gb,QJ0#8-JHd02F(4TEfjcI5"6Bh*Z9'9cG#jM$3N06f*UC@0
- XdFb!p)&0MFQj8CA0d,Q-ZEb"6Bh*Z6@Gb,Qm0$90MFQj8CA0d)-6%)&0MFQj8CA0
- Xd,R)J8f0bENeRFLjbFh*M$3P5CASJ8f0bEP4PFh3ZFL!YBA"`C@jN)#e[)&0MFQj
- X8CA0d$3dM)%TA1L"$8R9ZG'PYC5j[)'&ZC#"$5@jdCA*QB@0P,QmJC'9XCA4PC#"
- XLC@0KGA0P)%NJGf&c)(4[E'3JG'KKG#"dD'9j)'&bC5"[BR0[E'9dC3e6Bh*Z9'9
- XcG#$%a#"l6f*UC@0dFhd0#8aTEQXJHda2F(4TEfjcI5!YGb!YG#""8&"-)#eM)#F
- Xr2cmr*b#f$3N*HdpLDQ9MG(0p),B0#3NLHdaTBR*KFQPPFhdL8R9ZG'PYC5j[),B
- X0#3NLHdaTBR*KFQPPFhdL5@jdCA*QB@0P,QmJYJd*#5*l3daTBR*KFQPPFhdL8h4
- XN3daTBLj[),B0#3NLHd0-D@*bBA*TCA0p)N0638j&6'PL,QmJYJd*#5*l3daTBR*
- XKFQPPFhdL6@&dD#j[),B0#3NYEb"6Bh*Z9'9cG!d05@jcG'&XE#$%)&0MFQj0Ch)
- XZD#"6Bh*Z6@Gb,QmJ8f0bENeRFLjbFh*M$3P%GA"XD@0KG'8J,ANJ8f0bENeRFLj
- XS)#*l3dPZBfaeC'9cI5)0#84eF'aTBf&dC5!YH5"6Bh*Z6@Gb,QmJ)RY$6'PLFQ&
- XbD@9cI5)0#84eF'aTBf&dC5!YH5"6Bh*Z6@Gb,R*cFQ-J)RY55@jME(9NCA0p)Jh
- Xd8!!!!3!!!!&-!!!!6!!!!$*6Bh*Z6@Gb,QeKDf80)b!J)&4KFQGPG$SJ)#!J)&0
- XMFJK0B@YP4QPXC5i#!!!!9%9B9%e38b!!!!!!!!!!!!!!!!"849K869"6)!!!!!!
- X!!!!!!!!!!!!!!!!!!!!!!!!!!++&Jei!!!94!!!"IL!a16Ji)$!k063k-MN0$90
- XMFQj0Ch)ZBbj[)-3J8f0bENeRFLjYB@YP)&0MFQj0Ch)ZB`d*3b"6Bh*Z6@Gb,Q-
- X08f0bENeRFL$%a#"6Bh*Z6@Gb,QeKDf8J8f0bENeRFLjb$3P5CASJ8f0bENeRFLj
- Xb)#eKF("PEQ3J,@mJ8f0bENd!!!")!!P0EfjKBfm!GJ!$!!N!#Rrr!!i!#3!+Irm
- X!43"e!(Crr`!'!!3!2J!2!G-#F`!q!!m"d`*cSS@(#J!!!`X!!!-,!!!!!!%!!!!
- X"!!!!!8`!!!"-!!!!-J!YD8!)G!!!!"`!-J!!69"68J!!!!S$lIrr!!!!!!!ZDjM
- XGB3:
- END_OF_FILE
- if test 2456 -ne `wc -c <'mac/scrnmgr/MakeFile.hqx'`; then
- echo shar: \"'mac/scrnmgr/MakeFile.hqx'\" unpacked with wrong size!
- fi
- # end of 'mac/scrnmgr/MakeFile.hqx'
- fi
- if test -f 'vms/debug.mms' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/debug.mms'\"
- else
- echo shar: Extracting \"'vms/debug.mms'\" \(2624 characters\)
- sed "s/^X//" >'vms/debug.mms' <<'END_OF_FILE'
- Xcflags = /NOOPT/DEBUG
- Xlinkflags = /DEBUG
- XMORIA.EXE : MAIN.OBJ, CREATE.OBJ, CREATURE.OBJ, DEATH.OBJ, -
- X DESC.OBJ, DUNGEON.OBJ, EAT.OBJ, FILES.OBJ, GENERATE.OBJ, -
- X GETCH.OBJ, HELP.OBJ, IO.OBJ, MAGIC.OBJ, MAIN.OBJ, MISC1.OBJ, -
- X MISC2.OBJ, MISC3.OBJ, MISC4.OBJ, MONSTERS.OBJ, MORIA1.OBJ, -
- X MORIA2.OBJ, MORIA3.OBJ, MORIA4.OBJ, PLAYER.OBJ, -
- X POTIONS.OBJ, PRAYER.OBJ, RECALL.OBJ, RND.OBJ, SAVE.OBJ, SCROLLS.OBJ, -
- X SETS.OBJ, SIGNALS.OBJ, SPELLS.OBJ, STAFFS.OBJ, STORE1.OBJ, -
- X STORE2.OBJ, TABLES.OBJ, TREASURE.OBJ, UEXIT.OBJ, -
- X VARIABLE.OBJ, WANDS.OBJ, WIZARD.OBJ
- X - $(link) $(linkflags) MORIA.OPT/opt
- X
- Xcreate.obj : constant.h, types.h, externs.h, config.h
- Xcreature.obj : constant.h, types.h, externs.h, config.h
- Xdeath.obj : constant.h, types.h, externs.h, config.h
- Xdesc.obj : constant.h, types.h, externs.h, config.h
- Xdungeon.obj : constant.h, types.h, externs.h, config.h
- Xeat.obj : constant.h, types.h, externs.h, config.h
- Xfiles.obj : constant.h, types.h, externs.h, config.h
- Xgenerate.obj : constant.h, types.h, externs.h, config.h
- Xhelp.obj : constant.h, types.h, externs.h, config.h
- Xio.obj : constant.h, types.h, externs.h, config.h
- Xmagic.obj : constant.h, types.h, externs.h, config.h
- Xmain.obj : constant.h, types.h, externs.h, config.h
- Xmisc1.obj : constant.h, types.h, externs.h, config.h
- Xmisc2.obj : constant.h, types.h, externs.h, config.h
- Xmisc3.obj : constant.h, types.h, externs.h, config.h
- Xmisc4.obj : constant.h, types.h, externs.h, config.h
- Xmonsters.obj : constant.h, types.h, config.h
- Xmoria1.obj : constant.h, types.h, externs.h, config.h
- Xmoria2.obj : constant.h, types.h, externs.h, config.h
- Xmoria3.obj : constant.h, types.h, externs.h, config.h
- Xmoria4.obj : constant.h, types.h, externs.h, config.h
- Xplayer.obj : constant.h, types.h, config.h
- Xpotions.obj : constant.h, types.h, externs.h, config.h
- Xprayer.obj : constant.h, types.h, externs.h, config.h
- Xrecall.obj : constant.h, config.h, types.h, externs.h
- Xrnd.obj : constant.h, types.h
- Xsave.obj : constant.h, types.h, externs.h, config.h
- Xscrolls.obj : constant.h, types.h, externs.h, config.h
- Xsets.obj : constant.h, config.h
- Xsignals.obj : constant.h, types.h, externs.h, config.h
- Xspells.obj : constant.h, types.h, externs.h, config.h
- Xstaffs.obj : constant.h, types.h, externs.h, config.h
- Xstore1.obj : constant.h, types.h, externs.h, config.h
- Xstore2.obj : constant.h, types.h, externs.h, config.h
- Xtables.obj : constant.h, types.h, config.h
- Xtreasure.obj : constant.h, types.h, config.h
- Xvariable.obj : constant.h, types.h, config.h
- Xwands.obj : constant.h, types.h, externs.h, config.h
- Xwizard.obj : constant.h, types.h, externs.h, config.h
- END_OF_FILE
- if test 2624 -ne `wc -c <'vms/debug.mms'`; then
- echo shar: \"'vms/debug.mms'\" unpacked with wrong size!
- fi
- # end of 'vms/debug.mms'
- fi
- if test -f 'vms/descrip.mms' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'vms/descrip.mms'\"
- else
- echo shar: Extracting \"'vms/descrip.mms'\" \(2583 characters\)
- sed "s/^X//" >'vms/descrip.mms' <<'END_OF_FILE'
- XMORIA.EXE : MAIN.OBJ, CREATE.OBJ, CREATURE.OBJ, DEATH.OBJ, -
- X DESC.OBJ, DUNGEON.OBJ, EAT.OBJ, FILES.OBJ, GENERATE.OBJ, -
- X GETCH.OBJ, HELP.OBJ, IO.OBJ, MAGIC.OBJ, MAIN.OBJ, MISC1.OBJ, -
- X MISC2.OBJ, MISC3.OBJ, MISC4.OBJ, MONSTERS.OBJ, MORIA1.OBJ, -
- X MORIA2.OBJ, MORIA3.OBJ, MORIA4.OBJ, PLAYER.OBJ, -
- X POTIONS.OBJ, PRAYER.OBJ, RECALL.OBJ, RND.OBJ, SAVE.OBJ, SCROLLS.OBJ, -
- X SETS.OBJ, SIGNALS.OBJ, SPELLS.OBJ, STAFFS.OBJ, STORE1.OBJ, -
- X STORE2.OBJ, TABLES.OBJ, TREASURE.OBJ, UEXIT.OBJ, -
- X VARIABLE.OBJ, WANDS.OBJ, WIZARD.OBJ
- X - $(link) $(linkflags) MORIA.OPT/opt
- X
- Xcreate.obj : constant.h, types.h, externs.h, config.h
- Xcreature.obj : constant.h, types.h, externs.h, config.h
- Xdeath.obj : constant.h, types.h, externs.h, config.h
- Xdesc.obj : constant.h, types.h, externs.h, config.h
- Xdungeon.obj : constant.h, types.h, externs.h, config.h
- Xeat.obj : constant.h, types.h, externs.h, config.h
- Xfiles.obj : constant.h, types.h, externs.h, config.h
- Xgenerate.obj : constant.h, types.h, externs.h, config.h
- Xhelp.obj : constant.h, types.h, externs.h, config.h
- Xio.obj : constant.h, types.h, externs.h, config.h
- Xmagic.obj : constant.h, types.h, externs.h, config.h
- Xmain.obj : constant.h, types.h, externs.h, config.h
- Xmisc1.obj : constant.h, types.h, externs.h, config.h
- Xmisc2.obj : constant.h, types.h, externs.h, config.h
- Xmisc3.obj : constant.h, types.h, externs.h, config.h
- Xmisc4.obj : constant.h, types.h, externs.h, config.h
- Xmonsters.obj : constant.h, types.h, config.h
- Xmoria1.obj : constant.h, types.h, externs.h, config.h
- Xmoria2.obj : constant.h, types.h, externs.h, config.h
- Xmoria3.obj : constant.h, types.h, externs.h, config.h
- Xmoria4.obj : constant.h, types.h, externs.h, config.h
- Xplayer.obj : constant.h, types.h, config.h
- Xpotions.obj : constant.h, types.h, externs.h, config.h
- Xprayer.obj : constant.h, types.h, externs.h, config.h
- Xrecall.obj : constant.h, config.h, types.h, externs.h
- Xrnd.obj : constant.h, types.h
- Xsave.obj : constant.h, types.h, externs.h, config.h
- Xscrolls.obj : constant.h, types.h, externs.h, config.h
- Xsets.obj : constant.h, config.h
- Xsignals.obj : constant.h, types.h, externs.h, config.h
- Xspells.obj : constant.h, types.h, externs.h, config.h
- Xstaffs.obj : constant.h, types.h, externs.h, config.h
- Xstore1.obj : constant.h, types.h, externs.h, config.h
- Xstore2.obj : constant.h, types.h, externs.h, config.h
- Xtables.obj : constant.h, types.h, config.h
- Xtreasure.obj : constant.h, types.h, config.h
- Xvariable.obj : constant.h, types.h, config.h
- Xwands.obj : constant.h, types.h, externs.h, config.h
- Xwizard.obj : constant.h, types.h, externs.h, config.h
- END_OF_FILE
- if test 2583 -ne `wc -c <'vms/descrip.mms'`; then
- echo shar: \"'vms/descrip.mms'\" unpacked with wrong size!
- fi
- # end of 'vms/descrip.mms'
- fi
- echo shar: End of archive 38 \(of 39\).
- cp /dev/null ark38isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 39 archives.
- echo "Now run "bldfiles.sh" to build split files"
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-