home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!news.tek.com!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v18i026: ccr - colossal cave (adventure) implemented in TADS, Part11/11
- Date: 12 Jul 1993 19:29:21 GMT
- Organization: Tektronix, Inc, Redmond, OR, USA
- Lines: 1252
- Approved: billr@saab.CNA.TEK.COM
- Message-ID: <21se2h$1d4@ying.cna.tek.com>
- NNTP-Posting-Host: saab.cna.tek.com
- Xref: uunet comp.sources.games:1826
-
- Submitted-by: David Baggett <dmb@xbar.ai.mit.edu>
- Posting-number: Volume 18, Issue 26
- Archive-name: ccr/part11
- Environment: TADS
-
-
-
- #! /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 11 (of 11)."
- # Contents: catalog general.doc readme src/close.t src/help.t
- # Wrapped by billr@saab on Mon Jul 12 12:02:45 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'catalog' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'catalog'\"
- else
- echo shar: Extracting \"'catalog'\" \(8111 characters\)
- sed "s/^X//" >'catalog' <<'END_OF_FILE'
- X
- X ADVENTIONS
- X Catalog of Releases
- X
- X
- XRemember the good old days, when adventure games challenged you with
- Xgreat puzzles and evocative descriptions without resorting to any
- Xgraphics at all? We at ADVENTIONS really miss that emphasis on
- Xgameplay rather than glitz, and we're commited to writing new games
- Xthat are even better than the early text games we liked so much.
- X
- XWe believe the best pictures are the ones you create in your own
- Xmind. And we know you'll be creating some pretty amazing pictures
- Xwhen you play our games.
- X
- XAnd because our games' graphics and sound capabilities are determined
- Xby *your* hardware rather than your machine's hardware, our
- Xadventures will run on more machines than almost any other commercial
- Xgames. At the time of this writing, we support PC's and clones;
- XMacintoshes; the Atari ST, TT, and Falcon; Sun 3's and Sparcstations,
- XDEC MIPS-based workstations runnng Ultrix, NeXT computers, Silicon
- XGraphics workstations running Irix, 386+ PC's running Linux, and
- Xmore. Amiga versions are in the works, as are versions for other
- XUnix environments.
- X
- X
- XUnnkulian Unventure Series
- X--------------------------
- X
- X The Unnkulian Unventures are known world-wide for their excellent
- Xprose, witty irreverence, and top-notch full sentence command interface.
- XAdventure game devotees raised on now-classic 80's interactive fiction
- Xpraise these games for bringing challenging puzzles, vivid characters,
- Xand evocative writing back to the gaming world.
- X
- XIn "Unnkulian Underworld: The Unknown Unventure" you play the part of
- XKuulest's slave, and must recover the Orb of Studosity from the evil
- XUnnkulians. Kuulest, the old geezebag, has died and left you with
- Xnothing to go on but a cryptic message about saving the planet.
- XYou'll encounter amazing Acme products, the infamous Guardian, those
- Xwitty creatures known as Drolls, a giant beaver, and even the Dread
- XUnnkulian Warrior. <Gasp!>
- X
- XIn "Unnkulian Unventure II: The Secret of Acme" your adventure
- Xcontinues as you try to create some good press for yourself --
- Xwouldn't want to fade into anonymous obscurity, now would you? Along
- Xthe way, you'll find the answers to these compelling questions, and
- Xmore:
- X
- X o What happened to the Unnkulians?
- X o Why are Acme products so bad?
- X o What is this cheez stuff, really?
- X
- XPlus, you'll get to explore Dawg Rock, a Duhdist Retreat, Acme's
- Xclandestine prototypes laboratory, and even pay a visit to Acme HQ.
- X
- XIn "Unnkulia One-Half: The Salesman Triumphant," you'll play the role
- Xof a down-and-out Acme salesman, forced to work out of the Golden
- XDragon Inn, dangerously near Dread Unnkulia. Will you accumulate
- Xenough loot in this frightful backwater berg to turn your fortunes in
- Xyour favor?
- X
- XAnd in "Unnkulia Zero: The Search for Amanda," will you, the Valley
- XKing's most trusted warrior, rescue his Lady Amanda from the gruesome
- Xclutches of the evil Unnkulians?
- X
- XAlong the way to victory (or, <shudder>, defeat!), you will:
- X
- X o Find out about the ancient days of the Valley,
- X o Meet the King's faithful (but not so bright) Valley Patrol,
- X o Explore *beautiful* Lake Draounheer,
- X o Discover the ancient burial ground of your ancestors,
- X o Become frustrated with the pesky Stoll and his Stoll Bridge,
- X
- X and, of course,
- X
- X o Meet that wondrously wacky Wowsa Willy!
- X
- XFurther adventures in the ongoing Unnkulian saga are in the works,
- Xand with every new game you learn more about this mystifying (and
- Xhillarious) land and its inhabitants -- benign and malevolent.
- X
- X
- XUnnkulian Underworld: The Unknown Unventure (v3.0)
- Xby D. A. Leary
- X$10 (Shareware)
- X
- XUnnkulian Unventure II: The Secret of Acme (v3.0)
- Xby David Baggett
- X$10 (Shareware)
- X
- XUnnkulia 1/2: The Salesman Triumphant (v1.0)
- Xby D. A. Leary
- XFreeware
- X
- XUnnkulia Zero: The Search for Amanda (v1.0)
- Xby D. A. Leary
- XFree playable demo available
- X$25 (Direct from ADVENTIONS, or through High Energy Software)
- XAvailable NOW for MS-DOS and Macinstosh
- XAvailable soon for Atari ST and Unix systems
- X
- XUnnkulian Unventure III
- X(Work in progress)
- X
- XUnnkulian Unventure IV
- X(Work in progress)
- X
- X
- XUnnkulian Universe Unventure Series
- X-----------------------------------
- X
- X A new chapter in the history of Unnkulia and the Valley unfolds in
- Xthis exciting series. Find out what life is like on planet Tode
- X(home to Unnkulia and the Valley) and the rest of the Unnkulian
- XUniverse 500 years after "Unnkulian Underworld: The Unknown
- XUnventure."
- X
- X Written by a Ph.D. candidate at the MIT Artificial Intelligence
- XLaboratory, "The Legend Lives!" is a science fiction epic of
- Xunprecedented depth that explores what can happen when networks and
- Xsoftware get too powerful to control. As hacker Gavin Kelly, you'll
- Xbe at your wits' end tracking down and battling a terrifyingly
- Xpowerful virus unleashed on AkNet, the known galaxy's information and
- Xservice backbone. All the while, you'll have to thwart its creator's
- Xattempts to locate and terminate *you*.
- X
- X While sticking to the often humorous style of the Unnkulian
- XUnventures, "The Legend Lives!" nevertheless explores many serious
- Xthemes about technology and its effects on society. "Legend" is not
- Xjust a challenging and fun computer game; it is one computer science
- Xresearcher's view of a future nearly destroyed by an entirely
- Xsynthetic and subtanceless entity -- a software construct.
- X
- X
- XThe Legend Lives!
- Xby David Baggett
- X$25 (Direct from ADVENTIONS, or through High Energy Software)
- XAvailable Fall 1993
- X
- X
- XOther Adventures
- X----------------
- X
- X "The Horror of Rylvania" is true gothic horror in an interactive
- Xfiction setting. A radical departure from the light-hearted Unnkulian
- Xseries, "Horror" is not for the faint-at-heart.
- X
- X What you expected would be a fun outing in scenic Rylvania turns
- Xinto a gruesome nightmare, with *you* playing the starring role. Find
- Xout what it's like to be alternately the source and challenger of evil
- Xin the tiny Eastern European province. Test your very moral fiber as
- Xyou decide to damn yourself and save others -- or vice versa. "The
- XHorror of Rylvania" will grip you like no interactive fiction ever
- Xhas before.
- X
- X
- XThe Horror of Rylvania
- Xby D. A. Leary
- X(Now in beta-testing)
- X
- X
- X "Colossal Cave Revisted" is a remake of the first major adventure
- Xgame ever written: Colossal Cave, otherwise known as "Adventure."
- XThe original Adventure was written in FORTRAN by Willie Crowther and
- XDon Woods, and had only a simple two word command parser. Its
- Xdescriptions were so vivid, however, that it captivated a generation
- Xof computer enthusiasts and quickly became part of the "hacker lore."
- X
- X ADVENTIONS' implementation of this classic features the same
- Xexcellent full sentence parser our other games use, and comes with
- Xcomplete source code. For those new to interactive fiction, "Colossal
- XCave Revisited" is a must-have.
- X
- X
- XColossal Cave Revisited
- Xby Willie Crowther and Don Woods
- XTADS version written by David Baggett
- XFreeware
- X
- X
- XContacting ADVENTIONS
- X---------------------
- X
- X
- X HOW TO CONTACT ADVENTIONS
- X
- X
- XPaper mail
- X
- X ADVENTIONS
- X PO Box 851
- X Columbia, MD 21044 USA
- X
- XEmail
- X
- X Compuserve: 76440,2671
- X GEnie: ADVENTIONS
- X Internet: dmb@ai.mit.edu
- X
- XBBS
- X
- X FANTAZIA (410) 521-5636 (8N1)
- X High Energy BBS (415) 493-2420 (8N1)
- X
- X
- XIf you send paper mail about a specific game, please write the name
- Xof the game on the envelope to help us process your query faster.
- X
- X
- XOrdering Info
- X-------------
- X
- X ADVENTIONS ORDER FORM
- X
- XUNNKULIA ZERO: THE SEARCH FOR AMANDA
- X
- XVersion/Price Quantity Total
- X------------- -------- -----
- X
- X- MS-DOS 5 1/4" (High Density 1.2 Meg) - $25.00 ________ _____
- X
- X- MS-DOS 3 1/2" (720K) - $25.00 ________ _____
- X
- X- Macintosh 3 1/2" (800K) - $25.00 ________ _____
- X
- X- Atari ST/TT/Falcon 3 1/2" (720K DS/DD) - $25.00 ________ _____
- X (Available Summer '93)
- X
- XMaryland Residents add $1.25 sales tax per copy _____
- X
- XOverseas Customers add $1.00 shipping per copy _____
- X
- X
- XTotal >_____
- X
- END_OF_FILE
- if test 8111 -ne `wc -c <'catalog'`; then
- echo shar: \"'catalog'\" unpacked with wrong size!
- fi
- # end of 'catalog'
- fi
- if test -f 'general.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'general.doc'\"
- else
- echo shar: Extracting \"'general.doc'\" \(17371 characters\)
- sed "s/^X//" >'general.doc' <<'END_OF_FILE'
- X
- X
- X
- X General TADS Game Instructions
- X
- X Written by Michael J. Roberts
- X (Edited slightly by David Baggett for ADVENTIONS)
- X
- X
- X
- XPLAYING THE GAME
- X
- XIn an adventure game, you play by typing commands that describe what
- Xyou want to do. Unfortunately, the game isn't as smart as you are,
- Xso it can't understand nearly as many sentences as a person could.
- XIn this section, we'll describe most of the types of commands that
- Xyou will need to use while playing the game.
- X
- XEach time you see the prompt, ">", you type a command. Your command
- Xshould be a simple imperative sentence, or a series of imperatives
- Xseparated by periods. Press the RETURN (or ENTER) key when you are
- Xdone typing your command; the game doesn't start interpreting the
- Xcommand until you press RETURN.
- X
- XYou can use capital or small letters in any mixture. You can use
- Xwords such as THE and AN when they're appropriate, but you can omit
- Xthem if you prefer. You can abbreviate any word to six or more
- Xletters, but the game will pay attention to all of the letters you
- Xtype. For example, you could refer to a FLASHLIGHT with the words
- XFLASHL, FLASHLIG, and so forth, but not with FLASHSDF.
- X
- X
- XTRAVEL
- X
- XAt any time during the game, you are in a location. The game
- Xdesribes your location when you first enter, and again any time you
- Xtype LOOK. In a given location, you can reach anything described, so
- Xyou don't need to type commands to move about within a location.
- X
- XYou move from place to place in the game by typing the direction you
- Xwant to go. The game will always tell you the directions that you
- Xcan go from a location, although it usually doesn't tell you what you
- Xwill find when you go there. You will probably find it helpful to
- Xmake a map as you explore the game. The directions the game
- Xrecognizes are NORTH, SOUTH, EAST, WEST, NORTHEAST, SOUTHEAST, UP,
- Xand DOWN. You can abbreviate these to N, S, E, W, NE, SE, NW, SW, U,
- Xand D. In some locations you can also use IN and OUT.
- X
- XGenerally, backtracking will take you back to where you started. For
- Xexample, if you start off in the kitchen, go north into the living
- Xroom, then go south, you will be back in the kitchen.
- X
- XMost of the time, when the game describes a door or doorway, you
- Xdon't need to open the door to go through the passage; the game will
- Xdo this for you. Only when the game explicitly describes a closed
- Xdoor (or other impediment to travel) will you need to type a command
- Xto open the door.
- X
- X
- XOBJECTS
- X
- XIn the game, you will find many objects that you can carry or
- Xotherwise manipulate. When you want to do something with an object,
- Xtype a simple command that tells the game what you want to do; be
- Xexplicit. For example, you could type READ THE BOOK or OPEN THE
- XDRAWER. Most of the objects in the game have fairly obvious uses;
- Xyou shouldn't have to think of any obscure or unrelated words to
- Xmanipulate the objects.
- X
- XYou generally don't have to specify exactly where you want to put an
- Xobject that you wish to carry; you can just type TAKE (followed by
- Xthe object's name) to carry an object. We didn't think it was
- Xparticularly interesting to force you to specify which object you
- Xwish to put in your left pocket, which you wish to carry in your
- Xright hand, and so forth. However, there is a limit to how many
- Xobjects you can carry at once, and to how much weight you can handle.
- XYou can carry more objects (but not more weight, of course) by
- Xputting some items inside containers (for example, you may be able to
- Xput several objects into a box, and carry the box), since this
- Xreduces the number of objects you actually have to juggle at once.
- X
- XSome basic verbs that you will use frequently are TAKE (to pick up an
- Xobject), DROP (to drop an object), OPEN and CLOSE, and EXAMINE (which
- Xyou can abbreviate to X). You can PUT an object IN or ON another
- Xobject when appropriate. The game recognizes many other verbs as
- Xwell. We tried to make all of the verbs obvious; if you find a knob,
- Xyou will be able to TURN it, and if you find a button, you will be
- Xable to PUSH it. By the same token, you probably won't need to turn
- Xthe button or push the knob.
- X
- XSome examples of commands that the game recognizes are shown below.
- XThese aren't necessarily commands that you'll ever type while playing
- Xthe game, but they illustrate some of the verbs and sentence formats
- Xthat you may use.
- X
- X GO NORTH
- X NORTH
- X N
- X UP
- X TAKE THE BOX
- X PUT THE FLOPPY DISK INTO THE BOX
- X CLOSE BOX
- X LOOK AT DISK
- X TAKE DISK OUT OF BOX
- X LOOK IN BOX
- X WEAR THE CONICAL HAT
- X TAKE OFF HAT
- X CLOSE BOX
- X TURN ON THE LANTERN
- X LIGHT MATCH
- X LIGHT CANDLE WITH MATCH
- X RING BELL
- X POUR WATER INTO BUCKET
- X PUSH BUTTON
- X TURN KNOB
- X EAT COOKIE
- X DRINK MILK
- X THROW KNIFE AT THIEF
- X KILL TROLL WITH SWORD
- X READ NEWSPAPER
- X LOOK THROUGH WINDOW
- X UNLOCK DOOR WITH KEY
- X TIE THE ROPE TO THE HOOK
- X CLIMB UP THE LADDER
- X TURN THE KNOB
- X JUMP
- X TYPE "HELLO" ON THE KEYBOARD
- X TYPE 1234 ON THE KEYPAD
- X GET IN THE CAR
- X GET OUT OF THE CAR
- X GET ON THE HORSE
- X GIVE WAND TO WIZARD
- X ASK WIZARD ABOUT WAND
- X
- X
- XOTHER CHARACTERS
- X
- XYou may encounter other characters in the game. You can interact in
- Xcertain ways with these characters. For example, you can GIVE things
- Xto them, and you could try to attack them. In addition, you can ask
- Xcharacters about things:
- X
- X ASK WIZARD ABOUT WAND
- X
- XSome characters will tell you quite a bit in response to such
- Xqueries, while others will be more taciturn.
- X
- XTIME
- X
- XTime in the game passes only in response to commands you type.
- XNothing happens while the game is waiting for you to type something.
- XEach turn takes about the same amount of time. If you want to let
- Xsome game time pass, because you think something is about to happen,
- Xyou can type WAIT (or just Z).
- X
- X
- XSCORE
- X
- XThe game assigns you a score while you play, indicating how close you
- Xare to finishing it. At certain points in the game, you will be
- Xawarded points when you solve some puzzle or obtain some item. The
- Xscore is intended to provide you with a measure of your progress in
- Xthe game, and increases as you get further in the game; you never
- Xlose points once they are earned.
- X
- X
- XREFERRING TO MULTIPLE OBJECTS
- X
- XYou can usually use multiple objects in your sentences. You separate
- Xthe objects by the word AND or a comma. For example:
- X
- X TAKE THE BOX, THE FLOPPY DISK, AND THE ROPE
- X PUT DISK AND ROPE IN BOX
- X DROP BOX AND BALL
- X
- XYou can use the word ALL to refer to everything that is applicable to
- Xyour command, and you can use EXCEPT (right after the word ALL) to
- Xexclude certain objects.
- X
- X TAKE ALL
- X PUT ALL EXCEPT DISK AND ROPE INTO BOX
- X TAKE EVERYTHING OUT OF THE BOX
- X TAKE ALL OFF SHELF
- X
- XThe word ALL refers to everything that makes sense for your command,
- Xexcluding things inside containers that are used in the command. For
- Xexample, if you are carrying a box and a rope, and the box contains a
- Xfloppy disk, typing DROP ALL will drop only the box and the rope; the
- Xfloppy disk will remain in the box.
- X
- X
- X"IT" AND "THEM"
- X
- XYou an use IT and THEM to refer to the last object or objects that
- Xyou used in a command. Some examples:
- X
- X TAKE THE BOX
- X OPEN IT
- X TAKE THE DISK AND THE ROPE
- X PUT THEM IN THE BOX
- X
- X
- XMULTIPLE COMMANDS ON A LINE
- X
- XYou can put multiple commands on a single input line by separating
- Xthe commands with periods or the word THEN, or with a comma or the
- Xword AND. Each command still counts as a separate turn. For example:
- X
- X TAKE THE DISK AND PUT IT IN THE BOX
- X TAKE BOX. OPEN IT.
- X UNLOCK THE DOOR WITH THE KEY. OPEN IT, AND THEN GO NORTH
- X
- XIf the game doesn't understand one of the commands on the input line,
- Xit will tell you what it couldn't understand, and it will ignore the
- Xrest of the commands on the line.
- X
- X
- XAMBIGUOUS COMMANDS
- X
- XIf you type a command that leaves out some important information, the
- Xgame will try to figure out what you mean anyway. When the game can
- Xbe reasonably sure about what you mean, because only one object would
- Xmake sense with the command, the game will make an assumption about
- Xthe missing information and act as though you had supplied it. For
- Xexample,
- X
- X >TIE THE ROPE
- X (to the hook)
- X The rope is now tied to the hook. The end of the
- X rope nearly reaches the floor of the pit below.
- X
- XIf your command is ambiguous enough that the game doesn't feel safe
- Xmaking assumptions about what you meant, the game will ask you for
- Xmore information. You can answer these questions by typing the
- Xmissing information. If you decide you didn't want to bother with
- Xthe command after all, you can just type a new command; the game will
- Xignore the question it asked. For example:
- X
- X >UNLOCK THE DOOR
- X What do you want to unlock the door with?
- X
- X >THE KEY
- X Which key do you mean, the gold key, or the silver key?
- X
- X >GOLD
- X The door is now unlocked.
- X
- X
- XUNKNOWN WORDS
- X
- XThe game will sometimes use words in its descriptions that it doesn't
- Xunderstand in your commands. For example, you may see a description
- Xsuch as, "The planet's rings are visible as a thin arc high overhead,
- Xglimmering in the sunlight." If the game doesn't know words such as
- X"rings," you can assume that they're not needed to play the game;
- Xthey're in the descriptions simply to make the story more
- Xinteresting. For those objects that are important, the game
- Xrecognizes many synonyms; if the game doesn't understand a word you
- Xuse, or any of its common synonyms, you are probably trying something
- Xthat is not necessary to continue.
- X
- X
- XSAVING AND RESTORING
- X
- XYou can store a snapshot of the game's state in a disk file at any
- Xtime. Later, if your character is killed or you find that it has
- Xbecome impossible to finish the game (due to a lost or broken object,
- Xfor example), you can restore the state of the game exactly as it was
- Xwhen you saved it to the disk file. You can save your position as
- Xmany times as you like, using different disk files for each position.
- XSaving the game also allows you to play the game over the course of
- Xmany days, without having to start over from scratch each time you
- Xcome back to the game.
- X
- XTo save the game, type SAVE at any prompt. The game will ask you for
- Xthe name of a disk file to use to store the game state. (You will
- Xhave to specify a filename suitable for your computer system, and the
- Xdisk must have enough space to store the game state. The game will
- Xtell you if the game was not saved properly for some reason.) You
- Xshould give the file a name that does not exist on your disk. If you
- Xsave the game into a file that already exists, the data previously in
- Xthat file will be destroyed.
- X
- XWhen you wish to restore a game, type RESTORE at the command prompt.
- XThe game will ask you for the name of a disk file that you specified
- Xwith a previous SAVE command. After reading the disk file, the game
- Xstate will be restored to exactly the position when you saved it.
- X
- X
- XSPECIAL COMMANDS
- X
- XThe game understands several special commands that you can use to
- Xcontrol it. You can use these commands at any prompt.
- X
- XAGAIN or G: Repeats your last command. If your last input line was
- Xcomposed of several commands, only the last command on the line is
- Xrepeated.
- X
- XINDENT: Controls paragraph indentation. By default the game will
- Xindent paragraphs. The INDENT command toggles this feature on and
- Xoff.
- X
- XINVENTORY or I: Shows the list of items you are carrying.
- X
- XLOOK or L: Shows the full description of your location.
- X
- XOOPS: Allows you to correct the spelling of a word in the last
- Xcommand. You can use OOPS when the game displays this complaint: "I
- Xdon't know the word <word>." Immediately after this message, you can
- Xtype OOPS followed by the corrected spelling of the misspelled word.
- XYou can only type one word after OOPS, so this command doesn't allow
- Xyou to correct certain types of errors, such as when you run two
- Xwords together without a spce.
- X
- XQUIT: Stops the game, and returns you to your operating system.
- X
- XRESTART: Starts the game over from the beginning.
- X
- XRESTORE: Restores a position previously saved with the SAVE command.
- X
- XSAVE: Stores the current state of the game in a disk file, so that
- Xyou can come back to the same place later (with the RESTORE command).
- X
- XSCORE: Shows you your current score, the maximum possible score, and
- Xthe number of turns you have taken so far.
- X
- XSCRIPT: Starts writing everything you see on the screen (your
- Xcommands and the game's responses) to a disk file. The game will ask
- Xyou for a filename to be used for the transcript; you should select a
- Xfilename that does not yet exist on your disk, because if you use an
- Xexisting filename, data in the file will be destroyed. Use the
- XUNSCRIPT command to stop making the transcript.
- X
- XSPACE: Controls spacing between paragraphs of text. By default the
- Xgame will put a blank line after each paragraph. The SPACE command
- Xtoggles this feature on and off.
- X
- XTERSE: Tells the game that you wish to see only short descriptions of
- Xlocations you have already seen when you enter them. This is the
- Xdefault mode. See also the VERBOSE command.
- X
- XUNDO: Tells the game you want to take back your last command. The
- Xgame state will be restored to the way it was before the undone
- Xcommand, as though the command were never issued at all. You can do
- Xthis more than once in a row.
- X
- XUNSCRIPT: Turns off the transcript being made with the SCRIPT command.
- X
- XVERBOSE: Tells the game to show you the full description of every
- Xlocation you enter, whether or not you have seen the description
- Xbefore. By default, the game will show you the full description of a
- Xlocation only when you first enter it, and will show you the short
- Xdescription each time you enter the location thereafter. Of course,
- Xyou can get a full description at any time by typing LOOK. See also
- Xthe TERSE command.
- X
- XVERSION: Shows you the current version of the game.
- X
- XWAIT or Z: Causes game time to pass. When the game is waiting for
- Xyou to type command, no game time passes; you can use this command to
- Xwait for something to happen.
- X
- X
- XCOMMAND EDITING AND RECALL
- X
- XOn most computer systems, the game has a special feature that allows
- Xyou to use your keyboard's editing keys to modify an input line as
- Xyou are typing it, and to recall commands that you have previously
- Xtyped for editing and re-entry. The specific keys you use vary
- Xdepending on your system, and some systems don't support this feature
- Xat all; see the system-specific documentation for more information.
- X
- XWhile you are typing a command, the game allows you to go back and
- Xchange part of the line without "backspacing" over the rest of the
- Xline to get there. Simply use your left and right cursor-arrow keys
- Xto move the cursor to any point in the command line. The BACKSPACE
- Xkey deletes a character to the left of the cursor, and the DELETE key
- Xdeletes the character at which the cursor is located.
- X
- XYou can insert new text at the cursor simply by typing the text. You
- Xcan press the RETURN (or ENTER) key with the cursor at any point in
- Xthe line (the cursor need not be at the end of the command line).
- X
- XYou can recall the previous command that you entered by pressing the
- Xup cursor-arrow key; pressing the up-arrow key again recalls the
- Xcommand before that, and so forth. Using the down cursor-arrow key
- Xreverses this process, until you get back to the original command
- Xthat you were typing before you started pressing the up-arrow key.
- X
- XOnce you have recalled a prior command, you can re-enter it by
- Xpressing the RETURN key. In addition, you can edit the command, as
- Xdescribed above, before entering the command.
- X
- XThe exact number of commands the game retains depends on the lengths
- Xof the commands, but more than a hundred of the most recent commands
- Xare generally retained at any given time.
- X
- X
- XREVIEW MODE
- X
- XAnother special feature that the game supports on many computer
- Xsystems is called "review mode." The game remembers text as it
- X"scrolls" off the screen; by invoking recall mode, you can go back
- Xand look at text that is no longer visible on the screen. On most
- Xsystems, review mode is activated by pressing the function key F1.
- X
- XOnce in review mode, the status line that is normally at the top of
- Xthe screen will be replaced by the review mode help line. This line
- Xshows the keystrokes you use to view previous screenfuls of text, and
- Xalso shows you the key that exits review mode and resumes normal game
- Xplay (this is generally the game key that you used to activate review
- Xmode).
- X
- XWhile in review mode, your screen becomes a window onto the text that
- Xthe game has stored away. When you first activate review mode, you
- Xare looking at the very bottom of this text, which is the screenful
- Xof text that was just displayed. Use the up and down cursor-arrow
- Xkeys to move the window up and down. Pressing the up cursor-arrow
- Xkey moves the window up one line, showing you one line of text that
- Xhas scrolled off the screen. Most systems also provide keys to move
- Xup and down by a full screenful (also called a "page.")
- X
- XTo resume game play, press the same key that you used to activate
- Xreview mode.
- X
- XThe number of screenfuls of text that the game stores away for review
- Xdepends on how much text is actually on each screen, since the game
- Xhas a limit on the number of characters it can store, not on the
- Xnumber of lines. Normally, more than twenty of the most recent
- Xscreens of text are saved and available for review at any given time.
- END_OF_FILE
- if test 17371 -ne `wc -c <'general.doc'`; then
- echo shar: \"'general.doc'\" unpacked with wrong size!
- fi
- # end of 'general.doc'
- fi
- if test -f 'readme' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'readme'\"
- else
- echo shar: Extracting \"'readme'\" \(8026 characters\)
- sed "s/^X//" >'readme' <<'END_OF_FILE'
- X
- X
- X Colossal Cave Revisited
- X A TADS game with complete source code
- X
- X Copyright (C) 1993 David M. Baggett
- X
- X See the file readme.1st for terms of distribution
- X and use of this software
- X
- X
- XWhat Have We Here?
- X
- X This game is a remake of the first major adventure game ever written:
- XColossal Cave, otherwise known as "Adventure." The original Adventure
- Xwas written in FORTRAN by Willie Crowther and Don Woods, and had only
- Xa simple two word command parser. Its descriptions were so vivid,
- Xhowever, that it captivated a generation of computer enthusiasts and
- Xquickly became part of the "hacker lore." References to Adventure
- Xcrop up even today in games and other software.
- X
- X Adventure was such a significant event in computerdom that it
- Xspawned a whole genre of games, made even more popular by Infocom
- Xin the 1980's. The MIT hackers who formed Infocom took the Adventure
- Xconcept and added some powerful new technology to it: sentence parsing.
- XTheir first game, Zork, was clearly very much inspired by Crowther and
- XWoods' original, but seemed more intelligent and was easier to play
- Xbecause it could accept simple sentences instead of just two-word
- Xdirectives.
- X
- X Eventually affordable computers got to be powerful enough to support
- Xgeneral text adventure authoring packagaes, and by 1992 there were already
- Xnearly a dozen systems for would-be adventure authors to choose from.
- XThis remake of Crowther and Woods' original was written with TADS,
- Xone such adventure writing system, and is intended to be a tutorial
- Xexample for TADS authors to learn from. For this reason, great care
- Xhas been taken to keep the code easy to read and understand.
- X
- X Colossal Cave Revisited (CCR) is also meant to give a new
- Xgeneration of computer gamers an opportunity to play the game that
- Xstarted it all, in a format they will feel more comfortable with.
- XToday's text adventurers have been "spoiled" by the nice sentence
- Xparsing that most games have these days, and it is the author's hope
- Xthat this reimplementation will make the original Adventure -- a
- Xclassic that still shines today -- accessable to a wider audience.
- X
- X
- XImplementation Details and Philosophy
- X
- X I have tried to be as faithful to the original game as possible
- Xthroughout the project. To start off on the right foot, I went back
- Xto Donald Ekman's excellent PC port of what seemed to be the original
- XDEC-10 FORTRAN source code. Don tells me he typed a significant
- Xportion of that source in from a paper listing -- now that's
- Xdevotion! In any case, few changes had to be made to get the game
- Xrunning under DOS, so the source I used to make CCR is largely
- X"untainted."
- X
- X Retrofitting such an old game onto a more sophisicated game engine
- Xcreated a few philosophical problems. Games these days are expected
- Xto have "decorations;" little bits of scenery mentioned in the room
- Xdescriptions that you can't actually do anything with, but make
- Xthe setting feel more real. The original Adventure didn't have many
- Xdecorations, and the two-word parser prevented players from trying
- Xthings like "look under y2 rock," "put the rod in the stream," etc.
- X
- X The approach I took was to add decorations every reasonable place
- Xwithout writing much new prose. Where prose exists in the original
- Xgame, I used it, even to the extent of making bits of room
- Xdescriptions serve double duty. In a number of places I wrote
- Xentirely new text. In these cases, I either wrote something
- Xinnocuous or tried my best to mimic the style of the original.
- X
- X The new sentence parser created similar problems for game play.
- XWhereas in the original you had to say "throw axe" to attack
- Xsomething, you can now do things like "attack bear with lamp." There
- Xis no analogue to this in the original source; "throw lamp" would be
- Xinterpreted as a request to drop the object. Here again, I used
- Xresponse text whenever available and strived to stay consistent with
- Xthe overall tone of the original when crafting new prose. From the
- Xbeginning I wanted walkthroughs for the original to still work in
- XCCR; this is largely true now, though there are surely a few
- Xexceptions.
- X
- X
- XHints to Programmers Who Want to Modify Colossal Cave Revisited
- X
- X Colossal Cave Revisited isn't meant to be an unchanging mass of
- Xarchival source code. On the contrary, I hope that people will add
- Xnew features, objects and locations. If you do add things, please
- Xlet me know so I can incorporate the changes into the official
- Xdistribution.
- X
- X Modifying any large program is daunting at first. CCR is about
- X13,000 lines of source, and that's a lot of code to read through.
- XFortunately, you shouldn't have to pay much attention to the grungy
- Xdetails of most of it, since I've tried my best to make it easy to
- Xmodify.
- X
- X With this is mind, here are a few tips to make building and
- Xchanging CCR simpler:
- X
- X * Have a suitable compiler. You need a compiler for TADS 2.0.13
- X or higher. Earlier versions of the compiler won't understand
- X some of the constructs used in the CCR source code. Similarly,
- X you will need a version 2.0.13 or later run-time system to run it.
- X
- X * Use (or at least follow) the makefile. Some of the options
- X in the makefile are crucial, and if you don't specify them when
- X compiling ccr.t, you will get mystifying error messages. In
- X particular, be sure to compile with the -mp option set large
- X enough, and make sure you make the cache small enough (with the
- X -m option) if you're running under MS-DOS.
- X
- X * Make extensions optional. The easiest way to do this is to
- X add flags to the "global" object in ccr-std.t that enable or
- X disable your new code.
- X
- X * Use the existing classes whenever possible. Classes are already
- X defined to make your life easy. In addition to the basic TADS
- X classes, make sure you understand the definitions and use of the
- X following:
- X
- X ccr-item.t:
- X
- X class CCR_treasure_item
- X
- X ccr-npc.t:
- X
- X class NPC
- X
- X ccr-room.t:
- X
- X class CCR_room
- X class CCR_alike_maze_room
- X class NoNPC
- X class CCR_dead_end_room
- X class lightroom
- X class Outside
- X class NotFarIn
- X class CCR_decoration
- X
- X class floatingdecoration
- X class rfd (room feature decoration)
- X
- X * Set global.debug to true to get extra information about room
- X connections and NPC movement at run-time. The game will check
- X its connections to make sure everything's OK at run-time.
- X
- X Add new debugging code enabled by this flag for your own
- X extensions.
- X
- X * When defining new classes or puzzles, copy an existing similar
- X implementation and then modify it to suit your needs. Starting
- X from scratch is always harder than updating already-working code.
- X
- X
- XSome Ideas
- X
- X Here are a few things that I considered doing myself, but decided
- Xto leave as exercises. (Yeah, that's the ticket.) They range from
- Xfairly trivial to incredibly time-consuming:
- X
- X * Add hints. The original gave you hints at various times, but
- X would deduct points if the player took them. Get Don Ekman's
- X PC port of the FORTRAN source and use the original hint text.
- X
- X * Make the NPC code more faithful to the original. In particular,
- X dwarves don't block your way in CCR, while they did in the original.
- X
- X * Make the NPC movement code faster.
- X
- X * Make the descriptions of treasures sound more "excited." The game
- X currently treats treasure like all other items when it tells you
- X about them:
- X
- X You see a rock here.
- X You see a platinum pyramid here, 12 inches on a side.
- X
- X Change ccr-adv.t so that it lists treasures separately, and
- X puts an exclamation point at the end.
- X
- X * Implement one of the "extended" versions of the games; e.g., the
- X 550 point version with the sword in the stone. Make sure you
- X update scoring so that your extensions fit in seamlessly.
- X
- X * Add your own NPC's, puzzles, or locations.
- X
- X * Port TADS to new machines so that CCR has a wider audience. (Contact
- X Mike Roberts at High Energy Software for more info.)
- X
- XWhatever you do, please send me your changes!
- X
- END_OF_FILE
- if test 8026 -ne `wc -c <'readme'`; then
- echo shar: \"'readme'\" unpacked with wrong size!
- fi
- # end of 'readme'
- fi
- if test -f 'src/close.t' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/close.t'\"
- else
- echo shar: Extracting \"'src/close.t'\" \(5171 characters\)
- sed "s/^X//" >'src/close.t' <<'END_OF_FILE'
- X/*
- X * Colossal Cave Revisited
- X *
- X * A remake of Willie Crowther and Don Woods' classic Adventure.
- X * Converted from Donald Ekman's PC port of the original FORTRAN source.
- X * TADS version by David M. Baggett for ADVENTIONS.
- X *
- X * Please document all changes in the history so we know who did what.
- X *
- X * This source code is copylefted under the terms of the GNU Public
- X * License. Essentially, this means that you are free to do whatever
- X * you wish with this source code, provided you do not charge any
- X * money for it or for any derivative works.
- X *
- X * ADVENTIONS distributes this game, but you are free to do what you will
- X * with it, provided you adhere to the terms in the GNU Public License.
- X * Send correspondence regarding this game or original works distributed
- X * by ADVENTIONS to
- X *
- X * ADVENTIONS
- X * PO Box 851
- X * Columbia, MD 21044
- X *
- X * If you would like a catalog of releases, please enclose a SASE. Thanks!
- X *
- X * Contributors
- X *
- X * dmb In real life: David M. Baggett
- X * Internet: <dmb@ai.mit.edu>
- X * Compu$erve: 76440,2671 (ADVENTIONS account)
- X * GEnie: ADVENTIONS
- X *
- X * Modification History
- X *
- X * 1-Jan-93 dmb rec.arts.int-fiction BETA release (source only)
- X * For beta testing only -- not for general
- X * distribution.
- X *
- X */
- X
- X/*
- X * This file defines a few game-specific functions for the cave closing.
- X * Don't read any of this unless you want to spoil the ending!
- X */
- X
- X/*
- X * This function is called every turn to see if it's time to start
- X * closing the cave.
- X */
- Xcheck_for_closing: function(parm)
- X{
- X //
- X // If there are no more treasures left to be found, count
- X // down the cave closing counter whenever the player is
- X // well inside but not at Y2.
- X //
- X if (global.closingtime > 0 and global.treasures = 0) {
- X if (not Me.location.notfarin and not Me.isIn(At_Y2)) {
- X global.closingtime := global.closingtime - 1;
- X if (global.closingtime < 1)
- X start_closing();
- X }
- X }
- X}
- X
- X/*
- X * This function is called every turn to see if it's time to start
- X * the final puzzle.
- X */
- Xcheck_for_endgame: function(parm)
- X{
- X if (global.closed and global.bonustime > 0) {
- X global.bonustime := global.bonustime - 1;
- X if (global.bonustime < 1) {
- X // Start the final puzzle
- X start_endgame();
- X }
- X }
- X}
- X
- Xstart_closing: function
- X{ P();
- X I(); "A sepulchral voice reverberating through the cave says,
- X \"Cave closing soon. All adventurers exit immediately
- X through main office.\"";
- X
- X incscore(global.closingpoints);
- X
- X global.closed := true;
- X
- X CrystalBridge.exists := nil; // destroy the bridge
- X Grate.islocked := true; // lock the grate ...
- X Grate.mykey := nil; // ...and throw away the key
- X Dwarves.loclist := []; // nuke dwarves...
- X Pirates.loclist := []; // ...and pirate(s)
- X Troll.moveInto(nil); // vaporize troll
- X Bear.exists := nil; // ditto for bear
- X
- X // This was listed in the original as being too much trouble
- X // to bother with, but why not:
- X Dragon.moveInto(nil); // nuke the dragon too
- X}
- X
- Xstart_endgame: function
- X{
- X P();
- X I(); "The sepulchral voice intones, \"The cave is now
- X closed.\" As the echoes fade, there is a blinding flash of
- X light (and a small puff of orange smoke).\ .\ .\ . As your
- X eyes refocus, you look around and find that you're...\b";
- X
- X //
- X // Vaporize everyting the player's carrying.
- X //
- X while (length(Me.contents) > 0)
- X Me.contents[1].moveInto(nil);
- X
- X //
- X // Stock the northeast end
- X //
- X bottle.moveInto(At_Ne_End);
- X bottle.empty; // don't want to worry about watering the plants
- X giant_bivalve.moveInto(At_Ne_End);
- X brass_lantern.moveInto(At_Ne_End);
- X black_rod.moveInto(At_Ne_End);
- X
- X //
- X // Stock the southwest end
- X //
- X little_bird.moveInto(At_Sw_End);
- X wicker_cage.moveInto(At_Sw_End);
- X black_mark_rod.moveInto(At_Sw_End);
- X velvet_pillow.moveInto(At_Sw_End);
- X
- X //
- X // Move the player
- X //
- X Me.travelTo(At_Ne_End);
- X
- X incscore(global.endpoints);
- X}
- X
- X/*
- X * Determine how the player fares in the final puzzle.
- X */
- Xendpuzzle: function
- X{
- X if (black_mark_rod.isIn(At_Ne_End) and Me.isIn(At_Sw_End)) {
- X incscore(global.winpoints);
- X
- X I(); "There is a loud explosion, and a twenty-foot
- X hole appears in the far wall, burying the dwarves in
- X the rubble. You march through the hole and find
- X yourself in the main office, where a cheering band of
- X friendly elves carry the conquering adventurer off
- X into the sunset."; P();
- X
- X win();
- X }
- X else if (black_mark_rod.isIn(At_Sw_End) and Me.isIn(At_Ne_End)) {
- X incscore(global.almostpoints);
- X
- X I(); "There is a loud explosion, and a twenty-foot
- X hold appears in the far wall, burying the snakes in
- X the rubble. A river of molten lava pours in through
- X the hole, destroying everything in its path,
- X including you!"; P();
- X
- X win();
- X }
- X else if (black_mark_rod.isIn(Me.location)) {
- X incscore(global.wrongpoints);
- X
- X "There is a loud explosion, and you are suddenly
- X splashed across the walls of the room."; P();
- X
- X win();
- X }
- X}
- X
- X/*
- X * The player resolves the endgame by disturbing the dwarves.
- X */
- Xend_dwarves: function
- X{
- X P();
- X I(); "The resulting ruckus has awakened the dwarves. There
- X are now several threatening little dwarves in the room with
- X you! Most of them throw knives at you! All of them get
- X you!"; P();
- X
- X win();
- X}
- END_OF_FILE
- if test 5171 -ne `wc -c <'src/close.t'`; then
- echo shar: \"'src/close.t'\" unpacked with wrong size!
- fi
- # end of 'src/close.t'
- fi
- if test -f 'src/help.t' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/help.t'\"
- else
- echo shar: Extracting \"'src/help.t'\" \(4545 characters\)
- sed "s/^X//" >'src/help.t' <<'END_OF_FILE'
- X/*
- X * Colossal Cave Revisited
- X *
- X * A remake of Willie Crowther and Don Woods' classic Adventure.
- X * Converted from Donald Ekman's PC port of the original FORTRAN source.
- X * TADS version by David M. Baggett for ADVENTIONS.
- X *
- X * Please document all changes in the history so we know who did what.
- X *
- X * This source code is copylefted under the terms of the GNU Public
- X * License. Essentially, this means that you are free to do whatever
- X * you wish with this source code, provided you do not charge any
- X * money for it or for any derivative works.
- X *
- X * ADVENTIONS distributes this game, but you are free to do what you will
- X * with it, provided you adhere to the terms in the GNU Public License.
- X * Send correspondence regarding this game or original works distributed
- X * by ADVENTIONS to
- X *
- X * ADVENTIONS
- X * PO Box 851
- X * Columbia, MD 21044
- X *
- X * If you would like a catalog of releases, please enclose a SASE. Thanks!
- X *
- X * Contributors
- X *
- X * dmb In real life: David M. Baggett
- X * Internet: <dmb@ai.mit.edu>
- X * Compu$erve: 76440,2671 (ADVENTIONS account)
- X * GEnie: ADVENTIONS
- X *
- X * Modification History
- X *
- X * 1-Jan-93 dmb rec.arts.int-fiction BETA release (source only)
- X * For beta testing only -- not for general
- X * distribution.
- X *
- X */
- X
- X/*
- X * Print some helpful information. (Called by helpVerb, in ccr-verb.t)
- X */
- Xhelp: function
- X{
- X I(); "I know of places, actions, and things. You can guide
- X me using commands that are complete sentences. To move, try
- X commands like \"forest,\" \"building,\" \"downstream,\"
- X \"enter,\" \"east,\" \"west,\" \"north,\" \"south,\" \"up,\"
- X \"down,\" \"enter building,\" \"climb pole,\" etc."; P();
- X
- X I(); "I know about a few special objects, like a black rod
- X hidden in the cave. These objects can be manipulated using
- X some of the action words that I know. Usually you will need
- X to give a verb followed by an object (along with descriptive
- X adjectives when desired), but sometimes I can infer the
- X object from the verb alone. Some objects also imply verbs;
- X in particular, \"inventory\" implies \"take inventory\",
- X which causes me to give you a list of what you're carrying.
- X The objects have side effects; for instance, the rod scares
- X the bird."; P();
- X
- X I(); "Many commands have abbreviations. For example, you can
- X type \"i\" in place of \"inventory,\" \"x object\" instead of
- X \"examine object,\" etc."; P();
- X
- X I(); "Usually people having trouble moving just need to try a
- X few more words. Usually people trying unsuccessfully to
- X manipulate an object are attempting something beyond their
- X (or my!) capabilities and should try a completely different
- X tack."; P();
- X
- X I(); "To speed the game you can sometimes move long distances
- X with a single word. For example, \"building\" usually gets
- X you to the building from anywhere above ground except when
- X lost in the forest. Also, note that cave passages turn a lot,
- X and that leaving a room to the north does not guarantee
- X entering the next from the south."; P();
- X
- X I(); "If you want to end your adventure early, type \"quit\".
- X To suspend your adventure such that you can continue later,
- X type \"save,\" and to resume a saved game, type \"restore.\"
- X To see how well you're doing, type \"score\". To get full
- X credit for a treasure, you must have left it safely in the
- X building, though you get partial credit just for locating it.
- X You lose points for getting killed, or for quitting, though
- X the former costs you more. There are also points based on how
- X much (if any) of the cave you've managed to explore; in
- X particular, there is a large bonus just for getting in (to
- X distinguish the beginners from the rest of the pack), and
- X there are other ways to determine whether you've been through
- X some of the more harrowing sections."; P();
- X
- X I(); "If you think you've found all the treasures, just keep
- X exploring for a while. If nothing interesting happens, you
- X haven't found them all yet. If something interesting *does*
- X happen, it means you're getting a bonus and have an
- X opportunity to garner many more points in the master's
- X section."; P();
- X
- X I(); "You can control the way I format my messages with the
- X \"space\" and \"indent\" commands. These turn on and off
- X blank spaces between paragraphs and indentation at the
- X beginnings of paragraphs. Finally, you may specify \"brief\",
- X which tells me never to repeat the full description of a
- X place unless you explicitly ask me to. (The \"verbose\"
- X command turns this off.)"; P();
- X
- X I(); "Good luck!";
- X}
- END_OF_FILE
- if test 4545 -ne `wc -c <'src/help.t'`; then
- echo shar: \"'src/help.t'\" unpacked with wrong size!
- fi
- # end of 'src/help.t'
- fi
- echo shar: End of archive 11 \(of 11\).
- cp /dev/null ark11isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 11 archives.
- echo "Now run buildit.sh to make gam file"
- 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
-