home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume18 / ccr / part11 < prev    next >
Encoding:
Internet Message Format  |  1993-07-18  |  46.6 KB

  1. Path: uunet!news.tek.com!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v18i026:  ccr - colossal cave (adventure) implemented in TADS, Part11/11
  5. Date: 12 Jul 1993 19:29:21 GMT
  6. Organization: Tektronix, Inc, Redmond, OR, USA
  7. Lines: 1252
  8. Approved: billr@saab.CNA.TEK.COM
  9. Message-ID: <21se2h$1d4@ying.cna.tek.com>
  10. NNTP-Posting-Host: saab.cna.tek.com
  11. Xref: uunet comp.sources.games:1826
  12.  
  13. Submitted-by: David Baggett <dmb@xbar.ai.mit.edu>
  14. Posting-number: Volume 18, Issue 26
  15. Archive-name: ccr/part11
  16. Environment: TADS
  17.  
  18.  
  19.  
  20. #! /bin/sh
  21. # This is a shell archive.  Remove anything before this line, then unpack
  22. # it by saving it into a file and typing "sh file".  To overwrite existing
  23. # files, type "sh file -c".  You can also feed this as standard input via
  24. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  25. # will see the following message at the end:
  26. #        "End of archive 11 (of 11)."
  27. # Contents:  catalog general.doc readme src/close.t src/help.t
  28. # Wrapped by billr@saab on Mon Jul 12 12:02:45 1993
  29. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  30. if test -f 'catalog' -a "${1}" != "-c" ; then 
  31.   echo shar: Will not clobber existing file \"'catalog'\"
  32. else
  33. echo shar: Extracting \"'catalog'\" \(8111 characters\)
  34. sed "s/^X//" >'catalog' <<'END_OF_FILE'
  35. X
  36. X                  ADVENTIONS
  37. X             Catalog of Releases
  38. X
  39. X
  40. XRemember the good old days, when adventure games challenged you with
  41. Xgreat puzzles and evocative descriptions without resorting to any
  42. Xgraphics at all?  We at ADVENTIONS really miss that emphasis on
  43. Xgameplay rather than glitz, and we're commited to writing new games
  44. Xthat are even better than the early text games we liked so much.
  45. X
  46. XWe believe the best pictures are the ones you create in your own
  47. Xmind.  And we know you'll be creating some pretty amazing pictures
  48. Xwhen you play our games.
  49. X
  50. XAnd because our games' graphics and sound capabilities are determined
  51. Xby *your* hardware rather than your machine's hardware, our
  52. Xadventures will run on more machines than almost any other commercial
  53. Xgames.  At the time of this writing, we support PC's and clones;
  54. XMacintoshes; the Atari ST, TT, and Falcon; Sun 3's and Sparcstations,
  55. XDEC MIPS-based workstations runnng Ultrix, NeXT computers, Silicon
  56. XGraphics workstations running Irix, 386+ PC's running Linux, and
  57. Xmore.  Amiga versions are in the works, as are versions for other
  58. XUnix environments.
  59. X
  60. X
  61. XUnnkulian Unventure Series
  62. X--------------------------
  63. X
  64. X   The Unnkulian Unventures are known world-wide for their excellent
  65. Xprose, witty irreverence, and top-notch full sentence command interface.
  66. XAdventure game devotees raised on now-classic 80's interactive fiction
  67. Xpraise these games for bringing challenging puzzles, vivid characters,
  68. Xand evocative writing back to the gaming world.
  69. X
  70. XIn "Unnkulian Underworld: The Unknown Unventure" you play the part of
  71. XKuulest's slave, and must recover the Orb of Studosity from the evil
  72. XUnnkulians.  Kuulest, the old geezebag, has died and left you with
  73. Xnothing to go on but a cryptic message about saving the planet.
  74. XYou'll encounter amazing Acme products, the infamous Guardian, those
  75. Xwitty creatures known as Drolls, a giant beaver, and even the Dread
  76. XUnnkulian Warrior.  <Gasp!>
  77. X
  78. XIn "Unnkulian Unventure II: The Secret of Acme" your adventure
  79. Xcontinues as you try to create some good press for yourself --
  80. Xwouldn't want to fade into anonymous obscurity, now would you?  Along
  81. Xthe way, you'll find the answers to these compelling questions, and
  82. Xmore:
  83. X
  84. X    o What happened to the Unnkulians?
  85. X    o Why are Acme products so bad?
  86. X    o What is this cheez stuff, really?
  87. X
  88. XPlus, you'll get to explore Dawg Rock, a Duhdist Retreat, Acme's
  89. Xclandestine prototypes laboratory, and even pay a visit to Acme HQ.
  90. X
  91. XIn "Unnkulia One-Half: The Salesman Triumphant," you'll play the role
  92. Xof a down-and-out Acme salesman, forced to work out of the Golden
  93. XDragon Inn, dangerously near Dread Unnkulia.  Will you accumulate
  94. Xenough loot in this frightful backwater berg to turn your fortunes in
  95. Xyour favor?
  96. X
  97. XAnd in "Unnkulia Zero: The Search for Amanda," will you, the Valley
  98. XKing's most trusted warrior, rescue his Lady Amanda from the gruesome
  99. Xclutches of the evil Unnkulians?
  100. X
  101. XAlong the way to victory (or, <shudder>, defeat!), you will:
  102. X
  103. X    o Find out about the ancient days of the Valley,
  104. X    o Meet the King's faithful (but not so bright) Valley Patrol,
  105. X    o Explore *beautiful* Lake Draounheer,
  106. X    o Discover the ancient burial ground of your ancestors,
  107. X    o Become frustrated with the pesky Stoll and his Stoll Bridge,
  108. X
  109. X    and, of course,
  110. X
  111. X    o Meet that wondrously wacky Wowsa Willy!
  112. X
  113. XFurther adventures in the ongoing Unnkulian saga are in the works,
  114. Xand with every new game you learn more about this mystifying (and
  115. Xhillarious) land and its inhabitants -- benign and malevolent.
  116. X
  117. X
  118. XUnnkulian Underworld: The Unknown Unventure (v3.0)
  119. Xby D. A. Leary
  120. X$10 (Shareware)
  121. X
  122. XUnnkulian Unventure II: The Secret of Acme (v3.0)
  123. Xby David Baggett
  124. X$10 (Shareware)
  125. X
  126. XUnnkulia 1/2: The Salesman Triumphant (v1.0)
  127. Xby D. A. Leary
  128. XFreeware
  129. X
  130. XUnnkulia Zero: The Search for Amanda (v1.0)
  131. Xby D. A. Leary
  132. XFree playable demo available
  133. X$25 (Direct from ADVENTIONS, or through High Energy Software)
  134. XAvailable NOW for MS-DOS and Macinstosh
  135. XAvailable soon for Atari ST and Unix systems
  136. X
  137. XUnnkulian Unventure III
  138. X(Work in progress)
  139. X
  140. XUnnkulian Unventure IV
  141. X(Work in progress)
  142. X
  143. X
  144. XUnnkulian Universe Unventure Series
  145. X-----------------------------------
  146. X
  147. X   A new chapter in the history of Unnkulia and the Valley unfolds in
  148. Xthis exciting series.  Find out what life is like on planet Tode
  149. X(home to Unnkulia and the Valley) and the rest of the Unnkulian
  150. XUniverse 500 years after "Unnkulian Underworld: The Unknown
  151. XUnventure."
  152. X
  153. X   Written by a Ph.D. candidate at the MIT Artificial Intelligence
  154. XLaboratory, "The Legend Lives!" is a science fiction epic of
  155. Xunprecedented depth that explores what can happen when networks and
  156. Xsoftware get too powerful to control.  As hacker Gavin Kelly, you'll
  157. Xbe at your wits' end tracking down and battling a terrifyingly
  158. Xpowerful virus unleashed on AkNet, the known galaxy's information and
  159. Xservice backbone.  All the while, you'll have to thwart its creator's
  160. Xattempts to locate and terminate *you*.
  161. X
  162. X   While sticking to the often humorous style of the Unnkulian
  163. XUnventures, "The Legend Lives!" nevertheless explores many serious
  164. Xthemes about technology and its effects on society.  "Legend" is not
  165. Xjust a challenging and fun computer game; it is one computer science
  166. Xresearcher's view of a future nearly destroyed by an entirely
  167. Xsynthetic and subtanceless entity -- a software construct.
  168. X
  169. X
  170. XThe Legend Lives!
  171. Xby David Baggett
  172. X$25 (Direct from ADVENTIONS, or through High Energy Software)
  173. XAvailable Fall 1993
  174. X
  175. X
  176. XOther Adventures
  177. X----------------
  178. X
  179. X   "The Horror of Rylvania" is true gothic horror in an interactive
  180. Xfiction setting.  A radical departure from the light-hearted Unnkulian
  181. Xseries, "Horror" is not for the faint-at-heart.  
  182. X
  183. X   What you expected would be a fun outing in scenic Rylvania turns
  184. Xinto a gruesome nightmare, with *you* playing the starring role.  Find
  185. Xout what it's like to be alternately the source and challenger of evil
  186. Xin the tiny Eastern European province.  Test your very moral fiber as
  187. Xyou decide to damn yourself and save others -- or vice versa.  "The
  188. XHorror of Rylvania" will grip you like no interactive fiction ever
  189. Xhas before.
  190. X
  191. X
  192. XThe Horror of Rylvania
  193. Xby D. A. Leary
  194. X(Now in beta-testing)
  195. X
  196. X
  197. X   "Colossal Cave Revisted" is a remake of the first major adventure
  198. Xgame ever written: Colossal Cave, otherwise known as "Adventure."
  199. XThe original Adventure was written in FORTRAN by Willie Crowther and
  200. XDon Woods, and had only a simple two word command parser.  Its
  201. Xdescriptions were so vivid, however, that it captivated a generation
  202. Xof computer enthusiasts and quickly became part of the "hacker lore."
  203. X
  204. X   ADVENTIONS' implementation of this classic features the same
  205. Xexcellent full sentence parser our other games use, and comes with
  206. Xcomplete source code.  For those new to interactive fiction, "Colossal
  207. XCave Revisited" is a must-have.
  208. X
  209. X
  210. XColossal Cave Revisited
  211. Xby Willie Crowther and Don Woods
  212. XTADS version written by David Baggett
  213. XFreeware
  214. X
  215. X
  216. XContacting ADVENTIONS
  217. X---------------------
  218. X
  219. X
  220. X              HOW TO CONTACT ADVENTIONS
  221. X
  222. X
  223. XPaper mail
  224. X
  225. X    ADVENTIONS
  226. X    PO Box 851
  227. X    Columbia, MD 21044 USA
  228. X
  229. XEmail
  230. X
  231. X    Compuserve: 76440,2671
  232. X    GEnie:      ADVENTIONS
  233. X    Internet:   dmb@ai.mit.edu
  234. X
  235. XBBS
  236. X
  237. X    FANTAZIA (410) 521-5636 (8N1)
  238. X    High Energy BBS (415) 493-2420 (8N1)
  239. X
  240. X
  241. XIf you send paper mail about a specific game, please write the name
  242. Xof the game on the envelope to help us process your query faster.
  243. X
  244. X
  245. XOrdering Info
  246. X-------------
  247. X
  248. X                        ADVENTIONS ORDER FORM
  249. X
  250. XUNNKULIA ZERO: THE SEARCH FOR AMANDA
  251. X
  252. XVersion/Price                                       Quantity        Total
  253. X-------------                                       --------        -----
  254. X
  255. X- MS-DOS 5 1/4" (High Density 1.2 Meg) - $25.00     ________        _____
  256. X
  257. X- MS-DOS 3 1/2" (720K) - $25.00                ________        _____
  258. X
  259. X- Macintosh 3 1/2" (800K) - $25.00                  ________        _____
  260. X
  261. X- Atari ST/TT/Falcon 3 1/2" (720K DS/DD) - $25.00   ________        _____
  262. X  (Available Summer '93)
  263. X
  264. XMaryland Residents add $1.25 sales tax per copy                     _____
  265. X
  266. XOverseas Customers add $1.00 shipping per copy                      _____
  267. X
  268. X
  269. XTotal                                                              >_____
  270. X
  271. END_OF_FILE
  272. if test 8111 -ne `wc -c <'catalog'`; then
  273.     echo shar: \"'catalog'\" unpacked with wrong size!
  274. fi
  275. # end of 'catalog'
  276. fi
  277. if test -f 'general.doc' -a "${1}" != "-c" ; then 
  278.   echo shar: Will not clobber existing file \"'general.doc'\"
  279. else
  280. echo shar: Extracting \"'general.doc'\" \(17371 characters\)
  281. sed "s/^X//" >'general.doc' <<'END_OF_FILE'
  282. X
  283. X
  284. X
  285. X            General TADS Game Instructions
  286. X
  287. X            Written by  Michael J. Roberts
  288. X      (Edited slightly by David Baggett for ADVENTIONS)
  289. X
  290. X
  291. X
  292. XPLAYING THE GAME
  293. X
  294. XIn an adventure game, you play by typing commands that describe what
  295. Xyou want to do.  Unfortunately, the game isn't as smart as you are,
  296. Xso it can't understand nearly as many sentences as a person could.
  297. XIn this section, we'll describe most of the types of commands that
  298. Xyou will need to use while playing the game.
  299. X
  300. XEach time you see the prompt, ">", you type a command.  Your command
  301. Xshould be a simple imperative sentence, or a series of imperatives
  302. Xseparated by periods.  Press the RETURN (or ENTER) key when you are
  303. Xdone typing your command; the game doesn't start interpreting the
  304. Xcommand until you press RETURN.
  305. X
  306. XYou can use capital or small letters in any mixture.  You can use
  307. Xwords such as THE and AN when they're appropriate, but you can omit
  308. Xthem if you prefer.  You can abbreviate any word to six or more
  309. Xletters, but the game will pay attention to all of the letters you
  310. Xtype.  For example, you could refer to a FLASHLIGHT with the words
  311. XFLASHL, FLASHLIG, and so forth, but not with FLASHSDF.
  312. X
  313. X
  314. XTRAVEL
  315. X
  316. XAt any time during the game, you are in a location.  The game
  317. Xdesribes your location when you first enter, and again any time you
  318. Xtype LOOK.  In a given location, you can reach anything described, so
  319. Xyou don't need to type commands to move about within a location.
  320. X
  321. XYou move from place to place in the game by typing the direction you
  322. Xwant to go.  The game will always tell you the directions that you
  323. Xcan go from a location, although it usually doesn't tell you what you
  324. Xwill find when you go there.  You will probably find it helpful to
  325. Xmake a map as you explore the game.  The directions the game
  326. Xrecognizes are NORTH, SOUTH, EAST, WEST, NORTHEAST, SOUTHEAST, UP,
  327. Xand DOWN.  You can abbreviate these to N, S, E, W, NE, SE, NW, SW, U,
  328. Xand D.  In some locations you can also use IN and OUT.
  329. X
  330. XGenerally, backtracking will take you back to where you started.  For
  331. Xexample, if you start off in the kitchen, go north into the living
  332. Xroom, then go south, you will be back in the kitchen.
  333. X
  334. XMost of the time, when the game describes a door or doorway, you
  335. Xdon't need to open the door to go through the passage; the game will
  336. Xdo this for you.  Only when the game explicitly describes a closed
  337. Xdoor (or other impediment to travel) will you need to type a command
  338. Xto open the door.
  339. X
  340. X
  341. XOBJECTS
  342. X
  343. XIn the game, you will find many objects that you can carry or
  344. Xotherwise manipulate.  When you want to do something with an object,
  345. Xtype a simple command that tells the game what you want to do; be
  346. Xexplicit.  For example, you could type READ THE BOOK or OPEN THE
  347. XDRAWER.  Most of the objects in the game have fairly obvious uses;
  348. Xyou shouldn't have to think of any obscure or unrelated words to
  349. Xmanipulate the objects.
  350. X
  351. XYou generally don't have to specify exactly where you want to put an
  352. Xobject that you wish to carry; you can just type TAKE (followed by
  353. Xthe object's name) to carry an object.  We didn't think it was
  354. Xparticularly interesting to force you to specify which object you
  355. Xwish to put in your left pocket, which you wish to carry in your
  356. Xright hand, and so forth.  However, there is a limit to how many
  357. Xobjects you can carry at once, and to how much weight you can handle.
  358. XYou can carry more objects (but not more weight, of course) by
  359. Xputting some items inside containers (for example, you may be able to
  360. Xput several objects into a box, and carry the box), since this
  361. Xreduces the number of objects you actually have to juggle at once.
  362. X
  363. XSome basic verbs that you will use frequently are TAKE (to pick up an
  364. Xobject), DROP (to drop an object), OPEN and CLOSE, and EXAMINE (which
  365. Xyou can abbreviate to X).  You can PUT an object IN or ON another
  366. Xobject when appropriate.  The game recognizes many other verbs as
  367. Xwell.  We tried to make all of the verbs obvious; if you find a knob,
  368. Xyou will be able to TURN it, and if you find a button, you will be
  369. Xable to PUSH it.  By the same token, you probably won't need to turn
  370. Xthe button or push the knob.
  371. X
  372. XSome examples of commands that the game recognizes are shown below.
  373. XThese aren't necessarily commands that you'll ever type while playing
  374. Xthe game, but they illustrate some of the verbs and sentence formats
  375. Xthat you may use.
  376. X
  377. X    GO NORTH
  378. X    NORTH
  379. X    N
  380. X    UP
  381. X    TAKE THE BOX
  382. X    PUT THE FLOPPY DISK INTO THE BOX
  383. X    CLOSE BOX
  384. X    LOOK AT DISK
  385. X    TAKE DISK OUT OF BOX
  386. X    LOOK IN BOX
  387. X    WEAR THE CONICAL HAT
  388. X    TAKE OFF HAT
  389. X    CLOSE BOX
  390. X    TURN ON THE LANTERN
  391. X    LIGHT MATCH
  392. X    LIGHT CANDLE WITH MATCH
  393. X    RING BELL
  394. X    POUR WATER INTO BUCKET
  395. X    PUSH BUTTON
  396. X    TURN KNOB
  397. X    EAT COOKIE
  398. X    DRINK MILK
  399. X    THROW KNIFE AT THIEF
  400. X    KILL TROLL WITH SWORD
  401. X    READ NEWSPAPER
  402. X    LOOK THROUGH WINDOW
  403. X    UNLOCK DOOR WITH KEY
  404. X    TIE THE ROPE TO THE HOOK
  405. X    CLIMB UP THE LADDER
  406. X    TURN THE KNOB
  407. X    JUMP
  408. X    TYPE "HELLO" ON THE KEYBOARD
  409. X    TYPE 1234 ON THE KEYPAD
  410. X    GET IN THE CAR
  411. X    GET OUT OF THE CAR
  412. X    GET ON THE HORSE
  413. X    GIVE WAND TO WIZARD
  414. X    ASK WIZARD ABOUT WAND
  415. X
  416. X
  417. XOTHER CHARACTERS
  418. X
  419. XYou may encounter other characters in the game.  You can interact in
  420. Xcertain ways with these characters.  For example, you can GIVE things
  421. Xto them, and you could try to attack them.  In addition, you can ask
  422. Xcharacters about things:
  423. X
  424. X    ASK WIZARD ABOUT WAND
  425. X
  426. XSome characters will tell you quite a bit in response to such
  427. Xqueries, while others will be more taciturn.
  428. X
  429. XTIME
  430. X
  431. XTime in the game passes only in response to commands you type.
  432. XNothing happens while the game is waiting for you to type something.
  433. XEach turn takes about the same amount of time.  If you want to let
  434. Xsome game time pass, because you think something is about to happen,
  435. Xyou can type WAIT (or just Z).
  436. X
  437. X
  438. XSCORE
  439. X
  440. XThe game assigns you a score while you play, indicating how close you
  441. Xare to finishing it.  At certain points in the game, you will be
  442. Xawarded points when you solve some puzzle or obtain some item.  The
  443. Xscore is intended to provide you with a measure of your progress in
  444. Xthe game, and increases as you get further in the game; you never
  445. Xlose points once they are earned.
  446. X
  447. X
  448. XREFERRING TO MULTIPLE OBJECTS
  449. X
  450. XYou can usually use multiple objects in your sentences.  You separate
  451. Xthe objects by the word AND or a comma.  For example:
  452. X
  453. X    TAKE THE BOX, THE FLOPPY DISK, AND THE ROPE
  454. X    PUT DISK AND ROPE IN BOX
  455. X    DROP BOX AND BALL
  456. X
  457. XYou can use the word ALL to refer to everything that is applicable to
  458. Xyour command, and you can use EXCEPT (right after the word ALL) to
  459. Xexclude certain objects.
  460. X
  461. X    TAKE ALL
  462. X    PUT ALL EXCEPT DISK AND ROPE INTO BOX
  463. X    TAKE EVERYTHING OUT OF THE BOX
  464. X    TAKE ALL OFF SHELF
  465. X
  466. XThe word ALL refers to everything that makes sense for your command,
  467. Xexcluding things inside containers that are used in the command.  For
  468. Xexample, if you are carrying a box and a rope, and the box contains a
  469. Xfloppy disk, typing DROP ALL will drop only the box and the rope; the
  470. Xfloppy disk will remain in the box.
  471. X
  472. X
  473. X"IT" AND "THEM"
  474. X
  475. XYou an use IT and THEM to refer to the last object or objects that
  476. Xyou used in a command.  Some examples:
  477. X
  478. X    TAKE THE BOX
  479. X    OPEN IT
  480. X    TAKE THE DISK AND THE ROPE
  481. X    PUT THEM IN THE BOX
  482. X
  483. X
  484. XMULTIPLE COMMANDS ON A LINE
  485. X
  486. XYou can put multiple commands on a single input line by separating
  487. Xthe commands with periods or the word THEN, or with a comma or the
  488. Xword AND.  Each command still counts as a separate turn.  For example:
  489. X
  490. X    TAKE THE DISK AND PUT IT IN THE BOX
  491. X    TAKE BOX. OPEN IT.
  492. X    UNLOCK THE DOOR WITH THE KEY. OPEN IT, AND THEN GO NORTH
  493. X
  494. XIf the game doesn't understand one of the commands on the input line,
  495. Xit will tell you what it couldn't understand, and it will ignore the
  496. Xrest of the commands on the line.
  497. X
  498. X
  499. XAMBIGUOUS COMMANDS
  500. X
  501. XIf you type a command that leaves out some important information, the
  502. Xgame will try to figure out what you mean anyway.  When the game can
  503. Xbe reasonably sure about what you mean, because only one object would
  504. Xmake sense with the command, the game will make an assumption about
  505. Xthe missing information and act as though you had supplied it.  For
  506. Xexample,
  507. X
  508. X    >TIE THE ROPE
  509. X    (to the hook)
  510. X    The rope is now tied to the hook.  The end of the
  511. X    rope nearly reaches the floor of the pit below.
  512. X
  513. XIf your command is ambiguous enough that the game doesn't feel safe
  514. Xmaking assumptions about what you meant, the game will ask you for
  515. Xmore information.  You can answer these questions by typing the
  516. Xmissing information.  If you decide you didn't want to bother with
  517. Xthe command after all, you can just type a new command; the game will
  518. Xignore the question it asked.  For example:
  519. X
  520. X    >UNLOCK THE DOOR
  521. X    What do you want to unlock the door with?
  522. X    
  523. X    >THE KEY
  524. X    Which key do you mean, the gold key, or the silver key?
  525. X    
  526. X    >GOLD
  527. X    The door is now unlocked.
  528. X
  529. X
  530. XUNKNOWN WORDS
  531. X
  532. XThe game will sometimes use words in its descriptions that it doesn't
  533. Xunderstand in your commands.  For example, you may see a description
  534. Xsuch as, "The planet's rings are visible as a thin arc high overhead,
  535. Xglimmering in the sunlight."  If the game doesn't know words such as
  536. X"rings," you can assume that they're not needed to play the game;
  537. Xthey're in the descriptions simply to make the story more
  538. Xinteresting.  For those objects that are important, the game
  539. Xrecognizes many synonyms; if the game doesn't understand a word you
  540. Xuse, or any of its common synonyms, you are probably trying something
  541. Xthat is not necessary to continue.
  542. X
  543. X
  544. XSAVING AND RESTORING
  545. X
  546. XYou can store a snapshot of the game's state in a disk file at any
  547. Xtime.  Later, if your character is killed or you find that it has
  548. Xbecome impossible to finish the game (due to a lost or broken object,
  549. Xfor example), you can restore the state of the game exactly as it was
  550. Xwhen you saved it to the disk file.  You can save your position as
  551. Xmany times as you like, using different disk files for each position.
  552. XSaving the game also allows you to play the game over the course of
  553. Xmany days, without having to start over from scratch each time you
  554. Xcome back to the game.
  555. X
  556. XTo save the game, type SAVE at any prompt.  The game will ask you for
  557. Xthe name of a disk file to use to store the game state.  (You will
  558. Xhave to specify a filename suitable for your computer system, and the
  559. Xdisk must have enough space to store the game state.  The game will
  560. Xtell you if the game was not saved properly for some reason.)  You
  561. Xshould give the file a name that does not exist on your disk.  If you
  562. Xsave the game into a file that already exists, the data previously in
  563. Xthat file will be destroyed.
  564. X
  565. XWhen you wish to restore a game, type RESTORE at the command prompt.
  566. XThe game will ask you for the name of a disk file that you specified
  567. Xwith a previous SAVE command.  After reading the disk file, the game
  568. Xstate will be restored to exactly the position when you saved it.
  569. X
  570. X
  571. XSPECIAL COMMANDS
  572. X
  573. XThe game understands several special commands that you can use to
  574. Xcontrol it.  You can use these commands at any prompt.
  575. X
  576. XAGAIN or G: Repeats your last command.  If your last input line was
  577. Xcomposed of several commands, only the last command on the line is
  578. Xrepeated.
  579. X
  580. XINDENT: Controls paragraph indentation.  By default the game will
  581. Xindent paragraphs.  The INDENT command toggles this feature on and
  582. Xoff.
  583. X
  584. XINVENTORY or I: Shows the list of items you are carrying.
  585. X
  586. XLOOK or L: Shows the full description of your location.
  587. X
  588. XOOPS: Allows you to correct the spelling of a word in the last
  589. Xcommand.  You can use OOPS when the game displays this complaint: "I
  590. Xdon't know the word <word>."  Immediately after this message, you can
  591. Xtype OOPS followed by the corrected spelling of the misspelled word.
  592. XYou can only type one word after OOPS, so this command doesn't allow
  593. Xyou to correct certain types of errors, such as when you run two
  594. Xwords together without a spce.
  595. X
  596. XQUIT: Stops the game, and returns you to your operating system.
  597. X
  598. XRESTART: Starts the game over from the beginning.
  599. X
  600. XRESTORE: Restores a position previously saved with the SAVE command.
  601. X
  602. XSAVE: Stores the current state of the game in a disk file, so that
  603. Xyou can come back to the same place later (with the RESTORE command).
  604. X
  605. XSCORE: Shows you your current score, the maximum possible score, and
  606. Xthe number of turns you have taken so far.
  607. X
  608. XSCRIPT: Starts writing everything you see on the screen (your
  609. Xcommands and the game's responses) to a disk file.  The game will ask
  610. Xyou for a filename to be used for the transcript; you should select a
  611. Xfilename that does not yet exist on your disk, because if you use an
  612. Xexisting filename, data in the file will be destroyed.  Use the
  613. XUNSCRIPT command to stop making the transcript.
  614. X
  615. XSPACE: Controls spacing between paragraphs of text.  By default the
  616. Xgame will put a blank line after each paragraph.  The SPACE command
  617. Xtoggles this feature on and off.
  618. X
  619. XTERSE: Tells the game that you wish to see only short descriptions of
  620. Xlocations you have already seen when you enter them.  This is the
  621. Xdefault mode.  See also the VERBOSE command.
  622. X
  623. XUNDO: Tells the game you want to take back your last command.  The
  624. Xgame state will be restored to the way it was before the undone
  625. Xcommand, as though the command were never issued at all.  You can do
  626. Xthis more than once in a row.
  627. XUNSCRIPT: Turns off the transcript being made with the SCRIPT command.
  628. X
  629. XVERBOSE: Tells the game to show you the full description of every
  630. Xlocation you enter, whether or not you have seen the description
  631. Xbefore.  By default, the game will show you the full description of a
  632. Xlocation only when you first enter it, and will show you the short
  633. Xdescription each time you enter the location thereafter.  Of course,
  634. Xyou can get a full description at any time by typing LOOK.  See also
  635. Xthe TERSE command.
  636. X
  637. XVERSION: Shows you the current version of the game.
  638. X
  639. XWAIT or Z: Causes game time to pass.  When the game is waiting for
  640. Xyou to type command, no game time passes; you can use this command to
  641. Xwait for something to happen.
  642. X
  643. X
  644. XCOMMAND EDITING AND RECALL
  645. X
  646. XOn most computer systems, the game has a special feature that allows
  647. Xyou to use your keyboard's editing keys to modify an input line as
  648. Xyou are typing it, and to recall commands that you have previously
  649. Xtyped for editing and re-entry.  The specific keys you use vary
  650. Xdepending on your system, and some systems don't support this feature
  651. Xat all; see the system-specific documentation for more information.
  652. X
  653. XWhile you are typing a command, the game allows you to go back and
  654. Xchange part of the line without "backspacing" over the rest of the
  655. Xline to get there.  Simply use your left and right cursor-arrow keys
  656. Xto move the cursor to any point in the command line.  The BACKSPACE
  657. Xkey deletes a character to the left of the cursor, and the DELETE key
  658. Xdeletes the character at which the cursor is located.
  659. X
  660. XYou can insert new text at the cursor simply by typing the text.  You
  661. Xcan press the RETURN (or ENTER) key with the cursor at any point in
  662. Xthe line (the cursor need not be at the end of the command line).
  663. X
  664. XYou can recall the previous command that you entered by pressing the
  665. Xup cursor-arrow key; pressing the up-arrow key again recalls the
  666. Xcommand before that, and so forth.  Using the down cursor-arrow key
  667. Xreverses this process, until you get back to the original command
  668. Xthat you were typing before you started pressing the up-arrow key.
  669. X
  670. XOnce you have recalled a prior command, you can re-enter it by
  671. Xpressing the RETURN key.  In addition, you can edit the command, as
  672. Xdescribed above, before entering the command.
  673. X
  674. XThe exact number of commands the game retains depends on the lengths
  675. Xof the commands, but more than a hundred of the most recent commands
  676. Xare generally retained at any given time.
  677. X
  678. X
  679. XREVIEW MODE
  680. X
  681. XAnother special feature that the game supports on many computer
  682. Xsystems is called "review mode."  The game remembers text as it
  683. X"scrolls" off the screen; by invoking recall mode, you can go back
  684. Xand look at text that is no longer visible on the screen.  On most
  685. Xsystems, review mode is activated by pressing the function key F1.
  686. X
  687. XOnce in review mode, the status line that is normally at the top of
  688. Xthe screen will be replaced by the review mode help line.  This line
  689. Xshows the keystrokes you use to view previous screenfuls of text, and
  690. Xalso shows you the key that exits review mode and resumes normal game
  691. Xplay (this is generally the game key that you used to activate review
  692. Xmode).
  693. X
  694. XWhile in review mode, your screen becomes a window onto the text that
  695. Xthe game has stored away.  When you first activate review mode, you
  696. Xare looking at the very bottom of this text, which is the screenful
  697. Xof text that was just displayed.  Use the up and down cursor-arrow
  698. Xkeys to move the window up and down.  Pressing the up cursor-arrow
  699. Xkey moves the window up one line, showing you one line of text that
  700. Xhas scrolled off the screen.  Most systems also provide keys to move
  701. Xup and down by a full screenful (also called a "page.")
  702. X
  703. XTo resume game play, press the same key that you used to activate
  704. Xreview mode.
  705. X
  706. XThe number of screenfuls of text that the game stores away for review
  707. Xdepends on how much text is actually on each screen, since the game
  708. Xhas a limit on the number of characters it can store, not on the
  709. Xnumber of lines.  Normally, more than twenty of the most recent
  710. Xscreens of text are saved and available for review at any given time.
  711. END_OF_FILE
  712. if test 17371 -ne `wc -c <'general.doc'`; then
  713.     echo shar: \"'general.doc'\" unpacked with wrong size!
  714. fi
  715. # end of 'general.doc'
  716. fi
  717. if test -f 'readme' -a "${1}" != "-c" ; then 
  718.   echo shar: Will not clobber existing file \"'readme'\"
  719. else
  720. echo shar: Extracting \"'readme'\" \(8026 characters\)
  721. sed "s/^X//" >'readme' <<'END_OF_FILE'
  722. X
  723. X
  724. X               Colossal Cave Revisited
  725. X        A TADS game with complete source code
  726. X
  727. X         Copyright (C) 1993 David M. Baggett
  728. X
  729. X      See the file readme.1st for terms of distribution
  730. X               and use of this software
  731. X
  732. X
  733. XWhat Have We Here?
  734. X
  735. X   This game is a remake of the first major adventure game ever written:
  736. XColossal Cave, otherwise known as "Adventure."  The original Adventure
  737. Xwas written in FORTRAN by Willie Crowther and Don Woods, and had only
  738. Xa simple two word command parser.  Its descriptions were so vivid,
  739. Xhowever, that it captivated a generation of computer enthusiasts and
  740. Xquickly became part of the "hacker lore."  References to Adventure
  741. Xcrop up even today in games and other software.
  742. X
  743. X   Adventure was such a significant event in computerdom that it
  744. Xspawned a whole genre of games, made even more popular by Infocom
  745. Xin the 1980's.  The MIT hackers who formed Infocom took the Adventure
  746. Xconcept and added some powerful new technology to it: sentence parsing.
  747. XTheir first game, Zork, was clearly very much inspired by Crowther and
  748. XWoods' original, but seemed more intelligent and was easier to play
  749. Xbecause it could accept simple sentences instead of just two-word
  750. Xdirectives.
  751. X
  752. X   Eventually affordable computers got to be powerful enough to support
  753. Xgeneral text adventure authoring packagaes, and by 1992 there were already
  754. Xnearly a dozen systems for would-be adventure authors to choose from.
  755. XThis remake of Crowther and Woods' original was written with TADS,
  756. Xone such adventure writing system, and is intended to be a tutorial
  757. Xexample for TADS authors to learn from.  For this reason, great care
  758. Xhas been taken to keep the code easy to read and understand.
  759. X
  760. X   Colossal Cave Revisited (CCR) is also meant to give a new
  761. Xgeneration of computer gamers an opportunity to play the game that
  762. Xstarted it all, in a format they will feel more comfortable with.
  763. XToday's text adventurers have been "spoiled" by the nice sentence
  764. Xparsing that most games have these days, and it is the author's hope
  765. Xthat this reimplementation will make the original Adventure -- a
  766. Xclassic that still shines today -- accessable to a wider audience.
  767. X
  768. X
  769. XImplementation Details and Philosophy
  770. X
  771. X   I have tried to be as faithful to the original game as possible
  772. Xthroughout the project.  To start off on the right foot, I went back
  773. Xto Donald Ekman's excellent PC port of what seemed to be the original
  774. XDEC-10 FORTRAN source code.  Don tells me he typed a significant
  775. Xportion of that source in from a paper listing -- now that's
  776. Xdevotion!  In any case, few changes had to be made to get the game
  777. Xrunning under DOS, so the source I used to make CCR is largely
  778. X"untainted."
  779. X
  780. X   Retrofitting such an old game onto a more sophisicated game engine
  781. Xcreated a few philosophical problems.  Games these days are expected
  782. Xto have "decorations;" little bits of scenery mentioned in the room
  783. Xdescriptions that you can't actually do anything with, but make
  784. Xthe setting feel more real.  The original Adventure didn't have many
  785. Xdecorations, and the two-word parser prevented players from trying
  786. Xthings like "look under y2 rock," "put the rod in the stream," etc.
  787. X
  788. X   The approach I took was to add decorations every reasonable place
  789. Xwithout writing much new prose.  Where prose exists in the original
  790. Xgame, I used it, even to the extent of making bits of room
  791. Xdescriptions serve double duty.  In a number of places I wrote
  792. Xentirely new text.  In these cases, I either wrote something
  793. Xinnocuous or tried my best to mimic the style of the original.
  794. X
  795. X   The new sentence parser created similar problems for game play.
  796. XWhereas in the original you had to say "throw axe" to attack
  797. Xsomething, you can now do things like "attack bear with lamp."  There
  798. Xis no analogue to this in the original source; "throw lamp" would be
  799. Xinterpreted as a request to drop the object.  Here again, I used
  800. Xresponse text whenever available and strived to stay consistent with
  801. Xthe overall tone of the original when crafting new prose.  From the
  802. Xbeginning I wanted walkthroughs for the original to still work in
  803. XCCR; this is largely true now, though there are surely a few
  804. Xexceptions.
  805. X
  806. X
  807. XHints to Programmers Who Want to Modify Colossal Cave Revisited
  808. X
  809. X   Colossal Cave Revisited isn't meant to be an unchanging mass of
  810. Xarchival source code.  On the contrary, I hope that people will add
  811. Xnew features, objects and locations.  If you do add things, please
  812. Xlet me know so I can incorporate the changes into the official
  813. Xdistribution.
  814. X
  815. X   Modifying any large program is daunting at first.  CCR is about
  816. X13,000 lines of source, and that's a lot of code to read through.
  817. XFortunately, you shouldn't have to pay much attention to the grungy
  818. Xdetails of most of it, since I've tried my best to make it easy to
  819. Xmodify.
  820. X
  821. X   With this is mind, here are a few tips to make building and
  822. Xchanging CCR simpler:
  823. X
  824. X   * Have a suitable compiler.  You need a compiler for TADS 2.0.13
  825. X     or higher.  Earlier versions of the compiler won't understand
  826. X     some of the constructs used in the CCR source code.  Similarly,
  827. X     you will need a version 2.0.13 or later run-time system to run it.
  828. X
  829. X   * Use (or at least follow) the makefile.  Some of the options 
  830. X     in the makefile are crucial, and if you don't specify them when
  831. X     compiling ccr.t, you will get mystifying error messages.  In
  832. X     particular, be sure to compile with the -mp option set large
  833. X     enough, and make sure you make the cache small enough (with the
  834. X     -m option) if you're running under MS-DOS.
  835. X
  836. X   * Make extensions optional.  The easiest way to do this is to
  837. X     add flags to the "global" object in ccr-std.t that enable or
  838. X     disable your new code.
  839. X
  840. X   * Use the existing classes whenever possible.  Classes are already
  841. X     defined to make your life easy.  In addition to the basic TADS
  842. X     classes, make sure you understand the definitions and use of the
  843. X     following:
  844. X
  845. X     ccr-item.t:
  846. X
  847. X    class CCR_treasure_item
  848. X
  849. X     ccr-npc.t:
  850. X
  851. X    class NPC
  852. X
  853. X     ccr-room.t:
  854. X
  855. X    class CCR_room
  856. X    class CCR_alike_maze_room
  857. X    class NoNPC
  858. X    class CCR_dead_end_room
  859. X    class lightroom
  860. X    class Outside
  861. X    class NotFarIn
  862. X    class CCR_decoration
  863. X
  864. X    class floatingdecoration
  865. X    class rfd (room feature decoration)
  866. X
  867. X   * Set global.debug to true to get extra information about room 
  868. X     connections and NPC movement at run-time.  The game will check
  869. X     its connections to make sure everything's OK at run-time.
  870. X
  871. X     Add new debugging code enabled by this flag for your own
  872. X     extensions.
  873. X
  874. X   * When defining new classes or puzzles, copy an existing similar
  875. X     implementation and then modify it to suit your needs.  Starting
  876. X     from scratch is always harder than updating already-working code.  
  877. X
  878. X
  879. XSome Ideas
  880. X
  881. X   Here are a few things that I considered doing myself, but decided
  882. Xto leave as exercises.  (Yeah, that's the ticket.)  They range from
  883. Xfairly trivial to incredibly time-consuming:
  884. X
  885. X   * Add hints.  The original gave you hints at various times, but
  886. X     would deduct points if the player took them.  Get Don Ekman's
  887. X     PC port of the FORTRAN source and use the original hint text.
  888. X
  889. X   * Make the NPC code more faithful to the original.  In particular,
  890. X     dwarves don't block your way in CCR, while they did in the original.
  891. X
  892. X   * Make the NPC movement code faster.
  893. X
  894. X   * Make the descriptions of treasures sound more "excited."  The game
  895. X     currently treats treasure like all other items when it tells you
  896. X     about them:
  897. X
  898. X    You see a rock here.
  899. X    You see a platinum pyramid here, 12 inches on a side.
  900. X
  901. X     Change ccr-adv.t so that it lists treasures separately, and
  902. X     puts an exclamation point at the end.
  903. X
  904. X   * Implement one of the "extended" versions of the games; e.g., the
  905. X     550 point version with the sword in the stone.  Make sure you
  906. X     update scoring so that your extensions fit in seamlessly.
  907. X
  908. X   * Add your own NPC's, puzzles, or locations.
  909. X
  910. X   * Port TADS to new machines so that CCR has a wider audience. (Contact
  911. X     Mike Roberts at High Energy Software for more info.)
  912. X
  913. XWhatever you do, please send me your changes!
  914. X
  915. END_OF_FILE
  916. if test 8026 -ne `wc -c <'readme'`; then
  917.     echo shar: \"'readme'\" unpacked with wrong size!
  918. fi
  919. # end of 'readme'
  920. fi
  921. if test -f 'src/close.t' -a "${1}" != "-c" ; then 
  922.   echo shar: Will not clobber existing file \"'src/close.t'\"
  923. else
  924. echo shar: Extracting \"'src/close.t'\" \(5171 characters\)
  925. sed "s/^X//" >'src/close.t' <<'END_OF_FILE'
  926. X/*
  927. X * Colossal Cave Revisited
  928. X *
  929. X * A remake of Willie Crowther and Don Woods' classic Adventure.
  930. X * Converted from Donald Ekman's PC port of the original FORTRAN source.
  931. X * TADS version by David M. Baggett for ADVENTIONS.
  932. X *
  933. X * Please document all changes in the history so we know who did what.
  934. X *
  935. X * This source code is copylefted under the terms of the GNU Public
  936. X * License.  Essentially, this means that you are free to do whatever
  937. X * you wish with this source code, provided you do not charge any
  938. X * money for it or for any derivative works.
  939. X *
  940. X * ADVENTIONS distributes this game, but you are free to do what you will
  941. X * with it, provided you adhere to the terms in the GNU Public License.
  942. X * Send correspondence regarding this game or original works distributed
  943. X * by ADVENTIONS to 
  944. X *
  945. X *    ADVENTIONS
  946. X *    PO Box 851
  947. X *    Columbia, MD 21044
  948. X *
  949. X * If you would like a catalog of releases, please enclose a SASE.  Thanks!
  950. X *
  951. X * Contributors
  952. X *
  953. X *    dmb    In real life:    David M. Baggett
  954. X *        Internet:    <dmb@ai.mit.edu>
  955. X *        Compu$erve:    76440,2671 (ADVENTIONS account)
  956. X *        GEnie:        ADVENTIONS
  957. X *
  958. X * Modification History
  959. X *
  960. X * 1-Jan-93    dmb    rec.arts.int-fiction BETA release (source only)
  961. X *                      For beta testing only -- not for general
  962. X *            distribution.
  963. X *
  964. X */
  965. X
  966. X/*
  967. X * This file defines a few game-specific functions for the cave closing.
  968. X * Don't read any of this unless you want to spoil the ending!
  969. X */
  970. X
  971. X/*
  972. X * This function is called every turn to see if it's time to start
  973. X * closing the cave.
  974. X */
  975. Xcheck_for_closing: function(parm)
  976. X{
  977. X    //
  978. X    // If there are no more treasures left to be found, count
  979. X    // down the cave closing counter whenever the player is
  980. X    // well inside but not at Y2.
  981. X    //
  982. X    if (global.closingtime > 0 and global.treasures = 0) {
  983. X        if (not Me.location.notfarin and not Me.isIn(At_Y2)) {
  984. X            global.closingtime := global.closingtime - 1;
  985. X            if (global.closingtime < 1)
  986. X                start_closing();
  987. X        }
  988. X    }
  989. X}
  990. X
  991. X/*
  992. X * This function is called every turn to see if it's time to start
  993. X * the final puzzle.
  994. X */
  995. Xcheck_for_endgame: function(parm)
  996. X{
  997. X    if (global.closed and global.bonustime > 0) {
  998. X        global.bonustime := global.bonustime - 1;
  999. X        if (global.bonustime < 1) {
  1000. X            // Start the final puzzle
  1001. X            start_endgame();
  1002. X        }
  1003. X    }
  1004. X}
  1005. X
  1006. Xstart_closing: function
  1007. X{    P();
  1008. X    I(); "A sepulchral voice reverberating through the cave says, 
  1009. X    \"Cave closing soon.  All adventurers exit immediately 
  1010. X    through main office.\"";
  1011. X
  1012. X    incscore(global.closingpoints);
  1013. X
  1014. X    global.closed := true;
  1015. X
  1016. X    CrystalBridge.exists := nil;    // destroy the bridge
  1017. X    Grate.islocked := true;        // lock the grate ...
  1018. X    Grate.mykey := nil;        // ...and throw away the key
  1019. X    Dwarves.loclist := [];        // nuke dwarves...
  1020. X    Pirates.loclist := [];        // ...and pirate(s)
  1021. X    Troll.moveInto(nil);        // vaporize troll
  1022. X    Bear.exists := nil;        // ditto for bear
  1023. X
  1024. X    // This was listed in the original as being too much trouble
  1025. X    // to bother with, but why not:
  1026. X    Dragon.moveInto(nil);        // nuke the dragon too
  1027. X}
  1028. X
  1029. Xstart_endgame: function
  1030. X{
  1031. X    P();
  1032. X    I(); "The sepulchral voice intones, \"The cave is now 
  1033. X    closed.\" As the echoes fade, there is a blinding flash of 
  1034. X    light (and a small puff of orange smoke).\ .\ .\ .  As your 
  1035. X    eyes refocus, you look around and find that you're...\b";
  1036. X
  1037. X    //
  1038. X    // Vaporize everyting the player's carrying.
  1039. X    //
  1040. X    while (length(Me.contents) > 0)
  1041. X        Me.contents[1].moveInto(nil);
  1042. X
  1043. X    //
  1044. X    // Stock the northeast end
  1045. X    //
  1046. X    bottle.moveInto(At_Ne_End);
  1047. X    bottle.empty;    // don't want to worry about watering the plants
  1048. X    giant_bivalve.moveInto(At_Ne_End);
  1049. X    brass_lantern.moveInto(At_Ne_End);
  1050. X    black_rod.moveInto(At_Ne_End);
  1051. X
  1052. X    //
  1053. X    // Stock the southwest end
  1054. X    //
  1055. X    little_bird.moveInto(At_Sw_End);
  1056. X    wicker_cage.moveInto(At_Sw_End);
  1057. X    black_mark_rod.moveInto(At_Sw_End);
  1058. X    velvet_pillow.moveInto(At_Sw_End);
  1059. X
  1060. X    //
  1061. X    // Move the player
  1062. X    //
  1063. X    Me.travelTo(At_Ne_End);
  1064. X
  1065. X    incscore(global.endpoints);
  1066. X}
  1067. X
  1068. X/*
  1069. X * Determine how the player fares in the final puzzle.
  1070. X */
  1071. Xendpuzzle: function
  1072. X{
  1073. X    if (black_mark_rod.isIn(At_Ne_End) and Me.isIn(At_Sw_End)) {
  1074. X        incscore(global.winpoints);
  1075. X
  1076. X        I(); "There is a loud explosion, and a twenty-foot 
  1077. X        hole appears in the far wall, burying the dwarves in 
  1078. X        the rubble.  You march through the hole and find 
  1079. X        yourself in the main office, where a cheering band of 
  1080. X        friendly elves carry the conquering adventurer off 
  1081. X        into the sunset."; P();
  1082. X
  1083. X        win();
  1084. X    }
  1085. X    else if (black_mark_rod.isIn(At_Sw_End) and Me.isIn(At_Ne_End)) {
  1086. X        incscore(global.almostpoints);
  1087. X
  1088. X        I(); "There is a loud explosion, and a twenty-foot 
  1089. X        hold appears in the far wall, burying the snakes in 
  1090. X        the rubble.  A river of molten lava pours in through 
  1091. X        the hole, destroying everything in its path, 
  1092. X        including you!"; P();
  1093. X
  1094. X        win();
  1095. X    }
  1096. X    else if (black_mark_rod.isIn(Me.location)) {
  1097. X        incscore(global.wrongpoints);
  1098. X
  1099. X        "There is a loud explosion, and you are suddenly 
  1100. X        splashed across the walls of the room."; P();
  1101. X
  1102. X        win();
  1103. X    }
  1104. X}
  1105. X
  1106. X/*
  1107. X * The player resolves the endgame by disturbing the dwarves.
  1108. X */
  1109. Xend_dwarves: function
  1110. X{
  1111. X    P();
  1112. X    I(); "The resulting ruckus has awakened the dwarves.  There 
  1113. X    are now several threatening little dwarves in the room with 
  1114. X    you! Most of them throw knives at you!  All of them get 
  1115. X    you!"; P();
  1116. X
  1117. X    win();
  1118. X}
  1119. END_OF_FILE
  1120. if test 5171 -ne `wc -c <'src/close.t'`; then
  1121.     echo shar: \"'src/close.t'\" unpacked with wrong size!
  1122. fi
  1123. # end of 'src/close.t'
  1124. fi
  1125. if test -f 'src/help.t' -a "${1}" != "-c" ; then 
  1126.   echo shar: Will not clobber existing file \"'src/help.t'\"
  1127. else
  1128. echo shar: Extracting \"'src/help.t'\" \(4545 characters\)
  1129. sed "s/^X//" >'src/help.t' <<'END_OF_FILE'
  1130. X/*
  1131. X * Colossal Cave Revisited
  1132. X *
  1133. X * A remake of Willie Crowther and Don Woods' classic Adventure.
  1134. X * Converted from Donald Ekman's PC port of the original FORTRAN source.
  1135. X * TADS version by David M. Baggett for ADVENTIONS.
  1136. X *
  1137. X * Please document all changes in the history so we know who did what.
  1138. X *
  1139. X * This source code is copylefted under the terms of the GNU Public
  1140. X * License.  Essentially, this means that you are free to do whatever
  1141. X * you wish with this source code, provided you do not charge any
  1142. X * money for it or for any derivative works.
  1143. X *
  1144. X * ADVENTIONS distributes this game, but you are free to do what you will
  1145. X * with it, provided you adhere to the terms in the GNU Public License.
  1146. X * Send correspondence regarding this game or original works distributed
  1147. X * by ADVENTIONS to 
  1148. X *
  1149. X *    ADVENTIONS
  1150. X *    PO Box 851
  1151. X *    Columbia, MD 21044
  1152. X *
  1153. X * If you would like a catalog of releases, please enclose a SASE.  Thanks!
  1154. X *
  1155. X * Contributors
  1156. X *
  1157. X *    dmb    In real life:    David M. Baggett
  1158. X *        Internet:    <dmb@ai.mit.edu>
  1159. X *        Compu$erve:    76440,2671 (ADVENTIONS account)
  1160. X *        GEnie:        ADVENTIONS
  1161. X *
  1162. X * Modification History
  1163. X *
  1164. X * 1-Jan-93    dmb    rec.arts.int-fiction BETA release (source only)
  1165. X *                      For beta testing only -- not for general
  1166. X *            distribution.
  1167. X *
  1168. X */
  1169. X
  1170. X/*
  1171. X * Print some helpful information.  (Called by helpVerb, in ccr-verb.t)
  1172. X */
  1173. Xhelp: function
  1174. X{
  1175. X    I(); "I know of places, actions, and things.  You can guide 
  1176. X    me using commands that are complete sentences. To move, try 
  1177. X    commands like \"forest,\" \"building,\" \"downstream,\" 
  1178. X    \"enter,\" \"east,\" \"west,\" \"north,\" \"south,\" \"up,\" 
  1179. X    \"down,\" \"enter building,\" \"climb pole,\" etc."; P();
  1180. X
  1181. X    I(); "I know about a few special objects, like a black rod 
  1182. X    hidden in the cave.  These objects can be manipulated using 
  1183. X    some of the action words that I know.  Usually you will need 
  1184. X    to give a verb followed by an object (along with descriptive 
  1185. X    adjectives when desired), but sometimes I can infer the 
  1186. X    object from the verb alone.  Some objects also imply verbs; 
  1187. X    in particular, \"inventory\" implies \"take inventory\", 
  1188. X    which causes me to give you a list of what you're carrying. 
  1189. X    The objects have side effects; for instance, the rod scares 
  1190. X    the bird."; P();
  1191. X
  1192. X    I(); "Many commands have abbreviations.  For example, you can 
  1193. X    type \"i\" in place of \"inventory,\" \"x object\" instead of 
  1194. X    \"examine object,\" etc."; P();
  1195. X
  1196. X    I(); "Usually people having trouble moving just need to try a 
  1197. X    few more words.  Usually people trying unsuccessfully to 
  1198. X    manipulate an object are attempting something beyond their 
  1199. X    (or my!) capabilities and should try a completely different 
  1200. X    tack."; P();
  1201. X
  1202. X    I(); "To speed the game you can sometimes move long distances 
  1203. X    with a single word.  For example, \"building\" usually gets 
  1204. X    you to the building from anywhere above ground except when 
  1205. X    lost in the forest. Also, note that cave passages turn a lot, 
  1206. X    and that leaving a room to the north does not guarantee 
  1207. X    entering the next from the south."; P();
  1208. X
  1209. X    I(); "If you want to end your adventure early, type \"quit\". 
  1210. X     To suspend your adventure such that you can continue later, 
  1211. X    type \"save,\" and to resume a saved game, type \"restore.\"    
  1212. X    To see how well you're doing, type \"score\".  To get full 
  1213. X    credit for a treasure, you must have left it safely in the 
  1214. X    building, though you get partial credit just for locating it. 
  1215. X     You lose points for getting killed, or for quitting, though 
  1216. X    the former costs you more. There are also points based on how 
  1217. X    much (if any) of the cave you've managed to explore; in 
  1218. X    particular, there is a large bonus just for getting in (to 
  1219. X    distinguish the beginners from the rest of the pack), and 
  1220. X    there are other ways to determine whether you've been through 
  1221. X    some of the more harrowing sections."; P();
  1222. X
  1223. X    I(); "If you think you've found all the treasures, just keep 
  1224. X    exploring for a while.  If nothing interesting happens, you 
  1225. X    haven't found them all yet. If something interesting *does* 
  1226. X    happen, it means you're getting a bonus and have an 
  1227. X    opportunity to garner many more points in the master's 
  1228. X    section."; P();
  1229. X
  1230. X    I(); "You can control the way I format my messages with the 
  1231. X    \"space\" and \"indent\" commands. These turn on and off 
  1232. X    blank spaces between paragraphs and indentation at the 
  1233. X    beginnings of paragraphs. Finally, you may specify \"brief\", 
  1234. X    which tells me never to repeat the full description of a 
  1235. X    place unless you explicitly ask me to.  (The \"verbose\" 
  1236. X    command turns this off.)"; P();
  1237. X
  1238. X    I(); "Good luck!";        
  1239. X}
  1240. END_OF_FILE
  1241. if test 4545 -ne `wc -c <'src/help.t'`; then
  1242.     echo shar: \"'src/help.t'\" unpacked with wrong size!
  1243. fi
  1244. # end of 'src/help.t'
  1245. fi
  1246. echo shar: End of archive 11 \(of 11\).
  1247. cp /dev/null ark11isdone
  1248. MISSING=""
  1249. for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
  1250.     if test ! -f ark${I}isdone ; then
  1251.     MISSING="${MISSING} ${I}"
  1252.     fi
  1253. done
  1254. if test "${MISSING}" = "" ; then
  1255.     echo You have unpacked all 11 archives.
  1256.     echo "Now run buildit.sh to make gam file"
  1257.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1258. else
  1259.     echo You still need to unpack the following archives:
  1260.     echo "        " ${MISSING}
  1261. fi
  1262. ##  End of shell archive.
  1263. exit 0
  1264.