home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-06-27 | 41.4 KB | 1,142 lines |
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; Globals
- ;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- ;;;; IMPORTANT
- ;;;; All globals which can change must be saved from 'save-game. Add
- ;;;; all new globals to bottom of file.
-
- (if nil
- (eval-and-compile (setq byte-compile-warnings nil)))
- (setq visited '(27))
- (setq current-room 1)
- (setq exitf nil)
- (setq badcd nil)
- (defvar dungeon-mode-map nil)
- (setq dungeon-mode-map (make-sparse-keymap))
- (define-key dungeon-mode-map "\r" 'dungeon-parse)
- (defvar dungeon-batch-map (make-keymap))
- (if (string= (substring emacs-version 0 2) "18")
- (let (n)
- (setq n 32)
- (while (< 0 (setq n (- n 1)))
- (aset dungeon-batch-map n 'dungeon-nil)))
- (let (n)
- (setq n 32)
- (while (< 0 (setq n (- n 1)))
- (aset (car (cdr dungeon-batch-map)) n 'dungeon-nil))))
- (define-key dungeon-batch-map "\r" 'exit-minibuffer)
- (define-key dungeon-batch-map "\n" 'exit-minibuffer)
- (setq computer nil)
- (setq floppy nil)
- (setq door1 'locked)
- (setq key-level 0)
- (setq hole nil)
- (setq correct-answer nil)
- (setq lastdir 0)
- (setq numsaves 0)
- (setq jar nil)
- (setq numcmds 0)
- (setq wizard nil)
- (setq endgame-question nil)
- (setq logged-in nil)
- (setq dungeon-mode 'dungeon)
- (setq unix-verbs '((ls . ls) (ftp . ftp) (echo . echo) (exit . uexit)
- (cd . dunnet-cd) (pwd . dunnet-pwd) (rlogin . rlogin)
- (uncompress . uncompress) (cat . cat) (zippy . zippy)))
-
- (setq dos-verbs '((dir . dos-dir) (type . dos-type) (exit . dos-exit)
- (command . dos-spawn) (b: . dos-invd) (c: . dos-invd)
- (a: . dos-nil)))
-
-
- (setq batch-mode nil)
-
- (setq cdpath "/usr/toukmond")
- (setq cdroom -10)
- (setq uncompressed nil)
- (setq ethernet t)
- (setq restricted '(room-objects dungeon-map rooms room-silents combination))
- (setq path "/usr/toukmond")
- (setq ftptype 'ascii)
- (setq endgame nil)
- (setq gottago t)
- (setq black nil)
-
- (setq rooms '(
- (
- "You are in the treasure room. A door leads out to the north."
- "Treasure room"
- )
- (
- "You are at a dead end of a dirt road. The road goes to the east.
- In the distance you can see that it will eventually fork off. The
- trees here are very tall royal palms, and they are spaced equidistant
- from each other."
- "Dead end"
- )
- (
- "You are on the continuation of a dirt road. There are more trees on
- both sides of you. The road continues to the east and west."
- "E/W Dirt road"
- )
- (
- "You are at a fork of two passages, one to the northeast, and one to the
- southeast. The ground here seems very soft. You can also go back west."
- "Fork"
- )
- (
- "You are on a northeast/southwest road."
- "NE/SW road"
- )
- (
- "You are at the end of the road. There is a building in front of you
- to the northeast, and the road leads back to the southwest."
- "Building front"
- )
- (
- "You are on a southeast/northwest road."
- "SE/NW road"
- )
- (
- "You are standing at the end of a road. A passage leads back to the
- northwest."
- "Bear hangout"
- )
- (
- "You are in the hallway of an old building. There are rooms to the east
- and west, and doors leading out to the north and south."
- "Old Building hallway"
- )
- (
- "You are in a mailroom. There are many bins where the mail is usually
- kept. The exit is to the west."
- "Mailroom"
- )
- (
- "You are in a computer room. It seems like most of the equipment has
- been removed. There is a VAX 11/780 in front of you, however, with
- one of the cabinets wide open. A sign on the front of the machine
- says: This VAX is named 'pokey'. To type on the console, use the
- 'type' command. The exit is to the east."
- "Computer room"
- )
- (
- "You are in a meadow in the back of an old building. A small path leads
- to the west, and a door leads to the south."
- "Meadow"
- )
- (
- "You are in a round, stone room with a door to the east. There
- is a sign on the wall that reads: 'receiving room'."
- "Receiving room"
- )
- (
- "You are at the south end of a hallway that leads to the north. There
- are rooms to the east and west."
- "Northbound Hallway"
- )
- (
- "You are in a sauna. There is nothing in the room except for a dial
- on the wall. A door leads out to west."
- "Sauna"
- )
- (
- "You are at the end of a north/south hallway. You can go back to the south,
- or off to a room to the east."
- "End of N/S Hallway"
- )
- (
- "You are in an old weight room. All of the equipment is either destroyed
- or completely broken. There is a door out to the west, and there is a ladder
- leading down a hole in the floor."
- "Weight room" ;16
- )
- (
- "You are in a maze of twisty little passages, all alike.
- There is a button on the ground here."
- "Maze button room"
- )
- (
- "You are in a maze of little twisty passages, all alike."
- "Maze"
- )
- (
- "You are in a maze of thirsty little passages, all alike."
- "Maze" ;19
- )
- (
- "You are in a maze of twenty little passages, all alike."
- "Maze"
- )
- (
- "You are in a daze of twisty little passages, all alike."
- "Maze" ;21
- )
- (
- "You are in a maze of twisty little cabbages, all alike."
- "Maze" ;22
- )
- (
- "You are in a reception area for a health and fitness center. The place
- appears to have been recently ransacked, and nothing is left. There is
- a door out to the south, and a crawlspace to the southeast."
- "Reception area"
- )
- (
- "You are outside a large building to the north which used to be a health
- and fitness center. A road leads to the south."
- "Health Club front"
- )
- (
- "You are at the north side of a lake. On the other side you can see
- a road which leads to a cave. The water appears very deep."
- "Lakefront North"
- )
- (
- "You are at the south side of a lake. A road goes to the south."
- "Lakefront South"
- )
- (
- "You are in a well-hidden area off to the side of a road. Back to the
- northeast through the brush you can see the bear hangout."
- "Hidden area"
- )
- (
- "The entrance to a cave is to the south. To the north, a road leads
- towards a deep lake. On the ground nearby there is a chute, with a sign
- that says 'put treasures here for points'."
- "Cave Entrance" ;28
- )
- (
- "You are in a misty, humid room carved into a mountain.
- To the north is the remains of a rockslide. To the east, a small
- passage leads away into the darkness." ;29
- "Misty Room"
- )
- (
- "You are in an east/west passageway. The walls here are made of
- multicolored rock and are quite beautiful."
- "Cave E/W passage" ;30
- )
- (
- "You are at the junction of two passages. One goes north/south, and
- the other goes west."
- "N/S/W Junction" ;31
- )
- (
- "You are at the north end of a north/south passageway. There are stairs
- leading down from here. There is also a door leading west."
- "North end of cave passage" ;32
- )
- (
- "You are at the south end of a north/south passageway. There is a hole
- in the floor here, into which you could probably fit."
- "South end of cave passage" ;33
- )
- (
- "You are in what appears to be a worker's bedroom. There is a queen-
- sized bed in the middle of the room, and a painting hanging on the
- wall. A door leads to another room to the south, and stairways
- lead up and down."
- "Bedroom" ;34
- )
- (
- "You are in a bathroom built for workers in the cave. There is a
- urinal hanging on the wall, and some exposed pipes on the opposite
- wall where a sink used to be. To the north is a bedroom."
- "Bathroom" ;35
- )
- (
- "This is a marker for the urinal. User will not see this, but it
- is a room that can contain objects."
- "Urinal" ;36
- )
- (
- "You are at the northeast end of a northeast/southwest passageway.
- Stairs lead up out of sight."
- "Ne end of ne/sw cave passage" ;37
- )
- (
- "You are at the junction of northeast/southwest and east/west passages."
- "Ne/sw-e/w junction" ;38
- )
- (
- "You are at the southwest end of a northeast/southwest passageway."
- "Sw end of ne/sw cave passage" ;39
- )
- (
- "You are at the east end of an e/w passage. There are stairs leading up
- to a room above."
- "East end of e/w cave passage" ;40
- )
- (
- "You are at the west end of an e/w passage. There is a hole on the ground
- which leads down out of sight."
- "West end of e/w cave passage" ;41
- )
- (
- "You are in a room which is bare, except for a horseshoe shaped boulder
- in the center. Stairs lead down from here." ;42
- "Horseshoe boulder room"
- )
- (
- "You are in a room which is completely empty. Doors lead out to the north
- and east."
- "Empty room" ;43
- )
- (
- "You are in an empty room. Interestingly enough, the stones in this
- room are painted blue. Doors lead out to the east and south." ;44
- "Blue room"
- )
- (
- "You are in an empty room. Interestingly enough, the stones in this
- room are painted yellow. Doors lead out to the south and west." ;45
- "Yellow room"
- )
- (
- "You are in an empty room. Interestingly enough, the stones in this room
- are painted red. Doors lead out to the west and north."
- "Red room" ;46
- )
- (
- "You are in the middle of a long north/south hallway." ;47
- "Long n/s hallway"
- )
- (
- "You are 3/4 of the way towards the north end of a long north/south hallway."
- "3/4 north" ;48
- )
- (
- "You are at the north end of a long north/south hallway. There are stairs
- leading upwards."
- "North end of long hallway" ;49
- )
- (
- "You are 3/4 of the way towards the south end of a long north/south hallway."
- "3/4 south" ;50
- )
- (
- "You are at the south end of a long north/south hallway. There is a hole
- to the south."
- "South end of long hallway" ;51
- )
- (
- "You are at a landing in a stairwell which continues up and down."
- "Stair landing" ;52
- )
- (
- "You are at the continuation of an up/down staircase."
- "Up/down staircase" ;53
- )
- (
- "You are at the top of a staircase leading down. A crawlway leads off
- to the northeast."
- "Top of staircase." ;54
- )
- (
- "You are in a crawlway that leads northeast or southwest."
- "Ne crawlway" ;55
- )
- (
- "You are in a small crawlspace. There is a hole in the ground here, and
- a small passage back to the southwest."
- "Small crawlspace" ;56
- )
- (
- "You are in the Gamma Computing Center. An IBM 3090/600s is whirring
- away in here. There is an ethernet cable coming out of one of the units,
- and going through the ceiling. There is no console here on which you
- could type."
- "Gamma computing center" ;57
- )
- (
- "You are near the remains of a post office. There is a mail drop on the
- face of the building, but you cannot see where it leads. A path leads
- back to the east, and a road leads to the north."
- "Post office" ;58
- )
- (
- "You are at the intersection of Main Street and Maple Ave. Main street
- runs north and south, and Maple Ave runs east off into the distance.
- If you look north and east you can see many intersections, but all of
- the buildings that used to stand here are gone. Nothing remains except
- street signs.
- There is a road to the northwest leading to a gate that guards a building."
- "Main-Maple intersection" ;59
- )
- (
- "You are at the intersection of Main Street and the west end of Oaktree Ave."
- "Main-Oaktree intersection" ;60
- )
- (
- "You are at the intersection of Main Street and the west end of Vermont Ave."
- "Main-Vermont intersection" ;61
- )
- (
- "You are at the north end of Main Street at the west end of Sycamore Ave." ;62
- "Main-Sycamore intersection"
- )
- (
- "You are at the south end of First Street at Maple Ave." ;63
- "First-Maple intersection"
- )
- (
- "You are at the intersection of First Street and Oaktree Ave." ;64
- "First-Oaktree intersection"
- )
- (
- "You are at the intersection of First Street and Vermont Ave." ;65
- "First-Vermont intersection"
- )
- (
- "You are at the north end of First Street at Sycamore Ave." ;66
- "First-Sycamore intersection"
- )
- (
- "You are at the south end of Second Street at Maple Ave." ;67
- "Second-Maple intersection"
- )
- (
- "You are at the intersection of Second Street and Oaktree Ave." ;68
- "Second-Oaktree intersection"
- )
- (
- "You are at the intersection of Second Street and Vermont Ave." ;69
- "Second-Vermont intersection"
- )
- (
- "You are at the north end of Second Street at Sycamore Ave." ;70
- "Second-Sycamore intersection"
- )
- (
- "You are at the south end of Third Street at Maple Ave." ;71
- "Third-Maple intersection"
- )
- (
- "You are at the intersection of Third Street and Oaktree Ave." ;72
- "Third-Oaktree intersection"
- )
- (
- "You are at the intersection of Third Street and Vermont Ave." ;73
- "Third-Vermont intersection"
- )
- (
- "You are at the north end of Third Street at Sycamore Ave." ;74
- "Third-Sycamore intersection"
- )
- (
- "You are at the south end of Fourth Street at Maple Ave." ;75
- "Fourth-Maple intersection"
- )
- (
- "You are at the intersection of Fourth Street and Oaktree Ave." ;76
- "Fourth-Oaktree intersection"
- )
- (
- "You are at the intersection of Fourth Street and Vermont Ave." ;77
- "Fourth-Vermont intersection"
- )
- (
- "You are at the north end of Fourth Street at Sycamore Ave." ;78
- "Fourth-Sycamore intersection"
- )
- (
- "You are at the south end of Fifth Street at the east end of Maple Ave." ;79
- "Fifth-Maple intersection"
- )
- (
- "You are at the intersection of Fifth Street and the east end of Oaktree Ave.
- There is a cliff off to the east."
- "Fifth-Oaktree intersection" ;80
- )
- (
- "You are at the intersection of Fifth Street and the east end of Vermont Ave."
- "Fifth-Vermont intersection" ;81
- )
- (
- "You are at the north end of Fifth Street and the east end of Sycamore Ave."
- "Fifth-Sycamore intersection" ;82
- )
- (
- "You are in front of the Museum of Natural History. A door leads into
- the building to the north, and a road leads to the southeast."
- "Museum entrance" ;83
- )
- (
- "You are in the main lobby for the Museum of Natural History. In the center
- of the room is the huge skeleton of a dinosaur. Doors lead out to the
- south and east."
- "Museum lobby" ;84
- )
- (
- "You are in the geological display. All of the objects that used to
- be on display are missing. There are rooms to the east, west, and
- north."
- "Geological display" ;85
- )
- (
- "You are in the marine life area. The room is filled with fish tanks,
- which are filled with dead fish that have apparently died due to
- starvation. Doors lead out to the south and east."
- "Marine life area" ;86
- )
- (
- "You are in some sort of maintenance room for the museum. There is a
- switch on the wall labeled 'BL'. There are doors to the west and north."
- "Maintenance room" ;87
- )
- (
- "You are in a classroom where school children were taught about natural
- history. On the blackboard is written, 'No children allowed downstairs.'
- There is a door to the east with an 'exit' sign on it. There is another
- door to the west."
- "Classroom" ;88
- )
- (
- "You are at the Vermont St. subway station. A train is sitting here waiting."
- "Vermont station" ;89
- )
- (
- "You are at the Museum subway stop. A passage leads off to the north."
- "Museum station" ;90
- )
- (
- "You are in a north/south tunnel."
- "N/S tunnel" ;91
- )
- (
- "You are at the north end of a north/south tunnel. Stairs lead up and
- down from here. There is a garbage disposal here."
- "North end of n/s tunnel" ;92
- )
- (
- "You are at the top of some stairs near the subway station. There is
- a door to the west."
- "Top of subway stairs" ;93
- )
- (
- "You are at the bottom of some stairs near the subway station. There is
- a room to the northeast."
- "Bottom of subway stairs" ;94
- )
- (
- "You are in another computer room. There is a computer in here larger
- than you have ever seen. It has no manufacturers name on it, but it
- does have a sign that says: This machine's name is 'endgame'. The
- exit is to the southwest. There is no console here on which you could
- type."
- "Endgame computer room" ;95
- )
- (
- "You are in a north/south hallway."
- "Endgame n/s hallway" ;96
- )
- (
- "You have reached a question room. You must answer a question correctly in
- order to get by. Use the 'answer' command to answer the question."
- "Question room 1" ;97
- )
- (
- "You are in a north/south hallway."
- "Endgame n/s hallway" ;98
- )
- (
- "You are in a second question room."
- "Question room 2" ;99
- )
- (
- "You are in a north/south hallway."
- "Endgame n/s hallway" ;100
- )
- (
- "You are in a third question room."
- "Question room 3" ;101
- )
- (
- "You are in the endgame treasure room. A door leads out to the north, and
- a hallway leads to the south."
- "Endgame treasure room" ;102
- )
- (
- "You are in the winner's room. A door leads back to the south."
- "Winner's room" ;103
- )
- (
- "You have reached a dead end. There is a PC on the floor here. Above
- it is a sign that reads:
- Type the 'reset' command to type on the PC.
- A hole leads north."
- "PC area" ;104
- )
- ))
-
- (setq light-rooms '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 24 25 26 27 28 58 59
- 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
- 77 78 79 80 81 82 83))
-
- (setq verblist '((die . die) (ne . ne) (north . n) (south . s) (east . e)
- (west . w) (u . up) (d . down) (i . inven)
- (inventory . inven) (look . examine) (n . n) (s . s) (e . e)
- (w . w) (se . se) (nw . nw) (sw . sw) (up . up)
- (down . down) (in . in) (out . out) (go . go) (drop . drop)
- (southeast . se) (southwest . sw) (northeast . ne)
- (northwest . nw) (save . save-game) (restore . restore)
- (long . long) (dig . dig) (shake . shake) (wave . shake)
- (examine . examine) (describe . examine) (climb . climb)
- (eat . eat) (put . dput) (type . type) (insert . dput)
- (score . score) (help . help) (quit . quit) (read . examine)
- (verbose . long) (urinate . piss) (piss . piss)
- (flush . flush) (sleep . dsleep) (lie . dsleep) (x . examine)
- (break . break) (drive . drive) (board . in) (enter . in)
- (turn . turn) (press . press) (push . press) (swim . swim)
- (on . in) (off . out) (chop . break) (switch . press)
- (cut . break) (exit . out) (leave . out) (reset . dun-power)
- (flick . press) (superb . superb) (answer . answer)
- (throw . drop) (l . examine) (take . take) (get . take)
- (feed . dun-feed)))
-
- (setq inbus nil)
- (setq nomail nil)
- (setq ignore '(the to at))
- (setq mode 'moby)
- (setq sauna-level 0)
-
- (defconst north 0)
- (defconst south 1)
- (defconst east 2)
- (defconst west 3)
- (defconst northeast 4)
- (defconst southeast 5)
- (defconst northwest 6)
- (defconst southwest 7)
- (defconst up 8)
- (defconst down 9)
- (defconst in 10)
- (defconst out 11)
-
- (setq dungeon-map '(
- ; no so ea we ne se nw sw up do in ot
- ( 96 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;0
- ( -1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;1
- ( -1 -1 3 1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;2
- ( -1 -1 -1 2 4 6 -1 -1 -1 -1 -1 -1 ) ;3
- ( -1 -1 -1 -1 5 -1 -1 3 -1 -1 -1 -1 ) ;4
- ( -1 -1 -1 -1 255 -1 -1 4 -1 -1 255 -1 ) ;5
- ( -1 -1 -1 -1 -1 7 3 -1 -1 -1 -1 -1 ) ;6
- ( -1 -1 -1 -1 -1 255 6 27 -1 -1 -1 -1 ) ;7
- ( 255 5 9 10 -1 -1 -1 5 -1 -1 -1 5 ) ;8
- ( -1 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 ) ;9
- ( -1 -1 8 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;10
- ( -1 8 -1 58 -1 -1 -1 -1 -1 -1 -1 -1 ) ;11
- ( -1 -1 13 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;12
- ( 15 -1 14 12 -1 -1 -1 -1 -1 -1 -1 -1 ) ;13
- ( -1 -1 -1 13 -1 -1 -1 -1 -1 -1 -1 -1 ) ;14
- ( -1 13 16 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;15
- ( -1 -1 -1 15 -1 -1 -1 -1 -1 17 16 -1 ) ;16
- ( -1 -1 17 17 17 17 255 17 255 17 -1 -1 ) ;17
- ( 18 18 18 18 18 -1 18 18 19 18 -1 -1 ) ;18
- ( -1 18 18 19 19 20 19 19 -1 18 -1 -1 ) ;19
- ( -1 -1 -1 18 -1 -1 -1 -1 -1 21 -1 -1 ) ;20
- ( -1 -1 -1 -1 -1 20 22 -1 -1 -1 -1 -1 ) ;21
- ( 18 18 18 18 16 18 23 18 18 18 18 18 ) ;22
- ( -1 255 -1 -1 -1 19 -1 -1 -1 -1 -1 -1 ) ;23
- ( 23 25 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;24
- ( 24 255 -1 -1 -1 -1 -1 -1 -1 -1 255 -1 ) ;25
- (255 28 -1 -1 -1 -1 -1 -1 -1 -1 255 -1 ) ;26
- ( -1 -1 -1 -1 7 -1 -1 -1 -1 -1 -1 -1 ) ;27
- ( 26 255 -1 -1 -1 -1 -1 -1 -1 -1 255 -1 ) ;28
- ( -1 -1 30 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;29
- ( -1 -1 31 29 -1 -1 -1 -1 -1 -1 -1 -1 ) ;30
- ( 32 33 -1 30 -1 -1 -1 -1 -1 -1 -1 -1 ) ;31
- ( -1 31 -1 255 -1 -1 -1 -1 -1 34 -1 -1 ) ;32
- ( 31 -1 -1 -1 -1 -1 -1 -1 -1 35 -1 -1 ) ;33
- ( -1 35 -1 -1 -1 -1 -1 -1 32 37 -1 -1 ) ;34
- ( 34 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;35
- ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;36
- ( -1 -1 -1 -1 -1 -1 -1 38 34 -1 -1 -1 ) ;37
- ( -1 -1 40 41 37 -1 -1 39 -1 -1 -1 -1 ) ;38
- ( -1 -1 -1 -1 38 -1 -1 -1 -1 -1 -1 -1 ) ;39
- ( -1 -1 -1 38 -1 -1 -1 -1 42 -1 -1 -1 ) ;40
- ( -1 -1 38 -1 -1 -1 -1 -1 -1 43 -1 -1 ) ;41
- ( -1 -1 -1 -1 -1 -1 -1 -1 -1 40 -1 -1 ) ;42
- ( 44 -1 46 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;43
- ( -1 43 45 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;44
- ( -1 46 -1 44 -1 -1 -1 -1 -1 -1 -1 -1 ) ;45
- ( 45 -1 -1 43 -1 -1 -1 -1 -1 255 -1 -1 ) ;46
- ( 48 50 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;47
- ( 49 47 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;48
- ( -1 48 -1 -1 -1 -1 -1 -1 52 -1 -1 -1 ) ;49
- ( 47 51 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;50
- ( 50 104 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;51
- ( -1 -1 -1 -1 -1 -1 -1 -1 53 49 -1 -1 ) ;52
- ( -1 -1 -1 -1 -1 -1 -1 -1 54 52 -1 -1 ) ;53
- ( -1 -1 -1 -1 55 -1 -1 -1 -1 53 -1 -1 ) ;54
- ( -1 -1 -1 -1 56 -1 -1 54 -1 -1 -1 54 ) ;55
- ( -1 -1 -1 -1 -1 -1 -1 55 -1 31 -1 -1 ) ;56
- ( -1 -1 32 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;57
- ( 59 -1 11 -1 -1 -1 -1 -1 -1 -1 255 255) ;58
- ( 60 58 63 -1 -1 -1 255 -1 -1 -1 255 255) ;59
- ( 61 59 64 -1 -1 -1 -1 -1 -1 -1 255 255) ;60
- ( 62 60 65 -1 -1 -1 -1 -1 -1 -1 255 255) ;61
- ( -1 61 66 -1 -1 -1 -1 -1 -1 -1 255 255) ;62
- ( 64 -1 67 59 -1 -1 -1 -1 -1 -1 255 255) ;63
- ( 65 63 68 60 -1 -1 -1 -1 -1 -1 255 255) ;64
- ( 66 64 69 61 -1 -1 -1 -1 -1 -1 255 255) ;65
- ( -1 65 70 62 -1 -1 -1 -1 -1 -1 255 255) ;66
- ( 68 -1 71 63 -1 -1 -1 -1 -1 -1 255 255) ;67
- ( 69 67 72 64 -1 -1 -1 -1 -1 -1 255 255) ;68
- ( 70 68 73 65 -1 -1 -1 -1 -1 -1 255 255) ;69
- ( -1 69 74 66 -1 -1 -1 -1 -1 -1 255 255) ;70
- ( 72 -1 75 67 -1 -1 -1 -1 -1 -1 255 255) ;71
- ( 73 71 76 68 -1 -1 -1 -1 -1 -1 255 255) ;72
- ( 74 72 77 69 -1 -1 -1 -1 -1 -1 255 255) ;73
- ( -1 73 78 70 -1 -1 -1 -1 -1 -1 255 255) ;74
- ( 76 -1 79 71 -1 -1 -1 -1 -1 -1 255 255) ;75
- ( 77 75 80 72 -1 -1 -1 -1 -1 -1 255 255) ;76
- ( 78 76 81 73 -1 -1 -1 -1 -1 -1 255 255) ;77
- ( -1 77 82 74 -1 -1 -1 -1 -1 -1 255 255) ;78
- ( 80 -1 -1 75 -1 -1 -1 -1 -1 -1 255 255) ;79
- ( 81 79 255 76 -1 -1 -1 -1 -1 -1 255 255) ;80
- ( 82 80 -1 77 -1 -1 -1 -1 -1 -1 255 255) ;81
- ( -1 81 -1 78 -1 -1 -1 -1 -1 -1 255 255) ;82
- ( 84 -1 -1 -1 -1 59 -1 -1 -1 -1 255 255) ;83
- ( -1 83 85 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;84
- ( 86 -1 87 84 -1 -1 -1 -1 -1 -1 -1 -1 ) ;85
- ( -1 85 88 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;86
- ( 88 -1 -1 85 -1 -1 -1 -1 -1 -1 -1 -1 ) ;87
- ( -1 87 255 86 -1 -1 -1 -1 -1 -1 -1 -1 ) ;88
- ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 255 -1 ) ;89
- ( 91 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;90
- ( 92 90 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;91
- ( -1 91 -1 -1 -1 -1 -1 -1 93 94 -1 -1 ) ;92
- ( -1 -1 -1 88 -1 -1 -1 -1 -1 92 -1 -1 ) ;93
- ( -1 -1 -1 -1 95 -1 -1 -1 92 -1 -1 -1 ) ;94
- ( -1 -1 -1 -1 -1 -1 -1 94 -1 -1 -1 -1 ) ;95
- ( 97 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;96
- ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;97
- ( 99 97 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;98
- ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;99
- ( 101 99 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;100
- ( -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;101
- ( 103 101 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;102
- ( -1 102 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;103
- ( 51 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ) ;104
- )
- ; no so ea we ne se nw sw up do in ot
- )
-
-
- ;;; How the user references *all* objects, permanent and regular.
- (setq objnames '(
- (shovel . 0)
- (lamp . 1)
- (cpu . 2) (board . 2) (card . 2)
- (food . 3)
- (key . 4)
- (paper . 5)
- (rms . 6) (statue . 6) (statuette . 6) (stallman . 6)
- (diamond . 7)
- (weight . 8)
- (life . 9) (preserver . 9)
- (bracelet . 10) (emerald . 10)
- (gold . 11)
- (platinum . 12)
- (towel . 13) (beach . 13)
- (axe . 14)
- (silver . 15)
- (license . 16)
- (coins . 17)
- (egg . 18)
- (jar . 19)
- (bone . 20)
- (acid . 21) (nitric . 21)
- (glycerine . 22)
- (ruby . 23)
- (amethyst . 24)
- (mona . 25)
- (bill . 26)
- (floppy . 27) (disk . 27)
-
- (boulder . -1)
- (tree . -2) (trees . -2)
- (bear . -3)
- (bin . -4) (bins . -4)
- (cabinet . -5) (computer . -5) (vax . -5) (ibm . -5)
- (protoplasm . -6)
- (dial . -7)
- (button . -8)
- (chute . -9)
- (painting . -10)
- (bed . -11)
- (urinal . -12)
- (URINE . -13)
- (pipes . -14) (pipe . -14)
- (box . -15) (slit . -15)
- (cable . -16) (ethernet . -16)
- (mail . -17) (drop . -17)
- (bus . -18)
- (gate . -19)
- (cliff . -20)
- (skeleton . -21) (dinosaur . -21)
- (fish . -22)
- (tanks . -23)
- (switch . -24)
- (blackboard . -25)
- (disposal . -26) (garbage . -26)
- (ladder . -27)
- (subway . -28) (train . -28)
- (pc . -29) (drive . -29)
- ))
-
- (dolist (x objnames)
- (let (name)
- (setq name (concat "obj-" (prin1-to-string (car x))))
- (eval (list 'defconst (intern name) (cdr x)))))
-
- (defconst obj-special 255)
-
- ;;; The initial setup of what objects are in each room.
- ;;; Regular objects have whole numbers lower than 255.
- ;;; Objects that cannot be taken but might move and are
- ;;; described during room description are negative.
- ;;; Stuff that is described and might change are 255, and are
- ;;; handled specially by 'describe-room.
-
- (setq room-objects (list nil
-
- (list obj-shovel) ;; treasure-room
- (list obj-boulder) ;; dead-end
- nil nil nil
- (list obj-food) ;; se-nw-road
- (list obj-bear) ;; bear-hangout
- nil nil
- (list obj-special) ;; computer-room
- (list obj-lamp obj-license obj-silver);; meadow
- nil nil
- (list obj-special) ;; sauna
- nil
- (list obj-weight obj-life) ;; weight-room
- nil nil
- (list obj-rms obj-floppy) ;; thirsty-maze
- nil nil nil nil nil nil nil
- (list obj-emerald) ;; hidden-area
- nil
- (list obj-gold) ;; misty-room
- nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- (list obj-towel obj-special) ;; red-room
- nil nil nil nil nil
- (list obj-box) ;; stair-landing
- nil nil nil
- (list obj-axe) ;; smal-crawlspace
- nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- nil nil nil nil nil
- (list obj-special) ;; fourth-vermont-intersection
- nil nil
- (list obj-coins) ;; fifth-oaktree-intersection
- nil
- (list obj-bus) ;; fifth-sycamore-intersection
- nil
- (list obj-bone) ;; museum-lobby
- nil
- (list obj-jar obj-special obj-ruby) ;; marine-life-area
- (list obj-nitric) ;; maintenance-room
- (list obj-glycerine) ;; classroom
- nil nil nil nil nil
- (list obj-amethyst) ;; bottom-of-subway-stairs
- nil nil
- (list obj-special) ;; question-room-1
- nil
- (list obj-special) ;; question-room-2
- nil
- (list obj-special) ;; question-room-three
- nil
- (list obj-mona) ;; winner's-room
- nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- nil))
-
- ;;; These are objects in a room that are only described in the
- ;;; room description. They are permanent.
-
- (setq room-silents (list nil
- (list obj-tree) ;; dead-end
- (list obj-tree) ;; e-w-dirt-road
- nil nil nil nil nil nil
- (list obj-bin) ;; mailroom
- (list obj-computer) ;; computer-room
- nil nil nil
- (list obj-dial) ;; sauna
- nil
- (list obj-ladder) ;; weight-room
- (list obj-button obj-ladder) ;; maze-button-room
- nil nil nil
- nil nil nil nil nil nil nil
- (list obj-chute) ;; cave-entrance
- nil nil nil nil nil
- (list obj-painting obj-bed) ;; bedroom
- (list obj-urinal obj-pipes) ;; bathroom
- nil nil nil nil nil nil
- (list obj-boulder) ;; horseshoe-boulder-room
- nil nil nil nil nil nil nil nil nil nil nil nil nil nil
- (list obj-computer obj-cable) ;; gamma-computing-center
- (list obj-mail) ;; post-office
- (list obj-gate) ;; main-maple-intersection
- nil nil nil nil nil nil nil nil nil nil nil nil nil
- nil nil nil nil nil nil nil
- (list obj-cliff) ;; fifth-oaktree-intersection
- nil nil nil
- (list obj-dinosaur) ;; museum-lobby
- nil
- (list obj-fish obj-tanks) ;; marine-life-area
- (list obj-switch) ;; maintenance-room
- (list obj-blackboard) ;; classroom
- (list obj-train) ;; vermont-station
- nil nil
- (list obj-disposal) ;; north-end-of-n-s-tunnel
- nil nil
- (list obj-computer) ;; endgame-computer-room
- nil nil nil nil nil nil nil nil
- (list obj-pc) ;; pc-area
- nil nil nil nil nil nil
- ))
- (setq inventory '(1))
-
- ;; Descriptions of objects, as they appear in the room description, and
- ;; the inventory.
-
- (setq objects '(
- ("There is a shovel here." "A shovel") ;0
- ("There is a lamp nearby." "A lamp") ;1
- ("There is a CPU card here." "A computer board") ;2
- ("There is some food here." "Some food") ;3
- ("There is a shiny brass key here." "A brass key") ;4
- ("There is a slip of paper here." "A slip of paper") ;5
- ("There is a wax statuette of Richard Stallman here." ;6
- "An RMS statuette")
- ("There is a shimmering diamond here." "A diamond") ;7
- ("There is a 10 pound weight here." "A weight") ;8
- ("There is a life preserver here." "A life preserver");9
- ("There is an emerald bracelet here." "A bracelet") ;10
- ("There is a gold bar here." "A gold bar") ;11
- ("There is a platinum bar here." "A platinum bar") ;12
- ("There is a beach towel on the ground here." "A beach towel")
- ("There is an axe here." "An axe") ;14
- ("There is a silver bar here." "A silver bar") ;15
- ("There is a bus driver's license here." "A license") ;16
- ("There are some valuable coins here." "Some valuable coins")
- ("There is a jewel-encrusted egg here." "A valuable egg") ;18
- ("There is a glass jar here." "A glass jar") ;19
- ("There is a dinosaur bone here." "A bone") ;20
- ("There is a packet of nitric acid here." "Some nitric acid")
- ("There is a packet of glycerine here." "Some glycerine") ;22
- ("There is a valuable ruby here." "A ruby") ;23
- ("There is a valuable amethyst here." "An amethyst") ;24
- ("The Mona Lisa is here." "The Mona Lisa") ;25
- ("There is a 100 dollar bill here." "A $100 bill") ;26
- ("There is a floppy disk here." "A floppy disk") ;27
- )
- )
-
- ;;; Weight of objects
-
- (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))
- (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))
-
-
- ;;; Unix representation of objects.
- (setq objfiles '(
- "shovel.o" "lamp.o" "cpu.o" "food.o" "key.o" "paper.o"
- "rms.o" "diamond.o" "weight.o" "preserver.o" "bracelet.o"
- "gold.o" "platinum.o" "towel.o" "axe.o" "silver.o" "license.o"
- "coins.o" "egg.o" "jar.o" "bone.o" "nitric.o" "glycerine.o"
- "ruby.o" "amethyst.o"
- ))
-
- ;;; These are the descriptions for the negative numbered objects from
- ;;; room-objects
-
- (setq perm-objects '(
- nil
- ("There is a large boulder here.")
- nil
- ("There is a ferocious bear here!")
- nil
- nil
- ("There is a worthless pile of protoplasm here.")
- nil
- nil
- nil
- nil
- nil
- nil
- ("There is a strange smell in this room.")
- nil
- (
- "There is a box with a slit in it, bolted to the wall here."
- )
- nil
- nil
- ("There is a bus here.")
- nil
- nil
- nil
- ))
-
-
- ;;; These are the descriptions the user gets when regular objects are
- ;;; examined.
-
- (setq physobj-desc '(
- "It is a normal shovel with a price tag attached that says $19.99."
- "The lamp is hand-crafted by Geppetto."
- "The CPU board has a VAX chip on it. It seems to have
- 2 Megabytes of RAM onboard."
- "It looks like some kind of meat. Smells pretty bad."
- nil
- "The paper says: Don't forget to type 'help' for help. Also, remember
- this word: 'worms'"
- "The statuette is of the likeness of Richard Stallman, the author of the
- famous EMACS editor. You notice that he is not wearing any shoes."
- nil
- "You observe that the weight is heavy."
- "It says S. S. Minnow."
- nil
- nil
- nil
- "It has a picture of snoopy on it."
- nil
- nil
- "It has your picture on it!"
- "They are old coins from the 19th century."
- "It is a valuable Fabrege egg."
- "It is a a plain glass jar."
- nil
- nil
- nil
- nil
- nil
- )
- )
-
- ;;; These are the descriptions the user gets when non-regular objects
- ;;; are examined.
-
- (setq permobj-desc '(
- nil
- "It is just a boulder. It cannot be moved."
- "They are palm trees with a bountiful supply of coconuts in them."
- "It looks like a grizzly to me."
- "All of the bins are empty. Looking closely you can see that there
- are names written at the bottom of each bin, but most of them are
- faded away so that you cannot read them. You can only make out three
- names:
- Jeffrey Collier
- Robert Toukmond
- Thomas Stock
- "
- nil
- "It is just a garbled mess."
- "The dial points to a temperature scale which has long since faded away."
- nil
- nil
- "It is a velvet painting of Elvis Presly. It seems to be nailed to the
- wall, and you cannot move it."
- "It is a queen sized bed, with a very firm mattress."
- "The urinal is very clean compared with everything else in the cave. There
- isn't even any rust. Upon close examination you realize that the drain at the
- bottom is missing, and there is just a large hole leading down the
- pipes into nowhere. The hole is too small for a person to fit in. The
- flush handle is so clean that you can see your reflection in it."
- nil
- nil
- "The box has a slit in the top of it, and on it, in sloppy handwriting, is
- written: 'For key upgrade, put key in here.'"
- nil
- "It says 'express mail' on it."
- "It is a 35 passenger bus with the company name 'mobytours' on it."
- "It is a large metal gate that is too big to climb over."
- "It is a HIGH cliff."
- "Unfortunately you do not know enough about dinosaurs to tell very much about
- it. It is very big, though."
- "The fish look like they were once quite beautiful."
- nil
- nil
- nil
- nil
- "It is a normal ladder that is permanently attached to the hole."
- "It is a passenger train that is ready to go."
- "It is a personal computer that has only one floppy disk drive."
- )
- )
-
- (setq diggables (list nil nil nil (list obj-cpu) nil nil nil nil nil nil nil
- nil nil nil nil nil nil nil nil nil nil ;11-20
- nil nil nil nil nil nil nil nil nil nil ;21-30
- nil nil nil nil nil nil nil nil nil nil ;31-40
- nil (list obj-platinum) nil nil nil nil nil nil nil nil))
-
- (setq scroll-step 2)
- (setq room-shorts nil)
- (dolist (x rooms)
- (setq room-shorts
- (append room-shorts (list (downcase (space-to-hyphen
- (cadr x)))))))
-
- (setq endgame-questions '(
- (
- "What is your password on the machine called 'pokey'?" "robert")
- (
- "What password did you use during anonymous ftp to gamma?" "foo")
- (
- "Excluding the endgame, how many places are there where you can put
- treasures for points?" "4" "four")
- (
- "What is your login name on the 'endgame' machine?" "toukmond"
- )
- (
- "What is the nearest whole dollar to the price of the shovel?" "20" "twenty")
- (
- "What is the name of the bus company serving the town?" "mobytours")
- (
- "Give either of the two last names in the mailroom, other than your own."
- "collier" "stock")
- (
- "What cartoon character is on the towel?" "snoopy")
- (
- "What is the last name of the author of EMACS?" "stallman")
- (
- "How many megabytes of memory is on the CPU board for the Vax?" "2")
- (
- "Which street in town is named after a U.S. state?" "vermont")
- (
- "How many pounds did the weight weigh?" "ten" "10")
- (
- "Name the STREET which runs right over the subway stop." "fourth" "4" "4th")
- (
- "How many corners are there in town (excluding the one with the Post Office)?"
- "24" "twentyfour" "twenty-four")
- (
- "What type of bear was hiding your key?" "grizzly")
- (
- "Name either of the two objects you found by digging." "cpu" "card" "vax"
- "board" "platinum")
- (
- "What network protocol is used between pokey and gamma?" "tcp/ip" "ip" "tcp")
- ))
-
- (let (a)
- (setq a 0)
- (dolist (x room-shorts)
- (eval (list 'defconst (intern x) a))
- (setq a (+ a 1))))
-
-