home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume18 / dunnet2 / part01 < prev    next >
Encoding:
Internet Message Format  |  1993-07-11  |  55.7 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: v18i011:  dunnet2 - emacs-lisp text adventure, Ver 2, Part01/03
  5. Date: 10 Jul 1993 22:58:10 GMT
  6. Organization: Tektronix, Inc, Redmond, OR, USA
  7. Lines: 1575
  8. Approved: billr@saab.CNA.TEK.COM
  9. Message-ID: <21nhi2$q4g@ying.cna.tek.com>
  10. NNTP-Posting-Host: saab.cna.tek.com
  11. Xref: uunet comp.sources.games:1811
  12.  
  13. Submitted-by: ronnie@media.mit.edu
  14. Posting-number: Volume 18, Issue 11
  15. Archive-name: dunnet2/part01
  16. Supersedes: dunnet: Volume 14, Issue 28-29
  17. Environment: Emacs
  18.  
  19.  
  20.  
  21. #! /bin/sh
  22. # This is a shell archive.  Remove anything before this line, then unpack
  23. # it by saving it into a file and typing "sh file".  To overwrite existing
  24. # files, type "sh file -c".  You can also feed this as standard input via
  25. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  26. # will see the following message at the end:
  27. #        "End of archive 1 (of 3)."
  28. # Contents:  README MANIFEST dun-globals.el dun-main.el dun-save.el
  29. #   makefile
  30. # Wrapped by billr@saab on Sat Jul 10 15:54:30 1993
  31. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  32. if test -f 'README' -a "${1}" != "-c" ; then 
  33.   echo shar: Will not clobber existing file \"'README'\"
  34. else
  35. echo shar: Extracting \"'README'\" \(2469 characters\)
  36. sed "s/^X//" >'README' <<'END_OF_FILE'
  37. XThis is "dunnet", a text adventure game written in emacs-lisp.  I decided it
  38. Xwould be interesting to write an elisp program, so for fun I wrote this
  39. Xone.  Try to play it without looking at the code, for two reasons:
  40. X
  41. X1. It's more fun if you don't cheat.
  42. X2. Since I haven't written much lisp, I'm not confident of the quality
  43. X   of the code.
  44. X
  45. XYou'll notice some really different things about this dungeon.  Without
  46. Xgiving anything away, let's just say that like much lisp code seems to
  47. Xbe, this dungeon is sort of recursive in a way.  A minimal knowledge of
  48. XUNIX, DOS, and some internet experience is assumed.
  49. X
  50. XThanks to help from many people including (but not limited to)
  51. XNathan Glasser (nathan@brokaw.lcs.mit.edu)
  52. XH. B. Furuseth (h.b.furuseth@usit.uio.no)
  53. XChris Moore (more@src.bae.co.uk)
  54. XChris Metcalf (metcalf@catfish.lcs.mit.edu)
  55. XNorman Walsh (walsh%ibis@cs.umass.edu)
  56. X
  57. XI encourage comments, good and bad.  Please e-mail me what you
  58. Xthought of the game.
  59. X
  60. XINSTALLATION
  61. X------------
  62. X
  63. XModify the first line of dun-main.el to have a logfile that is writable
  64. Xby all.  You only need to do this if you want to log where everyone died
  65. Xor saved, or won.  You will also need to create this file as an empty file,
  66. Xif it doesn't already exist.
  67. X
  68. XYou can use the 'makefile' to compile everything and encrypt the appropriate
  69. Xportions of dunnet.  You may, of course, just run the code as-is.  In either
  70. Xcase, all of the files must be put in your load-path directory, or they
  71. Xmust be in your current directory when it is run.  If you do
  72. Xrun make, all of the compiled/encrypted files are put in ../bin.
  73. X
  74. X*IMPORTANT*
  75. X
  76. XThere are two ways to run the program:
  77. X
  78. X1. dunnet
  79. X2. dunnet.window
  80. X
  81. XThese files are Unix shellscripts, and one of them should be put in a
  82. Xnormal bin directory.  If you are on a non-unix machine, it should be
  83. Xsimple to set up similar script files.
  84. X
  85. XNOTE: There are two additional script files, dunnet.curdir, and 
  86. X      dunnet.window.curdir.  These can be used with Unix in order
  87. X      to run dunnet in the current directory.  You may need to create
  88. X      similar scripts for other plaforms.
  89. X
  90. XThis software assumes you have "cl.el" (necessary), 
  91. Xand "yow.el" (not critical) in the load-path directory.  These 
  92. Xcome standard with Gnu emacs. 
  93. X
  94. XSome hints and tips.
  95. X
  96. XRead the help carefully.
  97. XSave the game *very* often.
  98. XAn abbreviation for examine is 'x'.  EXAMINE EVERYTHING.
  99. XYou can use 'get all', but not 'drop all'.
  100. X
  101. XQuestions or comments to ronnie@media.mit.edu.
  102. X
  103. END_OF_FILE
  104. if test 2469 -ne `wc -c <'README'`; then
  105.     echo shar: \"'README'\" unpacked with wrong size!
  106. fi
  107. # end of 'README'
  108. fi
  109. if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  110.   echo shar: Will not clobber existing file \"'MANIFEST'\"
  111. else
  112. echo shar: Extracting \"'MANIFEST'\" \(672 characters\)
  113. sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
  114. X   File Name        Archive #    Description
  115. X-----------------------------------------------------------
  116. X CHANGES                    2    
  117. X COPYRIGHT                  3    
  118. X LCD-entry                  3    
  119. X MANIFEST                   1    This shipping list
  120. X README                     1    
  121. X dun-batch.el               2    
  122. X dun-commands.el            2    
  123. X dun-dos.el                 2    
  124. X dun-globals.el             1    
  125. X dun-main.el                1    
  126. X dun-save.el                1    
  127. X dun-unix.el                2    
  128. X dun-util.el                3    
  129. X dunnet                     3    
  130. X dunnet.curdir              3    
  131. X dunnet.window              3    
  132. X dunnet.window.curdir       3    
  133. X makefile                   1    
  134. END_OF_FILE
  135. if test 672 -ne `wc -c <'MANIFEST'`; then
  136.     echo shar: \"'MANIFEST'\" unpacked with wrong size!
  137. fi
  138. # end of 'MANIFEST'
  139. fi
  140. if test -f 'dun-globals.el' -a "${1}" != "-c" ; then 
  141.   echo shar: Will not clobber existing file \"'dun-globals.el'\"
  142. else
  143. echo shar: Extracting \"'dun-globals.el'\" \(42360 characters\)
  144. sed "s/^X//" >'dun-globals.el' <<'END_OF_FILE'
  145. X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  146. X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  147. X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  148. X;;;
  149. X;;;       Globals
  150. X;;;
  151. X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  152. X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  153. X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  154. X
  155. X;;;; IMPORTANT
  156. X;;;; All globals which can change must be saved from 'save-game.  Add
  157. X;;;; all new globals to bottom of file.
  158. X
  159. X(if nil
  160. X    (eval-and-compile (setq byte-compile-warnings nil)))
  161. X(setq visited '(27))
  162. X(setq current-room 1)
  163. X(setq exitf nil)
  164. X(setq badcd nil)
  165. X(defvar dungeon-mode-map nil)
  166. X(setq dungeon-mode-map (make-sparse-keymap))
  167. X(define-key dungeon-mode-map "\r" 'dungeon-parse)
  168. X(defvar dungeon-batch-map (make-keymap))
  169. X(if (string= (substring emacs-version 0 2) "18")
  170. X    (let (n)
  171. X      (setq n 32)
  172. X      (while (< 0 (setq n (- n 1)))
  173. X    (aset dungeon-batch-map n 'dungeon-nil)))
  174. X  (let (n)
  175. X    (setq n 32)
  176. X    (while (< 0 (setq n (- n 1)))
  177. X      (aset (car (cdr dungeon-batch-map)) n 'dungeon-nil))))
  178. X(define-key dungeon-batch-map "\r" 'exit-minibuffer)
  179. X(define-key dungeon-batch-map "\n" 'exit-minibuffer)
  180. X(setq computer nil)
  181. X(setq floppy nil)
  182. X(setq door1 'locked)
  183. X(setq key-level 0)
  184. X(setq hole nil)
  185. X(setq correct-answer nil)
  186. X(setq lastdir 0)
  187. X(setq numsaves 0)
  188. X(setq jar nil)
  189. X(setq numcmds 0)
  190. X(setq wizard nil)
  191. X(setq endgame-question nil)
  192. X(setq logged-in nil)
  193. X(setq dungeon-mode 'dungeon)
  194. X(setq unix-verbs '((ls . ls) (ftp . ftp) (echo . echo) (exit . uexit)
  195. X           (cd . dunnet-cd) (pwd . dunnet-pwd) (rlogin . rlogin)
  196. X           (uncompress . uncompress) (cat . cat) (zippy . zippy)))
  197. X
  198. X(setq dos-verbs '((dir . dos-dir) (type . dos-type) (exit . dos-exit)
  199. X          (command . dos-spawn) (b: . dos-invd) (c: . dos-invd)
  200. X          (a: . dos-nil)))
  201. X
  202. X
  203. X(setq batch-mode nil)
  204. X
  205. X(setq cdpath "/usr/toukmond")
  206. X(setq cdroom -10)
  207. X(setq uncompressed nil)
  208. X(setq ethernet t)
  209. X(setq restricted '(room-objects dungeon-map rooms room-silents combination))
  210. X(setq path "/usr/toukmond")
  211. X(setq ftptype 'ascii)
  212. X(setq endgame nil)
  213. X(setq gottago t)
  214. X(setq black nil)
  215. X
  216. X(setq rooms '(
  217. X          (
  218. X"You are in the treasure room.  A door leads out to the north."
  219. X               "Treasure room"
  220. X           )
  221. X          (
  222. X"You are at a dead end of a dirt road.  The road goes to the east.
  223. XIn the distance you can see that it will eventually fork off.  The
  224. Xtrees here are very tall royal palms, and they are spaced equidistant
  225. Xfrom each other."
  226. X           "Dead end"
  227. X           )
  228. X          (
  229. X"You are on the continuation of a dirt road.  There are more trees on
  230. Xboth sides of you.  The road continues to the east and west."
  231. X               "E/W Dirt road"
  232. X           )
  233. X          (
  234. X"You are at a fork of two passages, one to the northeast, and one to the
  235. Xsoutheast.  The ground here seems very soft. You can also go back west."
  236. X               "Fork"
  237. X           )
  238. X          (
  239. X"You are on a northeast/southwest road."
  240. X               "NE/SW road"
  241. X           )
  242. X          (
  243. X"You are at the end of the road.  There is a building in front of you
  244. Xto the northeast, and the road leads back to the southwest."
  245. X               "Building front"
  246. X           )
  247. X          (
  248. X"You are on a southeast/northwest road."
  249. X               "SE/NW road"
  250. X           )
  251. X          (
  252. X"You are standing at the end of a road.  A passage leads back to the
  253. Xnorthwest."
  254. X               "Bear hangout"
  255. X           )
  256. X          (
  257. X"You are in the hallway of an old building.  There are rooms to the east
  258. Xand west, and doors leading out to the north and south."
  259. X               "Old Building hallway"
  260. X           )
  261. X          (
  262. X"You are in a mailroom.  There are many bins where the mail is usually
  263. Xkept.  The exit is to the west."
  264. X               "Mailroom"
  265. X           )
  266. X          (
  267. X"You are in a computer room.  It seems like most of the equipment has
  268. Xbeen removed.  There is a VAX 11/780 in front of you, however, with
  269. Xone of the cabinets wide open.  A sign on the front of the machine
  270. Xsays: This VAX is named 'pokey'.  To type on the console, use the
  271. X'type' command.  The exit is to the east."
  272. X               "Computer room"
  273. X           )
  274. X          (
  275. X"You are in a meadow in the back of an old building.  A small path leads
  276. Xto the west, and a door leads to the south."
  277. X               "Meadow"
  278. X           )
  279. X          (
  280. X"You are in a round, stone room with a door to the east.  There
  281. Xis a sign on the wall that reads: 'receiving room'."
  282. X               "Receiving room"
  283. X           )
  284. X          (
  285. X"You are at the south end of a hallway that leads to the north.  There
  286. Xare rooms to the east and west."
  287. X               "Northbound Hallway"
  288. X           )
  289. X          (
  290. X"You are in a sauna.  There is nothing in the room except for a dial
  291. Xon the wall.  A door leads out to west."
  292. X               "Sauna"
  293. X               )
  294. X          (
  295. X"You are at the end of a north/south hallway.  You can go back to the south,
  296. Xor off to a room to the east."
  297. X               "End of N/S Hallway"
  298. X           )
  299. X          (
  300. X"You are in an old weight room.  All of the equipment is either destroyed
  301. Xor completely broken.  There is a door out to the west, and there is a ladder
  302. Xleading down a hole in the floor."
  303. X               "Weight room"                 ;16
  304. X           )
  305. X          (
  306. X"You are in a maze of twisty little passages, all alike.
  307. XThere is a button on the ground here."
  308. X               "Maze button room"
  309. X           )
  310. X          (
  311. X"You are in a maze of little twisty passages, all alike."
  312. X               "Maze"
  313. X           )
  314. X          (
  315. X"You are in a maze of thirsty little passages, all alike."
  316. X               "Maze"    ;19
  317. X           )
  318. X          (
  319. X"You are in a maze of twenty little passages, all alike."
  320. X               "Maze"
  321. X           )
  322. X          (
  323. X"You are in a daze of twisty little passages, all alike."
  324. X               "Maze"   ;21
  325. X           )
  326. X          (
  327. X"You are in a maze of twisty little cabbages, all alike."
  328. X               "Maze"   ;22
  329. X           )
  330. X          (
  331. X"You are in a reception area for a health and fitness center.  The place
  332. Xappears to have been recently ransacked, and nothing is left.  There is
  333. Xa door out to the south, and a crawlspace to the southeast."
  334. X               "Reception area"
  335. X           )
  336. X          (
  337. X"You are outside a large building to the north which used to be a health
  338. Xand fitness center.  A road leads to the south."
  339. X               "Health Club front"
  340. X           )
  341. X          (
  342. X"You are at the north side of a lake.  On the other side you can see
  343. Xa road which leads to a cave.  The water appears very deep."
  344. X               "Lakefront North"
  345. X           )
  346. X          (
  347. X"You are at the south side of a lake.  A road goes to the south."
  348. X               "Lakefront South"
  349. X           )
  350. X          (
  351. X"You are in a well-hidden area off to the side of a road.  Back to the
  352. Xnortheast through the brush you can see the bear hangout."
  353. X               "Hidden area"
  354. X           )
  355. X          (
  356. X"The entrance to a cave is to the south.  To the north, a road leads
  357. Xtowards a deep lake.  On the ground nearby there is a chute, with a sign
  358. Xthat says 'put treasures here for points'."
  359. X               "Cave Entrance"                      ;28
  360. X           )
  361. X          (
  362. X"You are in a misty, humid room carved into a mountain.
  363. XTo the north is the remains of a rockslide.  To the east, a small
  364. Xpassage leads away into the darkness."              ;29
  365. X               "Misty Room"
  366. X           )
  367. X          (
  368. X"You are in an east/west passageway.  The walls here are made of
  369. Xmulticolored rock and are quite beautiful."
  370. X               "Cave E/W passage"                   ;30
  371. X           )
  372. X          (
  373. X"You are at the junction of two passages. One goes north/south, and
  374. Xthe other goes west."
  375. X               "N/S/W Junction"                     ;31
  376. X           )
  377. X          (
  378. X"You are at the north end of a north/south passageway.  There are stairs
  379. Xleading down from here.  There is also a door leading west."
  380. X               "North end of cave passage"         ;32
  381. X           )
  382. X          (
  383. X"You are at the south end of a north/south passageway.  There is a hole
  384. Xin the floor here, into which you could probably fit."
  385. X               "South end of cave passage"         ;33
  386. X           )
  387. X          (
  388. X"You are in what appears to be a worker's bedroom.  There is a queen-
  389. Xsized bed in the middle of the room, and a painting hanging on the
  390. Xwall.  A door leads to another room to the south, and stairways
  391. Xlead up and down."
  392. X               "Bedroom"                          ;34
  393. X           )
  394. X          (
  395. X"You are in a bathroom built for workers in the cave.  There is a
  396. Xurinal hanging on the wall, and some exposed pipes on the opposite
  397. Xwall where a sink used to be.  To the north is a bedroom."
  398. X               "Bathroom"        ;35
  399. X           )
  400. X          (
  401. X"This is a marker for the urinal.  User will not see this, but it
  402. Xis a room that can contain objects."
  403. X               "Urinal"          ;36
  404. X           )
  405. X          (
  406. X"You are at the northeast end of a northeast/southwest passageway.
  407. XStairs lead up out of sight."
  408. X               "Ne end of ne/sw cave passage"       ;37
  409. X           )
  410. X          (
  411. X"You are at the junction of northeast/southwest and east/west passages."
  412. X               "Ne/sw-e/w junction"                      ;38
  413. X           )
  414. X          (
  415. X"You are at the southwest end of a northeast/southwest passageway."
  416. X               "Sw end of ne/sw cave passage"        ;39
  417. X           )
  418. X          (
  419. X"You are at the east end of an e/w passage.  There are stairs leading up
  420. Xto a room above."
  421. X               "East end of e/w cave passage"    ;40
  422. X           )
  423. X          (
  424. X"You are at the west end of an e/w passage.  There is a hole on the ground
  425. Xwhich leads down out of sight."
  426. X               "West end of e/w cave passage"    ;41
  427. X           )
  428. X          (
  429. X"You are in a room which is bare, except for a horseshoe shaped boulder
  430. Xin the center.  Stairs lead down from here."     ;42
  431. X               "Horseshoe boulder room"
  432. X           )
  433. X          (
  434. X"You are in a room which is completely empty.  Doors lead out to the north
  435. Xand east."
  436. X               "Empty room"                      ;43
  437. X           )
  438. X          (
  439. X"You are in an empty room.  Interestingly enough, the stones in this
  440. Xroom are painted blue.  Doors lead out to the east and south."  ;44
  441. X               "Blue room"
  442. X           )
  443. X          (
  444. X"You are in an empty room.  Interestingly enough, the stones in this
  445. Xroom are painted yellow.  Doors lead out to the south and west."    ;45
  446. X               "Yellow room"
  447. X           )
  448. X          (
  449. X"You are in an empty room.  Interestingly enough, the stones in this room
  450. Xare painted red.  Doors lead out to the west and north."
  451. X               "Red room"                                 ;46
  452. X           )
  453. X          (
  454. X"You are in the middle of a long north/south hallway."     ;47
  455. X               "Long n/s hallway"
  456. X           )
  457. X          (
  458. X"You are 3/4 of the way towards the north end of a long north/south hallway."
  459. X               "3/4 north"                                ;48
  460. X           )
  461. X          (
  462. X"You are at the north end of a long north/south hallway.  There are stairs
  463. Xleading upwards."
  464. X               "North end of long hallway"                 ;49
  465. X           )
  466. X          (
  467. X"You are 3/4 of the way towards the south end of a long north/south hallway."
  468. X               "3/4 south"                                 ;50
  469. X           )
  470. X          (
  471. X"You are at the south end of a long north/south hallway.  There is a hole
  472. Xto the south."
  473. X               "South end of long hallway"                 ;51
  474. X           )
  475. X          (
  476. X"You are at a landing in a stairwell which continues up and down."
  477. X               "Stair landing"                             ;52
  478. X           )
  479. X          (
  480. X"You are at the continuation of an up/down staircase."
  481. X               "Up/down staircase"                         ;53
  482. X           )
  483. X          (
  484. X"You are at the top of a staircase leading down.  A crawlway leads off
  485. Xto the northeast."
  486. X               "Top of staircase."                        ;54
  487. X           )
  488. X          (
  489. X"You are in a crawlway that leads northeast or southwest."
  490. X               "Ne crawlway"                              ;55
  491. X           )
  492. X          (
  493. X"You are in a small crawlspace.  There is a hole in the ground here, and
  494. Xa small passage back to the southwest."
  495. X               "Small crawlspace"                         ;56
  496. X           )
  497. X          (
  498. X"You are in the Gamma Computing Center.  An IBM 3090/600s is whirring
  499. Xaway in here.  There is an ethernet cable coming out of one of the units,
  500. Xand going through the ceiling.  There is no console here on which you
  501. Xcould type."
  502. X               "Gamma computing center"                   ;57
  503. X           )
  504. X          (
  505. X"You are near the remains of a post office.  There is a mail drop on the
  506. Xface of the building, but you cannot see where it leads.  A path leads
  507. Xback to the east, and a road leads to the north."
  508. X               "Post office"                             ;58
  509. X           )
  510. X          (
  511. X"You are at the intersection of Main Street and Maple Ave.  Main street
  512. Xruns north and south, and Maple Ave runs east off into the distance.
  513. XIf you look north and east you can see many intersections, but all of
  514. Xthe buildings that used to stand here are gone.  Nothing remains except
  515. Xstreet signs.
  516. XThere is a road to the northwest leading to a gate that guards a building."
  517. X               "Main-Maple intersection"                       ;59
  518. X           )
  519. X          (
  520. X"You are at the intersection of Main Street and the west end of Oaktree Ave."
  521. X               "Main-Oaktree intersection"   ;60
  522. X           )
  523. X          (
  524. X"You are at the intersection of Main Street and the west end of Vermont Ave."
  525. X               "Main-Vermont intersection"  ;61
  526. X           )
  527. X          (
  528. X"You are at the north end of Main Street at the west end of Sycamore Ave." ;62
  529. X               "Main-Sycamore intersection"
  530. X           )
  531. X          (
  532. X"You are at the south end of First Street at Maple Ave." ;63
  533. X               "First-Maple intersection"
  534. X           )
  535. X          (
  536. X"You are at the intersection of First Street and Oaktree Ave."  ;64
  537. X               "First-Oaktree intersection"
  538. X           )
  539. X          (
  540. X"You are at the intersection of First Street and Vermont Ave."  ;65
  541. X               "First-Vermont intersection"
  542. X           )
  543. X          (
  544. X"You are at the north end of First Street at Sycamore Ave."  ;66
  545. X               "First-Sycamore intersection"
  546. X           )
  547. X          (
  548. X"You are at the south end of Second Street at Maple Ave."  ;67
  549. X               "Second-Maple intersection"
  550. X           )
  551. X          (
  552. X"You are at the intersection of Second Street and Oaktree Ave."  ;68
  553. X               "Second-Oaktree intersection"
  554. X           )
  555. X          (
  556. X"You are at the intersection of Second Street and Vermont Ave."  ;69
  557. X               "Second-Vermont intersection"
  558. X           )
  559. X          (
  560. X"You are at the north end of Second Street at Sycamore Ave."  ;70
  561. X               "Second-Sycamore intersection"
  562. X           )
  563. X          (
  564. X"You are at the south end of Third Street at Maple Ave."  ;71
  565. X               "Third-Maple intersection"
  566. X           )
  567. X          (
  568. X"You are at the intersection of Third Street and Oaktree Ave."  ;72
  569. X               "Third-Oaktree intersection"
  570. X           )
  571. X          (
  572. X"You are at the intersection of Third Street and Vermont Ave."  ;73
  573. X               "Third-Vermont intersection"
  574. X           )
  575. X          (
  576. X"You are at the north end of Third Street at Sycamore Ave."  ;74
  577. X               "Third-Sycamore intersection"
  578. X           )
  579. X          (
  580. X"You are at the south end of Fourth Street at Maple Ave."  ;75
  581. X               "Fourth-Maple intersection"
  582. X           )
  583. X          (
  584. X"You are at the intersection of Fourth Street and Oaktree Ave."  ;76
  585. X               "Fourth-Oaktree intersection"
  586. X           )
  587. X          (
  588. X"You are at the intersection of Fourth Street and Vermont Ave."  ;77
  589. X               "Fourth-Vermont intersection"
  590. X           )
  591. X          (
  592. X"You are at the north end of Fourth Street at Sycamore Ave."  ;78
  593. X               "Fourth-Sycamore intersection"
  594. X           )
  595. X          (
  596. X"You are at the south end of Fifth Street at the east end of Maple Ave."  ;79
  597. X               "Fifth-Maple intersection"
  598. X           )
  599. X          (
  600. X"You are at the intersection of Fifth Street and the east end of Oaktree Ave.
  601. XThere is a cliff off to the east."
  602. X               "Fifth-Oaktree intersection"  ;80
  603. X           )
  604. X          (
  605. X"You are at the intersection of Fifth Street and the east end of Vermont Ave."
  606. X               "Fifth-Vermont intersection"  ;81
  607. X           )
  608. X          (
  609. X"You are at the north end of Fifth Street and the east end of Sycamore Ave."
  610. X               "Fifth-Sycamore intersection"  ;82
  611. X           )
  612. X          (
  613. X"You are in front of the Museum of Natural History.  A door leads into
  614. Xthe building to the north, and a road leads to the southeast."
  615. X               "Museum entrance"                  ;83
  616. X           )
  617. X          (
  618. X"You are in the main lobby for the Museum of Natural History.  In the center
  619. Xof the room is the huge skeleton of a dinosaur.  Doors lead out to the
  620. Xsouth and east." 
  621. X               "Museum lobby"                     ;84
  622. X           )
  623. X          (
  624. X"You are in the geological display.  All of the objects that used to
  625. Xbe on display are missing.  There are rooms to the east, west, and 
  626. Xnorth."
  627. X               "Geological display"               ;85
  628. X           )
  629. X          (
  630. X"You are in the marine life area.  The room is filled with fish tanks,
  631. Xwhich are filled with dead fish that have apparently died due to
  632. Xstarvation.  Doors lead out to the south and east."
  633. X               "Marine life area"                   ;86
  634. X           )
  635. X          (
  636. X"You are in some sort of maintenance room for the museum.  There is a
  637. Xswitch on the wall labeled 'BL'.  There are doors to the west and north."
  638. X               "Maintenance room"                   ;87
  639. X           )
  640. X          (
  641. X"You are in a classroom where school children were taught about natural
  642. Xhistory.  On the blackboard is written, 'No children allowed downstairs.'
  643. XThere is a door to the east with an 'exit' sign on it.  There is another
  644. Xdoor to the west."
  645. X               "Classroom"                          ;88
  646. X           )
  647. X          (
  648. X"You are at the Vermont St. subway station.  A train is sitting here waiting."
  649. X               "Vermont station"                    ;89
  650. X           )
  651. X          (
  652. X"You are at the Museum subway stop.  A passage leads off to the north."
  653. X               "Museum station"                     ;90
  654. X           )
  655. X          (
  656. X"You are in a north/south tunnel."
  657. X               "N/S tunnel"                          ;91
  658. X           )
  659. X          (
  660. X"You are at the north end of a north/south tunnel.  Stairs lead up and
  661. Xdown from here.  There is a garbage disposal here."
  662. X               "North end of n/s tunnel"             ;92
  663. X               )
  664. X          (
  665. X"You are at the top of some stairs near the subway station.  There is
  666. Xa door to the west."
  667. X               "Top of subway stairs"           ;93
  668. X           )
  669. X          (
  670. X"You are at the bottom of some stairs near the subway station.  There is
  671. Xa room to the northeast."
  672. X               "Bottom of subway stairs"       ;94
  673. X           )
  674. X          (
  675. X"You are in another computer room.  There is a computer in here larger
  676. Xthan you have ever seen.  It has no manufacturers name on it, but it
  677. Xdoes have a sign that says: This machine's name is 'endgame'.  The
  678. Xexit is to the southwest.  There is no console here on which you could
  679. Xtype."
  680. X               "Endgame computer room"         ;95
  681. X           )
  682. X          (
  683. X"You are in a north/south hallway."
  684. X               "Endgame n/s hallway"           ;96
  685. X           )
  686. X          (
  687. X"You have reached a question room.  You must answer a question correctly in
  688. Xorder to get by.  Use the 'answer' command to answer the question."
  689. X               "Question room 1"              ;97
  690. X           )
  691. X          (
  692. X"You are in a north/south hallway."
  693. X               "Endgame n/s hallway"           ;98
  694. X           )
  695. X          (
  696. X"You are in a second question room."
  697. X               "Question room 2"               ;99
  698. X           )
  699. X          (
  700. X"You are in a north/south hallway."
  701. X               "Endgame n/s hallway"           ;100
  702. X           )
  703. X          (
  704. X"You are in a third question room."
  705. X               "Question room 3"               ;101
  706. X           )
  707. X          (
  708. X"You are in the endgame treasure room.  A door leads out to the north, and
  709. Xa hallway leads to the south."
  710. X               "Endgame treasure room"         ;102
  711. X           )
  712. X          (
  713. X"You are in the winner's room.  A door leads back to the south."
  714. X               "Winner's room"                 ;103
  715. X           )
  716. X          (
  717. X"You have reached a dead end.  There is a PC on the floor here.  Above
  718. Xit is a sign that reads:
  719. X          Type the 'reset' command to type on the PC. 
  720. XA hole leads north."
  721. X               "PC area"                       ;104
  722. X               )            
  723. X))
  724. X
  725. X(setq light-rooms '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 24 25 26 27 28 58 59
  726. X             60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
  727. X             77 78 79 80 81 82 83))
  728. X
  729. X(setq verblist '((die . die) (ne . ne) (north . n) (south . s) (east . e)
  730. X         (west . w) (u . up) (d . down) (i . inven)
  731. X         (inventory . inven) (look . examine) (n . n) (s . s) (e . e)
  732. X         (w . w) (se . se) (nw . nw) (sw . sw) (up . up) 
  733. X         (down . down) (in . in) (out . out) (go . go) (drop . drop)
  734. X         (southeast . se) (southwest . sw) (northeast . ne)
  735. X         (northwest . nw) (save . save-game) (restore . restore)
  736. X         (long . long) (dig . dig) (shake . shake) (wave . shake)
  737. X         (examine . examine) (describe . examine) (climb . climb)
  738. X         (eat . eat) (put . dput) (type . type) (insert . dput)
  739. X         (score . score) (help . help) (quit . quit) (read . examine)
  740. X         (verbose . long) (urinate . piss) (piss . piss)
  741. X         (flush . flush) (sleep . dsleep) (lie . dsleep) (x . examine)
  742. X         (break . break) (drive . drive) (board . in) (enter . in)
  743. X         (turn . turn) (press . press) (push . press) (swim . swim)
  744. X         (on . in) (off . out) (chop . break) (switch . press)
  745. X         (cut . break) (exit . out) (leave . out) (reset . dun-power)
  746. X         (flick . press) (superb . superb) (answer . answer)
  747. X         (throw . drop) (l . examine) (take . take) (get . take)
  748. X         (feed . dun-feed)))
  749. X
  750. X(setq inbus nil)
  751. X(setq nomail nil)
  752. X(setq ignore '(the to at))
  753. X(setq mode 'moby)
  754. X(setq sauna-level 0)
  755. X
  756. X(defconst north 0)
  757. X(defconst south 1)
  758. X(defconst east 2)
  759. X(defconst west 3)
  760. X(defconst northeast 4)
  761. X(defconst southeast 5)
  762. X(defconst northwest 6)
  763. X(defconst southwest 7)
  764. X(defconst up 8)
  765. X(defconst down 9)
  766. X(defconst in 10)
  767. X(defconst out 11)
  768. X
  769. X(setq dungeon-map '(
  770. X;              no  so  ea  we  ne  se  nw  sw  up  do  in  ot
  771. X            ( 96  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;0
  772. X            ( -1  -1   2  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;1
  773. X            ( -1  -1   3   1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;2
  774. X            ( -1  -1  -1   2   4   6  -1  -1  -1  -1  -1  -1 ) ;3
  775. X            ( -1  -1  -1  -1   5  -1  -1   3  -1  -1  -1  -1 ) ;4
  776. X            ( -1  -1  -1  -1  255 -1  -1   4  -1  -1  255 -1 ) ;5
  777. X            ( -1  -1  -1  -1  -1   7   3  -1  -1  -1  -1  -1 ) ;6
  778. X            ( -1  -1  -1  -1  -1  255  6  27  -1  -1  -1  -1 ) ;7
  779. X            ( 255  5   9  10  -1  -1  -1   5  -1  -1  -1   5 ) ;8
  780. X            ( -1  -1  -1   8  -1  -1  -1  -1  -1  -1  -1  -1 ) ;9
  781. X            ( -1  -1   8  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;10
  782. X            ( -1   8  -1  58  -1  -1  -1  -1  -1  -1  -1  -1 ) ;11
  783. X            ( -1  -1  13  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;12
  784. X            ( 15  -1  14  12  -1  -1  -1  -1  -1  -1  -1  -1 ) ;13
  785. X            ( -1  -1  -1  13  -1  -1  -1  -1  -1  -1  -1  -1 ) ;14
  786. X            ( -1  13  16  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;15
  787. X            ( -1  -1  -1  15  -1  -1  -1  -1  -1  17  16  -1 ) ;16
  788. X            ( -1  -1  17  17  17  17 255  17 255  17  -1  -1 ) ;17
  789. X            ( 18  18  18  18  18  -1  18  18  19  18  -1  -1 ) ;18
  790. X            ( -1  18  18  19  19  20  19  19  -1  18  -1  -1 ) ;19
  791. X            ( -1  -1  -1  18  -1  -1  -1  -1  -1  21  -1  -1 ) ;20
  792. X            ( -1  -1  -1  -1  -1  20  22  -1  -1  -1  -1  -1 ) ;21
  793. X            ( 18  18  18  18  16  18  23  18  18  18  18  18 ) ;22
  794. X            ( -1 255  -1  -1  -1  19  -1  -1  -1  -1  -1  -1 ) ;23
  795. X            ( 23  25  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;24
  796. X            ( 24 255  -1  -1  -1  -1  -1  -1  -1  -1 255  -1 ) ;25
  797. X            (255  28  -1  -1  -1  -1  -1  -1  -1  -1 255  -1 ) ;26
  798. X            ( -1  -1  -1  -1   7  -1  -1  -1  -1  -1  -1  -1 ) ;27
  799. X            ( 26 255  -1  -1  -1  -1  -1  -1  -1  -1  255 -1 ) ;28
  800. X            ( -1  -1  30  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;29
  801. X            ( -1  -1  31  29  -1  -1  -1  -1  -1  -1  -1  -1 ) ;30
  802. X            ( 32  33  -1  30  -1  -1  -1  -1  -1  -1  -1  -1 ) ;31
  803. X            ( -1  31  -1  255 -1  -1  -1  -1  -1  34  -1  -1 ) ;32
  804. X            ( 31  -1  -1  -1  -1  -1  -1  -1  -1  35  -1  -1 ) ;33
  805. X            ( -1  35  -1  -1  -1  -1  -1  -1  32  37  -1  -1 ) ;34
  806. X            ( 34  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;35
  807. X            ( -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;36
  808. X            ( -1  -1  -1  -1  -1  -1  -1  38  34  -1  -1  -1 ) ;37
  809. X            ( -1  -1  40  41  37  -1  -1  39  -1  -1  -1  -1 ) ;38
  810. X            ( -1  -1  -1  -1  38  -1  -1  -1  -1  -1  -1  -1 ) ;39
  811. X            ( -1  -1  -1  38  -1  -1  -1  -1  42  -1  -1  -1 ) ;40
  812. X            ( -1  -1  38  -1  -1  -1  -1  -1  -1  43  -1  -1 ) ;41
  813. X            ( -1  -1  -1  -1  -1  -1  -1  -1  -1  40  -1  -1 ) ;42
  814. X            ( 44  -1  46  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;43
  815. X            ( -1  43  45  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;44
  816. X            ( -1  46  -1  44  -1  -1  -1  -1  -1  -1  -1  -1 ) ;45
  817. X            ( 45  -1  -1  43  -1  -1  -1  -1  -1  255 -1  -1 ) ;46
  818. X            ( 48  50  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;47
  819. X            ( 49  47  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;48
  820. X            ( -1  48  -1  -1  -1  -1  -1  -1  52  -1  -1  -1 ) ;49
  821. X            ( 47  51  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;50
  822. X            ( 50  104 -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;51
  823. X            ( -1  -1  -1  -1  -1  -1  -1  -1  53  49  -1  -1 ) ;52
  824. X            ( -1  -1  -1  -1  -1  -1  -1  -1  54  52  -1  -1 ) ;53
  825. X            ( -1  -1  -1  -1  55  -1  -1  -1  -1  53  -1  -1 ) ;54
  826. X            ( -1  -1  -1  -1  56  -1  -1  54  -1  -1  -1  54 ) ;55
  827. X            ( -1  -1  -1  -1  -1  -1  -1  55  -1  31  -1  -1 ) ;56
  828. X            ( -1  -1  32  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;57
  829. X            ( 59  -1  11  -1  -1  -1  -1  -1  -1  -1  255 255) ;58
  830. X            ( 60  58  63  -1  -1  -1  255 -1  -1  -1  255 255) ;59
  831. X            ( 61  59  64  -1  -1  -1  -1  -1  -1  -1  255 255) ;60
  832. X            ( 62  60  65  -1  -1  -1  -1  -1  -1  -1  255 255) ;61
  833. X            ( -1  61  66  -1  -1  -1  -1  -1  -1  -1  255 255) ;62
  834. X            ( 64  -1  67  59  -1  -1  -1  -1  -1  -1  255 255) ;63
  835. X            ( 65  63  68  60  -1  -1  -1  -1  -1  -1  255 255) ;64
  836. X            ( 66  64  69  61  -1  -1  -1  -1  -1  -1  255 255) ;65
  837. X            ( -1  65  70  62  -1  -1  -1  -1  -1  -1  255 255) ;66
  838. X            ( 68  -1  71  63  -1  -1  -1  -1  -1  -1  255 255) ;67
  839. X            ( 69  67  72  64  -1  -1  -1  -1  -1  -1  255 255) ;68
  840. X            ( 70  68  73  65  -1  -1  -1  -1  -1  -1  255 255) ;69
  841. X            ( -1  69  74  66  -1  -1  -1  -1  -1  -1  255 255) ;70
  842. X            ( 72  -1  75  67  -1  -1  -1  -1  -1  -1  255 255) ;71
  843. X            ( 73  71  76  68  -1  -1  -1  -1  -1  -1  255 255) ;72
  844. X            ( 74  72  77  69  -1  -1  -1  -1  -1  -1  255 255) ;73
  845. X            ( -1  73  78  70  -1  -1  -1  -1  -1  -1  255 255) ;74
  846. X            ( 76  -1  79  71  -1  -1  -1  -1  -1  -1  255 255) ;75
  847. X            ( 77  75  80  72  -1  -1  -1  -1  -1  -1  255 255) ;76
  848. X            ( 78  76  81  73  -1  -1  -1  -1  -1  -1  255 255) ;77
  849. X            ( -1  77  82  74  -1  -1  -1  -1  -1  -1  255 255) ;78
  850. X            ( 80  -1  -1  75  -1  -1  -1  -1  -1  -1  255 255) ;79
  851. X            ( 81  79  255 76  -1  -1  -1  -1  -1  -1  255 255) ;80
  852. X            ( 82  80  -1  77  -1  -1  -1  -1  -1  -1  255 255) ;81
  853. X            ( -1  81  -1  78  -1  -1  -1  -1  -1  -1  255 255) ;82
  854. X            ( 84  -1  -1  -1  -1  59  -1  -1  -1  -1  255 255) ;83
  855. X            ( -1  83  85  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;84
  856. X            ( 86  -1  87  84  -1  -1  -1  -1  -1  -1  -1  -1 ) ;85
  857. X            ( -1  85  88  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;86
  858. X            ( 88  -1  -1  85  -1  -1  -1  -1  -1  -1  -1  -1 ) ;87
  859. X            ( -1  87 255  86  -1  -1  -1  -1  -1  -1  -1  -1 ) ;88
  860. X            ( -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 255  -1 ) ;89
  861. X            ( 91  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;90
  862. X            ( 92  90  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;91
  863. X            ( -1  91  -1  -1  -1  -1  -1  -1  93  94  -1  -1 ) ;92
  864. X            ( -1  -1  -1  88  -1  -1  -1  -1  -1  92  -1  -1 ) ;93
  865. X            ( -1  -1  -1  -1  95  -1  -1  -1  92  -1  -1  -1 ) ;94
  866. X            ( -1  -1  -1  -1  -1  -1  -1  94  -1  -1  -1  -1 ) ;95
  867. X            ( 97   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;96
  868. X            ( -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;97
  869. X            ( 99  97  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;98
  870. X            ( -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;99
  871. X            ( 101 99  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;100
  872. X            ( -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;101
  873. X            ( 103 101 -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;102
  874. X            ( -1  102 -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;103
  875. X            ( 51  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 ) ;104
  876. X            )
  877. X;              no  so  ea  we  ne  se  nw  sw  up  do  in  ot
  878. X)
  879. X
  880. X
  881. X;;; How the user references *all* objects, permanent and regular.
  882. X(setq objnames '(
  883. X         (shovel . 0) 
  884. X         (lamp . 1)
  885. X         (cpu . 2) (board . 2) (card . 2)
  886. X         (food . 3) 
  887. X         (key . 4) 
  888. X         (paper . 5)
  889. X         (rms . 6) (statue . 6) (statuette . 6)  (stallman . 6)
  890. X         (diamond . 7)
  891. X         (weight . 8)
  892. X         (life . 9) (preserver . 9)
  893. X         (bracelet . 10) (emerald . 10) 
  894. X         (gold . 11)
  895. X         (platinum . 12)
  896. X         (towel . 13) (beach . 13)
  897. X         (axe . 14)
  898. X         (silver . 15)
  899. X         (license . 16)
  900. X         (coins . 17)
  901. X         (egg . 18)
  902. X         (jar . 19)
  903. X         (bone . 20)
  904. X         (acid . 21) (nitric . 21)
  905. X         (glycerine . 22)
  906. X         (ruby . 23)
  907. X         (amethyst . 24) 
  908. X         (mona . 25)
  909. X         (bill . 26) 
  910. X         (floppy . 27) (disk . 27)
  911. X         
  912. X         (boulder . -1)
  913. X         (tree . -2) (trees . -2) 
  914. X         (bear . -3)
  915. X         (bin . -4) (bins . -4)
  916. X         (cabinet . -5) (computer . -5) (vax . -5) (ibm . -5) 
  917. X         (protoplasm . -6)
  918. X         (dial . -7) 
  919. X         (button . -8) 
  920. X         (chute . -9) 
  921. X         (painting . -10)
  922. X         (bed . -11)
  923. X         (urinal . -12)
  924. X         (URINE . -13)
  925. X         (pipes . -14) (pipe . -14) 
  926. X         (box . -15) (slit . -15) 
  927. X         (cable . -16) (ethernet . -16) 
  928. X         (mail . -17) (drop . -17)
  929. X         (bus . -18)
  930. X         (gate . -19)
  931. X         (cliff . -20) 
  932. X         (skeleton . -21) (dinosaur . -21)
  933. X         (fish . -22)
  934. X         (tanks . -23)
  935. X         (switch . -24)
  936. X         (blackboard . -25)
  937. X         (disposal . -26) (garbage . -26)
  938. X         (ladder . -27)
  939. X         (subway . -28) (train . -28) 
  940. X         (pc . -29) (drive . -29)
  941. X))
  942. X
  943. X(dolist (x objnames)
  944. X  (let (name)
  945. X    (setq name (concat "obj-" (prin1-to-string (car x))))
  946. X    (eval (list 'defconst (intern name) (cdr x)))))
  947. X
  948. X(defconst obj-special 255)
  949. X
  950. X;;; The initial setup of what objects are in each room.
  951. X;;; Regular objects have whole numbers lower than 255.
  952. X;;; Objects that cannot be taken but might move and are
  953. X;;; described during room description are negative.
  954. X;;; Stuff that is described and might change are 255, and are
  955. X;;; handled specially by 'describe-room. 
  956. X
  957. X(setq room-objects (list nil 
  958. X
  959. X        (list obj-shovel)                     ;; treasure-room
  960. X        (list obj-boulder)                    ;; dead-end
  961. X        nil nil nil
  962. X        (list obj-food)                       ;; se-nw-road
  963. X        (list obj-bear)                       ;; bear-hangout
  964. X        nil nil
  965. X        (list obj-special)                    ;; computer-room
  966. X        (list obj-lamp obj-license obj-silver);; meadow
  967. X        nil nil
  968. X        (list obj-special)                    ;; sauna
  969. X        nil 
  970. X        (list obj-weight obj-life)            ;; weight-room
  971. X        nil nil
  972. X        (list obj-rms obj-floppy)             ;; thirsty-maze
  973. X        nil nil nil nil nil nil nil 
  974. X        (list obj-emerald)                    ;; hidden-area
  975. X        nil
  976. X        (list obj-gold)                       ;; misty-room
  977. X        nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
  978. X        (list obj-towel obj-special)          ;; red-room
  979. X        nil nil nil nil nil
  980. X        (list obj-box)                        ;; stair-landing
  981. X        nil nil nil
  982. X        (list obj-axe)                        ;; smal-crawlspace
  983. X        nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
  984. X        nil nil nil nil nil
  985. X        (list obj-special)                    ;; fourth-vermont-intersection
  986. X        nil nil
  987. X        (list obj-coins)                      ;; fifth-oaktree-intersection
  988. X        nil
  989. X        (list obj-bus)                        ;; fifth-sycamore-intersection
  990. X        nil
  991. X        (list obj-bone)                       ;; museum-lobby
  992. X        nil
  993. X        (list obj-jar obj-special obj-ruby)   ;; marine-life-area
  994. X        (list obj-nitric)                     ;; maintenance-room
  995. X        (list obj-glycerine)                  ;; classroom
  996. X        nil nil nil nil nil
  997. X        (list obj-amethyst)                   ;; bottom-of-subway-stairs
  998. X        nil nil
  999. X        (list obj-special)                    ;; question-room-1
  1000. X        nil
  1001. X        (list obj-special)                    ;; question-room-2
  1002. X        nil
  1003. X        (list obj-special)                    ;; question-room-three
  1004. X        nil
  1005. X        (list obj-mona)                       ;; winner's-room
  1006. Xnil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
  1007. Xnil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
  1008. Xnil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
  1009. Xnil))
  1010. X
  1011. X;;; These are objects in a room that are only described in the
  1012. X;;; room description.  They are permanent.
  1013. X
  1014. X(setq room-silents (list nil
  1015. X        (list obj-tree)                        ;; dead-end
  1016. X        (list obj-tree)                        ;; e-w-dirt-road
  1017. X        nil nil nil nil nil nil
  1018. X        (list obj-bin)                         ;; mailroom
  1019. X        (list obj-computer)                    ;; computer-room
  1020. X        nil nil nil
  1021. X        (list obj-dial)                        ;; sauna
  1022. X        nil
  1023. X        (list obj-ladder)                      ;; weight-room
  1024. X        (list obj-button obj-ladder)           ;; maze-button-room
  1025. X        nil nil nil
  1026. X        nil nil nil nil nil nil nil
  1027. X        (list obj-chute)                       ;; cave-entrance
  1028. X        nil nil nil nil nil
  1029. X        (list obj-painting obj-bed)            ;; bedroom
  1030. X        (list obj-urinal obj-pipes)            ;; bathroom
  1031. X        nil nil nil nil nil nil
  1032. X        (list obj-boulder)                     ;; horseshoe-boulder-room
  1033. X        nil nil nil nil nil nil nil nil nil nil nil nil nil nil
  1034. X        (list obj-computer obj-cable)          ;; gamma-computing-center
  1035. X        (list obj-mail)                        ;; post-office
  1036. X        (list obj-gate)                        ;; main-maple-intersection
  1037. X        nil nil nil nil nil nil nil nil nil nil nil nil nil
  1038. X        nil nil nil nil nil nil nil
  1039. X        (list obj-cliff)                       ;; fifth-oaktree-intersection
  1040. X        nil nil nil
  1041. X        (list obj-dinosaur)                    ;; museum-lobby
  1042. X        nil
  1043. X        (list obj-fish obj-tanks)              ;; marine-life-area
  1044. X        (list obj-switch)                      ;; maintenance-room
  1045. X        (list obj-blackboard)                  ;; classroom
  1046. X        (list obj-train)                       ;; vermont-station
  1047. X        nil nil
  1048. X        (list obj-disposal)                    ;; north-end-of-n-s-tunnel
  1049. X        nil nil
  1050. X        (list obj-computer)                    ;; endgame-computer-room
  1051. X        nil nil nil nil nil nil nil nil 
  1052. X    (list obj-pc)                          ;; pc-area
  1053. X    nil nil nil nil nil nil
  1054. X))
  1055. X(setq inventory '(1))
  1056. X
  1057. X;; Descriptions of objects, as they appear in the room description, and
  1058. X;; the inventory.
  1059. X
  1060. X(setq objects '(
  1061. X        ("There is a shovel here." "A shovel")                ;0
  1062. X        ("There is a lamp nearby." "A lamp")                  ;1
  1063. X        ("There is a CPU card here." "A computer board")      ;2
  1064. X        ("There is some food here." "Some food")              ;3
  1065. X        ("There is a shiny brass key here." "A brass key")    ;4
  1066. X        ("There is a slip of paper here." "A slip of paper")  ;5
  1067. X        ("There is a wax statuette of Richard Stallman here." ;6
  1068. X         "An RMS statuette")
  1069. X        ("There is a shimmering diamond here." "A diamond")   ;7
  1070. X        ("There is a 10 pound weight here." "A weight")       ;8
  1071. X        ("There is a life preserver here." "A life preserver");9
  1072. X        ("There is an emerald bracelet here." "A bracelet")   ;10
  1073. X        ("There is a gold bar here." "A gold bar")            ;11
  1074. X        ("There is a platinum bar here." "A platinum bar")    ;12
  1075. X        ("There is a beach towel on the ground here." "A beach towel")
  1076. X        ("There is an axe here." "An axe") ;14
  1077. X        ("There is a silver bar here." "A silver bar")  ;15
  1078. X        ("There is a bus driver's license here." "A license") ;16
  1079. X        ("There are some valuable coins here." "Some valuable coins")
  1080. X        ("There is a jewel-encrusted egg here." "A valuable egg") ;18
  1081. X        ("There is a glass jar here." "A glass jar") ;19
  1082. X        ("There is a dinosaur bone here." "A bone") ;20
  1083. X        ("There is a packet of nitric acid here." "Some nitric acid")
  1084. X        ("There is a packet of glycerine here." "Some glycerine") ;22
  1085. X        ("There is a valuable ruby here." "A ruby") ;23
  1086. X        ("There is a valuable amethyst here." "An amethyst") ;24
  1087. X        ("The Mona Lisa is here." "The Mona Lisa") ;25
  1088. X        ("There is a 100 dollar bill here." "A $100 bill") ;26
  1089. X        ("There is a floppy disk here." "A floppy disk") ;27
  1090. X           )
  1091. X)
  1092. X
  1093. X;;; Weight of objects
  1094. X
  1095. X(setq object-lbs '(2 1 1 1 1 0 2 2 10 3 1 1 1 0 1 1 0 1 1 1 1 0 0 2 2 1 0 0))
  1096. X(setq object-pts '(0 0 0 0 0 0 0 10 0 0 10 10 10 0 0 10 0 10 10 0 0 0 0 10 10 10 10 0))
  1097. X
  1098. X
  1099. X;;; Unix representation of objects.
  1100. X(setq objfiles '(
  1101. X         "shovel.o" "lamp.o" "cpu.o" "food.o" "key.o" "paper.o"
  1102. X         "rms.o" "diamond.o" "weight.o" "preserver.o" "bracelet.o"
  1103. X         "gold.o" "platinum.o" "towel.o" "axe.o" "silver.o" "license.o"
  1104. X         "coins.o" "egg.o" "jar.o" "bone.o" "nitric.o" "glycerine.o"
  1105. X         "ruby.o" "amethyst.o"
  1106. X         ))
  1107. X
  1108. X;;; These are the descriptions for the negative numbered objects from
  1109. X;;; room-objects
  1110. X
  1111. X(setq perm-objects '(
  1112. X             nil
  1113. X             ("There is a large boulder here.")
  1114. X             nil
  1115. X             ("There is a ferocious bear here!")
  1116. X             nil
  1117. X             nil
  1118. X             ("There is a worthless pile of protoplasm here.")
  1119. X             nil
  1120. X             nil
  1121. X             nil
  1122. X             nil
  1123. X             nil
  1124. X             nil
  1125. X             ("There is a strange smell in this room.")
  1126. X             nil
  1127. X             (
  1128. X"There is a box with a slit in it, bolted to the wall here."
  1129. X                     )
  1130. X             nil
  1131. X             nil
  1132. X             ("There is a bus here.")
  1133. X             nil
  1134. X             nil
  1135. X             nil
  1136. X))
  1137. X
  1138. X
  1139. X;;; These are the descriptions the user gets when regular objects are
  1140. X;;; examined.
  1141. X
  1142. X(setq physobj-desc '(
  1143. X"It is a normal shovel with a price tag attached that says $19.99."
  1144. X"The lamp is hand-crafted by Geppetto."
  1145. X"The CPU board has a VAX chip on it.  It seems to have
  1146. X2 Megabytes of RAM onboard."
  1147. X"It looks like some kind of meat.  Smells pretty bad."
  1148. Xnil
  1149. X"The paper says: Don't forget to type 'help' for help.  Also, remember
  1150. Xthis word: 'worms'"
  1151. X"The statuette is of the likeness of Richard Stallman, the author of the
  1152. Xfamous EMACS editor.  You notice that he is not wearing any shoes."
  1153. Xnil
  1154. X"You observe that the weight is heavy."
  1155. X"It says S. S. Minnow."
  1156. Xnil
  1157. Xnil
  1158. Xnil
  1159. X"It has a picture of snoopy on it."
  1160. Xnil
  1161. Xnil
  1162. X"It has your picture on it!"
  1163. X"They are old coins from the 19th century."
  1164. X"It is a valuable Fabrege egg."
  1165. X"It is a a plain glass jar."
  1166. Xnil
  1167. Xnil
  1168. Xnil
  1169. Xnil
  1170. Xnil
  1171. X                     )
  1172. X)
  1173. X
  1174. X;;; These are the descriptions the user gets when non-regular objects
  1175. X;;; are examined.
  1176. X
  1177. X(setq permobj-desc '(
  1178. X             nil
  1179. X"It is just a boulder.  It cannot be moved."
  1180. X"They are palm trees with a bountiful supply of coconuts in them."
  1181. X"It looks like a grizzly to me."
  1182. X"All of the bins are empty.  Looking closely you can see that there
  1183. Xare names written at the bottom of each bin, but most of them are
  1184. Xfaded away so that you cannot read them.  You can only make out three
  1185. Xnames:
  1186. X                   Jeffrey Collier
  1187. X                   Robert Toukmond
  1188. X                   Thomas Stock
  1189. X"
  1190. X                      nil
  1191. X"It is just a garbled mess."
  1192. X"The dial points to a temperature scale which has long since faded away."
  1193. Xnil
  1194. Xnil
  1195. X"It is a velvet painting of Elvis Presly.  It seems to be nailed to the
  1196. Xwall, and you cannot move it."
  1197. X"It is a queen sized bed, with a very firm mattress."
  1198. X"The urinal is very clean compared with everything else in the cave.  There
  1199. Xisn't even any rust.  Upon close examination you realize that the drain at the
  1200. Xbottom is missing, and there is just a large hole leading down the
  1201. Xpipes into nowhere.  The hole is too small for a person to fit in.  The 
  1202. Xflush handle is so clean that you can see your reflection in it."
  1203. Xnil
  1204. Xnil
  1205. X"The box has a slit in the top of it, and on it, in sloppy handwriting, is
  1206. Xwritten: 'For key upgrade, put key in here.'"
  1207. Xnil
  1208. X"It says 'express mail' on it."
  1209. X"It is a 35 passenger bus with the company name 'mobytours' on it."
  1210. X"It is a large metal gate that is too big to climb over."
  1211. X"It is a HIGH cliff."
  1212. X"Unfortunately you do not know enough about dinosaurs to tell very much about
  1213. Xit.  It is very big, though."
  1214. X"The fish look like they were once quite beautiful."
  1215. Xnil
  1216. Xnil
  1217. Xnil
  1218. Xnil
  1219. X"It is a normal ladder that is permanently attached to the hole."
  1220. X"It is a passenger train that is ready to go."
  1221. X"It is a personal computer that has only one floppy disk drive."
  1222. X            )
  1223. X)
  1224. X
  1225. X(setq diggables (list nil nil nil (list obj-cpu) nil nil nil nil nil nil nil
  1226. X          nil nil nil nil nil nil nil nil nil nil      ;11-20
  1227. X          nil nil nil nil nil nil nil nil nil nil      ;21-30
  1228. X          nil nil nil nil nil nil nil nil nil nil      ;31-40
  1229. X          nil (list obj-platinum) nil nil nil nil nil nil nil nil))
  1230. X
  1231. X(setq scroll-step 2)
  1232. X(setq room-shorts nil)
  1233. X(dolist (x rooms)
  1234. X  (setq room-shorts  
  1235. X             (append room-shorts (list (downcase (space-to-hyphen
  1236. X                              (cadr x)))))))
  1237. X
  1238. X(setq endgame-questions '(
  1239. X              (
  1240. X"What is your password on the machine called 'pokey'?" "robert")
  1241. X              (
  1242. X"What password did you use during anonymous ftp to gamma?" "foo")
  1243. X              (
  1244. X"Excluding the endgame, how many places are there where you can put
  1245. Xtreasures for points?" "4" "four")
  1246. X              (
  1247. X"What is your login name on the 'endgame' machine?" "toukmond"
  1248. X)
  1249. X              (
  1250. X"What is the nearest whole dollar to the price of the shovel?" "20" "twenty")
  1251. X              (
  1252. X"What is the name of the bus company serving the town?" "mobytours")
  1253. X              (
  1254. X"Give either of the two last names in the mailroom, other than your own."
  1255. X"collier" "stock")
  1256. X              (
  1257. X"What cartoon character is on the towel?" "snoopy")
  1258. X              (
  1259. X"What is the last name of the author of EMACS?" "stallman")
  1260. X              (
  1261. X"How many megabytes of memory is on the CPU board for the Vax?" "2")
  1262. X              (
  1263. X"Which street in town is named after a U.S. state?" "vermont")
  1264. X              (
  1265. X"How many pounds did the weight weigh?" "ten" "10")
  1266. X              (
  1267. X"Name the STREET which runs right over the subway stop." "fourth" "4" "4th")
  1268. X              (
  1269. X"How many corners are there in town (excluding the one with the Post Office)?"
  1270. X                  "24" "twentyfour" "twenty-four")
  1271. X              (
  1272. X"What type of bear was hiding your key?" "grizzly")
  1273. X              (
  1274. X"Name either of the two objects you found by digging." "cpu" "card" "vax"
  1275. X"board" "platinum")
  1276. X              (
  1277. X"What network protocol is used between pokey and gamma?" "tcp/ip" "ip" "tcp")
  1278. X))
  1279. X
  1280. X(let (a)
  1281. X  (setq a 0)
  1282. X  (dolist (x room-shorts)
  1283. X    (eval (list 'defconst (intern x) a))
  1284. X    (setq a (+ a 1))))
  1285. X
  1286. END_OF_FILE
  1287. if test 42360 -ne `wc -c <'dun-globals.el'`; then
  1288.     echo shar: \"'dun-globals.el'\" unpacked with wrong size!
  1289. fi
  1290. chmod +x 'dun-globals.el'
  1291. # end of 'dun-globals.el'
  1292. fi
  1293. if test -f 'dun-main.el' -a "${1}" != "-c" ; then 
  1294.   echo shar: Will not clobber existing file \"'dun-main.el'\"
  1295. else
  1296. echo shar: Extracting \"'dun-main.el'\" \(2570 characters\)
  1297. sed "s/^X//" >'dun-main.el' <<'END_OF_FILE'
  1298. X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1299. X;                                                                      ;
  1300. X;                       dunnet.el  Version 2.0                         ;
  1301. X;                                                                      ;
  1302. X;                   Ron Schnell (ronnie@media.mit.edu)                 ;
  1303. X;                                                                      ;
  1304. X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1305. X
  1306. X
  1307. X;; This is the startup file.  It loads in the other files, and sets up
  1308. X;; the functions to be bound to keys if you play in window-mode.
  1309. X
  1310. X(if nil
  1311. X    (eval-and-compile (setq byte-compile-warnings nil)))
  1312. X
  1313. X;;;;;  The log file should be set for your system, and it must
  1314. X;;;;;  be writeable by all.
  1315. X
  1316. X      (setq log-file "/usr/local/dunscore")
  1317. X
  1318. X(defun dungeon-mode ()
  1319. X  "Major mode for running dungeon"
  1320. X  (interactive)
  1321. X  (text-mode)
  1322. X  (use-local-map dungeon-mode-map)
  1323. X  (setq major-mode 'dungeon-mode)
  1324. X  (setq mode-name "Dungeon")
  1325. X)
  1326. X
  1327. X(setq load-path (append load-path (list ".")))
  1328. X
  1329. X
  1330. X(defun dungeon-parse (arg)
  1331. X  "foo"
  1332. X  (interactive "*p")
  1333. X  (beginning-of-line)
  1334. X  (setq beg (+ (point) 1))
  1335. X  (end-of-line)
  1336. X  (if (and (not (= beg (point))) (not (< (point) beg))
  1337. X       (string= ">" (buffer-substring (- beg 1) beg)))
  1338. X      (progn
  1339. X    (setq line (downcase (buffer-substring beg (point))))
  1340. X    (princ line)
  1341. X    (if (eq (parse ignore verblist line) -1)
  1342. X        (mprinc "I don't understand that.\n")))
  1343. X    (goto-char (point-max))
  1344. X    (mprinc "\n"))
  1345. X    (dungeon-messages))
  1346. X    
  1347. X(defun dungeon-messages ()
  1348. X  (if dead
  1349. X      (text-mode)
  1350. X    (if (eq dungeon-mode 'dungeon)
  1351. X    (progn
  1352. X      (if (not (= room current-room))
  1353. X          (progn
  1354. X        (describe-room current-room)
  1355. X        (setq room current-room)))
  1356. X      (fix-screen)
  1357. X      (mprinc ">")))))
  1358. X
  1359. X(defun dungeon-start ()
  1360. X  (interactive)
  1361. X  (switch-to-buffer "*dungeon*")
  1362. X  (dungeon-mode)
  1363. X  (setq dead nil)
  1364. X  (setq room 0)
  1365. X  (dungeon-messages))
  1366. X(setq load-path (append load-path '("/usr/local/emacs/lisp")))
  1367. X
  1368. X(require 'cl)
  1369. X
  1370. X(defun batch-dungeon ()
  1371. X  (setq load-path (append load-path (list ".")))
  1372. X  (load "dun-batch")
  1373. X  (setq visited '(27))
  1374. X  (mprinc "\n")
  1375. X  (dungeon-batch-loop))
  1376. X
  1377. X
  1378. X(load "dun-commands")
  1379. X(load "dun-util")
  1380. X(if (setq glob (get-glob-dat))
  1381. X    (load-d glob)
  1382. X  (load "dun-globals"))
  1383. X
  1384. X(load "dun-unix")
  1385. X(load "dun-dos")
  1386. X(load "dun-save")
  1387. X(random t)
  1388. X(setq tloc (+ 60 (% (abs (random)) 18)))
  1389. X(replace room-objects tloc (append (nth tloc room-objects) (list 18)))
  1390. X(setq tcomb (+ 100 (% (abs (random)) 899)))
  1391. X(setq combination (prin1-to-string tcomb))
  1392. END_OF_FILE
  1393. if test 2570 -ne `wc -c <'dun-main.el'`; then
  1394.     echo shar: \"'dun-main.el'\" unpacked with wrong size!
  1395. fi
  1396. chmod +x 'dun-main.el'
  1397. # end of 'dun-main.el'
  1398. fi
  1399. if test -f 'dun-save.el' -a "${1}" != "-c" ; then 
  1400.   echo shar: Will not clobber existing file \"'dun-save.el'\"
  1401. else
  1402. echo shar: Extracting \"'dun-save.el'\" \(3479 characters\)
  1403. sed "s/^X//" >'dun-save.el' <<'END_OF_FILE'
  1404. X
  1405. X;;;;;;;;;;;;;;;;;;;
  1406. X;
  1407. X;
  1408. X;  Save and restore
  1409. X;
  1410. X;
  1411. X;;;;;;;;;;;;;;;;;;;
  1412. X
  1413. X(if nil
  1414. X    (eval-and-compile (setq byte-compile-warnings nil)))
  1415. X
  1416. X(defun save-game (filename)
  1417. X  (if (not (setq filename (car filename)))
  1418. X      (mprincl "You must supply a filename for the save.")
  1419. X    (if (file-exists-p filename)
  1420. X    (delete-file filename))
  1421. X    (setq numsaves (1+ numsaves))
  1422. X    (make-save-buffer)
  1423. X    (save-val "current-room")
  1424. X    (save-val "computer")
  1425. X    (save-val "door1")
  1426. X    (save-val "combination")
  1427. X    (save-val "visited")
  1428. X    (save-val "diggables")
  1429. X    (save-val "key-level")
  1430. X    (save-val "floppy")
  1431. X    (save-val "numsaves")
  1432. X    (save-val "numcmds")
  1433. X    (save-val "logged-in")
  1434. X    (save-val "dungeon-mode")
  1435. X    (save-val "jar")
  1436. X    (save-val "lastdir")
  1437. X    (save-val "black")
  1438. X    (save-val "nomail")
  1439. X    (save-val "unix-verbs")
  1440. X    (save-val "hole")
  1441. X    (save-val "uncompressed")
  1442. X    (save-val "ethernet")
  1443. X    (save-val "sauna-level")
  1444. X    (save-val "room-objects")
  1445. X    (save-val "room-silents")
  1446. X    (save-val "inventory")
  1447. X    (save-val "endgame-question")
  1448. X    (save-val "endgame")
  1449. X    (save-val "endgame-questions")
  1450. X    (save-val "cdroom")
  1451. X    (save-val "cdpath")
  1452. X    (save-val "correct-answer")
  1453. X    (save-val "inbus")
  1454. X    (if (compile-save-out filename)
  1455. X    (mprincl "Error saving to file.")
  1456. X      (do-logfile 'save nil)
  1457. X      (switch-to-buffer "*dungeon*")
  1458. X      (princ "")
  1459. X      (mprincl "Done."))))
  1460. X
  1461. X(defun make-save-buffer ()
  1462. X  (switch-to-buffer (get-buffer-create "*save-dungeon*"))
  1463. X  (erase-buffer))
  1464. X
  1465. X(defun compile-save-out (filename)
  1466. X  (let (ferror)
  1467. X    (setq ferror nil)
  1468. X    (condition-case nil
  1469. X    (dun-rot13)
  1470. X      (error (setq ferror t)))
  1471. X    (if (not ferror)
  1472. X    (progn
  1473. X      (goto-char (point-min))))
  1474. X    (condition-case nil
  1475. X        (write-region 1 (point-max) filename nil 1)
  1476. X        (error (setq ferror t)))
  1477. X    (kill-buffer (current-buffer))
  1478. X    ferror))
  1479. X    
  1480. X
  1481. X(defun save-val (varname)
  1482. X  (let (value)
  1483. X    (setq varname (intern varname))
  1484. X    (setq value (eval varname))
  1485. X    (minsert "(setq ")
  1486. X    (minsert varname)
  1487. X    (minsert " ")
  1488. X    (if (or (listp value)
  1489. X        (symbolp value))
  1490. X    (minsert "'"))
  1491. X    (if (stringp value)
  1492. X    (minsert "\""))
  1493. X    (minsert value)
  1494. X    (if (stringp value)
  1495. X    (minsert "\""))
  1496. X    (minsertl ")")))
  1497. X
  1498. X
  1499. X(defun restore (args)
  1500. X  (let (file)
  1501. X    (if (not (setq file (car args)))
  1502. X    (mprincl "You must supply a filename.")
  1503. X      (if (not (load-d file))
  1504. X      (mprincl "Could not load restore file.")
  1505. X    (mprincl "Done.")
  1506. X    (setq room 0)))))
  1507. X
  1508. X
  1509. X(defun do-logfile (type how)
  1510. X  (let (ferror newscore)
  1511. X    (setq ferror nil)
  1512. X    (switch-to-buffer (get-buffer-create "*score*"))
  1513. X    (erase-buffer)
  1514. X    (condition-case nil
  1515. X    (insert-file-contents log-file)
  1516. X      (error (setq ferror t)))
  1517. X    (unless ferror
  1518. X        (goto-char (point-max))
  1519. X        (minsert (current-time-string))
  1520. X        (minsert " ")
  1521. X        (minsert (user-login-name))
  1522. X        (minsert " ")
  1523. X        (if (eq type 'save)
  1524. X        (minsert "saved ")
  1525. X          (if (= (endgame-score) 110)
  1526. X          (minsert "won ")
  1527. X        (if (not how)
  1528. X            (minsert "quit ")
  1529. X          (minsert "killed by ")
  1530. X          (minsert how)
  1531. X          (minsert " "))))
  1532. X        (minsert "at ")
  1533. X        (minsert (cadr (nth (abs room) rooms)))
  1534. X        (minsert ". score: ")
  1535. X        (if (> (endgame-score) 0)
  1536. X        (minsert (setq newscore (+ 90 (endgame-score))))
  1537. X          (minsert (setq newscore (reg-score))))
  1538. X        (minsert " saves: ")
  1539. X        (minsert numsaves)
  1540. X        (minsert " commands: ")
  1541. X        (minsert numcmds)
  1542. X        (minsert "\n")
  1543. X        (write-region 1 (point-max) log-file nil 1))
  1544. X    (kill-buffer (current-buffer))))
  1545. END_OF_FILE
  1546. if test 3479 -ne `wc -c <'dun-save.el'`; then
  1547.     echo shar: \"'dun-save.el'\" unpacked with wrong size!
  1548. fi
  1549. chmod +x 'dun-save.el'
  1550. # end of 'dun-save.el'
  1551. fi
  1552. if test -f 'makefile' -a "${1}" != "-c" ; then 
  1553.   echo shar: Will not clobber existing file \"'makefile'\"
  1554. else
  1555. echo shar: Extracting \"'makefile'\" \(245 characters\)
  1556. sed "s/^X//" >'makefile' <<'END_OF_FILE'
  1557. X
  1558. Xall:    dun-globals.el
  1559. X    -mkdir ../bin
  1560. X    -/amber/nview/tom/emacs-19.15/src/emacs -batch -l bytecomp -f batch-byte-compile *.el
  1561. X    -emacs -batch -l `pwd`/dun-util -f compile-globals
  1562. X    -rm dun-globals.elc
  1563. X    -mv dun-globals.dat ../bin
  1564. X    -mv *.elc ../bin
  1565. END_OF_FILE
  1566. if test 245 -ne `wc -c <'makefile'`; then
  1567.     echo shar: \"'makefile'\" unpacked with wrong size!
  1568. fi
  1569. # end of 'makefile'
  1570. fi
  1571. echo shar: End of archive 1 \(of 3\).
  1572. cp /dev/null ark1isdone
  1573. MISSING=""
  1574. for I in 1 2 3 ; do
  1575.     if test ! -f ark${I}isdone ; then
  1576.     MISSING="${MISSING} ${I}"
  1577.     fi
  1578. done
  1579. if test "${MISSING}" = "" ; then
  1580.     echo You have unpacked all 3 archives.
  1581.     rm -f ark[1-9]isdone
  1582. else
  1583.     echo You still need to unpack the following archives:
  1584.     echo "        " ${MISSING}
  1585. fi
  1586. ##  End of shell archive.
  1587. exit 0
  1588.