[comp.sources.games] v03i034: crystal - another adventure game, Part02/05

games-request@tekred.TEK.COM (01/13/88)

Submitted by: nrcvax!kosman!kevin
Comp.sources.games: Volume 3, Issue 34
Archive-name: crystal/Part02



#! /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 2 (of 5)."
# Contents:  cvmsg.c cvobj.c random.h
# Wrapped by billr@tekred on Tue Jan 12 10:11:30 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f cvmsg.c -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"cvmsg.c\"
else
echo shar: Extracting \"cvmsg.c\" \(32509 characters\)
sed "s/^X//" >cvmsg.c <<'END_OF_cvmsg.c'
X/* cvmsg.c
X *  class messages:
X *
X *    these indicate the scores required for particular ratings.
X *    Each entry consists of a number and a message; if the number
X *    is posistive, it is the score required for the rating, and if
X *    the number is negative, it indicates how close to the maximum
X *    score you must be for the rating.  Watch out for -1, which
X *    terminates the list.
X *
X *  magic messages
X *
X *    messages for some special things, kept together for reference.
X *
X *  arbitrary messages
X *
X *    "*" appearing as the first character of any of these messages
X *    indicates that delivery of the message should result in
X *    termination of any multiple-command input line currently
X *    being processed.
X *
X *    Some of the messages are declared out of order, to accomodate
X *    limitations on the token length in my C compiler.
X *
X ***********************************************************************/
X
X#include <stdio.h>
X#include <string.h>
X#include "cvmsg.h"
X
Xstruct cmsg ctext[] = {
X{10,"You are obviously a rank amateur.  Better luck next time.\n"},
X{50,"Your score qualifies you as a novice-class spelunker.\n"},
X{75,"You have achieved the rating: \"Experienced Spelunker\".\n"},
X{125,"You may now consider yourself a \"Seasoned Spelunker\".\n"},
X{175,"You are now a \"Senior Spelunker\".\n"},
X{225,"You attained a \"First Class Spelunker\" score.\n"},
X{300,"You have reached \"Junior Master\" status.\n"},
X{-25,"Your score puts you in Master Spelunker class C.\n"},
X{-20,"Your score puts you in Master Spelunker class B.\n"},
X{-5,"Your score puts you in Master Spelunker class A.\n"},
X{0,"All of Cavedom gives tribute to you, Spelunker Grandmaster!\n"},
X{-1}};
X
X
Xchar *mmsg[] = {
X"",
X
X"A large cloud of green smoke appears in front of you.  It clears away to\n\
Xreveal a tall wizard, clothed in grey.  He fixes you with a steely glare\n\
Xand declares, \"This expedition has lasted too long.\"  With that, he makes\n\
Xa single pass over you with his hands, and everything around you fades\n\
Xaway into a grey nothingness.\n",
X
X"Even wizards have to wait longer than that!\n",
X
X"I'm terribly sorry, but Crystal Cave is closed.  Our hours are:\n",
X
X"Only wizards are permitted within the cave right now.\n",
X
X"We do allow visitors to make short explorations during our off hours.\n\
XWould you like to do that?\n",
X
X"Crystal Cave is open to regular spelunkers at the following hours:\n",
X
X"", /* 7 put into cvmotd.c */
X
X"Only a wizard may continue an expedition this soon.\n",
X
X"I suggest you continue your expedition at a later time.\n",
X
X"Do you wish to see the hours?\n",
X
X"Do you wich to change the hours?\n",
X
X"New magic word (null to leave it unchanged):\n",
X
X"New magic number (zero to leave it unchanged):\n",
X
X"", /* 14 put into cvmotd.c */
X
X"", /* 15 put into cvmotd.c */
X
X"", /* 16 put into cvmotd.c */
X
X"", /* 17 put into cvmotd.c */
X
X"That is not what I thought it was.  Do you know what I thought it was?\n",
X
X"Oh, dear, you really are a wizard!  Sorry to have bothered you . . .\n",
X
X"", /* 20 put into cvmotd.c */
X
X"New hours specified by defining \"Prime Time\".  Give only the hour\n\
X(e.g. 14, not 14:00 or 2PM).  Enter a negative number after the last pair.\n",
X
X"New hours for Crystal Cave:\n",
X
X"", /* 23 put into cvmotd.c */
X
X"", /* 24 put into cvmotd.c */
X
X"", /* 25 put into cvmotd.c */
X
X"Do you wish to (re)schedule the next holiday?\n",
X
X"To begin how many days from today?\n",
X
X"To last how many days (zero if no holiday)?\n",
X
X"To be called what (up to 20 characters)?\n",
X
X"Too small!  Assuming minimum value (45 minutes).\n"
X};
X
X
Xstatic char MSG157[] = "\
XI know of places, actions, and things.  Most of my vocabulary describes\n\
Xplaces, and is used to move you there.  To move, try words like PATH, UP,\n\
XDOWN, BARN, LEAVE, ENTER, EAST, WEST, NE, NW, etc.  Objects may be\n\
Xmanipulated using some of the action words that I know.  Usually, you'll\n\
Xneed to type both the object and the action word (in either order), but\n\
Xsome objects also imply verbs; in particular, \"INVENTORY\" implies \"TAKE\n\
XINVENTORY\", which causes me to list what you're carrying.  The objects have\n\
Xside effects.  Usually, people having trouble moving just need to try a few\n\
Xmore words: folks trying unsuccessfully to manipulate an object are trying\n\
Xsomething beyond their (or my!) capabilities and should try a completely\n\
Xdifferent tack.  I'll describe some of the more unusual aspects of the cave\n\
Xif you ask me (for example, say \"DESCRIBE TREES\").\n\
X\n\
XMORE - HIT ENTER TO CONTINUE\n";
X
Xstatic char MSG158[] = "\n\
XIf you think your problems are the fault of the program, you can let me\n\
Xknow through electronic mail. At this time, November 25, 1987, I can be\n\
Xreached at email address kevin@kosman.uucp.\n\
X\n\
XTo speed the game, you can sometimes move long distances with a single\n\
Xword.  For example, \"BARN\" usually gets you to the barn from anywhere\n\
Xabove ground except when lost in the woods.  Also, note that cave\n\
Xpassages turn a lot, and that leaving a room to the north does not\n\
Xguarantee entering the next from the south!  ...Good Luck!\n";
X
X
X
Xstatic char MSG142[] = "\
XIf you want to end your expedition early, say \"QUIT\".  To suspend your\n\
Xexpedition such that you can continue later, say \"SUSPEND\" (or \"PAUSE\"\n\
Xor \"SAVE\").  Later, you say \"RESTORE\" or \"CONTINUE\" to restore the game.\
X\n\
XTo see how well you're doing, say \"SCORE\".  To get full credit for a\n\
Xtreasure, you must have left it safely in the building, though you get\n\
Xpartial credit just for locating it.  You lose points for getting killed,\n\
Xor for quitting, though the former costs you more.  There are also points\n\
Xbased on how much (if any) of the cave you've managed to explore; in\n\
Xparticular, there is a large bonus just for getting in (to distinguish\n\
Xthe beginners from the rest of the pack), and there are other ways to\n\
Xdetermine whether you've been through some of the more harrowing sections.\n\
X\n\
XIf you think you've found all the treasures, just keep exploring for a\n\
Xwhile.  If nothing interesting happens, you haven't found them all yet.\n\
XIf something interesting does happen, it means you're getting a bonus and\n\
Xhave an opportunity to garner many more points in the master's section.\n\
XI may occasionally offer hints if you seem to be having trouble.  If I\n\
Xdo, I'll warn you in advance how much it will affect your score to accept\n\
Xthe hints.  Finally, to save paper or time, you may specify \"BRIEF\", which\n\
Xtells me never to repeat the full description of a place unless you\n\
Xexplicitly ask me to.\n";
X
Xchar *rmsg[] =
X{
XNULL,   /* no message zero */
X
X/* 1: */ "\
XYou are near Crystal Cave Park, where others have found fortunes in\n\
Xtreasure and gold, though it is rumored that some who enter are never\n\
Xseen again.  Magic is said to work in the cave.  I will be your eyes and\n\
Xhands.  Direct me with commands of 1 or 2 words.  Several commands may\n\
Xbe input on one line, as in \"IN. GET LAMP, KEYS. OUT\".  If you simply\n\
Xtype \"AGAIN\", I will repeat your last command string.\n\
X\n\
XIf you get stuck, type \"HELP\" for some general hints.  For information\n\
Xon how to end your expedition, etc., type \"INFO\".\n\
X\n\
XThis game is based on, and is intended as a sequel to, the adventure\n\
Xgame developed by Willie Crowther at Stanford.  The original FORTRAN\n\
Xauthor of this version is unknown.  This version was recoded in C and\n\
Xported to the UNIX PC by Kevin O'Gorman around January 1, 1986.\n",
X
X/* 2: */ "*\
XA little dwarf with a big knife blocks your way.\n",
X
X
X/* 3: */ "\
XA little dwarf just walked around a corner, saw you, threw a little axe\n\
Xat you (which missed), cursed, and ran away.\n",
X
X/* 4: */ "\
XThere is a threatening little dwarf in the room with you!\n",
X
X/* 5: */ "\
XOne sharp nasty knife is thrown at you.\n",
X
X/* 6: */ "\
XNone of them hit you.\n",
X
X/* 7: */ "*\
XOne of them gets you!\n",
X
X/* 8: */ "\
XThere is no one here to pay.\n",
X
X/* 9: */ "*\
XThere is no way to go that direction.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 10: */ "*\
XI am unsure how you are facing.  Use compass points or nearby objects.\n",
X
X/* 11: */ "*\
XI don't know in from out here.  Use compass points or name something in\n\
Xthe general direction you want to go.\n",
X
X/* 12: */ "*\
XI don't know how to apply that word here.\n",
X
X/* 13: */ "*\
XI don't understand that.\n",
X
X/* 14: */ "*\
XI'm game.  Would you care to explain how?\n",
X
X/* 15: */ "\
XSorry, but I am not allowed to give more details.  I will repeat the long\n\
Xdescription of your location:\n",
X
X/* 16: */ "*\
XIt is now pitch dark.  If you proceed you will likely fall into a pit.\n",
X
X/* 17: */ "\
XIf you prefer, simply type N rather than NORTH.\n",
X
X/* 18: */ "\
XThere is a Ranger behind you!  He says:\n",
X
X/* 19: */ "*\
XThe rapids are too swift to cross.\n",
X
X/* 20: */ "*\
XYou don't have your wallet!\n",
X
X/* 21: */ "*\
XYour wallet is empty.\n",
X
X/* 22: */ "*\
XDo you really wish to quit now?\n",
X
X/* 23: */ "*\
XYou fell into a pit and broke every bone in your body!\n",
X
X/* 24: */ "\
XYou are already carrying it.\n",
X
X/* 25: */ "*\
XYou can't be serious!\n",
X
X/* 26: */ "\
XThe boat is already untied.\n",
X
X/* 27: */ "\
XThe boat is already tied.\n",
X
X/* 28: */ "*\
XThere is nothing here with a lock.\n",
X
X/* 29: */ "*\
XYou aren't carrying it.\n",
X
X/* 30: */ "*\
XThe boat is a wreck!\n",
X
X/* 31: */ "*\
XYou have no keys.\n",
X
X/* 32: */ "\
XThe boat was in the path of the wall of water.\n",
X
X/* 33: */ "*\
XI don't know how to lock or unlock such a thing.\n",
X
X/* 34: */ "\
XIt was already locked.\n",
X
X/* 35: */ "\
XThe door is now locked.\n",
X
X/* 36: */ "\
XThe door is now unlocked.\n",
X
X/* 37: */ "\
XIt was already unlocked.\n",
X
X/* 38: */ "*\
XYou have no source of light.\n",
X
X/* 39: */ "\
XYour lamp is now on.\n",
X
X/* 40: */ "\
XYour lamp is now off.\n",
X
X/* 41: */ "\
XThe dam crashes open with a mighty roar.  A gigantic wall of water leaps\n\
Xacross the lake and down the stream passage, destroying everything in its\n\
Xpath.\n",
X
X/* 42: */ "\
XNothing happens.\n",
X
X/* 43: */ "*\
XWhere?\n",
X
X/* 44: */ "*\
XThere is nothing here to attack.\n",
X
X/* 45: */ "*\
XYou were in the boat. . .You are dead!!!\n",
X
X/* 46: */ "\
XThe flooding dam filled the cave mouth with debris (and nearly killed the\n\
XRanger).  The Park Service ordered the closing of Crystal Cave to\n\
Xtourists so there's nobody here to let you in (even if the gate wasn't\n\
Xjammed shut!)\n",
X
X/* 47: */ "\
XYou killed a little dwarf.\n",
X
X/* 47: */ "\
XYou attack a little dwarf, but he dodges out of the way.\n",
X
X/* 49: */ "*\
XWith what?  Your bare hands?\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 50: */ "\
XGood try, but that is an old worn-out magic word.\n",
X
X/* 51: */ NULL,
X
X/* 52: */ "\
XIt misses.\n",
X
X/* 53: */ "*\
XIt gets you!\n",
X
X/* 54: */ "\
XOkay.\n",
X
X/* 55: */ "*\
XYou can't unlock the keys.\n",
X
X/* 56: */ "*\
XBe thankful, there really is no way to get past the boulders.\n",
X
X/* 57: */ "\
XFor an instant, you catch sight of a doorway, but it immediately wavers\n\
Xand then disappears.\n",
X
X/* 58: */ "*\
XIn an underground cave, you'll need a compass in order to use compass\n\
Xpoint directions.\n",
X
X/* 59: */ "\
XI can only tell you what you see as you move about and manipulate things.\n\
XI cannot tell you where remote things are.\n",
X
X/* 60: */ "*\
XI don't know that word.\n",
X
X/* 61: */ "*\
XWhat?\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 62: */ "*\
XAre you trying to get into the cave?\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 63: */ "\
XThe gate is very solid and has a hardened steel lock.  The Ranger won't\n\
Xlet you in without paying, and you don't have your wallet.  I would\n\
Xrecommend that you find where you left your wallet.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 64: */ "\
XThe trees of the forest are large hardwood oak and maple, with an\n\
Xoccasional grove of pine or spruce.  There is quite a bit of undergrowth,\n\
Xlargely birch and ash saplings plus nondescript bushes of various sorts.\n\
XThis time of year visibility is quite restricted by all the leaves, but\n\
Xtravel is quite easy if you detour around the spruce and berry bushes.\n",
X
X/* 65: */ "\
XWelcome to the Crystal Cave expedition.  Would you like instructions?\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 66: */ "\
XDigging without a shovel is quite impractical.  Even with a shovel,\n\
Xprogress is unlikely.\n",
X
X/* 67: */ "\
XBlasting requires dynamite.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 68: */ "\
XI'm as confused as you are.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 69: */ "\
XMist is a white vapor, usually water, seen from time to time in caverns.\n\
XIt can be found anywhere but is frequently a sign of a deep pit leading\n\
Xdown to water.\n",
X
X/* 70: */ "\
XYour feet are now wet.\n",
X
X/* 71: */ "\
XI think I just lost my appetite.\n",
X
X/* 72: */ "\
XThank you, it was delicious.\n",
X
X/* 73: */ "\
XYou have taken a drink of water.  The water tastes strongly of minerals,\n\
Xbut is not unpleasant.  It is extremely cold.\n",
X
X/* 74: */ "*\
XYou can't read the compass in the dark.\n",
X
X/* 75: */ "\
XRubbing the electric lamp is not particularly rewarding.  Anyway, nothing\n\
Xexciting happens.\n",
X
X/* 76: */ "\
XPeculiar.  Nothing unexpected happens.\n",
X
X/* 77: */ "\
XThe ground is now wet.\n",
X
X/* 78: */ "*\
XYou can't pour that.\n",
X
X/* 79: */ "\
XThe ground is now wet and sticky.\n",
X
X/* 80: */ NULL,
X
X/*************************************************************************
X * NOTE: messages 81 through 89 are reserved for dying and getting
X * resurrected.  This is hardwired into the various code pieces.
X *************************************************************************/
X
X/* 81: */ "*\
XOh dear, you seem to have gotten yourself killed.  Do you want me to try\n\
Xto reincarnate you?\n",
X
X/* 82: */ "*\
XAll right.  By the way, I've never done this before, so don't blame me if\n\
Xsomething goes wr.....\n\
X                    --- POOF!! ---\n\
XYou are engulfed in a cloud of sulfurous white smoke.  Coughing and\n\
Xgasping, you emerge from the smoke and find....\n",
X
X/* 83: */ "*\
XOh-oh!  I daresay you've done it again.  The reincarnation worked last\n\
Xtime.  Do you want me to give it a go again?\n",
X
X/* 84: */ "*\
XOkay.  I used the white last time, let's see what this does.....\n\
X\n\
X                  | |  F O O P  | |\n\
XOOPS!\n\
XThe smoke is a nauseous purple this time, and as it clears,\n",
X
X/* 85: */ "*\
XI say there, this is becoming tiresome.  Shall we try again?\n",
X
X/* 86: */ "*\
XRight.  What does this do??\n\
X\n\
X                PPPP   OOO   OOO  FFFFF\n\
X        X       P   P O   O O   O F          X\n\
X      X   X     PPPP  O   O O   O FFFF     X   X\n\
X        X       P     O   O O   O F          X\n\
X                P      OOO   OOO  F\n\
X\n\
XMy goodness, that was a good one!  Bilious black smoke encircles you,\n\
Xclearing to show that....\n",
X
X/* 87: */ "*\
XYou clumsy oaf, you've done it again.  I don't know how long I can keep\n\
Xthis up.  Do you want me to try reincarnating you again?\n",
X
X/* 88: */ "*\
XOkay, now where did I put my orange smoke?....  >POOF!<\n\
XEverything disappears in a dense cloud of orange smoke.\n",
X
X/* 89: */ "*\
XNow you've really done it.  I'm out of colored smoke.  You don't expect\n\
Xme to do a decent reincarnation without any colored smoke, do you?\n",
X
X/* 90: */ "*\
XOkay, if you're so smart, do it yourself!  I'm leaving!\n",
X
X/* 91: */ "*\
XSorry, but I can no longer seem to remember how it was you got here.\n",
X
X/* 92: */ "*\
XYou can't carry anything more.  You'll have to drop something first.\n",
X
X/* 93: */ "\
XYou already have a saved game.  Do you want to overwrite it?\n",
X
X/* 94: */ "\
XI believe what you want is right here with you.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 95: */ "\
XBugbears are great hairy goblin giants.  Despite their size and shambling\n\
Xgait, they move very quietly and attack without warning whenever they can.\n",
X
X/* 96: */ "\
XWith a grate of dry bones, the skeleton stands!  It is coming after you!\n",
X
X/* 97: */ "\
XAs you drop the chest, the skeleton crumples to the ground.\n",
X
X/* 98: */ "\
XYou're not carrying anything.\n",
X
X/* 99: */ "You are currently carrying the following:\n",
X
X/* 100: */ "*\
XYou can't get past the skeleton.\n",
X
X/* 101: */ "\
XThe skeleton swings at you and misses!\n",
X
X/* 102: */ "*\
XThe skeleton swings at you...He gets you!\n",
X
X/* 103: */ "\
XYou fool, dwarves eat only coal.  Now you've made him really mad..\n",
X
X/* 104: */ "*\
XYou have nothing in which to carry it.\n",
X
X/* 105: */ "*\
XYou can't cut that!\n",
X
X/* 106: */ "*\
XThere is nothing here with which to fill it.\n",
X
X/* 107: */ "*\
XThe rope is anchored.  You will have to untie it first.\n",
X
X/* 108: */ "*\
XIf you cut it again, it will be too short to be useful.\n",
X
X/* 109: */ "*\
XYou can't fill that.\n",
X
X/* 110: */ "*\
XDon't be ridiculous.\n",
X
X/* 111: */ "\
XYou clutch convulsively at the rocks, but you are falling...\n",
X
X/* 112: */ "\
XThere is a sullen glow from the ruby.\n",
X
X/* 113: */ "*\
XThe Ranger comments:\n\
X\"You've been to the pig sinkhole.  You can't come in here smelling like\n\
Xthat.  Go take a shower!\"\n",
X
X/* 114: */ "*\
XHow, by swimming?\n",
X
X/* 115: */ "*\
XThe Ranger won't let you in without paying.\n",
X
X/* 116: */ "*\
XThe dwarves' knives vanish as they strike the walls of the cave.\n",
X
X/* 117: */ "*\
XSomething with you won't fit.  You had best take inventory and drop\n\
Xsomething.\n",
X
X/* 118: */ "\
XThe boat is tied.\n",
X
X/* 119: */ "*\
XThe boat won't fit.\n",
X
X/* 120: */ "*\
XYou quickly discover that you are unable to swim (or to breathe under\n\
Xwater).  Unfortunately, I don't know how to swim either.  You have just\n\
Xdrowned.\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 121: */ "*\
XAre you trying to get further into the cave?\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 122: */ "\
XThe water behind the dam is higher, and thus must be the source.  If you\n\
Xcan lower the water level back there, you may be able to get through.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 123: */ "\
XIn the time maze, there are paths in all directions, both past and future.\n",
X
X/* 124: */ "*\
XA compelling force prevents you from moving in that direction.\n",
X
X/* 125: */ "\
XAfter a few steps, you are thrown violently back.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 126: */ "\
XThe scroll seems to be held tightly wound by a powerful magic force.\n\
XPeering in the ends reveals some archaic writing in the form of a poem\n\
Xor perhaps an incantation, but I am unable to decipher any of it for you.\n",
X
X/* 127: */ "\
XThere is a faint curse from the darkness behind you.\n",
X
X/* 128: */ "\
XOut from the shadows behind you pounces a bearded pirate.  \"Har, har,\" he\n\
Xchortles, \"I'll just take all this booty and hide it away with me chest,\n\
Xdeep in the grotto!\"  He snatches your treasure and vanishes into the\n\
Xgloom.\n",
X
X/* 129: */ "*\
XA sepulchral voice reverberating through the cave, says, \"Cave closing\n\
Xsoon.  All spelunkers exit immediately through Main Office.\"\n",
X
X/* 130: */ "*\
XA mysterious recorded voice groans into life and announces:\n\
X\"This exit is closed.  Please leave via Main Office.\"\n",
X
X/* 131: */ "*\
XIt looks as though you're dead.  Well, seeing as how the cave has closed\n\
Xanyway, I think we'll just call it a day.\n",
X
X/* 132: */ "*\
XThe sepulchral voice intones, \"The cave is now closed.\"  As the echoes\n\
Xfade, there is a blinding flash of light (and a small puff of white\n\
Xsmoke). . . . You immediately feel the menacing presence of hundreds of\n\
Xpairs of unseen eyes upon you.  As your eyes re-focus, you look around\n\
Xand find. . .\n",
X
X/* 133: */ "*\
XStunned and almost drowned, you manage to swim to the nearby shore.\n",
X
X/* 134: */ "*\
XStunned, you drop all your treasures (which sink to the bottom, out of\n\
Xreach).  Almost drowned, you manage to swim to the nearby shore.\n",
X
X/* 135: */ "*\
XGrendl pounces - - -\n\
Xand gets you!\n",
X
X/* 136: */ "*\
XIt doesn't seem to work here.\n",
X
X/* 137: */ "\
XGrendl pounces - - -\n\
Xbut luckily falls upon your sword, and dies!!\n",
X
X/* 138: */ "\
XI daresay whatever you want is around here somewhere.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 139: */ "\
XI don't know the word \"STOP\". Use \"QUIT\" if you want to give up.\n",
X
X/* 140: */ "*\
XYou can't get there from here.\n",
X
X/* 141: */ "\
XThe axe bounces off harmlessly, and falls to one side.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 142: */ MSG142,   /************ message too long, so fiddle *********/
X
X/* 143: */ "*\
XFrom what?\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 144: */ "*\
XAre you trying to return to the time maze?\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 145: */ "\
XIn the time maze, there are paths in all directions, both past and\n\
Xfuture.  (You could have gotten this hint for free if you had asked me.)\n",
X
X/* 146: */ "*\
XIt is beyond your power to do that.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 147: */ "*\
XI don't know how.\n",
X
X/* 148: */ "\
XThe spices fly through the air, forming a fine cloud.  The dragon rears\n\
Xback triumphantly, ready to blast you, when the spices make him sneeze\n\
Xexplosively, and his fire is extinguished.  A very crestfallen and woe-\n\
Xbegone dragon looks up at you and says \"Mind if I tag along, Boss?\"\n",
X
X/* 149: */ "\
XYou killed a little dwarf.  The body vanishes in a cloud of greasy black\n\
Xsmoke.\n",
X
X/* 150: */ "\
XYou killed the kobold.  The body vanishes in a could of black smoke.\n",
X
X/* 151: */ "\
XThe bugbear grabs the keys and unlocks the chain.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 152: */ "\
XThat was intended as a rhetorical question.\n",
X
X/* 153: */ "\
XFor a moment, you are dangling precariously from the end of a 60 foot\n\
Xsection of rope above an 80 foot drop...\n\
XI am taking the liberty of assisting you back up the rope.\n",
X
X/* 154: */ "\
XWe're already flying.\n",
X
X/* 155: */ "*\
XOn what?\n",
X
X/* 156: */ "\
XOkay, from now on I'll only describe a place in full the first time you\n\
Xcome to it.  To get the full description, say \"LOOK\".\n",
X
X/* 157: */ MSG157,  /* part 1 of HELP text */
X
X/* 158: */ MSG158,  /* part 2 of HELP text */
X
X/* 159: */ NULL,
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 160: */ "\
XThe balrog is a hideous creature of immense strength who dwells in dark,\n\
Xforbidding places.  He fears nothing and strikes out violently at any-\n\
Xthing which disturbs him.\n",
X
X/* 161: */ "*\
XYou are halfway down the windshaft and falling rapidly.  It seems that\n\
Xyou were transported to just above where the shelf used to be.\n\
XThe next thing you know...\n",
X
X/* 162: */ "\
XThere is a rumbling sound deep within the earth.\n",
X
X/* 163: */ "\
XYour speaking started a rock slide.  One particularly large rock hit the\n\
Xshelf, destroying it totally.\n",
X
X/* 164: */ "\
XThe axe misses and lands near the bugbear where you can't get at it.\n",
X
X/* 165: */ "*\
XWith what?  Your bare hands?  Against his bear hands?\n",
X
X/* 166: */ "\
XOkay, but I hope you weren't counting on the dragon eating that!\n",
X
X/* 167: */ "\
XThe rope has a knot in it, so I think I'll just untie it for you.\n",
X
X/* 168: */ "\
XIf you cut it now, the rope will fall and you'll lose it.\n",
X
X/* 169: */ NULL,
X
X/* 170: */ NULL,
X
X/* 171: */ NULL,
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 172: */ "*\
XDo you need help getting into the hole?\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 173: */ "\
XIn order to multiply your treasure further, something you already know\n\
Xmust be divided.\n",
X
X/* 174: */ "*\
XThere is nothing here to eat.\n",
X
X/* 175: */ "*\
XDo you want the hint?\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 176: */ "*\
XDo you need help getting out of the maze?\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 177: */ "\
XYou can make the passages look less alike by dropping things.\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 178: */ "\
XWhen lost in the woods, the safest approach is to stay in one place and\n\
Xwait for someone to find you.  Since nobody is likely to find you in here\n\
Xif you just wait, I recommend that you head down whenever possible and\n\
Xtry to find the river by the cave entrance.\n",
X
X/* NOTE: coordinated with the 'hints' array in cvlocs.c */
X/* 179: */ "*\
XDo you need help getting out of the woods?\n",
X
X/* 180: */ "\
XOnly the lamp can be turned on or off.\n",
X
X/* 181: */ "\
XYour lamp was already on.\n",
X
X/* 182: */ "\
XYour lamp was already off.\n",
X
X/* 183: */ "\
XYour lamp is getting dim.  You'd best start wrapping this up, unless you\n\
Xcan find some fresh batteries.  I seem to recall there were some in the\n\
Xtimemaze.\n",
X
X/* 184: */ "\
XYour lamp has run out of power.\n",
X
X/* 185: */ "*\
XThere's not much point in wandering around out here, and you can't\n\
Xexplore the cave without a lamp.  So let's just call it a day.\n",
X
X/* 186: */ "\
XThere is a faint curse from the darkness behind you.  As you turn toward\n\
Xit, the beam of your lamp falls across a bearded pirate.  He is carrying\n\
Xa large chest.  \"Shiver me timbers!\" he cries, \"I've been spotted.\n\
XI'd best hie meself off to the grotto to hide me chest.\"  With that, he\n\
Xvanishes into the gloom.\n",
X
X/* 187: */ "\
XYour lamp is getting dim.  You'd best go back for those batteries.\n",
X
X/* 188: */ "\
XYour lamp is getting dim.  I'm taking the liberty of replacing the\n\
Xbatteries.\n",
X
X/* 189: */ "\
XYour lamp is getting dim, and you're out of spare batteries.  You'd best\n\
Xstart wrapping this up.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 190: */ "\
X\"In Cornwall there was a Stone of power -- the Seige Perilous.  It was\n\
Xsaid to be able to judge a man, determine his worth, and then deliver him\n\
Xto his fate.  Arthur was supposed to have learned of its power from\n\
XMerlin, and incorporated it among the seats of the Round Table.\"\n",
X
X/* 191: */ "\
XThank you, how refreshing to relax.  These old bones are not what they\n\
Xused to be.\n",
X
X/* 192: */ "\
XWe're already sitting.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 193: */ "\
XThe Djinn are free-willed, intelligent, air-elemental spirits.  They will\n\
Xnot harm you, but may aid you if they are present.\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 194: */ "\
XKobolds are evil, dwarf-like creatures, more closely related to goblins.\n\
XThey are more dangerous than dwarves, however.\n",
X
X/* 195: */ "*\
XI'm afraid I don't understand.\n",
X
X/* 196: */ "*\
XThe bugbear gets you, and gives you a big bear hug, breaking every bone\n\
Xin your body!\n",
X
X/* 197: */ "\
XOkay.\n\
XOops. . .\n\
XSorry about that. . .\n\
XHow clumsy of me. . .\n",
X
X/* 198: */ "*\
XHow, by flying?\n",
X
X/* 199: */ "\
XThe wind catches the carpet, capsizing it and dropping you off!\n\
XUnburdened, it sails off as you plummet to the bottom!\n",
X
X/* 200: */ "*\
XIs this acceptable?\n",
X
X/* 201: */ "\
XThere's no point in suspending a demonstration game.\n",
X
X/* 202: */ "\
XI can't find it in the dark.\n",
X
X/* 203: */ "\
XThe dragon belches forth a ball of flame in your direction, which misses.\n\
XYou are unable to pick up anything though, because of the heat.\n",
X
X/* 204: */ "*\
XThere is nothing here to tie the rope around.\n",
X
X/* 205: */ "*\
XYou have no rope.\n",
X
X/* 206: */ "*\
XYour rope will not reach.\n",
X
X/* 207: */ "*\
XYou have nothing to cut with.\n",
X
X/* 208: */ "*\
XDue to your sloppy workmanship, the knot in the rope has come untied\n\
Xwhile you were halfway down.  You have fallen 45 feet onto some very\n\
Xsharp rocks.\n",
X
X/* 209: */ "\
XOkay.\n\
XThe Djinni, his service finished, vanishes.\n",
X
X/* 210: */ "*\
XSeven men, wearing grey business suits and carrying briefcases, surround\n\
Xyou and identify themselves as representatives of the Internal Revenue\n\
XService!  With absolutely no show of emotion, they report:\n\
X    \"We understand that you have been accumulating some un-declared\n\
X     income.  We wish to discuss this matter with you.\"\n\
XYou have been taxed to death!\n",
X
X/* 211: */ "*\
XThe way is blocked.\n",
X
X/* 212: */ "*\
XAn immense white dragon lumbers out of the door, breathing incandescently\n\
Xhot balls of fire at you, all of which get you!  He then beats you\n\
Xseverely about the head and shoulders with his wings, which have long,\n\
Xsharp talons on the edges!  He finally jumps up and down on you, over and\n\
Xover and over and over and over and over and over and...You get the idea.\n\
XYou are dead.\n",
X
X/* 213: */ "*\
XThe guard, Patrolman Pete, comes running out of the doorway, waving his\n\
Xpistol and shouting:\n\
X     \"This area is off-limits.  You shouldn't come here.\"\n\
XJust then, he trips and falls.  The gun discharges, putting a bullet\n\
Xthrough your heart.  You are dead!\n",
X
X/* 214: */ "\
XAs you speak, several large rocks drop down the shaft and carom off the\n\
Xshelf.  While they narrowly miss you, they raise a great cloud of dust\n\
Xand start numerous cracks in the rock.\n",
X
X/* 215: */ "\
XYou miss but manage to catch the near edge of the bridge and swing back\n\
Xup onto it.\n",
X
X/* 216: */ "\
XYou just manage to catch the far edge of the bridge and swing up onto it.\n",
X
X/* 217: */ "\
XThings are looking awfully bleak.\n",
X
X/* 218: */ "\
XJump!\n",
X
X/* 219: */ "\
XYou drop through an impenetrable gloom.  Oppressive fear gathers, clawing\n\
Xat you.  You are sinking into the depths of Hell, with no salvation in\n\
Xsight.  The clammy, black air whistling past is the only sound filling\n\
Xyour fear-crazed mind.  You are tumbling endlessly, spinning over and\n\
Xover.  Suddenly, you feel your descent slowing!  With a rush, you finally\n\
Xcome to a landing and find...\n",
X
X/* 220: */ "*\
XAll directions are down.  Please be more specific.\n",
X
X/* 221: */ "*\
XI don't know how to play such a thing.\n",
X
X/* 222: */ "\
XThe sweet music attracts the unicorn.\n",
X
X/* 223: */ "*\
XThe orc priest grabs you and efficiently converts you into a pile of\n\
Xgreasy rubble!\n",
X
X/* 224: */ "\
XYou drop through an impenetrable gloom.  Oppressive fear gathers, clawing\n\
Xat you.  You are sinking into the depths of Hell, with no salvation in\n\
Xsight.  The clammy, black air whistling past is the only sound filling\n\
Xyour fear-crazed mind.  You are tumbling endlessly, spinning over and\n\
Xover.  Below you, a roar arises from an unseen source, and gets louder\n\
Xand louder!!  Suddenly, you break into a lighted area, and immediately\n\
Xcrash into the depths of an almost bottomless pool of water!\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 225: */ "\
XHey!  Watch it!  This adventure is rated \"G\"\n",
X
X/* NOTE: The following message is number-coordinated with vocabulary
X		section 3.  BEWARE. */
X/* 226: */ "\
XUnicorns are magical creatures.  Though immortal in ordinary terms, they\n\
Xare frequently prey to careless arrows or deceitful behavior.  Their\n\
Xshyness is legendary, although they will often overcome their fear to\n\
Xbefriend a virgin or to help one in mortal peril.  It is said that a\n\
Xunicorn's horn is proof against death!\n",
X
X/* 227: */ "\
XAre you a wizard?\n",
X
X/* 228: */ "\
XVery well.\n",
X
X/* 229: */ "\
XDo you wish to change the message of the day?\n"
X};
X
Xextern void encode();
X
Xvoid fixrmsg() {
X	register int m;
X
X	for (m=0; m <= 229; m++) {
X		register char *msg;
X		msg = rmsg[m];
X		if (*msg == '*') msg++;
X		encode(msg);
X	}
X};
END_OF_cvmsg.c
if test 32509 -ne `wc -c <cvmsg.c`; then
    echo shar: \"cvmsg.c\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f cvobj.c -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"cvobj.c\"
else
echo shar: Extracting \"cvobj.c\" \(18238 characters\)
sed "s/^X//" >cvobj.c <<'END_OF_cvobj.c'
X/* cvobj.c
X *    object descriptions, etc.
X *************************************************************************/
X
X#include <stdio.h>
X#include "cvobj.h"
X#include "cvlocs.h"
X
Xextern struct cvloc cvloc[]; 
X
Xstruct cvobj cvobj[] = {
X
X{""},	/* there's no object zero */
X
X{"several diamonds","There are diamonds here.\n",116},
X
X{"sack of silver","There is a sack of silver here.\n",109},
X
X{"precious jewelry","There is precious jewelry here.\n",123},
X
X{"rare coins","There are many coins here.\n",77},
X
X{"treasure chest","The pirate's treasure chest is here.\n"},
X
X{"ermine cape","There is an ermine cape here.\n",89},
X
X{"iron crown","There is a black, finely wrought iron crown here.\n",83},
X
X{"scepter","There is a jewel-encrusted scepter here.\n",110},
X
X{"fist-sized sapphire","There is a sapphire here the size of your fist.\n",
X	117},
X
X{"platinum orb","There is a platinum orb here, 6 inches in diameter.\n",114},
X
X{"jade idol","There is a small, exquisite jade idol here.\n~\
XA gigantic idol blocking the far end of the chamber is facing you.\n~\
XA convulsive groan fills the chamber, as the idol shatters explosively.\n\
XFlying shards strike and kill all of the orcs, and narrowly miss you!\n\
XAll the orcs vanish in greasy black clouds of smoke.\n",
X	132,-1,1},
X
X{"persian rug","There is a persian rug spread out on the floor.\n~\
XYou are hovering in the air, resting on a carpet.\n~\
XAs you drop the carpet, it flies away, out of sight.\n",
X	126},
X
X{"jeweled collar","There is a jeweled collar here.\n~\
XThere is a unicorn wearing a jeweled collar beside you.\n~\
XThere is a unicorn wearing a jeweled collar nearby.\n~\
XThe unicorn disappears as you touch it, but the collar drops to the floor!\n~\
XThe unicorn shies away as you try to approach it.\n~\
XThe unicorn gingerly approaches your corpse and gently touches you with\n\
Xits horn.  As it moves away, you begin to stir, slowly at first and\n\
Xgradually return to life and to health!\n~\
XA soft glow from the unicorn's magic horn lights up the area.\n",
X	0,-1,2},
X
X{"golden chain","There is a golden chain lying in a heap on the floor.\n~\
XThere is a golden chain locked to the wall.\n~\
XThe bugbear is locked to the wall with a golden chain\n",
X	76,-1,2},
X
X{"ring of adamant","There is a ring of adamant here.\n",128},
X
X{"mithril helm","Near you is a small helmet made of mithril.\n~\
XThe Fell King is striding after you!\n~\
XThe tomb crumbles into dust.  The graven figure on top rises.  He is\n\
Xstalking you, swinging the mace!\n~\
XThe mace strikes the dragon, killing the poor thing.\n~\
XThere is a massive iron tomb here.  On top is a wrought figure of the\n\
XKing...a fell figure of grim visage, wearing a mithril helm, and holding\n\
Xa mace.\n~\
XThe Fell King has caught up.  His mace catches you across the head, and\n\
Xyou die!\n~\
XThe Fell King disintegrates into a pile of dust, which rapidly blows away\n\
XHis helm falls with a crash, and rolls to one side.\n",
X	83,-1,4},
X
X{"large gold nugget","There is a large sparkling nugget of gold here.\n",
X	60},
X
X{"throne","There is a large, bejeweled throne lying to one side.\n~\
XThere is a large, bejeweled throne here.\n~\
XAs you sit, you notice the inscription--\"Siege Perilous -- Nobles only.\"\n~\
XWith a fearful roar, the throne hurls you straight up -- plastering you\n\
Xon the roof of the cave!\n~\
XWith a powerful roar, the throne hurls you straight up -- you narrowly\n\
Xmiss hitting the roof of the cave!  Your fall jars every bone in your\n\
Xbody, but you find that you are all right.\n~\
XWith a roar, the throne flips you into the air to land on the ground in\n\
Xfront of it.\n~\
XWith a thump, the throne casts you on the ground in front of it.\n~\
XThe throne silently tips over, revealing a hidden passage beneath it.\n\
XThis is all that you have time to observe, as you are immediately trans-\n\
Xported, whirling giddily, throught a region of ominous vague shapes,\n\
Xsomber shadows, and sullenly-glowing lights!  Finally landing with a \n\
Xcrash, you shake your head to clear it, look around, and discover . . .\n",
X	71,-1,1},
X
X{"sword","There is a jeweled sword here.\n",
X	68},
X
X{"hammer","There is a golden hammer head here.\n~\
XThere is a heavy lead hammer here.\n~\
XThe hammer shatters as it hits the skeleton.\n",
X	79,0,1},
X
X{"golden cup","There is a jeweled, golden cup here.\n~\
XThere is a jeweled, golden cup full of water here.\n~\
XThere is a jeweled, golden cup full of wine here.\n~\
XThere is a jeweled, golden cup full of cola here.\n~\
X    water in the cup\n~\
X    wine in the cup\n~\
X    cola in the cup\n~\
XThe cup is now empty.\n~\
XThe cup is now full of water.\n~\
XThe cup is now full of wine.\n~\
XThe cup is now full of cola.\n~\
XThe cup was empty.\n~\
XThe cup is already full.\n~\
XThe bugbear is clutching the empty cup.\n",
X	72},
X
X{"ruby medallion","There is a ruby medallion here.\n",
X	83},
X
X{"parchment scroll","There is a parchment scroll here.\n",
X	75},
X
X{"ivory harp","There is a rare ivory harp here.\n~\
XA resounding chord rings through the room as you play.\n",
X	137},
X
X{"Philosopher's stone","The Philosopher's Stone is here.\n",
X	143},
X
X{"keg of beer","There is an intricately carved keg of beer here.\n~\
XThere is a shattered beer keg here.\n",
X	73},
X
X{"long sword","There is a long sword here.\n",
X	150},
X
X{"broad sword","There is a broad sword here.\n",
X	150},
X
X{"spear","There is a spear here.\n",
X	150},
X
X{"short sword","There is a short sword here.\n",
X	150},
X
X{"bow","There is a bow here.\n",
X	150},
X
X{"dagger","There is a dagger here.\n",
X	150},
X
X{"quarterstaff","There is a quarterstaff here.\n",
X	150},
X
X{"halberd","There is a halberd here.\n",
X	150},
X
X{"armor","There is armor here.\n",
X	150},
X
X{"heater shield","There is a \"heater\" shield here.\n",
X	150},
X
X{"round shield","There is a round shield here.\n",
X	150},
X
X{"tall shield","There is a tall shield here.\n",
X	150},
X
X{"cuirass","There is a cuirass here.\n",
X	150},
X
X{"","There is a pure white column here.\n~\
XThere is a scarred, beat up, muddy white column here.\n",
X	32,-1},
X
X{"","There are cave pearls here.\n~\
XThere are the shattered remains of cave pearls here.\n",
X	46},
X
X{"","There are helictites on the walls.\n~\
XThe ground is littered with broken helictites.\n",
X	49},
X
X{"","There are gypsum flowers here.\n~\
XThere are the remains of shattered gypsum flowers here.\n",
X	47},
X
X{"","There are many cave bats here.\n~\
XBodies of dead bats litter the ground.\n",
X	52},
X
X{"","There is a crystal butterfly here.\n~\
XThere are shattered pieces of crystal here.\n",
X	42},
X
X{"","The ceiling is covered with soda-straw stalactites.\n~\
XThe ground is covered with pieces of broken soda-straws.\n",
X	48},
X
X{"","There is an ancient indian pot here.\n~\
XThe ground is covered with potshards.\n",
X	31},
X
X{""},	/* hole in sequence */
X
X{""},	/* hole in sequence */
X
X{"compass","A Boy Scout compass is lying nearby.\n",
X	1},
X
X{"set of keys","There are some keys on the ground here.\n",
X	2},
X
X{"brass lantern","There is a shiny brass lamp nearby.\n~\
XThere is a lamp shining nearby.\n",
X	2},
X
X{"","Ranger Rick cautions you not to take or break anything in the cave.\n~\
X\"I told you not to take or break anything!  Don't do it again!\"\n~\
X\"I warned you!  Now you must leave the cave!\"\n~\
X\"Okay.  I'm taking you to headquarters.\"\n~\
X\"I've had it with you.  I'm locking you up.\"\n~\
X\"This time I'm going to throw away the key.\"\n~\
XRanger Rick has been patrolling the cave in response to numerous com-\n\
Xplaints of gate-crashers.  You are the twelfth one he has caught today.\n\
XAfter escorting you out of the cave, he leaves you with a stern warning\n\
Xnot to take or break anything.\n",
X	30},
X
X{"Sears catalog","There is a Sears catalog here.\n~\
XThe Sears catalog is lying at the bottom of the hole.\n",
X	4},
X
X{"your wallet","Your wallet is here, containing 1 dollar in change.\n~\
XYour wallet is here, containing 75 cents in change.\n~\
XYour wallet is here, containing 50 cents in change.\n~\
XYour wallet is here, containing 25 cents in change.\n~\
XYour empty wallet is here.\n",
X	2},
X
X{"","The cell door is locked.\n~\
XThe cell door is standing open.\n",
X	21,-1,1},
X
X{"","There is a small bridge crossing the rapids.\n~\
XThere is the wreckage of a small bridge here.\n",
X	33,35},
X
X{"You are in a small boat.","A small boat is tied here.\n~\
XA small boat is floating nearby.\n~\
XYou are in a small boat tied here.\n~\
XYou are afloat in a small boat.\n~\
XThe wreckage of a small boat rests here.\n",
X	33},
X
X{"","There is a large rimstone dam here.  Behind it, a pool of water\n\
Xspills steadily over the dam.  The ceiling dips into the pool.\n~\
XThere is a broken rimstone dam here.  The water level is the same on\n\
Xboth sides of the dam.\n",
X	37,60},
X
X{"","The gate is locked, and guarded by a Ranger.  A sign says:\n\
X    \"PAY RANGER FOR ADMISSION\".\n~\
XThe gate opens easily from the inside.  A sign says:\n\
X    \"PERSONS LEAVING MUST RE-PAY TO REENTER\".\n~\
XThe gate is jammed shut by debris.\n~\
XThe gate is locked from the other side.\n",
X	30,31},
X
X   /* ROPE */
X{"a coil of rope","There is a 120 foot coil of rope here.\n~\
XThere is a 120 foot rope anchored here.\n~\
XThere is a 60 foot coil of rope here.\n~\
XThere is a 60 foot rope anchored here.\n~\
XThere is a 120 foot coil of rope with a knot in the middle here.\n~\
XThere is a 120 foot rope with a knot in the middle anchored here.\n~\
XThere is a 120 foot coil of rope with a knot in the moddle here.\n~\
XThere is a 120 foot rope with a knot in the middle anchored here.\n",
X	7},
X
X   /* ROPE2 */
X{"a coil of rope","~\
X~\
XThere is a 60 foot coil of rope here.\n~\
XThere is a 60 foot rope anchored here.\n"},
X
X   /* EROPE */
X{"","The end of a rope dangles from above.\n~\
XA rope dangles from above, and falls below.\n~\
XA knotted rope dangles from above, and falls below.\n~\
XA rope dangles from above.  About 60 feet of it lies on the ground,\n\
Xnot quite enough to reach the hole.\n~\
XA rope dangles from above.  Some of it lies on the ground.\n",
X	0,-1},
X
X   /* EROPE2 */
X{"","The end of a rope dangles from above.\n",
X	0,-1},
X
X{"","There is an immense pile of bat guano here.\n",
X	52,-1},
X
X{""},	/* hole in sequence */
X
X{"rare spices","There are rare spices here.\n",
X	88},
X
X{""}, /* knife */
X
X{"tasty food","There is food here.\n",
X	74},
X
X{"small bottle","There is an empty bottle here.\n~\
XThere is a bottle of water here.\n~\
XThere is a bottle of wine here.\n~\
XThere is a bottle of cola here.\n~\
X    water in the bottle\n~\
X    wine in the bottle\n~\
X    cola in the bottle\n~\
XThe bottle is now empty.\n~\
XThe bottle is now full of water.\n~\
XThe bottle is now full of wine.\n~\
XThe bottle is now full of cola.\n~\
XThe bottle was empty.\n~\
XThe bottle is already full.\n~\
XThe bugbear is clutching the empty bottle.\n",
X	0,0,3},
X
X{""}, /* water */
X
X{""}, /* wine */
X
X{""}, /* cola */
X
X{"","There is a vacant mirror against the wall.\n~\
XYour reflection peers back at you from a mirror on the wall.\n~\
XAs you step out the door, your image also steps from the mirror, and\n\
Xfollows you!  Armed and armored exactly as you, *YOU* are your exact\n\
Xmatch, except that your good nature is reflected as *YOUR* evil nature.\n\
X*YOU* will kill you, unless you destroy *YOURSELF* first.\n~\
XThe mirror shatters explosively, destroying *YOU*!  You are thrown\n\
Xbackward, throught the dorr, into the arena, where your screaming fans\n\
Xflock down around you, pick you up, and carry you off to a month-long\n\
Xrevel honoring the glorious cave conqueror. . .\n~\
XThe mirror shatters explosively, destroying you and all the cave.\n",
X	150,-1,1},
X
X{"","The half-disolved corpse of the giant orc is floating here in the acid\n\
Xsea.\n~\
XThe giant, angry orc is coming after you!\n~\
XA gigantic orc priest stands before the idol, and says:\n\
X    \"You would be well off to make an offering to out idol!\"\n~\
XHe easily snatches the axe from the air, examines it, laughs nastily,\n\
Xand throws it back.  He's very good at this, and he gets you.\n~\
XThe giant orc stumbles into the acid sea, and screams in agony as the\n\
Xwaters attack him, boiling furiously, and raising great clouds of reeking\n\
Xfumes.\n",
X	132,-1,2},
X
X{"","There is a pile of greasy, black rubble here.\n~\
XThe galleries are lined with orcs, silently watching you.\n~\
XThe orcs chant \"That is not the real thing\", and throw offal.\n~\
XThe orcs scream \"AAIIEEE - - - 'ORCA-COLA'.\
X                  IT IS THE REAL THING!!!\"\n",
X	132,-1,1},
X
X{"","",
X	0,-1},   /* tomb */
X
X{"dwarf's axe","There is a little axe here.\n~\
XThere is a little axe lying beside the bugbear.\n"},
X
X{"","There is a small, flat very ugly toad sitting here.\n~\
XAs you touch the toad, it starts to swell and shange shape.  It's --\n\
Xit's -- it's turning into a dwarf princes!  She -- she -- she's --\n\
Xshe's -- UGLY!\n\
X      -- VERY UGLY!!!!!!\n\
XShe's 3'6\" tall, and 180 lbs., with black, oily, snarly hair, and three\n\
Xlarge warts on her nose, which separates two beady red eyes that don't\n\
Xtrack.  She immediately starts to say, in a high-pitched nasal whine,\n\
X\"Trying to pick me up, eh sweetie?  Where do you think you get off?  I'm\n\
Xa decent broad, and won't have any of this.  Whatcha doing around here?\n\
XYou one of those weird explorers who rip off decent folks, taking their\n\
Xtreasures out of the cave?  I hope you haven't found the vault yet . . .\"\n\
X\n\
XA cloud of white smoke and a wizard appear.  He is garbed in green and\n\
Xviolet robes, and says \"I really must apologize about this.  She has no\n\
Xbusiness in this game; she escaped from another game in the next town.\n\
XThere really is no vault in this cave...she's referring to the next cave.\n\
XSorry again.\"  With that, he takes her hand, and they start to vanish.\n\
XAs they fade out of sight, you note that she has taken his hat, and is\n\
Xbeating him severely about the ears with it.\n",
X	133},
X
X{"turqoise sand","There is turquoise sand here.\n~\
XThe sand spreads out into a fine, stinging cloud.\n",
X	140},
X
X{"","You are standing on a thin shelf of rock jutting out from the side\n\
Xof the windshaft.\n~\
XYou are standing on a thin shelf of rock jutting out from the side of the\n\
Xwindshaft.  Be careful, there are some cracks in the shelf!\n~\
XThere are some loose rocks here indicative of a recent rock slide.\n",
X	130,-1},
X
X{"","The hangings look expensive, but very delicate.\n~\
XOkay, but ... ooops, how clumsy of me!  Lucky there's no Ranger down here!\n~\
XThe silk hangings are in tatters.\n~\
XThe shreds of silk are not worth bothering with.\n",
X	126},
X
X{""},	/* 83: hole in sequence */
X
X{""},	/* 84: hole in sequence */
X
X{""},	/* 85: hole in sequence */
X
X{"","There is a large mound of pig droppings here.\n~\
XThere is a large mound of pig droppings here, with footprints.\n",
X	9,-1},
X
X{"","There is a shower here.\n~\
XYou are soaking wet, but much cleaner.\n",
X	2,-1},
X
X{"","There is a cola machine in one corner.  The instructions read:\n\
X    \"DROP CHANGE HERE TO GET A COLA.\"\n~\
XThere is an empty cola machine in one corner.\n",
X	2,-1},
X
X{"batteries","There are fresh batteries here..\n~\
XSome worn-out batteries have been discarded nearby.\n",
X	119},
X
X{"","",
X	0,-1},	/* dwarf */
X
X{"","There is a drunken bugbear snoring loudly in one corner.\n~\
XThere is a well-fed bugbear attacking you!\n~\
XThere is a bugbear attacking you!\n~\
XThere is a ferocious, well-fed bugbear at the far end of the room.\n~\
XThere is a ferocious bugbear at the far end of the room.\n",
X	76,-1,4},
X
X{"","\There is a pile of broken bones here, with a rusty, broken cutlass\n\
Xnearby.\n~\
XThere is an animated skeleton circling around you, waving a cutlass!\n~\
XA skeleton is here, clutching a cutlass.\n",
X	87,-1,2},
X
X{"","The corpse of a giant hairy spider lies to one side.\n~\
XA giant hairy spider is following you, trying to get you!\n~\
XA giant hairy spider, named \"Grendl\", drops from the ceiling, barely\n\
Xmissing you.  It starts to chase you around the room, trying to get you!\n",
X	0,-1,2},
X
X{"","The body of a small white dragon lies nearby.\n~\
XA small, white, fierce fire-breathing dragon lies on guard here.\n~\
XYou are being followed by a dragon, who whines \"I'm hungry.\"\n~\
XA dragon follows you, whimpering \"Can I have a match, boss?\"\n~\
XA dragon follows you, whining \"I want my treasure back.\"\n~\
XThere is a dragon beside you grumbling \"Can't we stop and rest?\"\n~\
XThere is a dragon beside you, sniveling \"I want to go home.\"\n~\
XThe small dragon complains \"I don't like this place.\"\n~\
XThe small dragon wails \"Can I have some treasure, too?\"\n~\
X\"Woe is me,\" wails the small dragon.\n",
X	110,-1,1},
X
X{"","There is a djinni in the room with you.\n",
X	0,-1},
X
X{"","There is a kobold in the room with you.\n~\
XA knife is thrown at you...which misses!\n~\
XA knife is thrown at you...which gets you!\n~\
XA black cloud of smoke lingers here.\n",
X	0,-1},
X
X{"","The foul, stinking corpse of a balrog lies here.\n~\
XStricken, and taken off guard, the balrog stumbles back. . .back. . .\n\
Xand falls over the edge. . .down. . .down. . .down. . .and vanishes\n\
Xinto the gloom.\n~\
XThere is a loathsome balrog here.\n~\
XThe balrog grasps blindly for you!\n~\
XHe hits your lamp shorting out the batteries and draining 90% of their\n\
Xremaining life.  Best do something before you run out of light!\n",
X	0,-1,2},
X
X{"","*YOU* are circling yourself warily, looking for an opening to attack.\n~\
X*YOU* easily parry your attack, and successfully attack in return,\n\
Xyou!  You have died!!!\n~\
X*YOU* attack you, but you parry *YOUR* attack, and attack unsuccessfully\n\
Xin return.\n~\
XSimultaneously, both you and *YOU* throw and handful of sand into each\n\
Xother's eyes, accomplishing nothing.\n~\
XExpecting and attack, you and *YOU* retreat from each other, then come\n\
Xback and clash, fruitlessly.\n",
X	0,-1},
X
X{NULL,NULL}
X};
X
X#include <string.h>
X
Xextern void encode();
X
Xvoid checkobj() {
X	register int i, c;
X	for (i=1; cvobj[i].desc != NULL; i++)
X	{	register char *p, *s;
X		p = cvobj[i].props;
X		if ( p != NULL && *(p) != '\0' && 
X			*(p+strlen(p)-1) != '\n')
X		(void) printf("obj %d cvobj: \n%s\n",i,p);
X
X		encode(cvobj[i].desc);
X
X		s = p;
X		for (c=0; p[c]; c++) {
X			if (p[c] == '~') {
X				p[c] = '\0';
X				encode(s);
X				s = &(p[c+1]);
X			}
X		}
X		encode(s);
X	}
X};
END_OF_cvobj.c
if test 18238 -ne `wc -c <cvobj.c`; then
    echo shar: \"cvobj.c\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f random.h -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"random.h\"
else
echo shar: Extracting \"random.h\" \(310 characters\)
sed "s/^X//" >random.h <<'END_OF_random.h'
X/* random.h
X *************************************************************************/
X
X#include	<math.h>
X
Xdouble drand48();	/* 0 to 1 */
X
Xlong lrand48();		/* 0 to 2^31-1 */
X
Xlong mrand48();		/* -2^31 to 2^31-1 */
X
X#define	RAN(num)	((int)floor(drand48()*(num)))
X#define	PCT(num)	((drand48() * 100.0) < (num))
END_OF_random.h
if test 310 -ne `wc -c <random.h`; then
    echo shar: \"random.h\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of archive 2 \(of 5\).
cp /dev/null ark2isdone
MISSING=""
for I in 1 2 3 4 5 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 5 archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0