Final Revision
commit
02aee947e1
|
@ -0,0 +1,945 @@
|
|||
"ABOVE-GROUND for
|
||||
Mini-Zork '87
|
||||
(c) Copyright 1987 Infocom, Inc. All Rights Reserved"
|
||||
|
||||
;"outside the house"
|
||||
|
||||
<ROOM WEST-OF-HOUSE
|
||||
(IN ROOMS)
|
||||
(DESC "West of House")
|
||||
(NORTH TO NORTH-OF-HOUSE)
|
||||
(SOUTH TO SOUTH-OF-HOUSE)
|
||||
(NE TO NORTH-OF-HOUSE)
|
||||
(SE TO SOUTH-OF-HOUSE)
|
||||
(EAST "The door is boarded and you can't remove the boards.")
|
||||
(SW TO INSIDE-THE-BARROW IF WON-FLAG)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL WHITE-HOUSE BOARD FOREST)
|
||||
(ACTION WEST-OF-HOUSE-F)>
|
||||
|
||||
<ROUTINE WEST-OF-HOUSE-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL
|
||||
"You are standing in an open field west of a white house, with a
|
||||
boarded front door. ">
|
||||
<COND (,WON-FLAG
|
||||
<TELL
|
||||
"A secret path leads southwest into the forest. ">)>
|
||||
<TELL "You could circle the house to the north or south.">)>>
|
||||
|
||||
<OBJECT MAILBOX
|
||||
(IN WEST-OF-HOUSE)
|
||||
(DESC "small mailbox")
|
||||
(SYNONYM MAILBOX BOX)
|
||||
(ADJECTIVE SMALL MAIL)
|
||||
(FLAGS CONTBIT TRYTAKEBIT SEARCHBIT)
|
||||
(CAPACITY 10)
|
||||
(ACTION MAILBOX-F)>
|
||||
|
||||
<ROUTINE MAILBOX-F ()
|
||||
<COND (<AND <VERB? TAKE>
|
||||
<PRSO? ,MAILBOX>>
|
||||
<FASTENED ,MAILBOX "ground">)>>
|
||||
|
||||
<OBJECT LEAFLET
|
||||
(IN MAILBOX)
|
||||
(DESC "leaflet")
|
||||
(SYNONYM LEAFLET MAIL)
|
||||
(FLAGS READBIT TAKEBIT BURNBIT)
|
||||
(SIZE 2)
|
||||
(ACTION LEAFLET-F)>
|
||||
|
||||
<ROUTINE LEAFLET-F ()
|
||||
<COND (<VERB? READ>
|
||||
<TELL
|
||||
"\"WELCOME TO ZORK, a game of adventure, danger, and low cunning. No computer
|
||||
should be without one!\"|
|
||||
|
|
||||
Note: this \"mini-zork\" contains only a sub-set of the locations, puzzles,
|
||||
and descriptions found" ,DISK-BASED>)>>
|
||||
|
||||
<OBJECT FRONT-DOOR
|
||||
(IN WEST-OF-HOUSE)
|
||||
(SYNONYM DOOR)
|
||||
(ADJECTIVE FRONT BOARDED)
|
||||
(DESC "door")
|
||||
(FLAGS DOORBIT NDESCBIT)
|
||||
(ACTION WOODEN-DOOR-F)>
|
||||
|
||||
<GLOBAL WON-FLAG <>>
|
||||
|
||||
<ROOM INSIDE-THE-BARROW
|
||||
(IN ROOMS)
|
||||
(DESC "Inside the Barrow")
|
||||
(LDESC
|
||||
"You have entered a stone barrow. The door closes behind you, leaving you in
|
||||
darkness, but ahead is a brightly-lit cavern. Floating in the cavern is a large
|
||||
sign: \"You have completed a great and perilous adventure which has tested
|
||||
your wit and courage. You have mastered the first part of the ZORK trilogy.
|
||||
Prepare yourself for an even greater test!\"|
|
||||
|
|
||||
The ZORK trilogy continues with \"ZORK II: The Wizard of Frobozz\" and
|
||||
\"ZORK III: The Dungeon Master.\"")
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(ACTION INSIDE-THE-BARROW-F)>
|
||||
|
||||
<ROUTINE INSIDE-THE-BARROW-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-END>
|
||||
<FINISH>)>>
|
||||
|
||||
<ROOM NORTH-OF-HOUSE
|
||||
(IN ROOMS)
|
||||
(LDESC
|
||||
"You are facing the north side of a white house. There is no door here, and
|
||||
all the windows are boarded up. A narrow path winds north through the trees.")
|
||||
(DESC "North of House")
|
||||
(SW TO WEST-OF-HOUSE)
|
||||
(SE TO BEHIND-HOUSE)
|
||||
(WEST TO WEST-OF-HOUSE)
|
||||
(EAST TO BEHIND-HOUSE)
|
||||
(NORTH TO FOREST-PATH)
|
||||
(SOUTH "The windows are all boarded.")
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL BOARDED-WINDOW BOARD WHITE-HOUSE FOREST)>
|
||||
|
||||
<ROOM SOUTH-OF-HOUSE
|
||||
(IN ROOMS)
|
||||
(LDESC
|
||||
"You are facing the south side of a white house. There is no door here,
|
||||
and all the windows are boarded.")
|
||||
(DESC "South of House")
|
||||
(WEST TO WEST-OF-HOUSE)
|
||||
(EAST TO BEHIND-HOUSE)
|
||||
(NE TO BEHIND-HOUSE)
|
||||
(NW TO WEST-OF-HOUSE)
|
||||
(NORTH "The windows are all boarded.")
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL BOARDED-WINDOW BOARD WHITE-HOUSE FOREST)>
|
||||
|
||||
<ROOM BEHIND-HOUSE
|
||||
(IN ROOMS)
|
||||
(DESC "Behind House")
|
||||
(NORTH TO NORTH-OF-HOUSE)
|
||||
(SOUTH TO SOUTH-OF-HOUSE)
|
||||
(SW TO SOUTH-OF-HOUSE)
|
||||
(NW TO NORTH-OF-HOUSE)
|
||||
(NE TO FOREST-NORTH)
|
||||
(EAST TO FOREST-SOUTH)
|
||||
(WEST TO KITCHEN IF KITCHEN-WINDOW IS OPEN)
|
||||
(IN TO KITCHEN IF KITCHEN-WINDOW IS OPEN)
|
||||
(ACTION BEHIND-HOUSE-F)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL WHITE-HOUSE KITCHEN-WINDOW FOREST)>
|
||||
|
||||
<ROUTINE BEHIND-HOUSE-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL
|
||||
"You are behind the white house. Paths lead into the forest to the east and
|
||||
northeast. In one corner of the house">
|
||||
<DESCRIBE-WINDOW>)>>
|
||||
|
||||
<ROUTINE DESCRIBE-WINDOW ()
|
||||
<TELL " is a small window which is ">
|
||||
<COND (<FSET? ,KITCHEN-WINDOW ,OPENBIT>
|
||||
<TELL "open.">)
|
||||
(T
|
||||
<TELL "slightly ajar.">)>>
|
||||
|
||||
<OBJECT WHITE-HOUSE
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM HOUSE)
|
||||
(ADJECTIVE WHITE BEAUTI)
|
||||
(DESC "white house")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION WHITE-HOUSE-F)>
|
||||
|
||||
<ROUTINE WHITE-HOUSE-F ()
|
||||
<COND (<AND <EQUAL? ,HERE ,KITCHEN ,LIVING-ROOM ,ATTIC>
|
||||
<VERB? FIND THROUGH>>
|
||||
<TELL ,LOOK-AROUND>)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL
|
||||
"The house is a beautiful white colonial. The owners must have been
|
||||
extremely wealthy." CR>)
|
||||
(<VERB? THROUGH OPEN>
|
||||
<DO-WALK ,P?IN>)
|
||||
(<VERB? BURN>
|
||||
<TELL "You must be joking." CR>)>>
|
||||
|
||||
<OBJECT BOARD
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "board")
|
||||
(SYNONYM BOARDS BOARD)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION BOARD-F)>
|
||||
|
||||
<ROUTINE BOARD-F ()
|
||||
<COND (<VERB? TAKE EXAMINE>
|
||||
<FASTENED ,BOARD "house">)>>
|
||||
|
||||
<OBJECT BOARDED-WINDOW
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "boarded window")
|
||||
(SYNONYM WINDOW)
|
||||
(ADJECTIVE BOARDED)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION BOARDED-WINDOW-F)>
|
||||
|
||||
<ROUTINE BOARDED-WINDOW-F ()
|
||||
<COND (<VERB? OPEN MUNG>
|
||||
<TELL "The windows are boarded!" CR>)>>
|
||||
|
||||
<ROUTINE NAILS-PSEUDO ()
|
||||
<COND (<VERB? TAKE>
|
||||
<TELL "The nails are too deeply imbedded." CR>)>>
|
||||
|
||||
<OBJECT FOREST
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "forest")
|
||||
(SYNONYM FOREST TREES)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION FOREST-F)>
|
||||
|
||||
<ROUTINE FOREST-F ()
|
||||
<COND (<VERB? EXIT>
|
||||
<V-WALK-AROUND>)
|
||||
(<VERB? FIND>
|
||||
<TELL ,LOOK-AROUND>)>>
|
||||
|
||||
<OBJECT TREE
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "tree")
|
||||
(SYNONYM TREE BRANCH)
|
||||
(ADJECTIVE LARGE)
|
||||
(FLAGS NDESCBIT CLIMBBIT)>
|
||||
|
||||
<ROOM FOREST-NORTH
|
||||
(IN ROOMS)
|
||||
(DESC "Forest")
|
||||
(LDESC "This is a dimly lit forest, with large trees all around.")
|
||||
(UP "There is no tree here suitable for climbing.")
|
||||
(WEST TO FOREST-PATH)
|
||||
(SW TO BEHIND-HOUSE)
|
||||
(SE TO FOREST-EDGE)
|
||||
(SOUTH TO FOREST-SOUTH)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL TREE FOREST)>
|
||||
|
||||
<ROOM FOREST-SOUTH
|
||||
(IN ROOMS)
|
||||
(DESC "Forest")
|
||||
(LDESC "This is a dimly lit forest, with large trees all around.")
|
||||
(UP "There is no tree here suitable for climbing.")
|
||||
(EAST TO FOREST-EDGE)
|
||||
(WEST TO BEHIND-HOUSE)
|
||||
(NORTH TO FOREST-NORTH)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL TREE FOREST)>
|
||||
|
||||
<ROOM FOREST-PATH
|
||||
(IN ROOMS)
|
||||
(DESC "Forest Path")
|
||||
(UP TO UP-A-TREE)
|
||||
(EAST TO FOREST-NORTH)
|
||||
(SOUTH TO NORTH-OF-HOUSE)
|
||||
(DOWN PER GRATING-EXIT)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL GRATE TREE FOREST)
|
||||
(ACTION FOREST-PATH-F)>
|
||||
|
||||
<ROUTINE FOREST-PATH-F (RARG)
|
||||
<COND (<AND <EQUAL? .RARG ,M-ENTER>
|
||||
<NOT ,GRATE-REVEALED>>
|
||||
<FSET ,GRATE ,INVISIBLE>)
|
||||
(<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL
|
||||
"This is a path through a dimly lit forest, curving from south to east.
|
||||
A large tree with low branches stands by the edge of the path.">
|
||||
<COND (<FSET? ,GRATE ,OPENBIT>
|
||||
<TELL
|
||||
" There is an open grating, descending into darkness.">)
|
||||
(,GRATE-REVEALED
|
||||
<TELL
|
||||
" There is a grating securely fastened into the ground.">)>)>>
|
||||
|
||||
<ROUTINE GRATING-EXIT ()
|
||||
<COND (,GRATE-REVEALED
|
||||
<COND (<FSET? ,GRATE ,OPENBIT>
|
||||
,GRATING-ROOM)
|
||||
(T
|
||||
<TELL "The grating is closed!" CR>
|
||||
<SETG P-IT-OBJECT ,GRATE>
|
||||
<RFALSE>)>)
|
||||
(T
|
||||
<TELL ,CANT-GO>
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROOM UP-A-TREE
|
||||
(IN ROOMS)
|
||||
(DESC "Up a Tree")
|
||||
(DOWN TO FOREST-PATH)
|
||||
(UP "You cannot climb any higher.")
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL TREE FOREST)
|
||||
(ACTION UP-A-TREE-F)>
|
||||
|
||||
<ROUTINE UP-A-TREE-F (RARG "AUX" F)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL
|
||||
"You are ten feet above the ground, nestled among large branches.">)
|
||||
(<EQUAL? .RARG ,M-BEG>
|
||||
<COND (<AND <VERB? CLIMB-DOWN>
|
||||
<PRSO? ,TREE ,ROOMS>>
|
||||
<DO-WALK ,P?DOWN>)
|
||||
(<VERB? DROP>
|
||||
<COND (<NOT <IDROP>>
|
||||
<RTRUE>)
|
||||
(<NOT <PRSO? ,WINNER ,TREE>>
|
||||
<MOVE ,PRSO ,FOREST-PATH>
|
||||
<TELL "The " D ,PRSO " falls to the ground." CR>)
|
||||
(<VERB? LEAP>
|
||||
<JIGS-UP
|
||||
"You should have looked before you leaped.">)>)>)>>
|
||||
|
||||
<OBJECT NEST
|
||||
(IN UP-A-TREE)
|
||||
(DESC "bird's nest")
|
||||
(FDESC "Beside you on the branch is a small bird's nest.")
|
||||
(SYNONYM NEST)
|
||||
(ADJECTIVE BIRDS)
|
||||
(FLAGS TAKEBIT BURNBIT CONTBIT OPENBIT SEARCHBIT)
|
||||
(CAPACITY 20)
|
||||
(ACTION NEST-F)>
|
||||
|
||||
<ROUTINE NEST-F ()
|
||||
<COND (<VERB? TAKE>
|
||||
<SCORE-OBJ ,EGG>
|
||||
<RFALSE>)>>
|
||||
|
||||
<OBJECT EGG
|
||||
(IN NEST)
|
||||
(DESC "jeweled egg")
|
||||
(FDESC
|
||||
"In the bird's nest is a large egg encrusted with precious jewels, apparently
|
||||
scavenged by a childless songbird.")
|
||||
(SYNONYM EGG TREASURE)
|
||||
(ADJECTIVE JEWELED)
|
||||
(FLAGS TREASUREBIT TAKEBIT)
|
||||
(VALUE 6)
|
||||
(ACTION EGG-F)>
|
||||
|
||||
<ROUTINE EGG-F ()
|
||||
<COND (<AND <VERB? OPEN HATCH>
|
||||
<PRSO? ,EGG>>
|
||||
<TELL "This egg only opens" ,DISK-BASED>)>>
|
||||
|
||||
<OBJECT LEAVES
|
||||
(IN FOREST-PATH)
|
||||
(DESC "pile of leaves")
|
||||
(LDESC "On the ground is a pile of leaves.")
|
||||
(SYNONYM LEAVES LEAF PILE)
|
||||
(FLAGS TAKEBIT BURNBIT TRYTAKEBIT)
|
||||
(SIZE 25)
|
||||
(ACTION LEAVES-F)>
|
||||
|
||||
<ROUTINE LEAVES-F ()
|
||||
<COND (<VERB? COUNT>
|
||||
<TELL "69,105." CR>)
|
||||
(<VERB? BURN>
|
||||
<GRATING-APPEARS>
|
||||
<TELL "The leaves burn">
|
||||
<COND (<HELD? ,LEAVES>
|
||||
<JIGS-UP ", and so do you.">)
|
||||
(T
|
||||
<TELL ,PERIOD-CR>)>
|
||||
<REMOVE-CAREFULLY ,PRSO>)
|
||||
(<VERB? CUT>
|
||||
<GRATING-APPEARS>
|
||||
<TELL "The leaves seem to be too soggy to cut." CR>)
|
||||
(<AND <VERB? MOVE>
|
||||
<GRATING-APPEARS>>
|
||||
<CRLF>)
|
||||
(<VERB? TAKE>
|
||||
<GRATING-APPEARS>
|
||||
<RFALSE>)
|
||||
(<AND <VERB? LOOK-UNDER>
|
||||
<NOT ,GRATE-REVEALED>>
|
||||
<PEEK-UNDER ,LEAVES ,GRATE>)>>
|
||||
|
||||
<ROUTINE GRATING-APPEARS ()
|
||||
<COND (<AND <NOT <FSET? ,GRATE ,OPENBIT>>
|
||||
<NOT ,GRATE-REVEALED>>
|
||||
<FCLEAR ,GRATE ,INVISIBLE>
|
||||
<SETG GRATE-REVEALED T>
|
||||
<TELL "In disturbing the leaves, a grating is revealed. ">
|
||||
<RTRUE>)
|
||||
(T
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROOM FOREST-EDGE
|
||||
(IN ROOMS)
|
||||
(DESC "Forest Edge")
|
||||
(LDESC
|
||||
"Paths lead into the forest to the west and northwest. Also, a well-marked
|
||||
path extends east.")
|
||||
(UP "There is no tree here suitable for climbing.")
|
||||
(EAST TO CANYON-VIEW)
|
||||
(NW TO FOREST-NORTH)
|
||||
(WEST TO FOREST-SOUTH)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL TREE FOREST)>
|
||||
|
||||
<ROOM CANYON-VIEW
|
||||
(IN ROOMS)
|
||||
(DESC "Canyon View")
|
||||
(LDESC
|
||||
"You are atop the west wall of a great canyon, offering a marvelous view of the
|
||||
mighty Frigid River below. Across the canyon, the walls of the White Cliffs
|
||||
join the mighty ramparts of the Flathead Mountains. To the north, Aragain
|
||||
Falls may be seen, complete with rainbow. Even further upstream, the river
|
||||
flows out of a great dark cavern. To the west is an immense forest, stretching
|
||||
for miles. It seems possible to climb down into the canyon from here.")
|
||||
(EAST TO CANYON-BOTTOM)
|
||||
(DOWN TO CANYON-BOTTOM)
|
||||
(WEST TO FOREST-EDGE)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL CLIMBABLE-CLIFF RIVER RAINBOW)
|
||||
(ACTION CANYON-VIEW-F)>
|
||||
|
||||
<ROUTINE CANYON-VIEW-F (RARG)
|
||||
<COND (<AND <EQUAL? .RARG ,M-BEG>
|
||||
<VERB? LEAP>
|
||||
<NOT ,PRSO>>
|
||||
<JIGS-UP "You should have looked before you leaped.">)>>
|
||||
|
||||
<OBJECT CLIMBABLE-CLIFF
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "cliff")
|
||||
(SYNONYM CLIFF)
|
||||
(FLAGS NDESCBIT CLIMBBIT)
|
||||
(ACTION CLIFF-F)>
|
||||
|
||||
<ROUTINE CLIFF-F ()
|
||||
<COND (<OR <VERB? LEAP>
|
||||
<AND <VERB? PUT>
|
||||
<PRSO? ,ME>>>
|
||||
<JIGS-UP "You should have looked before you leaped.">)
|
||||
(<AND <VERB? PUT THROW-OFF>
|
||||
<PRSI? ,CLIMBABLE-CLIFF>>
|
||||
<TELL "The " D ,PRSO " is now lost in the river." CR>
|
||||
<REMOVE-CAREFULLY ,PRSO>)>>
|
||||
|
||||
<ROOM CANYON-BOTTOM
|
||||
(IN ROOMS)
|
||||
(DESC "Canyon Bottom")
|
||||
(LDESC
|
||||
"The walls of the river canyon may be climbable here. To the northeast is a
|
||||
narrow path.")
|
||||
(UP TO CANYON-VIEW)
|
||||
(WEST TO CANYON-VIEW)
|
||||
(NE TO END-OF-RAINBOW)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL GLOBAL-WATER CLIMBABLE-CLIFF RIVER)>
|
||||
|
||||
<ROOM END-OF-RAINBOW
|
||||
(IN ROOMS)
|
||||
(DESC "End of Rainbow")
|
||||
(LDESC
|
||||
"You are on a small, rocky beach by the Frigid River, below the falls. A
|
||||
rainbow crosses over the falls to the east and a narrow path continues to
|
||||
the southwest.")
|
||||
(UP TO ARAGAIN-FALLS IF RAINBOW-FLAG ELSE
|
||||
"Can you walk on water vapor?")
|
||||
(EAST TO ARAGAIN-FALLS IF RAINBOW-FLAG ELSE
|
||||
"Can you walk on water vapor?")
|
||||
(SW TO CANYON-BOTTOM)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL STAIRS GLOBAL-WATER RAINBOW RIVER)>
|
||||
|
||||
<GLOBAL RAINBOW-FLAG <>>
|
||||
|
||||
<OBJECT RAINBOW
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "rainbow")
|
||||
(SYNONYM RAINBOW)
|
||||
(FLAGS NDESCBIT CLIMBBIT)
|
||||
(ACTION RAINBOW-F)>
|
||||
|
||||
<ROUTINE RAINBOW-F ()
|
||||
<COND (<VERB? CROSS THROUGH>
|
||||
<COND (<EQUAL? ,HERE ,CANYON-VIEW>
|
||||
<V-WALK-AROUND>)
|
||||
(T
|
||||
<DO-WALK ,P?UP>)>)
|
||||
(<VERB? LOOK-UNDER>
|
||||
<TELL "The Frigid River flows under the rainbow." CR>)>>
|
||||
|
||||
<OBJECT POT-OF-GOLD
|
||||
(IN END-OF-RAINBOW)
|
||||
(DESC "pot of gold")
|
||||
(FDESC "At the end of the rainbow is a pot of gold.")
|
||||
(SYNONYM POT GOLD TREASURE)
|
||||
(ADJECTIVE GOLD)
|
||||
(FLAGS TREASUREBIT TAKEBIT INVISIBLE)
|
||||
(SIZE 15)
|
||||
(VALUE 19)>
|
||||
\
|
||||
;"inside the house"
|
||||
|
||||
<OBJECT KITCHEN-WINDOW
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "window")
|
||||
(SYNONYM WINDOW)
|
||||
(ADJECTIVE SMALL)
|
||||
(FLAGS DOORBIT NDESCBIT)
|
||||
(ACTION KITCHEN-WINDOW-F)>
|
||||
|
||||
<ROUTINE KITCHEN-WINDOW-F ()
|
||||
<COND (<VERB? OPEN CLOSE>
|
||||
<OPEN-CLOSE ,KITCHEN-WINDOW
|
||||
"With great effort, you open the window enough to allow entry."
|
||||
"The window closes (more easily than it opened).">)
|
||||
(<AND <VERB? EXAMINE>
|
||||
<NOT <FSET? ,KITCHEN ,OPENBIT>>>
|
||||
<TELL
|
||||
"The window is slightly ajar, but not enough to allow entry." CR>)
|
||||
(<VERB? WALK BOARD THROUGH>
|
||||
<DO-WALK <COND (<EQUAL? ,HERE ,KITCHEN> ,P?EAST)
|
||||
(T ,P?WEST)>>)
|
||||
(<VERB? LOOK-INSIDE>
|
||||
<TELL "You can see a ">
|
||||
<COND (<EQUAL? ,HERE ,KITCHEN>
|
||||
<TELL "forest clearing." CR>)
|
||||
(T
|
||||
<TELL "kitchen." CR>)>)>>
|
||||
|
||||
<ROOM KITCHEN
|
||||
(IN ROOMS)
|
||||
(DESC "Kitchen")
|
||||
(EAST TO BEHIND-HOUSE IF KITCHEN-WINDOW IS OPEN)
|
||||
(WEST TO LIVING-ROOM)
|
||||
(OUT TO BEHIND-HOUSE IF KITCHEN-WINDOW IS OPEN)
|
||||
(UP TO ATTIC)
|
||||
(DOWN "Only Santa Claus climbs down chimneys.")
|
||||
(VALUE 10)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL KITCHEN-WINDOW CHIMNEY STAIRS)
|
||||
(ACTION KITCHEN-F)>
|
||||
|
||||
<ROUTINE KITCHEN-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL
|
||||
"You are in the kitchen of the white house. A table has been used recently
|
||||
for the preparation of food. A passage leads west and a dark staircase leads
|
||||
upward. A chimney leads down and to the east">
|
||||
<DESCRIBE-WINDOW>)>>
|
||||
|
||||
<OBJECT KITCHEN-TABLE
|
||||
(IN KITCHEN)
|
||||
(DESC "table")
|
||||
(SYNONYM TABLE)
|
||||
(FLAGS NDESCBIT CONTBIT SEARCHBIT OPENBIT SURFACEBIT)
|
||||
(CAPACITY 50)>
|
||||
|
||||
<OBJECT SANDWICH-BAG
|
||||
(IN KITCHEN-TABLE)
|
||||
(DESC "brown sack")
|
||||
(SYNONYM BAG SACK)
|
||||
(ADJECTIVE BROWN)
|
||||
(FLAGS TAKEBIT CONTBIT BURNBIT SEARCHBIT)
|
||||
(FDESC
|
||||
"On the table is an elongated brown sack, smelling of hot peppers.")
|
||||
(CAPACITY 9)
|
||||
(SIZE 9)
|
||||
(ACTION SANDWICH-BAG-F)>
|
||||
|
||||
<ROUTINE SANDWICH-BAG-F ()
|
||||
<COND (<AND <VERB? SMELL>
|
||||
<IN? ,LUNCH ,PRSO>>
|
||||
<TELL "Hot peppers!" CR>)>>
|
||||
|
||||
<OBJECT LUNCH
|
||||
(IN SANDWICH-BAG)
|
||||
(DESC "lunch")
|
||||
(LDESC "A hot pepper sandwich is here.")
|
||||
(SYNONYM FOOD SANDWICH LUNCH)
|
||||
(ADJECTIVE HOT PEPPER)
|
||||
(FLAGS TAKEBIT FOODBIT)>
|
||||
|
||||
<OBJECT GARLIC
|
||||
(IN SANDWICH-BAG)
|
||||
(DESC "clove of garlic")
|
||||
(SYNONYM GARLIC CLOVE)
|
||||
(FLAGS TAKEBIT FOODBIT)
|
||||
(SIZE 4)
|
||||
(ACTION GARLIC-F)>
|
||||
|
||||
<ROUTINE GARLIC-F ()
|
||||
<COND (<VERB? EAT>
|
||||
<REMOVE ,PRSO>
|
||||
<TELL
|
||||
"You won't make friends this way, but nobody around here is too friendly
|
||||
anyhow. Gulp!" CR>)>>
|
||||
|
||||
<OBJECT BOTTLE
|
||||
(IN KITCHEN-TABLE)
|
||||
(DESC "glass bottle")
|
||||
(FDESC "A bottle is sitting on the table.")
|
||||
(SYNONYM BOTTLE)
|
||||
(ADJECTIVE GLASS)
|
||||
(CAPACITY 4)
|
||||
(FLAGS TAKEBIT TRANSBIT CONTBIT)
|
||||
(ACTION BOTTLE-F)>
|
||||
|
||||
<ROUTINE BOTTLE-F ()
|
||||
<COND (<AND <VERB? THROW MUNG>
|
||||
<PRSO? ,BOTTLE>>
|
||||
<TELL "The bottle shatters.">
|
||||
<COND (<IN? ,WATER ,PRSO>
|
||||
<REMOVE-CAREFULLY ,WATER>
|
||||
<TELL " " ,WATER-EVAPORATES>)
|
||||
(T
|
||||
<CRLF>)>
|
||||
<REMOVE-CAREFULLY ,PRSO>)
|
||||
(<AND <VERB? SHAKE>
|
||||
<FSET? ,PRSO ,OPENBIT>
|
||||
<IN? ,WATER ,PRSO>>
|
||||
<REMOVE-CAREFULLY ,WATER>
|
||||
<TELL ,WATER-EVAPORATES>)>>
|
||||
|
||||
<OBJECT WATER
|
||||
(IN BOTTLE)
|
||||
(DESC "quantity of water")
|
||||
(SYNONYM WATER QUANTITY)
|
||||
(FLAGS TRYTAKEBIT TAKEBIT DRINKBIT)
|
||||
(SIZE 4)
|
||||
(ACTION WATER-F)>
|
||||
|
||||
<ROUTINE WATER-F ()
|
||||
<COND (<VERB? THROUGH BOARD>
|
||||
<TELL ,YOU-CANT "swim in the dungeon." CR>
|
||||
<RTRUE>)
|
||||
(<VERB? FILL>
|
||||
<PERFORM ,V?PUT ,PRSI ,PRSO>
|
||||
<RTRUE>)
|
||||
(<AND <VERB? TAKE>
|
||||
<IN? ,PRSO ,BOTTLE>
|
||||
<NOT ,PRSI>>
|
||||
<PERFORM ,V?TAKE ,BOTTLE>
|
||||
<RTRUE>)
|
||||
(<AND <VERB? TAKE PUT>
|
||||
<PRSO? ,WATER ,GLOBAL-WATER>>
|
||||
<COND (<NOT ,PRSI>
|
||||
<COND (<HELD? ,BOTTLE>
|
||||
<SETG PRSI ,BOTTLE>)
|
||||
(T
|
||||
<SETG PRSI ,HANDS>)>)>
|
||||
<COND (<PRSI? ,HANDS>
|
||||
<TELL "The water slips through your fingers." CR>)
|
||||
(<NOT <HELD? ,PRSI>>
|
||||
<TELL ,YNH "the " D ,PRSI ,PERIOD-CR>)
|
||||
(<NOT <PRSI? ,BOTTLE>>
|
||||
<COND (<PRSO? ,WATER> ;"might be GLOBAL-WATER"
|
||||
<REMOVE-CAREFULLY ,WATER>)>
|
||||
<TELL
|
||||
"The water leaks out of the " D ,PRSI " and evaporates immediately." CR>)
|
||||
(<NOT <FSET? ,BOTTLE ,OPENBIT>>
|
||||
<SETG P-IT-OBJECT ,BOTTLE>
|
||||
<TELL "The bottle is closed." CR>)
|
||||
(<NOT <FIRST? ,BOTTLE>>
|
||||
<MOVE ,WATER ,BOTTLE>
|
||||
<TELL "The bottle is now full of water." CR>)>)
|
||||
(<AND <VERB? PUT>
|
||||
<PRSI? ,WATER ,GLOBAL-WATER>
|
||||
<GLOBAL-IN? ,RIVER>>
|
||||
<PERFORM ,V?PUT ,PRSO ,RIVER>
|
||||
<RTRUE>)
|
||||
(<AND <VERB? DROP GIVE THROW>
|
||||
<IN? ,WATER ,BOTTLE>>
|
||||
<COND (<NOT <FSET? ,BOTTLE ,OPENBIT>>
|
||||
<TELL "The bottle is closed." CR>)
|
||||
(T
|
||||
<REMOVE-CAREFULLY ,WATER>
|
||||
<TELL ,WATER-EVAPORATES>)>)>>
|
||||
|
||||
<ROOM ATTIC
|
||||
(IN ROOMS)
|
||||
(DESC "Attic")
|
||||
(LDESC "This is the attic. The only exit is the stairway down.")
|
||||
(DOWN TO KITCHEN)
|
||||
(FLAGS RLANDBIT SACREDBIT)
|
||||
(GLOBAL STAIRS)>
|
||||
|
||||
<OBJECT KNIFE
|
||||
(IN ATTIC)
|
||||
(DESC "nasty knife")
|
||||
(SYNONYM KNIVES KNIFE BLADE)
|
||||
(ADJECTIVE NASTY UNRUSTY)
|
||||
(FLAGS TAKEBIT WEAPONBIT TRYTAKEBIT)>
|
||||
|
||||
<OBJECT ROPE
|
||||
(IN ATTIC)
|
||||
(DESC "rope")
|
||||
(FDESC "A large coil of rope is lying in the corner.")
|
||||
(SYNONYM ROPE COIL)
|
||||
(ADJECTIVE LARGE)
|
||||
(FLAGS TAKEBIT SACREDBIT)
|
||||
(SIZE 10)
|
||||
(ACTION ROPE-F)>
|
||||
|
||||
<ROUTINE ROPE-F ()
|
||||
<COND (<VERB? TIE>
|
||||
<COND (<PRSI? ,RAILING>
|
||||
<COND (,DOME-FLAG
|
||||
<TELL ,ALREADY>)
|
||||
(T
|
||||
<SETG DOME-FLAG T>
|
||||
<FSET ,ROPE ,NDESCBIT>
|
||||
<FSET ,ROPE ,TRYTAKEBIT>
|
||||
<FSET ,ROPE ,CLIMBBIT>
|
||||
<MOVE ,ROPE ,HERE>
|
||||
<TELL
|
||||
"The rope drops over the side and comes within ten feet of the floor." CR>)>)
|
||||
(T
|
||||
<TELL ,YOU-CANT "tie the rope to that." CR>)>)
|
||||
(<AND <VERB? TIE-UP>
|
||||
<PRSI? ,ROPE>>
|
||||
<TELL
|
||||
"The " D ,PRSO " struggles and you cannot tie him up." CR>)
|
||||
(<VERB? UNTIE>
|
||||
<COND (,DOME-FLAG
|
||||
<SETG DOME-FLAG <>>
|
||||
<FCLEAR ,ROPE ,NDESCBIT>
|
||||
<FCLEAR ,ROPE ,TRYTAKEBIT>
|
||||
<FCLEAR ,ROPE ,CLIMBBIT>
|
||||
<TELL "The rope is now untied." CR>)
|
||||
(T
|
||||
<TELL "It is not tied to anything." CR>)>)
|
||||
(<AND <VERB? TAKE>
|
||||
,DOME-FLAG>
|
||||
<TELL "The rope is tied to the railing." CR>)>>
|
||||
|
||||
<ROOM LIVING-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Living Room")
|
||||
(EAST TO KITCHEN)
|
||||
(WEST TO CYCLOPS-ROOM IF MAGIC-FLAG ELSE "The door is nailed shut.")
|
||||
(DOWN PER TRAP-DOOR-EXIT)
|
||||
(FLAGS RLANDBIT ONBIT SACREDBIT)
|
||||
(GLOBAL STAIRS)
|
||||
(PSEUDO "NAILS" NAILS-PSEUDO "NAIL" NAILS-PSEUDO)
|
||||
(ACTION LIVING-ROOM-F)>
|
||||
|
||||
<ROUTINE TRAP-DOOR-EXIT ()
|
||||
<COND (,RUG-MOVED
|
||||
<COND (<FSET? ,TRAP-DOOR ,OPENBIT>
|
||||
<RETURN ,CELLAR>)
|
||||
(T
|
||||
<SETG P-IT-OBJECT ,TRAP-DOOR>
|
||||
<TELL "The trap door is closed." CR>
|
||||
<RFALSE>)>)
|
||||
(T
|
||||
<TELL ,CANT-GO>
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROUTINE LIVING-ROOM-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL "The living room opens to the east. To the west is a">
|
||||
<COND (,MAGIC-FLAG
|
||||
<TELL " cyclops-shaped opening in a">)>
|
||||
<TELL " wooden door, above which is strange gothic lettering. ">
|
||||
<COND (<NOT ,MAGIC-FLAG>
|
||||
<TELL "The door is nailed shut. ">)>
|
||||
<TELL "There is a trophy case here, and a">
|
||||
<COND (,RUG-MOVED
|
||||
<TELL " rug lying beside a">
|
||||
<COND (<FSET? ,TRAP-DOOR ,OPENBIT>
|
||||
<TELL "n open">)
|
||||
(T
|
||||
<TELL " closed">)>
|
||||
<TELL " trap door">)
|
||||
(T
|
||||
<TELL " large oriental rug in the center of the room">)>
|
||||
<TELL ".">)
|
||||
(<AND <EQUAL? .RARG ,M-END>
|
||||
<VERB? PUT>
|
||||
<PRSI? ,TROPHY-CASE>
|
||||
<EQUAL? <COUNT-TREASURES ,TROPHY-CASE> 15>
|
||||
<EQUAL? ,SCORE 325>
|
||||
<NOT ,WON-FLAG>>
|
||||
<SETG WON-FLAG T>
|
||||
<SETG SCORE 350>
|
||||
<FCLEAR ,MAP ,INVISIBLE>
|
||||
<FCLEAR ,WEST-OF-HOUSE ,TOUCHBIT>
|
||||
<TELL
|
||||
"A voice whispers, \"Look to your treasures for the final secret.\"" CR>)>>
|
||||
|
||||
<ROUTINE COUNT-TREASURES (OBJ "AUX" (X <FIRST? .OBJ>) (CNT 0))
|
||||
<REPEAT ()
|
||||
<COND (<NOT .X>
|
||||
<RETURN>)>
|
||||
<COND (<FSET? .X ,TREASUREBIT>
|
||||
<SET CNT <+ .CNT 1>>)>
|
||||
<SET CNT <+ .CNT <COUNT-TREASURES .X>>>
|
||||
<SET X <NEXT? .X>>>
|
||||
.CNT>
|
||||
|
||||
<OBJECT TROPHY-CASE ;"first obj so L.R. desc looks right."
|
||||
(IN LIVING-ROOM)
|
||||
(DESC "trophy case")
|
||||
(SYNONYM CASE)
|
||||
(ADJECTIVE TROPHY)
|
||||
(FLAGS TRANSBIT CONTBIT NDESCBIT TRYTAKEBIT SEARCHBIT)
|
||||
(CAPACITY 10000)
|
||||
(ACTION TROPHY-CASE-F)>
|
||||
|
||||
<ROUTINE TROPHY-CASE-F ()
|
||||
<COND (<AND <VERB? TAKE>
|
||||
<PRSO? ,TROPHY-CASE>>
|
||||
<FASTENED ,TROPHY-CASE "wall">)>>
|
||||
|
||||
<OBJECT MAP
|
||||
(IN TROPHY-CASE)
|
||||
(DESC "parchment map")
|
||||
(FDESC "In the trophy case is an ancient parchment map.")
|
||||
(SYNONYM MAP)
|
||||
(ADJECTIVE OLD PARCHMENT ANCIENT)
|
||||
(FLAGS INVISIBLE READBIT TAKEBIT)
|
||||
(SIZE 2)
|
||||
(TEXT
|
||||
"The map shows a house in a forest clearing. Several paths leave the
|
||||
clearing; one, leading southwest, is marked \"To Stone Barrow\".")>
|
||||
|
||||
<OBJECT SWORD
|
||||
(IN LIVING-ROOM)
|
||||
(DESC "sword")
|
||||
(FDESC
|
||||
"Above the trophy case hangs an elvish sword of great antiquity.")
|
||||
(SYNONYM SWORD BLADE)
|
||||
(ADJECTIVE ELVISH OLD)
|
||||
(FLAGS TAKEBIT WEAPONBIT)
|
||||
(SIZE 30)>
|
||||
|
||||
<OBJECT LAMP
|
||||
(IN LIVING-ROOM)
|
||||
(DESC "brass lantern")
|
||||
(FDESC "A battery-powered brass lantern is on the trophy case.")
|
||||
(LDESC "There is a brass lantern (battery-powered) here.")
|
||||
(SYNONYM LAMP LANTERN LIGHT)
|
||||
(ADJECTIVE BRASS)
|
||||
(FLAGS TAKEBIT LIGHTBIT)
|
||||
(SIZE 15)
|
||||
(ACTION LAMP-F)>
|
||||
|
||||
<ROUTINE LAMP-F ()
|
||||
<COND (<VERB? THROW>
|
||||
<TELL "You might break it!" CR>)
|
||||
(<AND <VERB? LAMP-ON LAMP-OFF EXAMINE>
|
||||
<FSET? ,LAMP ,RMUNGBIT>>
|
||||
<TELL "The lamp has burned out." CR>)
|
||||
(<VERB? LAMP-ON>
|
||||
<ENABLE <INT I-LANTERN>>
|
||||
<RFALSE>)
|
||||
(<VERB? LAMP-OFF>
|
||||
<DISABLE <INT I-LANTERN>>
|
||||
<RFALSE>)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL "The lamp is o">
|
||||
<COND (<FSET? ,LAMP ,ONBIT>
|
||||
<TELL "n">)
|
||||
(T
|
||||
<TELL "ff">)>
|
||||
<TELL ,PERIOD-CR>)>>
|
||||
|
||||
<ROUTINE I-LANTERN ("AUX" TICK (TBL <VALUE LAMP-TABLE>))
|
||||
<ENABLE <QUEUE I-LANTERN <SET TICK <GET .TBL 0>>>>
|
||||
<LIGHT-INT ,LAMP .TBL .TICK>
|
||||
<COND (<NOT <0? .TICK>>
|
||||
<SETG LAMP-TABLE <REST .TBL 4>>)>>
|
||||
|
||||
<GLOBAL LAMP-TABLE
|
||||
<TABLE (PURE)
|
||||
75 "The lamp appears dimmer."
|
||||
50 "The lamp is definitely dimmer now."
|
||||
15 "The lamp is nearly out." 0>>
|
||||
|
||||
<OBJECT WOODEN-DOOR
|
||||
(IN LIVING-ROOM)
|
||||
(DESC "wooden door")
|
||||
(SYNONYM DOOR LETTERING WRITING)
|
||||
(ADJECTIVE WOODEN GOTHIC STRANGE WEST)
|
||||
(FLAGS READBIT DOORBIT NDESCBIT TRANSBIT)
|
||||
(TEXT
|
||||
"The engravings translate to \"This space intentionally left blank.\"")
|
||||
(ACTION WOODEN-DOOR-F)>
|
||||
|
||||
<ROUTINE WOODEN-DOOR-F ()
|
||||
<COND (<VERB? OPEN LOOK-BEHIND>
|
||||
<TELL "It won't open." CR>)
|
||||
(<VERB? BURN MUNG>
|
||||
<TELL "Nice try." CR>)>>
|
||||
|
||||
<GLOBAL RUG-MOVED <>>
|
||||
|
||||
<OBJECT RUG
|
||||
(IN LIVING-ROOM)
|
||||
(DESC "carpet")
|
||||
(SYNONYM RUG CARPET)
|
||||
(ADJECTIVE LARGE ORIENTAL)
|
||||
(FLAGS NDESCBIT TRYTAKEBIT)
|
||||
(ACTION RUG-F)>
|
||||
|
||||
<ROUTINE RUG-F ()
|
||||
<COND (<VERB? RAISE TAKE>
|
||||
<TELL "The rug is too heavy to lift">
|
||||
<COND (<NOT ,RUG-MOVED>
|
||||
<TELL ", but you noticed an irregularity beneath it">)>
|
||||
<TELL ,PERIOD-CR>)
|
||||
(<VERB? MOVE PUSH>
|
||||
<COND (,RUG-MOVED
|
||||
<TELL ,ALREADY>)
|
||||
(T
|
||||
<FCLEAR ,TRAP-DOOR ,INVISIBLE>
|
||||
<SETG P-IT-OBJECT ,TRAP-DOOR>
|
||||
<SETG RUG-MOVED T>
|
||||
<TELL
|
||||
"You drag the rug to one side of the room, revealing a
|
||||
closed trap door." CR>)>)
|
||||
(<AND <VERB? LOOK-UNDER>
|
||||
<NOT ,RUG-MOVED>>
|
||||
<PEEK-UNDER ,RUG ,TRAP-DOOR>)
|
||||
(<VERB? CLIMB-ON>
|
||||
<COND (<NOT ,RUG-MOVED>
|
||||
<TELL
|
||||
"As you try to sit, you notice an irregularity beneath the rug." CR>)
|
||||
(T
|
||||
<TELL "It's not a magic carpet." CR>)>)>>
|
||||
|
||||
<OBJECT TRAP-DOOR
|
||||
(IN LIVING-ROOM)
|
||||
(DESC "trap door")
|
||||
(SYNONYM DOOR TRAPDOOR TRAP-DOOR)
|
||||
(ADJECTIVE TRAP DUSTY)
|
||||
(FLAGS DOORBIT NDESCBIT INVISIBLE)
|
||||
(ACTION TRAP-DOOR-F)>
|
||||
|
||||
<ROUTINE TRAP-DOOR-F ()
|
||||
<COND (<OR <VERB? RAISE>
|
||||
<AND <VERB? LOOK-UNDER>
|
||||
<EQUAL? ,HERE ,LIVING-ROOM>>>
|
||||
<PERFORM ,V?OPEN ,TRAP-DOOR>
|
||||
<RTRUE>)
|
||||
(<AND <VERB? OPEN CLOSE>
|
||||
<EQUAL? ,HERE ,LIVING-ROOM>>
|
||||
<OPEN-CLOSE ,PRSO
|
||||
"The door reluctantly opens to reveal a rickety staircase descending into
|
||||
darkness."
|
||||
"The door swings shut.">)
|
||||
(<EQUAL? ,HERE ,CELLAR>
|
||||
<COND (<AND <VERB? OPEN UNLOCK>
|
||||
<NOT <FSET? ,TRAP-DOOR ,OPENBIT>>>
|
||||
<TELL "It's latched from above." CR>)
|
||||
(<AND <VERB? CLOSE>
|
||||
<FSET? ,TRAP-DOOR ,OPENBIT>>
|
||||
<FCLEAR ,TRAP-DOOR ,OPENBIT>
|
||||
<TELL "The door latches shut." CR>)>)>>
|
|
@ -0,0 +1,489 @@
|
|||
"GLOBALS for
|
||||
Mini-Zork '87
|
||||
(c) Copyright 1987 Infocom, Inc. All Rights Reserved"
|
||||
|
||||
<DIRECTIONS NORTH EAST WEST SOUTH NE NW SE SW UP DOWN IN OUT LAND>
|
||||
|
||||
<OBJECT GLOBAL-OBJECTS
|
||||
(FLAGS RMUNGBIT INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT OPENBIT
|
||||
SEARCHBIT TRANSBIT ONBIT RLANDBIT)>
|
||||
|
||||
<OBJECT LOCAL-GLOBALS
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "it")>
|
||||
|
||||
<OBJECT ROOMS
|
||||
(IN TO ROOMS)>
|
||||
|
||||
<OBJECT PSEUDO-OBJECT
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "pseudo")
|
||||
(ACTION ME-F)>
|
||||
|
||||
<OBJECT IT
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM IT THEM HER HIM)
|
||||
(DESC "thing")
|
||||
(FLAGS NDESCBIT TOUCHBIT)>
|
||||
|
||||
<OBJECT INTNUM
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(FLAGS TOOLBIT)
|
||||
(SYNONYM INTNUM)
|
||||
(DESC "number")>
|
||||
|
||||
<OBJECT NOT-HERE-OBJECT
|
||||
(DESC "thing")
|
||||
(ACTION NOT-HERE-OBJECT-F)>
|
||||
|
||||
<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ)
|
||||
<COND (<AND <EQUAL? ,PRSO ,NOT-HERE-OBJECT>
|
||||
<EQUAL? ,PRSI ,NOT-HERE-OBJECT>>
|
||||
<TELL "Those things aren't here!" CR>
|
||||
<RTRUE>)
|
||||
(<EQUAL? ,PRSO ,NOT-HERE-OBJECT>
|
||||
<SET TBL ,P-PRSO>)
|
||||
(T
|
||||
<SET TBL ,P-PRSI>
|
||||
<SET PRSO? <>>)>
|
||||
<SETG P-CONT <>>
|
||||
<SETG QUOTE-FLAG <>>
|
||||
<COND (<EQUAL? ,WINNER ,ADVENTURER>
|
||||
<TELL ,YOU-CANT "see any ">
|
||||
<NOT-HERE-PRINT .PRSO?>
|
||||
<TELL " here!" CR>)
|
||||
(T
|
||||
<TELL "The " D ,WINNER " seems confused. \"I don't see any ">
|
||||
<NOT-HERE-PRINT .PRSO?>
|
||||
<TELL " here!\"" CR>)>
|
||||
<RTRUE>>
|
||||
|
||||
<ROUTINE NOT-HERE-PRINT (PRSO?)
|
||||
<COND (,P-OFLAG
|
||||
<COND (,P-XADJ
|
||||
<PRINTB ,P-XADJN>)>
|
||||
<COND (,P-XNAM
|
||||
<PRINTB ,P-XNAM>)>)
|
||||
(.PRSO?
|
||||
<BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
|
||||
(T
|
||||
<BUFFER-PRINT <GET ,P-ITBL ,P-NC2> <GET ,P-ITBL ,P-NC2L> <>>)>>
|
||||
|
||||
<OBJECT GLOBAL-WATER
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "water")
|
||||
(SYNONYM WATER)
|
||||
(FLAGS DRINKBIT)
|
||||
(ACTION WATER-F)>
|
||||
|
||||
<OBJECT WALL
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "wall")
|
||||
(SYNONYM WALL WALLS)>
|
||||
|
||||
<OBJECT STAIRS
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "stairway")
|
||||
(SYNONYM STAIR STEPS STAIRCASE STAIRWAY)
|
||||
(ADJECTIVE STONE DARK FORBIDDING)
|
||||
(FLAGS NDESCBIT CLIMBBIT)
|
||||
(ACTION STAIRS-F)>
|
||||
|
||||
<ROUTINE STAIRS-F ()
|
||||
<COND (<VERB? THROUGH>
|
||||
<TELL "Up? Down?" CR>)>>
|
||||
|
||||
<OBJECT SAILOR
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "sailor")
|
||||
(SYNONYM SAILOR)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION SAILOR-F)>
|
||||
|
||||
<GLOBAL HS 0> ;"counts occurences of HELLO, SAILOR"
|
||||
|
||||
<ROUTINE SAILOR-F ()
|
||||
<COND (<VERB? TELL>
|
||||
<SETG P-CONT <>>
|
||||
<SETG QUOTE-FLAG <>>
|
||||
<TELL ,YOU-CANT "talk to the sailor that way." CR>)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL "There is no sailor to be seen." CR>)
|
||||
(<VERB? HELLO>
|
||||
<SETG HS <+ ,HS 1>>
|
||||
<COND (<0? <MOD ,HS 12>>
|
||||
<TELL "You seem to be repeating yourself." CR>)
|
||||
(T
|
||||
<TELL "Nothing happens here." CR>)>)>>
|
||||
|
||||
<OBJECT GROUND
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "ground")
|
||||
(SYNONYM GROUND SAND DIRT FLOOR)
|
||||
(ACTION GROUND-F)>
|
||||
|
||||
<ROUTINE GROUND-F ()
|
||||
<COND (<AND <VERB? PUT PUT-ON>
|
||||
<EQUAL? ,PRSI ,GROUND>>
|
||||
<PERFORM ,V?DROP ,PRSO>
|
||||
<RTRUE>)
|
||||
(<EQUAL? ,HERE ,SANDY-CAVE>
|
||||
<SAND-F>)
|
||||
(<VERB? DIG>
|
||||
<TELL "The ground is too ">
|
||||
<COND (<EQUAL? ,HERE ,RESERVOIR>
|
||||
<TELL "muddy">)
|
||||
(T
|
||||
<TELL "hard">)>
|
||||
<TELL " here." CR>)>>
|
||||
|
||||
<OBJECT GRUE
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "lurking grue")
|
||||
(SYNONYM GRUE)
|
||||
(ADJECTIVE LURKING)
|
||||
(ACTION GRUE-F)>
|
||||
|
||||
<ROUTINE GRUE-F ()
|
||||
<COND (<VERB? EXAMINE>
|
||||
<TELL
|
||||
"The grue is a sinister, lurking presence in the dark places of the earth.
|
||||
Its favorite diet is adventurers, but its insatiable appetite is tempered
|
||||
by its fear of light." CR>)
|
||||
(<VERB? FIND>
|
||||
<TELL
|
||||
"One is probably lurking in the dark nearby. Don't let your light
|
||||
go out!" CR>)>>
|
||||
|
||||
<OBJECT LUNGS
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "blast of air")
|
||||
(SYNONYM LUNGS AIR MOUTH BREATH)
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT ME
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "brave adventurer")
|
||||
(SYNONYM ME MYSELF SELF ADVENTURER)
|
||||
(ADJECTIVE BRAVE)
|
||||
(FLAGS ACTORBIT)
|
||||
(ACTION ME-F)>
|
||||
|
||||
<ROUTINE ME-F ()
|
||||
<COND (<VERB? TELL>
|
||||
<SETG P-CONT <>>
|
||||
<SETG QUOTE-FLAG <>>
|
||||
<TELL ,MENTAL-COLLAPSE>)
|
||||
(<AND <VERB? GIVE>
|
||||
<EQUAL? ,PRSI ,ME>>
|
||||
<PERFORM ,V?TAKE ,PRSO>
|
||||
<RTRUE>)
|
||||
(<VERB? EAT>
|
||||
<TELL "Auto-cannibalism is not the answer." CR>)
|
||||
(<AND <VERB? ATTACK MUNG>
|
||||
<PRSO? ,ME>>
|
||||
<JIGS-UP "Poof, you're dead!">)
|
||||
(<VERB? TAKE>
|
||||
<TELL "How romantic!" CR>)
|
||||
(<VERB? EXAMINE>
|
||||
<COND (<EQUAL? ,HERE ,MIRROR-ROOM-NORTH ,MIRROR-ROOM-SOUTH>
|
||||
<TELL "Your image in the mirror looks tired." CR>)
|
||||
(T
|
||||
<TELL "Are your eyes prehensile?" CR>)>)>>
|
||||
|
||||
<OBJECT ADVENTURER
|
||||
(DESC "you")
|
||||
(SYNONYM ADVENTURER)
|
||||
(FLAGS NDESCBIT INVISIBLE SACREDBIT ACTORBIT)
|
||||
(STRENGTH 6)
|
||||
(ACTION 0)>
|
||||
|
||||
<OBJECT PATH-OBJECT
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "passage")
|
||||
(SYNONYM TRAIL PATH PASSAGE TUNNEL)
|
||||
(ADJECTIVE FOREST NARROW LONG WINDING)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION PATH-OBJECT-F)>
|
||||
|
||||
<ROUTINE PATH-OBJECT-F ()
|
||||
<COND (<VERB? TAKE FOLLOW>
|
||||
<V-WALK-AROUND>)
|
||||
(<VERB? DIG>
|
||||
<TELL "Not a chance." CR>)>>
|
||||
|
||||
<OBJECT HANDS
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(DESC "pair of hands")
|
||||
(SYNONYM PAIR HANDS HAND)
|
||||
(ADJECTIVE BARE)
|
||||
(FLAGS NDESCBIT TOOLBIT)>
|
||||
\
|
||||
;"stuff that belongs in more than one geographical area"
|
||||
|
||||
<ROUTINE MIRROR-ROOM-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL "You are in a square room with tall ceilings. A ">
|
||||
<COND (<EQUAL? ,MIRROR-MUNG ,HERE ,MIRROR>
|
||||
<TELL "demolished">)
|
||||
(T
|
||||
<TELL "huge">)>
|
||||
<TELL
|
||||
" mirror fills the south wall. There are exits east and northeast.">)>>
|
||||
|
||||
<OBJECT MIRROR
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "mirror")
|
||||
(SYNONYM REFLECTION MIRROR)
|
||||
(FLAGS TRYTAKEBIT NDESCBIT)
|
||||
(ACTION MIRROR-F)>
|
||||
|
||||
<GLOBAL MIRROR-MUNG <>> ;"if both mirrors are broken, SETG this to MIRROR"
|
||||
|
||||
<GLOBAL LUCKY T>
|
||||
|
||||
<ROUTINE MIRROR-F ("AUX" OTHER-ROOM)
|
||||
<COND (<AND <VERB? RUB>
|
||||
<NOT ,MIRROR-MUNG>>
|
||||
<COND (<EQUAL? ,HERE ,MIRROR-ROOM-NORTH>
|
||||
<SET OTHER-ROOM ,MIRROR-ROOM-SOUTH>)
|
||||
(T
|
||||
<SET OTHER-ROOM ,MIRROR-ROOM-NORTH>)>
|
||||
<ROB ,HERE ,MIRROR <>>
|
||||
<ROB .OTHER-ROOM ,HERE <>>
|
||||
<ROB ,MIRROR .OTHER-ROOM <>>
|
||||
<GOTO .OTHER-ROOM <>>
|
||||
<TELL "There is a rumble from deep within the earth." CR>)
|
||||
(<VERB? LOOK-INSIDE EXAMINE>
|
||||
<COND (<EQUAL? ,MIRROR-MUNG ,HERE ,MIRROR>
|
||||
<TELL "The mirror is shattered.">)
|
||||
(T
|
||||
<TELL "An ugly person stares back at you.">)>
|
||||
<CRLF>)
|
||||
(<VERB? TAKE>
|
||||
<FASTENED ,MIRROR "wall">)
|
||||
(<VERB? MUNG THROW ATTACK>
|
||||
<COND (<EQUAL? ,MIRROR-MUNG ,HERE ,MIRROR>
|
||||
<TELL "You've done enough damage already." CR>)
|
||||
(T
|
||||
<COND (,MIRROR-MUNG ;"you've already broken the other"
|
||||
<SETG MIRROR-MUNG ,MIRROR>)
|
||||
(T
|
||||
<SETG MIRROR-MUNG ,HERE>)>
|
||||
<SETG LUCKY <>>
|
||||
<TELL
|
||||
"The mirror breaks. I hope you have a seven year supply of good luck
|
||||
handy." CR>)>)>>
|
||||
|
||||
<OBJECT CHIMNEY
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "chimney")
|
||||
(SYNONYM CHIMNEY)
|
||||
(ADJECTIVE DARK NARROW)
|
||||
(FLAGS CLIMBBIT NDESCBIT)
|
||||
(ACTION CHIMNEY-F)>
|
||||
|
||||
<ROUTINE CHIMNEY-F ()
|
||||
<COND (<VERB? EXAMINE>
|
||||
<TELL "The chimney leads ">
|
||||
<COND (<EQUAL? ,HERE ,KITCHEN>
|
||||
<TELL "down">)
|
||||
(T
|
||||
<TELL "up, and looks climbable">)>
|
||||
<TELL ,PERIOD-CR>)>>
|
||||
\
|
||||
;"utility routines and shared stuff"
|
||||
|
||||
<ROUTINE LIGHT-INT (OBJ TBL TICK)
|
||||
<COND (<0? .TICK>
|
||||
<FCLEAR .OBJ ,ONBIT>
|
||||
<FSET .OBJ ,RMUNGBIT>)>
|
||||
<COND (<OR <HELD? .OBJ>
|
||||
<IN? .OBJ ,HERE>>
|
||||
<COND (<0? .TICK>
|
||||
<TELL "The " D .OBJ " fizzles and dies." CR>
|
||||
<NOW-DARK?>)
|
||||
(T
|
||||
<TELL <GET .TBL 1> CR>)>)>>
|
||||
|
||||
<ROUTINE GLOBAL-IN? (OBJ "AUX" TX)
|
||||
<COND (<SET TX <GETPT ,HERE ,P?GLOBAL>>
|
||||
<ZMEMQB .OBJ .TX <- <PTSIZE .TX> 1>>)>>
|
||||
|
||||
<ROUTINE FIND-IN (WHERE WHAT "AUX" W)
|
||||
<SET W <FIRST? .WHERE>>
|
||||
<COND (<NOT .W>
|
||||
<RFALSE>)>
|
||||
<REPEAT ()
|
||||
<COND (<AND <FSET? .W .WHAT>
|
||||
<NOT <EQUAL? .W ,ADVENTURER>>>
|
||||
<RETURN .W>)
|
||||
(<NOT <SET W <NEXT? .W>>>
|
||||
<RETURN <>>)>>>
|
||||
|
||||
<ROUTINE ACCESSIBLE? (OBJ "AUX" (L <LOC .OBJ>))
|
||||
<COND (<FSET? .OBJ ,INVISIBLE>
|
||||
<RFALSE>)
|
||||
(<NOT .L>
|
||||
<RFALSE>)
|
||||
(<EQUAL? .L ,GLOBAL-OBJECTS>
|
||||
<RTRUE>)
|
||||
(<AND <EQUAL? .L ,LOCAL-GLOBALS>
|
||||
<GLOBAL-IN? .OBJ>>
|
||||
<RTRUE>)
|
||||
(<NOT <EQUAL? <META-LOC .OBJ> ,HERE <LOC ,WINNER>>>
|
||||
<RFALSE>)
|
||||
(<EQUAL? .L ,WINNER ,HERE <LOC ,WINNER>>
|
||||
<RTRUE>)
|
||||
(<AND <FSET? .L ,OPENBIT>
|
||||
<ACCESSIBLE? .L>>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROUTINE META-LOC (OBJ)
|
||||
<REPEAT ()
|
||||
<COND (<NOT .OBJ>
|
||||
<RFALSE>)
|
||||
(<IN? .OBJ ,GLOBAL-OBJECTS>
|
||||
<RETURN ,GLOBAL-OBJECTS>)>
|
||||
<COND (<IN? .OBJ ,ROOMS>
|
||||
<RETURN .OBJ>)
|
||||
(T
|
||||
<SET OBJ <LOC .OBJ>>)>>>
|
||||
|
||||
<ROUTINE HELD? (CAN)
|
||||
<REPEAT ()
|
||||
<SET CAN <LOC .CAN>>
|
||||
<COND (<NOT .CAN>
|
||||
<RFALSE>)
|
||||
(<EQUAL? .CAN ,WINNER>
|
||||
<RTRUE>)>>>
|
||||
|
||||
<ROUTINE OTHER-SIDE (DOBJ "AUX" (P 0) TX) ;"finds room beyond given door"
|
||||
<REPEAT ()
|
||||
<COND (<L? <SET P <NEXTP ,HERE .P>> ,LOW-DIRECTION>
|
||||
<RETURN <>>)
|
||||
(T
|
||||
<SET TX <GETPT ,HERE .P>>
|
||||
<COND (<AND <EQUAL? <PTSIZE .TX> ,DEXIT>
|
||||
<EQUAL? <GETB .TX ,DEXITOBJ> .DOBJ>>
|
||||
<RETURN .P>)>)>>>
|
||||
|
||||
<ROUTINE REMOVE-CAREFULLY (OBJ)
|
||||
<COND (<EQUAL? .OBJ ,P-IT-OBJECT>
|
||||
<SETG P-IT-OBJECT <>>)>
|
||||
<REMOVE .OBJ>
|
||||
<NOW-DARK?>>
|
||||
|
||||
<ROUTINE NOW-DARK? ()
|
||||
<COND (<AND ,LIT
|
||||
<NOT <LIT? ,HERE>>>
|
||||
<SETG LIT <>>
|
||||
<TELL "It is now pitch black." CR>)>
|
||||
<RTRUE>>
|
||||
|
||||
<ROUTINE STUPID-CONTAINER (OBJ STR)
|
||||
<COND (<VERB? CLOSE>
|
||||
<TELL "It is!" CR>)
|
||||
(<VERB? LOOK-INSIDE EXAMINE OPEN>
|
||||
<TELL "Lots of " .STR ,PERIOD-CR>)
|
||||
(<AND <VERB? PUT>
|
||||
<EQUAL? ,PRSI .OBJ>>
|
||||
<TELL "Then it wouldn't be a " D .OBJ " anymore!" CR>)>>
|
||||
|
||||
<ROUTINE PEEK-UNDER (OBJ1 OBJ2)
|
||||
<TELL
|
||||
"Underneath the " D .OBJ1 " is a " D .OBJ2 ". As you release the " D .OBJ1
|
||||
", the " D .OBJ2 " is once again concealed from view." CR>>
|
||||
|
||||
<ROUTINE FASTENED (OBJ STRING)
|
||||
<TELL
|
||||
"The " D .OBJ " is securely fastened to the " .STRING ,PERIOD-CR>>
|
||||
|
||||
<ROUTINE OPEN-CLOSE (OBJ STROPN STRCLS)
|
||||
<COND (<VERB? OPEN>
|
||||
<COND (<FSET? .OBJ ,OPENBIT>
|
||||
<TELL ,LOOK-AROUND>)
|
||||
(T
|
||||
<FSET .OBJ ,OPENBIT>
|
||||
<TELL .STROPN CR>)>)
|
||||
(<VERB? CLOSE>
|
||||
<COND (<FSET? .OBJ ,OPENBIT>
|
||||
<FCLEAR .OBJ ,OPENBIT>
|
||||
<TELL .STRCLS CR>)
|
||||
(T
|
||||
<TELL ,LOOK-AROUND>)>)>>
|
||||
|
||||
<ROUTINE HACK-HACK (STR)
|
||||
<TELL .STR D ,PRSO <PICK-ONE ,HO-HUM> ,PERIOD-CR>>
|
||||
|
||||
<GLOBAL HO-HUM
|
||||
<LTABLE
|
||||
0
|
||||
" doesn't seem to work"
|
||||
" isn't notably helpful"
|
||||
" has no effect">>
|
||||
|
||||
<GLOBAL YUKS
|
||||
<LTABLE
|
||||
0
|
||||
"A valiant attempt."
|
||||
"You can't be serious."
|
||||
"Not bloody likely."
|
||||
"What a concept!">>
|
||||
|
||||
<GLOBAL PERIOD-CR ".|">
|
||||
|
||||
<GLOBAL LOOK-AROUND "Look around you.|">
|
||||
|
||||
<GLOBAL FORMERLY-A-LAKE
|
||||
"what was formerly a lake. However, with the water level lowered, there is
|
||||
merely a shallow stream, easily">
|
||||
|
||||
<GLOBAL MENTAL-COLLAPSE
|
||||
"Talking to yourself is said to be a sign of impending mental collapse.|">
|
||||
|
||||
<GLOBAL CANT-GO "You can't go that way.|">
|
||||
|
||||
<GLOBAL REFERRING "It's not clear what you're referring to.|">
|
||||
|
||||
<GLOBAL NOTHING-TO-FILL-WITH "There is nothing to fill it with.|">
|
||||
|
||||
<GLOBAL GOOD-TRICK "That would be a good trick.|">
|
||||
|
||||
<GLOBAL TOO-DARK "It's too dark to see.|">
|
||||
|
||||
<GLOBAL GUE-NAME "The Great Underground Empire">
|
||||
|
||||
<GLOBAL INTEGRAL-PART "It is an integral part of the control panel.|">
|
||||
|
||||
<GLOBAL PERFORM-CEREMONY "You must perform the ceremony.|">
|
||||
|
||||
<GLOBAL FAILED "Failed.|">
|
||||
|
||||
<GLOBAL THIEF-LEFT-DISGUSTED
|
||||
"Finding nothing of value, the thief left, looking disgusted.|">
|
||||
|
||||
<GLOBAL YOU-CANT "You can't ">
|
||||
|
||||
<GLOBAL YNH "You're not holding ">
|
||||
|
||||
<GLOBAL THERES-NOTHING "There is nothing ">
|
||||
|
||||
<GLOBAL CANDLES-ARE "The candles are ">
|
||||
|
||||
<GLOBAL ALREADY "You already did that!|">
|
||||
|
||||
<GLOBAL WATER-EVAPORATES
|
||||
"The water spills to the floor and evaporates immediately.|">
|
||||
|
||||
<GLOBAL BEG-PARDON "[I beg your pardon?]|">
|
||||
|
||||
<GLOBAL NOTHING-HAPPENS "Nothing happens.|">
|
||||
|
||||
<GLOBAL NOUN-MISSING "[There seems to be a noun missing in that sentence!]|">
|
||||
|
||||
<GLOBAL CYCLOPS-IS "The cyclops is">
|
||||
|
||||
<GLOBAL DISK-BASED " in the larger, disk-based version of Zork I.|">
|
|
@ -0,0 +1,439 @@
|
|||
"MAZE for
|
||||
Mini-Zork '87
|
||||
(c) Copyright 1987 Infocom, Inc. All Rights Reserved"
|
||||
|
||||
<ROOM MAZE-1
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(EAST TO TROLL-ROOM)
|
||||
(WEST TO MAZE-3)
|
||||
(NW TO MAZE-2)
|
||||
(NE TO MAZE-1)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<ROOM MAZE-2
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(NORTH TO MAZE-1)
|
||||
(WEST TO MAZE-2)
|
||||
(SE TO MAZE-3)
|
||||
(DOWN TO MAZE-5)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<ROOM MAZE-3
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(WEST TO MAZE-2)
|
||||
(NORTH TO MAZE-1)
|
||||
(UP TO MAZE-5)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<ROOM MAZE-4
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(EAST TO MAZE-8)
|
||||
(DOWN TO MAZE-5)
|
||||
(SE TO MAZE-7)
|
||||
(SOUTH TO MAZE-10)
|
||||
(UP TO MAZE-6)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<ROOM MAZE-5
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(NORTH TO MAZE-3)
|
||||
(SW TO MAZE-4)
|
||||
(NW TO MAZE-2)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<OBJECT BURNED-OUT-LANTERN
|
||||
(IN MAZE-5)
|
||||
(DESC "burned-out lantern")
|
||||
(FDESC "The deceased adventurer's useless lantern is here.")
|
||||
(SYNONYM LANTERN LAMP)
|
||||
(ADJECTIVE RUSTY BURNED DEAD USELESS)
|
||||
(FLAGS TAKEBIT)
|
||||
(SIZE 20)>
|
||||
|
||||
<OBJECT BAG-OF-COINS
|
||||
(IN MAZE-5)
|
||||
(DESC "leather bag of coins")
|
||||
(LDESC "An old leather bag, bulging with coins, is here.")
|
||||
(SYNONYM BAG COINS TREASURE)
|
||||
(ADJECTIVE OLD LEATHER)
|
||||
(FLAGS TAKEBIT TREASUREBIT)
|
||||
(SIZE 15)
|
||||
(VALUE 11)
|
||||
(ACTION BAG-OF-COINS-F)>
|
||||
|
||||
<ROUTINE BAG-OF-COINS-F ()
|
||||
<STUPID-CONTAINER ,BAG-OF-COINS "coins">>
|
||||
|
||||
<OBJECT RUSTY-KNIFE
|
||||
(IN MAZE-5)
|
||||
(DESC "rusty knife")
|
||||
(FDESC "Beside the skeleton is a rusty knife.")
|
||||
(SYNONYM KNIVES KNIFE)
|
||||
(ADJECTIVE RUSTY)
|
||||
(FLAGS TAKEBIT TRYTAKEBIT WEAPONBIT TOOLBIT)
|
||||
(SIZE 20)
|
||||
(ACTION RUSTY-KNIFE-F)>
|
||||
|
||||
<ROUTINE RUSTY-KNIFE-F ()
|
||||
<COND (<AND <VERB? TAKE>
|
||||
<IN? ,SWORD ,WINNER>>
|
||||
<TELL
|
||||
"As you touch the rusty knife, your sword gives a single pulse of
|
||||
blinding blue light." CR>
|
||||
<RFALSE>)
|
||||
(<OR <AND <PRSI? ,RUSTY-KNIFE>
|
||||
<VERB? ATTACK>>
|
||||
<AND <VERB? SWING>
|
||||
<PRSO? ,RUSTY-KNIFE>
|
||||
,PRSI>>
|
||||
<REMOVE ,RUSTY-KNIFE>
|
||||
<JIGS-UP
|
||||
"The knife, moving with its own force, slowly turns your hand, until the
|
||||
blade is at your neck. The knife seems to sing as it savagely slits your
|
||||
throat.">)>>
|
||||
|
||||
<OBJECT KEYS
|
||||
(IN MAZE-5)
|
||||
(DESC "skeleton key")
|
||||
(SYNONYM KEY)
|
||||
(ADJECTIVE SKELETON)
|
||||
(FLAGS TAKEBIT TOOLBIT)
|
||||
(SIZE 10)>
|
||||
|
||||
<OBJECT SKELETON
|
||||
(IN MAZE-5)
|
||||
(DESC "skeleton")
|
||||
(LDESC
|
||||
"A skeleton, probably the remains of a luckless adventurer, lies here.")
|
||||
(SYNONYM BONES SKELETON BODY)
|
||||
(FLAGS TRYTAKEBIT NDESCBIT)
|
||||
(ACTION SKELETON-F)>
|
||||
|
||||
<ROUTINE SKELETON-F ()
|
||||
<COND (<VERB? TAKE RUB MOVE PUSH RAISE LOWER ATTACK KICK KISS>
|
||||
<ROB ,HERE ,HADES T>
|
||||
<ROB ,ADVENTURER ,HADES T>
|
||||
<TELL
|
||||
"A ghost appears, appalled at your desecration of the remains of a fellow
|
||||
adventurer. He curses your valuables and banishes them to Hades. The ghost
|
||||
leaves, muttering obscenities." CR>)>>
|
||||
|
||||
<ROOM MAZE-6
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(DOWN TO MAZE-2)
|
||||
(SOUTH TO MAZE-6)
|
||||
(SE TO MAZE-4)
|
||||
(NE TO GRATING-ROOM)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<ROOM MAZE-7
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(UP TO MAZE-10)
|
||||
(WEST TO MAZE-4)
|
||||
(DOWN TO MAZE-5)
|
||||
(SW TO MAZE-7)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<ROOM MAZE-8
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(NORTH TO MAZE-8)
|
||||
(EAST TO MAZE-9)
|
||||
(SE TO MAZE-10)
|
||||
(UP TO MAZE-4)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<ROOM MAZE-9
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(NORTH TO MAZE-8)
|
||||
(SOUTH TO MAZE-10)
|
||||
(SE TO CYCLOPS-ROOM)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<ROOM MAZE-10
|
||||
(IN ROOMS)
|
||||
(DESC "Maze")
|
||||
(LDESC "This is part of a maze of twisty little passages, all alike.")
|
||||
(SOUTH TO MAZE-9)
|
||||
(NE TO MAZE-8)
|
||||
(NW TO MAZE-7)
|
||||
(SW TO MAZE-4)
|
||||
(FLAGS RLANDBIT MAZEBIT)>
|
||||
|
||||
<ROOM GRATING-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Grating Room")
|
||||
(SW TO MAZE-6)
|
||||
(UP TO FOREST-PATH IF GRATE IS OPEN ELSE "The grating is closed.")
|
||||
(GLOBAL GRATE)
|
||||
(FLAGS RLANDBIT)
|
||||
(ACTION GRATING-ROOM-F)>
|
||||
|
||||
<GLOBAL GRATE-REVEALED <>>
|
||||
|
||||
<GLOBAL GRUNLOCK <>>
|
||||
|
||||
<ROUTINE GRATING-ROOM-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-ENTER>
|
||||
<FCLEAR ,GRATE ,INVISIBLE>)
|
||||
(<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL
|
||||
"You are in a room off the maze, which lies to the southwest. Above you is a">
|
||||
<COND (<FSET? ,GRATE ,OPENBIT>
|
||||
<TELL "n open grating with sunlight pouring in.">)
|
||||
(,GRUNLOCK
|
||||
<TELL " grating.">)
|
||||
(T
|
||||
<TELL
|
||||
" grating locked with a skull-and-crossbones lock.">)>)>>
|
||||
|
||||
<OBJECT GRATE
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "grating")
|
||||
(SYNONYM GRATE GRATING)
|
||||
(FLAGS DOORBIT NDESCBIT INVISIBLE)
|
||||
(ACTION GRATE-F)>
|
||||
|
||||
<ROUTINE GRATE-F ()
|
||||
<COND (<AND <VERB? OPEN>
|
||||
<PRSI? ,KEYS>>
|
||||
<PERFORM ,V?UNLOCK ,GRATE ,KEYS>
|
||||
<RTRUE>)
|
||||
(<AND <VERB? LOCK UNLOCK>
|
||||
<EQUAL? ,HERE ,FOREST-PATH>>
|
||||
<TELL ,YOU-CANT "from this side." CR>)
|
||||
(<VERB? LOCK>
|
||||
<SETG GRUNLOCK <>>
|
||||
<TELL "Locked." CR>)
|
||||
(<AND <VERB? UNLOCK>
|
||||
<PRSO? ,GRATE>>
|
||||
<COND (<PRSI? ,KEYS>
|
||||
<SETG GRUNLOCK T>
|
||||
<TELL "Unlocked." CR>)
|
||||
(T
|
||||
<TELL "With a " D ,PRSI "!?!" CR>)>)
|
||||
(<VERB? PICK>
|
||||
<TELL "You haven't the skill." CR>)
|
||||
(<VERB? OPEN CLOSE>
|
||||
<COND (,GRUNLOCK
|
||||
<OPEN-CLOSE ,GRATE "The grating opens."
|
||||
"The grating closes.">
|
||||
<COND (<FSET? ,GRATE ,OPENBIT>
|
||||
<FSET ,GRATING-ROOM ,ONBIT>
|
||||
<COND (<AND <NOT <EQUAL? ,HERE ,FOREST-PATH>>
|
||||
<NOT ,GRATE-REVEALED>>
|
||||
|
||||
<SETG GRATE-REVEALED T>
|
||||
<MOVE ,LEAVES ,HERE>
|
||||
<TELL
|
||||
"A pile of leaves falls onto your head and to the ground." CR>)>)
|
||||
(T
|
||||
<FCLEAR ,GRATING-ROOM ,ONBIT>)>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<TELL "The grating is locked." CR>)>)
|
||||
(<AND <VERB? PUT>
|
||||
<PRSI? ,GRATE>>
|
||||
<TELL "It won't fit through the grating." CR>)>>
|
||||
|
||||
<ROOM CYCLOPS-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Cyclops Room")
|
||||
(NW TO MAZE-9)
|
||||
(EAST TO LIVING-ROOM IF MAGIC-FLAG)
|
||||
(UP TO THIEFS-LAIR IF CYCLOPS-FLAG ELSE
|
||||
"The cyclops won't let you past.")
|
||||
(FLAGS RLANDBIT)
|
||||
(GLOBAL STAIRS)
|
||||
(ACTION CYCLOPS-ROOM-F)>
|
||||
|
||||
<GLOBAL CYCLOWRATH 0>
|
||||
|
||||
<GLOBAL CYCLOPS-FLAG <>>
|
||||
|
||||
<GLOBAL MAGIC-FLAG <>>
|
||||
|
||||
<ROUTINE CYCLOPS-ROOM-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL
|
||||
"This room has a northwest exit and a staircase leading up. ">
|
||||
<D-CYCLOPS>)
|
||||
(<EQUAL? .RARG ,M-ENTER>
|
||||
<OR <0? ,CYCLOWRATH> <ENABLE <INT I-CYCLOPS>>>)>>
|
||||
|
||||
<OBJECT CYCLOPS
|
||||
(IN CYCLOPS-ROOM)
|
||||
(DESC "cyclops")
|
||||
(SYNONYM CYCLOPS EYE)
|
||||
(ADJECTIVE HUNGRY GIANT)
|
||||
(FLAGS ACTORBIT NDESCBIT TRYTAKEBIT)
|
||||
(ACTION CYCLOPS-F)>
|
||||
|
||||
<ROUTINE CYCLOPS-F ()
|
||||
<COND (<EQUAL? ,WINNER ,CYCLOPS>
|
||||
<COND (,CYCLOPS-FLAG
|
||||
<TELL "He's fast asleep." CR>)
|
||||
(<VERB? ODYSSEUS>
|
||||
<SETG WINNER ,ADVENTURER>
|
||||
<PERFORM ,V?ODYSSEUS>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<TELL "He's not much of a conversationalist." CR>)>)
|
||||
(<VERB? EXAMINE>
|
||||
<D-CYCLOPS>
|
||||
<CRLF>)
|
||||
(,CYCLOPS-FLAG
|
||||
<COND (<OR <VERB? ALARM KICK ATTACK BURN MUNG>
|
||||
<AND <VERB? TIE-UP>
|
||||
<PRSI? ,ROPE>>>
|
||||
<TELL
|
||||
"The cyclops yawns and stares at the thing that woke him up." CR>
|
||||
<SETG CYCLOPS-FLAG <>>
|
||||
<COND (<L? ,CYCLOWRATH 0>
|
||||
<SETG CYCLOWRATH <- ,CYCLOWRATH>>)>)>)
|
||||
(<AND <VERB? GIVE>
|
||||
<PRSI? ,CYCLOPS>>
|
||||
<COND (<PRSO? ,LUNCH>
|
||||
<ENABLE <QUEUE I-CYCLOPS -1>>
|
||||
<COND (<G? ,CYCLOWRATH -1>
|
||||
<REMOVE ,LUNCH>
|
||||
<SETG CYCLOWRATH
|
||||
<COND (<L? -1 <- ,CYCLOWRATH>> -1)
|
||||
(T <- ,CYCLOWRATH>)>>
|
||||
<TELL
|
||||
"The cyclops says, \"Yum, that made me thirsty. Perhaps I could drink the
|
||||
blood of that thing.\" It appears that YOU are \"that thing.\"" CR>)>)
|
||||
(<OR <PRSO? ,WATER>
|
||||
<AND <PRSO? ,BOTTLE>
|
||||
<IN? ,WATER ,BOTTLE>>>
|
||||
<COND (<L? ,CYCLOWRATH 0>
|
||||
<REMOVE-CAREFULLY ,WATER>
|
||||
<MOVE ,BOTTLE ,HERE>
|
||||
<FSET ,BOTTLE ,OPENBIT>
|
||||
<SETG CYCLOPS-FLAG T>
|
||||
<TELL
|
||||
"The cyclops empties the bottle, yawns, and falls fast asleep. (What did
|
||||
you put in that drink, anyway?)" CR>)
|
||||
(T
|
||||
<TELL
|
||||
,CYCLOPS-IS "n't thirsty and refuses your offer." CR>)>)
|
||||
(<PRSO? ,GARLIC>
|
||||
<TELL ,CYCLOPS-IS "n't THAT hungry." CR>)
|
||||
(T
|
||||
<TELL "The cyclops won't eat THAT!" CR>)>)
|
||||
(<VERB? THROW ATTACK MUNG>
|
||||
<ENABLE <QUEUE I-CYCLOPS -1>>
|
||||
<COND (<VERB? MUNG>
|
||||
<TELL
|
||||
"\"Do you think I'm as stupid as my father was?\", he says, dodging." CR>)
|
||||
(T
|
||||
<COND (<VERB? THROW>
|
||||
<MOVE ,PRSO ,HERE>)>
|
||||
<TELL "The cyclops ignores your pitiful attempt." CR>)>)
|
||||
(<VERB? TIE>
|
||||
<TELL "You cannot tie him, though he is fit to be tied." CR>)
|
||||
(<VERB? LISTEN>
|
||||
<TELL "You can hear his stomach rumbling." CR>)>>
|
||||
|
||||
<ROUTINE D-CYCLOPS ()
|
||||
<COND (,MAGIC-FLAG
|
||||
<TELL "The east wall has a cyclops-sized opening in it.">)
|
||||
(,CYCLOPS-FLAG
|
||||
<TELL
|
||||
"The cyclops sleeps blissfully at the foot of the stairs.">)
|
||||
(<0? ,CYCLOWRATH>
|
||||
<TELL
|
||||
"A hungry cyclops blocks the staircase. From the bloodstains on the walls,
|
||||
you gather that he is not very friendly, though he likes people.">)
|
||||
(<G? ,CYCLOWRATH 0>
|
||||
<TELL
|
||||
,CYCLOPS-IS " eyeing you closely. I don't think he likes you very much.
|
||||
He looks extremely hungry, even for a cyclops.">)
|
||||
(<L? ,CYCLOWRATH 0>
|
||||
<TELL
|
||||
"The cyclops, having eaten the hot peppers, appears to be gasping.
|
||||
His enflamed tongue protrudes from his man-sized mouth.">)>>
|
||||
|
||||
<ROUTINE I-CYCLOPS ()
|
||||
<COND (<OR ,CYCLOPS-FLAG
|
||||
,DEAD>
|
||||
<RTRUE>)
|
||||
(<NOT <EQUAL? ,HERE ,CYCLOPS-ROOM>>
|
||||
<DISABLE <INT I-CYCLOPS>>)
|
||||
(<G? <ABS ,CYCLOWRATH> 5>
|
||||
<DISABLE <INT I-CYCLOPS>>
|
||||
<JIGS-UP
|
||||
"The cyclops, tired of your trickery, grabs you firmly. \"Mmm. Just like Mom
|
||||
used to make 'em.\"">)
|
||||
(T
|
||||
<COND (<L? ,CYCLOWRATH 0>
|
||||
<SETG CYCLOWRATH <- ,CYCLOWRATH 1>>)
|
||||
(T
|
||||
<SETG CYCLOWRATH <+ ,CYCLOWRATH 1>>)>
|
||||
<COND (<NOT ,CYCLOPS-FLAG>
|
||||
<TELL
|
||||
,CYCLOPS-IS <NTH ,CYCLOMAD <- <ABS ,CYCLOWRATH> 1>> CR>)>)>>
|
||||
|
||||
<GLOBAL CYCLOMAD
|
||||
<TABLE (PURE)
|
||||
" agitated."
|
||||
" getting more agitated."
|
||||
" looking for something."
|
||||
" now holding salt and pepper. Condiments for an upcoming snack?"
|
||||
" looking at you and drooling."
|
||||
" approaching in an unfriendly manner. You can: 1. Leave 2. Become dinner.">>
|
||||
|
||||
<ROOM THIEFS-LAIR
|
||||
(IN ROOMS)
|
||||
(DESC "Thief's Lair")
|
||||
(LDESC "The only visible exit is down a staircase.")
|
||||
(DOWN TO CYCLOPS-ROOM)
|
||||
(FLAGS RLANDBIT ;"can't have onbit")
|
||||
(VALUE 20)
|
||||
(GLOBAL STAIRS)
|
||||
(ACTION THIEFS-LAIR-F)>
|
||||
|
||||
<ROUTINE THIEFS-LAIR-F (RARG)
|
||||
<COND (<AND <EQUAL? .RARG ,M-ENTER>
|
||||
<1? <GET <INT I-THIEF> ,C-ENABLED?>>
|
||||
<NOT ,DEAD>>
|
||||
<FCLEAR ,THIEF ,INVISIBLE>
|
||||
<COND (<NOT <IN? ,THIEF ,HERE>>
|
||||
<MOVE ,THIEF ,HERE>
|
||||
<ENABLE <QUEUE I-FIGHT -1>>
|
||||
<TELL
|
||||
"You hear a scream of anguish as the robber rushes
|
||||
to defend his hideaway." CR>)>)>>
|
||||
|
||||
<OBJECT CHALICE
|
||||
(IN THIEFS-LAIR)
|
||||
(DESC "chalice")
|
||||
(LDESC "There is an intricate silver chalice here.")
|
||||
(SYNONYM CHALICE CUP TREASURE)
|
||||
(ADJECTIVE SILVER INTRICATE)
|
||||
(FLAGS TREASUREBIT TAKEBIT TRYTAKEBIT CONTBIT SEARCHBIT)
|
||||
(CAPACITY 5)
|
||||
(SIZE 10)
|
||||
(VALUE 20)
|
||||
(ACTION CHALICE-F)>
|
||||
|
||||
<ROUTINE CHALICE-F ()
|
||||
<COND (<VERB? OPEN CLOSE>
|
||||
<TELL "Huh?" CR>)>>
|
|
@ -0,0 +1,2 @@
|
|||
-date- -rel- -size- -pre- -obj- -glo- -voc-
|
||||
11/24 34 52216 14089 179 137 536
|
|
@ -0,0 +1,25 @@
|
|||
Assembling MINI.ZAP.1 on Tuesday, November 24, 1987 17:37:02
|
||||
Release: 34
|
||||
|
||||
64 Inserting MINIFREQ.XZAP.2 (628 bytes)
|
||||
692 Inserting MINIDAT.ZAP.1 (13397 bytes)
|
||||
14089 Inserting MINIPUR.ZAP.1 (102 bytes)
|
||||
14191 Inserting MISC.ZAP.1 (1141 bytes)
|
||||
15332 Inserting PARSER.ZAP.1 (6478 bytes)
|
||||
21810 Inserting VERBS.ZAP.1 (8354 bytes)
|
||||
30164 Inserting GLOBALS.ZAP.1 (1618 bytes)
|
||||
31782 Inserting THIEF.ZAP.1 (2297 bytes)
|
||||
34079 Inserting ABOVE-GROUND.ZAP.1 (2930 bytes)
|
||||
37009 Inserting SOUTH-OF-RES.ZAP.1 (4652 bytes)
|
||||
41661 Inserting NORTH-OF-RES.ZAP.1 (1357 bytes)
|
||||
43018 Inserting MAZE.ZAP.1 (1760 bytes)
|
||||
44778 Inserting MINISTR.ZAP.1 (7438 bytes)
|
||||
179 objects.
|
||||
137 globals.
|
||||
536 word vocabulary.
|
||||
|
||||
52216 bytes (51K).
|
||||
14089 bytes of preload.
|
||||
8583 bytes of impure.
|
||||
|
||||
Outputting symbol tables
|
|
@ -0,0 +1,474 @@
|
|||
|
||||
Combined ZIL Compiler Ver 2.0 (MIM)
|
||||
-----------------------------------
|
||||
|
||||
Incremental compilation disabled, because top-level ZIL file changed.
|
||||
|
||||
Input file: SS:<ZORK1.MINI>MINI.ZIL.13
|
||||
Compiling routine: ZPROB
|
||||
Compiling routine: PICK-ONE
|
||||
Compiling routine: GO
|
||||
Compiling routine: MAIN-LOOP
|
||||
Compiling routine: MAIN-LOOP-1
|
||||
Compiling routine: PERFORM
|
||||
Compiling routine: QUEUE
|
||||
Compiling routine: INT
|
||||
Compiling routine: CLOCKER
|
||||
Compiling routine: PARSER
|
||||
Compiling routine: STUFF
|
||||
Compiling routine: INBUF-STUFF
|
||||
Compiling routine: INBUF-ADD
|
||||
Compiling routine: WT?
|
||||
Compiling routine: CLAUSE
|
||||
Compiling routine: NUMBER?
|
||||
Compiling routine: ORPHAN-MERGE
|
||||
Compiling routine: ACLAUSE-WIN
|
||||
Compiling routine: NCLAUSE-WIN
|
||||
Compiling routine: WORD-PRINT
|
||||
Compiling routine: UNKNOWN-WORD
|
||||
Compiling routine: CANT-USE
|
||||
Compiling routine: GET-PREP
|
||||
Compiling routine: SYNTAX-CHECK
|
||||
Compiling routine: CANT-ORPHAN
|
||||
Compiling routine: ORPHAN
|
||||
Compiling routine: THING-PRINT
|
||||
Compiling routine: BUFFER-PRINT
|
||||
Compiling routine: PREP-PRINT
|
||||
Compiling routine: CLAUSE-COPY
|
||||
Compiling routine: CLAUSE-ADD
|
||||
Compiling routine: PREP-FIND
|
||||
Compiling routine: SYNTAX-FOUND
|
||||
Compiling routine: GWIM
|
||||
Compiling routine: SNARF-OBJECTS
|
||||
Compiling routine: BUT-MERGE
|
||||
Compiling routine: SNARFEM
|
||||
Compiling routine: GET-OBJECT
|
||||
Compiling routine: WHICH-PRINT
|
||||
Compiling routine: GLOBAL-CHECK
|
||||
Compiling routine: DO-SL
|
||||
Compiling routine: SEARCH-LIST
|
||||
Compiling routine: OBJ-FOUND
|
||||
Compiling routine: TAKE-CHECK
|
||||
Compiling routine: ITAKE-CHECK
|
||||
Compiling routine: MANY-CHECK
|
||||
Compiling routine: ZMEMQ
|
||||
Compiling routine: ZMEMQB
|
||||
Compiling routine: LIT?
|
||||
Compiling routine: THIS-IT?
|
||||
Compiling routine: V-VERBOSE
|
||||
Compiling routine: V-BRIEF
|
||||
Compiling routine: V-SUPER-BRIEF
|
||||
Compiling routine: V-DIAGNOSE
|
||||
Compiling routine: V-INVENTORY
|
||||
Compiling routine: FINISH
|
||||
Compiling routine: V-QUIT
|
||||
Compiling routine: V-RESTART
|
||||
Compiling routine: DO-YOU-WISH
|
||||
Compiling routine: YES?
|
||||
Compiling routine: V-RESTORE
|
||||
Compiling routine: V-SAVE
|
||||
Compiling routine: V-SCORE
|
||||
Compiling routine: SCORE-OBJ
|
||||
Compiling routine: V-SCRIPT
|
||||
Compiling routine: V-UNSCRIPT
|
||||
Compiling routine: TRANSCRIPT-MESSAGE
|
||||
Compiling routine: V-VERSION
|
||||
Compiling routine: V-VERIFY
|
||||
Compiling routine: V-COMMAND-FILE
|
||||
Compiling routine: V-RANDOM
|
||||
Compiling routine: V-RECORD
|
||||
Compiling routine: V-UNRECORD
|
||||
Compiling routine: V-ALARM
|
||||
Compiling routine: V-ATTACK
|
||||
Compiling routine: SUICIDAL
|
||||
Compiling routine: PRE-BOARD
|
||||
Compiling routine: V-BOARD
|
||||
Compiling routine: V-BREATHE
|
||||
Compiling routine: PRE-BURN
|
||||
Compiling routine: V-BURN
|
||||
Compiling routine: V-CLIMB
|
||||
Compiling routine: V-CLIMB-DOWN
|
||||
Compiling routine: V-CLIMB-ON
|
||||
Compiling routine: V-CLOSE
|
||||
Compiling routine: V-COUNT
|
||||
Compiling routine: V-CROSS
|
||||
Compiling routine: V-CURSES
|
||||
Compiling routine: V-CUT
|
||||
Compiling routine: V-DEFLATE
|
||||
Compiling routine: V-DIG
|
||||
Compiling routine: V-DRINK
|
||||
Compiling routine: V-DRINK-FROM
|
||||
Compiling routine: PRE-DROP
|
||||
Compiling routine: V-DROP
|
||||
Compiling routine: V-EAT
|
||||
Compiling routine: HIT-SPOT
|
||||
Compiling routine: V-ENTER
|
||||
Compiling routine: V-EXAMINE
|
||||
Compiling routine: V-EXIT
|
||||
Compiling routine: V-EXORCISE
|
||||
Compiling routine: PRE-FILL
|
||||
Compiling routine: V-FILL
|
||||
Compiling routine: V-FIND
|
||||
Compiling routine: V-FOLLOW
|
||||
Compiling routine: PRE-GIVE
|
||||
Compiling routine: V-GIVE
|
||||
Compiling routine: V-HATCH
|
||||
Compiling routine: V-HELLO
|
||||
Compiling routine: V-INFLATE
|
||||
Compiling routine: V-KICK
|
||||
Compiling routine: V-KISS
|
||||
Compiling routine: V-KNOCK
|
||||
Compiling routine: V-LAMP-OFF
|
||||
Compiling routine: V-LAMP-ON
|
||||
Compiling routine: V-LAUNCH
|
||||
Compiling routine: V-LEAP
|
||||
Compiling routine: V-LISTEN
|
||||
Compiling routine: V-LOCK
|
||||
Compiling routine: V-LOOK
|
||||
Compiling routine: V-LOOK-BEHIND
|
||||
Compiling routine: V-LOOK-INSIDE
|
||||
Compiling routine: V-LOOK-UNDER
|
||||
Compiling routine: V-LOWER
|
||||
Compiling routine: V-MAKE
|
||||
Compiling routine: PRE-MOVE
|
||||
Compiling routine: V-MOVE
|
||||
Compiling routine: PRE-MUNG
|
||||
Compiling routine: V-MUNG
|
||||
Compiling routine: V-ODYSSEUS
|
||||
Compiling routine: V-OPEN
|
||||
Compiling routine: V-PICK
|
||||
Compiling routine: V-POUR-ON
|
||||
Compiling routine: V-PRAY
|
||||
Compiling routine: V-PUMP
|
||||
Compiling routine: V-PUSH
|
||||
Compiling routine: PRE-PUT
|
||||
Compiling routine: V-PUT
|
||||
Compiling routine: V-PUT-ON
|
||||
Compiling routine: V-RAISE
|
||||
Compiling routine: PRE-READ
|
||||
Compiling routine: V-READ
|
||||
Compiling routine: V-READ-PAGE
|
||||
Compiling routine: V-REPENT
|
||||
Compiling routine: V-RING
|
||||
Compiling routine: V-RUB
|
||||
Compiling routine: V-SAY
|
||||
Compiling routine: V-SEARCH
|
||||
Compiling routine: V-SGIVE
|
||||
Compiling routine: V-SHAKE
|
||||
Compiling routine: V-SKIP
|
||||
Compiling routine: V-SMELL
|
||||
Compiling routine: V-STAB
|
||||
Compiling routine: V-STRIKE
|
||||
Compiling routine: V-SWIM
|
||||
Compiling routine: V-SWING
|
||||
Compiling routine: PRE-TAKE
|
||||
Compiling routine: V-TAKE
|
||||
Compiling routine: V-TELL
|
||||
Compiling routine: V-THROUGH
|
||||
Compiling routine: V-THROW
|
||||
Compiling routine: V-THROW-OFF
|
||||
Compiling routine: V-TIE
|
||||
Compiling routine: V-TIE-UP
|
||||
Compiling routine: PRE-TURN
|
||||
Compiling routine: V-TURN
|
||||
Compiling routine: V-UNLOCK
|
||||
Compiling routine: V-UNTIE
|
||||
Compiling routine: V-WAIT
|
||||
Compiling routine: V-WALK
|
||||
Compiling routine: V-WALK-AROUND
|
||||
Compiling routine: V-WAVE
|
||||
Compiling routine: V-YELL
|
||||
Compiling routine: V-ZORK
|
||||
Compiling routine: DESCRIBE-ROOM
|
||||
Compiling routine: DESCRIBE-OBJECTS
|
||||
Compiling routine: DESCRIBE-OBJECT
|
||||
Compiling routine: PRINT-CONTENTS
|
||||
Compiling routine: PRINT-CONT
|
||||
Compiling routine: FIRSTER
|
||||
Compiling routine: SEE-INSIDE?
|
||||
Compiling routine: JIGS-UP
|
||||
** Note: Atomic argument to routine assumed constant - DEAD-FUNCTION
|
||||
|
||||
Compiling routine: RANDOMIZE-OBJECTS
|
||||
Compiling routine: KILL-INTERRUPTS
|
||||
Compiling routine: DEAD-FUNCTION
|
||||
Compiling routine: ITAKE
|
||||
Compiling routine: IDROP
|
||||
Compiling routine: CCOUNT
|
||||
Compiling routine: WEIGHT
|
||||
Compiling routine: GOTO
|
||||
Compiling routine: DO-WALK
|
||||
Compiling routine: NOT-HERE-OBJECT-F
|
||||
Compiling routine: NOT-HERE-PRINT
|
||||
Compiling routine: STAIRS-F
|
||||
Compiling routine: SAILOR-F
|
||||
Compiling routine: GROUND-F
|
||||
Compiling routine: GRUE-F
|
||||
Compiling routine: ME-F
|
||||
Compiling routine: PATH-OBJECT-F
|
||||
Compiling routine: MIRROR-ROOM-F
|
||||
Compiling routine: MIRROR-F
|
||||
Compiling routine: CHIMNEY-F
|
||||
Compiling routine: LIGHT-INT
|
||||
Compiling routine: GLOBAL-IN?
|
||||
Compiling routine: FIND-IN
|
||||
Compiling routine: ACCESSIBLE?
|
||||
Compiling routine: META-LOC
|
||||
Compiling routine: HELD?
|
||||
Compiling routine: OTHER-SIDE
|
||||
Compiling routine: REMOVE-CAREFULLY
|
||||
Compiling routine: NOW-DARK?
|
||||
Compiling routine: STUPID-CONTAINER
|
||||
Compiling routine: PEEK-UNDER
|
||||
Compiling routine: FASTENED
|
||||
Compiling routine: OPEN-CLOSE
|
||||
Compiling routine: HACK-HACK
|
||||
Compiling routine: THIEF-F
|
||||
Compiling routine: I-THIEF
|
||||
Compiling routine: DROP-JUNK
|
||||
Compiling routine: STEAL-JUNK
|
||||
Compiling routine: ROB
|
||||
Compiling routine: LARGE-BAG-F
|
||||
Compiling routine: THIEF-VS-ADVENTURER
|
||||
Compiling routine: THIEF-ROBBED-AND-LEFT
|
||||
Compiling routine: DEPOSIT-BOOTY
|
||||
Compiling routine: ROB-MAZE
|
||||
Compiling routine: HERO-BLOW
|
||||
Compiling routine: KILL-VILLAIN
|
||||
Compiling routine: I-FIGHT
|
||||
Compiling routine: I-CURE
|
||||
Compiling routine: WEST-OF-HOUSE-F
|
||||
Compiling routine: MAILBOX-F
|
||||
Compiling routine: LEAFLET-F
|
||||
Compiling routine: INSIDE-THE-BARROW-F
|
||||
Compiling routine: BEHIND-HOUSE-F
|
||||
Compiling routine: DESCRIBE-WINDOW
|
||||
Compiling routine: WHITE-HOUSE-F
|
||||
Compiling routine: BOARD-F
|
||||
Compiling routine: BOARDED-WINDOW-F
|
||||
Compiling routine: NAILS-PSEUDO
|
||||
Compiling routine: FOREST-F
|
||||
Compiling routine: FOREST-PATH-F
|
||||
Compiling routine: GRATING-EXIT
|
||||
Compiling routine: UP-A-TREE-F
|
||||
Compiling routine: NEST-F
|
||||
Compiling routine: EGG-F
|
||||
Compiling routine: LEAVES-F
|
||||
Compiling routine: GRATING-APPEARS
|
||||
Compiling routine: CANYON-VIEW-F
|
||||
Compiling routine: CLIFF-F
|
||||
Compiling routine: RAINBOW-F
|
||||
Compiling routine: KITCHEN-WINDOW-F
|
||||
Compiling routine: KITCHEN-F
|
||||
Compiling routine: SANDWICH-BAG-F
|
||||
Compiling routine: GARLIC-F
|
||||
Compiling routine: BOTTLE-F
|
||||
Compiling routine: WATER-F
|
||||
Compiling routine: ROPE-F
|
||||
Compiling routine: TRAP-DOOR-EXIT
|
||||
Compiling routine: LIVING-ROOM-F
|
||||
Compiling routine: COUNT-TREASURES
|
||||
Compiling routine: TROPHY-CASE-F
|
||||
Compiling routine: LAMP-F
|
||||
Compiling routine: I-LANTERN
|
||||
Compiling routine: WOODEN-DOOR-F
|
||||
Compiling routine: RUG-F
|
||||
Compiling routine: TRAP-DOOR-F
|
||||
Compiling routine: CELLAR-F
|
||||
Compiling routine: UP-CHIMNEY-F
|
||||
Compiling routine: PAINT-PSEUDO
|
||||
Compiling routine: PAINTING-F
|
||||
Compiling routine: TROLL-ROOM-F
|
||||
Compiling routine: TROLL-F
|
||||
Compiling routine: RESERVOIR-SOUTH-F
|
||||
Compiling routine: DAM-F
|
||||
Compiling routine: MATCH-F
|
||||
Compiling routine: I-MATCH
|
||||
Compiling routine: BOLT-F
|
||||
Compiling routine: BUBBLE-F
|
||||
Compiling routine: DAM-OBJECT-F
|
||||
Compiling routine: BUTTON-F
|
||||
Compiling routine: INFLATABLE-BOAT-F
|
||||
Compiling routine: INFLATED-BOAT-F
|
||||
Compiling routine: MUST-BE-ON-GROUND
|
||||
Compiling routine: WHITE-CLIFF-F
|
||||
Compiling routine: DOME-ROOM-F
|
||||
Compiling routine: DOME-PSEUDO
|
||||
Compiling routine: TEMPLE-F
|
||||
Compiling routine: TORCH-F
|
||||
Compiling routine: BELL-F
|
||||
Compiling routine: SCEPTRE-F
|
||||
Compiling routine: ALTAR-F
|
||||
Compiling routine: BLACK-BOOK-F
|
||||
Compiling routine: CANDLES-F
|
||||
Compiling routine: WINDY-CAVE-F
|
||||
Compiling routine: I-CANDLES
|
||||
Compiling routine: ENTRANCE-TO-HADES-F
|
||||
Compiling routine: GATE-PSEUDO
|
||||
Compiling routine: GHOSTS-F
|
||||
Compiling routine: I-XB
|
||||
Compiling routine: I-XC
|
||||
Compiling routine: BODIES-F
|
||||
Compiling routine: BUOY-F
|
||||
Compiling routine: SAND-F
|
||||
Compiling routine: ARAGAIN-FALLS-F
|
||||
Compiling routine: RIVER-F
|
||||
Compiling routine: I-RIVER
|
||||
Compiling routine: GO-NEXT
|
||||
Compiling routine: LKP
|
||||
Compiling routine: RESERVOIR-F
|
||||
Compiling routine: STREAM-PSEUDO
|
||||
Compiling routine: LAKE-PSEUDO
|
||||
Compiling routine: TRUNK-F
|
||||
Compiling routine: RESERVOIR-NORTH-F
|
||||
Compiling routine: SLIDE-F
|
||||
Compiling routine: BAT-ROOM-F
|
||||
Compiling routine: BAT-D
|
||||
Compiling routine: BAT-F
|
||||
Compiling routine: FLY-ME
|
||||
Compiling routine: FWEEP
|
||||
Compiling routine: BASKET-F
|
||||
** Warning: Possible bad 1st arg to PERFORM: <COND (,BASKET-RAISED ,V?LOWER) (
|
||||
T ,V?RAISE)>!
|
||||
Compiling routine: CHAIN-PSEUDO
|
||||
Compiling routine: GAS-ROOM-F
|
||||
Compiling routine: GAS-PSEUDO
|
||||
Compiling routine: LADDER-PSEUDO
|
||||
Compiling routine: NO-OBJECT-ROOM-F
|
||||
Compiling routine: MACHINE-ROOM-F
|
||||
Compiling routine: MACHINE-F
|
||||
Compiling routine: MACHINE-SWITCH-F
|
||||
Compiling routine: SLAG-F
|
||||
Compiling routine: BAG-OF-COINS-F
|
||||
Compiling routine: RUSTY-KNIFE-F
|
||||
Compiling routine: SKELETON-F
|
||||
Compiling routine: GRATING-ROOM-F
|
||||
Compiling routine: GRATE-F
|
||||
Compiling routine: CYCLOPS-ROOM-F
|
||||
Compiling routine: CYCLOPS-F
|
||||
Compiling routine: D-CYCLOPS
|
||||
Compiling routine: I-CYCLOPS
|
||||
Compiling routine: THIEFS-LAIR-F
|
||||
Compiling routine: CHALICE-F
|
||||
|
||||
Warnings: 1
|
||||
** Note: OBJECT has no properties: LOCAL-GLOBALS
|
||||
** Note: OBJECT has no properties: GLOBAL-OBJECTS
|
||||
Vocabulary: 536
|
||||
|
||||
Prepositions: 18
|
||||
|
||||
ABOUT AROUND AWAY DOWN FROM OFF OUT TO UP
|
||||
ACROSS AT BEHIND FOR IN ON OVER UNDER WITH
|
||||
|
||||
Real globals: 130
|
||||
|
||||
ABOVE-GROUND-ROOMS LOOK-AROUND P-OVTBL
|
||||
AGAIN-DIR LOW-TIDE P-PRSI
|
||||
AGAIN-LEXV LUCKY P-PRSO
|
||||
ALREADY MAGIC-FLAG P-SLOCBITS
|
||||
ALTAR-SCORE MATCH-COUNT P-SYNTAX
|
||||
BASKET-RAISED MENTAL-COLLAPSE P-TABLE
|
||||
BAT-DROPS MIRROR-MUNG P-VTBL
|
||||
BDIGS NOTHING-HAPPENS P-WALK-DIR
|
||||
BEACH-DIG NOTHING-TO-FILL-WITH P-WON
|
||||
BEG-PARDON NOUN-MISSING P-XADJ
|
||||
C-DEMONS OOPS-INBUF P-XADJN
|
||||
C-INTS OOPS-TABLE P-XNAM
|
||||
C-TABLE P-AADJ PERFORM-CEREMONY
|
||||
CANDLE-TABLE P-ACLAUSE PERIOD-CR
|
||||
CANDLES-ARE P-ACT PRSA
|
||||
CANT-GO P-ADJ PRSI
|
||||
CLOCK-WAIT P-ADJN PRSO
|
||||
COFFIN-CURE P-ADVERB QUOTE-FLAG
|
||||
CURE-COUNT P-ANAM RAINBOW-FLAG
|
||||
CYCLOMAD P-AND REFERRING
|
||||
CYCLOPS-FLAG P-BUTS RESERVE-LEXV
|
||||
CYCLOPS-IS P-CCTBL RESERVE-PTR
|
||||
CYCLOWRATH P-CONT RIVER-LAUNCH
|
||||
DEAD P-DIR RIVER-NEXT
|
||||
DEATHS P-END-ON-PREP RIVER-SPEEDS
|
||||
DESC-OBJECT P-GETFLAGS RUG-MOVED
|
||||
DISK-BASED P-GWIMBIT THERES-NOTHING
|
||||
DOME-FLAG P-INBUF THIEF-HERE
|
||||
DRAFTY-ROOM-SCORE P-IT-OBJECT THIEF-LEFT-DISGUSTED
|
||||
EMPTY-HANDED P-ITBL THIEF-MELEE
|
||||
FAILED P-LEN TOO-DARK
|
||||
FORMERLY-A-LAKE P-LEXV TROLL-FLAG
|
||||
GATE-FLAG P-MATCHLEN TROLL-MELEE
|
||||
GOOD-TRICK P-MERGE VERBOSITY
|
||||
GRATE-REVEALED P-MERGED WATER-EVAPORATES
|
||||
GRUNLOCK P-MULT WINNER
|
||||
GUE-NAME P-NAM WON-FLAG
|
||||
HADES-FLAG P-NCN XB
|
||||
HO-HUM P-NOT-HERE XC
|
||||
HS P-NUMBER YNH
|
||||
INDENTS P-OCLAUSE YOU-CANT
|
||||
INTEGRAL-PART P-OFLAG YUKS
|
||||
LAMP-TABLE P-ONEOBJ
|
||||
LIT P-OTBL
|
||||
|
||||
Objects: 179
|
||||
|
||||
ADVENTURER DRAFTY-ROOM MACHINE-ROOM RUSTY-KNIFE
|
||||
ALTAR EGG MACHINE-SWITCH SAILOR
|
||||
ALTAR-OBJECT EGYPTIAN-ROOM MAILBOX SAND
|
||||
ARAGAIN-FALLS EMERALD MAINTENANCE-ROOM SANDWICH-BAG
|
||||
ATTIC END-OF-RAINBOW MAP SANDY-BEACH
|
||||
AXE ENTRANCE-TO-HADES MATCH SANDY-CAVE
|
||||
BAG-OF-COINS FOREST MAZE-1 SCARAB
|
||||
BASKET FOREST-EDGE MAZE-10 SCEPTRE
|
||||
BAT FOREST-NORTH MAZE-2 SCREWDRIVER
|
||||
BAT-ROOM FOREST-PATH MAZE-3 SHAFT-ROOM
|
||||
BEHIND-HOUSE FOREST-SOUTH MAZE-4 SHOVEL
|
||||
BELL FRONT-DOOR MAZE-5 SKELETON
|
||||
BLACK-BOOK GARLIC MAZE-6 SKULL
|
||||
BOARD GAS-ROOM MAZE-7 SLAG
|
||||
BOARDED-WINDOW GHOSTS MAZE-8 SLIDE
|
||||
BOAT-LABEL GLOBAL-OBJECTS MAZE-9 SLIDE-ROOM
|
||||
BODIES GLOBAL-WATER ME SOUTH-OF-HOUSE
|
||||
BOLT GRATE MINE-ENTRANCE STAIRS
|
||||
BOTTLE GRATING-ROOM MIRROR STILETTO
|
||||
BRACELET GROUND MIRROR-ROOM-NORTH STUDIO
|
||||
BROWN-BUTTON GRUE MIRROR-ROOM-SOUTH SWORD
|
||||
BUBBLE GUIDE NEST TEMPLE
|
||||
BUOY HADES NORTH-OF-HOUSE THIEF
|
||||
BURNED-OUT-LANTERN HANDS NOT-HERE-OBJECT THIEFS-LAIR
|
||||
CANDLES INFLATABLE-BOAT PAINTING TORCH
|
||||
CANYON-BOTTOM INFLATED-BOAT PATH-OBJECT TRAP-DOOR
|
||||
CANYON-VIEW INSIDE-THE-BARROW PEDESTAL TREE
|
||||
CELLAR INTNUM POT-OF-GOLD TROLL
|
||||
CHALICE IT PRAYER TROLL-ROOM
|
||||
CHIMNEY JADE PSEUDO-OBJECT TROPHY-CASE
|
||||
CLIMBABLE-CLIFF KEYS PUMP TRUNK
|
||||
COAL KITCHEN RAILING TWISTING-PASSAGE
|
||||
COAL-MINE-1 KITCHEN-TABLE RAINBOW UP-A-TREE
|
||||
COAL-MINE-2 KITCHEN-WINDOW RED-BUTTON WALL
|
||||
COAL-MINE-3 KNIFE RESERVOIR WATER
|
||||
COFFIN LADDER-ROOM RESERVOIR-NORTH WEST-OF-HOUSE
|
||||
CONTROL-PANEL LAMP RESERVOIR-SOUTH WHITE-CLIFF
|
||||
CYCLOPS LARGE-BAG RIVER WHITE-CLIFFS-BEACH
|
||||
|
||||
CYCLOPS-ROOM LEAFLET RIVER-1 WHITE-HOUSE
|
||||
DAM LEAVES RIVER-2 WINDING-PASSAGE
|
||||
DAM-BASE LIVING-ROOM RIVER-3 WINDY-CAVE
|
||||
DAM-OBJECT LOCAL-GLOBALS ROOMS WOODEN-DOOR
|
||||
DIAMOND LUNCH ROPE WRENCH
|
||||
DOME-ROOM LUNGS ROUND-ROOM YELLOW-BUTTON
|
||||
DRAFTY-CAVE MACHINE RUG
|
||||
|
||||
Properties: 26
|
||||
|
||||
P?ACTION P?EAST P?LDESC P?PSEUDO P?SW P?WEST
|
||||
P?ADJECTIVE P?FDESC P?NE P?SE P?SYNONYM
|
||||
P?CAPACITY P?GLOBAL P?NORTH P?SIZE P?TEXT
|
||||
P?DESCFCN P?IN P?NW P?SOUTH P?UP
|
||||
P?DOWN P?LAND P?OUT P?STRENGTH P?VALUE
|
||||
|
||||
Flags: 30
|
||||
|
||||
ACTORBIT DRINKBIT MAZEBIT READBIT SURFACEBIT TREASUREBIT
|
||||
BURNBIT FLAMEBIT NDESCBIT RLANDBIT TAKEBIT TRYTAKEBIT
|
||||
CLIMBBIT FOODBIT NONLANDBIT RMUNGBIT TOOLBIT TURNBIT
|
||||
CONTBIT INVISIBLE ONBIT SACREDBIT TOUCHBIT VEHBIT
|
||||
DOORBIT LIGHTBIT OPENBIT SEARCHBIT TRANSBIT WEAPONBIT
|
|
@ -0,0 +1 @@
|
|||
1
|
|
@ -0,0 +1,35 @@
|
|||
"ZORK1 for
|
||||
Mini-Zork '87
|
||||
(c) Copyright 1987 Infocom, Inc. All Rights Reserved"
|
||||
|
||||
<VERSION ZIP>
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
||||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<PRINC "Mini-Zork '87
|
||||
">
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<ID 0>)>
|
||||
|
||||
<SETG COMPACT-SYNTAXES? T>
|
||||
|
||||
<FREQUENT-WORDS?>
|
||||
|
||||
<INSERT-FILE "MISC" T>
|
||||
<INSERT-FILE "PARSER" T>
|
||||
<INSERT-FILE "SYNTAX" T>
|
||||
<INSERT-FILE "VERBS" T>
|
||||
<INSERT-FILE "GLOBALS" T>
|
||||
<INSERT-FILE "THIEF" T>
|
||||
<INSERT-FILE "ABOVE-GROUND" T>
|
||||
<INSERT-FILE "SOUTH-OF-RES" T>
|
||||
<INSERT-FILE "NORTH-OF-RES" T>
|
||||
<INSERT-FILE "MAZE" T>
|
||||
|
||||
<PROPDEF SIZE 5>
|
||||
<PROPDEF CAPACITY 0>
|
||||
<PROPDEF VALUE 0>
|
|
@ -0,0 +1,200 @@
|
|||
.FSTR FSTR?1,"the " ;736 369
|
||||
.FSTR FSTR?2,"The " ;624 209
|
||||
.FSTR FSTR?3,"You " ;294 99
|
||||
.FSTR FSTR?4,", " ;240 241
|
||||
.FSTR FSTR?5,"your " ;210 71
|
||||
.FSTR FSTR?6,"is " ;208 209
|
||||
.FSTR FSTR?7,"and " ;192 97
|
||||
.FSTR FSTR?8,"There " ;165 34
|
||||
.FSTR FSTR?9,"you " ;156 79
|
||||
.FSTR FSTR?10,"of " ;150 151
|
||||
.FSTR FSTR?11,". " ;150 151
|
||||
.FSTR FSTR?12,"with " ;150 51
|
||||
.FSTR FSTR?13,"to " ;135 136
|
||||
.FSTR FSTR?14,"are " ;120 61
|
||||
.FSTR FSTR?15,"large " ;108 28
|
||||
.FSTR FSTR?16,"This " ;108 28
|
||||
.FSTR FSTR?17,"cyclops " ;90 16
|
||||
.FSTR FSTR?18,"that " ;87 30
|
||||
.FSTR FSTR?19,"from " ;87 30
|
||||
.FSTR FSTR?20,"have " ;81 28
|
||||
.FSTR FSTR?21,"through " ;78 14
|
||||
.FSTR FSTR?22,"here" ;76 39
|
||||
.FSTR FSTR?23,"in " ;73 74
|
||||
.FSTR FSTR?24,"It's " ;70 15
|
||||
.FSTR FSTR?25,"which " ;68 18
|
||||
.FSTR FSTR?26,"small " ;60 16
|
||||
.FSTR FSTR?27,"room " ;54 19
|
||||
.FSTR FSTR?28,"closed" ;52 14
|
||||
.FSTR FSTR?29,"A " ;50 51
|
||||
.FSTR FSTR?30,"can't " ;50 11
|
||||
.FSTR FSTR?31,"You're " ;49 8
|
||||
.FSTR FSTR?32,"into " ;48 17
|
||||
.FSTR FSTR?33,"Room" ;48 17
|
||||
.FSTR FSTR?34,"Your " ;48 13
|
||||
.FSTR FSTR?35,"grating " ;48 9
|
||||
.FSTR FSTR?36,"already " ;48 9
|
||||
.FSTR FSTR?37,"Frigid " ;48 9
|
||||
.FSTR FSTR?38,"isn't " ;45 10
|
||||
.FSTR FSTR?39,"It " ;44 23
|
||||
.FSTR FSTR?40,"thief " ;44 12
|
||||
.FSTR FSTR?41,"be " ;43 44
|
||||
.FSTR FSTR?42,"that" ;42 22
|
||||
.FSTR FSTR?43,"for " ;40 21
|
||||
.FSTR FSTR?44,"water " ;40 11
|
||||
.FSTR FSTR?45,"leads " ;40 11
|
||||
.FSTR FSTR?46,"won't " ;40 9
|
||||
.FSTR FSTR?47,"narrow " ;40 9
|
||||
.FSTR FSTR?48,"cannot " ;40 9
|
||||
.FSTR FSTR?49,"but " ;38 20
|
||||
.FSTR FSTR?50,"not " ;36 19
|
||||
.FSTR FSTR?51,"this " ;36 13
|
||||
.FSTR FSTR?52,"south " ;36 10
|
||||
.FSTR FSTR?53,"seems " ;36 10
|
||||
.FSTR FSTR?54,"ground" ;36 10
|
||||
.FSTR FSTR?55,"about " ;36 10
|
||||
.FSTR FSTR?56,"passage " ;36 7
|
||||
.FSTR FSTR?57,"appears " ;36 7
|
||||
.FSTR FSTR?58,"don't " ;35 8
|
||||
.FSTR FSTR?59,"southwest" ;35 6
|
||||
.FSTR FSTR?60,"on " ;33 34
|
||||
.FSTR FSTR?61,"west " ;33 12
|
||||
.FSTR FSTR?62,"north " ;32 9
|
||||
.FSTR FSTR?63,"There's " ;32 5
|
||||
.FSTR FSTR?64,"his " ;30 16
|
||||
.FSTR FSTR?65,"feet " ;30 11
|
||||
.FSTR FSTR?66,"east " ;30 11
|
||||
.FSTR FSTR?67,"door " ;30 11
|
||||
.FSTR FSTR?68,"cyclops" ;30 7
|
||||
.FSTR FSTR?69,"can " ;28 15
|
||||
.FSTR FSTR?70,"white " ;28 8
|
||||
.FSTR FSTR?71,"That " ;28 8
|
||||
.FSTR FSTR?72,"probably " ;28 5
|
||||
.FSTR FSTR?73,"Maze" ;27 10
|
||||
.FSTR FSTR?74,"an " ;26 27
|
||||
.FSTR FSTR?75,"too " ;26 14
|
||||
.FSTR FSTR?76,"has " ;26 14
|
||||
.FSTR FSTR?77,"wooden " ;25 6
|
||||
.FSTR FSTR?78,"In " ;24 13
|
||||
.FSTR FSTR?79,"south" ;24 9
|
||||
.FSTR FSTR?80,"north" ;24 9
|
||||
.FSTR FSTR?81,"How " ;24 9
|
||||
.FSTR FSTR?82,"would " ;24 7
|
||||
.FSTR FSTR?83,"With " ;24 7
|
||||
.FSTR FSTR?84,"sentence" ;24 5
|
||||
.FSTR FSTR?85,"rainbow " ;24 5
|
||||
.FSTR FSTR?86,"lurking " ;24 5
|
||||
.FSTR FSTR?87,"looking " ;24 5
|
||||
.FSTR FSTR?88,"leading " ;24 5
|
||||
.FSTR FSTR?89,"darkness" ;24 5
|
||||
.FSTR FSTR?90,"candles " ;24 5
|
||||
.FSTR FSTR?91,"against " ;24 5
|
||||
.FSTR FSTR?92,"treasures " ;24 4
|
||||
.FSTR FSTR?93,"staircase " ;24 4
|
||||
.FSTR FSTR?94,"northeast " ;24 4
|
||||
.FSTR FSTR?95,"one " ;22 12
|
||||
.FSTR FSTR?96,"now " ;22 12
|
||||
|
||||
|
||||
;word frequency table of 96 most common words
|
||||
|
||||
WORDS:: .TABLE
|
||||
FSTR?1
|
||||
FSTR?2
|
||||
FSTR?3
|
||||
FSTR?4
|
||||
FSTR?5
|
||||
FSTR?6
|
||||
FSTR?7
|
||||
FSTR?8
|
||||
FSTR?9
|
||||
FSTR?10
|
||||
FSTR?11
|
||||
FSTR?12
|
||||
FSTR?13
|
||||
FSTR?14
|
||||
FSTR?15
|
||||
FSTR?16
|
||||
FSTR?17
|
||||
FSTR?18
|
||||
FSTR?19
|
||||
FSTR?20
|
||||
FSTR?21
|
||||
FSTR?22
|
||||
FSTR?23
|
||||
FSTR?24
|
||||
FSTR?25
|
||||
FSTR?26
|
||||
FSTR?27
|
||||
FSTR?28
|
||||
FSTR?29
|
||||
FSTR?30
|
||||
FSTR?31
|
||||
FSTR?32
|
||||
FSTR?33
|
||||
FSTR?34
|
||||
FSTR?35
|
||||
FSTR?36
|
||||
FSTR?37
|
||||
FSTR?38
|
||||
FSTR?39
|
||||
FSTR?40
|
||||
FSTR?41
|
||||
FSTR?42
|
||||
FSTR?43
|
||||
FSTR?44
|
||||
FSTR?45
|
||||
FSTR?46
|
||||
FSTR?47
|
||||
FSTR?48
|
||||
FSTR?49
|
||||
FSTR?50
|
||||
FSTR?51
|
||||
FSTR?52
|
||||
FSTR?53
|
||||
FSTR?54
|
||||
FSTR?55
|
||||
FSTR?56
|
||||
FSTR?57
|
||||
FSTR?58
|
||||
FSTR?59
|
||||
FSTR?60
|
||||
FSTR?61
|
||||
FSTR?62
|
||||
FSTR?63
|
||||
FSTR?64
|
||||
FSTR?65
|
||||
FSTR?66
|
||||
FSTR?67
|
||||
FSTR?68
|
||||
FSTR?69
|
||||
FSTR?70
|
||||
FSTR?71
|
||||
FSTR?72
|
||||
FSTR?73
|
||||
FSTR?74
|
||||
FSTR?75
|
||||
FSTR?76
|
||||
FSTR?77
|
||||
FSTR?78
|
||||
FSTR?79
|
||||
FSTR?80
|
||||
FSTR?81
|
||||
FSTR?82
|
||||
FSTR?83
|
||||
FSTR?84
|
||||
FSTR?85
|
||||
FSTR?86
|
||||
FSTR?87
|
||||
FSTR?88
|
||||
FSTR?89
|
||||
FSTR?90
|
||||
FSTR?91
|
||||
FSTR?92
|
||||
FSTR?93
|
||||
FSTR?94
|
||||
FSTR?95
|
||||
FSTR?96
|
||||
.ENDT
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,510 @@
|
|||
"MISC for
|
||||
Mini-Zork '87
|
||||
(c) Copyright 1987 Infocom, Inc. All Rights Reserved"
|
||||
|
||||
<SETG C-ENABLED? 0>
|
||||
<SETG C-ENABLED 1>
|
||||
<SETG C-DISABLED 0>
|
||||
|
||||
<DEFMAC TELL ("ARGS" A)
|
||||
<FORM PROG ()
|
||||
!<MAPF ,LIST
|
||||
<FUNCTION ("AUX" E P O)
|
||||
<COND (<EMPTY? .A> <MAPSTOP>)
|
||||
(<SET E <NTH .A 1>>
|
||||
<SET A <REST .A>>)>
|
||||
<COND (<TYPE? .E ATOM>
|
||||
<COND (<OR <=? <SET P <SPNAME .E>>
|
||||
"CRLF">
|
||||
<=? .P "CR">>
|
||||
<MAPRET '<CRLF>>)
|
||||
(<EMPTY? .A>
|
||||
<ERROR INDICATOR-AT-END? .E>)
|
||||
(ELSE
|
||||
<SET O <NTH .A 1>>
|
||||
<SET A <REST .A>>
|
||||
<COND (<OR <=? <SET P <SPNAME .E>>
|
||||
"DESC">
|
||||
<=? .P "D">
|
||||
<=? .P "OBJ">
|
||||
<=? .P "O">>
|
||||
<MAPRET <FORM PRINTD .O>>)
|
||||
(<OR <=? .P "A">
|
||||
<=? .P "AN">>
|
||||
<MAPRET <FORM PRINTA .O>>)
|
||||
(<OR <=? .P "NUM">
|
||||
<=? .P "N">>
|
||||
<MAPRET <FORM PRINTN .O>>)
|
||||
(<OR <=? .P "CHAR">
|
||||
<=? .P "CHR">
|
||||
<=? .P "C">>
|
||||
<MAPRET <FORM PRINTC .O>>)
|
||||
(ELSE
|
||||
<MAPRET
|
||||
<FORM PRINT
|
||||
<FORM GETP .O .E>>>)>)>)
|
||||
(<TYPE? .E STRING ZSTRING>
|
||||
<MAPRET <FORM PRINTI .E>>)
|
||||
(<TYPE? .E FORM LVAL GVAL>
|
||||
<MAPRET <FORM PRINT .E>>)
|
||||
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
|
||||
|
||||
;<ROUTINE PRINTA (O)
|
||||
<TELL "a " D .O>>
|
||||
|
||||
<DEFMAC VERB? ("ARGS" ATMS)
|
||||
<MULTIFROB PRSA .ATMS>>
|
||||
|
||||
<DEFMAC PRSO? ("ARGS" ATMS)
|
||||
<MULTIFROB PRSO .ATMS>>
|
||||
|
||||
<DEFMAC PRSI? ("ARGS" ATMS)
|
||||
<MULTIFROB PRSI .ATMS>>
|
||||
|
||||
<DEFMAC ROOM? ("ARGS" ATMS)
|
||||
<MULTIFROB HERE .ATMS>>
|
||||
|
||||
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM)
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS>
|
||||
<RETURN!- <COND (<LENGTH? .OO 1> <ERROR .X>)
|
||||
(<LENGTH? .OO 2> <NTH .OO 2>)
|
||||
(ELSE <CHTYPE .OO FORM>)>>)>
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS> <RETURN!->)>
|
||||
<SET ATM <NTH .ATMS 1>>
|
||||
<SET L
|
||||
(<COND (<TYPE? .ATM ATOM>
|
||||
<FORM GVAL
|
||||
<COND (<==? .X PRSA>
|
||||
<PARSE
|
||||
<STRING "V?"
|
||||
<SPNAME .ATM>>>)
|
||||
(ELSE .ATM)>>)
|
||||
(ELSE .ATM)>
|
||||
!.L)>
|
||||
<SET ATMS <REST .ATMS>>
|
||||
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
|
||||
<SET O <REST <PUTREST .O (<FORM EQUAL? <FORM GVAL .X> !.L>)>>>
|
||||
<SET L ()>>>
|
||||
|
||||
<DEFMAC BSET ('OBJ "ARGS" BITS)
|
||||
<MULTIBITS FSET .OBJ .BITS>>
|
||||
|
||||
<DEFMAC BCLEAR ('OBJ "ARGS" BITS)
|
||||
<MULTIBITS FCLEAR .OBJ .BITS>>
|
||||
|
||||
<DEFMAC BSET? ('OBJ "ARGS" BITS)
|
||||
<MULTIBITS FSET? .OBJ .BITS>>
|
||||
|
||||
<DEFINE MULTIBITS (X OBJ ATMS "AUX" (O ()) ATM)
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS>
|
||||
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
|
||||
(<==? .X FSET?> <FORM OR !.O>)
|
||||
(ELSE <FORM PROG () !.O>)>>)>
|
||||
<SET ATM <NTH .ATMS 1>>
|
||||
<SET ATMS <REST .ATMS>>
|
||||
<SET O
|
||||
(<FORM .X
|
||||
.OBJ
|
||||
<COND (<TYPE? .ATM FORM> .ATM)
|
||||
(ELSE <FORM GVAL .ATM>)>>
|
||||
!.O)>>>
|
||||
|
||||
<DEFMAC RFATAL ()
|
||||
'<PROG () <PUSH 2> <RSTACK>>>
|
||||
|
||||
<DEFMAC PROB ('BASE? "OPTIONAL" 'LOSER?)
|
||||
<COND (<ASSIGNED? LOSER?> <FORM ZPROB .BASE?>)
|
||||
(ELSE <FORM G? .BASE? '<RANDOM 100>>)>>
|
||||
|
||||
<ROUTINE ZPROB
|
||||
(BASE)
|
||||
<COND (,LUCKY <G? .BASE <RANDOM 100>>)
|
||||
(ELSE <G? .BASE <RANDOM 300>>)>>
|
||||
|
||||
<ROUTINE PICK-ONE (FROB
|
||||
"AUX" (L <GET .FROB 0>) (CNT <GET .FROB 1>) RND MSG RFROB)
|
||||
<SET L <- .L 1>>
|
||||
<SET FROB <REST .FROB 2>>
|
||||
<SET RFROB <REST .FROB <* .CNT 2>>>
|
||||
<SET RND <RANDOM <- .L .CNT>>>
|
||||
<SET MSG <GET .RFROB .RND>>
|
||||
<PUT .RFROB .RND <GET .RFROB 1>>
|
||||
<PUT .RFROB 1 .MSG>
|
||||
<SET CNT <+ .CNT 1>>
|
||||
<COND (<==? .CNT .L> <SET CNT 0>)>
|
||||
<PUT .FROB 0 .CNT>
|
||||
.MSG>
|
||||
|
||||
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
|
||||
|
||||
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
|
||||
|
||||
<DEFMAC FLAMING? ('OBJ)
|
||||
<FORM AND <FORM FSET? .OBJ ',FLAMEBIT>
|
||||
<FORM FSET? .OBJ ',ONBIT>>>
|
||||
|
||||
<DEFMAC OPENABLE? ('OBJ)
|
||||
<FORM OR <FORM FSET? .OBJ ',DOORBIT>
|
||||
<FORM FSET? .OBJ ',CONTBIT>>>
|
||||
|
||||
<DEFMAC ABS ('NUM)
|
||||
<FORM COND (<FORM L? .NUM 0> <FORM - 0 .NUM>)
|
||||
(T .NUM)>>
|
||||
\
|
||||
; "taa 11/7/87 Macro to return number of objects needed by syntax
|
||||
in compact format"
|
||||
<DEFMAC P-SONUMS ('SYN)
|
||||
<FORM / <FORM GETB .SYN ',P-SPREP1> 64>>
|
||||
|
||||
\
|
||||
;"former MAIN stuff"
|
||||
|
||||
<CONSTANT SERIAL 0>
|
||||
|
||||
<GLOBAL P-WON <>>
|
||||
|
||||
<CONSTANT M-FATAL 2>
|
||||
<CONSTANT M-HANDLED 1>
|
||||
<CONSTANT M-NOT-HANDLED <>>
|
||||
<CONSTANT M-OBJECT <>>
|
||||
|
||||
<CONSTANT M-BEG 1>
|
||||
<CONSTANT M-ENTER 2>
|
||||
<CONSTANT M-LOOK 3>
|
||||
<CONSTANT M-OBJDESC 5>
|
||||
<CONSTANT M-END 6>
|
||||
|
||||
<ROUTINE GO ()
|
||||
<ENABLE <QUEUE I-THIEF -1>>
|
||||
<QUEUE I-CANDLES 40>
|
||||
<QUEUE I-LANTERN 150>
|
||||
<SETG HERE ,WEST-OF-HOUSE>
|
||||
<SETG P-IT-OBJECT ,MAILBOX>
|
||||
<SETG LIT T>
|
||||
<SETG WINNER ,ADVENTURER>
|
||||
<MOVE ,WINNER ,HERE>
|
||||
<V-VERSION>
|
||||
<CRLF>
|
||||
<V-LOOK>
|
||||
<MAIN-LOOP>
|
||||
<AGAIN>>
|
||||
|
||||
<ROUTINE MAIN-LOOP ("AUX" TRASH)
|
||||
<REPEAT ()
|
||||
<SET TRASH <MAIN-LOOP-1>>>>
|
||||
|
||||
<ROUTINE MAIN-LOOP-1 ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP O I)
|
||||
<SET CNT 0>
|
||||
<SET OBJ <>>
|
||||
<SET PTBL T>
|
||||
<COND (<SETG P-WON <PARSER>>
|
||||
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
|
||||
<SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>
|
||||
<COND (<AND ,P-IT-OBJECT <ACCESSIBLE? ,P-IT-OBJECT>>
|
||||
<SET TMP <>>
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
|
||||
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
|
||||
<SET TMP T>
|
||||
<RETURN>)>)>>
|
||||
<COND (<NOT .TMP>
|
||||
<SET CNT 0>
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
|
||||
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
|
||||
<RETURN>)>)>>)>
|
||||
<SET CNT 0>)>
|
||||
<SET NUM
|
||||
<COND (<0? .OCNT> .OCNT)
|
||||
(<G? .OCNT 1>
|
||||
<SET TBL ,P-PRSO>
|
||||
<COND (<0? .ICNT> <SET OBJ <>>)
|
||||
(T <SET OBJ <GET ,P-PRSI 1>>)>
|
||||
.OCNT)
|
||||
(<G? .ICNT 1>
|
||||
<SET PTBL <>>
|
||||
<SET TBL ,P-PRSI>
|
||||
<SET OBJ <GET ,P-PRSO 1>>
|
||||
.ICNT)
|
||||
(T 1)>>
|
||||
<COND (<AND <NOT .OBJ> <1? .ICNT>> <SET OBJ <GET ,P-PRSI 1>>)>
|
||||
<COND (<AND <==? ,PRSA ,V?WALK>
|
||||
<NOT <ZERO? ,P-WALK-DIR>>>
|
||||
<SET V <PERFORM ,PRSA ,PRSO>>)
|
||||
(<0? .NUM>
|
||||
<COND (<0? <P-SONUMS ,P-SYNTAX>
|
||||
;<BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
|
||||
<SET V <PERFORM ,PRSA>>
|
||||
<SETG PRSO <>>)
|
||||
(<NOT ,LIT>
|
||||
<TELL ,TOO-DARK>)
|
||||
(T
|
||||
<TELL ,REFERRING>
|
||||
<SET V <>>)>)
|
||||
(T
|
||||
<SETG P-NOT-HERE 0>
|
||||
<SETG P-MULT <>>
|
||||
<COND (<G? .NUM 1> <SETG P-MULT T>)>
|
||||
<SET TMP <>>
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .NUM>
|
||||
<COND (<G? ,P-NOT-HERE 0>
|
||||
<TELL "The ">
|
||||
<COND (<NOT <EQUAL? ,P-NOT-HERE .NUM>>
|
||||
<TELL "other ">)>
|
||||
<TELL "object">
|
||||
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
|
||||
<TELL "s">)>
|
||||
<TELL " that you mentioned ">
|
||||
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
|
||||
<TELL "are">)
|
||||
(T <TELL "is">)>
|
||||
<TELL "n't here." CR>)
|
||||
(<NOT .TMP>
|
||||
<TELL
|
||||
,THERES-NOTHING "here you can take." CR>)>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
|
||||
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
|
||||
<SET O <COND (.PTBL .OBJ1) (T .OBJ)>>
|
||||
<SET I <COND (.PTBL .OBJ) (T .OBJ1)>>
|
||||
|
||||
;"multiple exceptions"
|
||||
<COND (<OR <G? .NUM 1>
|
||||
<EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0> ,W?ALL>>
|
||||
<SET V <LOC ,WINNER>>
|
||||
<COND (<EQUAL? .O ,NOT-HERE-OBJECT>
|
||||
<SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>
|
||||
<AGAIN>)
|
||||
(<AND <VERB? TAKE>
|
||||
.I
|
||||
<EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0> ,W?ALL>
|
||||
<NOT <IN? .O .I>>>
|
||||
<AGAIN>)
|
||||
(<AND <EQUAL? ,P-GETFLAGS ,P-ALL>
|
||||
<VERB? TAKE>
|
||||
<OR <AND <NOT <EQUAL? <LOC .O> ,WINNER ,HERE .V>>
|
||||
<NOT <EQUAL? <LOC .O> .I>>
|
||||
<NOT <FSET? <LOC .O> ,SURFACEBIT>>>
|
||||
<NOT <OR <FSET? .O ,TAKEBIT>
|
||||
<FSET? .O ,TRYTAKEBIT>>>>>
|
||||
<AGAIN>)
|
||||
(ELSE
|
||||
<COND (<EQUAL? .OBJ1 ,IT>
|
||||
<PRINTD ,P-IT-OBJECT>)
|
||||
(T <PRINTD .OBJ1>)>
|
||||
<TELL ": ">)>)>
|
||||
;"end multiple exceptions"
|
||||
<SETG PRSO .O>
|
||||
<SETG PRSI .I>
|
||||
<SET TMP T>
|
||||
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
|
||||
<COND (<==? .V ,M-FATAL> <RETURN>)>)>>)>
|
||||
<COND (<NOT <==? .V ,M-FATAL>>
|
||||
;<COND (<==? <LOC ,WINNER> ,PRSO>
|
||||
<SETG PRSO <>>)>
|
||||
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
|
||||
;<COND (<VERB? ;AGAIN ;"WALK -- why was this here?"
|
||||
SAVE RESTORE ;SCORE ;VERSION ;WAIT> T)
|
||||
(T
|
||||
<SETG L-PRSA ,PRSA>
|
||||
<SETG L-PRSO ,PRSO>
|
||||
<SETG L-PRSI ,PRSI>)>
|
||||
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
|
||||
(T
|
||||
<SETG P-CONT <>>)>
|
||||
<COND (,P-WON
|
||||
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION
|
||||
QUIT RESTART SCORE SCRIPT UNSCRIPT RESTORE> T)
|
||||
(T <SET V <CLOCKER>>)>)>>
|
||||
|
||||
<GLOBAL P-MULT <>>
|
||||
|
||||
<GLOBAL P-NOT-HERE 0>
|
||||
\
|
||||
%<COND (<GASSIGNED? PREDGEN>
|
||||
|
||||
'<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
|
||||
;<COND (,DEBUG
|
||||
<TELL "[Perform: ">
|
||||
%<COND (<GASSIGNED? PREDGEN> '<TELL N .A>)
|
||||
(T '<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>)>
|
||||
<COND (<AND .O <NOT <==? .A ,V?WALK>>>
|
||||
<TELL "/" D .O>)>
|
||||
<COND (.I <TELL "/" D .I>)>
|
||||
<TELL "]" CR>)>
|
||||
<SET OA ,PRSA>
|
||||
<SET OO ,PRSO>
|
||||
<SET OI ,PRSI>
|
||||
<COND (<AND <EQUAL? ,IT .I .O>
|
||||
<NOT <ACCESSIBLE? ,P-IT-OBJECT>>>
|
||||
<TELL ,REFERRING>
|
||||
<RFATAL>)>
|
||||
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
|
||||
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)>
|
||||
<SETG PRSA .A>
|
||||
<SETG PRSO .O>
|
||||
<COND (<AND ,PRSO <NOT <EQUAL? ,PRSI ,IT>> <NOT <VERB? WALK>>>
|
||||
<SETG P-IT-OBJECT ,PRSO>)>
|
||||
<SETG PRSI .I>
|
||||
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
|
||||
<SET V <NOT-HERE-OBJECT-F>>> .V)
|
||||
(T
|
||||
<SET O ,PRSO>
|
||||
<SET I ,PRSI>
|
||||
<COND
|
||||
(<SET V <APPLY <GETP ,WINNER ,P?ACTION>>> .V)
|
||||
(<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-BEG>> .V)
|
||||
(<SET V <APPLY <GET ,PREACTIONS .A>>> .V)
|
||||
(<AND .I <SET V <APPLY <GETP .I ,P?ACTION>>>> .V)
|
||||
(<AND .O
|
||||
<NOT <==? .A ,V?WALK>>
|
||||
<SET V <APPLY <GETP .O ,P?ACTION>>>>
|
||||
.V)
|
||||
(<SET V <APPLY <GET ,ACTIONS .A>>> .V)>)>
|
||||
<SETG PRSA .OA>
|
||||
<SETG PRSO .OO>
|
||||
<SETG PRSI .OI>
|
||||
.V>)
|
||||
(T
|
||||
|
||||
'<PROG ()
|
||||
|
||||
<SETG DEBUG <>>
|
||||
|
||||
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
|
||||
<COND (,DEBUG
|
||||
<TELL "** PERFORM: PRSA = ">
|
||||
<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>
|
||||
<COND (<AND .O <NOT <==? .A ,V?WALK>>>
|
||||
<TELL " | PRSO = " D .O>)>
|
||||
<COND (.I <TELL " | PRSI = " D .I>)>)>
|
||||
<SET OA ,PRSA>
|
||||
<SET OO ,PRSO>
|
||||
<SET OI ,PRSI>
|
||||
<COND (<AND <EQUAL? ,IT .I .O>
|
||||
<OR <NOT ,P-IT-OBJECT>
|
||||
<NOT <ACCESSIBLE? ,P-IT-OBJECT>>>>
|
||||
<TELL ,REFERRING>
|
||||
<RFATAL>)>
|
||||
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
|
||||
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)>
|
||||
<SETG PRSA .A>
|
||||
<SETG PRSO .O>
|
||||
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
|
||||
<SETG P-IT-OBJECT ,PRSO>)>
|
||||
<SETG PRSI .I>
|
||||
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
|
||||
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>> .V)
|
||||
(T
|
||||
<SET O ,PRSO>
|
||||
<SET I ,PRSI>
|
||||
<COND (<SET V <DD-APPLY "Actor" ,WINNER
|
||||
<GETP ,WINNER ,P?ACTION>>> .V)
|
||||
(<SET V <D-APPLY "Room (M-BEG)"
|
||||
<GETP <LOC ,WINNER> ,P?ACTION>
|
||||
,M-BEG>> .V)
|
||||
(<SET V <D-APPLY "Preaction"
|
||||
<GET ,PREACTIONS .A>>> .V)
|
||||
(<AND .I <SET V <D-APPLY "PRSI"
|
||||
<GETP .I ,P?ACTION>>>> .V)
|
||||
(<AND .O
|
||||
<NOT <==? .A ,V?WALK>>
|
||||
<SET V <D-APPLY "PRSO"
|
||||
<GETP .O ,P?ACTION>>>>
|
||||
.V)
|
||||
(<SET V <D-APPLY <>
|
||||
<GET ,ACTIONS .A>>> .V)>)>
|
||||
<SETG PRSA .OA>
|
||||
<SETG PRSO .OO>
|
||||
<SETG PRSI .OI>
|
||||
.V>
|
||||
|
||||
<DEFINE D-APPLY (STR FCN "OPTIONAL" FOO "AUX" RES)
|
||||
<COND (<NOT .FCN> <>)
|
||||
(T
|
||||
<COND (,DEBUG
|
||||
<COND (<NOT .STR>
|
||||
<TELL CR " Default ->" CR>)
|
||||
(T <TELL CR " " .STR " -> ">)>)>
|
||||
<SET RES
|
||||
<COND (<ASSIGNED? FOO>
|
||||
<APPLY .FCN .FOO>)
|
||||
(T <APPLY .FCN>)>>
|
||||
<COND (<AND ,DEBUG .STR>
|
||||
<COND (<==? .RES 2>
|
||||
<TELL "Fatal" CR>)
|
||||
(<NOT .RES>
|
||||
<TELL "Not handled">)
|
||||
(T <TELL "Handled" CR>)>)>
|
||||
.RES)>>
|
||||
|
||||
<ROUTINE DD-APPLY (STR OBJ FCN "OPTIONAL" (FOO <>))
|
||||
<COND (,DEBUG <TELL "[" D .OBJ "=]">)>
|
||||
<D-APPLY .STR .FCN .FOO>>
|
||||
>)>
|
||||
\
|
||||
;"former CLOCKER stuff"
|
||||
|
||||
<CONSTANT C-TABLELEN 180>
|
||||
|
||||
<GLOBAL C-TABLE <ITABLE NONE 180>>
|
||||
|
||||
<GLOBAL C-DEMONS 180>
|
||||
|
||||
<GLOBAL C-INTS 180>
|
||||
|
||||
<CONSTANT C-INTLEN 6>
|
||||
|
||||
<CONSTANT C-ENABLED? 0>
|
||||
|
||||
<CONSTANT C-TICK 1>
|
||||
|
||||
<CONSTANT C-RTN 2>
|
||||
|
||||
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
|
||||
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
|
||||
.CINT>
|
||||
|
||||
<ROUTINE INT (RTN "OPTIONAL" (DEMON <>) E C INT)
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<SET C <REST ,C-TABLE ,C-INTS>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E>
|
||||
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
|
||||
<AND .DEMON <SETG C-DEMONS <- ,C-DEMONS ,C-INTLEN>>>
|
||||
<SET INT <REST ,C-TABLE ,C-INTS>>
|
||||
<PUT .INT ,C-RTN .RTN>
|
||||
<RETURN .INT>)
|
||||
(<EQUAL? <GET .C ,C-RTN> .RTN> <RETURN .C>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
||||
|
||||
<GLOBAL CLOCK-WAIT <>>
|
||||
|
||||
<ROUTINE CLOCKER ("AUX" C E TICK (FLG <>))
|
||||
<COND (,CLOCK-WAIT <SETG CLOCK-WAIT <>> <RFALSE>)>
|
||||
<SET C <REST ,C-TABLE <COND (,P-WON ,C-INTS) (T ,C-DEMONS)>>>
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E>
|
||||
<SETG MOVES <+ ,MOVES 1>>
|
||||
<RETURN .FLG>)
|
||||
(<NOT <0? <GET .C ,C-ENABLED?>>>
|
||||
<SET TICK <GET .C ,C-TICK>>
|
||||
<COND (<0? .TICK>)
|
||||
(T
|
||||
<PUT .C ,C-TICK <- .TICK 1>>
|
||||
<COND (<AND <NOT <G? .TICK 1>>
|
||||
<APPLY <GET .C ,C-RTN>>>
|
||||
<SET FLG T>)>)>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
|
@ -0,0 +1,512 @@
|
|||
"NORTH-OF-RESERVOIR for
|
||||
Mini-Zork '87
|
||||
(c) Copyright 1987 Infocom, Inc. All Rights Reserved"
|
||||
|
||||
<ROOM RESERVOIR
|
||||
(IN ROOMS)
|
||||
(DESC "Reservoir")
|
||||
(NORTH TO RESERVOIR-NORTH)
|
||||
(SOUTH TO RESERVOIR-SOUTH)
|
||||
(DOWN "The dam blocks your way.")
|
||||
(EAST "The dam blocks your way.")
|
||||
(FLAGS NONLANDBIT)
|
||||
(PSEUDO "STREAM" STREAM-PSEUDO)
|
||||
(GLOBAL GLOBAL-WATER DAM-OBJECT)
|
||||
(ACTION RESERVOIR-F)>
|
||||
|
||||
<ROUTINE RESERVOIR-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<COND (,LOW-TIDE
|
||||
<TELL
|
||||
"You are on what used to be a large lake, but which is now a large
|
||||
mud pile. There are \"shores\" to the north and south.">)
|
||||
(T
|
||||
<TELL
|
||||
"You are on the lake with beaches to the north and south and
|
||||
a dam to the east.">)>)>>
|
||||
|
||||
<ROUTINE STREAM-PSEUDO ()
|
||||
<COND (<VERB? SWIM THROUGH>
|
||||
<PERFORM ,V?BOARD ,WATER>
|
||||
<RTRUE>)
|
||||
(<VERB? CROSS>
|
||||
<V-WALK-AROUND>)>>
|
||||
|
||||
<ROUTINE LAKE-PSEUDO ()
|
||||
<COND (,LOW-TIDE
|
||||
<TELL "The lake's gone..." CR>)
|
||||
(<VERB? CROSS THROUGH>
|
||||
<PERFORM ,V?BOARD ,WATER>
|
||||
<RTRUE>)>>
|
||||
|
||||
<OBJECT TRUNK
|
||||
(IN RESERVOIR)
|
||||
(DESC "trunk of jewels")
|
||||
(FDESC "Half-buried in the mud is an old trunk, bulging with jewels.")
|
||||
(LDESC "There is an old trunk here, bulging with assorted jewels.")
|
||||
(SYNONYM TRUNK CHEST JEWELS TREASURE)
|
||||
(ADJECTIVE OLD)
|
||||
(FLAGS TREASUREBIT TAKEBIT INVISIBLE)
|
||||
(SIZE 35)
|
||||
(VALUE 15)
|
||||
(ACTION TRUNK-F)>
|
||||
|
||||
<ROUTINE TRUNK-F ()
|
||||
<STUPID-CONTAINER ,TRUNK "jewels">>
|
||||
|
||||
<ROOM RESERVOIR-NORTH
|
||||
(IN ROOMS)
|
||||
(DESC "Reservoir North")
|
||||
(UP TO DRAFTY-CAVE)
|
||||
(NORTH TO DRAFTY-CAVE)
|
||||
(SOUTH TO RESERVOIR IF LOW-TIDE ELSE "You would drown.")
|
||||
(FLAGS RLANDBIT)
|
||||
(GLOBAL GLOBAL-WATER STAIRS)
|
||||
(PSEUDO "LAKE" LAKE-PSEUDO)
|
||||
(ACTION RESERVOIR-NORTH-F)>
|
||||
|
||||
<ROUTINE RESERVOIR-NORTH-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL "You are in cavern to the north of ">
|
||||
<COND (,LOW-TIDE
|
||||
<TELL ,FORMERLY-A-LAKE>)
|
||||
(T
|
||||
<TELL "a large lake">)>
|
||||
<TELL ". A slimy stairway climbs to the north.">)>>
|
||||
|
||||
<OBJECT PUMP
|
||||
(IN RESERVOIR-NORTH)
|
||||
(SYNONYM PUMP AIR-PUMP)
|
||||
(ADJECTIVE HAND-HELD AIR)
|
||||
(DESC "hand-held air pump")
|
||||
(FLAGS TAKEBIT TOOLBIT)>
|
||||
|
||||
<ROOM DRAFTY-CAVE
|
||||
(IN ROOMS)
|
||||
(DESC "Drafty Cave")
|
||||
(LDESC
|
||||
"This is a tiny cave with entrances west and north, and a dark, forbidding
|
||||
staircase leading down.")
|
||||
(NORTH TO WINDING-PASSAGE)
|
||||
(WEST TO MIRROR-ROOM-NORTH)
|
||||
(DOWN TO RESERVOIR-NORTH)
|
||||
(SOUTH TO RESERVOIR-NORTH)
|
||||
(FLAGS RLANDBIT)
|
||||
(GLOBAL STAIRS)
|
||||
(ACTION WINDY-CAVE-F)>
|
||||
|
||||
<ROOM MIRROR-ROOM-NORTH
|
||||
(IN ROOMS)
|
||||
(DESC "Mirror Room")
|
||||
(NE TO WINDING-PASSAGE)
|
||||
(EAST TO DRAFTY-CAVE)
|
||||
(FLAGS RLANDBIT)
|
||||
(GLOBAL MIRROR)
|
||||
(ACTION MIRROR-ROOM-F)>
|
||||
|
||||
<ROOM WINDING-PASSAGE
|
||||
(IN ROOMS)
|
||||
(DESC "Winding Passage")
|
||||
(LDESC
|
||||
"This is a crooked corridor from the north, with forks to the southwest
|
||||
and south.")
|
||||
(SOUTH TO DRAFTY-CAVE)
|
||||
(SW TO MIRROR-ROOM-NORTH)
|
||||
(NORTH TO SLIDE-ROOM)
|
||||
(FLAGS RLANDBIT)>
|
||||
|
||||
<ROOM SLIDE-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Slide Room")
|
||||
(LDESC
|
||||
"This small chamber appears to have been part of a coal mine. To the west
|
||||
and south are passages, and a steep metal slide twists downward.")
|
||||
(WEST TO MINE-ENTRANCE)
|
||||
(DOWN TO CELLAR)
|
||||
(SOUTH TO WINDING-PASSAGE)
|
||||
(FLAGS RLANDBIT)
|
||||
(GLOBAL SLIDE)>
|
||||
|
||||
<OBJECT SLIDE
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "chute")
|
||||
(SYNONYM CHUTE RAMP SLIDE)
|
||||
(ADJECTIVE STEEP METAL TWISTING)
|
||||
(FLAGS CLIMBBIT)
|
||||
(ACTION SLIDE-F)>
|
||||
|
||||
<ROUTINE SLIDE-F ()
|
||||
<COND (<OR <VERB? THROUGH CLIMB-DOWN CLIMB>
|
||||
<AND <VERB? PUT>
|
||||
<EQUAL? ,PRSO ,ME>>>
|
||||
<DO-WALK <COND (<EQUAL? ,HERE ,CELLAR> ,P?WEST)
|
||||
(T ,P?DOWN)>>)
|
||||
(<AND <VERB? PUT>
|
||||
<PRSI? ,SLIDE>
|
||||
<FSET? ,PRSO ,TAKEBIT>>
|
||||
<TELL "The " D ,PRSO " disappears into the slide." CR>
|
||||
<COND (<EQUAL? ,PRSO ,WATER>
|
||||
<REMOVE-CAREFULLY ,WATER>)
|
||||
(T
|
||||
<MOVE ,PRSO ,CELLAR>)>)>>
|
||||
|
||||
<ROOM MINE-ENTRANCE
|
||||
(IN ROOMS)
|
||||
(DESC "Mine Entrance")
|
||||
(LDESC
|
||||
"You are at the entrance of an abandoned coal mine. Strange squeaky sounds
|
||||
come from the passage at the north end. You may also escape to the east.")
|
||||
(NORTH TO BAT-ROOM)
|
||||
(IN TO BAT-ROOM)
|
||||
(EAST TO SLIDE-ROOM)
|
||||
(FLAGS RLANDBIT)>
|
||||
|
||||
<ROOM BAT-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Bat Room")
|
||||
(SOUTH TO MINE-ENTRANCE)
|
||||
(EAST TO SHAFT-ROOM)
|
||||
(FLAGS RLANDBIT SACREDBIT)
|
||||
(ACTION BAT-ROOM-F)>
|
||||
|
||||
<ROUTINE BAT-ROOM-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL
|
||||
"You are in a small room with exits to the east and south.">)
|
||||
(<AND <EQUAL? .RARG ,M-END>
|
||||
<NOT ,DEAD>
|
||||
<NOT <EQUAL? <LOC ,GARLIC> ,WINNER ,HERE>>>
|
||||
<CRLF>
|
||||
<FLY-ME>)>>
|
||||
|
||||
<OBJECT BAT
|
||||
(IN BAT-ROOM)
|
||||
(DESC "bat")
|
||||
(SYNONYM BAT)
|
||||
(ADJECTIVE VAMPIRE)
|
||||
(FLAGS ACTORBIT TRYTAKEBIT)
|
||||
(DESCFCN BAT-D)
|
||||
(ACTION BAT-F)>
|
||||
|
||||
<ROUTINE BAT-D ("OPTIONAL" FOO)
|
||||
<COND (<EQUAL? <LOC ,GARLIC> ,WINNER ,HERE>
|
||||
<TELL
|
||||
"In the corner of the ceiling, a large vampire bat is holding his nose." CR>)
|
||||
(T
|
||||
<TELL "A large vampire bat swoops down at you!" CR>)>>
|
||||
|
||||
<ROUTINE BAT-F ()
|
||||
<COND (<VERB? TELL>
|
||||
<FWEEP 6>
|
||||
<SETG P-CONT <>>)
|
||||
(<VERB? TAKE ATTACK MUNG>
|
||||
<COND (<EQUAL? <LOC ,GARLIC> ,WINNER ,HERE>
|
||||
<TELL ,YOU-CANT "reach him; he's on the ceiling." CR>)
|
||||
(T
|
||||
<FLY-ME>)>)>>
|
||||
|
||||
<ROUTINE FLY-ME ()
|
||||
<FWEEP 4>
|
||||
<TELL "The bat grabs you and lifts you away..." CR CR>
|
||||
<GOTO <PICK-ONE ,BAT-DROPS>>>
|
||||
|
||||
<ROUTINE FWEEP (N)
|
||||
<REPEAT ()
|
||||
<COND (<L? <SET N <- .N 1>> 1>
|
||||
<RETURN>)
|
||||
(T
|
||||
<TELL " Fweep!" CR>)>>
|
||||
<CRLF>>
|
||||
|
||||
<GLOBAL BAT-DROPS
|
||||
<LTABLE 0
|
||||
COAL-MINE-1
|
||||
COAL-MINE-2
|
||||
COAL-MINE-3
|
||||
LADDER-ROOM
|
||||
SHAFT-ROOM
|
||||
MINE-ENTRANCE>>
|
||||
|
||||
<OBJECT JADE
|
||||
(IN BAT-ROOM)
|
||||
(DESC "jade figurine")
|
||||
(LDESC "There is an exquisite jade figurine here.")
|
||||
(SYNONYM FIGURINE TREASURE)
|
||||
(ADJECTIVE EXQUISITE JADE)
|
||||
(FLAGS TAKEBIT TREASUREBIT)
|
||||
(SIZE 10)
|
||||
(VALUE 13)>
|
||||
|
||||
<ROOM SHAFT-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Shaft Room")
|
||||
(LDESC
|
||||
"In the middle this room a small shaft descends into darkness below. Above the
|
||||
shaft is a metal framework to which a heavy iron chain is attached. There are
|
||||
exits to the west and north. A foul odor can be detected from the latter
|
||||
direction.")
|
||||
(DOWN "The shaft is too small for you.")
|
||||
(WEST TO BAT-ROOM)
|
||||
(NORTH TO GAS-ROOM)
|
||||
(FLAGS RLANDBIT)
|
||||
(PSEUDO "CHAIN" CHAIN-PSEUDO)>
|
||||
|
||||
<OBJECT BASKET
|
||||
(IN SHAFT-ROOM)
|
||||
(DESC "basket")
|
||||
(LDESC "From the chain is suspended a basket.")
|
||||
(SYNONYM BASKET)
|
||||
(FLAGS TRYTAKEBIT CONTBIT OPENBIT SEARCHBIT)
|
||||
(CAPACITY 50)
|
||||
(ACTION BASKET-F)>
|
||||
|
||||
<GLOBAL BASKET-RAISED T>
|
||||
|
||||
<ROUTINE BASKET-F ()
|
||||
<COND (<VERB? MOVE>
|
||||
<PERFORM <COND (,BASKET-RAISED ,V?LOWER)
|
||||
(T ,V?RAISE)> ,BASKET>
|
||||
<RTRUE>)
|
||||
(<VERB? RAISE>
|
||||
<COND (,BASKET-RAISED
|
||||
<TELL ,LOOK-AROUND>)
|
||||
(T
|
||||
<MOVE ,BASKET ,SHAFT-ROOM>
|
||||
<SETG BASKET-RAISED T>
|
||||
<TELL
|
||||
"The basket is raised to the top of the shaft." CR>
|
||||
<NOW-DARK?>)>)
|
||||
(<VERB? LOWER>
|
||||
<COND (<NOT ,BASKET-RAISED>
|
||||
<TELL ,LOOK-AROUND>)
|
||||
(T
|
||||
<MOVE ,BASKET ,DRAFTY-ROOM>
|
||||
<SETG BASKET-RAISED <>>
|
||||
<TELL
|
||||
"The basket is lowered to the bottom of the shaft." CR>
|
||||
<NOW-DARK?>)>)
|
||||
(<AND <VERB? TAKE>
|
||||
<EQUAL? ,PRSO ,BASKET>>
|
||||
<FASTENED ,BASKET "chain">)>>
|
||||
|
||||
<ROUTINE CHAIN-PSEUDO ()
|
||||
<COND (<VERB? TAKE>
|
||||
<TELL "The chain is secure." CR>)
|
||||
(<VERB? RAISE LOWER MOVE>
|
||||
<PERFORM ,PRSA ,BASKET>
|
||||
<RTRUE>)
|
||||
(<AND <VERB? EXAMINE>
|
||||
<IN? ,BASKET ,HERE>>
|
||||
<TELL <GETP ,BASKET ,P?LDESC> CR>)>>
|
||||
|
||||
<ROOM GAS-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Gas Room")
|
||||
(LDESC
|
||||
"This room smells strongly of coal gas. Narrow tunnels lead lead
|
||||
east and south.")
|
||||
(SOUTH TO SHAFT-ROOM)
|
||||
(EAST TO COAL-MINE-1)
|
||||
(FLAGS RLANDBIT SACREDBIT)
|
||||
(PSEUDO "GAS" GAS-PSEUDO "ODOR" GAS-PSEUDO)
|
||||
(ACTION GAS-ROOM-F)>
|
||||
|
||||
<ROUTINE GAS-ROOM-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-END>
|
||||
<COND (<OR <AND <HELD? ,CANDLES>
|
||||
<FSET? ,CANDLES ,ONBIT>>
|
||||
<AND <HELD? ,TORCH>
|
||||
<FSET? ,TORCH ,ONBIT>>
|
||||
<AND <HELD? ,MATCH>
|
||||
<FSET? ,MATCH ,ONBIT>>>
|
||||
<JIGS-UP
|
||||
"Oh dear. That smell was coal gas. I would have thought twice about
|
||||
carrying flaming objects in here.|
|
||||
|
|
||||
Booooooom!!!">)>)>>
|
||||
|
||||
<ROUTINE GAS-PSEUDO ()
|
||||
<COND (<VERB? BREATHE> ;"REALLY BLOW"
|
||||
<TELL "There is too much gas to blow away." CR>)
|
||||
(<VERB? SMELL>
|
||||
<TELL "It smells like coal gas in here." CR>)>>
|
||||
|
||||
<OBJECT BRACELET
|
||||
(IN GAS-ROOM)
|
||||
(DESC "sapphire-encrusted bracelet")
|
||||
(SYNONYM BRACELET JEWEL SAPPHIRE TREASURE)
|
||||
(ADJECTIVE SAPPHIRE)
|
||||
(FLAGS TAKEBIT TREASUREBIT)
|
||||
(SIZE 10)
|
||||
(VALUE 10)>
|
||||
|
||||
<ROOM COAL-MINE-1
|
||||
(IN ROOMS)
|
||||
(DESC "Coal Mine")
|
||||
(LDESC "This is a nondescript part of a coal mine.")
|
||||
(WEST TO GAS-ROOM)
|
||||
(NORTH TO COAL-MINE-2)
|
||||
(SOUTH TO COAL-MINE-1)
|
||||
(FLAGS RLANDBIT)>
|
||||
|
||||
<ROOM COAL-MINE-2
|
||||
(IN ROOMS)
|
||||
(DESC "Coal Mine")
|
||||
(LDESC "This is a nondescript part of a coal mine.")
|
||||
(NE TO COAL-MINE-2)
|
||||
(NW TO COAL-MINE-1)
|
||||
(SOUTH TO COAL-MINE-3)
|
||||
(UP TO COAL-MINE-2)
|
||||
(FLAGS RLANDBIT)>
|
||||
|
||||
<ROOM COAL-MINE-3
|
||||
(IN ROOMS)
|
||||
(DESC "Coal Mine")
|
||||
(LDESC "This is a nondescript part of a coal mine.")
|
||||
(EAST TO COAL-MINE-2)
|
||||
(WEST TO COAL-MINE-3)
|
||||
(DOWN TO LADDER-ROOM)
|
||||
(FLAGS RLANDBIT)>
|
||||
|
||||
<ROOM LADDER-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Ladder Room")
|
||||
(LDESC
|
||||
"At the east end of this narrow passage, a ladder leads upward. There's a
|
||||
strong draft from the west, where the passage narrows even further.")
|
||||
(UP TO COAL-MINE-3)
|
||||
(WEST TO DRAFTY-ROOM IF EMPTY-HANDED ELSE
|
||||
"You can't fit through with that load.")
|
||||
(FLAGS RLANDBIT SACREDBIT)
|
||||
(ACTION NO-OBJECT-ROOM-F)
|
||||
(PSEUDO "LADDER" LADDER-PSEUDO)>
|
||||
|
||||
<OBJECT COAL
|
||||
(IN LADDER-ROOM)
|
||||
(DESC "small pile of coal")
|
||||
(SYNONYM COAL PILE)
|
||||
(ADJECTIVE SMALL)
|
||||
(FLAGS TAKEBIT BURNBIT)
|
||||
(SIZE 20)>
|
||||
|
||||
<ROUTINE LADDER-PSEUDO ()
|
||||
<COND (<VERB? CLIMB>
|
||||
<DO-WALK ,P?UP>)>>
|
||||
|
||||
<GLOBAL EMPTY-HANDED <>>
|
||||
|
||||
<ROUTINE NO-OBJECT-ROOM-F (RARG "AUX" F)
|
||||
<COND (<EQUAL? .RARG ,M-BEG>
|
||||
<SET F <FIRST? ,WINNER>>
|
||||
<SETG EMPTY-HANDED T>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .F> <RETURN>)
|
||||
(<G? <WEIGHT .F> 4>
|
||||
<SETG EMPTY-HANDED <>>
|
||||
<RETURN>)>
|
||||
<SET F <NEXT? .F>>>
|
||||
<COND (<AND <EQUAL? ,HERE ,DRAFTY-ROOM>
|
||||
,LIT
|
||||
<NOT ,DRAFTY-ROOM-SCORE>>
|
||||
<SETG DRAFTY-ROOM-SCORE T>
|
||||
<SETG SCORE <+ ,SCORE 10>>)>
|
||||
<RFALSE>)>>
|
||||
|
||||
<GLOBAL DRAFTY-ROOM-SCORE <>>
|
||||
|
||||
<ROOM DRAFTY-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Drafty Room")
|
||||
(LDESC
|
||||
"This is a small room at the bottom of a long shaft. A heavy iron chain hangs
|
||||
down the shaft. To the south is a passageway and to the east a very narrow
|
||||
passage.")
|
||||
(SOUTH TO MACHINE-ROOM)
|
||||
(OUT TO LADDER-ROOM IF EMPTY-HANDED ELSE
|
||||
"You can't fit through with that load.")
|
||||
(EAST TO LADDER-ROOM IF EMPTY-HANDED ELSE
|
||||
"You can't fit through with that load.")
|
||||
(FLAGS RLANDBIT SACREDBIT)
|
||||
(PSEUDO "CHAIN" CHAIN-PSEUDO)
|
||||
(ACTION NO-OBJECT-ROOM-F)>
|
||||
|
||||
<ROOM MACHINE-ROOM
|
||||
(IN ROOMS)
|
||||
(DESC "Machine Room")
|
||||
(NORTH TO DRAFTY-ROOM)
|
||||
(OUT TO DRAFTY-ROOM)
|
||||
(FLAGS RLANDBIT)
|
||||
(ACTION MACHINE-ROOM-F)>
|
||||
|
||||
<ROUTINE MACHINE-ROOM-F (RARG)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<TELL
|
||||
"This is a chilly room whose sole exit is to the north. In one corner is a
|
||||
machine, reminiscent of a clothes dryer, with a switch labelled \"START\".
|
||||
The switch does not appear to be manipulable by any human hand (unless the
|
||||
fingers are about 1/16 by 1/4 inch). The machine has a large lid, which is ">
|
||||
<COND (<FSET? ,MACHINE ,OPENBIT>
|
||||
<TELL "open.">)
|
||||
(T
|
||||
<TELL "closed.">)>)>>
|
||||
|
||||
<OBJECT MACHINE
|
||||
(IN MACHINE-ROOM)
|
||||
(DESC "machine")
|
||||
(SYNONYM MACHINE DRYER LID)
|
||||
(FLAGS CONTBIT SEARCHBIT NDESCBIT TRYTAKEBIT)
|
||||
(CAPACITY 50)
|
||||
(ACTION MACHINE-F)>
|
||||
|
||||
<ROUTINE MACHINE-F ()
|
||||
<COND (<VERB? LAMP-ON>
|
||||
<COND (<NOT ,PRSI>
|
||||
<TELL ,YOU-CANT "do it with your bare hands." CR>)
|
||||
(T
|
||||
<PERFORM ,V?TURN ,MACHINE-SWITCH ,PRSI>
|
||||
<RTRUE>)>)>>
|
||||
|
||||
<OBJECT MACHINE-SWITCH
|
||||
(IN MACHINE-ROOM)
|
||||
(DESC "switch")
|
||||
(SYNONYM SWITCH)
|
||||
(FLAGS NDESCBIT TURNBIT)
|
||||
(ACTION MACHINE-SWITCH-F)>
|
||||
|
||||
<ROUTINE MACHINE-SWITCH-F ("AUX" SLAG?)
|
||||
<COND (<VERB? TURN>
|
||||
<COND (<EQUAL? ,PRSI ,SCREWDRIVER>
|
||||
<COND (<FSET? ,MACHINE ,OPENBIT>
|
||||
<TELL ,NOTHING-HAPPENS>)
|
||||
(T
|
||||
<SET SLAG? <FIRST? ,MACHINE>>
|
||||
<ROB ,MACHINE ,MACHINE-SWITCH <>>
|
||||
<COND (<IN? ,COAL ,MACHINE-SWITCH>
|
||||
<MOVE ,DIAMOND ,MACHINE>)
|
||||
(.SLAG?
|
||||
<MOVE ,SLAG ,MACHINE>)>
|
||||
<TELL
|
||||
"The machine produces a dazzling display of colored lights and
|
||||
bizarre noises. A moment later, the excitement abates." CR>)>)
|
||||
(T
|
||||
<TELL "It seems that a " D ,PRSI " won't do." CR>)>)>>
|
||||
|
||||
<OBJECT SLAG
|
||||
(DESC "small piece of vitreous slag")
|
||||
(SYNONYM PIECE SLAG)
|
||||
(ADJECTIVE SMALL VITREOUS)
|
||||
(FLAGS TAKEBIT TRYTAKEBIT)
|
||||
(SIZE 10)
|
||||
(ACTION SLAG-F)>
|
||||
|
||||
<ROUTINE SLAG-F ()
|
||||
<REMOVE ,SLAG>
|
||||
<TELL "The insubstantial slag crumbles at your touch." CR>>
|
||||
|
||||
<OBJECT DIAMOND
|
||||
(DESC "huge diamond")
|
||||
(LDESC "There is an enormous diamond (perfectly cut) here.")
|
||||
(SYNONYM DIAMOND TREASURE)
|
||||
(ADJECTIVE HUGE ENORMOUS)
|
||||
(FLAGS TAKEBIT TREASUREBIT)
|
||||
(VALUE 25)>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,432 @@
|
|||
"SYNTAX for
|
||||
Mini-Zork '87
|
||||
(c) Copyright 1987 Infocom, Inc. All Rights Reserved"
|
||||
|
||||
<BUZZ AGAIN G OOPS A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \"
|
||||
YES NO Y HERE>
|
||||
|
||||
<SYNONYM WITH USING THROUGH THRU>
|
||||
<SYNONYM IN INSIDE INTO>
|
||||
<SYNONYM ON ONTO>
|
||||
<SYNONYM UNDER UNDERNEATH BENEATH BELOW>
|
||||
|
||||
<SYNONYM NORTH N>
|
||||
<SYNONYM SOUTH S>
|
||||
<SYNONYM EAST E>
|
||||
<SYNONYM WEST W>
|
||||
<SYNONYM DOWN D>
|
||||
<SYNONYM UP U>
|
||||
<SYNONYM NW NORTHWEST>
|
||||
<SYNONYM NE NORTHE>
|
||||
<SYNONYM SW SOUTHWEST>
|
||||
<SYNONYM SE SOUTHE>
|
||||
^L
|
||||
"Game Commands"
|
||||
|
||||
<SYNTAX VERBOSE = V-VERBOSE>
|
||||
|
||||
<SYNTAX BRIEF = V-BRIEF>
|
||||
|
||||
<SYNTAX SUPER = V-SUPER-BRIEF>
|
||||
<SYNONYM SUPER SUPERBRIEF>
|
||||
|
||||
<SYNTAX DIAGNOSE = V-DIAGNOSE>
|
||||
|
||||
<SYNTAX INVENTORY = V-INVENTORY>
|
||||
<SYNONYM INVENTORY I>
|
||||
|
||||
<SYNTAX QUIT = V-QUIT>
|
||||
<SYNONYM QUIT Q>
|
||||
|
||||
<SYNTAX RESTART = V-RESTART>
|
||||
|
||||
<SYNTAX RESTORE = V-RESTORE>
|
||||
|
||||
<SYNTAX SAVE = V-SAVE>
|
||||
|
||||
<SYNTAX SCORE = V-SCORE>
|
||||
|
||||
<SYNTAX SCRIPT = V-SCRIPT>
|
||||
|
||||
<SYNTAX UNSCRIPT = V-UNSCRIPT>
|
||||
|
||||
<SYNTAX VERSION = V-VERSION>
|
||||
|
||||
<SYNTAX $VERIFY = V-VERIFY>
|
||||
|
||||
<SYNTAX \#RANDOM OBJECT = V-RANDOM>
|
||||
|
||||
<SYNTAX \#COMMAND = V-COMMAND-FILE>
|
||||
|
||||
<SYNTAX \#RECORD = V-RECORD>
|
||||
|
||||
<SYNTAX \#UNRECORD = V-UNRECORD>
|
||||
^L
|
||||
"Real Verbs"
|
||||
|
||||
<SYNTAX ACTIVATE OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-LAMP-ON>
|
||||
|
||||
<SYNTAX APPLY OBJECT TO OBJECT = V-PUT PRE-PUT>
|
||||
|
||||
<SYNTAX ATTACK OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-ATTACK>
|
||||
<SYNONYM ATTACK FIGHT HURT INJURE HIT>
|
||||
|
||||
<SYNTAX BLOW OUT OBJECT = V-LAMP-OFF>
|
||||
<SYNTAX BLOW UP OBJECT WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED) = V-INFLATE>
|
||||
<SYNTAX BLOW UP OBJECT = V-INFLATE>
|
||||
<SYNTAX BLOW IN OBJECT = V-BREATHE>
|
||||
|
||||
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
|
||||
|
||||
<SYNTAX BURN OBJECT (FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= V-BURN PRE-BURN>
|
||||
<SYNTAX BURN DOWN OBJECT (FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= V-BURN PRE-BURN>
|
||||
<SYNONYM BURN INCINERATE IGNITE>
|
||||
|
||||
<SYNTAX CLIMB UP OBJECT (FIND RMUNGBIT) = V-CLIMB>
|
||||
<SYNTAX CLIMB DOWN OBJECT (FIND RMUNGBIT) = V-CLIMB-DOWN>
|
||||
<SYNTAX CLIMB OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB>
|
||||
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
|
||||
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
|
||||
<SYNTAX CLIMB WITH OBJECT = V-THROUGH>
|
||||
<SYNONYM CLIMB SIT>
|
||||
|
||||
<SYNTAX CLOSE OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM) = V-CLOSE>
|
||||
|
||||
<SYNTAX COUNT OBJECT = V-COUNT>
|
||||
|
||||
<SYNTAX CROSS OBJECT = V-CROSS>
|
||||
<SYNONYM CROSS FORD>
|
||||
|
||||
<SYNTAX CUT OBJECT WITH OBJECT (FIND WEAPONBIT) (CARRIED HELD) = V-CUT>
|
||||
<SYNONYM CUT SLICE PIERCE>
|
||||
|
||||
<SYNTAX CURSE = V-CURSES>
|
||||
<SYNTAX CURSE OBJECT (FIND ACTORBIT) = V-CURSES>
|
||||
<SYNONYM CURSE SHIT FUCK DAMN>
|
||||
|
||||
<SYNTAX DEFLATE OBJECT = V-DEFLATE>
|
||||
|
||||
<SYNTAX DESTROY OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH OBJECT (HELD CARRIED TAKE) = V-MUNG PRE-MUNG>
|
||||
<SYNTAX DESTROY DOWN OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH OBJECT (HELD CARRIED TAKE) = V-MUNG PRE-MUNG>
|
||||
<SYNTAX DESTROY IN OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-OPEN>
|
||||
<SYNONYM DESTROY DAMAGE BREAK BLOCK SMASH>
|
||||
|
||||
<SYNTAX DIG IN OBJECT (ON-GROUND IN-ROOM) = V-DIG>
|
||||
<SYNTAX DIG IN OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
|
||||
<SYNTAX DIG OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE) = V-DIG>
|
||||
|
||||
<SYNTAX DRINK OBJECT (FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-DRINK>
|
||||
<SYNTAX DRINK FROM OBJECT (HELD CARRIED) = V-DRINK-FROM>
|
||||
<SYNONYM DRINK IMBIBE SWALLOW>
|
||||
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-DROP PRE-DROP>
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) DOWN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT-ON PRE-PUT>
|
||||
;<SYNONYM DROP RELEASE>
|
||||
|
||||
<SYNTAX EAT OBJECT (FIND FOODBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-EAT>
|
||||
<SYNONYM EAT CONSUME TASTE BITE>
|
||||
|
||||
<SYNTAX ENTER = V-ENTER>
|
||||
<SYNTAX ENTER OBJECT = V-THROUGH>
|
||||
|
||||
<SYNTAX EXIT = V-EXIT>
|
||||
<SYNTAX EXIT OBJECT (ON-GROUND IN-ROOM) = V-EXIT>
|
||||
<SYNTAX EXIT UP OBJECT (FIND RMUNGBIT) = V-EXIT>
|
||||
<SYNONYM EXIT DISEMBARK STAND>
|
||||
|
||||
<SYNTAX EXAMINE OBJECT (MANY) = V-EXAMINE>
|
||||
<SYNTAX EXAMINE IN OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY)
|
||||
= V-LOOK-INSIDE>
|
||||
<SYNTAX EXAMINE ON OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY)
|
||||
= V-LOOK-INSIDE>
|
||||
<SYNONYM EXAMINE DESCRIBE WHAT WHATS>
|
||||
|
||||
<SYNTAX EXORCISE OBJECT = V-EXORCISE>
|
||||
<SYNTAX EXORCISE OUT OBJECT (FIND ACTORBIT) = V-EXORCISE>
|
||||
<SYNTAX EXORCISE AWAY OBJECT (FIND ACTORBIT) = V-EXORCISE>
|
||||
<SYNONYM EXORCISE BANISH CAST DRIVE>
|
||||
|
||||
<SYNTAX EXTINGUISH OBJECT (FIND ONBIT)
|
||||
(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE) = V-LAMP-OFF>
|
||||
<SYNONYM EXTINGUISH DOUSE>
|
||||
|
||||
<SYNTAX FILL OBJECT (FIND CONTBIT) = V-FILL PRE-FILL>
|
||||
<SYNTAX FILL OBJECT (FIND CONTBIT) WITH OBJECT = V-FILL PRE-FILL>
|
||||
|
||||
<SYNTAX FIND OBJECT = V-FIND>
|
||||
<SYNONYM FIND WHERE SEEK SEE>
|
||||
|
||||
<SYNTAX FOLLOW = V-FOLLOW>
|
||||
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
|
||||
<SYNONYM FOLLOW PURSUE CHASE>
|
||||
|
||||
<SYNTAX GIVE OBJECT (MANY HELD HAVE) TO OBJECT (FIND ACTORBIT) (ON-GROUND)
|
||||
= V-GIVE PRE-GIVE>
|
||||
<SYNTAX GIVE OBJECT (FIND ACTORBIT) (ON-GROUND) OBJECT (MANY HELD HAVE)
|
||||
= V-SGIVE>
|
||||
<SYNONYM GIVE HAND DONATE OFFER FEED>
|
||||
|
||||
<SYNTAX HATCH OBJECT = V-HATCH>
|
||||
|
||||
<SYNTAX HELLO = V-HELLO>
|
||||
<SYNTAX HELLO OBJECT = V-HELLO>
|
||||
<SYNONYM HELLO HI>
|
||||
|
||||
<SYNTAX INFLAT OBJECT WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED) = V-INFLATE>
|
||||
|
||||
<SYNTAX JUMP = V-LEAP>
|
||||
<SYNTAX JUMP OVER OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP IN OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP FROM OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP OFF OBJECT = V-LEAP>
|
||||
<SYNONYM JUMP LEAP DIVE>
|
||||
|
||||
<SYNTAX KICK OBJECT = V-KICK>
|
||||
|
||||
<SYNTAX KILL OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-ATTACK>
|
||||
<SYNONYM KILL MURDER SLAY>
|
||||
|
||||
<SYNTAX STAB OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-STAB>
|
||||
<SYNTAX STAB OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-ATTACK>
|
||||
|
||||
<SYNTAX KISS OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-KISS>
|
||||
|
||||
<SYNTAX KNOCK AT OBJECT = V-KNOCK>
|
||||
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
|
||||
<SYNTAX KNOCK DOWN OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
|
||||
<SYNONYM KNOCK RAP>
|
||||
|
||||
<SYNTAX LAUNCH OBJECT (FIND VEHBIT) = V-LAUNCH>
|
||||
|
||||
<SYNTAX LEAVE = V-EXIT>
|
||||
<SYNTAX LEAVE OBJECT = V-DROP PRE-DROP>
|
||||
|
||||
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
= V-LAMP-ON>
|
||||
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND FLAMEBIT) (HELD CARRIED TAKE HAVE) = V-BURN PRE-BURN>
|
||||
|
||||
<SYNTAX LISTEN TO OBJECT = V-LISTEN>
|
||||
<SYNTAX LISTEN FOR OBJECT = V-LISTEN>
|
||||
|
||||
<SYNTAX LOCK OBJECT (ON-GROUND IN-ROOM) WITH
|
||||
OBJECT (FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE) = V-LOCK>
|
||||
|
||||
<SYNTAX LOOK = V-LOOK>
|
||||
<SYNTAX LOOK AROUND OBJECT (FIND RMUNGBIT) = V-LOOK>
|
||||
<SYNTAX LOOK UP OBJECT (FIND RMUNGBIT) = V-LOOK>
|
||||
<SYNTAX LOOK DOWN OBJECT (FIND RMUNGBIT) = V-LOOK>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-EXAMINE>
|
||||
<SYNTAX LOOK ON OBJECT = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER>
|
||||
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND>
|
||||
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK FOR OBJECT = V-FIND>
|
||||
<SYNONYM LOOK L>
|
||||
|
||||
<SYNTAX LOWER OBJECT = V-LOWER>
|
||||
|
||||
<SYNTAX MAKE OBJECT = V-MAKE>
|
||||
|
||||
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNTAX MOVE OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX MOVE OBJECT WITH OBJECT (FIND TOOLBIT) = V-TURN PRE-TURN>
|
||||
<SYNTAX ROLL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNTAX ROLL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
|
||||
<SYNTAX ODYSSEUS = V-ODYSSEUS>
|
||||
<SYNONYM ODYSSEUS ULYSSES>
|
||||
|
||||
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM) = V-OPEN>
|
||||
<SYNTAX OPEN UP OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-OPEN>
|
||||
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM) WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE) = V-OPEN>
|
||||
|
||||
<SYNTAX PICK OBJECT = V-PICK>
|
||||
<SYNTAX PICK OBJECT WITH OBJECT = V-PICK>
|
||||
<SYNTAX PICK UP OBJECT (FIND TAKEBIT) (ON-GROUND MANY) = V-TAKE PRE-TAKE>
|
||||
|
||||
<SYNTAX POKE OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-MUNG PRE-MUNG>
|
||||
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) = V-DROP PRE-DROP>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-DROP PRE-DROP>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) ON OBJECT = V-POUR-ON>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) FROM OBJECT = V-DROP PRE-DROP>
|
||||
<SYNONYM POUR SPILL>
|
||||
|
||||
<SYNTAX PRAY = V-PRAY>
|
||||
|
||||
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNTAX PULL ON OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNTAX PULL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNONYM PULL TUG YANK>
|
||||
|
||||
<SYNTAX PUMP UP OBJECT = V-PUMP>
|
||||
<SYNTAX PUMP UP OBJECT WITH OBJECT = V-PUMP>
|
||||
|
||||
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
|
||||
<SYNTAX PUSH ON OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
|
||||
<SYNTAX PUSH OBJECT WITH OBJECT (FIND TOOLBIT) = V-TURN PRE-TURN>
|
||||
<SYNONYM PUSH PRESS>
|
||||
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT-ON PRE-PUT>
|
||||
<SYNTAX PUT DOWN OBJECT (HELD MANY) = V-DROP PRE-DROP>
|
||||
<SYNTAX PUT OUT OBJECT (FIND ONBIT)
|
||||
(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE) = V-LAMP-OFF>
|
||||
<SYNONYM PUT STUFF INSERT PLACE>
|
||||
|
||||
<SYNTAX RAISE OBJECT = V-RAISE>
|
||||
<SYNTAX RAISE UP OBJECT = V-RAISE>
|
||||
<SYNONYM RAISE LIFT>
|
||||
|
||||
<SYNTAX READ OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNTAX READ FROM OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNTAX READ OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
OBJECT = V-READ-PAGE>
|
||||
<SYNONYM READ SKIM>
|
||||
|
||||
<SYNTAX REPENT = V-REPENT>
|
||||
|
||||
<SYNTAX RING OBJECT (TAKE) = V-RING>
|
||||
<SYNONYM RING PEAL>
|
||||
|
||||
<SYNTAX RUB OBJECT = V-RUB>
|
||||
<SYNTAX RUB OBJECT WITH OBJECT = V-RUB>
|
||||
<SYNONYM RUB TOUCH FEEL PAT PET>
|
||||
|
||||
<SYNTAX TALK TO OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
|
||||
<SYNTAX SAY = V-SAY>
|
||||
<SYNONYM SAY ANSWER REPLY INCANT CHANT>
|
||||
|
||||
<SYNTAX SEARCH OBJECT = V-SEARCH>
|
||||
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
|
||||
<SYNTAX SEARCH FOR OBJECT = V-FIND>
|
||||
|
||||
<SYNTAX SHAKE OBJECT (HAVE) = V-SHAKE>
|
||||
|
||||
<SYNTAX SKIP = V-SKIP>
|
||||
<SYNONYM SKIP HOP>
|
||||
|
||||
<SYNTAX SMELL OBJECT = V-SMELL>
|
||||
<SYNONYM SMELL SNIFF>
|
||||
|
||||
<SYNTAX STRIKE OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) WITH OBJECT
|
||||
(FIND WEAPONBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE) = V-ATTACK>
|
||||
<SYNTAX STRIKE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-STRIKE>
|
||||
|
||||
<SYNTAX SWIM = V-SWIM>
|
||||
<SYNTAX SWIM IN OBJECT = V-SWIM>
|
||||
<SYNTAX SWIM ACROSS OBJECT = V-SWIM>
|
||||
<SYNONYM SWIM BATHE WADE>
|
||||
|
||||
<SYNTAX SWING OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE) = V-SWING>
|
||||
<SYNTAX SWING OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
AT OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-SWING>
|
||||
<SYNONYM SWING THRUST>
|
||||
|
||||
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
|
||||
<SYNTAX TAKE OUT OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-EXIT>
|
||||
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
|
||||
<SYNTAX TAKE UP OBJECT (FIND RMUNGBIT) = V-EXIT>
|
||||
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY) OUT OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY) OFF OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY) FROM OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNONYM TAKE GET HOLD CARRY REMOVE GRAB CATCH>
|
||||
|
||||
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL>
|
||||
<SYNTAX TELL OBJECT (FIND ACTORBIT) (IN-ROOM) ABOUT OBJECT = V-TELL>
|
||||
<SYNONYM TELL ASK>
|
||||
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE)
|
||||
AT OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-THROW>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE)
|
||||
WITH OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-THROW>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) IN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) ON OBJECT = V-PUT-ON PRE-PUT>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) OFF OBJECT = V-THROW-OFF>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) OVER OBJECT = V-THROW-OFF>
|
||||
<SYNONYM THROW HURL CHUCK TOSS>
|
||||
|
||||
<SYNTAX TIE OBJECT TO OBJECT = V-TIE>
|
||||
<SYNTAX TIE UP OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) WITH OBJECT
|
||||
(FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE) = V-TIE-UP>
|
||||
<SYNONYM TIE FASTEN SECURE ATTACH>
|
||||
|
||||
<SYNTAX TURN OBJECT (FIND TURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND RMUNGBIT) = V-TURN PRE-TURN>
|
||||
<SYNTAX TURN ON OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-LAMP-ON>
|
||||
<SYNTAX TURN ON OBJECT WITH OBJECT (HAVE) = V-LAMP-ON>
|
||||
<SYNTAX TURN OFF OBJECT (FIND ONBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
= V-LAMP-OFF>
|
||||
<SYNTAX TURN OBJECT (FIND TURNBIT) TO OBJECT = V-TURN PRE-TURN>
|
||||
<SYNTAX TURN OBJECT (FIND TURNBIT) FOR OBJECT = V-TURN PRE-TURN>
|
||||
;<SYNTAX TURN OBJECT (FIND TURNBIT) = V-TURN PRE-TURN>
|
||||
<SYNONYM TURN SET FLIP SHUT>
|
||||
|
||||
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT
|
||||
(FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE) = V-UNLOCK>
|
||||
|
||||
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-UNTIE>
|
||||
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
FROM OBJECT = V-UNTIE>
|
||||
<SYNONYM UNTIE FREE RELEASE UNFASTEN UNATTACH>
|
||||
|
||||
<SYNTAX WAIT = V-WAIT>
|
||||
<SYNONYM WAIT Z>
|
||||
|
||||
<SYNTAX WAKE OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ALARM>
|
||||
<SYNTAX WAKE UP OBJECT (FIND ACTORBIT) (ON-GROUND IN-ROOM) = V-ALARM>
|
||||
<SYNONYM WAKE AWAKE SURPRISE STARTLE>
|
||||
|
||||
<SYNTAX WALK = V-WALK-AROUND>
|
||||
<SYNTAX WALK OBJECT = V-WALK>
|
||||
<SYNTAX WALK AWAY OBJECT = V-WALK>
|
||||
<SYNTAX WALK IN OBJECT = V-THROUGH>
|
||||
<SYNTAX WALK WITH OBJECT = V-THROUGH>
|
||||
<SYNTAX WALK ON OBJECT = V-THROUGH>
|
||||
<SYNTAX WALK OVER OBJECT = V-LEAP>
|
||||
<SYNTAX WALK TO OBJECT = V-WALK-AROUND>
|
||||
<SYNTAX WALK AROUND OBJECT = V-WALK-AROUND>
|
||||
<SYNTAX WALK UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB>
|
||||
<SYNTAX WALK DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
|
||||
<SYNONYM WALK GO RUN PROCEED STEP>
|
||||
|
||||
<SYNTAX WAVE OBJECT (HELD CARRIED TAKE HAVE) = V-WAVE>
|
||||
<SYNTAX WAVE OBJECT (HELD CARRIED TAKE HAVE) AT OBJECT = V-WAVE>
|
||||
<SYNTAX WAVE AT OBJECT = V-WAVE>
|
||||
<SYNONYM WAVE BRANDISH>
|
||||
|
||||
<SYNTAX YELL = V-YELL>
|
||||
<SYNONYM YELL SCREAM SHOUT>
|
||||
|
||||
<SYNTAX ZORK = V-ZORK>
|
|
@ -0,0 +1,434 @@
|
|||
"THIEF for
|
||||
Mini-Zork '87
|
||||
(c) Copyright 1987 Infocom, Inc. All Rights Reserved"
|
||||
|
||||
<OBJECT THIEF
|
||||
(IN ROUND-ROOM)
|
||||
(DESC "thief")
|
||||
(LDESC
|
||||
"There is a suspicious-looking individual, holding a large bag, leaning
|
||||
against one wall. He is armed with a deadly stiletto.")
|
||||
(SYNONYM THIEF ROBBER MAN PERSON)
|
||||
(ADJECTIVE SUSPICIOUS)
|
||||
(FLAGS ACTORBIT INVISIBLE CONTBIT SEARCHBIT OPENBIT)
|
||||
(STRENGTH 5)
|
||||
(ACTION THIEF-F)>
|
||||
|
||||
<ROUTINE THIEF-F ()
|
||||
<COND (<VERB? TELL LISTEN>
|
||||
<SETG P-CONT <>>
|
||||
<TELL "The thief is a strong, silent type." CR>)
|
||||
(<AND <VERB? THROW>
|
||||
<FSET? ,PRSO ,WEAPONBIT>>
|
||||
<MOVE ,PRSO ,HERE>
|
||||
<TELL
|
||||
"You missed hitting the thief, but you suceeded in angering him." CR>)
|
||||
(<AND <VERB? THROW GIVE>
|
||||
<EQUAL? ,PRSI ,THIEF>>
|
||||
<MOVE ,PRSO ,THIEF>
|
||||
<TELL "The thief ">
|
||||
<COND (<FSET? ,PRSO ,TREASUREBIT>
|
||||
<TELL
|
||||
"is taken aback by your unexpected generosity, but ">)>
|
||||
<TELL
|
||||
"puts the " D ,PRSO " in his bag and thanks you politely." CR>)
|
||||
(<VERB? EXAMINE LOOK-INSIDE>
|
||||
<TELL
|
||||
"The thief carries a large bag and a vicious stiletto, whose blade is aimed
|
||||
menacingly in your direction." CR>)>>
|
||||
|
||||
<ROUTINE I-THIEF ("AUX" X (THIEF-LOC <LOC ,THIEF>)
|
||||
ROBJ HERE? (ONCE <>) (FLG <>))
|
||||
<PROG ()
|
||||
<COND (<SET HERE? <NOT <FSET? ,THIEF ,INVISIBLE>>>
|
||||
<SET THIEF-LOC <LOC ,THIEF>>)>
|
||||
<COND
|
||||
(<AND <EQUAL? .THIEF-LOC ,THIEFS-LAIR>
|
||||
<NOT <EQUAL? .THIEF-LOC ,HERE>>>
|
||||
<DEPOSIT-BOOTY ,THIEFS-LAIR> ;"silent"
|
||||
<COND (.HERE?
|
||||
<FSET ,THIEF ,INVISIBLE>
|
||||
<SET X <FIRST? ,THIEFS-LAIR>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .X>
|
||||
<RETURN>)
|
||||
(T
|
||||
<FCLEAR .X ,INVISIBLE>)>
|
||||
<SET X <NEXT? .X>>>
|
||||
<SET HERE? <>>)>)
|
||||
(<AND <EQUAL? .THIEF-LOC ,HERE>
|
||||
<NOT <FSET? .THIEF-LOC ,ONBIT>>
|
||||
<NOT <IN? ,TROLL ,HERE>>>
|
||||
<COND (<THIEF-VS-ADVENTURER .HERE?>
|
||||
<RTRUE>)>
|
||||
<COND (<FSET? ,THIEF ,INVISIBLE>
|
||||
<SET HERE? <>>)>)
|
||||
(T
|
||||
<COND (<AND <IN? ,THIEF .THIEF-LOC>
|
||||
<NOT <FSET? ,THIEF ,INVISIBLE>>> ;"Leave if victim left"
|
||||
<FSET ,THIEF ,INVISIBLE>
|
||||
<SET HERE? <>>)>
|
||||
<COND (<FSET? .THIEF-LOC ,TOUCHBIT> ;"Hack the adventurer's belongings"
|
||||
<ROB .THIEF-LOC ,THIEF T>
|
||||
<SET FLG <COND (<AND <FSET? .THIEF-LOC ,MAZEBIT>
|
||||
<FSET? ,HERE ,MAZEBIT>>
|
||||
<ROB-MAZE .THIEF-LOC>)
|
||||
(T
|
||||
<STEAL-JUNK .THIEF-LOC>)>>)>)>
|
||||
<COND (<AND <SET ONCE <NOT .ONCE>>
|
||||
<NOT .HERE?>> ;"Move to next room, and hack."
|
||||
<REPEAT ()
|
||||
<COND (<AND .THIEF-LOC
|
||||
<SET .THIEF-LOC <NEXT? .THIEF-LOC>>>)
|
||||
(T
|
||||
<SET THIEF-LOC <FIRST? ,ROOMS>>)>
|
||||
<COND (<AND <NOT <FSET? .THIEF-LOC ,SACREDBIT>>
|
||||
<FSET? .THIEF-LOC ,RLANDBIT>>
|
||||
<MOVE ,THIEF .THIEF-LOC>
|
||||
<FSET ,THIEF ,INVISIBLE>
|
||||
<SETG THIEF-HERE <>>
|
||||
<RETURN>)>>
|
||||
<AGAIN>)>>
|
||||
<COND (<NOT <EQUAL? .THIEF-LOC ,THIEFS-LAIR>>
|
||||
<DROP-JUNK .THIEF-LOC>)>
|
||||
.FLG>
|
||||
|
||||
<ROUTINE DROP-JUNK (RM "AUX" X N (FLG <>))
|
||||
<SET X <FIRST? ,THIEF>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .X>
|
||||
<RETURN .FLG>)>
|
||||
<SET N <NEXT? .X>>
|
||||
<COND (<AND <NOT <FSET? .X ,TREASUREBIT>>
|
||||
<NOT <EQUAL? .X ,STILETTO ,LARGE-BAG>>
|
||||
<PROB 30 T>>
|
||||
<FCLEAR .X ,INVISIBLE>
|
||||
<MOVE .X .RM>
|
||||
<COND (<AND <NOT .FLG>
|
||||
<EQUAL? .RM ,HERE>>
|
||||
<TELL
|
||||
"The robber rummages through his bag and drops a few valueless items." CR>
|
||||
<SET FLG T>)>)>
|
||||
<SET X .N>>>
|
||||
|
||||
<ROUTINE STEAL-JUNK (RM "AUX" X N)
|
||||
<SET X <FIRST? .RM>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .X>
|
||||
<RFALSE>)>
|
||||
<SET N <NEXT? .X>>
|
||||
<COND (<AND <FSET? .X ,TREASUREBIT>
|
||||
<FSET? .X ,TAKEBIT>
|
||||
<NOT <FSET? .X ,SACREDBIT>>
|
||||
<NOT <FSET? .X ,INVISIBLE>>
|
||||
<PROB 10 T>>
|
||||
<MOVE .X ,THIEF>
|
||||
<FSET .X ,TOUCHBIT>
|
||||
<FSET .X ,INVISIBLE>
|
||||
<COND (<EQUAL? .X ,ROPE>
|
||||
<SETG DOME-FLAG <>>)>
|
||||
<COND (<EQUAL? .RM ,HERE>
|
||||
<TELL "The " D .X " has vanished!" CR>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<RFALSE>)>)>
|
||||
<SET X .N>>>
|
||||
|
||||
<ROUTINE ROB (WHAT WHERE JUST-TREASURES "AUX" N X (ROBBED <>))
|
||||
<SET X <FIRST? .WHAT>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .X>
|
||||
<RETURN>)>
|
||||
<SET N <NEXT? .X>>
|
||||
<COND (<FSET? .X ,INVISIBLE>
|
||||
T)
|
||||
(<AND .JUST-TREASURES
|
||||
<OR <FSET? .X ,SACREDBIT>
|
||||
<NOT <FSET? .X ,TREASUREBIT>>>>
|
||||
T)
|
||||
(T
|
||||
<MOVE .X .WHERE>
|
||||
<FSET .X ,TOUCHBIT>
|
||||
<SET ROBBED T>
|
||||
<COND (<EQUAL? .WHERE ,THIEF>
|
||||
<FSET .X ,INVISIBLE>)>)>
|
||||
<SET X .N>>
|
||||
<RETURN .ROBBED>>
|
||||
|
||||
<OBJECT LARGE-BAG
|
||||
(IN THIEF)
|
||||
(DESC "large bag")
|
||||
(SYNONYM BAG)
|
||||
(ADJECTIVE LARGE THIEFS)
|
||||
(FLAGS TRYTAKEBIT NDESCBIT)
|
||||
(ACTION LARGE-BAG-F)>
|
||||
|
||||
<ROUTINE LARGE-BAG-F ()
|
||||
<COND (<VERB? TAKE EXAMINE>
|
||||
<TELL "It will be taken over the thief's dead body." CR>)
|
||||
(<AND <VERB? PUT>
|
||||
<EQUAL? ,PRSI ,LARGE-BAG>>
|
||||
<TELL ,GOOD-TRICK>)
|
||||
(<VERB? OPEN CLOSE LOOK-INSIDE>
|
||||
<TELL ,GOOD-TRICK>)>>
|
||||
|
||||
<OBJECT STILETTO
|
||||
(IN THIEF)
|
||||
(DESC "stiletto")
|
||||
(SYNONYM STILETTO)
|
||||
(ADJECTIVE VICIOUS)
|
||||
(FLAGS NDESCBIT)
|
||||
(SIZE 10)>
|
||||
|
||||
<GLOBAL THIEF-HERE <>>
|
||||
|
||||
"INTERACTION WITH ADVENTURER -- RETURNS T IF THIEF FINISHED."
|
||||
|
||||
<ROUTINE THIEF-VS-ADVENTURER (HERE? "AUX" ROBBED? (WINNER-ROBBED? <>))
|
||||
<COND (<AND <NOT ,DEAD>
|
||||
<EQUAL? ,HERE ,THIEFS-LAIR>>)
|
||||
(<NOT ,THIEF-HERE>
|
||||
<COND (<AND <NOT ,DEAD>
|
||||
<NOT .HERE?>
|
||||
<PROB 30>>
|
||||
<FCLEAR ,THIEF ,INVISIBLE>
|
||||
<SETG THIEF-HERE T>
|
||||
<ENABLE <QUEUE I-FIGHT 2>>
|
||||
<TELL
|
||||
"Someone carrying a large bag is casually leaning against the wall. It is
|
||||
clear that the bag will be taken only over his dead body." CR>
|
||||
<RTRUE>)
|
||||
(<AND .HERE?
|
||||
<PROB 30>>
|
||||
<FSET ,THIEF ,INVISIBLE>
|
||||
<TELL ,THIEF-LEFT-DISGUSTED>
|
||||
<RTRUE>)
|
||||
(<PROB 70>
|
||||
<RFALSE>)
|
||||
(<NOT ,DEAD>
|
||||
<COND (<ROB ,HERE ,THIEF T>
|
||||
<SET ROBBED? ,HERE>)
|
||||
(<ROB ,WINNER ,THIEF T>
|
||||
<SET ROBBED? ,ADVENTURER>)>
|
||||
<SETG THIEF-HERE T>
|
||||
<COND (<AND .ROBBED?
|
||||
<NOT .HERE?>>
|
||||
<TELL
|
||||
"A suspicious-looking individual with a large bag just wandered through and
|
||||
quietly abstracted some valuables from ">
|
||||
<COND (<EQUAL? .ROBBED? ,HERE>
|
||||
<TELL "the room">)
|
||||
(T
|
||||
<TELL "your possession">)>
|
||||
<TELL ,PERIOD-CR>
|
||||
<NOW-DARK?>)
|
||||
(.HERE?
|
||||
<FSET ,THIEF ,INVISIBLE>
|
||||
<SET HERE? <>>
|
||||
<THIEF-ROBBED-AND-LEFT .ROBBED?>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<TELL
|
||||
"A \"lean and hungry\" gentleman just wandered through, carrying a
|
||||
large bag. " ,THIEF-LEFT-DISGUSTED>
|
||||
<RTRUE>)>)>)
|
||||
(.HERE? ;"Here, already announced."
|
||||
<COND (<PROB 30>
|
||||
<COND (<ROB ,HERE ,THIEF T>
|
||||
<SET ROBBED? ,HERE>)
|
||||
(<ROB ,WINNER ,THIEF T>
|
||||
<SET ROBBED? ,ADVENTURER>)>
|
||||
<FSET ,THIEF ,INVISIBLE>
|
||||
<SET HERE? <>>
|
||||
<THIEF-ROBBED-AND-LEFT .ROBBED?>)>)>
|
||||
<RFALSE>>
|
||||
|
||||
<ROUTINE THIEF-ROBBED-AND-LEFT (ROBBED?)
|
||||
<COND (.ROBBED?
|
||||
<TELL "The thief just left. You may not have noticed that he ">
|
||||
<COND (<EQUAL? .ROBBED? ,ADVENTURER>
|
||||
<TELL "robbed you blind first">)
|
||||
(T
|
||||
<TELL "appropriated the valuables in the room">)>
|
||||
<TELL ,PERIOD-CR>
|
||||
<NOW-DARK?>)
|
||||
(T
|
||||
<TELL ,THIEF-LEFT-DISGUSTED>)>>
|
||||
|
||||
<ROUTINE DEPOSIT-BOOTY (RM "AUX" X N (DROPPED-A-TREASURE <>))
|
||||
<SET X <FIRST? ,THIEF>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .X>
|
||||
<RETURN>)>
|
||||
<SET N <NEXT? .X>>
|
||||
<COND (<FSET? .X ,TREASUREBIT>
|
||||
<MOVE .X .RM>
|
||||
<FCLEAR .X ,INVISIBLE>
|
||||
<SET DROPPED-A-TREASURE T>)>
|
||||
<SET X .N>>
|
||||
.DROPPED-A-TREASURE>
|
||||
|
||||
<ROUTINE ROB-MAZE (RM "AUX" X N)
|
||||
<SET X <FIRST? .RM>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .X>
|
||||
<RFALSE>)>
|
||||
<SET N <NEXT? .X>>
|
||||
<COND (<AND <FSET? .X ,TAKEBIT>
|
||||
<NOT <FSET? .X ,INVISIBLE>>
|
||||
<PROB 40>>
|
||||
<TELL
|
||||
"In the distance, someone says, \"My, I wonder what this
|
||||
fine " D .X " is doing here.\"" CR>
|
||||
<COND (<PROB 60 80>
|
||||
<MOVE .X ,THIEF>
|
||||
<FSET .X ,TOUCHBIT>
|
||||
<FSET .X ,INVISIBLE>)>
|
||||
<RETURN>)>
|
||||
<SET X .N>>>
|
||||
\
|
||||
;"fighting"
|
||||
|
||||
<ROUTINE HERO-BLOW ("AUX" VIL-STR HIT-PROB)
|
||||
<SET VIL-STR <GETP ,PRSO ,P?STRENGTH>>
|
||||
<COND (<PRSO? ,TROLL>
|
||||
<SET HIT-PROB 45>)
|
||||
(T
|
||||
<SET HIT-PROB <+ 15 </ ,SCORE 4>>>)>
|
||||
<COND (<PROB .HIT-PROB>
|
||||
<COND (<PROB 50> ;"serious blow"
|
||||
<SET VIL-STR <- .VIL-STR 2>>
|
||||
<COND (<L? .VIL-STR 0>
|
||||
<KILL-VILLAIN>)
|
||||
(<PROB 50>
|
||||
<TELL
|
||||
"The " D ,PRSO " receives a deep gash in his side." CR>)
|
||||
(T
|
||||
<TELL
|
||||
"Slash! Your " D ,PRSI " connects! This could be serious!" CR>)>)
|
||||
(T ;"light blow"
|
||||
<SET VIL-STR <- .VIL-STR 1>>
|
||||
<COND (<L? .VIL-STR 0>
|
||||
<KILL-VILLAIN>)
|
||||
(<PROB 50>
|
||||
<TELL
|
||||
"The " D ,PRSO " is struck on the arm; blood begins to trickle down." CR>)
|
||||
(T
|
||||
<TELL
|
||||
"The blow lands, making a shallow gash in the " D ,PRSO "'s arm!" CR>)>)>
|
||||
<PUTP ,PRSO ,P?STRENGTH .VIL-STR>)
|
||||
(<PROB 50>
|
||||
<TELL
|
||||
"A good slash, but it misses the " D ,PRSO " by a mile." CR>)
|
||||
(T
|
||||
<TELL
|
||||
"You charge, but the " D ,PRSO " jumps nimbly aside." CR>)>>
|
||||
|
||||
<ROUTINE KILL-VILLAIN ("AUX" X)
|
||||
<TELL
|
||||
"The fatal blow strikes the " D ,PRSO " square in the heart: He dies. As the "
|
||||
D ,PRSO " breathes his last breath, a cloud of sinister black fog envelops
|
||||
him; when it lifts, the carcass is gone." CR>
|
||||
<REMOVE ,PRSO>
|
||||
<COND (<PRSO? ,TROLL>
|
||||
<PUTP ,TROLL ,P?STRENGTH 2> ;"to stop I-CURE"
|
||||
<MOVE ,AXE ,HERE>
|
||||
<FCLEAR ,AXE ,NDESCBIT>
|
||||
<FSET ,AXE ,WEAPONBIT>
|
||||
<FSET ,AXE ,TAKEBIT>
|
||||
<SETG TROLL-FLAG T>
|
||||
<SETG SCORE <+ ,SCORE 10>>)
|
||||
(T
|
||||
<PUTP ,THIEF ,P?STRENGTH 5> ;"to stop I-CURE"
|
||||
<MOVE ,STILETTO ,HERE>
|
||||
<FCLEAR ,STILETTO ,NDESCBIT>
|
||||
<FSET ,STILETTO ,TAKEBIT>
|
||||
<FSET ,STILETTO ,WEAPONBIT>
|
||||
<DISABLE <INT I-THIEF>>
|
||||
<COND (<DEPOSIT-BOOTY ,HERE>
|
||||
<COND (<EQUAL? ,HERE ,THIEFS-LAIR>
|
||||
<TELL
|
||||
"As the thief dies, his treasures reappear.">)
|
||||
(T
|
||||
<TELL "His booty remains.">)>
|
||||
<CRLF> <CRLF>
|
||||
<V-LOOK>)>)>>
|
||||
|
||||
<ROUTINE I-FIGHT ("AUX" ADV-STR TBL HIT-PROB)
|
||||
<ENABLE <QUEUE I-FIGHT -1>>
|
||||
<SET ADV-STR <GETP ,ADVENTURER ,P?STRENGTH>>
|
||||
<COND (<IN? ,TROLL ,HERE>
|
||||
<SET HIT-PROB 55>
|
||||
<SET TBL ,TROLL-MELEE>)
|
||||
(<IN? ,THIEF ,HERE>
|
||||
<SET HIT-PROB 60>
|
||||
<SET TBL ,THIEF-MELEE>)
|
||||
(T
|
||||
<DISABLE <INT I-FIGHT>>
|
||||
<ENABLE <QUEUE I-CURE -1>>
|
||||
<RFALSE>)>
|
||||
<COND (<PROB .HIT-PROB>
|
||||
<COND (<PROB 50> ;"serious blow"
|
||||
<SET ADV-STR <- .ADV-STR 2>>
|
||||
<COND (<L? .ADV-STR 0>
|
||||
<JIGS-UP <GET .TBL 6>>)
|
||||
(<PROB 50>
|
||||
<TELL <GET .TBL 5> CR>)
|
||||
(T
|
||||
<TELL <GET .TBL 4> CR>)>)
|
||||
(T ;"light blow"
|
||||
<SET ADV-STR <- .ADV-STR 1>>
|
||||
<COND (<L? .ADV-STR 0>
|
||||
<JIGS-UP <GET .TBL 6>>)
|
||||
(<PROB 50>
|
||||
<TELL <GET .TBL 3> CR>)
|
||||
(T
|
||||
<TELL <GET .TBL 2> CR>)>)>
|
||||
<PUTP ,ADVENTURER ,P?STRENGTH .ADV-STR>)
|
||||
(<PROB 50>
|
||||
<TELL <GET .TBL 1> CR>)
|
||||
(T
|
||||
<TELL <GET .TBL 0> CR>)>>
|
||||
|
||||
<GLOBAL TROLL-MELEE
|
||||
<TABLE
|
||||
;0 "The troll's axe barely misses your ear."
|
||||
;1 "The axe crashes against the rock, throwing sparks!"
|
||||
;2 "The axe blade nicks your side. Ouch!"
|
||||
;3 "The flat of the troll's axe skins across your forearm."
|
||||
;4 "The troll charges, and his axe slashes you on your arm."
|
||||
;5 "An axe stroke makes a deep wound in your leg."
|
||||
;6 "The troll neatly removes your head.">>
|
||||
|
||||
<GLOBAL THIEF-MELEE
|
||||
<TABLE
|
||||
;0 "The thief stabs nonchalantly with his stiletto and misses."
|
||||
;1 "You dodge as the thief comes in low."
|
||||
;2 "The thief draws blood, raking his stiletto across your arm."
|
||||
;3 "The stiletto flashes, and blood wells from your leg."
|
||||
;4 "The stiletto gashes your forehead, and blood obscures your vision."
|
||||
;5 "The thief slashes your wrist, leaving your grip slippery with blood."
|
||||
;6 "The thief, forgetting his genteel upbringing, cuts your throat.">>
|
||||
|
||||
<GLOBAL CURE-COUNT 10>
|
||||
|
||||
<ROUTINE I-CURE ("AUX" ADV-STR TROLL-STR THIEF-STR)
|
||||
<SET ADV-STR <GETP ,ADVENTURER ,P?STRENGTH>>
|
||||
<SET TROLL-STR <GETP ,TROLL ,P?STRENGTH>>
|
||||
<SET THIEF-STR <GETP ,THIEF ,P?STRENGTH>>
|
||||
<COND (<AND <EQUAL? .ADV-STR 6>
|
||||
<EQUAL? .TROLL-STR 2>
|
||||
<EQUAL? .THIEF-STR 5>>
|
||||
<DISABLE <INT I-CURE>>
|
||||
<SETG CURE-COUNT 10>
|
||||
<RFALSE>)>
|
||||
<SETG CURE-COUNT <- ,CURE-COUNT 1>>
|
||||
<COND (<EQUAL? ,CURE-COUNT 0>
|
||||
<COND (<L? .ADV-STR 6>
|
||||
<PUTP ,ADVENTURER ,P?STRENGTH <+ .ADV-STR 1>>)>
|
||||
<COND (<L? .TROLL-STR 2>
|
||||
<PUTP ,TROLL ,P?STRENGTH <+ .TROLL-STR 1>>)>
|
||||
<COND (<L? .THIEF-STR 5>
|
||||
<PUTP ,THIEF ,P?STRENGTH <+ .THIEF-STR 1>>)>
|
||||
<SETG CURE-COUNT 10>)>
|
||||
<RFALSE>>
|
Loading…
Reference in New Issue