Revision 22 (Original Source)

master
historicalsource 2019-04-13 23:50:54 -04:00
commit fa9390b02c
19 changed files with 12447 additions and 0 deletions

1
README.md Normal file
View File

@ -0,0 +1 @@
# infidel

1441
ante.zil Normal file

File diff suppressed because it is too large Load Diff

674
barge.zil Normal file
View File

@ -0,0 +1,674 @@
"BARGE for
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<ROOM LANDING-TWO
(IN ROOMS)
(DESC "South Landing")
(FLAGS RLANDBIT)
(LDESC
"You are on a landing in the middle of a set of stairs. The staircase goes down
to the south and up to the north. The walls here are undistinguished, formed by
the stones of which the pyramid was built.")
(UP TO CHAMBER-OF-RA)
(NORTH TO CHAMBER-OF-RA)
(DOWN TO NARROW-HALL)
(SOUTH TO NARROW-HALL)
(GLOBAL SOUTH-STAIRS)
(ACTION MOVE-ROPE-HERE)>
<ROOM NARROW-HALL
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Narrow Hallway")
(LDESC
"You are at the entrance of a narrow hallway which goes to the northeast. A
staircase goes up to the north.")
(UP TO LANDING-TWO)
(NE TO BEND-HALL)
(NORTH TO LANDING-TWO)>
<ROOM BEND-HALL
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Narrow Hallway")
(LDESC
"You are at a bend in the Narrow Hallway. The hallway continues to the
northwest and to the southwest. Inscribed on the wall are some hieroglyphs.")
(NW TO BARGE-ENTRANCE)
(SW TO NARROW-HALL)
(GLOBAL HIEROGLYPHS)>
<ROOM BARGE-ENTRANCE
(IN ROOMS)
(DESC "Barge Chamber")
(FLAGS RLANDBIT)
(LDESC
"You are in the southern section of a huge room which holds the royal barge.
Before you, to the north, is a plank which provides entrance to the barge.
There is room to move around the barge to the east and west, while a doorway
to the southeast leads into a darkened corridor.")
(UP TO BARGE-CENTER)
(NORTH TO BARGE-CENTER)
(WEST TO SW-CORNER)
(EAST TO SE-CORNER)
(SE TO BEND-HALL)
(GLOBAL BOAT)
(ACTION MOVE-THE-PLANK-FCN)>
<ROUTINE MOVE-THE-PLANK-FCN (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<COND (<OR <NOT <FSET? ,PLANK ,TOUCHBIT>>
<IN? ,PLANK ,BARGE-CENTER>>
<MOVE ,PLANK ,HERE>)>
<RFALSE>)>>
<ROOM SE-CORNER
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Barge Chamber")
(LDESC
"You are in the southeast corner of the Barge Chamber. There's enough room to
bypass the stern of the barge and continue to the north. To the west you can
see the entrance to the barge.")
(WEST TO BARGE-ENTRANCE)
(NORTH TO NE-CORNER)
(GLOBAL BOAT)>
<ROOM NE-CORNER
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Barge Chamber")
(LDESC
"You're standing in the northeast corner of the Barge Chamber. You can get
around the stern of the barge to the south, while there's enough room to
continue around the barge to the west.")
(WEST TO BARGE-EXIT)
(SOUTH TO SE-CORNER)
(GLOBAL BOAT)>
<ROOM SW-CORNER
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Barge Chamber")
(LDESC
"You're in the southwest corner of the Barge Chamber. You can still see the
barge entrance to the east, while there's enough room to continue to the north,
around the barge.")
(NORTH TO NW-CORNER)
(EAST TO BARGE-ENTRANCE)
(GLOBAL BOAT)>
<ROOM NW-CORNER
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Barge Chamber")
(LDESC
"You're in the northwest corner of the Barge Chamber. You can see by your light
that there's room enough to continue around the back of the barge by going to
the east, while you can bypass the bow of the boat by going south.")
(SOUTH TO SW-CORNER)
(EAST TO BARGE-EXIT)
(GLOBAL BOAT)>
<ROOM BARGE-EXIT
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Barge Chamber")
(LDESC
"You're at the start of a hallway which goes off to the north. To the south,
directly behind you, is the back side of the barge. There's enough room to get
around it to the east and west.")
(EAST TO NE-CORNER)
(WEST TO NW-CORNER)
(NORTH TO IN-THE-HALL)
(GLOBAL BOAT)>
;"These rooms are actually part of the barge itself."
<ROOM BARGE-CENTER
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Center of Barge")
(LDESC
"You are standing on the deck of an ancient wooden barge. Before you, cut into
the deck, is a hole. To the south is a plank which leads down off the barge.
You can see two cabins on the deck, one to the west and the other to the east.")
(WEST TO FORE-CABIN)
(EAST TO AFT-CABIN)
(DOWN TO BARGE-ENTRANCE)
(SOUTH TO BARGE-ENTRANCE)
(GLOBAL HOLE BOAT DECK)
(ACTION BURN-THE-BARGE)>
<ROOM FORE-CABIN
(IN ROOMS)
(FLAGS RLANDBIT)
(EAST TO BARGE-CENTER)
(DESC "Fore Cabin")
(LDESC
"You are in the forward cabin aboard the barge. The cabin is bare with none of
the luxuries you expected to see. You close your eyes for a moment, picturing
the barge you'll someday own, the yacht fully rigged and crewed. You open your
eyes and shake your head, anxious to make your dream reality. There's a doorway
to the east leading out onto the deck.")
(GLOBAL BOAT DECK)
(ACTION BURN-THE-BARGE)>
<ROOM AFT-CABIN
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Aft Cabin")
(LDESC
"You are in the aft cabin aboard the barge. There's a door to the west which
leads out to the deck, and a short ladder, permanently mounted to the deck,
going down into the depths of the barge itself.")
(WEST TO BARGE-CENTER)
(DOWN TO BELOW-DECK)
(GLOBAL STAIRS BOAT DECK)
(ACTION BURN-THE-BARGE)>
<ROOM BELOW-DECK
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Below Deck")
(LDESC
"You are below the deck of the barge in what looks like a huge hold. To the
west you can see the hold continuing, while a ladder leads up and out from
here.")
(UP TO AFT-CABIN)
(OUT TO AFT-CABIN)
(WEST TO BELOW-MAST)
(ACTION BURN-THE-BARGE)
(GLOBAL BOAT STAIRS DECK)>
<ROOM BELOW-MAST
(IN ROOMS)
(DESC "West End of Hold")
(FLAGS RLANDBIT)
(LDESC
"You are in the westmost portion of the hold, below the deck of the barge.
On the north side of the hull is a small knothole about three feet off the
deck. Overhead you can see a hole going through the deck while, directly
below this hole, on the deck by your feet, is a slot.")
(ACTION BURN-THE-BARGE)
(EAST TO BELOW-DECK)
(GLOBAL BOAT HOLE DECK)>
<GLOBAL PUSHED-BEAM <>>
<OBJECT PLANK
(IN BARGE-CENTER)
(SYNONYM LADDER PLANK)
(DESC "plank")
(FDESC
"A long wooden plank connects the barge and the entry area.")
(FLAGS NDESCBIT CLIMBBIT DONTTAKE TRYTAKEBIT)
(ACTION PLANK-FCN)>
<ROUTINE PLANK-FCN ()
<COND (<VERB? TAKE MOVE>
<TELL
"The plank is a permanent part of the barge. To remove it might create far more
destruction than you think." CR>
<RTRUE>)>>
<GLOBAL BARGE-BURN-STR
"The barge immediately catches fire in a tremendous flash and, before you know
it, you're heated to a toasty 1000 degrees. Not being made of asbestos has its
disadvantages, as you quickly realize....">
<ROUTINE BURN-THE-BARGE (RARG)
<COND (<EQUAL? .RARG ,M-END>
<COND (<AND <VERB? DROP THROW>
<FLAMING? ,PRSO>>
<JIGS-UP ,BARGE-BURN-STR>
<RFATAL>)
(<AND <VERB? PUT>
<FLAMING? ,PRSO>
<EQUAL? <LOC ,PRSI> ,HERE>
<NOT <EQUAL? ,PRSI ,TORCH-HOLDER>>>
<JIGS-UP ,BARGE-BURN-STR>
<RFATAL>)>)
(<AND <EQUAL? .RARG ,M-ENTER>
<EQUAL? ,HERE ,BELOW-MAST>>
<MOVE ,MAST-HOLE ,HERE>
<COND (<NOT <FSET? ,BEAM ,TOUCHBIT>>
<PUTP ,BEAM ,P?FDESC
"Coming down through the hole above your head and ending in the slot at your
feet is the beam which served as a mast.">
<COND (<NOT ,PUSHED-BEAM>
<MOVE ,BEAM ,SLOT>)>)>
<RFALSE>)
(<AND <EQUAL? .RARG ,M-ENTER>
<EQUAL? ,HERE ,BARGE-CENTER>>
<COND (<OR <NOT <FSET? ,PLANK ,TOUCHBIT>>
<IN? ,PLANK ,BARGE-ENTRANCE>>
<MOVE ,PLANK ,HERE>)>
<MOVE ,MAST-HOLE ,HERE>
<COND (<AND ,PUSHED-BEAM
<NOT <FSET? ,BEAM ,TOUCHBIT>>>
<PUTP ,BEAM ,P?FDESC
"Lying on the deck of the barge is a long wooden beam.">)>
<COND (<NOT ,PUSHED-BEAM>
<MOVE ,BEAM ,HERE>
<PUTP ,BEAM ,P?FDESC
"Before you, running down through a hole in the deck, is a sturdy beam made of
wood. Although only a few feet of it rise above the deck, it was probably used
at one time as a mast.">)>)>>
<OBJECT MAST-HOLE
(IN BARGE-CENTER)
(DESC "mast hole")
(FLAGS NDESCBIT OPENBIT CONTBIT TRANSBIT DONTTAKE TRYTAKEBIT VEHBIT)
(CAPACITY 34)
(SYNONYM HOLE)
(ADJECTIVE MAST)
(ACTION MAST-HOLE-FCN)>
<ROUTINE MAST-HOLE-FCN ()
<COND (<VERB? OPEN CLOSE>
<HOW? ,PRSO>
<RTRUE>)
(<VERB? CLIMB-DOWN CLIMB-UP THROUGH>
<COND (<NOT ,PUSHED-BEAM>
<TELL "I think the mast hole is already being used." CR>)
(T
<TELL "You'd never squeeze through it." CR>)>
<RTRUE>)
(<AND <VERB? EXAMINE LOOK-INSIDE>
<NOT ,PUSHED-BEAM>>
<TELL "The mast is going through the hole." CR>
<RTRUE>)
(<AND <VERB? PUT>
<PRSI? ,MAST-HOLE>
<NOT ,PUSHED-BEAM>>
<TELL
"There isn't room for the " D ,PRSO " and the mast, too." CR>
<RTRUE>)
(<AND <PRSI? ,MAST-HOLE>
<VERB? PUT>>
<COND (<EQUAL? ,HERE ,BARGE-CENTER>
<TELL "The " D ,PRSO " drops through the hole." CR>)
(T
<TELL "You try to reach up that high, but fail. The "
D ,PRSO " falls to the deck." CR>)>
<MOVE ,PRSO ,BELOW-MAST>
<FSET ,PRSO ,TOUCHBIT>
<COND (<FLAMING? ,PRSO>
<JIGS-UP ,BARGE-BURN-STR>)>
<RTRUE>)>>
<OBJECT TORCH-HOLDER
(IN BELOW-MAST)
(DESC "knothole")
(FLAGS NDESCBIT CONTBIT TRANSBIT OPENBIT DONTTAKE TRYTAKEBIT)
(CAPACITY 5)
(ACTION TORCH-HOLDER-FCN)
(SYNONYM KNOTHO HOLE)
(ADJECTIVE KNOT)>
<ROUTINE TORCH-HOLDER-FCN ("AUX" FROB)
<COND (<VERB? OPEN CLOSE>
<HOW? ,TORCH-HOLDER>)
(<VERB? EXAMINE LOOK-INSIDE>
<COND (<SET FROB <FIRST? ,PRSO>>
<TELL "All I can see is a " D .FROB " in there." CR>)
(T
<TELL "Through the knothole is inky blackness." CR>)>)>>
<OBJECT SLOT
(IN BELOW-MAST)
(FLAGS NDESCBIT CONTBIT OPENBIT DONTTAKE TRYTAKEBIT)
(CAPACITY 9)
(DESC "slot")
(SYNONYM SLOT)
(ADJECTIVE SMALL)
(ACTION SLOT-FCN)>
<ROUTINE SLOT-FCN ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<COND (<AND <IN? ,BEAM ,SLOT>
<FSET? ,SHIM ,NDESCBIT>>
<TELL
"A shim is wedged between the slot and the beam." CR>
<RTRUE>)
(<IN? ,BEAM ,SLOT>
<TELL "The beam is resting in the slot." CR>
<RTRUE>)
(ELSE
<RFALSE>)>)
(<VERB? OPEN CLOSE>
<HOW? ,SLOT>)>>
<OBJECT SHIM
(IN BELOW-MAST)
(FLAGS TAKEBIT DONTTAKE NDESCBIT BURNBIT TRYTAKEBIT)
(DESC "shim")
(SIZE 4)
(SYNONYM SHIM WEDGE)
(ADJECTIVE WOOD)
(TEXT
"It's a small piece of wood, used as a wedge.")
(ACTION SHIM-FCN)>
<ROUTINE SHIM-FCN ()
<COND (<AND <VERB? TAKE>
<FSET? ,SHIM ,NDESCBIT>>
<COND (<ITAKE>
<TELL "Taken." CR>
<FCLEAR ,SHIM ,NDESCBIT>
<FCLEAR ,SHIM ,DONTTAKE>)>
<RTRUE>)>>
<OBJECT BEAM
(IN BARGE-CENTER)
(FLAGS BURNBIT TAKEBIT VEHBIT TRYTAKEBIT SURFACEBIT CONTBIT OPENBIT)
(DESC "wooden beam")
(FDESC
"Before you, running down through a hole in the deck, is a sturdy beam made of
wood. Although only a few feet of it rise above the deck, it was probably used
at one time as a mast.")
(SYNONYM BEAM MAST)
(ADJECTIVE WOODEN STURDY)
(TEXT
"This wooden beam is made of an extremely hard wood. It's 10 feet long and has
a diameter of 12 inches. Scratched into it is the following symbol:|
|
/!\\")
(SIZE 10)
(VALUE 15)
(ACTION BEAM-FCN)
(CAPACITY 30)
(DESCFCN DESCRIBE-BEAM-FCN)>
<GLOBAL AIR-WALK
"Well, despite your \"angelic\" qualities, you aren't very good at walking on
air and so, with a scream on your lips, you plunge to a horrible death in a pit
of voracious rats.">
<GLOBAL BURIAL-BEAM-STR
"How fitting -- to be trapped forever in the Burial Chamber, waiting slowly,
painfully, for your oxygen to run out -- a true testimony to the brilliance of
the Queen and her protection.">
<GLOBAL ANNEX-BEAM-STR
"The doorway suddenly closes as heavy, immovable stones crush in from both
sides. You slowly and painfully suffocate in the Annex, cursing the gods for
ever revealing this horrible place to you. You wish you had told Craige about
this place -- that way, it could have been he instead of you.">
<ROUTINE DROP-THE-BLOCKS ()
<TELL
"When you remove the beam, you remove the only thing between you and three
tons of solid rock, poised over your head. Knowing the situation, though, has
saved your life: you leap out of the way just in time." CR>
<SETG BEAM-PLACED <>>
<MUNG-ROOM ,BURIAL-CHAMBER
"The way into the Burial Chamber has been forever blocked by massive stones.">
<REMOVE ,NORTH-ANTE-DOOR>
<SETG P-IT-LOC <>>
<SETG ANTE-SEAL T>
<REMOVE ,N-ANTE-SEAL>>
<ROUTINE CLOSE-THE-ANNEX ()
<MUNG-ROOM ,ANNEX
"The way into the Annex is forever blocked by huge, immovable stones.">
<TELL
"The doorway disappears behind two huge stones which slide horizontally from
the doorway. Luckily, you stepped out of their way just in time." CR>
<SETG BEAM-PLACED <>>
<REMOVE ,ROCKS>
<PUTP ,SOUTH-ANTECHAMBER ,P?LDESC
"You are in the southern end of the Chamber of Eternal Royalty. From here you
can see the room stretching out towards the north. The south wall is painted to
resemble large baskets of lotus flowers with their blue petals framing an image
of the Sun God, Amun Ra. The west wall once held a door but is now forever
blocked.">>
<ROUTINE SET-THE-BEAM (CASE)
<COND (,BEAM-PLACED
<COND (<EQUAL? ,BEAM-PLACED .CASE>
<TELL "It's already been done." CR>
<RTRUE>)
(<NOT <ITAKE>>
<RTRUE>)
(T <TELL "(taken)" CR>)>)>
<TELL "Consider it done." CR>
<SETG BEAM-PLACED .CASE>
<DESCRIBE-BEAM-FCN ,M-OBJDESC>
<MOVE ,BEAM ,HERE>
<COND (<EQUAL? ,HERE ,SOUTH-ANTECHAMBER>
<THIS-IS-IT ,ANNEX-DOOR>)>>
<ROUTINE BEAM-FCN ()
<COND (<EQUAL? ,BEAM ,PRSI>
<COND (<VERB? PUT PUT-ON>
<COND (<EQUAL? ,PRSO ,ME ,WINNER ,ADVENTURER>
<TELL "Why not just stand on it?" CR>)
(<HELD? ,BEAM>
<TELL "Better drop the " D ,PRSI " first." CR>
<RTRUE>)
(<PRSO? ,BEAM>
<TELL "How recursive!" CR>
<RTRUE>)
(T
<TELL
"Done. But the " D ,PRSO " falls off the beam and lands">
<COND (<AND <NOT <FSET? ,PIT ,INVISIBLE>>
<ROOM? ,WEST-END-OF-PASSAGE
,MID-ANTECHAMBER>
,BEAM-PLACED>
<TELL " in the pit." CR>
<REMOVE ,PRSO>)
(T <TELL " on the ground." CR>
<MOVE ,PRSO ,HERE>
<RTRUE>)>)>)>)
(<VERB? TAKE>
<COND (<AND <EQUAL? ,HERE ,NORTH-ANTECHAMBER>
<FSET? ,NORTH-ANTE-DOOR ,OPENBIT>
<ITAKE>>
<DROP-THE-BLOCKS>
<RTRUE>)
(<EQUAL? ,HERE ,BURIAL-CHAMBER>
<COND (<ITAKE>
<TELL "Taken. Oh oh...." CR>
<JIGS-UP ,BURIAL-BEAM-STR>)>)
(<EQUAL? ,HERE ,ANNEX>
<COND (<ITAKE>
<JIGS-UP ,ANNEX-BEAM-STR>
<RFATAL>)>)
(<AND <EQUAL? ,HERE ,SOUTH-ANTECHAMBER>
<NOT <FSET? ,ANNEX ,RMUNGBIT>>
<FSET? ,ANNEX-DOOR ,OPENBIT>>
<COND (<ITAKE>
<CLOSE-THE-ANNEX>)>
<RTRUE>)
(<AND <EQUAL? ,HERE ,BARGE-CENTER>
<FSET? ,SHIM ,NDESCBIT>
<IN? ,BEAM ,HERE>>
<TELL
"It seems to be securely wedged in the mast hole." CR>
<RTRUE>)
;(<AND <EQUAL? ,HERE ,BARGE-CENTER>
<NOT ,PUSHED-BEAM>
<IN? ,BEAM ,HERE>>
<TELL
"You can't lift it that high over your head to get it out of the deck." CR>
<RTRUE>)
(<AND <EQUAL? ,HERE ,BELOW-MAST>
<FSET? ,SHIM ,NDESCBIT>
<IN? ,BEAM ,SLOT>>
<TELL "It's wedged into the slot." CR>
<RTRUE>)
(<AND <EQUAL? ,HERE ,BELOW-MAST>
<IN? ,BEAM ,SLOT>>
<TELL
"The mast hole won't allow a steep enough angle for removing it." CR>
<RTRUE>)
(,ON-BEAM
<COND (<ITAKE>
<SETG ON-BEAM <>>
<TELL "(getting off the beam first)" CR "Taken."
CR>
<COND (<NOT <IN? ,PLASTER ,HERE>>
<JIGS-UP
"Well, you were never very good walking on air and so, with a scream on your
lips, you plunge to a horrible death in a pit of voracious rats.">)>
<SETG BEAM-PLACED <>>
<RTRUE>)>)
(T
<SETG BEAM-PLACED <>>
<RFALSE>)>)
(<AND <VERB? PUT PUT-ACROSS PUT-ON PUT-AGAINST>
<PRSI? ,NICHES>
<EQUAL? ,HERE ,WEST-END-OF-PASSAGE>
<NOT <IN? ,PIT ,HERE>>>
<SET-THE-BEAM 1>
<RTRUE>)
(<AND <VERB? PUT-ON>
<EQUAL? ,PRSI ,ROCKS>
<EQUAL? ,HERE ,SOUTH-ANTECHAMBER>>
<SET-THE-BEAM 2>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,ROCKS>
<EQUAL? ,HERE ,SOUTH-ANTECHAMBER>>
<TELL
"Done. The beam immediately falls to the floor, though." CR>
<MOVE ,BEAM ,HERE>
<RTRUE>)
(<AND <VERB? PUT-ACROSS PUT>
<EQUAL? ,PRSI ,DOORWAY ,ANNEX-DOOR>
<EQUAL? ,HERE ,SOUTH-ANTECHAMBER>
<IN? ,ROCKS ,HERE>>
<SET-THE-BEAM 3>
<RTRUE>)
(<AND <VERB? PUT-UNDER>
<EQUAL? ,PRSI ,T-LINTEL ,DOORWAY>
<EQUAL? ,HERE ,NORTH-ANTECHAMBER>>
<SET-THE-BEAM 4>
<RTRUE>)
(<AND <VERB? PUT-ACROSS PUT>
<EQUAL? ,PRSI ,PIT>
<EQUAL? ,HERE ,MID-ANTECHAMBER>>
<SET-THE-BEAM 5>
<RTRUE>)
(<AND ,ON-BEAM <VERB? DISEMBARK CLIMB-DOWN>>
<SETG ON-BEAM <>>
<COND (<AND <IN? ,PLASTER ,WEST-END-OF-PASSAGE>
<EQUAL? ,HERE ,WEST-END-OF-PASSAGE>>
<TELL
"You're now standing on the ground." CR>)
(T
<JIGS-UP ,AIR-WALK>
<RTRUE>)>)
(<AND <VERB? RAISE PULL-UP PUSH-THROUGH>
<EQUAL? ,HERE ,BELOW-MAST ,BARGE-CENTER>
<FSET? ,SHIM ,NDESCBIT>>
<TELL
"You try to raise the mast but it seems to be wedged into something." CR>
<RTRUE>)
(<AND <VERB? PUSH-THROUGH RAISE PULL-UP>
<EQUAL? ,HERE ,BELOW-MAST ,BARGE-CENTER>
<NOT <FSET? ,SHIM ,NDESCBIT>>>
<COND (<NOT <EQUAL? <CCOUNT ,WINNER> 0>>
<TELL
"You'll need two hands to do that. Better put everything down." CR>
<RTRUE>)
(ELSE
<MOVE ,BEAM ,BARGE-CENTER>
<SETG PUSHED-BEAM T>
<PUTP ,BEAM ,P?FDESC
"Lying on the deck of the barge is a long wooden beam.">
<TELL
"You have managed to lift the beam up through the hole and you hear it land on
the deck with a thud." CR>)>)
(<AND <VERB? PUSH-THROUGH>
<EQUAL? ,PRSI ,MAST-HOLE>
<EQUAL? ,HERE ,BELOW-MAST>>
<TELL "It's wedged too tightly in the slot." CR>
<RTRUE>)
(<AND <VERB? PUSH>
<NOT <FSET? ,BEAM ,TOUCHBIT>>>
<TELL "Nice try." CR>)
(<VERB? MUNG>
<TELL
"This piece of wood is virtually petrified due to its age and original strength." CR>)
>>
<ROUTINE DESCRIBE-BEAM-FCN (RARG "AUX" STR)
<COND (<OR <NOT <EQUAL? .RARG ,M-OBJDESC>>
<NOT ,BEAM-PLACED>>
<RFALSE>)
(<EQUAL? ,BEAM-PLACED 4> ;"CASE: In N. Ante, beam wedged"
<TELL
"Wedged under the top of the doorway, perpendicular to the floor, is the wooden
beam." CR>
<RTRUE>)
(<EQUAL? ,BEAM-PLACED 5 1>
<COND (<EQUAL? ,HERE ,MID-ANTECHAMBER>
<TELL
"Through the doorway you can see the beam spanning the pit." CR>)
(<EQUAL? ,HERE ,WEST-END-OF-PASSAGE>
<TELL "Stretching across the floor">
<COND (<EQUAL? ,BEAM-PLACED 1>
<TELL " from niche to niche">)>
<COND (<NOT ,INNER-DOOR-SEALED>
<TELL ", spanning a deep pit,">)>
<TELL " is the wooden beam.">
<COND (,ON-BEAM
<TELL " You are standing on the beam.">)>
<CRLF>)>
<RTRUE>)
(<EQUAL? ,BEAM-PLACED 2 3> ;"Case: S. Ante, wedged beam"
<COND (<EQUAL? ,BEAM-PLACED 2>
<SET STR "rocks">)
(T <SET STR "doorway">)>
<TELL
"Wedged between the " .STR ", from side to side, is the stout beam." CR>
<RTRUE>)>>
<OBJECT SCROLL
(IN FORE-CABIN)
(FLAGS TAKEBIT READBIT BURNBIT)
(DESC "papyrus scroll")
(FDESC
"Sitting on the deck is a papyrus scroll.")
(SIZE 1)
(TEXT
"This scroll was placed here for the Queen's passage to the afterlife.")
(SYNONYM SCROLL)
(ADJECTIVE PAPYRU)
(ACTION READ-SCROLL-FCN)>
<ROUTINE READ-SCROLL-FCN ()
<COND (<NOT <VERB? READ>>
<RFALSE>)>
<TELL
"The scroll reads as follows:|
|
*-> <.> <:.> ... <::.>|
|
:: : ** --->> -) (*)" CR>
<RTRUE>>
;<ROUTINE CLEAR-THE-BEAM ("AUX" F N (FLG <>) STR)
<SET F <FIRST? ,BEAM>>
<REPEAT ()
<COND (<NOT .F>
<RETURN>)
(T
<SET N .F>
<SET F <NEXT? .N>>
<COND (<AND <EQUAL? ,HERE ,MID-ANTECHAMBER>
<NOT <FSET? ,PIT ,INVISIBLE>>
<EQUAL? ,BEAM-PLACED 1>>
<REMOVE .N>
<SET STR "into the pit">)
(T
<MOVE .N ,HERE>
<SET STR "onto the floor">)>
<SET FLG T>)>>
<COND (.FLG
<TELL "Everything on the beam falls " .STR "." CR>)>>

2323
camp.zil Normal file

File diff suppressed because it is too large Load Diff

66
clock.zil Normal file
View File

@ -0,0 +1,66 @@
"CLOCK for
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<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 DEMON (RTN TICK "AUX" CINT)
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN T>> ,C-TICK .TICK>
.CINT>
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
.CINT>
<ROUTINE INT (RTN "OPTIONAL" (DEMON <>) E C INT)
#DECL ((RTN) ATOM (DEMON) <OR ATOM FALSE> (E C INT) <PRIMTYPE
VECTOR>)
<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 <>))
#DECL ((C E) <PRIMTYPE VECTOR> (TICK) FIX (FLG) <OR FALSE ATOM>)
<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>>>>

16
crufty.zil Normal file
View File

@ -0,0 +1,16 @@
"(c) Copyright 1983 Infocom, Inc. All Rights Reserved."
<ROUTINE THIS-IT? (OBJ TBL "AUX" SYNS)
<COND (<FSET? .OBJ ,INVISIBLE> <RFALSE>)
(<AND ,P-NAM
<NOT <ZMEMQ ,P-NAM
<SET SYNS <GETPT .OBJ ,P?SYNONYM>>
<- </ <PTSIZE .SYNS> 2> 1>>>>
<RFALSE>)
(<AND ,P-ADJ
<OR <NOT <SET SYNS <GETPT .OBJ ,P?ADJECTIVE>>>
<NOT <ZMEMQB ,P-ADJ .SYNS <- <PTSIZE .SYNS> 1>>>>>
<RFALSE>)
(<AND <NOT <0? ,P-GWIMBIT>> <NOT <FSET? .OBJ ,P-GWIMBIT>>>
<RFALSE>)>
<RTRUE>>

395
cube.zil Normal file
View File

@ -0,0 +1,395 @@
"CUBE for
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<ROOM LANDING-ONE
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Cube")
(LDESC
"You are in a room whose symmetry is uncanny, at least to the unaided eye: the
dimensions of the room seem to form a perfect cube. There are three square
doorways cut into the walls -- one to the north, and another to the west. A
wide staircase leads up through the square doorway to the east.")
(UP TO CHAMBER-OF-RA)
(NORTH TO NE-BEND)
(WEST TO CENTRAL-ROOM)
(EAST TO CHAMBER-OF-RA)
(GLOBAL EAST-STAIRS)
(ACTION MOVE-PANEL-HERE)>
<ROOM LANDING-THREE
(IN ROOMS)
(DESC "Cube")
(FLAGS RLANDBIT)
(LDESC
"You are in a room whose walls, floor and ceiling seem to form a perfect cube.
There are four square doorways cut into the walls -- to the north, the south,
the east and the west. Through the west doorway you can see a flight of stairs
heading up.")
(UP TO CHAMBER-OF-RA)
(WEST TO CHAMBER-OF-RA)
(NORTH TO NW-BEND)
(SOUTH TO SW-BEND)
(EAST TO CENTRAL-ROOM)
(GLOBAL WEST-STAIRS)
(ACTION MOVE-PANEL-HERE)>
<ROOM CENTRAL-ROOM
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Cube")
(LDESC
"You are in a room whose dimensions seem to measure a perfect cube. On the
floor of this room is a series of symbols, inscribed in the stone. The walls
bear strange pictures of a Queen, one of which shows her being wrapped in
linen, another one showing her being lowered into what appears to be a solid
gold sarcophagus. Four identical square doorways lead out of this chamber to
the north, south, east and west.")
(NORTH TO NORTH-CENTER)
(SOUTH TO SOUTH-CENTER)
(EAST TO LANDING-ONE)
(WEST TO LANDING-THREE)
(GLOBAL HIEROGLYPHS PICTURES)>
<ROOM NORTH-CENTER
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Cube")
(LDESC
"You are in a room in the shape of a perfect cube. There are three square
doorways cut into the walls -- one to the west, one to the east, and another
to the south.")
(EAST TO NE-BEND)
(WEST TO NW-BEND)
(SOUTH TO CENTRAL-ROOM)>
<ROOM SOUTH-CENTER
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Cube")
(LDESC
"You are in a room whose symmetry is uncanny, at least to the unaided eye: the
dimensions of the room seem to form a perfect cube. There are two square
doorways cut into the walls -- one to the north, and another to the west.
A panel, recessed into a wall, glows softly in your reflected light,
while some hieroglyphs are visible above it.")
(NORTH TO CENTRAL-ROOM)
(WEST TO SW-BEND)
(EAST TO SECRET-PASSAGE IF BRICKS-PRESSED
ELSE "You can't go that way.")
(GLOBAL HIEROGLYPHS)
(ACTION SOUTH-CENTER-F)>
<GLOBAL BRICKS-TBL
<TABLE BRICK-ONE BRICK-TWO BRICK-THREE BRICK-FOUR BRICK-FIVE
BRICK-SIX BRICK-SEVEN BRICK-EIGHT BRICK-NINE>>
<ROUTINE SOUTH-CENTER-F (RARG "AUX" (OFFS -1) BK)
<COND (<NOT <EQUAL? .RARG ,M-END>>
<RFALSE>)>
<REPEAT ()
<SET OFFS <+ .OFFS 1>>
<COND (<G? .OFFS 8>
<RFALSE>)
(T
<SET BK <GET ,BRICKS-TBL .OFFS>>
<COND (<IN? .BK ,PUNCH-PANEL>
<FSET .BK ,NDESCBIT>)>)>>>
<GLOBAL BRICKS-PRESSED <>>
<ROOM SW-BEND
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Cube")
(LDESC
"You are in a room whose symmetry is uncanny, at least to the unaided eye: the
dimensions of the room seem to form a perfect cube. There are two square
doorways cut into the walls -- one to the north, and another to the east. The
uncannily-shaped room seems to form a corner for this entire area.")
(NORTH TO LANDING-THREE)
(EAST TO SOUTH-CENTER)>
<ROOM NE-BEND
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Cube")
(LDESC
"You are in a room whose dimensions seem to form a perfect cube. There are two
square doorways cut into the walls -- one to the south, and another to the
west. This room seems to form a corner for this entire area.")
(WEST TO NORTH-CENTER)
(SOUTH TO LANDING-ONE)>
<ROOM NW-BEND
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Cube")
(LDESC
"You are in a room whose shape is that of a perfect cube. There are two square
doorways cut into the walls -- one to the south, and another to the east.")
(SOUTH TO LANDING-THREE)
(EAST TO NORTH-CENTER)>
<ROUTINE MOVE-PANEL-HERE (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<COND (<EQUAL? ,HERE ,LANDING-ONE ,LANDING-THREE ,TINY-LANDING>
<MOVE-ROPE-HERE ,M-ENTER>
<FCLEAR ,ROPE ,NDESCBIT>)>)>
<RFALSE>>
<ROOM SECRET-PASSAGE
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Turning Passage")
(LDESC
"You are in a strange, turning passageway. The floor here descends, reminding
you of a ramp Craige once told you about -- a deep entrance into the depths of
an Incan tomb. The ramp turns off toward the north. Judging from what you
remember of the cube rooms, the ramp most probably passes beneath the
ascending east staircase. Through the open doorway to the west you can still
see one of the cube rooms.")
(NORTH TO TOP-OF-STAIRS) ;"Connection to ANTE"
(WEST TO SOUTH-CENTER)
(DOWN TO TOP-OF-STAIRS)
(OUT TO SOUTH-CENTER)>
<OBJECT PUNCH-PANEL
(IN SOUTH-CENTER)
(DESC "recessed panel")
(FLAGS NDESCBIT OPENBIT CONTBIT DONTTAKE)
(SYNONYM PANEL)
(ADJECTIVE RECESS)
(CAPACITY 45)
(ACTION PUNCH-PANEL-FCN)>
<GLOBAL NUM-TBL
<TABLE "no" "one" "two" "three" "four" "five" "six" "seven" "eight"
"nine">>
<GLOBAL DASH-STR
"-----------------------------">
<GLOBAL EX-SP-EX-STR
"! !">
<ROUTINE PUNCH-PANEL-FCN ("AUX" NUM)
<COND (<AND <VERB? PUT>
<PRSI? ,PUNCH-PANEL>
<NOT <GETP ,PRSO ,P?BRICK>>>
<TELL "It won't fit in there." CR>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE READ>
<SET NUM <- 9 ,BRICKS-TAKEN>>
<TELL "There ">
<COND (<EQUAL? .NUM 1>
<TELL "is ">)
(ELSE <TELL "are ">)>
<TELL <GET ,NUM-TBL .NUM> " brick">
<COND (<NOT <EQUAL? .NUM 1>>
<TELL "s">)>
<TELL " recessed into the panel">
<COND (<EQUAL? .NUM 0 1>
<TELL "." CR>)
(ELSE <TELL
", three rows by three columns. These bricks look as if they could be easily
removed and are marked with numerical symbols." CR>)>
<CRLF>
<TELL ,DASH-STR CR>
<TELL ,EX-SP-EX-STR CR>
<TELL "! ">
<COND (<IN? ,BRICK-ONE ,PUNCH-PANEL>
<TELL "<.>">)
(T <TELL " ">)>
<TELL " ">
<COND (<IN? ,BRICK-TWO ,PUNCH-PANEL>
<TELL "<:>">)
(T <TELL " ">)>
<TELL " ">
<COND (<IN? ,BRICK-THREE ,PUNCH-PANEL>
<TELL "<:.>">)
(T <TELL " ">)>
<TELL " !" CR>
<TELL ,EX-SP-EX-STR CR>
<TELL "! ">
<COND (<IN? ,BRICK-FOUR ,PUNCH-PANEL>
<TELL "<::>">)
(T <TELL " ">)>
<TELL " ">
<COND (<IN? ,BRICK-FIVE ,PUNCH-PANEL>
<TELL "<::.>">)
(T <TELL " ">)>
<TELL " ">
<COND (<IN? ,BRICK-SIX ,PUNCH-PANEL>
<TELL "<:::>">)
(T <TELL " ">)>
<TELL " !" CR>
<TELL ,EX-SP-EX-STR CR>
<TELL "! ">
<COND (<IN? ,BRICK-SEVEN ,PUNCH-PANEL>
<TELL "<:::.>">)
(T <TELL " ">)>
<TELL " ">
<COND (<IN? ,BRICK-EIGHT ,PUNCH-PANEL>
<TELL "<::::>">)
(T <TELL" ">)>
<TELL " ">
<COND (<IN? ,BRICK-NINE ,PUNCH-PANEL>
<TELL "<::::.>">)
(T <TELL " ">)>
<TELL " !" CR>
<TELL ,EX-SP-EX-STR CR>
<TELL ,DASH-STR CR>
<RTRUE>)
(<VERB? OPEN CLOSE>
<HOW? ,PUNCH-PANEL>
<RTRUE>)>>
<OBJECT BRICK-ONE
(IN PUNCH-PANEL)
(FLAGS TAKEBIT NDESCBIT TOUCHBIT TRYTAKEBIT)
(DESC "first brick")
(SYNONYM BRICK BRICKS)
(ADJECTIVE FIRST)
(BRICK 1)
(TEXT
"<.>")
(ACTION TAKE-BRICK-FCN)>
<OBJECT BRICK-NINE
(IN PUNCH-PANEL)
(FLAGS TAKEBIT NDESCBIT TOUCHBIT TRYTAKEBIT)
(DESC "ninth brick")
(SYNONYM BRICK BRICKS)
(ADJECTIVE NINTH)
(TEXT
"<::::.>")
(BRICK 9)
(ACTION TAKE-BRICK-FCN)>
<OBJECT BRICK-EIGHT
(IN PUNCH-PANEL)
(FLAGS TAKEBIT NDESCBIT TOUCHBIT VOWELBIT TRYTAKEBIT)
(DESC "eighth brick")
(SYNONYM BRICK BRICKS)
(ADJECTIVE EIGHTH)
(TEXT
"<::::>")
(BRICK 8)
(ACTION TAKE-BRICK-FCN)>
<OBJECT BRICK-SEVEN
(IN PUNCH-PANEL)
(FLAGS TAKEBIT NDESCBIT TOUCHBIT TRYTAKEBIT)
(DESC "seventh brick")
(SYNONYM BRICK BRICKS)
(ADJECTIVE SEVENTH)
(TEXT
"<:::.>")
(BRICK 7)
(ACTION TAKE-BRICK-FCN)>
<OBJECT BRICK-SIX
(IN PUNCH-PANEL)
(FLAGS TAKEBIT NDESCBIT TOUCHBIT TRYTAKEBIT)
(DESC "sixth brick")
(SYNONYM BRICK BRICKS)
(ADJECTIVE SIXTH)
(TEXT
"<:::>")
(BRICK 6)
(ACTION TAKE-BRICK-FCN)>
<OBJECT BRICK-FIVE
(IN PUNCH-PANEL)
(FLAGS TAKEBIT NDESCBIT TOUCHBIT TRYTAKEBIT)
(DESC "fifth brick")
(SYNONYM BRICK BRICKS)
(ADJECTIVE FIFTH)
(TEXT
"<::.>")
(BRICK 5)
(ACTION TAKE-BRICK-FCN)>
<OBJECT BRICK-FOUR
(IN PUNCH-PANEL)
(FLAGS TAKEBIT NDESCBIT TOUCHBIT TRYTAKEBIT)
(DESC "fourth brick")
(SYNONYM BRICK BRICKS)
(ADJECTIVE FOURTH)
(TEXT
"<::>")
(BRICK 4)
(ACTION TAKE-BRICK-FCN)>
<OBJECT BRICK-THREE
(IN PUNCH-PANEL)
(FLAGS TAKEBIT NDESCBIT TOUCHBIT TRYTAKEBIT)
(DESC "third brick")
(SYNONYM BRICK BRICKS)
(ADJECTIVE THIRD)
(TEXT
"<:.>")
(BRICK 3)
(ACTION TAKE-BRICK-FCN)>
<OBJECT BRICK-TWO
(IN PUNCH-PANEL)
(FLAGS TAKEBIT NDESCBIT TOUCHBIT TRYTAKEBIT)
(DESC "second brick")
(SYNONYM BRICK BRICKS)
(ADJECTIVE SECOND)
(TEXT
"<:>")
(BRICK 2)
(ACTION TAKE-BRICK-FCN)>
<GLOBAL BRICKS-TAKEN 0>
<GLOBAL WRONG-BRICK <>>
<ROUTINE TAKE-BRICK-FCN ()
<COND (<AND <VERB? PUT>
<EQUAL? ,PRSI ,PUNCH-PANEL>>
<FSET ,PRSO ,NDESCBIT>
<SETG BRICKS-TAKEN <- ,BRICKS-TAKEN 1>>
<RFALSE>)
(<OR <NOT <VERB? TAKE>>
<NOT <IN? ,PRSO ,PUNCH-PANEL>>>
<RFALSE>)>
<COND (<EQUAL? <ITAKE> <>>
<RFATAL>)
(T
<COND (<AND <EQUAL? ,BRICKS-TAKEN 0>
<NOT <EQUAL? ,PRSO ,BRICK-ONE>>>
<SETG WRONG-BRICK T>)
(<AND <EQUAL? ,BRICKS-TAKEN 1>
<NOT <EQUAL? ,PRSO ,BRICK-THREE>>>
<SETG WRONG-BRICK T>)
(<AND <EQUAL? ,BRICKS-TAKEN 2>
<NOT <EQUAL? ,PRSO ,BRICK-FIVE>>>
<SETG WRONG-BRICK T>)>
<SETG BRICKS-TAKEN <+ ,BRICKS-TAKEN 1>>
<COND (<NOT <IN? ,PRSO ,PUNCH-PANEL>>
<FCLEAR ,PRSO ,NDESCBIT>)>
<COND (<AND <EQUAL? ,BRICKS-TAKEN 3>
<NOT ,BRICKS-PRESSED>
<NOT ,WRONG-BRICK>>
<TELL
"As soon as you grasp this brick a square doorway swings open. You leap back,
unsure of what might happen, but quickly realize you've discovered a hidden
passageway, making eastern movement from this cube room possible." CR>
<SETG BRICKS-PRESSED T>
<SETG SCORE <+ ,SCORE 25>>
<PUTP ,SOUTH-CENTER ,P?LDESC
"You are in a cubical-room whose walls, floor and ceiling are of an
identical size. There are three square doorways cut into the walls --
to the north, to the west, and a newly opened one to the east. Engraved
on a wall are some hieroglyphs, while a panel, recessed in the same wall,
glows softly in your reflected light.">
<RTRUE>)
(T
<TELL "Taken." CR>
<RTRUE>)>)>>

448
diamond.zil Normal file
View File

@ -0,0 +1,448 @@
"DIAMOND for
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
;"DIAMOND AREA"
<ROOM ROOM-OF-NEPHTHYS
(IN ROOMS)
(DESC "Room of Nephthys")
(FLAGS RLANDBIT)
(LDESC
"You have entered the room of the protective goddess Nephthys. The walls here
are cut from pink granite, elaborately decorated with bright red carnelian and
pale yellow feldspar. Along the northeast wall are panels of beaten gold, and
midway up this wall, under the winged symbol of Nephthys, you can see some
hieroglyphs. To the southeast, an opening has been cut in the thick granite
wall.")
(SE TO A-PRIME)
(OUT TO A-PRIME)
(GLOBAL HIEROGLYPHS DOORWAY PICTURE-PANELS GEMS-2)
(ACTION SCORE-RMS)>
<OBJECT NEPHTH-JEWEL
(IN ROOM-OF-NEPHTHYS)
(FLAGS TAKEBIT)
(DESC "diamond cluster")
(VALUE 5)
(SIZE 2)
(FDESC
"A large diamond cluster, glittering in your light, sits on the floor directly
under the hieroglyphs.")
(SYNONYM CLUSTE)
(MAP 2)
(ADJECTIVE DIAMON)>
<OBJECT HERRING-JEWEL
(IN LANDING-ZERO)
(FLAGS TAKEBIT)
(DESC "golden cluster")
(SIZE 2)
(FDESC
"A large golden cluster sits on the floor.")
(SYNONYM CLUSTE)
(MAP 2)
(ADJECTIVE GOLDEN GOLD)>
<OBJECT SELKIS-JEWEL
(IN ROOM-OF-SELKIS)
(FLAGS TAKEBIT)
(VALUE 5)
(SIZE 2)
(DESC "ruby cluster")
(FDESC
"A beautiful ruby cluster, sparkling like fire, sits on the floor.")
(MAP 2)
(SYNONYM CLUSTE)
(ADJECTIVE RUBY)>
<OBJECT ISIS-JEWEL
(IN ROOM-OF-ISIS)
(FLAGS TAKEBIT VOWELBIT)
(VALUE 5)
(SIZE 2)
(DESC "emerald cluster")
(FDESC
"Lying on the ground is a brilliant, glowing emerald cluster.")
(MAP 2)
(SYNONYM CLUSTE)
(ADJECTIVE EMERAL)>
<OBJECT NEITH-JEWEL
(IN ROOM-OF-NEITH)
(FLAGS TAKEBIT VOWELBIT)
(DESC "opal cluster")
(FDESC
"An opal cluster, glistening with the light of a thousand fires, lies on the
floor.")
(SYNONYM CLUSTE)
(ADJECTIVE OPAL)
(VALUE 5)
(MAP 2)
(SIZE 2)>
<ROOM ROOM-OF-SELKIS
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Room of Selkis")
(LDESC
"You are standing in a small room, that of the protective goddess Selkis.
There are red, blue and green patterns on the walls formed from small glazed
tiles that have been carefully arranged in order of shade. The darkest tiles
border the floor, and become lightest near the ceiling. On one wall,
inscribed in a beaten gold panel, is the symbol of Selkis, under which you can
see some hieroglyphic text. An opening through the southwest wall leads out
of this room.")
(SW TO B-PRIME)
(OUT TO B-PRIME)
(GLOBAL HIEROGLYPHS DOORWAY GEMS-2 PICTURE-PANELS)
(ACTION SCORE-RMS)>
<OBJECT TWINKLERS
(IN ROOM-OF-ISIS)
(FLAGS NDESCBIT DONTTAKE)
(DESC "quartz")
(SYNONYM LIGHTS QUARTZ CHIPS PATTER)
(ADJECTIVE THOUSA TINY)
(TEXT
"They twinkle in the light, making beautiful patterns.")>
<ROOM ROOM-OF-ISIS
(IN ROOMS)
(DESC "Room of Isis")
(FLAGS RLANDBIT)
(LDESC
"This is the room of the protective goddess Isis. You stand in amazement
in the center of the room as thousands of tiny lights twinkle around you.
With great surprise you realize that the light from your torch is being
reflected by the mirror-like surfaces of innumerable quartzite chips.
These are set artfully into red clay panels in the walls, and are surrounded
by shiny red jasper fragments. On the southwest wall, under the winged symbol
of Isis, some hieroglyphic text is inscribed in a gold panel. To the northeast
is an arched opening, and, looking through it, you can barely make out a
hallway.")
(NE TO D-PRIME)
(OUT TO D-PRIME)
(GLOBAL HIEROGLYPHS PICTURE-PANELS GEMS DOORWAY)
(ACTION SCORE-RMS)>
<ROOM ROOM-OF-NEITH
(IN ROOMS)
(DESC "Room of Neith")
(FLAGS RLANDBIT)
(LDESC
"You are standing in the room of the protective goddess Neith. This room
seems dark and mysterious with its decorations of inky-blue lapis lazuli
and jet-black obsidian. Gold scrollwork defines an area on one of the
walls, in the center of which is the symbol of Neith. Below this you can
see some hieroglyphs etched into a beaten gold panel. There is a door in
the northwest wall leading out of the room.")
(NW TO E-PRIME)
(OUT TO E-PRIME)
(GLOBAL HIEROGLYPHS PICTURE-PANELS PICTURES GEMS)
(ACTION SCORE-RMS)>
<OBJECT GEMS
(IN LOCAL-GLOBALS)
(DESC "gem")
(FLAGS NDESCBIT)
(SYNONYM LAZULI OBSIDI JASPER GEMS)
(ADJECTIVE LAPIS RED INKY- BLUE JET-B)
(TEXT
"The gems are quite remarkable, forming a delicate piece of art. To remove
any of them would be beyond thinking. Even for you.")>
<OBJECT GEMS-2
(IN LOCAL-GLOBALS)
(DESC "tile")
(FLAGS NDESCBIT)
(SYNONYM CARNEL FELDSP GEMS TILES)
(ADJECTIVE RED YELLOW BLUE GREEN BRIGHT)
(TEXT
"They are quite remarkable, forming a delicate piece of art. To remove
any of them would be beyond thinking. Even for you.")>
<ROUTINE SCORE-RMS (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<NOT <FSET? ,HERE ,TOUCHBIT>>>
<SETG SCORE <+ ,SCORE 25>>)>
<RFALSE>>
<ROOM LANDING-ZERO
(IN ROOMS)
(DESC "Circular Room")
(LDESC
"You are in a strange, round room which sits in the center of four hallways.
These hallways lead off to the northeast, southeast, southwest and northwest
like the spokes of a wheel. Above your head is a long tunnel which stretches up
and out of sight.")
(FLAGS RLANDBIT)
(NW TO A-PRIME)
(NE TO B-PRIME)
(SW TO D-PRIME)
(SE TO E-PRIME)
(UP TO CHAMBER-OF-RA IF ROPE-TIED ELSE
"There's no way to get back up there.")
(ACTION CIRCULAR-ROOM-FCN)>
<ROUTINE LOOK-DOWN-HALLS ()
<TELL "As you peer down the dimly-lit hallways, you ">
<COND (<NOT <STATUE-OPPOSITE?>>
<TELL "see that the doors in all four hallways are
balanced halfway open." CR>)
(ELSE
<TELL "notice that the door to the ">
<TELL ,HALL-DIR>
<TELL
" is closed, while the one in the opposite hallway is all the way open. The
other two are halfway open." CR>)>
<FSET ,ROPE ,NDESCBIT>>
<GLOBAL CIRCLE-SCORED <>>
<ROUTINE CIRCULAR-ROOM-FCN (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<MOVE ,ROPE ,HERE>
<FCLEAR ,ROPE ,NDESCBIT>
<REMOVE ,ISIS-DOOR>
<REMOVE ,NEPHTH-DOOR>
<REMOVE ,NEITH-DOOR>
<REMOVE ,SELKIS-DOOR>
<COND (<NOT ,CIRCLE-SCORED>
<SETG SCORE <+ ,SCORE 30>>
<SETG CIRCLE-SCORED T>)>
<COND (<AND <NOT ,VERBOSE>
<FSET? ,HERE ,TOUCHBIT>>
<LOOK-DOWN-HALLS>
<CRLF>)>)
(<EQUAL? .RARG ,M-LOOK>
<FCLEAR ,ROPE ,NDESCBIT>
<TELL <GETP ,LANDING-ZERO ,P?LDESC> CR>
<DESCRIBE-ROPE-FCN ,M-OBJDESC>
<LOOK-DOWN-HALLS>)>>
<OBJECT HUGE-STATUE
(IN LANDING-ZERO)
(DESC "large statue")
(FDESC
"Sitting in the middle of the floor is a large statue, about two feet shorter
than you. It reminds you a little of Miss Ellingsworth.")
(FLAGS TAKEBIT TRYTAKEBIT)
(SIZE 281)
(SYNONYM STATUE)
(ADJECTIVE HUGE)
(ACTION HUGE-STATUE-FCN)
(TEXT
"It is carved out of dark gray basalt and its features resemble a woman at the
height of her beauty, most probably the ancient Queen. The statue itself must
weigh more than you do.")>
<OBJECT HEAD
(IN HUGE-STATUE)
(FLAGS INVISIBLE TAKEBIT)
(DESC "broken head")
(SYNONYM HEAD)
(SIZE 20)
(ADJECTIVE BROKEN)
(TEXT
"This head was once part of the magnificent statue of the Queen.")
(ACTION HEAD-FCN)>
<ROUTINE HEAD-FCN ()
<COND (<VERB? RAISE>
<PERFORM ,V?TAKE ,PRSO>
<RTRUE>)
(<VERB? SHAKE>
<TELL "It's as empty as yours." CR>
<RTRUE>)
(<VERB? CLIMB-ON>
<TELL "Next you'll be asking for tumbling lessons." CR>
<RTRUE>)>>
<ROUTINE HUGE-STATUE-FCN ()
<COND (<AND <VERB? MOVE TAKE PUSH PUSH-TO>
<FSET? ,HEAD ,INVISIBLE>>
<TELL
"The statue teeters, swaying and rocking back and forth, then falls over,
its top-heavy structure striking the floor with a dull, loud thud. As you
look over the damage, you see the head has separated from the statue." CR>
<MOVE ,HEAD ,HERE>
<FCLEAR ,HEAD ,INVISIBLE>
<FSET ,HUGE-STATUE ,TOUCHBIT>
<RTRUE>)
(<VERB? TAKE RAISE>
<TELL "It's far too heavy." CR>
<RTRUE>)
(<VERB? PUSH RAISE MOVE>
<TELL
"The statue rocks over and back on its back. Looks like it's headed nowhere
fast." CR>
<RTRUE>)
(<VERB? MUNG>
<COND (<FSET? ,HEAD ,INVISIBLE>
<PERFORM ,V?PUSH ,HUGE-STATUE>
<RTRUE>)
(T
<TELL
"Haven't you done enough damage to that beautiful relic?" CR>)>)
(<VERB? EXAMINE>
<COND (<FSET? ,HEAD ,INVISIBLE>
<RFALSE>)
(T
<TELL
"The statue lies on the floor, its head broken off. In this state, the statue
weighs a little less than you but it's still far too heavy to carry." CR>
<RTRUE>)>)>>
<ROOM A-PRIME
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Northwest Hallway")
(LDESC
"You are standing in the middle of the Northwest Hallway. The walls here are
smooth and undecorated, carved out of granite. The hallway continues to the
northwest and to the southeast.")
(SE TO LANDING-ZERO)
(NW TO ROOM-OF-NEPHTHYS IF NEPHTH-DOOR IS OPEN ELSE
"There's no way to get through the stone door.")
(ACTION CLOSE-DEM-DOOAHS)>
<OBJECT NEPHTH-DOOR
(IN A-PRIME)
(FLAGS DOORBIT NDESCBIT)
(DESC "stone door")
(SYNONYM DOOR)
(ADJECTIVE STONE)
(ACTION STONE-DOOR-FCN)>
<ROUTINE STONE-DOOR-FCN ()
<COND (<VERB? OPEN RAISE>
<TELL "You can't. It's got to weigh 50 tons." CR>
<RTRUE>)>>
<ROOM B-PRIME
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Northeast Hallway")
(LDESC
"You are standing midway down the long Northeast Hallway. The high walls
are undecorated, but bear the marks of the stonecarver's tool. The hallway
continues to the northeast and the southwest.")
(SW TO LANDING-ZERO)
(NE TO ROOM-OF-SELKIS IF SELKIS-DOOR IS OPEN ELSE
"There's no way to get through the stone door.")
(ACTION CLOSE-DEM-DOOAHS)>
<OBJECT SELKIS-DOOR
(FLAGS DOORBIT NDESCBIT)
(DESC "stone door")
(SYNONYM DOOR)
(ADJECTIVE STONE)
(ACTION STONE-DOOR-FCN)>
<ROOM D-PRIME
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Southwest Hallway")
(LDESC
"You are midway down the Southwest Hallway. The walls of this narrow passage
are unadorned and smooth. The hallway continues to the southwest and the
northeast.")
(NE TO LANDING-ZERO)
(SW TO ROOM-OF-ISIS IF ISIS-DOOR IS OPEN ELSE
"There's no way to get through the stone door.")
(ACTION CLOSE-DEM-DOOAHS)>
<OBJECT ISIS-DOOR
(FLAGS DOORBIT NDESCBIT)
(DESC "stone door")
(SYNONYM DOOR)
(ADJECTIVE STONE)
(ACTION STONE-DOOR-FCN)>
<ROOM E-PRIME
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Southeast Hallway")
(LDESC
"You are midway down the Southeast Hallway. This corridor is undecorated and
the walls are polished to a smooth lustre. The hallway continues to the
southeast and the northwest.")
(NW TO LANDING-ZERO)
(SE TO ROOM-OF-NEITH IF NEITH-DOOR IS OPEN ELSE
"There's no way to get through the stone door.")
(ACTION CLOSE-DEM-DOOAHS)>
<OBJECT NEITH-DOOR
(FLAGS DOORBIT NDESCBIT)
(DESC "stone door")
(SYNONYM DOOR)
(ADJECTIVE STONE)
(ACTION STONE-DOOR-FCN)>
<GLOBAL HALL-DIR <>>
<GLOBAL STATUE-CHK-TBL ;"starts @ 0, inc by 3"
<TABLE A-PRIME E-PRIME "southeast"
E-PRIME A-PRIME "northwest"
B-PRIME D-PRIME "southwest"
D-PRIME B-PRIME "northeast">>
<ROUTINE STATUE-OPPOSITE? ("AUX" (OFFS -3) H-CHK T-CHK (FLG <>))
<REPEAT ()
<SET OFFS <+ .OFFS 3>>
<COND (<G? .OFFS 9>
<RETURN>)
(T
<SET H-CHK <GET ,STATUE-CHK-TBL .OFFS>>
<SET T-CHK <GET ,STATUE-CHK-TBL <+ .OFFS 1>>>
<COND (<AND <EQUAL? ,HERE .H-CHK ,LANDING-ZERO>
<G? <WEIGHT .T-CHK> 300>>
<SET FLG T>
<SETG HALL-DIR <GET ,STATUE-CHK-TBL
<+ .OFFS 2>>>)>)>>
<RETURN .FLG>>
<GLOBAL KLUDGE-FLG <>>
<ROUTINE CLOSE-DEM-DOOAHS (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<SET KLUDGE-FLG <>>
<COND (<STATUE-OPPOSITE?>
<COND (<EQUAL? ,HERE ,A-PRIME>
<FSET ,NEPHTH-DOOR ,OPENBIT>)
(<EQUAL? ,HERE ,B-PRIME>
<FSET ,SELKIS-DOOR ,OPENBIT>)
(<EQUAL? ,HERE ,D-PRIME>
<FSET ,ISIS-DOOR ,OPENBIT>)
(ELSE
<FSET ,NEITH-DOOR ,OPENBIT>)>)
(<G? <WEIGHT ,HERE> 300>
<RFALSE>)
(T <TELL
"As you enter the corridor, a huge stone door begins to slide down from the
ceiling closing off any further progress. The closer you come to the door, the
further down the door descends until, eventually, it is close to the floor.
When you turn around, you can barely see beyond the Circular Room where an
identical door has risen off the floor an equal amount." CR>
<CRLF>
<COND (<EQUAL? ,HERE ,A-PRIME ,E-PRIME>
<MOVE ,NEPHTH-DOOR ,A-PRIME>
<FCLEAR ,NEPHTH-DOOR ,OPENBIT>
<MOVE ,NEITH-DOOR ,E-PRIME>
<FCLEAR ,NEITH-DOOR ,OPENBIT>)
(<EQUAL? ,HERE ,B-PRIME ,D-PRIME>
<MOVE ,SELKIS-DOOR ,B-PRIME>
<MOVE ,ISIS-DOOR ,D-PRIME>
<FCLEAR ,SELKIS-DOOR ,OPENBIT>
<FCLEAR ,ISIS-DOOR ,OPENBIT>)>
<SET KLUDGE-FLG T>)>)
(<AND <EQUAL? .RARG ,M-END>
<STATUE-OPPOSITE?>
<NOT ,KLUDGE-FLG>>
<TELL
"The path before you remains open, the stone door having risen to the ceiling,
counterbalanced by the door in the opposite corridor." CR>
<SET KLUDGE-FLG T>
<RTRUE>)>>

878
globals.zil Normal file
View File

@ -0,0 +1,878 @@
"GLOBALS for
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<DIRECTIONS NORTH EAST WEST SOUTH UP DOWN IN OUT SE SW NE NW>
"SUBTITLE GLOBAL OBJECTS"
<OBJECT GLOBAL-OBJECTS
(FLAGS RMUNGBIT INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT
VOWELBIT OPENBIT SEARCHBIT TRANSBIT WEARBIT ONBIT)>
<OBJECT LOCAL-GLOBALS
(IN GLOBAL-OBJECTS)
(SYNONYM ZZMGCK)
(DESCFCN 0)
(GLOBAL GLOBAL-OBJECTS)
(PSEUDO "FOOBAR" V-WAIT)
(CONTFCN 0)
(SIZE 0)>
;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
<OBJECT ROOMS>
<OBJECT BASIE
(IN GLOBAL-OBJECTS)
(SYNONYM BASIE)
(DESC "Basie")>
<OBJECT PETROL
(IN GLOBAL-OBJECTS)
(SYNONYM GASOLI PETROL)
(DESC "gasoline")>
<OBJECT FOO-TOOL
(IN GLOBAL-OBJECTS)
(SYNONYM HAMMER CROWBA EXPLOS MACHET)
(DESC "such thing")>
<OBJECT DRACULA
(IN GLOBAL-OBJECTS)
(SYNONYM DRACULA)
(DESC "Dracula")>
<OBJECT FINGER
(IN GLOBAL-OBJECTS)
(FLAGS SURFACEBIT OPENBIT CONTBIT TOUCHBIT)
(CAPACITY 1)
(SYNONYM FINGER)
(DESC "finger")
(ACTION FINGER-FCN)>
<ROUTINE FINGER-FCN ()
<COND (<AND <VERB? PUT-ON>
<PRSI? ,FINGER>>
<PERFORM ,V?WEAR ,PRSO>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<COND (<FSET? ,RING ,WEARBIT>
<TELL "Sitting on your finger is a ring." CR>
<RTRUE>)
(T
<TELL "It's part of your hands." CR>
<RTRUE>)>)>>
<OBJECT BLESSINGS
(IN GLOBAL-OBJECTS)
(SYNONYM BLESSI)
(DESC "blessings")>
<OBJECT INTNUM
(IN GLOBAL-OBJECTS)
(SYNONYM INTNUM)
(DESC "number")>
<OBJECT INTDIR
(IN GLOBAL-OBJECTS)
(SYNONYM INTDIR)
(ADJECTIVE NORTH EAST SOUTH WEST NE NW SE SW)
(FLAGS TOOLBIT)
(DESC "direction")>
<OBJECT PSEUDO-OBJECT
(DESC "pseudo")
(ACTION CRETIN)>
<OBJECT IT ;"was IT"
(IN GLOBAL-OBJECTS)
(SYNONYM IT THAT)
(DESC "random object")
(FLAGS NDESCBIT TOUCHBIT)>
<OBJECT AIR
(IN GLOBAL-OBJECTS)
(DESC "air")
(FLAGS VOWELBIT CONTBIT OPENBIT)
(SYNONYM AIR OXYGEN SKY)
(TEXT
"The air is as clear as any Egyptian air can be.")
(ACTION AIR-FCN)>
<ROUTINE AIR-FCN ()
<COND (<VERB? EXAMINE SMELL TASTE>
<COND (<GETP ,HERE ,P?MAP>
<RFALSE>)
(T
<TELL "It's stale and musty" CR>
<RTRUE>)>)
(<VERB? OPEN CLOSE>
<TELL "I think you're an air head." CR>)
(<AND <PRSI? AIR>
<VERB? EXAMINE LOOK-INSIDE>>
<PERFORM ,V?LOOK-UP>
<RTRUE>)
(<AND <EQUAL? ,PRSI ,AIR>
<VERB? THROW DROP>>
<PERFORM ,PRSA ,PRSO ,GROUND>
<RTRUE>)
(<AND <VERB? WAVE>
<PRSO? ,AIR>>
<TELL "Don't expect me to tell you the sky waves back." CR>
<RTRUE>)>>
<OBJECT GROUND ;"was GROUND"
(IN GLOBAL-OBJECTS)
(SYNONYM FLOOR GROUND)
(DESC "floor")
(ACTION READ-FLOOR-F)>
<ROUTINE READ-FLOOR-F ()
<COND (<AND <VERB? EXAMINE READ>
<EQUAL? ,HERE ,CENTRAL-ROOM>>
<PERFORM ,V?READ ,HIEROGLYPHS>
<RTRUE>)>>
<OBJECT CRACK
(IN GLOBAL-OBJECTS)
(FLAGS NDESCBIT CONTBIT OPENBIT)
(DESC "crack")
(SYNONYM CRACK)
(TEXT
"It's just a crack in the floor where the stones meet.")
(ACTION CRACK-FCN)>
<ROUTINE CRACK-FCN ()
<COND (<OR <GETP ,HERE ,P?MAP>
<EQUAL? <GETP ,HERE ,P?ACTION> ,BURN-THE-BARGE>
<AND <EQUAL? ,HERE ,WEST-END-OF-PASSAGE>
<NOT <FSET? ,PIT ,INVISIBLE>>>>
<TELL "I see no crack here." CR>
<RTRUE>)
(<VERB? OPEN CLOSE>
<HOW? ,PRSO>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<TELL
"Get real. There's nothing worth looking at in there." CR>
<RTRUE>)>>
<OBJECT SAND
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT)
(DESC "sand")
(SYNONYM DESERT SAND GROUND)>
<OBJECT HOLE
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT)
(DESC "hole")
(SYNONYM HOLE)
(ADJECTIVE SMALL ENLARG SIZABL KNEE- DEEP)
(ACTION HOLE-FCN)>
<ROUTINE HOLE-FCN ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<COND (<AND <EQUAL? ,HERE ,P8>
<IN? ,PYRAMID ,HERE>>
<TELL
"You can see the block and the opening in there." CR>)
(<G? <GETP ,HERE ,P?CAPACITY> 0>
<TELL "Never mind that -- Here's a better
problem: You dig a hole 52 feet by 20 feet by .105 yards. It takes you 5
hours, 11 minutes and 2 seconds. You sweat off thirty grams of water
per hour. And your best friend just ran off with the rent money. Now:
How much sand is in the hole you dug?" CR>)
(T
<TELL "I don't see any hole here." CR>)>)
(<VERB? FIND>
<COND (<GETP ,HERE ,P?CAPACITY>
<TELL "It's right here." CR>
<RTRUE>)>)
(<AND <EQUAL? ,PRSI ,HOLE>
<VERB? PUT>
<GETP ,HERE ,P?CAPACITY>>
<TELL
"It's just a hole in the sand from your excavation attempts. There's no need to
put anything into it." CR>)>>
<OBJECT PEN-PENCIL
(IN GLOBAL-OBJECTS)
(DESC "writing implement")
(SYNONYM PEN PENCIL)>
<OBJECT STONES
(IN GLOBAL-OBJECTS)
(SYNONYM STONES BLOCKS)
(DESC "stones")>
<OBJECT KEY
(IN GLOBALS)
(FLAGS NDESCBIT)
(DESC "key")
(SYNONYM KEY)
(ADJECTIVE TRUNK)>
<OBJECT BULKHEADS
(IN GLOBAL-OBJECTS)
(FLAGS NDESCBIT TOUCHBIT)
(DESC "bulkhead")
(SYNONYM BULKHE)>
<OBJECT WALLS
(IN GLOBAL-OBJECTS)
(FLAGS NDESCBIT TOUCHBIT)
(DESC "wall")
(SYNONYM WALL WALLS)
(ADJECTIVE STONE)
(ACTION WALL-FCN)>
<ROUTINE WALL-FCN ("AUX" RMG RMGL)
<COND (<AND <EQUAL? ,HERE ,STAIRS-BOTTOM>
<VERB? EXAMINE READ>>
<COND (<IN? ,PLASTER1 ,STAIRS-BOTTOM>
<PERFORM ,V?EXAMINE ,PLASTER1>
<RTRUE>)
(T <TELL "I see nothing special about the wall." CR>
<RTRUE>)>)
(<VERB? EXAMINE READ>
<COND (<AND <GLOBAL-IN? ,HIEROGLYPHS ,HERE>
<NOT <EQUAL? ,HERE ,CENTRAL-ROOM>>>
<PERFORM ,V?READ ,HIEROGLYPHS>
<RTRUE>)
(ELSE
<RFALSE>)>)>>
<OBJECT CEILING
(IN GLOBAL-OBJECTS)
(FLAGS NDESCBIT TOUCHBIT)
(DESC "ceiling")
(SYNONYM CEILIN)>
<OBJECT HANDS ;"was HANDS"
(IN GLOBAL-OBJECTS)
(SYNONYM HANDS)
(DESC "empty hands")
(FLAGS NDESCBIT TOOLBIT TOUCHBIT VOWELBIT)
(ACTION READ-PALMS-F)>
<ROUTINE READ-PALMS-F ()
<COND (<VERB? READ>
<TELL "I don't read palms." CR>
<RTRUE>)>>
<OBJECT ADVENTURER
(IN TOP-OF-STAIRWAY)
(SYNONYM PLAYER ADVENT CRETIN)
(DESC "cretin")
(FLAGS ACTORBIT NDESCBIT INVISIBLE)>
<OBJECT ME
(IN GLOBAL-OBJECTS)
(SYNONYM ME MYSELF SELF BACK)
(DESC "you")
(FLAGS ACTORBIT)
(ACTION CRETIN)>
<ROUTINE CRETIN ()
<COND (<NOT <EQUAL? ,PRSO ,WINNER ,ME>>
<RFALSE>)>
<COND (<VERB? EAT>
<TELL
"I've heard of biting one's knuckles, chewing one's fingernails, but don't you
think that's a little extreme?" CR>)
(<VERB? DRINK>
<TELL
"Find me a blender, jump in it, and once you're liquified, we'll talk." CR>)
(<VERB? ALARM>
<TELL
"Good morning!" CR>)
(<VERB? MUNG ATTACK KILL>
<TELL
"Hey, I know just how you feel. And I'm sure you think you deserve it -- I've
been there myself. But take heart -- let nature take care of you. I'm sure it
will, in time." CR>)
(<VERB? PRAY>
<TELL "Save yourself. Don't look to me, man." CR>)
(<VERB? FIND>
<TELL "Take a course in Zen." CR>)
(<VERB? TAKE>
<TELL "Auto-eroticism is not the answer." CR>)
(<VERB? BURN>
<TELL "Come on. Don't you have enough troubles?" CR>)
(<VERB? EXAMINE LOOK-INSIDE THROW>
<TELL
"Hmmm. How do you propose I accomplish that? (And they told me in AI school
the intelligent creatures were on the other side of the keyboard!)" CR>)
(<VERB? RUB>
<TELL
"Go rub yourself. You're starting to rub me the wrong way." CR>)
(<VERB? PLAY>
<TELL "Who do you think you're playing around with?" CR>)
(<VERB? CLIMB-ON BOARD>
<TELL "I'll get on your case is what I'll do, turkey." CR>)
(<VERB? CLEAN>
<TELL "Take a bath. Leave me out of this." CR>)
(<VERB? CLOSE>
<TELL "Better yet, close your mouth." CR>)
(<VERB? CROSS>
<TELL "Crossed and double-crossed, sucker." CR>)
(<VERB? DISEMBARK>
<TELL "What makes you think you deserve it?" CR>)
(<VERB? DROP>
<TELL "Like a hot potato." CR>)
(<VERB? LEAN-ON OPEN>
<TELL "I think you've got enough troubles." CR>)
(<VERB? FOLLOW>
<TELL "What makes you think you know where you're going?" CR>)
(<VERB? LISTEN>
<TELL "Do I have a choice?" CR>)
(<VERB? SEARCH>
<TELL "Okay. I found one empty head but a strong heart." CR>)
(<VERB? MAKE>
<TELL "I doubt anyone could make you do anything with that attitude." CR>)
(<VERB? SHAKE>
<TELL "Shake, rattle and roll." CR>)
(<VERB? SMELL>
<TELL "Phew! When was the last time you bathed?" CR>)
(<VERB? SQUEEZE>
<TELL "Like a python, eh?" CR>)
(<VERB? THROW>
<TELL "For a loop?" CR>)
(<VERB? WEAR>
<TELL "How many layers of skin does one human need?" CR>)
(ELSE
<RFALSE>)>
<RTRUE>>
<OBJECT DOORWAY
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT CONTBIT OPENBIT)
(DESC "doorway")
(SYNONYM DOORWAY OPENIN)
(ADJECTIVE ARCHED TIMBER)
(ACTION DOORWAY-FCN)>
<ROUTINE DOORWAY-FCN ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<COND (<AND <EQUAL? ,HERE ,NORTH-ANTECHAMBER ,BURIAL-CHAMBER>
<EQUAL? ,BEAM-PLACED 4>>
<TELL
"The mast is in the doorway, running from top to bottom." CR>
<RTRUE>)
(<AND <EQUAL? ,HERE ,SOUTH-ANTECHAMBER ,ANNEX>
<EQUAL? ,BEAM-PLACED 2 3>>
<TELL
"The beam is wedged in the doorway from side to side." CR>
<RTRUE>)>)>>
<OBJECT PICTURE-PANELS
(IN LOCAL-GLOBALS)
(DESC "panel")
(FLAGS NDESCBIT)
(SYNONYM PANEL PANELS)
(ADJECTIVE GOLD RED CLAY BEATEN)
(ACTION PANEL-ON-WALL-FCN)>
<ROUTINE PANEL-ON-WALL-FCN ()
<COND (<VERB? EXAMINE READ>
<TELL
"The panels are beautiful pieces of art, to be appreciated by the Queen on her
journey through the Netherworld." CR>
<COND (<GLOBAL-IN? ,HIEROGLYPHS ,HERE>
<PERFORM ,V?READ ,HIEROGLYPHS>
<RTRUE>)>
<RTRUE>)>>
<OBJECT STAIRS
(IN LOCAL-GLOBALS)
(SYNONYM STAIRS STEPS LADDER STAIRWAY)
(DESC "stairs")
(FLAGS NDESCBIT CLIMBBIT TOUCHBIT)
(ACTION DESC-STAIRS-F)>
<ROUTINE DESC-STAIRS-F ()
<COND (<AND <VERB? EXAMINE>
<EQUAL? ,HERE ,AFT-CABIN ,BELOW-DECK>>
<TELL "The ladder is made of wood, and it looks fairly sturdy."
CR>
<RTRUE>)>>
<OBJECT PARACHUTE
(IN GLOBAL-OBJECTS)
(SYNONYM PARACH CHUTE)
(DESC "parachute")
(ACTION GOOD-LUCK-FCN)>
<OBJECT PLANE
(IN GLOBAL-OBJECTS)
(DESC "airplane")
(SYNONYM PLANE AIRPLA PILOT)
(TEXT
"Its a small, one-engine plane, similar in shape to the old Piper Cubs.")
(ACTION PLANE-FCN)>
<ROUTINE PLANE-FCN ()
<COND (<VERB? WAVE>
<COND (<AND <L? ,MOVES 8>
<NOT <IN-A-TENT?>>>
<TELL "The plane dips its wings in salute." CR>)
(<L? ,MOVES 8>
<TELL
"You wave at the plane through the top of the tent. Somehow, I doubt it
noticed." CR>)
(T
<TELL "The plane's returned to its home base." CR>)>)
(<VERB? FIND>
<COND (<G? ,MOVES 8>
<TELL "I suppose it's up in the air, somewhere." CR>)
(T
<TELL "It's somewhere up over your head." CR>)>)
(<VERB? EXAMINE>
<COND (<AND <NOT <IN-A-TENT?>>
<L? ,MOVES 8>>
<RFALSE>)
(<L? ,MOVES 8>
<TELL
"All I can tell you about it is that it's out there." CR>)
(T
<TELL "The plane's far gone, amigo." CR>)>)
(<AND <VERB? LISTEN>
<L? ,MOVES 9>>
<TELL "RRRRRRRrrrrrrr r r r r r r r r." CR>
<RTRUE>)
(T
<COND (<G? ,MOVES 8>
<TELL "What plane? It's gone!" CR>)
(T
<TELL
"Leave the plane alone. It's not bothering you." CR>)>
<RTRUE>)>>
<ROUTINE GOOD-LUCK-FCN ()
<COND (<VERB? FIND>
<COND (<L? ,MOVES 8>
<TELL "Look up!" CR>)
(T
<TELL
"It's gone with the wind, never to be seen again." CR>)>)
(<VERB? EXAMINE>
<COND (<AND <G? ,MOVES 4>
<L? ,MOVES 8>>
<TELL "It's white." CR>)
(<L? ,MOVES 5>
<TELL "What parachute?" CR>)
(T
<TELL
"The most I can tell you is that it was white." CR>)>)
(<VERB? STAND-UNDER>
<RFALSE>)
(T
<COND (<G? ,MOVES 7>
<TELL
"Forget the chute, amigo. It's history. And if you don't get on with this, you
will be too." CR>)
(T
<TELL "Leave the parachute alone." CR>)>
<RTRUE>)>>
<OBJECT SIP
(IN GLOBAL-OBJECTS)
(FLAGS TAKEBIT)
(DESC "sip of water")
(SYNONYM SIP)
(ACTION SIP-FCN)>
<ROUTINE SIP-FCN ()
<COND (<AND <EQUAL? ,PRSO ,SIP>
<VERB? TAKE>>
<COND (<OR <NOT ,PRSI>
<PRSI? ,WATER>>
<PERFORM ,V?DRINK ,WATER>
<RTRUE>)
(<EQUAL? ,PRSI ,LIQUID>
<PERFORM ,V?DRINK ,LIQUID>)
(ELSE
<TELL "No, I don't think I quite understand." CR>)>)
(ELSE
<TELL "Now that's an interesting thought." CR>)>>
;"GLOBAL VARIABLES"
<GLOBAL HERE <>>
<GLOBAL LOAD-ALLOWED 100>
<GLOBAL LOAD-MAX 0>
<GLOBAL LIT T>
<GLOBAL MOVES 0>
<GLOBAL SCORE 0>
<GLOBAL INDENTS
<TABLE ""
" "
" "
" "
" "
" ">>
;"******************************************
Here come the globals
********************************************"
<GLOBAL STATUE-TBL
<TABLE ISIS NEPHTHYS NEITH SELKIS>>
<GLOBAL STATUE-NAME-TBL
<TABLE "Isis" "Nephthys" "Neith" "Selkis">>
<GLOBAL ORDER-LTBL
<LTABLE NEITH SELKIS ISIS NEPHTHYS>>
<GLOBAL TURNED-LTBL
<LTABLE <> <> <> <>>>
<GLOBAL DOWN-LTBL
<LTABLE LANDING-ZERO LANDING-ONE LANDING-TWO LANDING-THREE>>
<GLOBAL SOMETHING-DROPPED <>>
<GLOBAL WHAT-WAS-DROPPED <>>
<GLOBAL ROPE-PLACED <>>
;<GLOBAL ROPE-LANDING <>>
<GLOBAL ROPE-TIED <>>
<GLOBAL MATCH-COUNT 20>
<GLOBAL SCARAB-SET <>>
<GLOBAL OIL-SOAKED <>>
<GLOBAL OILED-TORCH <>>
<GLOBAL OIL-LEFT 100>
<GLOBAL TORCH-TURNS 0>
<GLOBAL TURN-OFFSET 0>
<GLOBAL CAN-TURN-STATUES <>>
<GLOBAL STATUES-SET <>>
<GLOBAL ANTE-SEAL T>
<GLOBAL BEAM-PLACED <>>
<GLOBAL ON-BEAM <>>
<GLOBAL INNER-DOOR-SEALED T>
<GLOBAL PLASTER-GONE <>>
<GLOBAL FIRST-ENTRY T>
<OBJECT HIEROGLYPHS
(IN LOCAL-GLOBALS)
(DESC "hieroglyphs")
(FLAGS NDESCBIT)
(SYNONYM SYMBOL HIEROG GLYPHS)
(ADJECTIVE STRANGE)
(ACTION HIERO-FCN)>
<ROUTINE HIERO-FCN ("AUX" TEMP (COUNTER 0) OFFSET)
<COND (<NOT <VERB? READ EXAMINE>>
<RFALSE>)>
<COND (<AND <IN? ,WINNER ,STAIRS-BOTTOM>
<IN? ,PLASTER1 ,STAIRS-BOTTOM>>
<TELL CR
"*-> # !!! :: ...> .-" CR>)
(<IN? ,WINNER ,WEST-END-OF-PASSAGE>
<COND (<FSET? ,PIT ,INVISIBLE>
<TELL CR
" .|
<-* # /!\\ - # (= =)|
|
:: *-> # !!!" CR>)
(T
<TELL "They're gone with the plaster." CR>)>)
(<AND <ROOM? ,NORTH-ANTECHAMBER>
<NOT <FSET? ,BURIAL-CHAMBER ,RMUNGBIT>>>
<TELL CR
" - !=!|
<-* # /!\\ . # ! !|
|
:: *-> # !!!" CR>)
(<AND <ROOM? SOUTH-ANTECHAMBER>
<NOT <FSET? ,ANNEX-DOOR ,OPENBIT>>>
<TELL CR
" -|
<-* # /!\\ (.) # ! !|
-|
|
-|
:: ( # ! !|
-" CR>)
(<ROOM? ,ROOM-OF-NEPHTHYS ,ROOM-OF-ISIS
,ROOM-OF-SELKIS ,ROOM-OF-NEITH>
<COND (<EQUAL? ,HERE ,ROOM-OF-NEPHTHYS>
<SET TEMP ,NEPHTHYS>
<SET OFFSET 4>)
(<EQUAL? ,HERE ,ROOM-OF-NEITH>
<SET TEMP ,NEITH>
<SET OFFSET 2>)
(<EQUAL? ,HERE ,ROOM-OF-SELKIS>
<SET TEMP ,SELKIS>
<SET OFFSET 1>)
(T <SET TEMP ,ISIS>
<SET OFFSET 3>)>
<REPEAT ()
<SET COUNTER <+ .COUNTER 1>>
<COND (<EQUAL? .TEMP
<GET ,ORDER-LTBL .COUNTER>>
<RETURN>)>>
<TELL CR " " <GET ,STAR-LTBL .COUNTER> CR>
<TELL CR
" " <GET ,COMPASS-POINTS-LTBL .OFFSET> CR>
<TELL
")) / # " <GET ,COMPASS-TAILS-LTBL .OFFSET> " ::|
|
<-* "
<GET ,STAR-LTBL .COUNTER> " =!= / *" CR>)
(<IN? ,WINNER ,BEND-HALL>
<TELL
"
. = - -|
!@! ...> - # * = :: <... ;|
|
# *|
=" CR>)
(<IN? ,WINNER ,CENTRAL-ROOM>
<TELL
"The hieroglyphs look like this:|
|
!-!|
...> -. >... # ! ! !|
!-!|
|
/ ...> / # !@!" CR>)
(<EQUAL? ,HERE ,SOUTH-CENTER>
<TELL
"The hieroglyphs look like this:
|
|
<.> <:> <:.>|
|
<::> <::.> <:::>|
|
<:::.> <::::> <::::.>" CR>)
(<EQUAL? <LOC ,WINNER> ,SKELETON-ROOM ,SILVER-ROOM ,GOLDEN-ROOM>
<TELL
"The hieroglyphs look like this:|
|
-!- # !* :: # *! ::|
|
*-> # !@! >*>" CR>)
(T
<TELL "I don't see them here." CR>)>
<RTRUE>>
<GLOBAL STAR-LTBL
<LTABLE "(@)"
"(@@)"
"(@@@)"
"(@@@@)">>
<GLOBAL COMPASS-POINTS-LTBL
<LTABLE
" ."
"\\"
" /"
". ">>
<GLOBAL COMPASS-TAILS-LTBL
<LTABLE
"/"
" ."
". "
" \\">>
<GLOBAL WATER-LEFT 0>
<OBJECT PICTURES
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT)
(DESC "decorations")
(SYNONYM PAINTI PICTUR SCROLL)
(ADJECTIVE SMALL LARGE)
(TEXT
"Quite beautiful, no?")>
<OBJECT PILLARS
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT)
(DESC "pillars")
(SYNONYM PILLARS)
(TEXT
"They're quite huge, aren't they?")>
<OBJECT BOAT
(IN LOCAL-GLOBALS)
(FLAGS VEHBIT)
(DESC "barge")
(SYNONYM BARGE BOAT SHIP WOOD)
(ADJECTIVE WOODEN WOOD)
(ACTION BOARD-BARGE-F)>
<ROUTINE BOARD-BARGE-F ()
<COND (<VERB? BOARD>
<COND (<EQUAL? ,HERE ,BARGE-ENTRANCE>
<DO-WALK ,P?UP>
<RTRUE>)
(<OR <EQUAL? ,HERE ,NW-CORNER ,NE-CORNER>
<EQUAL? ,HERE ,SW-CORNER ,SE-CORNER>>
<TELL "There's no way to do that from here." CR>
<RTRUE>)
(<OR <EQUAL? ,HERE ,FORE-CABIN ,AFT-CABIN ,BELOW-DECK>
<EQUAL? ,HERE ,BELOW-MAST ,BARGE-CENTER>>
<TELL "Just where do you think you are?" CR>
<RTRUE>)>)
(<VERB? DISEMBARK>
<COND (<EQUAL? ,HERE ,BARGE-CENTER>
<DO-WALK ,P?DOWN>
<RTRUE>)
(<OR <EQUAL? ,HERE ,NW-CORNER ,NE-CORNER>
<EQUAL? ,HERE ,SW-CORNER ,SE-CORNER>>
<TELL "You're not on the barge!" CR>
<RTRUE>)
(<OR <EQUAL? ,HERE ,FORE-CABIN ,AFT-CABIN ,BELOW-DECK>
<EQUAL? ,HERE ,BELOW-MAST ,BARGE-CENTER>>
<TELL "I can't do that from here." CR>
<RTRUE>)>)>>
<OBJECT DECK
(IN LOCAL-GLOBALS)
(DESC "deck")
(SYNONYM DECK DECKIN)
(ACTION JUMP-OFF-FCN)>
<ROUTINE JUMP-OFF-FCN ()
<COND (<AND <EQUAL? ,HERE ,BARGE-CENTER>
<VERB? LEAP>>
<TELL "Don't you think using the plank would be safer?" CR>
<RTRUE>)
(<VERB? LEAP>
<TELL "It might be easier without these bulkheads around." CR>)
(<VERB? LOOK-INSIDE EXAMINE>
<COND (<FIRST? ,HERE>
<DESCRIBE-OBJECTS T>
<RTRUE>)
(ELSE
<TELL "There's nothing on the deck." CR>
<RTRUE>)>)
(<VERB? COUNT>
<TELL "What a cahd! (52 to be exact!)" CR>
<RTRUE>)>>
<OBJECT FLAPS
(IN LOCAL-GLOBALS)
(DESC "flap")
(SYNONYM FLAP FLAPS)
(ACTION FLAP-FCN)>
<ROUTINE FLAP-FCN ()
<COND (<NOT <VERB? LOOK-INSIDE>>
<RFALSE>)
(<EQUAL? ,HERE ,TENT ,TENT2 ,SUPPLY-TENT>
<TELL
"You can make out a lot of sand and a small firepit." CR>)
(<EQUAL? ,HERE ,P2>
<TELL
"You can make out your cot and the trunk inside the tent." CR>)
(<EQUAL? ,HERE ,P7 ,P4>
<TELL
"You can see nothing distinguishable by trying to look in through the bright
sunlight." CR>)>
<RTRUE>>
<OBJECT THICKET
(IN GLOBAL-OBJECTS)
(DESC "thicket")
(SYNONYM THICKE)
(ACTION THICKET-FCN)>
<ROUTINE THICKET-FCN ()
<COND (<NOT <EQUAL? ,HERE ,RIVER-BANK ,P4 ,P6>>
<TELL "I see no thickets here." CR>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<TELL "Thicker thickets have never been thicker." CR>
<RTRUE>)>>
;"Parser-related stuff"
<OBJECT NOT-HERE-OBJECT
(DESC "such thing" ;"[not here]")
(ACTION NOT-HERE-OBJECT-F)>
<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ)
;"This COND is game independent (except the TELL)"
<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? <>>)>
<COND (.PRSO?
<COND (<VERB? LAMP-ON BURN LAMP-OFF>
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
<COND (<NOT <==? .OBJ ,NOT-HERE-OBJECT>>
<RTRUE>)>)
(T
<RFALSE>)>)>)
(T
<COND (<VERB? LAMP-ON BURN LAMP-OFF>
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
<COND (<NOT <==? .OBJ ,NOT-HERE-OBJECT>>
<RTRUE>)>)
(T
<RFALSE>)>)>)>
;"Here is the default 'cant see any' printer"
<COND (<EQUAL? ,WINNER ,ADVENTURER>
<TELL "You can't 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 FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ)
;"Here is where special-case code goes. <MOBY-FIND .TBL> returns
number of matches. If 1, then P-MOBY-FOUND is it. One may treat
the 0 and >1 cases alike or different. It doesn't matter. Always
return RFALSE (not handled) if you have resolved the problem."
<SET M-F <MOBY-FIND .TBL>>
<COND (<AND <G? .M-F 1>
<SET OBJ <GETP <1 .TBL> ,P?GLOBAL>>>
<SET M-F 1>
<SETG P-MOBY-FOUND .OBJ>)>
<COND (<==? 1 .M-F>
<COND (.PRSO? <SETG PRSO ,P-MOBY-FOUND>)
(T <SETG PRSI ,P-MOBY-FOUND>)>
<RFALSE>)
(<NOT .PRSO?>
<TELL "You wouldn't find any">
<NOT-HERE-PRINT .PRSO?>
<TELL " there." CR>
<RTRUE>)
(T ,NOT-HERE-OBJECT)>>
<ROUTINE GLOBAL-NOT-HERE-PRINT (OBJ)
<COND (,P-MULT <SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>)
(T
<TELL "You can't see any">
<COND (<EQUAL? .OBJ ,PRSO> <PRSO-PRINT>)
(T <PRSI-PRINT>)>
<TELL " here." CR>)>
<SETG P-WON <>>>
<ROUTINE NOT-HERE-PRINT (PRSO?)
<COND (,P-OFLAG
<COND (,P-XADJ <TELL " "> <PRINTB ,P-XADJN>)>
<COND (,P-XNAM <TELL " "> <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> <>>)>
<SETG P-WON <>>>

73
infidel.zil Normal file
View File

@ -0,0 +1,73 @@
"
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<SNAME "INFIDEL">
<GC-MON <>>
;<COND (<GASSIGNED? ZILCH> <GC 0 T>)
(T <GC 0 T 5>)>
<GC 0 T 5>
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>
;<SETG SHORT-STRINGS 2>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !\= !,WBREAKS>>>
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <IFILE .STR T>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "INFIDEL: Interlogic Adventure Fiction
">
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "MACROS" T>
<IFILE "GLOBALS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
<IFILE "SYNTAX" T>
<ENDLOAD>
<IFILE "CLOCK" T>
<IFILE "MAIN" T>
<IFILE "PARSER" T>
<INSERT-CRUFTY "CRUFTY">
<IFILE "VERBS" T>
;"MIKE: Add your files here, as with ROBOTS"
<IFILE "INTERRUPTS" T>
<IFILE "RA" T>
<IFILE "ANTE" T>
<IFILE "DIAMOND" T>
<IFILE "BARGE" T>
<IFILE "CUBE" T>
<IFILE "CAMP" T>
<IFILE "TEMPLE" T>
<PRINC "INFIDEL: Interlogic Adventure Fiction
Get ready!">

BIN
infidel.zip Normal file

Binary file not shown.

273
interrupts.zil Normal file
View File

@ -0,0 +1,273 @@
"INTERRUPTS for
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
;"
Interrupt Routines for
PYRAMID"
<GLOBAL RING-COUNTER 0>
<ROUTINE I-RING-KILL ()
<SETG RING-COUNTER <+ ,RING-COUNTER 1>>
<COND (<EQUAL? ,RING-COUNTER 3>
<TELL
"You're starting to feel a little woozy. You blink your eyes, but can't seem
to focus correctly. You think you see Craige standing by a wall." CR>)
(<EQUAL? ,RING-COUNTER 5>
<TELL
"Your ring finger is starting to throb painfully." CR>)
(<G? ,RING-COUNTER 7>
<JIGS-UP
"You fall over on your face as a quick-acting poison from the ring makes its
way to your heart. Bye!">)>>
<ROUTINE I-GINANDTONIC ()
<COND (<G? ,THIRST 400>
<JIGS-UP
"Like a grape, left out in the sun too long, you turn into a raisin for lack of
water.">)
(<AND <G? ,THIRST 380>
<L? ,THIRST 387>>
<SETG NILE-DRINKS 0>
<TELL
"If you don't drink something, and now, you're gonna be history." CR>)
(<AND <G? ,THIRST 300>
<L? ,THIRST 317>>
<SETG NILE-DRINKS 0>
<COND (<NOT <ROOM? ,TENT ,TENT2 ,SUPPLY-TENT>>
<TELL "You'd better drink something, and soon!" CR>)
(T
<TELL "You wipe your fevered brow." CR>)>)
(<AND <G? ,THIRST 200>
<L? ,THIRST 217>>
<SETG NILE-DRINKS 0>
<COND (<NOT <ROOM? ,TENT ,TENT2 ,SUPPLY-TENT>>
<TELL
"You scowl at the sun, cursing its searing heat." CR>)
(T
<TELL
"Even in the tent the heat starts to get to you." CR>)>)>>
<ROUTINE I-MATCH-OUT ("OPTIONAL" BLOWN? "AUX" (FLG <>))
<COND (<FSET? ,ONE-MATCH ,FLAMEBIT>
<COND (<NOT .BLOWN?>
<TELL "Your match went out.">)
(.BLOWN?
<TELL "You blow out the match and toss it aside.">)>
<SET FLG T>)>
<FCLEAR ,ONE-MATCH ,ONBIT>
<FCLEAR ,ONE-MATCH ,FLAMEBIT>
<FCLEAR ,MANY-MATCHES ,FLAMEBIT>
<COND (<AND <IN? ,ONE-MATCH ,WINNER>
<NOT .BLOWN?>>
<TELL " And it burned your fingers, too! You drop it. ">
<BUT-WHERE?>
<SET FLG <>>)>
<MOVE ,ONE-MATCH ,GLOBAL-OBJECTS>
<COND (,LIT
<SETG LIT <LIT? ,HERE>>)>
<COND (<NOT <SETG LIT <LIT? ,HERE>>>
<TELL " It is now pitch black.">
<SET FLG T>)>
<COND (.FLG
<CRLF>)>>
<ROUTINE I-TORCH ("AUX" (FLG <>))
<SETG TORCH-TURNS <+ ,TORCH-TURNS 1>>
<COND (<NOT ,OILED-TORCH>
<TELL "Your torch is too dry and burns itself out quickly." CR>
<KILL-TORCH>
<SET FLG T>)>
<COND (<OR <IN? ,TORCH ,WINNER>
<EQUAL? <LOC ,TORCH> <LOC ,WINNER>>>
<COND (<EQUAL? ,TORCH-TURNS 150>
<TELL "Your torch is beginning to sputter." CR>
<SET FLG T>)
(<EQUAL? ,TORCH-TURNS 162>
<TELL "Your torch is getting very, very dim." CR>
<SET FLG T>)
(<EQUAL? ,TORCH-TURNS 175>
<TELL "With a final blaze of glory, your torch goes out." CR>
<KILL-TORCH>
<SET FLG T>)>)
(<G? ,TORCH-TURNS 174>
<KILL-TORCH>)>
.FLG>
<ROUTINE KILL-TORCH ("OPTIONAL" (IN-SLAB? <>))
<FCLEAR ,TORCH ,ONBIT>
<FCLEAR ,TORCH ,FLAMEBIT>
<COND (<NOT .IN-SLAB?>
<SETG OIL-SOAKED <>>
<SETG OILED-TORCH <>>
<SETG TORCH-TURNS 0>)>
<COND (,LIT
<SETG LIT <LIT? ,HERE>>)>
<COND (<NOT <SETG LIT <LIT? ,HERE>>>
<TELL "It is now pitch black." CR>)>
<DISABLE <INT I-TORCH>>>
<ROUTINE I-RESET-STATUES ("AUX" (CHECK-OFF 0) (COUNTER 0)
(CLEAR-OFF 0) (FLG <>) STR)
<REPEAT ()
<COND (<EQUAL? .CHECK-OFF 4>
<RETURN>)
(T
<SET CHECK-OFF <+ .CHECK-OFF 1>>
<COND (<OR <NOT <EQUAL? <GET ,ORDER-LTBL .CHECK-OFF>
<GET ,TURNED-LTBL .CHECK-OFF>>>
<FSET? <GET ,TURNED-LTBL .CHECK-OFF>
,CLAMPBIT>>
<SETG TURN-OFFSET 0>
<REPEAT ()
<SET CLEAR-OFF <+ .CLEAR-OFF 1>>
<COND (<EQUAL? .CLEAR-OFF 5>
<RETURN>)>
<PUT ,TURNED-LTBL .CLEAR-OFF <>>
<COND (<NOT <FSET? <GET ,STATUE-TBL
<- .CLEAR-OFF 1>>
,CLAMPBIT>>
<SET COUNTER <+ .COUNTER 1>>)>
<FSET <GET ,STATUE-TBL <- .CLEAR-OFF 1>>
,CLAMPBIT>>
<SET STR <GET ,NUM-TBL .COUNTER>>
<COND (<NOT .COUNTER>
<TELL
"A loud click comes from beneath the four statues as they clamp down on the
cover again." CR>)
(T
<TELL "The " .STR " statue">
<COND (<G? .COUNTER 1>
<TELL
"s, heavy though they are, effortlessly swing back in unison to clamp down on the quartz cover again." CR>)
(T
<TELL
", heavy though it is, effortlessly swings back to clamp down on the quartz cover again." CR>)>)>
<SET FLG T>
<RETURN>)>)>>
<COND (<NOT .FLG> ;"order was correct"
<TELL
"The statues freeze in their current positions and you hear a light click come
from the cover of the sarcophagus." CR>
<SETG CAN-TURN-STATUES <>>
<SETG STATUES-SET T>
<SETG SCORE <+ ,SCORE 35>>)>>
<GLOBAL HUNGER 0>
<ROUTINE I-GROWL ()
<SETG HUNGER <+ ,HUNGER 1>>
<COND (<AND <G? ,HUNGER 70>
<L? ,HUNGER 73>>
<TELL "Your stomach growls in hunger." CR>)
(<AND <G? ,HUNGER 100>
<L? ,HUNGER 103>>
<TELL
"You feel yourself growing weaker. Without nourishment, this is a losing
cause!" CR>)
(<G? ,HUNGER 140>
<JIGS-UP
"You fall over on your face, dreaming of Thanksgiving dinner. Needless to say,
it was you against hunger. And hunger won.">)>>
<ROUTINE I-PARACHUTE ()
<COND (<L? ,MOVES 3>
<COND (<IN-A-TENT?>
<TELL CR
"You hear a plane flying high overhead, outside the tent." CR>)
(T
<TELL CR
"You crane your neck and see a plane, high overhead, circling the encampment." CR>)>
<RTRUE>)
(<L? ,MOVES 5>
<COND (<IN-A-TENT?>
<TELL CR "It sounds as if the plane is circling." CR>)
(T
<TELL CR
"The plane seems to be circling right overhead." CR>)>
<RTRUE>)
(<EQUAL? ,MOVES 5>
<COND (<NOT <IN-A-TENT?>>
<TELL CR
"You look up to see a small speck appear right beneath the plane -- probably a
parachute. The plane heads off far to the northwest, dipping its wings in a
salute." CR>)
(T
<TELL CR "It sounds as if the plane is flying off." CR>)>
<RTRUE>)
(<EQUAL? ,MOVES 6>
<COND (<NOT <IN-A-TENT?>>
<TELL CR
"A small speck descending from the plane overhead gets larger until you see a
crate, dangling from a parachute." CR>)
(T
<TELL CR "You can barely hear the plane." CR>)>
<RTRUE>)
(<EQUAL? ,MOVES 7>
<COND (<IN-A-TENT?>
<MOVE ,CRATE <PICK-ONE ,ROOM-LTBL>>
<TELL CR
"The sound of something heavy landing comes from nearby." CR>)
(T
<TELL CR
"At last, your luck seems to be changing. A large crate lands right before you,
its parachute flapping in the breeze. The parachute breaks away from the crate
and drifts off in the wind." CR>
<MOVE ,CRATE ,HERE>)>
<FSET ,CRATE ,VEHBIT>
<DISABLE <INT I-PARACHUTE>>
<RTRUE>)>>
<ROUTINE IN-A-TENT? ("OPTIONAL" (COT-TOO? T))
<COND (.COT-TOO?
<COND (<OR <EQUAL? <LOC ,WINNER> ,TENT ,TENT2 ,SUPPLY-TENT>
<EQUAL? <LOC ,WINNER> ,COT>>
<RTRUE>)
(T <RFALSE>)>)
(<NOT .COT-TOO?>
<COND (<EQUAL? <LOC ,WINNER> ,TENT ,TENT2 ,SUPPLY-TENT>
<RTRUE>)
(ELSE <RFALSE>)>)
(ELSE
<RFALSE>)>>
<GLOBAL RANDOM-ROOM-LTBL
<LTABLE P1 P2 P3 P4 P5 P6 P7 P8 EX1 EX3 EX5 EX7 EX9
FIRE>>
<GLOBAL ROOM-LTBL
<LTABLE P1 P2 P3 P4 P5 P6 P7 P8 FIRE>>
<ROUTINE RANDOMIZE-HOLES ("AUX" (OFFS 0) MAX)
<SET MAX <GET ,RANDOM-ROOM-LTBL 0>>
<REPEAT ()
<SET OFFS <+ .OFFS 1>>
<COND (<G? .OFFS .MAX>
<RETURN>)
(T
<PUTP <GET ,RANDOM-ROOM-LTBL .OFFS>
,P?CAPACITY <RANDOM 2>>)>>>
<GLOBAL PYR-THIRST 0>
<ROUTINE I-PYRAMID-DRINK ()
<COND (<GETP ,HERE ,P?MAP>
<DISABLE <INT I-PYRAMID-DRINK>>
<RFALSE>)>
<SETG PYR-THIRST <+ ,PYR-THIRST 1>>
<SETG NILE-DRINKS 0>
<COND (<EQUAL? ,PYR-THIRST 1>
<TELL
"Even in this pyramid, you need to drink something, and soon." CR>)
(<EQUAL? ,PYR-THIRST 10>
<TELL
"Your throat feels as if it's coated with razor blades. Some water would be in
order." CR>)
(<EQUAL? ,PYR-THIRST 19>
<TELL "Better drink something. NOW!" CR>)
(<EQUAL? ,PYR-THIRST 25>
<JIGS-UP
"Well, your body could only take so much of this heat. Like a car, idling on a
crowded highway, your body decides it's time to overheat. Such is death.">)>>

136
macros.zil Normal file
View File

@ -0,0 +1,136 @@
"MACROS for
INFIDEL
(c) Copyright 1983 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 "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>
<MAPRET <FORM PRINT .E>>)
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
<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 BLT ("ARGS" X "AUX" (TO <MEMQ TO .X>) (LL (())) (L .LL) ATM)
<COND (<AND .TO <1? <LENGTH <REST .TO>>>>
<SET DEST <NTH .TO 2>>)
(ELSE <SET DEST <>>)>
<REPEAT ()
<COND (<OR <EMPTY? .X> <==? <NTH .X 1> TO>>
<RETURN <COND (<LENGTH? .LL 1> <ERROR BLT>)
(<LENGTH? .LL 2> <NTH .LL 2>)
(ELSE
<FORM PROG !.LL>)>>)
(ELSE
<SET ATM <NTH .X 1>>
<COND (<TYPE? .ATM ATOM>
<SET ATM <FORM GVAL .ATM>>)>
<SET L
<REST
<PUTREST .L
(<COND (.DEST
<FORM MOVE .ATM .DEST>)
(ELSE
<FORM REMOVE .ATM>)>)>>>
<SET X <REST .X>>)>>>
<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)
<GET .FROB <RANDOM <GET .FROB 0>>>>
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
<DEFMAC OPENABLE? ('OBJ)
<FORM OR <FORM FSET? .OBJ ',DOORBIT>
<FORM FSET? .OBJ ',CONTBIT>>>
<ROUTINE ABS (NUM)
<COND (<G? .NUM 0>
<RETURN .NUM>)
(ELSE
<RETURN <- 0 .NUM>>)>>

364
main.zil Normal file
View File

@ -0,0 +1,364 @@
"MAIN for
INFIDEL
Copyright 1983 Infocom, Inc. All Rights Reserved.
"
<GLOBAL PLAYER <>>
<GLOBAL P-WON <>>
<CONSTANT M-FATAL 2>
<CONSTANT M-HANDLED 1>
<CONSTANT M-NOT-HANDLED <>>
<CONSTANT M-OBJECT <>>
<CONSTANT M-BEG 1>
<CONSTANT M-END 6>
<CONSTANT M-ENTER 2>
<CONSTANT M-LOOK 3>
<CONSTANT M-FLASH 4>
<CONSTANT M-OBJDESC 5>
<ROUTINE GO ()
;"put interrupts on clock chain"
<RANDOMIZE-HOLES>
<ENABLE <QUEUE I-GINANDTONIC -1>>
<ENABLE <QUEUE I-PARACHUTE -1>>
<ENABLE <QUEUE I-GROWL -1>>
<REMOVE ,WATER>
;"set up and go"
<SETG LIT T>
<SETG WINNER ,ADVENTURER>
<SETG PLAYER ,WINNER>
<SETG HERE ,TENT>
<SETG P-IT-LOC ,HERE>
<SETG P-IT-OBJECT <>>
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
<TELL ,START-STR CR>
<CRLF>
<V-VERSION>
<CRLF>)>
<MOVE ,WINNER ,COT>
<V-LOOK>
<MAIN-LOOP>
<AGAIN>>
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
#DECL ((CNT OCNT ICNT NUM) FIX (V) <OR 'T FIX FALSE> (OBJ) <OR FALSE OBJECT>
(OBJ1) OBJECT (TBL) TABLE (PTBL) <OR FALSE ATOM>)
<REPEAT ()
<SET CNT 0>
<SET OBJ <>>
<SET PTBL T>
<COND (<SETG P-WON <PARSER>>
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
<SET NUM
<COND (<0? <SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>> .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 (<==? ,PRSA ,V?WALK> <SET V <PERFORM ,PRSA ,PRSO>>)
(<0? .NUM>
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
<SET V <PERFORM ,PRSA>>
<SETG PRSO <>>)
(<NOT ,LIT>
<TELL "It's too dark to see." CR>)
(T
;"** M" <COND (.OBJ
<COND (<AND <FSET? .OBJ ,CONTBIT>
<NOT <FSET? .OBJ ,OPENBIT>>>
<TELL "Better open the " D .OBJ
" first." CR>
<THIS-IS-IT .OBJ>
<SET V <>>)
(<NOT <FSET? .OBJ ,CONTBIT>>
<TELL "There's nothing in that." CR>
<SET V <>>)
(T
<TELL "It's not in that." CR>
<SET V <>>)>)
(T
<TELL "There isn't anything to ">
<SET TMP <GET ,P-ITBL ,P-VERBN>>
<COND (,P-OFLAG
<PRINTB <GET .TMP 0>>)
(T
<WORD-PRINT <GETB .TMP 2>
<GETB .TMP 3>>)>
<TELL "!" CR>
<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
"I don't know what you're referring to." CR>)>
<RETURN>)
(T
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
<SETG PRSO <COND (.PTBL .OBJ1) (T .OBJ)>>
<SETG PRSI <COND (.PTBL .OBJ) (T .OBJ1)>>
<COND (<VERB? COMPARE> T)
(<G? .NUM 1>
<COND (<EQUAL? .OBJ1
,NOT-HERE-OBJECT>
<SETG P-NOT-HERE
<+ ,P-NOT-HERE 1>>
<AGAIN>)
(<AND <VERB? TAKE>
,PRSI
<EQUAL? <GET <GET ,P-ITBL
,P-NC1>
0>
,W?ALL>
<NOT <IN? ,PRSO ,PRSI>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
<VERB? TAKE>
<OR <AND <NOT <EQUAL?
<LOC .OBJ1>
,WINNER
,HERE>>
<NOT <FSET?
<LOC .OBJ1>
,TRANSBIT>>>
<FSET? .OBJ1
,DONTTAKE>
<EQUAL? .OBJ1
,PLASTER
,PLASTER1>>>
<AGAIN>)
(<AND <EQUAL? ,P-GETFLAGS
,P-ALL>
<VERB? DROP>
<NOT <IN? .OBJ1 ,WINNER>>
<NOT <IN? ,P-IT-OBJECT
,WINNER>>>
<AGAIN>)
(T
<COND (<EQUAL? .OBJ1 ,IT>
<PRINTD ,P-IT-OBJECT>)
(T <PRINTD .OBJ1>)>
<TELL ": ">)>)>
<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 <>>)>
;"Removing this code should fix the problem that AGAIN
loses when in a vehicle and it is the PRSO."
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
<COND (<VERB? AGAIN WALK 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> T)
(T <SET V <CLOCKER>>)>)>>>
<GLOBAL P-MULT <>>
<GLOBAL P-NOT-HERE 0>
<GLOBAL L-PRSA <>>
<GLOBAL L-PRSO <>>
<GLOBAL L-PRSI <>>
%<COND (<GASSIGNED? PREDGEN>
'<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
<SET OA ,PRSA>
<SET OO ,PRSO>
<SET OI ,PRSI>
<COND (<AND <EQUAL? ,IT .I .O>
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
<TELL "I don't see what you are referring to." CR>
<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 P-IT-LOC ,HERE>)>
<SETG PRSI .I>
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <NOT-HERE-OBJECT-F>>>
<SETG P-WON <>>
.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>>
<LOC .O>
<SET V <APPLY <GETP <LOC .O> ,P?CONTFCN>>>>
.V)
(<AND .O
<NOT <==? .A ,V?WALK>>
<SET V <APPLY <GETP .O ,P?ACTION>>>>
.V)
(<SET V <APPLY <GET ,ACTIONS .A>>> .V)>)>
<COND (<NOT <==? .V ,M-FATAL>>
<COND (<==? <LOC ,WINNER> ,PRSO>
<SETG PRSO <>>)>
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>)
(T
'<PROG ()
<SETG PDEBUG <>>
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
<COND (,PDEBUG
<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>
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
<TELL "I don't see what you are referring to." CR>
<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 P-IT-LOC ,HERE>)>
<SETG PRSI .I>
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>>
<SETG P-WON <>>
.V)
(T
<SET O ,PRSO>
<SET I ,PRSI>
<COND (<SET V <D-APPLY "Actor"
<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>>
<LOC .O>
<SET V <D-APPLY "Container"
<GETP <LOC .O> ,P?CONTFCN>>>>
.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)>)>
<COND (<NOT <==? .V ,M-FATAL>>
<COND (<==? <LOC ,WINNER> ,PRSO>
<SETG PRSO <>>)>
<SET V <D-APPLY "Room (M-END)"
<GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
<SETG PRSA .OA>
<SETG PRSO .OO>
<SETG PRSI .OI>
.V>
<DEFINE D-APPLY (STR FCN "OPTIONAL" FOO "AUX" RES)
<COND (<NOT .FCN> <>)
(T
<COND (,PDEBUG
<COND (<NOT .STR>
<TELL CR " Default ->" CR>)
(T <TELL CR " " .STR " -> ">)>)>
<SET RES
<COND (<ASSIGNED? FOO>
<APPLY .FCN .FOO>)
(T <APPLY .FCN>)>>
<COND (<AND ,PDEBUG .STR>
<COND (<==? .RES 2>
<TELL "Fatal" CR>)
(<NOT .RES>
<TELL "Not handled">)
(T <TELL "Handled" CR>)>)>
.RES)>>
>)>
<GLOBAL START-STR
"You wake slowly, sit up in your bunk, look around the tent, and try to ignore
the pounding in your head, the cottony taste in your mouth, and the ache in
your stomach. The droning of a plane's engine breaks the stillness and you
realize that things outside are quiet -- too quiet. You know that this can
mean only one thing: your workmen have deserted you. They complained over the
last few weeks, grumbling about the small pay and lack of food, and your
inability to locate the pyramid. And after what you stupidly did yesterday,
trying to make them work on a holy day, their leaving is understandable.|
|
The Professor's map was just an ancient map -- as worthless as an ice cube in
the Arctic without an instrument fine enough to accurately measure longitude
and latitude. You knew that the site was nearby. You dug, and you ordered the
workers to dig, even without the box. As you listen to the plane and rub your
aching eyes, you pray they left you supplies enough to find the pyramid and to
survive, and that the plane's carrying the long-overdue box.">

1150
parser.zil Normal file

File diff suppressed because it is too large Load Diff

398
ra.zil Normal file
View File

@ -0,0 +1,398 @@
"RA for
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
;"RA-This is a file of all rooms and objects found in the upper part of the
pyramid; the Chamber of Ra."
<ROOM CHAMBER-OF-RA
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Chamber of Ra")
(NORTH PER ROPE-HOOK-FCN)
(EAST PER TELL-STAIRS-FCN)
(SOUTH PER TELL-STAIRS-FCN)
(WEST PER TELL-STAIRS-FCN)
(DOWN PER ROPE-DOWN-FCN)
(UP PER RE-ENABLE-FCN)
(OUT PER RE-ENABLE-FCN)
(GLOBAL NORTH-STAIRS EAST-STAIRS SOUTH-STAIRS WEST-STAIRS FEW-STEPS)
(ACTION MOVE-ROPE-RA)>
<ROUTINE TELL-STAIRS-FCN ("AUX" PLACE (FLG <>) (R-FLG <>))
<COND (<IN? ,WINNER ,ALTAR>
<RETURN ,LANDING-ONE>)>
<TELL "(down the ">
<COND (<AND ,ROPE-TIED
<IN? ,ROPE ,WINNER>>
<MOVE ,ROPE ,HERE>
<SET R-FLG T>)>
<COND (<PRSO? ,P?EAST>
<TELL "wide staircase)" CR>
<SET PLACE ,LANDING-ONE>
<SET FLG T>)
(<PRSO? ,P?WEST>
<TELL "narrow staircase)" CR>
<SET PLACE ,LANDING-THREE>
<SET FLG T>)
(<PRSO? ,P?NORTH>
<TELL "steep staircase)" CR>
<SET PLACE ,LANDING-ZERO>)
(<PRSO? ,P?SOUTH>
<TELL "winding staircase)" CR>
<SET PLACE ,LANDING-TWO>)>
<COND (.R-FLG
<TELL "You release the free end of the rope as you walk." CR>)>
<COND (.FLG
<TELL "The staircase winds as you walk down, turning you around
so you face in the opposite direction." CR>
<CRLF>)>
.PLACE>
<ROUTINE RE-ENABLE-FCN ()
<COND (<NOT <IN? ,WINNER ,ALTAR>>
<ENABLE <QUEUE I-GINANDTONIC -1>>)>
<COND (<AND ,ROPE-TIED
<IN? ,ROPE ,WINNER>>
<MOVE ,ROPE ,CHAMBER-OF-RA>
<TELL "You release the free end of the rope as you walk." CR>)>
,EX8>
<GLOBAL PLUNGE-STR
"You take a few steps down the steep staircase when suddenly you lose your
footing as you try to walk on air. You fall a mere 25 feet straight
down and, landing on your head, regret your attempt.">
<ROUTINE ROPE-HOOK-FCN ()
<COND (<IN? ,WINNER ,ALTAR>
<RETURN ,LANDING-ONE>)
(<AND ,ROPE-TIED
<EQUAL? ,LANDING ,LANDING-ZERO>>
<TELL "(down the rope)" CR>
<RETURN ,LANDING-ZERO>)
(<AND ,ROPE-TIED ,LANDING>
<TELL "(down the steep staircase)" CR>
<JIGS-UP ,PLUNGE-STR>)
(,ROPE-TIED
<JIGS-UP
"You grasp the rope firmly in your hands, but the fall is shorter than you
thought. You reach the bottom with a resounding splat accompanied by a chorus
of pain led by ganglions you never knew you had. Just before you (thankfully)
black out, you release your grip from the rope.">)
(ELSE
<JIGS-UP ,PLUNGE-STR>)>>
<ROUTINE ROPE-DOWN-FCN ()
<COND (<OR <NOT ,ROPE-TIED>
<NOT ,ROPE-PLACED>>
<COND (<IN? ,WINNER ,ALTAR>
<RETURN ,LANDING-TWO>)
(<EQUAL? ,HERE ,CHAMBER-OF-RA>
<TELL
"Since there are four staircases going down, you'd better say which staircase."
CR>)
(T
<JIGS-UP ,PLUNGE-STR>)>
<RFALSE>)
(ELSE
<COND (<NOT ,ROPE-HACK>
<TELL "(down the rope)" CR>)>
<RETURN ,LANDING>)>>
<GLOBAL ROPE-HACK <>>
<ROUTINE MOVE-ROPE-RA (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<EQUAL? ,ROPE-TIED ,ALTAR>>
<DISABLE <INT I-GINANDTONIC>>
<MOVE ,ROPE ,HERE>
<FCLEAR ,ROPE ,NDESCBIT>
<RFALSE>)
(<EQUAL? .RARG ,M-ENTER>
<DISABLE <INT I-GINANDTONIC>>)
(<EQUAL? .RARG ,M-LOOK>
<TELL ,RA-STR>
<COND (,ROPE-PLACED
<FSET ,ROPE ,NDESCBIT>
<TELL
" Descending the " D ,ROPE-PLACED " is one end of the rope.">)>
<TELL
" In the center of the room is a large red sandstone altar mounted solidly in
the floor.">
<COND (,ROPE-TIED
<TELL " The rope is tied to the " D ,ROPE-TIED ".">
<COND (<AND <IN? ,ROPE ,CHAMBER-OF-RA>
<NOT ,ROPE-PLACED>>
<TELL
" The other end of the rope rests on the floor.">)
(<IN? ,ROPE ,ALTAR>
<TELL
" The other end rests on the altar.">)>)>
<CRLF>)
(<EQUAL? .RARG ,M-END>
<FCLEAR ,ROPE ,NDESCBIT>
<SETG ROPE-HACK <>>
<RFALSE>)
(<AND <EQUAL? .RARG ,M-BEG>
<OR ,ROPE-TIED ,ROPE-PLACED>
<NOT <IN? ,ROPE ,WINNER>>>
<FSET ,ROPE ,NDESCBIT>
<RFALSE>)>>
<GLOBAL RA-STR
"You are standing in the Chamber of Ra, a tribute to the Sun God. Even though
the only natural light enters through the opening above, the room is
brilliantly lit as though the walls themselves generated light. The room
slopes inward and the walls meet at an open point, over your head. The heat of
the desert filters down through the opening and, as the air slowly circulates,
the deep, long-dead musty odors from the depths of the pyramid assault your
senses. Four staircases descend from here: a steep one to the north, a winding
one to the south, a wide one to the east, and a narrow one to the west.">
<OBJECT NORTH-STAIRS
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT CLIMBBIT)
(DESC "steep staircase")
(SYNONYM STAIRC STAIRS STEPS STAIR)
(ADJECTIVE STEEP NORTH)
(ACTION RA-STAIRS-FCN)>
<OBJECT EAST-STAIRS
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT CLIMBBIT)
(DESC "wide staircase")
(SYNONYM STAIRC STAIRS STEPS STAIR)
(ADJECTIVE WIDE EAST)
(ACTION RA-STAIRS-FCN)>
<OBJECT SOUTH-STAIRS
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT CLIMBBIT)
(DESC "winding staircase")
(SYNONYM STAIRC STAIRS STEPS STAIR)
(ADJECTIVE WINDIN SOUTH)
(ACTION RA-STAIRS-FCN)>
<OBJECT WEST-STAIRS
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT CLIMBBIT)
(DESC "narrow staircase")
(SYNONYM STAIRC STAIRS STEPS STAIR)
(ADJECTIVE NARROW WEST)
(ACTION RA-STAIRS-FCN)>
<ROUTINE RA-STAIRS-FCN ()
<COND (<VERB? LOOK-DOWN EXAMINE>
<COND (<AND <NOT <FLAMING? ,TORCH>>
<NOT <FLAMING? ,MATCHES>>>
<TELL
"There's just enough light to see the first few steps." CR>)
(<OR <FLAMING? ,TORCH>
<FLAMING? ,MATCHES>>
<COND (<NOT <PRSO? ,NORTH-STAIRS>>
<TELL
"You can see far enough down the stairs to make out a landing below." CR>)
(ELSE
<TELL
"You can see the first few steps and then what could only be a sheer dropoff,
going down into total darkness." CR>)>)>
<RTRUE>)
(<VERB? CLIMB-DOWN>
<COND (<PRSO? ,NORTH-STAIRS>
<COND (<EQUAL? ,ROPE-PLACED ,NORTH-STAIRS>
<PERFORM ,V?CLIMB-DOWN ,ROPE>
<RTRUE>)
(ELSE
<JIGS-UP ,PLUNGE-STR>
<RFATAL>)>)
(<PRSO? ,EAST-STAIRS>
<GOTO ,LANDING-ONE>)
(<PRSO? ,SOUTH-STAIRS>
<GOTO ,LANDING-TWO>)
(<PRSO? ,WEST-STAIRS>
<GOTO ,LANDING-THREE>)>)>>
<OBJECT FEW-STEPS
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT CLIMBBIT)
(DESC "few steps")
(SYNONYM STEPS STAIRS)
(ADJECTIVE FEW FIRST)
(ACTION FEW-STEPS-FCN)>
<ROUTINE FEW-STEPS-FCN ()
<COND (<VERB? CLIMB-DOWN BOARD CLIMB-ON>
;<COND (<AND ,ROPE-TIED
<IN? ,ROPE ,WINNER>>
<TELL "You release the rope as you walk." CR>)>
<GOTO ,TINY-LANDING>
<MOVE-ROPE-HERE ,M-ENTER>
<COND (<IN? ,ROPE ,HERE>
<FCLEAR ,ROPE ,NDESCBIT>
<DESCRIBE-ROPE-FCN ,M-OBJDESC>)>
<RFATAL>)>>
<ROOM TINY-LANDING
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "On the Steep Stairs")
(LDESC
"You are two steps down the steep staircase when you see before you a deep
dropoff going down into nothingness. To go down any further would be suicide.")
(DOWN PER ROPE-DOWN-FCN)
(UP TO CHAMBER-OF-RA)
(GLOBAL NORTH-STAIRS)
;(ACTION TINY-LANDING-F)>
;<ROUTINE TINY-LANDING-F (RARG)
<COND (<EQUAL? .RARG ,M-END>
<MOVE-ROPE-HERE ,M-ENTER>)>>
<OBJECT ALTAR
(IN CHAMBER-OF-RA)
(DESC "stone altar")
(FLAGS NDESCBIT CONTBIT OPENBIT SURFACEBIT VEHBIT DONTTAKE TRANSBIT
TRYTAKEBIT)
(CAPACITY 1000)
(SYNONYM ALTAR)
(ADJECTIVE LARGE STONE)
(TEXT
"The altar is three feet by five feet and is mounted firmly in the solid floor.")
(ACTION ALTAR-FCN)>
<ROUTINE ALTAR-FCN ("OPTIONAL" (RARG ,M-OBJECT))
<COND (<NOT <EQUAL? .RARG ,M-OBJECT>> <RFALSE>)
(<AND <VERB? EXAMINE LOOK-INSIDE>
<OR <NOT <FIRST? ,ALTAR>>
<EQUAL? <FIRST? ,ALTAR> ,WINNER ,ADVENTURER>>
<PRSO? ,ALTAR>>
<TELL
<GETP ,ALTAR ,P?TEXT> " There is nothing on the altar." CR>
<RTRUE>)
(<AND <VERB? EXAMINE LOOK-INSIDE>
<IN? ,WINNER ,ALTAR>
<PRSO? ,ALTAR>
<L? <CCOUNT ,ALTAR> 2>>
<TELL <GETP ,ALTAR ,P?TEXT> CR>
<RTRUE>)
(<AND <VERB? EXAMINE LOOK-INSIDE>
<PRSO? ,ALTAR>>
<PRINT-CONT ,ALTAR>
<RTRUE>)
(<AND <VERB? OPEN CLOSE>
<PRSO? ,ALTAR>>
<HOW? ,ALTAR>
<RTRUE>)>>
<GLOBAL LANDING <>>
<ROUTINE MOVE-ROPE-HERE (RARG)
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<OR <EQUAL? ,LANDING ,HERE>
<AND <EQUAL? ,LANDING ,LANDING-ZERO>
<EQUAL? ,HERE ,TINY-LANDING>>>>
<MOVE ,ROPE ,HERE>
<FCLEAR ,ROPE ,NDESCBIT>
<RFALSE>)>>
<OBJECT TORCH
(IN CHAMBER-OF-RA)
(FLAGS BURNBIT TAKEBIT)
(DESC "bronze torch")
(SYNONYM TORCH WICK)
(ADJECTIVE BRONZE)
(FDESC
"Leaning against the altar is a bronze torch.")
(TEXT
"The torch has a tapered tip, much like a wick, which should be able to hold
a large amount of oil.")
(ACTION TORCH-FCN)>
<ROUTINE TORCH-FCN ()
<COND (<AND <PRSI? ,TORCH>
<FLAMING? ,TORCH>
<IN? ,TORCH ,HERE>
<VERB? DROP THROW>
<IN? ,PRSO ,WINNER>
<FSET? ,PRSO ,BURNBIT>>
<COND (<VERB? DROP>
<TELL "Dropped. ">)
(T <TELL "Thrown. ">)>
<V-BURN>
<RTRUE>)
(<VERB? EXAMINE>
<TELL <GETP ,TORCH ,P?TEXT> " The torch is ">
<COND (<NOT <FLAMING? ,TORCH>>
<TELL "not lit">)
(<L? ,TORCH-TURNS 125>
<TELL "burning brightly">)
(<L? ,TORCH-TURNS 160>
<TELL "burning dimly">)
(<L? ,TORCH-TURNS 175>
<TELL "barely lit">)>
<TELL "." CR>
<RTRUE>)>>
<OBJECT OIL-JAR
(IN CHAMBER-OF-RA)
(SYNONYM JAR)
(ADJECTIVE PINK SMALL ALABAS)
(DESC "pink jar")
(FLAGS CONTBIT TAKEBIT BURNBIT)
(CAPACITY 4)
(FDESC
"Lying on the floor, partially covered with dust, is a small pink alabaster
jar.")
(ACTION OIL-FCN)>
<ROUTINE OIL-FCN ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<COND (<NOT <FSET? ,OIL-JAR ,OPENBIT>>
<RFALSE>)
(T
<COND (<G? ,OIL-LEFT 0>
<TELL "Inside the small pink jar is some liquid." CR>)
(ELSE
<TELL "The jar is empty." CR>)>)>)
(<AND <VERB? OPEN>
<NOT <FSET? ,OIL-JAR ,OPENBIT>>>
<COND (<G? ,OIL-LEFT 0>
<TELL
"Opening the jar reveals a small amount of liquid." CR >)
(T
<TELL "Opened." CR>)>
<FSET ,OIL-JAR ,OPENBIT>
<RTRUE>)>>
<OBJECT LIQUID
(IN OIL-JAR)
(FLAGS DONTTAKE)
(DESC "liquid")
(TEXT
"The liquid is oily to the touch and smells as if it could be highly volatile.")
(SYNONYM LIQUID OIL)
(ACTION LIQUID-FCN)>
<ROUTINE LIQUID-FCN ()
<COND (<VERB? EXAMINE>
<RFALSE>)
(<VERB? POUR POUR-ON>
<COND (<NOT <IN? ,OIL-JAR ,WINNER>>
<COND (<ITAKE>
<TELL "(taken)" CR>
<PERFORM ,PRSA ,OIL-JAR>
<RTRUE>)
(T
<TELL
"Hmm. It would be easier if you were holding it." CR>
<RTRUE>)>)
(T
<PERFORM ,PRSA ,OIL-JAR>
<RTRUE>)>)
(<AND <VERB? TASTE>
<FSET? ,OIL-JAR ,OPENBIT>>
<TELL "It tastes horrible." CR>)>>

710
syntax.zil Normal file
View File

@ -0,0 +1,710 @@
"SYNTAX for
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
"SUBTITLE VOCABULARY"
<BUZZ A AN THE IS AND SOME OF THEN ALL ONE BUT EXCEPT \. \, \"
YES NO Y HERE MY>
;<SYNONYM WITH USING THROUGH>
<SYNONYM ON ONTO>
<SYNONYM IN INSIDE INTO>
<SYNONYM UNDER BELOW BENEATH UNDERNEATH>
<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>
\
"ZORK game commands"
<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 $VERIFY = V-$VERIFY>
<SYNTAX VERSION = V-VERSION>
<SYNTAX VERBOSE = V-VERBOSE>
\
"SUBTITLE REAL VERBS"
<SYNTAX AGAIN = V-AGAIN>
<SYNONYM AGAIN G>
<SYNTAX ANSWER = V-ANSWER>
<SYNTAX ANSWER OBJECT = V-REPLY>
<SYNONYM ANSWER REPLY>
<SYNTAX APPLY OBJECT TO OBJECT = V-PUT PRE-PUT>
<SYNTAX ATTACK
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
= V-ATTACK>
<SYNONYM ATTACK FIGHT HURT INJURE>
<SYNTAX BACK = V-BACK>
<SYNTAX BLAST = V-BLAST>
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
= V-BOARD PRE-BOARD>
<SYNTAX BUG = V-BUG>
<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 CHOMP = V-CHOMP>
<SYNONYM CHOMP LOSE BARF>
<SYNTAX CLEAN OBJECT = V-CLEAN>
<SYNONYM CLEAN SCRUB POLISH>
<SYNTAX CLEAR OBJECT FROM OBJECT = V-PLASTER-REMOVE>
<SYNTAX CLIMB DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX CLIMB UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX CLIMB OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-FOO>
<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>
<SYNONYM CLIMB>
;<SYNTAX SIT ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX SIT ON OBJECT (ON-GROUND IN-ROOM) = V-SIT-ON>
<SYNTAX CLOSE
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-CLOSE>
<SYNTAX COMPARE OBJECT TO OBJECT = V-COMPARE PRE-COMPARE>
<SYNTAX COMPARE OBJECT WITH OBJECT = V-COMPARE PRE-COMPARE>
<SYNTAX COMPARE OBJECT (HELD CARRIED MANY) = V-FOO-COMPARE>
<SYNTAX COUNT OBJECT = V-COUNT>
<SYNONYM 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 VILLAIN) = V-CURSES>
<SYNONYM CURSE DAMN FUCK SHIT HELL>
<SYNTAX DEFLATE OBJECT = V-DEFLATE>
<SYNTAX DIG IN OBJECT = V-DIG PRE-DIG>
<SYNTAX DIG
OBJECT (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE)
= V-DIG PRE-DIG ;*>
<SYNTAX DIG
IN
OBJECT (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE)
= V-DIG PRE-DIG>
<SYNTAX DIG OBJECT IN OBJECT = V-HOLE-DIG>
<SYNTAX DIG WITH OBJECT = V-DIG-WITH>
<SYNTAX DIP OBJECT (FIND BURNBIT) (HELD CARRIED HAVE)
IN OBJECT (ON-GROUND HAVE) = V-DIP-IN>
<SYNONYM DIP IMMERSE SUBMERGE DUNK>
<SYNTAX DISEMBARK OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
= V-DISEMBARK>
<SYNTAX DRINK
OBJECT (FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-DRINK>
<SYNTAX DRINK FROM OBJECT (HELD CARRIED) = V-DRINK-FROM>
<SYNTAX DRINK OBJECT (FIND DRINKBIT)
IN OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND) = V-DRINK-FROM>
<SYNTAX DRINK OBJECT (FIND DRINKBIT)
FROM OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND) = V-DRINK-FROM>
<SYNONYM DRINK IMBIBE SWALLOW SIP>
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-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 PRE-PUT>
<SYNONYM DROP RELEASE>
<SYNTAX LEAN ON OBJECT (HELD HAVE) = V-LEAN-ON>
<SYNTAX EAT
OBJECT (FIND FOODBIT) (HELD CARRIED ON-GROUND IN-ROOM MANY)
= V-EAT PRE-EAT>
<SYNONYM EAT CONSUME BITE CHEW>
<SYNTAX TASTE OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-TASTE>
<SYNTAX ENTER = V-ENTER>
<SYNTAX ENTER OBJECT = V-THROUGH>
<SYNTAX EXIT = V-EXIT>
<SYNTAX EXIT OBJECT = V-EXIT>
<SYNTAX EXAMINE OBJECT (HELD CARRIED ON-GROUND IN-ROOM 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 VILLAIN) = V-EXORCISE>
<SYNTAX EXORCISE AWAY OBJECT (FIND VILLAIN) = V-EXORCISE>
<SYNONYM EXORCISE BANISH CAST DRIVE BEGONE>
<SYNTAX EXTINGUISH
OBJECT
(FIND FLAMEBIT) (MANY HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
= V-LAMP-OFF>
<SYNONYM EXTINGUISH DOUSE>
<SYNTAX FILL
OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND TAKE HAVE)
WITH
OBJECT
= V-FILL>
<SYNTAX FILL IN OBJECT (ON-GROUND IN-ROOM) = V-FILL-IN>
<SYNTAX FILL
OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND TAKE HAVE)
= V-FILL>
<SYNTAX FILL OUT OBJECT = V-FILL-OUT>
<SYNTAX FIND OBJECT
= V-FIND>
<SYNONYM FIND WHERE SEEK SEE>
<SYNTAX FOLLOW = V-FOLLOW>
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
<SYNONYM FOLLOW PURSUE CHASE COME>
<SYNTAX GIVE
OBJECT (MANY HELD HAVE ;CARRIED ;ON-GROUND ;IN-ROOM)
TO
OBJECT (FIND VICBIT) (ON-GROUND)
= V-GIVE PRE-GIVE>
<SYNTAX GIVE
OBJECT (FIND VICBIT) (ON-GROUND)
OBJECT (MANY HELD HAVE)
= V-SGIVE PRE-SGIVE>
<SYNONYM GIVE HAND DONATE OFFER FEED>
<SYNTAX HELLO = V-HELLO ;*>
<SYNTAX HELLO OBJECT = V-HELLO>
<SYNONYM HELLO HI>
<SYNTAX HELP = V-HELP>
<SYNTAX HELP OBJECT = V-HELP>
<SYNTAX BLOW OUT OBJECT (HELD CARRIED ON-GROUND HAVE) = V-LAMP-OFF>
<SYNTAX BLOW UP
OBJECT
WITH
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED)
= V-INFLATE ;*>
<SYNTAX BLOW UP OBJECT = V-BLAST>
<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-DISEMBARK>
<SYNTAX JUMP OBJECT = V-JUMP-ROPE>
<SYNONYM JUMP LEAP DIVE>
<SYNTAX KICK OBJECT = V-KICK>
<SYNONYM KICK>
<SYNTAX KILL
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
= V-KILL>
<SYNONYM KILL MURDER SLAY DISPATCH STAB>
<SYNTAX KISS OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM) = V-KISS>
<SYNTAX KNOCK AT OBJECT = V-KNOCK ;*>
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
<SYNTAX KNOCK OVER OBJECT = V-PUSH>
<SYNTAX KNOCK DOWN OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
<SYNONYM KNOCK RAP>
<SYNTAX LAUNCH OBJECT (FIND VEHBIT) = V-LAUNCH>
<SYNTAX LEAVE = V-LEAVE>
<SYNTAX LEAVE OBJECT = V-DROP>
<SYNTAX LIGHT
OBJECT ;(FIND LIGHTBIT) (FIND BURNBIT)
(CARRIED ON-GROUND IN-ROOM)
= V-LAMP-ON ;*>
<SYNTAX LIGHT
OBJECT ;(FIND LIGHTBIT) (FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH
OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= 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)
= V-LOCK>
<SYNTAX LOOK = V-LOOK>
<SYNTAX LOOK AROUND OBJECT (FIND RMUNGBIT) = V-LOOK>
<SYNTAX LOOK UP OBJECT (FIND RMUNGBIT) = V-LOOK-UP>
<SYNTAX LOOK UP OBJECT = V-LOOK-UP>
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-EXAMINE>
<SYNTAX LOOK WITH OBJECT = V-LOOK-INSIDE>
<SYNTAX LOOK THROUGH OBJECT = V-LOOK-INSIDE>
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER>
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND>
<SYNTAX LOOK DOWN OBJECT = V-LOOK-DOWN>
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-LOOK-INSIDE>
<SYNTAX LOOK ON OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-LOOK-INSIDE>
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) WITH OBJECT =
V-READ PRE-READ>
<SYNTAX LOOK FOR OBJECT = V-FIND>
<SYNTAX LOOK OBJECT = V-CHASTISE>
<SYNONYM LOOK L STARE GAZE>
<SYNTAX SEARCH OBJECT = V-SEARCH>
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
<SYNTAX SEARCH FOR OBJECT = V-FIND>
<SYNTAX LOWER OBJECT = V-LOWER>
<SYNTAX LOWER OBJECT DOWN OBJECT = V-PUT PRE-PUT>
<SYNTAX MAKE OBJECT = V-MAKE>
<SYNTAX MELT
OBJECT
WITH
OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-MELT>
<SYNONYM MELT LIQUIFY>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO PRE-PUSH-TO>
<SYNTAX ROLL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
<SYNTAX PLAY OBJECT = V-PLAY>
<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-PULL-UP PRE-PULL-UP>
<SYNTAX PULL OBJECT THROUGH OBJECT (ON-GROUND IN-ROOM) = V-PULL-UP PRE-PULL-UP>
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO PRE-PUSH-TO>
<SYNONYM PULL TUG YANK>
<SYNTAX MUMBLE = V-MUMBLE>
<SYNONYM MUMBLE SIGH>
<SYNTAX DESTROY
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH
OBJECT (HELD CARRIED HAVE)
= V-MUNG PRE-MUNG>
<SYNTAX DESTROY IN OBJECT (ON-GROUND IN-ROOM)
WITH
OBJECT (HELD CARRIED HAVE) = V-MUNG PRE-MUNG>
<SYNTAX DESTROY
DOWN
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
WITH
OBJECT (HELD CARRIED HAVE)
= V-MUNG PRE-MUNG>
<SYNONYM DESTROY DAMAGE BREAK SMASH CHOP CHIP HIT>
<SYNTAX LUBRICATE OBJECT WITH OBJECT (HELD CARRIED) = V-OIL PRE-OIL>
<SYNONYM LUBRICATE GREASE>
<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 (HELD CARRIED HAVE) = V-PICK>
<SYNTAX PICK UP
OBJECT (FIND TAKEBIT)
(ON-GROUND MANY)
= V-TAKE PRE-TAKE>
<SYNTAX PLUG OBJECT WITH OBJECT (HELD CARRIED HAVE) = V-PLUG>
<SYNONYM PLUG GLUE PATCH REPAIR FIX>
<SYNTAX PLUGH = V-ADVENTURE>
<SYNONYM PLUGH XYZZY>
<SYNTAX POKE
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
= V-MUNG PRE-MUNG>
<SYNONYM POKE JAB BLIND>
<SYNTAX POUR OBJECT (HELD CARRIED) = V-POUR ;*>
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-POUR-IN>
<SYNTAX POUR OBJECT (HELD CARRIED HAVE) ON OBJECT = V-POUR-ON PRE-POUR-ON>
<SYNTAX POUR OBJECT (HELD CARRIED) FROM OBJECT = V-POUR>
<SYNONYM POUR SPILL>
<SYNTAX PRAY = V-PRAY>
<SYNTAX PRAY FOR OBJECT = V-PRAY>
<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 (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO PRE-PUSH-TO>
<SYNTAX PUSH OBJECT (ON-GROUND IN-ROOM) TO OBJECT = V-PUSH-TO PRE-PUSH-TO>
<SYNTAX PUSH OBJECT (HELD CARRIED HAVE) UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUSH OBJECT (HELD CARRIED HAVE) THROUGH OBJECT = V-PUSH-THROUGH>
<SYNTAX PUSH UP OBJECT = V-RAISE>
<SYNONYM PUSH PRESS>
<SYNTAX PUT OBJECT (ON-GROUND HELD MANY HAVE)
IN OBJECT = V-PUT PRE-PUT ;*>
<SYNTAX PUT OBJECT (ON-GROUND HELD MANY HAVE)
ON OBJECT = V-PUT-ON PRE-PUT>
<SYNTAX PUT DOWN OBJECT (HELD MANY) = V-DROP>
<SYNTAX PUT OBJECT (HELD MANY HAVE) UNDER OBJECT = V-PUT-UNDER>
<SYNTAX PUT ON OBJECT (IN-ROOM ON-GROUND CARRIED MANY) = V-WEAR>
<SYNTAX PUT OBJECT (HELD MANY HAVE) BEHIND OBJECT = V-PUT-BEHIND>
<SYNTAX PUT OBJECT (HELD HAVE) AGAINST OBJECT = V-PUT-AGAINST>
<SYNTAX PUT OBJECT (HELD HAVE) BY OBJECT = V-PUT-AGAINST>
<SYNTAX PUT OBJECT (HELD HAVE) AT OBJECT = V-PUT-AGAINST>
<SYNTAX PUT OBJECT (HELD HAVE) ACROSS OBJECT = V-PUT-ACROSS>
<SYNTAX PUT OBJECT (HELD HAVE) OVER OBJECT = V-PUT-ACROSS>
<SYNTAX PUT OBJECT (HELD HAVE) BETWEEN OBJECT = V-PUT-ON PRE-PUT>
<SYNONYM PUT STUFF INSERT PLACE HIDE WEDGE>
<SYNTAX RAISE OBJECT = V-RAISE ;*>
<SYNTAX RAISE UP OBJECT = V-RAISE>
<SYNONYM RAISE LIFT>
<SYNTAX RAPE OBJECT (FIND VICBIT) = V-RAPE>
<SYNONYM RAPE MOLEST>
<SYNTAX REACH IN OBJECT (FIND OPENBIT) = V-REACH-IN PRE-REACH-IN>
<SYNTAX READ
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM)
= V-READ PRE-READ ; *>
<SYNTAX READ IN OBJECT (HELD CARRIED HAVE) = V-READ-INSIDE>
<SYNTAX READ
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH
OBJECT (HELD CARRIED HAVE)
= V-READ PRE-READ>
<SYNONYM READ SKIM>
<SYNTAX REPENT = V-REPENT>
<SYNTAX ROLL OBJECT = V-ROLL>
<SYNTAX ROLL OBJECT (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO PRE-PUSH-TO>
<SYNTAX ROLL OBJECT (ON-GROUND IN-ROOM) TO OBJECT = V-PUSH-TO PRE-PUSH-TO>
<SYNTAX RUB OBJECT = V-RUB>
<SYNTAX RUB OBJECT WITH OBJECT = V-RUB>
<SYNONYM RUB TOUCH FEEL PAT PET>
<SYNTAX SCRIPT = V-SCRIPT>
<SYNTAX UNSCRIPT = V-UNSCRIPT>
<SYNTAX SEND OBJECT = V-SEND>
<SYNTAX SEND FOR OBJECT = V-SEND>
<SYNTAX SHAKE OBJECT = V-SHAKE>
<SYNONYM SHAKE EMPTY>
<SYNTAX SLIDE OBJECT = V-PUSH>
<SYNTAX SLIDE OBJECT UNDER OBJECT = V-PUT-UNDER>
<SYNTAX SLIDE OBJECT (IN-ROOM ON-GROUND) OBJECT = V-PUSH-TO>
<SYNTAX SLIDE OBJECT (IN-ROOM ON-GROUND) TO OBJECT = V-PUSH-TO>
<SYNTAX SKIP = V-SKIP>
<SYNONYM SKIP HOP>
<SYNTAX SMELL OBJECT = V-SMELL>
<SYNONYM SMELL SNIFF>
<SYNTAX SMOKE OBJECT = V-SMOKE>
<SYNTAX SPIN OBJECT = V-SPIN>
<SYNTAX SPRAY OBJECT ON OBJECT = V-SPRAY>
<SYNTAX SPRAY OBJECT WITH OBJECT = V-SSPRAY>
<SYNTAX SQUEEZE OBJECT = V-SQUEEZE>
<SYNTAX SQUEEZE OBJECT ON OBJECT = V-PUT PRE-PUT>
<SYNTAX STAND = V-STAND>
<SYNTAX STAND UP OBJECT (FIND RMUNGBIT) = V-STAND>
<SYNTAX STAND ON OBJECT (FIND VEHBIT) = V-CLIMB-ON>
<SYNTAX STAND UNDER OBJECT = V-STAND-UNDER>
<SYNTAX STAY = V-STAY>
<SYNTAX STRIKE
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND WEAPONBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
= V-ATTACK>
<SYNTAX STRIKE
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
= V-ATTACK ;*>
<SYNTAX STRIKE OBJECT (CARRIED ON-GROUND IN-ROOM) = V-LAMP-ON>
<SYNTAX SWIM = V-SWIM>
<SYNTAX SWIM IN 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 VILLAIN) (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 VEHBIT) (ON-GROUND) = V-DISEMBARK>
<SYNTAX TAKE OFF OBJECT (FIND VEHBIT) (ON-GROUND) = V-DISEMBARK>
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
<SYNTAX TAKE UNDER OBJECT = V-STAND-UNDER>
<SYNTAX TAKE UP OBJECT (FIND RMUNGBIT) = V-STAND>
<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>
<SYNTAX TAKE
OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
OF
OBJECT
= V-TAKE PRE-TAKE> ;"Take a sip of water"
<SYNTAX TAKE OBJECT (FIND TAKEBIT)
WITH OBJECT (FIND TOOLBIT) = V-TAKE PRE-TAKE>
<SYNONYM TAKE GRAB GET HOLD CARRY REMOVE>
<SYNTAX TELL OBJECT (FIND VICBIT) (IN-ROOM) = V-TELL>
<SYNONYM TELL ASK>
<SYNTAX SAY TO OBJECT (FIND VICBIT) (IN-ROOM) = V-TELL>
<SYNTAX SAY = V-SAY>
<SYNONYM SAY TALK>
<SYNTAX SLEEP = V-SLEEP>
<SYNTAX SLEEP IN OBJECT = V-SLEEP>
<SYNTAX SLEEP ON OBJECT = V-SLEEP>
<SYNTAX SLEEP DOWN ON OBJECT = V-SLEEP> ;"lie down"
<SYNTAX SLEEP DOWN OBJECT (FIND RMUNGBIT) = V-SLEEP>
<SYNONYM SLEEP LIE REST>
<SYNTAX INCANT = V-INCANT>
<SYNONYM INCANT CHANT>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) = V-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) OBJECT = V-THROW-DOWN>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) DOWN OBJECT = V-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) AT OBJECT = V-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) OFF OBJECT = V-THROW-OFF>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) OVER OBJECT = V-THROW-OFF>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE)
WITH OBJECT (ON-GROUND IN-ROOM)
= V-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) IN OBJECT = V-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) ON OBJECT = V-THROW>
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) TO OBJECT = V-THROW-DOWN>
<SYNONYM THROW HURL CHUCK TOSS>
<SYNTAX TIE OBJECT (ON-GROUND HELD CARRIED TAKE HAVE)
TO OBJECT = V-TIE PRE-TIE>
<SYNTAX TIE OBJECT (ON-GROUND HELD CARRIED TAKE HAVE)
AROUND OBJECT = V-TIE PRE-TIE>
<SYNTAX TIE UP
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
WITH
OBJECT (ON-GROUND IN-ROOM HELD CARRIED TAKE HAVE)
= V-TIE-UP>
<SYNONYM TIE FASTEN SECURE ATTACH>
<SYNTAX TIME = V-TIME>
<SYNTAX TURN OVER OBJECT = V-TURN-OVER>
<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>
<SYNTAX TURN
OBJECT (FIND TURNBIT) ( HELD CARRIED ON-GROUND IN-ROOM)
WITH
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
= V-TURN PRE-TURN ;*>
<SYNTAX TURN ON
OBJECT ;(FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
= V-LAMP-ON>
<SYNTAX TURN OFF
OBJECT ;(FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
= V-LAMP-OFF>
<SYNONYM TURN FLIP SHUT SET>
<SYNTAX UNFOLD OBJECT = V-UNFOLD>
<SYNTAX FOLD OBJECT = V-FOLD>
<SYNTAX FOLD UP OBJECT = V-FOLD>
<SYNTAX UNLOCK
OBJECT (ON-GROUND IN-ROOM)
WITH
OBJECT (FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
= 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 UNFASTEN UNATTACH UNHOOK>
<SYNTAX WAIT = V-WAIT>
<SYNONYM WAIT Z>
<SYNTAX WAKE OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ALARM ;*>
<SYNTAX WAKE UP OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ALARM>
<SYNONYM WAKE AWAKE SURPRISE STARTLE>
<SYNTAX WALK OBJECT = V-WALK>
<SYNTAX WALK IN OBJECT = V-THROUGH>
<SYNTAX WALK ON OBJECT = V-THROUGH>
<SYNTAX WALK OVER OBJECT = V-LEAP>
<SYNTAX WALK WITH OBJECT = V-THROUGH>
<SYNTAX WALK AROUND OBJECT = V-WALK-AROUND>
<SYNTAX WALK UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
<SYNTAX WALK DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
<SYNTAX WALK TO OBJECT = V-WALK-TO>
<SYNONYM WALK GO RUN PROCEED STEP>
<SYNTAX WAVE AT OBJECT = V-WAVE>
<SYNTAX WAVE TO OBJECT = V-WAVE>
<SYNTAX WAVE OBJECT (HELD CARRIED) = V-WAVE>
<SYNTAX WAVE OBJECT (HELD CARRIED) AT OBJECT = V-WAVE>
<SYNONYM WAVE BRANDISH SIGNAL>
<SYNTAX WEAR OBJECT = V-WEAR>
<SYNTAX WEIGH OBJECT = V-WEIGH>
<SYNTAX WET OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE)
WITH OBJECT = V-WET>
<SYNTAX WIN = V-WIN>
<SYNONYM WIN WINNAGE>
<SYNTAX WIND OBJECT = V-WIND>
<SYNTAX WIND UP OBJECT = V-WIND>
<SYNTAX YELL = V-YELL>
<SYNONYM YELL SCREAM SHOUT>
<SYNTAX ZORK = V-ZORK>
;"Simple questions"
;"<SYNTAX WHAT ...> WHAT is a synonym of EXAMINE"
;"<SYNTAX WHERE ...> WHERE is a synonym of FIND"
<SYNTAX IS OBJECT IN OBJECT = V-IS-IN>
<SYNTAX IS OBJECT ON OBJECT = V-IS-IN>

378
temple.zil Normal file
View File

@ -0,0 +1,378 @@
"TEMPLE for
INFIDEL
(c) Copyright 1983 Infocom, Inc. All Rights Reserved.
"
;"TEMPLE--This is the file for the Temple area, the passage(s) leading
to it, and any objects found there. TEMPLE will articulate with the
BARGE area."
<ROOM IN-THE-HALL
(IN ROOMS)
(DESC "Steep Passageway")
(FLAGS RLANDBIT)
(LDESC
"You are at the top of a steep, descending passage that plunges down to the
north. Although the angle is steep, it looks as if you should have firm enough
footing to travel safely. From the angle, it appears as though the passage
is actually leaving the pyramid, cutting down through the sand high overhead
to an adjoining building.")
(SOUTH TO BARGE-EXIT) ;"Articulates with BARGE area here"
(DOWN TO S-END)
(NORTH TO S-END)
(OUT TO BARGE-EXIT)>
<ROOM S-END
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Steep Passageway")
(LDESC
"You are about midway down a steep, descending, north/south passageway which
seems to lead out of the pyramid to the north. The walls of stone are polished
and as smooth as glass, glistening in your light, lighting the passage far to
the north and the south.")
(SOUTH TO IN-THE-HALL)
(UP TO IN-THE-HALL)
(DOWN TO N-END)
(NORTH TO N-END)>
<ROOM N-END
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Steep Passageway")
(LDESC
"You are at the north end of a descending passageway. You can see the smoothly
polished passageway rising up and out of sight to the south, heading back into
the pyramid. A large doorway cut into the stone walls lies to the north and,
through it, you can see an immense chamber.")
(SOUTH TO S-END)
(UP TO S-END)
(NORTH TO TEMPLE-ENTER)
(IN TO TEMPLE-ENTER)
(GLOBAL DOORWAY)>
<ROOM TEMPLE-ENTER
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Temple Chamber")
(LDESC
"You are in a huge chamber, immense in its size and scope, especially since it
is far underground. Your light seems to climb and fall from the high walls,
making their top boundaries undefined as they melt into inky darkness,
flickering into the unknown reaches high overhead. There is a huge doorway
carved out of the south wall, the arch at its top barely discernible in your
light. To the north is a similar doorway, slightly scaled down, with pillars on
either side of it, their shadows playing strange tricks on the wall behind
them. You can just barely make out the paintings on the walls, pictures of the
ancient Queen, her servants, and the priests in attendance.")
(SOUTH TO N-END)
(NORTH TO SKELETON-ROOM)
(OUT TO N-END)
(IN TO SKELETON-ROOM)
(GLOBAL PICTURES PILLARS)>
<ROOM SKELETON-ROOM
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Inner Chamber")
(LDESC
"You are in the temple's inner chamber. The ceiling here is lower, low enough
for your light to reach it. There are openings in the east and west walls, and
a large, arched doorway to the south. The walls are covered with paintings,
most of which depict the Queen in different stages of preparation for her trip
on the royal barge. One in particular, larger than any of the others, shows the
Queen and all of her attendants aboard the barge, floating through the air on
their way to the netherworld. There are some detailed hieroglyphs on one of the
walls.")
(OUT TO TEMPLE-ENTER)
(SOUTH TO TEMPLE-ENTER)
(WEST TO GOLDEN-ROOM)
(EAST TO SILVER-ROOM)
(GLOBAL HIEROGLYPHS PICTURES DOORWAY)>
<ROOM GOLDEN-ROOM
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Golden Room")
(LDESC
"You are in a room whose walls are covered with gold leaf. Your light reflects
off the walls with a rich, warm tone and reveals the outlines of hieroglyphics
engraved in the gold itself. There is a doorway cut into the south wall and,
through the reflected light, you can tell it leads into a small chamber. There
is another doorway leading out to the east.")
(EAST TO SKELETON-ROOM)
(SOUTH TO GCUP-ROOM)
(OUT TO SKELETON-ROOM)
(IN TO GCUP-ROOM)
(GLOBAL HIEROGLYPHS GOLD-LEAF)>
<OBJECT GOLD-LEAF
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT DONTTAKE TOUCHBIT)
(DESC "glittering leaf")
(SYNONYM LEAF)
(ADJECTIVE GOLD SILVER)
(TEXT
"The walls are covered with it. And it's very beautiful.")>
<ROOM GCUP-ROOM
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Golden Alcove")
(LDESC
"You are in a small alcove off the Golden Room. Sitting in the middle of this
small room is a roughly-hewn slab of granite, much like a legless table.")
(OUT TO GOLDEN-ROOM)
(NORTH TO GOLDEN-ROOM)
(GLOBAL TABLE)>
<ROOM SILVER-ROOM
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Silver Room")
(LDESC
"You are in the Silver Chamber, a room whose walls reflect your light
brilliantly due to their silver surface. A doorway leads west and out, while
another doorway leads into a smaller room to the south.")
(OUT TO SKELETON-ROOM)
(WEST TO SKELETON-ROOM)
(IN TO SCUP-ROOM)
(SOUTH TO SCUP-ROOM)
(GLOBAL HIEROGLYPHS GOLD-LEAF)>
<ROOM SCUP-ROOM
(IN ROOMS)
(FLAGS RLANDBIT)
(DESC "Silver Alcove")
(LDESC
"You are in a small alcove off the Silver Room. Sitting in the middle of this
small room is a roughly-hewn slab of granite, much like a legless table.")
(OUT TO SILVER-ROOM)
(NORTH TO SILVER-ROOM)
(GLOBAL TABLE)>
<OBJECT GOLD-TABLE
(IN GCUP-ROOM)
(FLAGS CONTBIT SURFACEBIT OPENBIT NDESCBIT TRANSBIT DONTTAKE)
(DESC "granite table")
(SYNONYM TABLE SLAB)
(ADJECTIVE GRANITE)
(CAPACITY 100)
(ACTION HUH?)>
<OBJECT GOLD-CUP
(IN GOLD-TABLE)
(FLAGS CONTBIT OPENBIT TAKEBIT SEARCHBIT)
(DESC "golden chalice")
(FDESC
"Sitting in the middle of the granite table is a gleaming chalice made
of gold.")
(TEXT
"The cup is heavier than you thought it might be. The outside of it is
beautifully etched with scenes of the Queen and her handmaidens.")
(SYNONYM CUP CHALIC)
(ADJECTIVE GOLD GOLDEN)
(VALUE 15)
(CAPACITY 5)
(SIZE 8)
(MAP 1)
(ACTION CUP-FCN)>
<OBJECT SILVER-CUP
(IN SILVER-TABLE)
(FLAGS CONTBIT OPENBIT TAKEBIT SEARCHBIT)
(DESC "silver chalice")
(TEXT
"There's a thin line etched inside the chalice which travels all the way
around it. The chalice is not very heavy.")
(FDESC
"Sitting in the middle of the granite table is a chalice made of gleaming silver.")
(SYNONYM CUP CHALIC)
(ADJECTIVE SILVER)
(VALUE 15)
(SIZE 5)
(CAPACITY 5)
(MAP 1)
(ACTION CUP-FCN)>
<OBJECT LINE
(IN GLOBAL-OBJECTS)
(FLAGS NDESCBIT TOUCHBIT)
(DESC "line")
(SYNONYM LINE)
(ADJECTIVE THIN)
(TEXT
"The line goes around the interior of the silver cup.")
(ACTION LINE-FCN)>
<ROUTINE LINE-FCN ()
<COND (<NOT <OR <HELD? ,SILVER-CUP>
<IN? ,SILVER-CUP ,HERE>>>
<TELL "I can't see any " D ,PRSO " here." CR>
<RTRUE>)>>
<ROUTINE CUP-FCN ()
<COND (<AND <PRSO? ,SILVER-CUP>
<VERB? EXAMINE LOOK-INSIDE>
<OR <IN? ,WATER ,SILVER-CUP>
<IN? ,LIQUID ,SILVER-CUP>>>
<TELL "The ">
<COND (<IN? ,WATER ,SILVER-CUP>
<TELL "water">)
(T
<TELL "oily liquid">)>
<TELL " fills the cup up to the line." CR>
<RTRUE>)
(<VERB? OPEN CLOSE>
<HOW? ,PRSO>
<RTRUE>)>>
<OBJECT SILVER-TABLE
(IN SCUP-ROOM)
(FLAGS CONTBIT SURFACEBIT TRANSBIT OPENBIT NDESCBIT DONTTAKE)
(DESC "granite table")
(SYNONYM TABLE SLAB)
(ADJECTIVE GRANITE)
(CAPACITY 100)
(ACTION HUH?)>
<OBJECT SKELETON
(IN SKELETON-ROOM)
(DESC "skeleton")
(FDESC
"Lying before you in tortured repose are the bony remains of a former
adventurer, someone who tried looting the pyramid long, long ago. As you bend
over to pay your respects, something glitters, catching your eye as you move
your head.")
(SYNONYM SKELET REMAIN BONES ADVENT)
(ADJECTIVE BONY)
(FLAGS TRYTAKEBIT TAKEBIT CONTBIT OPENBIT SEARCHBIT)
(CAPACITY 15)
(ACTION SKELETON-FCN)>
<ROUTINE SKELETON-FCN ()
<COND (<OR <VERB? TAKE SHAKE MOVE>
<AND <VERB? PUT>
<EQUAL? ,PRSO ,SKELETON>>>
<TELL
"If you tried that, the skeleton would fall apart, bone by bone." CR>
<RTRUE>)
(<VERB? OPEN CLOSE>
<HOW? ,PRSO>
<RTRUE>)
(<VERB? ALARM>
<TELL "Let the dead rest." CR>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<COND (<IN? ,RING ,DIGITS>
<TELL
"On the bony digits of one hand is a jeweled ring." CR>)
(T
<TELL
"I see nothing special about the " D ,PRSO "." CR>)>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<HOW? ,PRSO>
<RTRUE>)>>
<OBJECT DIGITS
(IN SKELETON)
(DESC "calcified hand")
(FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)
(SYNONYM DIGITS HAND)
(ADJECTIVE BONY CALCIF)
(ACTION DIGIT-FCN)>
<ROUTINE DIGIT-FCN ()
<COND (<VERB? OPEN CLOSE>
<HOW? ,PRSO>
<RTRUE>)
(<VERB? EXAMINE>
<PERFORM ,V?EXAMINE ,SKELETON>
<RTRUE>)>>
<OBJECT RING
(IN DIGITS)
(FLAGS TAKEBIT DONTTAKE NDESCBIT CONTBIT OPENBIT SEARCHBIT)
(DESC "jeweled ring")
(SYNONYM RING)
(ADJECTIVE JEWELE)
(TEXT
"At first glance, you are overwhelmed with the beauty and richness of the ring.
On close examination you notice the ring has a tiny needle on the inside of
the band.")
(SIZE 1)
(ACTION WEAR-RING-FCN)>
<ROUTINE WEAR-RING-FCN ()
<COND (<AND <VERB? WEAR>
<IN? ,RING ,WINNER>>
<TELL
"Ouch! It seems you've pricked your finger while putting on the ring."
CR>
<ENABLE <QUEUE I-RING-KILL -1>>
<FSET ,RING ,WEARBIT>
<RTRUE>)
(<VERB? WEAR>
<TELL "(Taken)" CR>
<MOVE ,RING ,WINNER>
<PERFORM ,V?WEAR ,RING>
<RTRUE>)
(<VERB? TAKE>
<COND (<ITAKE>
<TELL "Taken." CR>
<FCLEAR ,RING ,NDESCBIT>
<FCLEAR ,NEEDLE ,INVISIBLE>
<FCLEAR ,RING ,DONTTAKE>
<PUTP ,SKELETON ,P?FDESC
"Lying before you in tortured repose are the bony remains of a former adventurer.">)>
<RTRUE>)
(<AND <VERB? PUT>
<FSET? ,RING ,NDESCBIT>>
<FCLEAR ,NEEDLE ,INVISIBLE>
<FCLEAR ,RING ,NDESCBIT>
<FCLEAR ,RING ,DONTTAKE>
<PUTP ,SKELETON ,P?FDESC
"Lying before you in tortured repose are the bony remains of a former adventurer.">
<RFALSE>)
(<VERB? OPEN CLOSE>
<HOW? ,PRSO>
<RTRUE>)
(<VERB? DISEMBARK>
<TELL "It's stuck on your finger." CR>)
(<VERB? EXAMINE LOOK-INSIDE>
<TELL <GETP ,RING ,P?TEXT> CR>
<FCLEAR ,NEEDLE ,INVISIBLE>
<FCLEAR ,RING ,DONTTAKE>
<RTRUE>)>>
<OBJECT NEEDLE
(IN RING)
(FLAGS NDESCBIT INVISIBLE DONTTAKE TRYTAKEBIT)
(DESC "tiny needle")
(SYNONYM NEEDLE)
(ADJECTIVE TINY)
(SIZE 1)
(TEXT
"Inside the band is a small needle set at an angle designed to pierce the skin.")
(ACTION TOUCH-NEEDLE-FCN)>
<ROUTINE TOUCH-NEEDLE-FCN ()
<COND (<VERB? RUB>
<TELL
"You prick your finger on the tiny needle sticking out from the inside of the
ring." CR>
<ENABLE <QUEUE I-RING-KILL -1>>
<RTRUE>)
(<VERB? DROP THROW PUT PUT-ON>
<TELL "Better find a haystack first." CR>)
(<VERB? SMELL>
<TELL "It smells very faintly of almonds." CR>)
(<VERB? TASTE>
<JIGS-UP
"Ugh! It tastes terrible!|
|
You stand there in horrified amazement, feeling the poison creeping down your
throat and acting on your body almost instantaneously. Time to shuffle off...">
<RFATAL>)>>

2723
verbs.zil Normal file

File diff suppressed because it is too large Load Diff