home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!news.tek.com!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v18i011: dunnet2 - emacs-lisp text adventure, Ver 2, Part01/03
- Date: 10 Jul 1993 22:58:10 GMT
- Organization: Tektronix, Inc, Redmond, OR, USA
- Lines: 1575
- Approved: billr@saab.CNA.TEK.COM
- Message-ID: <21nhi2$q4g@ying.cna.tek.com>
- NNTP-Posting-Host: saab.cna.tek.com
- Xref: uunet comp.sources.games:1811
-
- Submitted-by: ronnie@media.mit.edu
- Posting-number: Volume 18, Issue 11
- Archive-name: dunnet2/part01
- Supersedes: dunnet: Volume 14, Issue 28-29
- Environment: Emacs
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 3)."
- # Contents: README MANIFEST dun-globals.el dun-main.el dun-save.el
- # makefile
- # Wrapped by billr@saab on Sat Jul 10 15:54:30 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(2469 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- XThis is "dunnet", a text adventure game written in emacs-lisp. I decided it
- Xwould be interesting to write an elisp program, so for fun I wrote this
- Xone. Try to play it without looking at the code, for two reasons:
- X
- X1. It's more fun if you don't cheat.
- X2. Since I haven't written much lisp, I'm not confident of the quality
- X of the code.
- X
- XYou'll notice some really different things about this dungeon. Without
- Xgiving anything away, let's just say that like much lisp code seems to
- Xbe, this dungeon is sort of recursive in a way. A minimal knowledge of
- XUNIX, DOS, and some internet experience is assumed.
- X
- XThanks to help from many people including (but not limited to)
- XNathan Glasser (nathan@brokaw.lcs.mit.edu)
- XH. B. Furuseth (h.b.furuseth@usit.uio.no)
- XChris Moore (more@src.bae.co.uk)
- XChris Metcalf (metcalf@catfish.lcs.mit.edu)
- XNorman Walsh (walsh%ibis@cs.umass.edu)
- X
- XI encourage comments, good and bad. Please e-mail me what you
- Xthought of the game.
- X
- XINSTALLATION
- X------------
- X
- XModify the first line of dun-main.el to have a logfile that is writable
- Xby all. You only need to do this if you want to log where everyone died
- Xor saved, or won. You will also need to create this file as an empty file,
- Xif it doesn't already exist.
- X
- XYou can use the 'makefile' to compile everything and encrypt the appropriate
- Xportions of dunnet. You may, of course, just run the code as-is. In either
- Xcase, all of the files must be put in your load-path directory, or they
- Xmust be in your current directory when it is run. If you do
- Xrun make, all of the compiled/encrypted files are put in ../bin.
- X
- X*IMPORTANT*
- X
- XThere are two ways to run the program:
- X
- X1. dunnet
- X2. dunnet.window
- X
- XThese files are Unix shellscripts, and one of them should be put in a
- Xnormal bin directory. If you are on a non-unix machine, it should be
- Xsimple to set up similar script files.
- X
- XNOTE: There are two additional script files, dunnet.curdir, and
- X dunnet.window.curdir. These can be used with Unix in order
- X to run dunnet in the current directory. You may need to create
- X similar scripts for other plaforms.
- X
- XThis software assumes you have "cl.el" (necessary),
- Xand "yow.el" (not critical) in the load-path directory. These
- Xcome standard with Gnu emacs.
- X
- XSome hints and tips.
- X
- XRead the help carefully.
- XSave the game *very* often.
- XAn abbreviation for examine is 'x'. EXAMINE EVERYTHING.
- XYou can use 'get all', but not 'drop all'.
- X
- XQuestions or comments to ronnie@media.mit.edu.
- X
- END_OF_FILE
- if test 2469 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'MANIFEST' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'MANIFEST'\"
- else
- echo shar: Extracting \"'MANIFEST'\" \(672 characters\)
- sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
- X File Name Archive # Description
- X-----------------------------------------------------------
- X CHANGES 2
- X COPYRIGHT 3
- X LCD-entry 3
- X MANIFEST 1 This shipping list
- X README 1
- X dun-batch.el 2
- X dun-commands.el 2
- X dun-dos.el 2
- X dun-globals.el 1
- X dun-main.el 1
- X dun-save.el 1
- X dun-unix.el 2
- X dun-util.el 3
- X dunnet 3
- X dunnet.curdir 3
- X dunnet.window 3
- X dunnet.window.curdir 3
- X makefile 1
- END_OF_FILE
- if test 672 -ne `wc -c <'MANIFEST'`; then
- echo shar: \"'MANIFEST'\" unpacked with wrong size!
- fi
- # end of 'MANIFEST'
- fi
- if test -f 'dun-globals.el' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'dun-globals.el'\"
- else
- echo shar: Extracting \"'dun-globals.el'\" \(42360 characters\)
- sed "s/^X//" >'dun-globals.el' <<'END_OF_FILE'
- X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X;;;
- X;;; Globals
- X;;;
- X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X
- X;;;; IMPORTANT
- X;;;; All globals which can change must be saved from 'save-game. Add
- X;;;; all new globals to bottom of file.
- X
- X(if nil
- X (eval-and-compile (setq byte-compile-warnings nil)))
- X(setq visited '(27))
- X(setq current-room 1)
- X(setq exitf nil)
- X(setq badcd nil)
- X(defvar dungeon-mode-map nil)
- X(setq dungeon-mode-map (make-sparse-keymap))
- X(define-key dungeon-mode-map "\r" 'dungeon-parse)
- X(defvar dungeon-batch-map (make-keymap))
- X(if (string= (substring emacs-version 0 2) "18")
- X (let (n)
- X (setq n 32)
- X (while (< 0 (setq n (- n 1)))
- X (aset dungeon-batch-map n 'dungeon-nil)))
- X (let (n)
- X (setq n 32)
- X (while (< 0 (setq n (- n 1)))
- X (aset (car (cdr dungeon-batch-map)) n 'dungeon-nil))))
- X(define-key dungeon-batch-map "\r" 'exit-minibuffer)
- X(define-key dungeon-batch-map "\n" 'exit-minibuffer)
- X(setq computer nil)
- X(setq floppy nil)
- X(setq door1 'locked)
- X(setq key-level 0)
- X(setq hole nil)
- X(setq correct-answer nil)
- X(setq lastdir 0)
- X(setq numsaves 0)
- X(setq jar nil)
- X(setq numcmds 0)
- X(setq wizard nil)
- X(setq endgame-question nil)
- X(setq logged-in nil)
- X(setq dungeon-mode 'dungeon)
- X(setq unix-verbs '((ls . ls) (ftp . ftp) (echo . echo) (exit . uexit)
- X (cd . dunnet-cd) (pwd . dunnet-pwd) (rlogin . rlogin)
- X (uncompress . uncompress) (cat . cat) (zippy . zippy)))
- X
- X(setq dos-verbs '((dir . dos-dir) (type . dos-type) (exit . dos-exit)
- X (command . dos-spawn) (b: . dos-invd) (c: . dos-invd)
- X (a: . dos-nil)))
- X
- X
- X(setq batch-mode nil)
- X
- X(setq cdpath "/usr/toukmond")
- X(setq cdroom -10)
- X(setq uncompressed nil)
- X(setq ethernet t)
- X(setq restricted '(room-objects dungeon-map rooms room-silents combination))
- X(setq path "/usr/toukmond")
- X(setq ftptype 'ascii)
- X(setq endgame nil)
- X(setq gottago t)
- X(setq black nil)
- X
- X(setq rooms '(
- X (
- X"You are in the treasure room. A door leads out to the north."
- X "Treasure room"
- X )
- X (
- X"You are at a dead end of a dirt road. The road goes to the east.
- XIn the distance you can see that it will eventually fork off. The
- Xtrees here are very tall royal palms, and they are spaced equidistant
- Xfrom each other."
- X "Dead end"
- X )
- X (
- X"You are on the continuation of a dirt road. There are more trees on
- Xboth sides of you. The road continues to the east and west."
- X "E/W Dirt road"
- X )
- X (
- X"You are at a fork of two passages, one to the northeast, and one to the
- Xsoutheast. The ground here seems very soft. You can also go back west."
- X "Fork"
- X )
- X (
- X"You are on a northeast/southwest road."
- X "NE/SW road"
- X )
- X (
- X"You are at the end of the road. There is a building in front of you
- Xto the northeast, and the road leads back to the southwest."
- X "Building front"
- X )
- X (
- X"You are on a southeast/northwest road."
- X "SE/NW road"
- X )
- X (
- X"You are standing at the end of a road. A passage leads back to the
- Xnorthwest."
- X "Bear hangout"
- X )
- X (
- X"You are in the hallway of an old building. There are rooms to the east
- Xand west, and doors leading out to the north and south."
- X "Old Building hallway"
- X )
- X (
- X"You are in a mailroom. There are many bins where the mail is usually
- Xkept. The exit is to the west."
- X "Mailroom"
- X )
- X (
- X"You are in a computer room. It seems like most of the equipment has
- Xbeen removed. There is a VAX 11/780 in front of you, however, with
- Xone of the cabinets wide open. A sign on the front of the machine
- Xsays: This VAX is named 'pokey'. To type on the console, use the
- X'type' command. The exit is to the east."
- X "Computer room"
- X )
- X (
- X"You are in a meadow in the back of an old building. A small path leads
- Xto the west, and a door leads to the south."
- X "Meadow"
- X )
- X (
- X"You are in a round, stone room with a door to the east. There
- Xis a sign on the wall that reads: 'receiving room'."
- X "Receiving room"
- X )
- X (
- X"You are at the south end of a hallway that leads to the north. There
- Xare rooms to the east and west."
- X "Northbound Hallway"
- X )
- X (
- X"You are in a sauna. There is nothing in the room except for a dial
- Xon the wall. A door leads out to west."
- X "Sauna"
- X )
- X (
- X"You are at the end of a north/south hallway. You can go back to the south,
- Xor off to a room to the east."
- X "End of N/S Hallway"
- X )
- X (
- X"You are in an old weight room. All of the equipment is either destroyed
- Xor completely broken. There is a door out to the west, and there is a ladder
- Xleading down a hole in the floor."
- X "Weight room" ;16
- X )
- X (
- X"You are in a maze of twisty little passages, all alike.
- XThere is a button on the ground here."
- X "Maze button room"
- X )
- X (
- X"You are in a maze of little twisty passages, all alike."
- X "Maze"
- X )
- X (
- X"You are in a maze of thirsty little passages, all alike."
- X "Maze" ;19
- X )
- X (
- X"You are in a maze of twenty little passages, all alike."
- X "Maze"
- X )
- X (
- X"You are in a daze of twisty little passages, all alike."
- X "Maze" ;21
- X )
- X (
- X"You are in a maze of twisty little cabbages, all alike."
- X "Maze" ;22
- X )
- X (
- X"You are in a reception area for a health and fitness center. The place
- Xappears to have been recently ransacked, and nothing is left. There is
- Xa door out to the south, and a crawlspace to the southeast."
- X "Reception area"
- X )
- X (
- X"You are outside a large building to the north which used to be a health
- Xand fitness center. A road leads to the south."
- X "Health Club front"
- X )
- X (
- X"You are at the north side of a lake. On the other side you can see
- Xa road which leads to a cave. The water appears very deep."
- X "Lakefront North"
- X )
- X (
- X"You are at the south side of a lake. A road goes to the south."
- X "Lakefront South"
- X )
- X (
- X"You are in a well-hidden area off to the side of a road. Back to the
- Xnortheast through the brush you can see the bear hangout."
- X "Hidden area"
- X )
- X (
- X"The entrance to a cave is to the south. To the north, a road leads
- Xtowards a deep lake. On the ground nearby there is a chute, with a sign
- Xthat says 'put treasures here for points'."
- X "Cave Entrance" ;28
- X )
- X (
- X"You are in a misty, humid room carved into a mountain.
- XTo the north is the remains of a rockslide. To the east, a small
- Xpassage leads away into the darkness." ;29
- X "Misty Room"
- X )
- X (
- X"You are in an east/west passageway. The walls here are made of
- Xmulticolored rock and are quite beautiful."
- X "Cave E/W passage" ;30
- X )
- X (
- X"You are at the junction of two passages. One goes north/south, and
- Xthe other goes west."
- X "N/S/W Junction" ;31
- X )
- X (
- X"You are at the north end of a north/south passageway. There are stairs
- Xleading down from here. There is also a door leading west."
- X "North end of cave passage" ;32
- X )
- X (
- X"You are at the south end of a north/south passageway. There is a hole
- Xin the floor here, into which you could probably fit."
- X "South end of cave passage" ;33
- X )
- X (
- X"You are in what appears to be a worker's bedroom. There is a queen-
- Xsized bed in the middle of the room, and a painting hanging on the
- Xwall. A door leads to another room to the south, and stairways
- Xlead up and down."
- X "Bedroom" ;34
- X )
- X (
- X"You are in a bathroom built for workers in the cave. There is a
- Xurinal hanging on the wall, and some exposed pipes on the opposite
- Xwall where a sink used to be. To the north is a bedroom."
- X "Bathroom" ;35
- X )
- X (
- X"This is a marker for the urinal. User will not see this, but it
- Xis a room that can contain objects."
- X "Urinal" ;36
- X )
- X (
- X"You are at the northeast end of a northeast/southwest passageway.
- XStairs lead up out of sight."
- X "Ne end of ne/sw cave passage" ;37
- X )
- X (
- X"You are at the junction of northeast/southwest and east/west passages."
- X "Ne/sw-e/w junction" ;38
- X )
- X (
- X"You are at the southwest end of a northeast/southwest passageway."
- X "Sw end of ne/sw cave passage" ;39
- X )
- X (
- X"You are at the east end of an e/w passage. There are stairs leading up
- Xto a room above."
- X "East end of e/w cave passage" ;40
- X )
- X (
- X"You are at the west end of an e/w passage. There is a hole on the ground
- Xwhich leads down out of sight."
- X "West end of e/w cave passage" ;41
- X )
- X (
- X"You are in a room which is bare, except for a horseshoe shaped boulder
- Xin the center. Stairs lead down from here." ;42
- X "Horseshoe boulder room"
- X )
- X (
- X"You are in a room which is completely empty. Doors lead out to the north
- Xand east."
- X "Empty room" ;43
- X )
- X (
- X"You are in an empty room. Interestingly enough, the stones in this
- Xroom are painted blue. Doors lead out to the east and south." ;44
- X "Blue room"
- X )
- X (
- X"You are in an empty room. Interestingly enough, the stones in this
- Xroom are painted yellow. Doors lead out to the south and west." ;45
- X "Yellow room"
- X )
- X (
- X"You are in an empty room. Interestingly enough, the stones in this room
- Xare painted red. Doors lead out to the west and north."
- X "Red room" ;46
- X )
- X (
- X"You are in the middle of a long north/south hallway." ;47
- X "Long n/s hallway"
- X )
- X (
- X"You are 3/4 of the way towards the north end of a long north/south hallway."
- X "3/4 north" ;48
- X )
- X (
- X"You are at the north end of a long north/south hallway. There are stairs
- Xleading upwards."
- X "North end of long hallway" ;49
- X )
- X (
- X"You are 3/4 of the way towards the south end of a long north/south hallway."
- X "3/4 south" ;50
- X )
- X (
- X"You are at the south end of a long north/south hallway. There is a hole
- Xto the south."
- X "South end of long hallway" ;51
- X )
- X (
- X"You are at a landing in a stairwell which continues up and down."
- X "Stair landing" ;52
- X )
- X (
- X"You are at the continuation of an up/down staircase."
- X "Up/down staircase" ;53
- X )
- X (
- X"You are at the top of a staircase leading down. A crawlway leads off
- Xto the northeast."
- X "Top of staircase." ;54
- X )
- X (
- X"You are in a crawlway that leads northeast or southwest."
- X "Ne crawlway" ;55
- X )
- X (
- X"You are in a small crawlspace. There is a hole in the ground here, and
- Xa small passage back to the southwest."
- X "Small crawlspace" ;56
- X )
- X (
- X"You are in the Gamma Computing Center. An IBM 3090/600s is whirring
- Xaway in here. There is an ethernet cable coming out of one of the units,
- Xand going through the ceiling. There is no console here on which you
- Xcould type."
- X "Gamma computing center" ;57
- X )
- X (
- X"You are near the remains of a post office. There is a mail drop on the
- Xface of the building, but you cannot see where it leads. A path leads
- Xback to the east, and a road leads to the north."
- X "Post office" ;58
- X )
- X (
- X"You are at the intersection of Main Street and Maple Ave. Main street
- Xruns north and south, and Maple Ave runs east off into the distance.
- XIf you look north and east you can see many intersections, but all of
- Xthe buildings that used to stand here are gone. Nothing remains except
- Xstreet signs.
- XThere is a road to the northwest leading to a gate that guards a building."
- X "Main-Maple intersection" ;59
- X )
- X (
- X"You are at the intersection of Main Street and the west end of Oaktree Ave."
- X "Main-Oaktree intersection" ;60
- X )
- X (
- X"You are at the intersection of Main Street and the west end of Vermont Ave."
- X "Main-Vermont intersection" ;61
- X )
- X (
- X"You are at the north end of Main Street at the west end of Sycamore Ave." ;62
- X "Main-Sycamore intersection"
- X )
- X (
- X"You are at the south end of First Street at Maple Ave." ;63
- X "First-Maple intersection"
- X )
- X (
- X"You are at the intersection of First Street and Oaktree Ave." ;64
- X "First-Oaktree intersection"
- X )
- X (
- X"You are at the intersection of First Street and Vermont Ave." ;65
- X "First-Vermont intersection"
- X )
- X (
- X"You are at the north end of First Street at Sycamore Ave." ;66
- X "First-Sycamore intersection"
- X )
- X (
- X"You are at the south end of Second Street at Maple Ave." ;67
- X "Second-Maple intersection"
- X )
- X (
- X"You are at the intersection of Second Street and Oaktree Ave." ;68
- X "Second-Oaktree intersection"
- X )
- X (
- X"You are at the intersection of Second Street and Vermont Ave." ;69
- X "Second-Vermont intersection"
- X )
- X (
- X"You are at the north end of Second Street at Sycamore Ave." ;70
- X "Second-Sycamore intersection"
- X )
- X (
- X"You are at the south end of Third Street at Maple Ave." ;71
- X "Third-Maple intersection"
- X )
- X (
- X"You are at the intersection of Third Street and Oaktree Ave." ;72
- X "Third-Oaktree intersection"
- X )
- X (
- X"You are at the intersection of Third Street and Vermont Ave." ;73
- X "Third-Vermont intersection"
- X )
- X (
- X"You are at the north end of Third Street at Sycamore Ave." ;74
- X "Third-Sycamore intersection"
- X )
- X (
- X"You are at the south end of Fourth Street at Maple Ave." ;75
- X "Fourth-Maple intersection"
- X )
- X (
- X"You are at the intersection of Fourth Street and Oaktree Ave." ;76
- X "Fourth-Oaktree intersection"
- X )
- X (
- X"You are at the intersection of Fourth Street and Vermont Ave." ;77
- X "Fourth-Vermont intersection"
- X )
- X (
- X"You are at the north end of Fourth Street at Sycamore Ave." ;78
- X "Fourth-Sycamore intersection"
- X )
- X (
- X"You are at the south end of Fifth Street at the east end of Maple Ave." ;79
- X "Fifth-Maple intersection"
- X )
- X (
- X"You are at the intersection of Fifth Street and the east end of Oaktree Ave.
- XThere is a cliff off to the east."
- X "Fifth-Oaktree intersection" ;80
- X )
- X (
- X"You are at the intersection of Fifth Street and the east end of Vermont Ave."
- X "Fifth-Vermont intersection" ;81
- X )
- X (
- X"You are at the north end of Fifth Street and the east end of Sycamore Ave."
- X "Fifth-Sycamore intersection" ;82
- X )
- X (
- X"You are in front of the Museum of Natural History. A door leads into
- Xthe building to the north, and a road leads to the southeast."
- X "Museum entrance" ;83
- X )
- X (
- X"You are in the main lobby for the Museum of Natural History. In the center
- Xof the room is the huge skeleton of a dinosaur. Doors lead out to the
- Xsouth and east."
- X "Museum lobby" ;84
- X )
- X (
- X"You are in the geological display. All of the objects that used to
- Xbe on display are missing. There are rooms to the east, west, and
- Xnorth."
- X "Geological display" ;85
- X )
- X (
- X"You are in the marine life area. The room is filled with fish tanks,
- Xwhich are filled with dead fish that have apparently died due to
- Xstarvation. Doors lead out to the south and east."
- X "Marine life area" ;86
- X )
- X (
- X"You are in some sort of maintenance room for the museum. There is a
- Xswitch on the wall labeled 'BL'. There are doors to the west and north."
- X "Maintenance room" ;87
- X )
- X (
- X"You are in a classroom where school children were taught about natural
- Xhistory. On the blackboard is written, 'No children allowed downstairs.'
- XThere is a door to the east with an 'exit' sign on it. There is another
- Xdoor to the west."
- X "Classroom" ;88
- X )
- X (
- X"You are at the Vermont St. subway station. A train is sitting here waiting."
- X "Vermont station" ;89
- X )
- X (
- X"You are at the Museum subway stop. A passage leads off to the north."
- X "Museum station" ;90
- X )
- X (
- X"You are in a north/south tunnel."
- X "N/S tunnel" ;91
- X )
- X (
- X"You are at the north end of a north/south tunnel. Stairs lead up and
- Xdown from here. There is a garbage disposal here."
- X "North end of n/s tunnel" ;92
- X )
- X (
- X"You are at the top of some stairs near the subway station. There is
- Xa door to the west."
- X "Top of subway stairs" ;93
- X )
- X (
- X"You are at the bottom of some stairs near the subway station. There is
- Xa room to the northeast."
- X "Bottom of subway stairs" ;94
- X )
- X (
- X"You are in another computer room. There is a computer in here larger
- Xthan you have ever seen. It has no manufacturers name on it, but it
- Xdoes have a sign that says: This machine's name is 'endgame'. The
- Xexit is to the southwest. There is no console here on which you could
- Xtype."
- X "Endgame computer room" ;95
- X )
- X (
- X"You are in a north/south hallway."
- X "Endgame n/s hallway" ;96
- X )
- X (
- X"You have reached a question room. You must answer a question correctly in
- Xorder to get by. Use the 'answer' command to answer the question."
- X "Question room 1" ;97
- X )
- X (
- X"You are in a north/south hallway."
- X "Endgame n/s hallway" ;98
- X )
- X (
- X"You are in a second question room."
- X "Question room 2" ;99
- X )
- X (
- X"You are in a north/south hallway."
- X "Endgame n/s hallway" ;100
- X )
- X (
- X"You are in a third question room."
- X "Question room 3" ;101
- X )
- X (
- X"You are in the endgame treasure room. A door leads out to the north, and
- Xa hallway leads to the south."
- X "Endgame treasure room" ;102
- X )
- X (
- X"You are in the winner's room. A door leads back to the south."
- X "Winner's room" ;103
- X )
- X (
- X"You have reached a dead end. There is a PC on the floor here. Above
- Xit is a sign that reads:
- X Type the 'reset' command to type on the PC.
- XA hole leads north."
- X "PC area" ;104
- X )
- X))
- X
- 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
- X 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
- X 77 78 79 80 81 82 83))
- X
- X(setq verblist '((die . die) (ne . ne) (north . n) (south . s) (east . e)
- X (west . w) (u . up) (d . down) (i . inven)
- X (inventory . inven) (look . examine) (n . n) (s . s) (e . e)
- X (w . w) (se . se) (nw . nw) (sw . sw) (up . up)
- X (down . down) (in . in) (out . out) (go . go) (drop . drop)
- X (southeast . se) (southwest . sw) (northeast . ne)
- X (northwest . nw) (save . save-game) (restore . restore)
- X (long . long) (dig . dig) (shake . shake) (wave . shake)
- X (examine . examine) (describe . examine) (climb . climb)
- X (eat . eat) (put . dput) (type . type) (insert . dput)
- X (score . score) (help . help) (quit . quit) (read . examine)
- X (verbose . long) (urinate . piss) (piss . piss)
- X (flush . flush) (sleep . dsleep) (lie . dsleep) (x . examine)
- X (break . break) (drive . drive) (board . in) (enter . in)
- X (turn . turn) (press . press) (push . press) (swim . swim)
- X (on . in) (off . out) (chop . break) (switch . press)
- X (cut . break) (exit . out) (leave . out) (reset . dun-power)
- X (flick . press) (superb . superb) (answer . answer)
- X (throw . drop) (l . examine) (take . take) (get . take)
- X (feed . dun-feed)))
- X
- X(setq inbus nil)
- X(setq nomail nil)
- X(setq ignore '(the to at))
- X(setq mode 'moby)
- X(setq sauna-level 0)
- X
- X(defconst north 0)
- X(defconst south 1)
- X(defconst east 2)
- X(defconst west 3)
- X(defconst northeast 4)
- X(defconst southeast 5)
- X(defconst northwest 6)
- X(defconst southwest 7)
- X(defconst up 8)
- X(defconst down 9)
- X(defconst in 10)
- X(defconst out 11)
- X
- X(setq dungeon-map '(
- X; no so ea we ne se nw sw up do in ot
- X ( 96 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;0
- X ( -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;1
- X ( -1 -1 3 1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;2
- X ( -1 -1 -1 2 4 6 -1 -1 -1 -1 -1 -1 ) ;3
- X ( -1 -1 -1 -1 5 -1 -1 3 -1 -1 -1 -1 ) ;4
- X ( -1 -1 -1 -1 255 -1 -1 4 -1 -1 255 -1 ) ;5
- X ( -1 -1 -1 -1 -1 7 3 -1 -1 -1 -1 -1 ) ;6
- X ( -1 -1 -1 -1 -1 255 6 27 -1 -1 -1 -1 ) ;7
- X ( 255 5 9 10 -1 -1 -1 5 -1 -1 -1 5 ) ;8
- X ( -1 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 ) ;9
- X ( -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;10
- X ( -1 8 -1 58 -1 -1 -1 -1 -1 -1 -1 -1 ) ;11
- X ( -1 -1 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;12
- X ( 15 -1 14 12 -1 -1 -1 -1 -1 -1 -1 -1 ) ;13
- X ( -1 -1 -1 13 -1 -1 -1 -1 -1 -1 -1 -1 ) ;14
- X ( -1 13 16 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;15
- X ( -1 -1 -1 15 -1 -1 -1 -1 -1 17 16 -1 ) ;16
- X ( -1 -1 17 17 17 17 255 17 255 17 -1 -1 ) ;17
- X ( 18 18 18 18 18 -1 18 18 19 18 -1 -1 ) ;18
- X ( -1 18 18 19 19 20 19 19 -1 18 -1 -1 ) ;19
- X ( -1 -1 -1 18 -1 -1 -1 -1 -1 21 -1 -1 ) ;20
- X ( -1 -1 -1 -1 -1 20 22 -1 -1 -1 -1 -1 ) ;21
- X ( 18 18 18 18 16 18 23 18 18 18 18 18 ) ;22
- X ( -1 255 -1 -1 -1 19 -1 -1 -1 -1 -1 -1 ) ;23
- X ( 23 25 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;24
- X ( 24 255 -1 -1 -1 -1 -1 -1 -1 -1 255 -1 ) ;25
- X (255 28 -1 -1 -1 -1 -1 -1 -1 -1 255 -1 ) ;26
- X ( -1 -1 -1 -1 7 -1 -1 -1 -1 -1 -1 -1 ) ;27
- X ( 26 255 -1 -1 -1 -1 -1 -1 -1 -1 255 -1 ) ;28
- X ( -1 -1 30 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;29
- X ( -1 -1 31 29 -1 -1 -1 -1 -1 -1 -1 -1 ) ;30
- X ( 32 33 -1 30 -1 -1 -1 -1 -1 -1 -1 -1 ) ;31
- X ( -1 31 -1 255 -1 -1 -1 -1 -1 34 -1 -1 ) ;32
- X ( 31 -1 -1 -1 -1 -1 -1 -1 -1 35 -1 -1 ) ;33
- X ( -1 35 -1 -1 -1 -1 -1 -1 32 37 -1 -1 ) ;34
- X ( 34 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;35
- X ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;36
- X ( -1 -1 -1 -1 -1 -1 -1 38 34 -1 -1 -1 ) ;37
- X ( -1 -1 40 41 37 -1 -1 39 -1 -1 -1 -1 ) ;38
- X ( -1 -1 -1 -1 38 -1 -1 -1 -1 -1 -1 -1 ) ;39
- X ( -1 -1 -1 38 -1 -1 -1 -1 42 -1 -1 -1 ) ;40
- X ( -1 -1 38 -1 -1 -1 -1 -1 -1 43 -1 -1 ) ;41
- X ( -1 -1 -1 -1 -1 -1 -1 -1 -1 40 -1 -1 ) ;42
- X ( 44 -1 46 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;43
- X ( -1 43 45 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;44
- X ( -1 46 -1 44 -1 -1 -1 -1 -1 -1 -1 -1 ) ;45
- X ( 45 -1 -1 43 -1 -1 -1 -1 -1 255 -1 -1 ) ;46
- X ( 48 50 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;47
- X ( 49 47 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;48
- X ( -1 48 -1 -1 -1 -1 -1 -1 52 -1 -1 -1 ) ;49
- X ( 47 51 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;50
- X ( 50 104 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;51
- X ( -1 -1 -1 -1 -1 -1 -1 -1 53 49 -1 -1 ) ;52
- X ( -1 -1 -1 -1 -1 -1 -1 -1 54 52 -1 -1 ) ;53
- X ( -1 -1 -1 -1 55 -1 -1 -1 -1 53 -1 -1 ) ;54
- X ( -1 -1 -1 -1 56 -1 -1 54 -1 -1 -1 54 ) ;55
- X ( -1 -1 -1 -1 -1 -1 -1 55 -1 31 -1 -1 ) ;56
- X ( -1 -1 32 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;57
- X ( 59 -1 11 -1 -1 -1 -1 -1 -1 -1 255 255) ;58
- X ( 60 58 63 -1 -1 -1 255 -1 -1 -1 255 255) ;59
- X ( 61 59 64 -1 -1 -1 -1 -1 -1 -1 255 255) ;60
- X ( 62 60 65 -1 -1 -1 -1 -1 -1 -1 255 255) ;61
- X ( -1 61 66 -1 -1 -1 -1 -1 -1 -1 255 255) ;62
- X ( 64 -1 67 59 -1 -1 -1 -1 -1 -1 255 255) ;63
- X ( 65 63 68 60 -1 -1 -1 -1 -1 -1 255 255) ;64
- X ( 66 64 69 61 -1 -1 -1 -1 -1 -1 255 255) ;65
- X ( -1 65 70 62 -1 -1 -1 -1 -1 -1 255 255) ;66
- X ( 68 -1 71 63 -1 -1 -1 -1 -1 -1 255 255) ;67
- X ( 69 67 72 64 -1 -1 -1 -1 -1 -1 255 255) ;68
- X ( 70 68 73 65 -1 -1 -1 -1 -1 -1 255 255) ;69
- X ( -1 69 74 66 -1 -1 -1 -1 -1 -1 255 255) ;70
- X ( 72 -1 75 67 -1 -1 -1 -1 -1 -1 255 255) ;71
- X ( 73 71 76 68 -1 -1 -1 -1 -1 -1 255 255) ;72
- X ( 74 72 77 69 -1 -1 -1 -1 -1 -1 255 255) ;73
- X ( -1 73 78 70 -1 -1 -1 -1 -1 -1 255 255) ;74
- X ( 76 -1 79 71 -1 -1 -1 -1 -1 -1 255 255) ;75
- X ( 77 75 80 72 -1 -1 -1 -1 -1 -1 255 255) ;76
- X ( 78 76 81 73 -1 -1 -1 -1 -1 -1 255 255) ;77
- X ( -1 77 82 74 -1 -1 -1 -1 -1 -1 255 255) ;78
- X ( 80 -1 -1 75 -1 -1 -1 -1 -1 -1 255 255) ;79
- X ( 81 79 255 76 -1 -1 -1 -1 -1 -1 255 255) ;80
- X ( 82 80 -1 77 -1 -1 -1 -1 -1 -1 255 255) ;81
- X ( -1 81 -1 78 -1 -1 -1 -1 -1 -1 255 255) ;82
- X ( 84 -1 -1 -1 -1 59 -1 -1 -1 -1 255 255) ;83
- X ( -1 83 85 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;84
- X ( 86 -1 87 84 -1 -1 -1 -1 -1 -1 -1 -1 ) ;85
- X ( -1 85 88 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;86
- X ( 88 -1 -1 85 -1 -1 -1 -1 -1 -1 -1 -1 ) ;87
- X ( -1 87 255 86 -1 -1 -1 -1 -1 -1 -1 -1 ) ;88
- X ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 255 -1 ) ;89
- X ( 91 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;90
- X ( 92 90 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;91
- X ( -1 91 -1 -1 -1 -1 -1 -1 93 94 -1 -1 ) ;92
- X ( -1 -1 -1 88 -1 -1 -1 -1 -1 92 -1 -1 ) ;93
- X ( -1 -1 -1 -1 95 -1 -1 -1 92 -1 -1 -1 ) ;94
- X ( -1 -1 -1 -1 -1 -1 -1 94 -1 -1 -1 -1 ) ;95
- X ( 97 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;96
- X ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;97
- X ( 99 97 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;98
- X ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;99
- X ( 101 99 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;100
- X ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;101
- X ( 103 101 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;102
- X ( -1 102 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;103
- X ( 51 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;104
- X )
- X; no so ea we ne se nw sw up do in ot
- X)
- X
- X
- X;;; How the user references *all* objects, permanent and regular.
- X(setq objnames '(
- X (shovel . 0)
- X (lamp . 1)
- X (cpu . 2) (board . 2) (card . 2)
- X (food . 3)
- X (key . 4)
- X (paper . 5)
- X (rms . 6) (statue . 6) (statuette . 6) (stallman . 6)
- X (diamond . 7)
- X (weight . 8)
- X (life . 9) (preserver . 9)
- X (bracelet . 10) (emerald . 10)
- X (gold . 11)
- X (platinum . 12)
- X (towel . 13) (beach . 13)
- X (axe . 14)
- X (silver . 15)
- X (license . 16)
- X (coins . 17)
- X (egg . 18)
- X (jar . 19)
- X (bone . 20)
- X (acid . 21) (nitric . 21)
- X (glycerine . 22)
- X (ruby . 23)
- X (amethyst . 24)
- X (mona . 25)
- X (bill . 26)
- X (floppy . 27) (disk . 27)
- X
- X (boulder . -1)
- X (tree . -2) (trees . -2)
- X (bear . -3)
- X (bin . -4) (bins . -4)
- X (cabinet . -5) (computer . -5) (vax . -5) (ibm . -5)
- X (protoplasm . -6)
- X (dial . -7)
- X (button . -8)
- X (chute . -9)
- X (painting . -10)
- X (bed . -11)
- X (urinal . -12)
- X (URINE . -13)
- X (pipes . -14) (pipe . -14)
- X (box . -15) (slit . -15)
- X (cable . -16) (ethernet . -16)
- X (mail . -17) (drop . -17)
- X (bus . -18)
- X (gate . -19)
- X (cliff . -20)
- X (skeleton . -21) (dinosaur . -21)
- X (fish . -22)
- X (tanks . -23)
- X (switch . -24)
- X (blackboard . -25)
- X (disposal . -26) (garbage . -26)
- X (ladder . -27)
- X (subway . -28) (train . -28)
- X (pc . -29) (drive . -29)
- X))
- X
- X(dolist (x objnames)
- X (let (name)
- X (setq name (concat "obj-" (prin1-to-string (car x))))
- X (eval (list 'defconst (intern name) (cdr x)))))
- X
- X(defconst obj-special 255)
- X
- X;;; The initial setup of what objects are in each room.
- X;;; Regular objects have whole numbers lower than 255.
- X;;; Objects that cannot be taken but might move and are
- X;;; described during room description are negative.
- X;;; Stuff that is described and might change are 255, and are
- X;;; handled specially by 'describe-room.
- X
- X(setq room-objects (list nil
- X
- X (list obj-shovel) ;; treasure-room
- X (list obj-boulder) ;; dead-end
- X nil nil nil
- X (list obj-food) ;; se-nw-road
- X (list obj-bear) ;; bear-hangout
- X nil nil
- X (list obj-special) ;; computer-room
- X (list obj-lamp obj-license obj-silver);; meadow
- X nil nil
- X (list obj-special) ;; sauna
- X nil
- X (list obj-weight obj-life) ;; weight-room
- X nil nil
- X (list obj-rms obj-floppy) ;; thirsty-maze
- X nil nil nil nil nil nil nil
- X (list obj-emerald) ;; hidden-area
- X nil
- X (list obj-gold) ;; misty-room
- X nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- X (list obj-towel obj-special) ;; red-room
- X nil nil nil nil nil
- X (list obj-box) ;; stair-landing
- X nil nil nil
- X (list obj-axe) ;; smal-crawlspace
- X nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- X nil nil nil nil nil
- X (list obj-special) ;; fourth-vermont-intersection
- X nil nil
- X (list obj-coins) ;; fifth-oaktree-intersection
- X nil
- X (list obj-bus) ;; fifth-sycamore-intersection
- X nil
- X (list obj-bone) ;; museum-lobby
- X nil
- X (list obj-jar obj-special obj-ruby) ;; marine-life-area
- X (list obj-nitric) ;; maintenance-room
- X (list obj-glycerine) ;; classroom
- X nil nil nil nil nil
- X (list obj-amethyst) ;; bottom-of-subway-stairs
- X nil nil
- X (list obj-special) ;; question-room-1
- X nil
- X (list obj-special) ;; question-room-2
- X nil
- X (list obj-special) ;; question-room-three
- X nil
- X (list obj-mona) ;; winner's-room
- Xnil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- Xnil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- Xnil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- Xnil))
- X
- X;;; These are objects in a room that are only described in the
- X;;; room description. They are permanent.
- X
- X(setq room-silents (list nil
- X (list obj-tree) ;; dead-end
- X (list obj-tree) ;; e-w-dirt-road
- X nil nil nil nil nil nil
- X (list obj-bin) ;; mailroom
- X (list obj-computer) ;; computer-room
- X nil nil nil
- X (list obj-dial) ;; sauna
- X nil
- X (list obj-ladder) ;; weight-room
- X (list obj-button obj-ladder) ;; maze-button-room
- X nil nil nil
- X nil nil nil nil nil nil nil
- X (list obj-chute) ;; cave-entrance
- X nil nil nil nil nil
- X (list obj-painting obj-bed) ;; bedroom
- X (list obj-urinal obj-pipes) ;; bathroom
- X nil nil nil nil nil nil
- X (list obj-boulder) ;; horseshoe-boulder-room
- X nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- X (list obj-computer obj-cable) ;; gamma-computing-center
- X (list obj-mail) ;; post-office
- X (list obj-gate) ;; main-maple-intersection
- X nil nil nil nil nil nil nil nil nil nil nil nil nil
- X nil nil nil nil nil nil nil
- X (list obj-cliff) ;; fifth-oaktree-intersection
- X nil nil nil
- X (list obj-dinosaur) ;; museum-lobby
- X nil
- X (list obj-fish obj-tanks) ;; marine-life-area
- X (list obj-switch) ;; maintenance-room
- X (list obj-blackboard) ;; classroom
- X (list obj-train) ;; vermont-station
- X nil nil
- X (list obj-disposal) ;; north-end-of-n-s-tunnel
- X nil nil
- X (list obj-computer) ;; endgame-computer-room
- X nil nil nil nil nil nil nil nil
- X (list obj-pc) ;; pc-area
- X nil nil nil nil nil nil
- X))
- X(setq inventory '(1))
- X
- X;; Descriptions of objects, as they appear in the room description, and
- X;; the inventory.
- X
- X(setq objects '(
- X ("There is a shovel here." "A shovel") ;0
- X ("There is a lamp nearby." "A lamp") ;1
- X ("There is a CPU card here." "A computer board") ;2
- X ("There is some food here." "Some food") ;3
- X ("There is a shiny brass key here." "A brass key") ;4
- X ("There is a slip of paper here." "A slip of paper") ;5
- X ("There is a wax statuette of Richard Stallman here." ;6
- X "An RMS statuette")
- X ("There is a shimmering diamond here." "A diamond") ;7
- X ("There is a 10 pound weight here." "A weight") ;8
- X ("There is a life preserver here." "A life preserver");9
- X ("There is an emerald bracelet here." "A bracelet") ;10
- X ("There is a gold bar here." "A gold bar") ;11
- X ("There is a platinum bar here." "A platinum bar") ;12
- X ("There is a beach towel on the ground here." "A beach towel")
- X ("There is an axe here." "An axe") ;14
- X ("There is a silver bar here." "A silver bar") ;15
- X ("There is a bus driver's license here." "A license") ;16
- X ("There are some valuable coins here." "Some valuable coins")
- X ("There is a jewel-encrusted egg here." "A valuable egg") ;18
- X ("There is a glass jar here." "A glass jar") ;19
- X ("There is a dinosaur bone here." "A bone") ;20
- X ("There is a packet of nitric acid here." "Some nitric acid")
- X ("There is a packet of glycerine here." "Some glycerine") ;22
- X ("There is a valuable ruby here." "A ruby") ;23
- X ("There is a valuable amethyst here." "An amethyst") ;24
- X ("The Mona Lisa is here." "The Mona Lisa") ;25
- X ("There is a 100 dollar bill here." "A $100 bill") ;26
- X ("There is a floppy disk here." "A floppy disk") ;27
- X )
- X)
- X
- X;;; Weight of objects
- X
- 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))
- 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))
- X
- X
- X;;; Unix representation of objects.
- X(setq objfiles '(
- X "shovel.o" "lamp.o" "cpu.o" "food.o" "key.o" "paper.o"
- X "rms.o" "diamond.o" "weight.o" "preserver.o" "bracelet.o"
- X "gold.o" "platinum.o" "towel.o" "axe.o" "silver.o" "license.o"
- X "coins.o" "egg.o" "jar.o" "bone.o" "nitric.o" "glycerine.o"
- X "ruby.o" "amethyst.o"
- X ))
- X
- X;;; These are the descriptions for the negative numbered objects from
- X;;; room-objects
- X
- X(setq perm-objects '(
- X nil
- X ("There is a large boulder here.")
- X nil
- X ("There is a ferocious bear here!")
- X nil
- X nil
- X ("There is a worthless pile of protoplasm here.")
- X nil
- X nil
- X nil
- X nil
- X nil
- X nil
- X ("There is a strange smell in this room.")
- X nil
- X (
- X"There is a box with a slit in it, bolted to the wall here."
- X )
- X nil
- X nil
- X ("There is a bus here.")
- X nil
- X nil
- X nil
- X))
- X
- X
- X;;; These are the descriptions the user gets when regular objects are
- X;;; examined.
- X
- X(setq physobj-desc '(
- X"It is a normal shovel with a price tag attached that says $19.99."
- X"The lamp is hand-crafted by Geppetto."
- X"The CPU board has a VAX chip on it. It seems to have
- X2 Megabytes of RAM onboard."
- X"It looks like some kind of meat. Smells pretty bad."
- Xnil
- X"The paper says: Don't forget to type 'help' for help. Also, remember
- Xthis word: 'worms'"
- X"The statuette is of the likeness of Richard Stallman, the author of the
- Xfamous EMACS editor. You notice that he is not wearing any shoes."
- Xnil
- X"You observe that the weight is heavy."
- X"It says S. S. Minnow."
- Xnil
- Xnil
- Xnil
- X"It has a picture of snoopy on it."
- Xnil
- Xnil
- X"It has your picture on it!"
- X"They are old coins from the 19th century."
- X"It is a valuable Fabrege egg."
- X"It is a a plain glass jar."
- Xnil
- Xnil
- Xnil
- Xnil
- Xnil
- X )
- X)
- X
- X;;; These are the descriptions the user gets when non-regular objects
- X;;; are examined.
- X
- X(setq permobj-desc '(
- X nil
- X"It is just a boulder. It cannot be moved."
- X"They are palm trees with a bountiful supply of coconuts in them."
- X"It looks like a grizzly to me."
- X"All of the bins are empty. Looking closely you can see that there
- Xare names written at the bottom of each bin, but most of them are
- Xfaded away so that you cannot read them. You can only make out three
- Xnames:
- X Jeffrey Collier
- X Robert Toukmond
- X Thomas Stock
- X"
- X nil
- X"It is just a garbled mess."
- X"The dial points to a temperature scale which has long since faded away."
- Xnil
- Xnil
- X"It is a velvet painting of Elvis Presly. It seems to be nailed to the
- Xwall, and you cannot move it."
- X"It is a queen sized bed, with a very firm mattress."
- X"The urinal is very clean compared with everything else in the cave. There
- Xisn't even any rust. Upon close examination you realize that the drain at the
- Xbottom is missing, and there is just a large hole leading down the
- Xpipes into nowhere. The hole is too small for a person to fit in. The
- Xflush handle is so clean that you can see your reflection in it."
- Xnil
- Xnil
- X"The box has a slit in the top of it, and on it, in sloppy handwriting, is
- Xwritten: 'For key upgrade, put key in here.'"
- Xnil
- X"It says 'express mail' on it."
- X"It is a 35 passenger bus with the company name 'mobytours' on it."
- X"It is a large metal gate that is too big to climb over."
- X"It is a HIGH cliff."
- X"Unfortunately you do not know enough about dinosaurs to tell very much about
- Xit. It is very big, though."
- X"The fish look like they were once quite beautiful."
- Xnil
- Xnil
- Xnil
- Xnil
- X"It is a normal ladder that is permanently attached to the hole."
- X"It is a passenger train that is ready to go."
- X"It is a personal computer that has only one floppy disk drive."
- X )
- X)
- X
- X(setq diggables (list nil nil nil (list obj-cpu) nil nil nil nil nil nil nil
- X nil nil nil nil nil nil nil nil nil nil ;11-20
- X nil nil nil nil nil nil nil nil nil nil ;21-30
- X nil nil nil nil nil nil nil nil nil nil ;31-40
- X nil (list obj-platinum) nil nil nil nil nil nil nil nil))
- X
- X(setq scroll-step 2)
- X(setq room-shorts nil)
- X(dolist (x rooms)
- X (setq room-shorts
- X (append room-shorts (list (downcase (space-to-hyphen
- X (cadr x)))))))
- X
- X(setq endgame-questions '(
- X (
- X"What is your password on the machine called 'pokey'?" "robert")
- X (
- X"What password did you use during anonymous ftp to gamma?" "foo")
- X (
- X"Excluding the endgame, how many places are there where you can put
- Xtreasures for points?" "4" "four")
- X (
- X"What is your login name on the 'endgame' machine?" "toukmond"
- X)
- X (
- X"What is the nearest whole dollar to the price of the shovel?" "20" "twenty")
- X (
- X"What is the name of the bus company serving the town?" "mobytours")
- X (
- X"Give either of the two last names in the mailroom, other than your own."
- X"collier" "stock")
- X (
- X"What cartoon character is on the towel?" "snoopy")
- X (
- X"What is the last name of the author of EMACS?" "stallman")
- X (
- X"How many megabytes of memory is on the CPU board for the Vax?" "2")
- X (
- X"Which street in town is named after a U.S. state?" "vermont")
- X (
- X"How many pounds did the weight weigh?" "ten" "10")
- X (
- X"Name the STREET which runs right over the subway stop." "fourth" "4" "4th")
- X (
- X"How many corners are there in town (excluding the one with the Post Office)?"
- X "24" "twentyfour" "twenty-four")
- X (
- X"What type of bear was hiding your key?" "grizzly")
- X (
- X"Name either of the two objects you found by digging." "cpu" "card" "vax"
- X"board" "platinum")
- X (
- X"What network protocol is used between pokey and gamma?" "tcp/ip" "ip" "tcp")
- X))
- X
- X(let (a)
- X (setq a 0)
- X (dolist (x room-shorts)
- X (eval (list 'defconst (intern x) a))
- X (setq a (+ a 1))))
- X
- END_OF_FILE
- if test 42360 -ne `wc -c <'dun-globals.el'`; then
- echo shar: \"'dun-globals.el'\" unpacked with wrong size!
- fi
- chmod +x 'dun-globals.el'
- # end of 'dun-globals.el'
- fi
- if test -f 'dun-main.el' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'dun-main.el'\"
- else
- echo shar: Extracting \"'dun-main.el'\" \(2570 characters\)
- sed "s/^X//" >'dun-main.el' <<'END_OF_FILE'
- X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X; ;
- X; dunnet.el Version 2.0 ;
- X; ;
- X; Ron Schnell (ronnie@media.mit.edu) ;
- X; ;
- X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- X
- X
- X;; This is the startup file. It loads in the other files, and sets up
- X;; the functions to be bound to keys if you play in window-mode.
- X
- X(if nil
- X (eval-and-compile (setq byte-compile-warnings nil)))
- X
- X;;;;; The log file should be set for your system, and it must
- X;;;;; be writeable by all.
- X
- X (setq log-file "/usr/local/dunscore")
- X
- X(defun dungeon-mode ()
- X "Major mode for running dungeon"
- X (interactive)
- X (text-mode)
- X (use-local-map dungeon-mode-map)
- X (setq major-mode 'dungeon-mode)
- X (setq mode-name "Dungeon")
- X)
- X
- X(setq load-path (append load-path (list ".")))
- X
- X
- X(defun dungeon-parse (arg)
- X "foo"
- X (interactive "*p")
- X (beginning-of-line)
- X (setq beg (+ (point) 1))
- X (end-of-line)
- X (if (and (not (= beg (point))) (not (< (point) beg))
- X (string= ">" (buffer-substring (- beg 1) beg)))
- X (progn
- X (setq line (downcase (buffer-substring beg (point))))
- X (princ line)
- X (if (eq (parse ignore verblist line) -1)
- X (mprinc "I don't understand that.\n")))
- X (goto-char (point-max))
- X (mprinc "\n"))
- X (dungeon-messages))
- X
- X(defun dungeon-messages ()
- X (if dead
- X (text-mode)
- X (if (eq dungeon-mode 'dungeon)
- X (progn
- X (if (not (= room current-room))
- X (progn
- X (describe-room current-room)
- X (setq room current-room)))
- X (fix-screen)
- X (mprinc ">")))))
- X
- X(defun dungeon-start ()
- X (interactive)
- X (switch-to-buffer "*dungeon*")
- X (dungeon-mode)
- X (setq dead nil)
- X (setq room 0)
- X (dungeon-messages))
- X(setq load-path (append load-path '("/usr/local/emacs/lisp")))
- X
- X(require 'cl)
- X
- X(defun batch-dungeon ()
- X (setq load-path (append load-path (list ".")))
- X (load "dun-batch")
- X (setq visited '(27))
- X (mprinc "\n")
- X (dungeon-batch-loop))
- X
- X
- X(load "dun-commands")
- X(load "dun-util")
- X(if (setq glob (get-glob-dat))
- X (load-d glob)
- X (load "dun-globals"))
- X
- X(load "dun-unix")
- X(load "dun-dos")
- X(load "dun-save")
- X(random t)
- X(setq tloc (+ 60 (% (abs (random)) 18)))
- X(replace room-objects tloc (append (nth tloc room-objects) (list 18)))
- X(setq tcomb (+ 100 (% (abs (random)) 899)))
- X(setq combination (prin1-to-string tcomb))
- END_OF_FILE
- if test 2570 -ne `wc -c <'dun-main.el'`; then
- echo shar: \"'dun-main.el'\" unpacked with wrong size!
- fi
- chmod +x 'dun-main.el'
- # end of 'dun-main.el'
- fi
- if test -f 'dun-save.el' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'dun-save.el'\"
- else
- echo shar: Extracting \"'dun-save.el'\" \(3479 characters\)
- sed "s/^X//" >'dun-save.el' <<'END_OF_FILE'
- X
- X;;;;;;;;;;;;;;;;;;;
- X;
- X;
- X; Save and restore
- X;
- X;
- X;;;;;;;;;;;;;;;;;;;
- X
- X(if nil
- X (eval-and-compile (setq byte-compile-warnings nil)))
- X
- X(defun save-game (filename)
- X (if (not (setq filename (car filename)))
- X (mprincl "You must supply a filename for the save.")
- X (if (file-exists-p filename)
- X (delete-file filename))
- X (setq numsaves (1+ numsaves))
- X (make-save-buffer)
- X (save-val "current-room")
- X (save-val "computer")
- X (save-val "door1")
- X (save-val "combination")
- X (save-val "visited")
- X (save-val "diggables")
- X (save-val "key-level")
- X (save-val "floppy")
- X (save-val "numsaves")
- X (save-val "numcmds")
- X (save-val "logged-in")
- X (save-val "dungeon-mode")
- X (save-val "jar")
- X (save-val "lastdir")
- X (save-val "black")
- X (save-val "nomail")
- X (save-val "unix-verbs")
- X (save-val "hole")
- X (save-val "uncompressed")
- X (save-val "ethernet")
- X (save-val "sauna-level")
- X (save-val "room-objects")
- X (save-val "room-silents")
- X (save-val "inventory")
- X (save-val "endgame-question")
- X (save-val "endgame")
- X (save-val "endgame-questions")
- X (save-val "cdroom")
- X (save-val "cdpath")
- X (save-val "correct-answer")
- X (save-val "inbus")
- X (if (compile-save-out filename)
- X (mprincl "Error saving to file.")
- X (do-logfile 'save nil)
- X (switch-to-buffer "*dungeon*")
- X (princ "")
- X (mprincl "Done."))))
- X
- X(defun make-save-buffer ()
- X (switch-to-buffer (get-buffer-create "*save-dungeon*"))
- X (erase-buffer))
- X
- X(defun compile-save-out (filename)
- X (let (ferror)
- X (setq ferror nil)
- X (condition-case nil
- X (dun-rot13)
- X (error (setq ferror t)))
- X (if (not ferror)
- X (progn
- X (goto-char (point-min))))
- X (condition-case nil
- X (write-region 1 (point-max) filename nil 1)
- X (error (setq ferror t)))
- X (kill-buffer (current-buffer))
- X ferror))
- X
- X
- X(defun save-val (varname)
- X (let (value)
- X (setq varname (intern varname))
- X (setq value (eval varname))
- X (minsert "(setq ")
- X (minsert varname)
- X (minsert " ")
- X (if (or (listp value)
- X (symbolp value))
- X (minsert "'"))
- X (if (stringp value)
- X (minsert "\""))
- X (minsert value)
- X (if (stringp value)
- X (minsert "\""))
- X (minsertl ")")))
- X
- X
- X(defun restore (args)
- X (let (file)
- X (if (not (setq file (car args)))
- X (mprincl "You must supply a filename.")
- X (if (not (load-d file))
- X (mprincl "Could not load restore file.")
- X (mprincl "Done.")
- X (setq room 0)))))
- X
- X
- X(defun do-logfile (type how)
- X (let (ferror newscore)
- X (setq ferror nil)
- X (switch-to-buffer (get-buffer-create "*score*"))
- X (erase-buffer)
- X (condition-case nil
- X (insert-file-contents log-file)
- X (error (setq ferror t)))
- X (unless ferror
- X (goto-char (point-max))
- X (minsert (current-time-string))
- X (minsert " ")
- X (minsert (user-login-name))
- X (minsert " ")
- X (if (eq type 'save)
- X (minsert "saved ")
- X (if (= (endgame-score) 110)
- X (minsert "won ")
- X (if (not how)
- X (minsert "quit ")
- X (minsert "killed by ")
- X (minsert how)
- X (minsert " "))))
- X (minsert "at ")
- X (minsert (cadr (nth (abs room) rooms)))
- X (minsert ". score: ")
- X (if (> (endgame-score) 0)
- X (minsert (setq newscore (+ 90 (endgame-score))))
- X (minsert (setq newscore (reg-score))))
- X (minsert " saves: ")
- X (minsert numsaves)
- X (minsert " commands: ")
- X (minsert numcmds)
- X (minsert "\n")
- X (write-region 1 (point-max) log-file nil 1))
- X (kill-buffer (current-buffer))))
- END_OF_FILE
- if test 3479 -ne `wc -c <'dun-save.el'`; then
- echo shar: \"'dun-save.el'\" unpacked with wrong size!
- fi
- chmod +x 'dun-save.el'
- # end of 'dun-save.el'
- fi
- if test -f 'makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makefile'\"
- else
- echo shar: Extracting \"'makefile'\" \(245 characters\)
- sed "s/^X//" >'makefile' <<'END_OF_FILE'
- X
- Xall: dun-globals.el
- X -mkdir ../bin
- X -/amber/nview/tom/emacs-19.15/src/emacs -batch -l bytecomp -f batch-byte-compile *.el
- X -emacs -batch -l `pwd`/dun-util -f compile-globals
- X -rm dun-globals.elc
- X -mv dun-globals.dat ../bin
- X -mv *.elc ../bin
- END_OF_FILE
- if test 245 -ne `wc -c <'makefile'`; then
- echo shar: \"'makefile'\" unpacked with wrong size!
- fi
- # end of 'makefile'
- fi
- echo shar: End of archive 1 \(of 3\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 3 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-