2275 lines
62 KiB
Plaintext
2275 lines
62 KiB
Plaintext
"GLOBALS for
|
|
PLUNDERED HEARTS
|
|
(c) Copyright 1987 Infocom, Inc. All Rights Reserved."
|
|
|
|
<DIRECTIONS ;"Do not change the order of the first 8 without consulting MARC!"
|
|
NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
|
|
|
|
;<ADJ-SYNONYM LARGE LARGER HUGE HUGER BIG BIGGER GIANT GIGANTIC TREMENDOUS
|
|
MIGHTY MIGHTIER MASSIVE>
|
|
|
|
;<ADJ-SYNONYM WIDE BROAD>
|
|
|
|
;<ADJ-SYNONYM SMALL SMALLER TINY TINIER LITTLE PETITE TEENSY WEENSY>
|
|
|
|
;<ADJ-SYNONYM MY MINE>
|
|
|
|
<GLOBAL LIT T>
|
|
|
|
;<GLOBAL RANK 0>
|
|
|
|
<GLOBAL MOVES 0>
|
|
|
|
<GLOBAL SCORE 0>
|
|
|
|
<GLOBAL HERE:OBJECT FRONTISPIECE ;CABIN>
|
|
|
|
;"INBIT = set on object/vehicle one gets into."
|
|
<OBJECT GLOBAL-OBJECTS
|
|
(SYNONYM ZZMGCK) ;"No, this synonym doesn't need to exist... sigh"
|
|
(DESC "it")
|
|
(FLAGS INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT OPENBIT SEARCHBIT
|
|
TRANSBIT WEARBIT WORNBIT MUNGBIT ONBIT LIGHTBIT RLANDBIT
|
|
VEHBIT INDOORSBIT CONTBIT VOWELBIT LOCKEDBIT NDESCBIT DOORBIT
|
|
ACTORBIT ;BURNBIT INBIT FEMALEBIT EVERYBIT DEADBIT)>
|
|
|
|
;<BIT-SYNONYM EVERYBIT ;RESCUEBIT ;TIEDBIT>
|
|
|
|
<OBJECT LOCAL-GLOBALS
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "it")
|
|
(SYNONYM ZZMGCK) ;"Yes, this synonym needs to exist... sigh"
|
|
;(DESCFCN 0)
|
|
;(GLOBAL GLOBAL-OBJECTS)
|
|
;(FDESC "F")
|
|
;(LDESC "F")
|
|
;(SIZE 0)
|
|
;(TEXT "")
|
|
;(CAPACITY 0)
|
|
;(THINGS <PSEUDO (ZZMGCK ZZMGCK ME-F)>)>
|
|
|
|
<OBJECT ROOMS
|
|
(IN TO ROOMS)
|
|
(DESC "it")>
|
|
|
|
<GLOBAL DIPPING-OARS
|
|
"You dip the oars and pull them towards you. The ">
|
|
|
|
<OBJECT INTDIR
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "direction")
|
|
(SYNONYM DIRECT)
|
|
(ADJECTIVE NORTH SOUTH EAST WEST NW NE SW SE)
|
|
(ACTION INTDIR-F)>
|
|
|
|
<ROUTINE INTDIR-F ()
|
|
<COND (<AND <VERB? ROW-DIR ROW ROW-TO>
|
|
<IN? ,PROTAGONIST ,SKIFF>>
|
|
<COND (<EQUAL? ,P-DIRECTION ,P?EAST>
|
|
<COND (<EQUAL? ,HERE ,BY-SHIP>
|
|
<TELL
|
|
"That would take you past" T ,SHIP " into the open sea!" CR>
|
|
<RTRUE>)>
|
|
<SETG ROWING ,ROWEAST>
|
|
<TELL
|
|
,DIPPING-OARS D ,SKIFF " plows through the lagoon.">
|
|
<COND (<EQUAL? ,HERE ,SHALLOWS>
|
|
<QUEUE I-CURRENT -1>
|
|
<SETG ROWING 1> ;"Kludge for SHALLOWS/EAST"
|
|
<MOVE ,SKIFF ,LAGOON>
|
|
<CRLF>
|
|
<GOTO ,SKIFF>)
|
|
(<EQUAL? <+ ,SKIFF-LOC ,ROWING>
|
|
,SHIP-LOC <+ ,SHIP-LOC 1>>
|
|
<COND (<FSET? ,SHIP ,MUNGBIT>
|
|
<JIGS-UP
|
|
" Suddenly, an offshore current pulls you past the reefs into the open sea.
|
|
You haven't the strength to row back.">)
|
|
(T
|
|
<TELL
|
|
" You glide into the shadow of" TR ,SHIP CR>
|
|
<SETG SKIFF-LOC ,SHIP-LOC>
|
|
<SETG ROWING 0>
|
|
<MOVE ,SKIFF ,BY-SHIP>
|
|
<GOTO ,SKIFF>)>)
|
|
(T
|
|
<CRLF>)>)
|
|
(<EQUAL? ,P-DIRECTION ,P?WEST>
|
|
<SETG ROWING ,ROWWEST>
|
|
<COND (<EQUAL? ,HERE ,SHALLOWS>
|
|
<TELL
|
|
"You can row" T ,SKIFF " no farther west" ,PCR>)
|
|
(<L? <+ ,SKIFF-LOC ,ROWING> 2>
|
|
<TELL ,DIPPING-OARS D ,SKIFF
|
|
" noses into the sand of the shallows. You get out" ,PCR CR>
|
|
<DEQUEUE I-CURRENT>
|
|
<SETG SKIFF-LOC 1>
|
|
<MOVE ,SKIFF ,SHALLOWS>
|
|
<GOTO ,SHALLOWS>)
|
|
(T
|
|
<TELL
|
|
,DIPPING-OARS D ,SKIFF " shoots over the waves" ,PCR>
|
|
<COND (<EQUAL? ,HERE ,BY-SHIP>
|
|
<MOVE ,SKIFF ,LAGOON>
|
|
<GOTO ,SKIFF>)>)>
|
|
<RTRUE>)
|
|
(<OR <EQUAL? ,P-DIRECTION ,P?NORTH ,P?NW ,P?NE>
|
|
<EQUAL? ,P-DIRECTION ,P?SOUTH ,P?SW ,P?SE>>
|
|
<TELL
|
|
"You can barely row back and forth, much less side to side!" CR>)>)>>
|
|
|
|
;<ROUTINE ;INTDIR-F ()
|
|
<COND (<AND <VERB? ROW-DIR ROW>
|
|
<IN? ,PROTAGONIST ,SKIFF>>
|
|
<COND (<EQUAL? ,HERE ,BEACH>
|
|
<DO-FIRST "launch" ,SKIFF>)
|
|
(<EQUAL? ,P-DIRECTION ,P?EAST>
|
|
<COND (<EQUAL? ,HERE ,BY-SHIP>
|
|
<TELL
|
|
"That would take you past" T ,SHIP " into the open sea!" CR>
|
|
<RTRUE>)>
|
|
<SETG ROWING ,ROWEAST>
|
|
<TELL
|
|
,DIPPING-OARS D ,SKIFF " plows through the lagoon.">
|
|
<COND (<EQUAL? ,HERE ,SHALLOWS>
|
|
<QUEUE I-CURRENT 2>
|
|
<MOVE ,SKIFF ,LAGOON>
|
|
<SETG ROWING 1>
|
|
<CRLF> <CRLF>
|
|
<GOTO ,SKIFF>)
|
|
(<EQUAL? <+ ,SKIFF-LOC ,ROWING> ,SHIP-LOC>
|
|
<COND (<FSET? ,SHIP ,MUNGBIT>
|
|
<JIGS-UP
|
|
"With surprising force the current pulls you past the
|
|
reefs into the open sea. You haven't the strength to row back.">
|
|
<RTRUE>)>
|
|
<TELL
|
|
" You glide into the shadow of" TR ,SHIP CR>
|
|
<MOVE ,SKIFF ,BY-SHIP>
|
|
<GOTO ,SKIFF>)
|
|
(T
|
|
<RTRUE>)>)
|
|
(<EQUAL? ,P-DIRECTION ,P?WEST>
|
|
<SETG ROWING ,ROWWEST>
|
|
<TELL
|
|
,DIPPING-OARS D ,SKIFF " shoots over the lagoon">
|
|
<COND (<OR <EQUAL? ,HERE ,SHALLOWS>
|
|
<L? <+ ,SKIFF-LOC ,ROWING> 2>>
|
|
<TELL
|
|
", ramming into the sand of the beach. You stand up" ,PCR CR>
|
|
<DEQUEUE I-CURRENT>
|
|
<SETG ROWING 0>
|
|
<MOVE ,SKIFF ,BEACH>
|
|
<GOTO ,BEACH>)
|
|
(T
|
|
<TELL ,PCR CR>)>
|
|
<RTRUE>)
|
|
(<OR <EQUAL? ,P-DIRECTION ,P?NORTH ,P?NW ,P?NE>
|
|
<EQUAL? ,P-DIRECTION ,P?SOUTH ,P?SW ,P?SE>>
|
|
<TELL
|
|
"You can barely row back and forth, much less side to side!" CR>)>)>>
|
|
|
|
<OBJECT INTNUM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "number")
|
|
(SYNONYM NUMBER)
|
|
;(ADJECTIVE WIFE HUSBAND \#) ;"for things like WIFE # 375"
|
|
;(ACTION INTNUM-F)>
|
|
|
|
|
|
<OBJECT PSEUDO-OBJECT
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "pseudo") ;"DESC must be 6 characters long! --pdl 3/4/86"
|
|
(ACTION ME-F)>
|
|
|
|
<OBJECT IT
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM IT THEM)
|
|
(DESC "it")
|
|
(FLAGS VOWELBIT NARTICLEBIT TOUCHBIT)>
|
|
|
|
<OBJECT HIM
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM HIM HIMSELF)
|
|
(DESC "him")
|
|
(FLAGS NARTICLEBIT TOUCHBIT)>
|
|
|
|
<OBJECT HER
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM HER HERSELF)
|
|
(DESC "her")
|
|
(FLAGS NARTICLEBIT TOUCHBIT)>
|
|
|
|
;<OBJECT EACH-OTHER
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "it")
|
|
(SYNONYM OTHER ITSELF)
|
|
(ADJECTIVE EACH)
|
|
(ACTION EACH-OTHER-F)>
|
|
|
|
;<ROUTINE EACH-OTHER-F ()
|
|
<COND (<PRSI? ,EACH-OTHER>
|
|
<PERFORM-PRSA ,PRSO ,PRSO>
|
|
<RTRUE>)
|
|
(<NOT <NOUN-USED ,W?ITSELF ,EACH-OTHER>>
|
|
<SETG P-WON <>>
|
|
<COND (<ADJ-USED ,A?EACH>
|
|
<CANT-USE ,A?EACH T>)
|
|
(T
|
|
<CANT-USE ,W?OTHER T>)>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT MAN
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "man")
|
|
(SYNONYM MAN MEN YOU SAILOR)
|
|
(ADJECTIVE SIR BEWIGGED SIRRAH GENTLEMAN)
|
|
;(FLAGS ACTORBIT)
|
|
(ACTION MAN-F)>
|
|
|
|
<ROUTINE MAN-F ("AUX" PERSON)
|
|
<COND ;(<VERB? FOLLOW> ;"for YOUNG WOMAN"
|
|
<COND (<EQUAL? ,FOLLOW-FLAG 4>
|
|
<TELL ,DONT-WANT-TO>)
|
|
(<EQUAL? ,FOLLOW-FLAG 5>
|
|
<DO-WALK ,P?NORTH>)
|
|
(<EQUAL? ,FOLLOW-FLAG 6>
|
|
<DO-WALK ,P?EAST>)
|
|
(T
|
|
<V-WALK-AROUND>)>)
|
|
(<AND <PRSO? ,ME>
|
|
<VERB? TAKE-WITH>>
|
|
<RECOGNIZE>)
|
|
(<AND <NOUN-USED ,W?SAILOR ,MAN>
|
|
<VERB? HELLO>>
|
|
<COND (<GLOBAL-IN? ,CREW ,HERE>
|
|
<PERFORM ,V?HELLO ,CREW>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "Nothing happens here." CR>)>)
|
|
(<AND <EQUAL? <GET ,P-NAMW 0> ,W?MAN> ;"MAN is the PRSO"
|
|
<PRSO? ,MAN> ;"in case PRSI is also MAN or WOMAN">
|
|
<COND (<ADJ-USED ,A?BEWIGGED>
|
|
<PERFORM-PRSA ,LAFOND ,PRSI>)
|
|
(<AND <NOUN-USED ,W?MEN ,MAN>
|
|
<NOT <EQUAL? ,HERE ,BALLROOM
|
|
,ORCHESTRA ,SUPPER-ROOM>>>
|
|
<MORE-SPECIFIC>)
|
|
(<SET PERSON <FIND-MAN>>
|
|
<PERFORM-PRSA .PERSON ,PRSI>
|
|
<RTRUE>)
|
|
(T
|
|
<CANT-SEE ,MAN>)>)
|
|
(<AND <EQUAL? <GET ,P-NAMW 1> ,W?MAN> ;"MAN is the PRSI"
|
|
<PRSI? ,MAN> ;"in case PRSO is also MAN or WOMAN">
|
|
<COND (<ADJ-USED ,A?BEWIGGED>
|
|
<PERFORM-PRSA ,PRSO ,LAFOND>)
|
|
(<AND <NOUN-USED ,W?MEN ,MAN>
|
|
<NOT <EQUAL? ,HERE ,BALLROOM
|
|
,ORCHESTRA ,SUPPER-ROOM>>>
|
|
<MORE-SPECIFIC>)
|
|
(<SET PERSON <FIND-MAN>>
|
|
<PERFORM-PRSA ,PRSO .PERSON>
|
|
<RTRUE>)
|
|
(T
|
|
<CANT-SEE ,MAN>)>)>>
|
|
|
|
<ROUTINE FIND-MAN ()
|
|
<COND (<IN? ,HERO ,HERE>
|
|
<RETURN ,HERO>)
|
|
(<IN? ,LAFOND ,HERE>
|
|
<RETURN ,LAFOND>)
|
|
(<IN? ,DAD ,HERE>
|
|
<RETURN ,DAD>)
|
|
(<IN? ,CRULLEY ,HERE>
|
|
<RETURN ,CRULLEY>)
|
|
(<IN? ,COOKIE ,HERE>
|
|
<RETURN ,COOKIE>)
|
|
(<IN? ,BUTLER ,HERE>
|
|
<RETURN ,BUTLER>)
|
|
(<GLOBAL-IN? ,DANCERS ,HERE>
|
|
<RETURN ,DANCERS>)
|
|
(<GLOBAL-IN? ,CREW ,HERE>
|
|
<RETURN ,CREW>)
|
|
(<IN? ,CROC ,HERE>
|
|
<RETURN ,CROC>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
|
|
<OBJECT NOT-HERE-OBJECT
|
|
(DESC "it")
|
|
(FLAGS NARTICLEBIT)
|
|
(ACTION NOT-HERE-OBJECT-F)>
|
|
|
|
<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ (X <>))
|
|
<COND (<AND <PRSO? ,NOT-HERE-OBJECT>
|
|
<PRSI? ,NOT-HERE-OBJECT>>
|
|
<TELL "Those things aren't here!" CR>
|
|
<RTRUE>)
|
|
(<AND <EQUAL? ,P-XNAM ,W?MOUTH ,W?EYES>
|
|
<EQUAL? ,P-XADJN ,W?LAFOND <>>>
|
|
<COND (<PRSO? ,NOT-HERE-OBJECT>
|
|
<SETG PRSO ,LAFOND>)
|
|
(T
|
|
<SETG PRSI ,LAFOND>)>
|
|
<RFALSE>)
|
|
(<AND <EQUAL? ,P-XADJN ,W?POWDER>
|
|
<HELD? ,HORN>>
|
|
<COND (<PRSO? ,NOT-HERE-OBJECT>
|
|
<SETG PRSO ,POWDER>)
|
|
(T
|
|
<SETG PRSI ,POWDER>)>)
|
|
;(<AND <EQUAL? ,P-XNAM ,W?HAND ,W?HANDS>
|
|
<EQUAL? ,P-XADJN ,W?MITRE ,W?KING\'S>
|
|
<VERB? SHAKE TAKE>>
|
|
<PERFORM ,V?SHAKE-WITH ,HANDS ,MITRE>
|
|
<RTRUE>)
|
|
(<AND <OR <EQUAL? ,P-XNAM ,W?HANDS ,W?HAND>
|
|
<EQUAL? ,P-XNAM ,W?FINGER ,W?EYE ,W?EYES>
|
|
<EQUAL? ,P-XNAM ,W?HEAD ,W?JAMISON>
|
|
<EQUAL? ,P-XNAM ,W?LIP ,W?LIPS ,W?MOUTH>>
|
|
<OR <EQUAL? ,P-XADJN ,W?NICK ,W?NICHOLAS ,W?CROC\'S>
|
|
<EQUAL? ,P-XADJN ,W?DAD ,W?FATHER ,W?PAPA>
|
|
<EQUAL? ,P-XADJN ,W?WOMAN ,W?LUCY>
|
|
<EQUAL? ,P-XADJN ,W?JEAN ,W?LAFOND>>>
|
|
<TELL
|
|
"[Sadly, we haven't the space to handle everything. Try to
|
|
refer only to characters in the story, not individual body parts or
|
|
possessions. For example, you can EXAMINE PIRATE but you can't
|
|
EXAMINE PIRATE'S EYEPATCH.]" CR>
|
|
<RTRUE>)
|
|
(<PRSO? ,NOT-HERE-OBJECT>
|
|
<SET TBL ,P-PRSO>)
|
|
(T
|
|
<SET TBL ,P-PRSI>
|
|
<SET PRSO? <>>)>
|
|
<COND (<AND .PRSO?
|
|
<PRSO-MOBY-VERB?>>
|
|
<SET X T>)
|
|
(<AND <NOT .PRSO?>
|
|
<PRSI-MOBY-VERB?>>
|
|
<SET X T>)>
|
|
<COND (.X ;"the verb is a moby-find verb"
|
|
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
|
|
<COND (<NOT <EQUAL? .OBJ ,NOT-HERE-OBJECT>>
|
|
<RTRUE>)>)
|
|
(T
|
|
<RFALSE>)>
|
|
<COND (<VERB? WALK-TO FOLLOW>
|
|
<V-WALK-AROUND>)
|
|
(T
|
|
<MORE-SPECIFIC>
|
|
;<TELL "[" ,YOULL-HAVE-TO "be more specific.]" CR>)>)
|
|
(T
|
|
<COND (<EQUAL? ,WINNER ,PROTAGONIST>
|
|
<TELL "You">)
|
|
(<FSET? ,WINNER ,DEADBIT>
|
|
<TELL ,DOESNT-RESPOND>
|
|
<RFATAL>)
|
|
(T
|
|
<TELL "Looking confused," T ,WINNER " says, \"I">)>
|
|
<TELL " can't see">
|
|
<COND (<AND <NOT <ADJNAME? ,P-XADJ>> ;"adj.number"
|
|
<NOT <NAME? ,P-XNAM>>>
|
|
<TELL " any">)>
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " here!">
|
|
<COND (<NOT <EQUAL? ,WINNER ,PROTAGONIST>>
|
|
<TELL "\"">)>
|
|
<CRLF>)>
|
|
<STOP>>
|
|
|
|
<ROUTINE PRSO-MOBY-VERB? ()
|
|
<COND (<OR <EQUAL? ,PRSA ,V?WHAT ,V?WHERE ,V?SHOOT ,V?SSHOOT>
|
|
<EQUAL? ,PRSA ,V?WALK-TO ;,V?MAKE>
|
|
<EQUAL? ,PRSA ;,V?CALL ;,V?SAY ,V?I-LOVE-YOU>
|
|
<EQUAL? ,PRSA ,V?FIND ,V?FOLLOW ,V?SAVE-SOMETHING>
|
|
<EQUAL? ,PRSA ;,V?USE-QUOTES ,V?ANSWER-KLUDGE>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE PRSI-MOBY-VERB? ()
|
|
<COND (<EQUAL? ,PRSA ,V?ASK-ABOUT ,V?ASK-FOR
|
|
,V?TELL-ABOUT ,V?I-LOVE-YOU>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ)
|
|
;"Protocol: return T if case was handled and msg TELLed, NOT-HERE-OBJECT
|
|
if 'can't see' msg TELLed, <> if PRSO/PRSI ready to use"
|
|
;"Special-case code goes here. <MOBY-FIND .TBL> returns # of matches. If 1,
|
|
then P-MOBY-FOUND is it. You can treat the 0 and >1 cases alike or differently.
|
|
Always return RFALSE (not handled) if you have resolved the problem."
|
|
<SET M-F <MOBY-FIND .TBL>>
|
|
;<COND (,DEBUG
|
|
<TELL "[Found " N .M-F " obj]" CR>)>
|
|
<COND (<EQUAL? 1 .M-F>
|
|
;<COND (,DEBUG
|
|
<TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>
|
|
<COND (.PRSO?
|
|
<SETG PRSO ,P-MOBY-FOUND>
|
|
<THIS-IS-IT ,PRSO>)
|
|
(T
|
|
<SETG PRSI ,P-MOBY-FOUND>)>
|
|
<RFALSE>)
|
|
(<AND <L? 1 .M-F>
|
|
<SET OBJ <APPLY <GETP <SET OBJ <GET/B .TBL 1>> ,P?GENERIC>>>>
|
|
;"Protocol: returns .OBJ if that's the one to use
|
|
,NOT-HERE-OBJECT if case was handled and msg TELLed
|
|
<> if WHICH-PRINT should be called"
|
|
;<COND (,DEBUG
|
|
<TELL "[Generic: " D .OBJ "]" CR>)>
|
|
<COND (<EQUAL? .OBJ ,NOT-HERE-OBJECT>
|
|
<RTRUE>)
|
|
(.PRSO?
|
|
<SETG PRSO .OBJ>
|
|
<THIS-IS-IT ,PRSO>)
|
|
(T
|
|
<SETG PRSI .OBJ>)>
|
|
<RFALSE>)
|
|
(T
|
|
,NOT-HERE-OBJECT)>>
|
|
|
|
<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> <>>)>>
|
|
|
|
<OBJECT LADDER ;"TAKE ROPE = should get ladder."
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "ladder")
|
|
(SYNONYM LADDER ROPE)
|
|
(ADJECTIVE ROPE)
|
|
(FLAGS NDESCBIT TRYTAKEBIT)
|
|
(ACTION LADDER-F)>
|
|
|
|
<ROUTINE LADDER-F ()
|
|
<COND (<NOT ,LADDER-HANGING>
|
|
<CANT-SEE ,LADDER>)
|
|
(<VERB? TAKE CLIMB BOARD>
|
|
<COND (<EQUAL? <LOC ,PROTAGONIST> ,CAPT-QUARTERS>
|
|
<COND (<FSET? ,LEDGE ,MUNGBIT>
|
|
<TELL
|
|
"You lean over" T ,LEDGE ", but" T ,LADDER
|
|
" is too far out to reach" ,PCR>)
|
|
(T
|
|
<TELL
|
|
"It's on the other side of the window" ,PCR>)>)
|
|
(<EQUAL? <LOC ,PROTAGONIST> ,LEDGE>
|
|
<TELL "You ">
|
|
<COND (<ANYTHING-HELD>
|
|
<ROB ,PROTAGONIST ,RETICULE>
|
|
<TELL
|
|
"put everything in" T ,RETICULE " and ">)>
|
|
<COND (<FSET? ,POOP ,TOUCHBIT>
|
|
<TELL "hop out, catching the">) ;"TR ,LADDER CR"
|
|
(T
|
|
<QUEUE I-LADDER-BLOWS -1>
|
|
<TELL
|
|
"reach out for" T ,LADDER " and over-balance, tumbling from your perch.
|
|
Your hand closes on a slimy hemp rung as you fly out over the waves, clinging
|
|
tenuously, feet free, to the">)> ;"TR ,LADDER CR"
|
|
<PRSO-PRINT>
|
|
<TELL ,PCR CR>
|
|
<GOTO ,ON-LADDER>)
|
|
(<AND <EQUAL? ,HERE ,ON-LADDER>
|
|
<VERB? TAKE>>
|
|
<TELL ,HOLDING-IT>)
|
|
(<EQUAL? <LOC ,PROTAGONIST> ,SKIFF>
|
|
<DEBARK-SKIFF>)
|
|
(<EQUAL? ,HERE ,POOP>
|
|
<TELL
|
|
"If you wish to climb down" T ,LADDER ", say so" ,PCR>)
|
|
(T
|
|
<DO-WALK ,P?UP>)>)
|
|
(<VERB? CUT>
|
|
<COND (<HELD? ,DAGGER>
|
|
<TELL CTHE ,DAGGER
|
|
" isn't sharp enough to cut through" TR ,LADDER>)
|
|
(T
|
|
<PROPOSE>)>)
|
|
(<VERB? UNTIE>
|
|
<TELL CTHE ,ROPE " is tied in too complex a knot" ,PCR>)
|
|
;(<AND ,END-GAME
|
|
<EQUAL? ,HERE ,RING ,PLATFORM-1>
|
|
<NOT <EQUAL? <LOC ,PROTAGONIST> ,STAND>>
|
|
<NOT <VERB? UNTIE>>>
|
|
<COND (<TOUCHING? ,LADDER>
|
|
<DO-WALK ,P?UP>)
|
|
(<VERB? EXAMINE>
|
|
<TANGLED-ROPE T>)>)
|
|
(<VERB? CLIMB-DOWN>
|
|
<COND ;(<EQUAL? ,HERE ,POOP>
|
|
<DO-WALK ,P?DOWN>) ;"semi-d out cause of ELSE below"
|
|
(<EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<DO-FIRST "get on" ,LADDER>)
|
|
(T
|
|
<DO-WALK ,P?DOWN>
|
|
<RTRUE>)>)
|
|
(<AND <VERB? EXAMINE>
|
|
<EQUAL? ,HERE ,CAPT-QUARTERS ,ON-LADDER ,POOP>>
|
|
<TELL ,COMMON-LOOKING "rope " D ,LADDER ,PCR>)
|
|
;(<VERB? CLIMB-UP>
|
|
<DO-WALK ,P?UP>)>>
|
|
|
|
<ROUTINE I-END-PROLOGUE ()
|
|
<TELL ,INDENT
|
|
"Davis leaps across the deck to your side, \"Free me or she dies!\"
|
|
he yells, jabbing a knife up to your throat. In one smooth motion," T, HERO
|
|
" draws his rapier, pulls you free and stabs.
|
|
Davis slumps into a bloody heap.|
|
|
Swooning, you fall into the Falcon's arms. You are dimly aware of being
|
|
carried to the other ship, down a short flight of stairs, and laid gently
|
|
on a soft bed. When you gather strength to look around, the Falcon has left
|
|
you in peace.|
|
|
You remain confined to this room, a large cupboard blocking the door.
|
|
Meals are brought by a peg-legged old man and eaten in silence.
|
|
Of your handsome rescuer you see nothing. Slowly the days pass.|">
|
|
;<CLEAR-SCREEN 10>
|
|
<TELL CR ,HIT-RETURN "continue.]" CR>
|
|
<READ ,P-INBUF ,P-LEXV>
|
|
<CLEAR-SCREEN 10>
|
|
<GOTO ,CAPT-QUARTERS>
|
|
<FCLEAR ,CRULLEY ,DEADBIT>
|
|
<FCLEAR ,DOOR ,MUNGBIT>
|
|
<MOVE ,HERO ,CAPT-QUARTERS>
|
|
<FCLEAR ,HERO ,NDESCBIT>
|
|
<REMOVE ,COFFER>
|
|
<FSET ,COFFER ,MUNGBIT>
|
|
<FCLEAR ,COFFER ,LOCKEDBIT>
|
|
<FSET ,RAPIER ,NDESCBIT>
|
|
<FCLEAR ,DOOR ,OPENBIT>
|
|
;<DEQUEUE I-MEET-HERO>
|
|
;<DEQUEUE I-COFFER>
|
|
;<DEQUEUE I-JIGS-UP-SNAFU>>
|
|
|
|
;<OBJECT LOVE ;"for I LOVE someone -- made a preposition word 7/15/87"
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "love")
|
|
(SYNONYM LOVE)
|
|
(FLAGS NARTICLEBIT)
|
|
;(ACTION LOVE-F)>
|
|
|
|
;<ROUTINE LOVE-F ("AUX" LOVER)
|
|
<COND (<VERB? MAKE>
|
|
<COND (<SET LOVER <FIND-IN ,HERE ,ACTORBIT "to">>
|
|
<PERFORM ,V?FUCK .LOVER>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "Alone? How odd." CR>)>)>>
|
|
|
|
<OBJECT GLOBAL-SLEEP
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "sleep")
|
|
(SYNONYM SLEEP NAP SNOOZE)
|
|
(FLAGS NARTICLEBIT)
|
|
(ACTION GLOBAL-SLEEP-F)>
|
|
|
|
<ROUTINE GLOBAL-SLEEP-F ()
|
|
<COND (<VERB? WALK-TO TAKE>
|
|
<PERFORM ,V?SLEEP>
|
|
<RTRUE>)
|
|
;(<AND <VERB? PUT-TO>
|
|
<PRSI? ,GLOBAL-SLEEP>>
|
|
<TELL "A lady is never that boring." CR>)>>
|
|
|
|
<OBJECT GROUND
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM FLOOR GROUND DECK)
|
|
(DESC "ground")
|
|
(ACTION GROUND-F)>
|
|
|
|
<ROUTINE GROUND-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (<EQUAL? ,HERE ,RIGGING-ROOM ,CROWS-NEST>
|
|
<TELL
|
|
"Looking down at the distant deck is a mistake. Your stomach flips over">)
|
|
(<SHIP-BOARD ,HERE>
|
|
<TELL
|
|
"Well scrubbed and smoothed floorboards make up the deck">)
|
|
(<EQUAL? ,HERE ,BY-SHIP ,LAGOON ,SHALLOWS>
|
|
<TELL "A sandy bottom shifts under the waves">)
|
|
(<EQUAL? ,HERE ,CELL-1 ,CELL-4>
|
|
<TELL "Like the walls and ceiling, rock">)
|
|
(<EQUAL? ,HERE ,CELL-2>
|
|
<TELL "The floor is ankle deep in mud">)
|
|
(T
|
|
<NOTHING-INTERESTING>
|
|
<TELL "about ">
|
|
<COND (<FSET? ,HERE ,INDOORSBIT>
|
|
<TELL "the floor">)
|
|
(T
|
|
<TELL T ,GROUND>)>)>
|
|
<TELL ,PCR>)
|
|
;(<AND <VERB? TOUCH>
|
|
<EQUAL? ,HERE ,CELL ,OTHER-CELL>>
|
|
<PERFORM ,V?EXAMINE ,GROUND>
|
|
<RTRUE>)
|
|
(<VERB? ;CLIMB-UP CLIMB-ON CLIMB BOARD>
|
|
<WASTES>)
|
|
(<VERB? LOOK-UNDER>
|
|
<IMPOSSIBLES>)
|
|
(<VERB? LEAVE>
|
|
<DO-WALK ,P?UP>)
|
|
(<AND <VERB? WALK-TO>
|
|
<NOUN-USED ,W?DECK ,GROUND>>
|
|
<COND (<EQUAL? ,HERE ,CABIN ,LANDING ,HOLD ,GALLEY>
|
|
<DO-WALK ,P?OUT>)
|
|
(<EQUAL? ,HERE ,DEUX-DECK ,POOP ,QUARTERDECK
|
|
,MAIN-DECK ,FOCSLE>
|
|
<TELL ,LOOK-AROUND>)
|
|
(<EQUAL? ,HERE ,CROWS-NEST ,RIGGING-ROOM>
|
|
<DO-WALK ,P?DOWN>)
|
|
(<SHIP-BOARD ,HERE>
|
|
<V-WALK-AROUND>)
|
|
(T
|
|
<WASTES>)>)
|
|
;(<AND <VERB? LEAP STAND-ON>
|
|
<EQUAL? ,HERE ,ROOF>>
|
|
<PERFORM ,V?LEAP ,ROOMS> ;"V-LEAP handles it"
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT LARGE-KEY
|
|
(IN COT)
|
|
(DESC "large key")
|
|
;(FDESC
|
|
"Lying on the cot, probably fallen out of a pocket, is a large key.")
|
|
(SYNONYM KEY)
|
|
(ADJECTIVE LARGE)
|
|
(FLAGS TAKEBIT TRYTAKEBIT)
|
|
(SIZE 2)
|
|
(ACTION KEY-F)>
|
|
|
|
<ROUTINE KEY-F ()
|
|
<COND (<AND <VERB? TAKE>
|
|
;<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>
|
|
<FSET? ,LARGE-KEY ,TRYTAKEBIT>>
|
|
<MOVE ,LARGE-KEY ,PROTAGONIST>
|
|
<FCLEAR ,LARGE-KEY ,TRYTAKEBIT>
|
|
<SETG SCORE <+ ,SCORE 1>>
|
|
<TELL "Taken." CR>)>>
|
|
|
|
;<GLOBAL CLOSED-DOOR "The door is closed.|">
|
|
|
|
<ROUTINE GEN-LOCK ()
|
|
<COND (<NOT <FSET? ,COFFER ,NDESCBIT>>
|
|
,DOOR)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<OBJECT DOOR
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "door")
|
|
(SYNONYM DOOR LOCK)
|
|
(FLAGS NDESCBIT LOCKEDBIT DOORBIT)
|
|
(GENERIC GEN-LOCK)
|
|
(ACTION DOOR-F)>
|
|
|
|
;"There are several different door-objects, all using DOOR-F as their
|
|
action routine:
|
|
WOOD-CELL-DOOR -- in CELL-2 and adjoining PASSAGE-2. Never locked.
|
|
IRON-CELL-DOOR -- in CELL-4 and its PASSAGE-4 -- needs LARGE-KEY to open.
|
|
VER-DOOR -- in VERANDA and BALLROOM. Needs to be opened from inside.
|
|
LDOOR -- in LAFS-ROOM and UPPER-HALL-E. Un-unlockable.
|
|
DOOR -- in CABIN (Lafond Deux), LANDING, QUARTERDECK (both Helena Louise),
|
|
and (not) BEDROOM, (not) UPPER-HALL-W (St. Sinistra)."
|
|
|
|
<ROUTINE DOOR-F ()
|
|
<COND (<EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<PERFORM-PRSA ,CURTAIN>
|
|
<RTRUE>)
|
|
(<VERB? EXAMINE LOOK-INSIDE>
|
|
<COND (<NOUN-USED ,W?LOCK ,LDOOR>
|
|
<TELL "Ladies do not look through keyholes!" CR>)
|
|
(<FSET? ,PRSO ,OPENBIT>
|
|
<TELL "It is open">)
|
|
(T
|
|
<TELL "It" ,IS-CLOSED>
|
|
<COND (<EQUAL? ,HERE ,QUARTERDECK>
|
|
<TELL " and barred">)
|
|
(<FSET? ,DOOR ,MUNGBIT>
|
|
<TELL ". Or, what remains of it is">)>)>
|
|
<THIS-IS-IT ,PRSO>
|
|
<TELL ,PCR>)
|
|
(<AND <VERB? PICK>
|
|
<PRSO? ,LDOOR>>
|
|
<TELL "The mechanism is too complex to pick." CR>)
|
|
(<VERB? UNLOCK>
|
|
<COND (<EQUAL? ,HERE ,UPPER-HALL-E>
|
|
<TELL
|
|
"Only one man has the key to this room: Jean Lafond" ,PCR>)
|
|
(<EQUAL? ,HERE ,QUARTERDECK>
|
|
<PERFORM ,V?OPEN ,DOOR>
|
|
<RTRUE>)
|
|
(<PRSO? ,WOOD-CELL-DOOR>
|
|
<TELL "But" T ,DOOR " isn't locked" ,PCR>)
|
|
(<PRSI? ,LARGE-KEY>
|
|
<COND (<EQUAL? ,PRSO ,IRON-CELL-DOOR>
|
|
<FCLEAR ,PRSO ,LOCKEDBIT>
|
|
<TELL "Unlocked" ,PCR>)
|
|
(T
|
|
<TELL
|
|
"That key does not unlock this door" ,PCR>)>)
|
|
(T
|
|
<TELL "You are unable to unlock" TR ,DOOR>)
|
|
;(<PRSI? ,BENT-KEY>
|
|
<TELL
|
|
CTHE ,BENT-KEY " will never fit in any lock again" ,PCR>)>)
|
|
(<VERB? LOCK>
|
|
<COND (<AND <PRSO? ,IRON-CELL-DOOR>
|
|
<PRSI? ,LARGE-KEY>>
|
|
<FSET ,PRSO ,LOCKEDBIT>
|
|
<TELL "You ">
|
|
<COND (<FSET? ,PRSO ,OPENBIT>
|
|
<FCLEAR ,PRSO ,OPENBIT>
|
|
<TELL "close and ">)>
|
|
<TELL "lock" TR ,DOOR>)
|
|
(<PRSI? ,LARGE-KEY ;,BENT-KEY>
|
|
<TELL "That key won't work here" ,PCR>)
|
|
(<PRSO? ,VER-DOOR>
|
|
<TELL ,YOU-CANT "lock that" ,PCR>)
|
|
(T
|
|
<PROPOSE>)>)
|
|
(<VERB? KNOCK>
|
|
<COND (<AND <EQUAL? ,HERE ,UPPER-HALL-E>
|
|
<NOT <FSET? ,LDOOR ,LOCKEDBIT>>
|
|
<IN? ,LAFOND ,LAFS-ROOM>>
|
|
<TELL D ,LAFOND " calls, \"Come.\"" CR>)
|
|
(T
|
|
<TELL "Silence answers back." CR>)>)
|
|
(<VERB? OPEN>
|
|
<COND ;(<PRSO? ,DOOR>
|
|
<DO-WALK ,P?EAST>)
|
|
(<EQUAL? ,HERE ,CABIN>
|
|
<TELL "It appears to be locked." CR>)
|
|
(<EQUAL? ,HERE ,LANDING>
|
|
<TELL CTHE ,DOOR " won't open" ,PCR>)
|
|
(<EQUAL? ,HERE ,QUARTERDECK>
|
|
<TELL
|
|
"Someone yells from ahead, \"Cap'n 'll have your hide if you go down there!\"
|
|
You haven't the strength to lift the bar anyway" ,PCR>)
|
|
(<AND <EQUAL? ,HERE ,VERANDA>
|
|
<NOT <FSET? ,DOOR ,OPENBIT>>>
|
|
<TELL ,YOU-CANT-SEE-ANY ,WAY-TO-DO-THAT>)
|
|
(T
|
|
<RFALSE>)>)>>
|
|
|
|
<OBJECT WALLS
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "wall")
|
|
(SYNONYM WALL WALLS)
|
|
;(ACTION WALLS-F)>
|
|
|
|
;<ROUTINE WALLS-F ()
|
|
<COND (<AND <VERB? EXAMINE>
|
|
<EQUAL? ,HERE ,HOLD>
|
|
<EQUAL? ,SIDEKICK-EXPLODED 1>>
|
|
<SPLATTERED-DESC>
|
|
<CRLF>)>>
|
|
|
|
<OBJECT CEILING
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "ceiling")
|
|
(SYNONYM CEILIN ROOF)
|
|
(ADJECTIVE LOW)
|
|
(ACTION CEILING-F)>
|
|
|
|
<ROUTINE CEILING-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (<EQUAL? ,HERE ,CREWS-QUARTERS>
|
|
<TELL ,YOU-SEE
|
|
" a sail rippling against the night sky through" TR ,GRATE>)
|
|
(<NOT <FSET? ,HERE ,INDOORSBIT>>
|
|
<CANT-SEE ,CEILING>)
|
|
(T
|
|
<RFALSE>)>)
|
|
;(<VERB? LOOK-UNDER>
|
|
<PERFORM ,V?LOOK>
|
|
<RTRUE>)>>
|
|
|
|
;<OBJECT ODOR
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "odor")
|
|
(SYNONYM SMELL ODOR SCENT AROMA)
|
|
(ADJECTIVE STRONG FAMILIAR FOUL HEADY PLEASANT)
|
|
(FLAGS VOWELBIT)
|
|
;(ACTION ODOR-F)>
|
|
|
|
|
|
<OBJECT WATER
|
|
(IN WATER-BARREL)
|
|
(DESC "water")
|
|
(SYNONYM WATER)
|
|
(ADJECTIVE FRESH)
|
|
;(GENERIC GEN-WATER)
|
|
(FLAGS ;NARTICLEBIT NDESCBIT)
|
|
(ACTION WATER-F)>
|
|
|
|
<OBJECT SEA
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "sea")
|
|
(SYNONYM WATER OCEAN LAGOON SHALLOWS)
|
|
(ADJECTIVE SEA DARK COLD)
|
|
;(FLAGS NARTICLEBIT)
|
|
;(GENERIC GEN-WATER)
|
|
(ACTION WATER-F)>
|
|
|
|
;<ROUTINE GEN-WATER ()
|
|
<COND (<EQUAL? ,HERE ,MAIN-DECK>
|
|
<RETURN ,WATER>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<GLOBAL DRIPS-OFF " drips off your fingers.|">
|
|
|
|
<ROUTINE WATER-F ()
|
|
<COND (<AND <OR <EQUAL? ,HERE ,LAFS-ROOM ,RIGGING-ROOM>
|
|
<EQUAL? ,HERE ,BOWSPRIT ,CROWS-NEST>>
|
|
<NOT <VERB? THROW PUT PUT-ON>>>
|
|
<COND (<VERB? ENTER>
|
|
<TELL ,SUICIDE>)
|
|
(T
|
|
<CANT-REACH ,SEA>)>)
|
|
(<NOT <OR <GLOBAL-IN? ,SEA ,HERE>
|
|
<HELD? ,WATER ,HERE>>>
|
|
<TELL "There's no water here." CR>)
|
|
(<VERB? LOOK-INSIDE LOOK-UNDER EXAMINE>
|
|
<TELL "The water is sparkling clear" ,PCR>)
|
|
(<VERB? REACH-IN>
|
|
<TELL "Water" ,DRIPS-OFF>)
|
|
(<VERB? DRINK DRINK-FROM ;TASTE>
|
|
<COND (<PRSO? ,WATER>
|
|
<TELL
|
|
"You take a long draft. It is quite refreshing" ,PCR>)
|
|
(T
|
|
<TELL "This water is much too salty to drink" ,PCR>)>)
|
|
(<AND <VERB? PUT-ON>
|
|
<PRSI? ,SEA>>
|
|
<PERFORM ,V?PUT ,PRSO ,SEA>
|
|
<RTRUE>)
|
|
(<VERB? THROW>
|
|
<COND (<AND <EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<NOT <FSET? ,LEDGE ,MUNGBIT>>>
|
|
<TELL "But" T ,WINDOW ,IS-CLOSED "!" CR>)
|
|
(T
|
|
<REMOVE ,PRSO>
|
|
<TELL "You toss" T ,PRSO " into" TR ,SEA>)>)
|
|
(<VERB? PUT SOAK>
|
|
<COND (<PRSO? ,INVITE ,LETTER>
|
|
<REMOVE ,PRSO>
|
|
<TELL
|
|
"It disintegrates quickly into nothing" ,PCR>)
|
|
(<EQUAL? ,HERE ,POOP ,QUARTERDECK ,FOCSLE
|
|
,BOWSPRIT ,CAPT-QUARTERS>
|
|
<PERFORM ,V?THROW ,PRSO ,SEA>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,MAIN-DECK>
|
|
<COND (<PRSI? ,SEA>
|
|
<PERFORM ,V?THROW ,PRSO ,SEA>
|
|
<RTRUE>)
|
|
(T
|
|
<PERFORM ,V?PUT ,PRSO ,WATER-BARREL>
|
|
<RTRUE>)>)
|
|
(<EQUAL? ,HERE ,BEACH ,SHALLOWS ,LAGOON ,BY-SHIP>
|
|
<COND (<PRSO? ,DRESS ,RAG>
|
|
<DIP-DRESS>)
|
|
(T
|
|
<TELL
|
|
"You dip" T ,PRSO " into the water" ,PCR>)>)
|
|
(T
|
|
<TELL ,YOU-CANT "reach any water" ,PCR>)>)
|
|
(<VERB? BOARD ENTER SWIM>
|
|
<COND (<EQUAL? ,HERE ,BEACH>
|
|
<DO-WALK ,P?EAST>)
|
|
(T
|
|
<V-SWIM>)>)
|
|
(<TOUCHING? ,SEA>
|
|
<TELL "The cool water runs through your fingers" ,PCR>)>>
|
|
|
|
<OBJECT SKY
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "sky")
|
|
(SYNONYM SKY)
|
|
(ACTION SKY-F)>
|
|
|
|
<ROUTINE SKY-F ()
|
|
<COND (<FSET? ,HERE ,INDOORSBIT>
|
|
<CANT-SEE ,SKY>)>>
|
|
|
|
<OBJECT MOONBEAM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "moonbeam")
|
|
(SYNONYM MOONLIGHT MOONBEAM BEAM LIGHT)
|
|
(ADJECTIVE MOON)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION MOON-F)>
|
|
|
|
<ROUTINE MOON-F ()
|
|
<COND (<AND <FSET? ,HERE ,INDOORSBIT>
|
|
<NOT <EQUAL? ,HERE ,CREWS-QUARTERS ,CAPT-QUARTERS
|
|
,BEDROOM ,LAFS-ROOM>>
|
|
<NOT <VERB? ASK-ABOUT TELL-ABOUT>>>
|
|
<TELL ,YOU-CANT "see the moon from here" ,PCR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "A dusty moonbeam swirls down from the sky." CR>)>>
|
|
|
|
<OBJECT HANDS
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your hand")
|
|
(SYNONYM HANDS HAND FINGER NAILS)
|
|
(ADJECTIVE BARE MY YOUR)
|
|
(FLAGS NDESCBIT TOUCHBIT NARTICLEBIT BODYBIT)
|
|
(ACTION HANDS-F)>
|
|
|
|
<ROUTINE HANDS-F ("AUX" ACTOR)
|
|
<COND (<VERB? APPLAUD>
|
|
<SETG PRSO <>>
|
|
<V-APPLAUD>)
|
|
(<VERB? SHAKE>
|
|
<COND ;(<EQUAL? ,HERE ,THRONE-ROOM>
|
|
<PERFORM ,V?SHAKE-WITH ,HANDS ,MITRE>
|
|
<RTRUE>)
|
|
(<SET ACTOR <FIND-IN ,HERE ,ACTORBIT "with">>
|
|
<PERFORM ,V?SHAKE-WITH ,HANDS .ACTOR>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "Pleased to meet you." CR>)>)
|
|
(<VERB? CLEAN>
|
|
<TELL "Done." CR>)
|
|
(<AND <VERB? TAKE-WITH>
|
|
<PRSI? ,HANDS>>
|
|
<PERFORM ,V?TAKE ,PRSO>
|
|
<RTRUE>)>>
|
|
|
|
|
|
;<ROUTINE ITEMS-CARRIED ("AUX" X (CNT 0))
|
|
<SET X <FIRST? ,PROTAGONIST>>
|
|
<REPEAT ()
|
|
<COND (<NOT .X>
|
|
<RETURN>)
|
|
(<AND <NOT <FSET? .X ,WORNBIT>>
|
|
<NOT <EQUAL? .X ,RETICULE>>>
|
|
<SET CNT <+ .CNT 1>>)>
|
|
<SET X <NEXT? .X>>>
|
|
<RETURN .CNT>>
|
|
|
|
;<GLOBAL HAND-COVER <>>
|
|
|
|
<OBJECT HEAD
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your head")
|
|
(SYNONYM HEAD)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT BODYBIT)>
|
|
|
|
|
|
<OBJECT EYES
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your eyes")
|
|
(SYNONYM EYE EYES)
|
|
(ADJECTIVE YOUR MY HIS LAFOND)
|
|
(FLAGS NARTICLEBIT PLURALBIT BODYBIT)
|
|
(ACTION EYES-F)>
|
|
|
|
<ROUTINE EYES-F ()
|
|
<COND (<VERB? CLOSE>
|
|
<TELL "You blink" ,PCR>)
|
|
(<VERB? OPEN>
|
|
<TELL "They are open!" CR>)
|
|
(<AND <VERB? EXAMINE LOOK-INSIDE>
|
|
<ADJ-USED ,A?HIS>
|
|
<IN? ,HERO ,HERE>>
|
|
<TELL <GET ,MANNERISMS 3> CR>)>>
|
|
|
|
<OBJECT MOUTH
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your mouth")
|
|
(SYNONYM MOUTH LIP LIPS SNOUT)
|
|
(ADJECTIVE YOUR MY CROC\'S CROCOD LAFOND)
|
|
(FLAGS NARTICLEBIT BODYBIT)
|
|
(ACTION MOUTH-F)>
|
|
|
|
<ROUTINE MOUTH-F ()
|
|
<COND (<VERB? PUT-ON ENTER OPEN WRING POUR EXAMINE PUT>
|
|
<COND (<OR <ADJ-USED ,A?CROC\'S>
|
|
<ADJ-USED ,A?CROCOD>
|
|
<NOUN-USED ,W?SNOUT ,MOUTH>>
|
|
<PERFORM-PRSA ,PRSO ,CROC>
|
|
<RTRUE>)
|
|
(<ADJ-USED ,A?LAFOND>
|
|
<PERFORM-PRSA ,PRSO ,LAFOND>)
|
|
(<PRSI? ,MOUTH>
|
|
<PERFORM ,V?EAT ,PRSO>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>)
|
|
(<VERB? OPEN>
|
|
<COND (<RUNNING? ,I-HFOLLY>
|
|
<TELL "Jamison will do that for you." CR>)
|
|
(T
|
|
<TELL "You fail to stifle a yawn." CR>)>)>>
|
|
|
|
|
|
<OBJECT PROTAGONIST
|
|
(IN CABIN-BED)
|
|
(SYNONYM PROTAG)
|
|
(DESC "it")
|
|
(FLAGS NDESCBIT INVISIBLE ACTORBIT)
|
|
(ACTION PROTAGONIST-F)>
|
|
|
|
<GLOBAL REACTION <>>
|
|
<GLOBAL QUESTIONER <>>
|
|
|
|
<CONSTANT REACTION-NEGATIVE -1>
|
|
<CONSTANT REACTION-NEUTRAL 0>
|
|
<CONSTANT REACTION-POSITIVE 1>
|
|
|
|
<ROUTINE PROTAGONIST-F ()
|
|
<COND (,QUESTIONER
|
|
<COND (<GAME-COMMANDS>
|
|
<RFALSE>)
|
|
(<OR <VERB? NO>
|
|
<AND <NEGATIVE-ANSWER>
|
|
<EQUAL? ,QUESTIONER ,PRSO ,PRSI>>>
|
|
<SETG REACTION ,REACTION-NEGATIVE>)
|
|
(<OR <VERB? YES>
|
|
<AFFIRMATIVE-ANSWER>>
|
|
<SETG REACTION ,REACTION-POSITIVE>)
|
|
(T
|
|
<SETG REACTION ,REACTION-NEUTRAL>)>
|
|
;<TELL
|
|
"[Debug: going thru PROTAG-F. REACTION is " N ,REACTION ".]" CR>
|
|
<SETG QUESTIONER <>>)>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE AFFIRMATIVE-ANSWER ()
|
|
<COND (<OR <VERB? APPLAUD ;CALL CLIMB-ON>
|
|
<VERB? DANCE FOLLOW GIVE SGIVE>
|
|
<VERB? HELLO KISS CURTSEY LAUGH>
|
|
<VERB? EMBRACE I-LOVE-YOU MARRY TOUCH>
|
|
<VERB? THANK WALK-TO SAVE-SOMETHING>
|
|
<VERB? ;SRUB SHOW SSHOW>
|
|
<VERB? MAKE-LOVE MAKE-OUT ;LOVE>
|
|
<AND <VERB? TELL ;SAY>
|
|
<YES-WORD <GET ,P-LEXV ,P-CONT>>>
|
|
;<AND <EQUAL? ,QUESTIONER ,PRSO ,PRSI>
|
|
<VERB? UNTIE>>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE NEGATIVE-ANSWER ()
|
|
<COND (<OR <VERB? KILL BITE BURN>
|
|
<VERB? MUNG KICK RAPE>
|
|
<VERB? SHAKE SWING YELL>
|
|
<AND <VERB? TELL ;SAY>
|
|
<NO-WORD <GET ,P-LEXV ,P-CONT>>>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE GAME-COMMANDS ()
|
|
<COND (<OR <VERB? SAVE RESTORE QUIT>
|
|
<VERB? VERBOSE BRIEF SUPER-BRIEF>
|
|
;<VERB? ;DIAGNOSE INVENTORY>
|
|
<VERB? SCRIPT UNSCRIPT VERSION>
|
|
<VERB? $RANDOM $COMMAND $RECORD $UNRECORD>
|
|
<VERB? $VERIFY ;$DEBUG>
|
|
<VERB? HELP SCORE>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<OBJECT ME
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM I ME MYSELF SELF)
|
|
(SIZE 10)
|
|
(DESC "yourself")
|
|
(CONTENTS 0)
|
|
(FLAGS ;ACTORBIT TOUCHBIT NARTICLEBIT BODYBIT)
|
|
(ACTION ME-F)>
|
|
|
|
<ROUTINE ME-F ()
|
|
<COND (<VERB? TELL>
|
|
<TELL
|
|
"You'll end up in Bedlam, talking to " D ,ME " that way." CR>
|
|
<STOP>)
|
|
(<AND <VERB? GIVE>
|
|
<PRSI? ,ME>>
|
|
<PERFORM ,V?TAKE ,PRSO>
|
|
<RTRUE>)
|
|
(<AND <VERB? TAKE-WITH>
|
|
<PRSI? ,MAN>>
|
|
<RECOGNIZE>)
|
|
(<AND <VERB? SHOW>
|
|
<PRSI? ,ME>>
|
|
<PERFORM ,V?EXAMINE ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? MOVE>
|
|
<V-WALK-AROUND>)
|
|
(<VERB? SEARCH>
|
|
<V-INVENTORY>
|
|
<RTRUE>)
|
|
(<AND <VERB? ALARM>
|
|
<HELD? ,SALTS>>
|
|
<PERFORM ,V?SMELL ,SALTS>
|
|
<RTRUE>)
|
|
(<VERB? DRESS>
|
|
<PERFORM ,V?GET-DRESSED ,ROOMS>
|
|
<RTRUE>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<AND <RUNNING? ,I-LSED>
|
|
<G? ,LAFOND-CTR ,HORNY>>
|
|
<V-INVENTORY>
|
|
;<TELL "You blush to look at your naked body">)
|
|
(T
|
|
<TELL "You are wearing">
|
|
<COND (,BOY-DRESS?
|
|
<TELL A ,SHIRT " and " D ,PANTS>
|
|
<TELL
|
|
". Mama herself would think you a plump boy." CR>
|
|
;<COND (<FSET? ,HOOPS ,WORNBIT>
|
|
<TELL
|
|
" under " D ,HOOPS ". You look rather ridiculous." CR>)
|
|
(T
|
|
<TELL
|
|
". Mama herself would think you a plump boy." CR>)>)
|
|
(<FSET? ,DRESS ,WORNBIT>
|
|
<TELL
|
|
A ,DRESS ", very pretty, if a tad outmoded for today's fashions." CR>)
|
|
(<FSET? ,GOWN ,WORNBIT>
|
|
<TELL A ,GOWN " of creamy watered silk." CR>)
|
|
|
|
;"in a shirt OR pants OR hoops: half-dressed"
|
|
(<FSET? ,SHIRT ,WORNBIT>
|
|
<TELL A ,SHIRT ,BROTHEL>)
|
|
(<FSET? ,PANTS ,WORNBIT>
|
|
<TELL A ,PANTS ,BROTHEL>)
|
|
;(<FSET? ,HOOPS ,WORNBIT>
|
|
<TELL " " D ,HOOPS ,BROTHEL>)
|
|
(<NOT <FSET? ,CHEMISE ,EVERYBIT>>
|
|
<TELL
|
|
" absolutely nothing besides" A ,CHEMISE ", " D ,SHOES
|
|
" and a few layers of " D ,UNMENTIONABLES ". " ,MOTHER>)>)>)
|
|
(<VERB? KILL MUNG SHOOT SSHOOT>
|
|
<TELL ,SUICIDE>)
|
|
(<VERB? FIND WHERE>
|
|
<TELL "You're in" TR ,HERE>)
|
|
(<VERB? FOLLOW>
|
|
<TELL
|
|
"Next time, please specify who you wish to follow." CR>)
|
|
(<VERB? KISS EMBRACE>
|
|
<TELL "Mama warned you of the dangers of onanism" ,PCR>)>>
|
|
|
|
<OBJECT GLOBAL-ROOM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "room")
|
|
(SYNONYM ROOM PLACE LOCATI AREA)
|
|
(ACTION GLOBAL-ROOM-F)>
|
|
|
|
<ROUTINE GLOBAL-ROOM-F ()
|
|
<COND (<VERB? LOOK LOOK-INSIDE EXAMINE>
|
|
<V-LOOK>)
|
|
(<VERB? ENTER WALK-TO>
|
|
<V-WALK-AROUND>)
|
|
(<VERB? LEAVE EXIT DISEMBARK>
|
|
<DO-WALK ,P?OUT>)
|
|
(<VERB? SEARCH>
|
|
<COND (<AND <EQUAL? ,HERE ,CABIN>
|
|
<NOT <RUNNING? ,I-COFFER>>
|
|
<NOT <HELD? ,COFFER>>>
|
|
<PERFORM ,V?LOOK-UNDER ,CABIN-BED>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL ,NOTHING-NEW>)>)
|
|
;(<VERB? WALK-AROUND>
|
|
<TELL "Walking around here">
|
|
<HO-HUM>
|
|
<TELL " To move elsewhere, type the desired " D ,INTDIR ,PCR>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,GLOBAL-ROOM>>
|
|
<COND (<EQUAL? ,P-PRSA-WORD ,W?THROW>
|
|
<PERFORM ,V?THROW ,PRSO>
|
|
<RTRUE>)
|
|
(T
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)>)>>
|
|
|
|
<OBJECT HOUSE
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "mansion")
|
|
(SYNONYM HOUSE MANSION LIBRARY)
|
|
(ADJECTIVE HUGE STONE)
|
|
(ACTION HOUSE-F)>
|
|
|
|
<ROUTINE HOUSE-F ()
|
|
<COND (<VERB? ENTER WALK-TO BOARD>
|
|
<COND (<EQUAL? ,HERE ,MAIN-ENTRANCE>
|
|
<DO-WALK ,P?SOUTH>)
|
|
(<EQUAL? ,HERE ,TRADE-ENTRANCE>
|
|
<DO-WALK ,P?EAST>)
|
|
(<EQUAL? ,HERE ,VERANDA ,LAWN>
|
|
<DO-WALK ,P?NORTH>)
|
|
(<EQUAL? ,HERE ,BY-HOUSE>
|
|
<DO-WALK ,P?WEST>)
|
|
(T
|
|
<TELL ,YOU-CANT "do that from here."
|
|
CR>)>)
|
|
(<VERB? EXIT LEAVE DISEMBARK>
|
|
<COND (<EQUAL? ,HERE ,KITCHEN>
|
|
<DO-WALK ,P?WEST>)
|
|
(<EQUAL? ,HERE ,FOYER>
|
|
<DO-WALK ,P?NORTH>)
|
|
(<EQUAL? ,HERE ,BALLROOM>
|
|
<DO-WALK ,P?SOUTH>)
|
|
(<EQUAL? ,HERE ,LIBRARY>
|
|
<DO-WALK ,P?EAST>)
|
|
(<EQUAL? ,HERE ,BEDROOM>
|
|
<DO-WALK ,P?DOWN>)
|
|
;(<OR <EQUAL? ,HERE ,HALL-E ,HALL-W ,LIBRARY>
|
|
<EQUAL? ,HERE ,UPPER-HALL-W ,UPPER-HALL-E>
|
|
<EQUAL? ,HERE ,LAFS-ROOM ,GALLERY>>
|
|
<TELL ,CANT-FROM-HERE>)
|
|
(T
|
|
<TELL ,LOOK-AROUND>)>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<COND (<EQUAL? ,HERE ,MAIN-ENTRANCE ,TRADE-ENTRANCE
|
|
,LAWN ,BY-HOUSE>
|
|
<TELL ,CANT-FROM-HERE>)
|
|
(T
|
|
<V-LOOK>)>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<EQUAL? ,HERE ,CREWS-QUARTERS>
|
|
<TELL
|
|
"Bathed in moonbeams and candlelight, the house squats at the crest
|
|
of a cliff. The upstairs window is dark" ,PCR>)
|
|
(<OR <AND <SHIP-BOARD ,HERE>
|
|
<NOT <INNER-DECK ,HERE>>>
|
|
<EQUAL? ,HERE ,BEACH>>
|
|
|
|
<TELL ,YOU-CANT
|
|
"make out much of the house from this angle" ,PCR>)
|
|
(<OR <INNER-DECK ,HERE>
|
|
<BELOW-GROUND ,HERE>
|
|
<EQUAL? ,HERE ,FOREST ,FOLLY ,IN-HEDGE>>
|
|
<TELL ,YOU-CANT-SEE-ANY "house here" ,PCR>)
|
|
(<OR <EQUAL? ,HERE ,FRONT-DRIVE ,MAIN-ENTRANCE ,LAWN>
|
|
<EQUAL? ,HERE ,TRADE-ENTRANCE ,CLEARING ,VERANDA>>
|
|
<TELL
|
|
"An entrance to" T ,HOUSE " is nearby" ,PCR>)
|
|
(T
|
|
<V-LOOK>)>)>>
|
|
|
|
<ROUTINE CLIMBING ()
|
|
<COND ;(<FSET? ,HOOPS ,WORNBIT>
|
|
<TELL ,YOU-CANT
|
|
"get a foothold because the hoops of
|
|
your dress keep pushing away">
|
|
<COND (<EQUAL? ,HERE ,CLEARING ,BEDROOM>
|
|
<TELL TR ,VINE>)
|
|
(<EQUAL? ,HERE ,MAIN-DECK ,FOCSLE
|
|
,RIGGING-ROOM ,CROWS-NEST>
|
|
<TELL TR ,RIGGING-OBJECT>)
|
|
(T
|
|
<TELL TR ,LADDER>)>
|
|
<RFALSE>)
|
|
(<OR <FSET? ,DRESS ,WORNBIT>
|
|
<FSET? ,GOWN ,WORNBIT>>
|
|
<SETG AWAITING-REPLY 2>
|
|
<QUEUE I-REPLY 2>
|
|
<TELL "In these clothes? You jest" ,PCR>
|
|
<RFALSE>)
|
|
(<EQUAL? ,P-WALK-DIR ,P?UP>
|
|
<COND (<EQUAL? ,HERE ,CLEARING>
|
|
<TELL
|
|
"You take a firm grasp on a particularly thick tendril, jerk once to secure
|
|
it, and scamper up the wall like some huge tropical spider. It is easy to
|
|
climb through the window" ,PCR CR>
|
|
<RETURN ,BEDROOM>)
|
|
(<EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<COND (<NOT ,LADDER-HANGING>
|
|
<TELL ,CANT-GO>
|
|
<RFALSE>)
|
|
(<NOT <FSET? ,POOP ,TOUCHBIT>>
|
|
<COND (<EQUAL? <LOC ,PROTAGONIST> ,LEDGE>
|
|
<DO-FIRST "be holding" ,LADDER>)
|
|
(T
|
|
<DO-FIRST "get on" ,LEDGE>)>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL "You dash up" TR ,LADDER CR>
|
|
<RETURN ,POOP>)>)
|
|
(<EQUAL? ,HERE ,MAIN-DECK ,FOCSLE>
|
|
<SETG WHICH-MAST? ,HERE>
|
|
<COND (<EQUAL? <LOC ,DAGGER> ,PROTAGONIST>
|
|
<TELL
|
|
"You bite down on" T ,DAGGER ", freeing " D ,HANDS "s to climb.
|
|
When you stop, you take it back again. ">)>
|
|
<TELL
|
|
"The wind, a mere breeze on the deck, blows more fiercely" ,PCR CR>
|
|
<RETURN ,RIGGING-ROOM>)
|
|
(<EQUAL? ,RIGGING-ROOM ,HERE>
|
|
<COND (<EQUAL? ,WHICH-MAST? ,FOCSLE>
|
|
<TELL "You clamber up" TR ,RIGGING-OBJECT CR>
|
|
<RETURN ,CROWS-NEST>)
|
|
(T
|
|
<TELL
|
|
"Above you there only appears to be more of the same, except higher, and
|
|
you can not vouch for the effects on your stomach" ,PCR>
|
|
<RFALSE>)>)
|
|
(<EQUAL? ,HERE ,ON-LADDER>
|
|
<COND (<NOT <FSET? ,POOP ,TOUCHBIT>>
|
|
<SETG UP-CTR <+ ,UP-CTR 1>>
|
|
<COND (<NOT <EQUAL? ,UP-CTR 4>>
|
|
<TELL "You climb up" T ,LADDER>
|
|
<COND (<EQUAL? ,UP-CTR 2>
|
|
<TELL ", passing the halfway point">)>
|
|
<TELL ,PCR>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL
|
|
"You heave " D ,ME " over the stern rail
|
|
and sink breathless to the deck of" TR ,SHIP CR>
|
|
<DEQUEUE I-LADDER-BLOWS>
|
|
<RETURN ,POOP>)>)
|
|
(T
|
|
<TELL "You dash up" TR ,LADDER CR>
|
|
<RETURN ,POOP>)>)
|
|
(<EQUAL? ,HERE ,BY-SHIP>
|
|
<DEBARK-SKIFF>
|
|
<RFALSE>)>)
|
|
(<EQUAL? ,P-WALK-DIR ,P?DOWN>
|
|
<COND (<EQUAL? ,HERE ,BEDROOM>
|
|
<TELL
|
|
"Absently, you slide down" T ,VINE ". You're getting quite adept at
|
|
clambering about" ,PCR CR>
|
|
<RETURN ,CLEARING>)
|
|
(<EQUAL? ,HERE ,CROWS-NEST ,RIGGING-ROOM>
|
|
<TELL
|
|
"You half-climb, half-fall, down to the deck" ,PCR CR>
|
|
<RETURN ,WHICH-MAST?>)
|
|
(<EQUAL? ,HERE ,POOP>
|
|
;<COND (<IN? ,HOOPS ,PROTAGONIST>
|
|
<TELL
|
|
,YOU-CANT "carry" T ,HOOPS " as you climb!">
|
|
<RFALSE>)>
|
|
;<COND (<ANYTHING-HELD>
|
|
<ROB ,PROTAGONIST ,HERE>
|
|
<TELL
|
|
"You drop all you carry on the deck, and">)
|
|
(T
|
|
<TELL "You">)>
|
|
<TELL "You climb down to opposite" TR ,LEDGE CR>
|
|
<RETURN ,ON-LADDER>)
|
|
(<EQUAL? ,HERE ,ON-LADDER>
|
|
<COND (,SKIFF-TIED
|
|
<SETG SKIFF-TIED <>>
|
|
<TELL
|
|
"Freeing your feet from the rungs, you slide down
|
|
the wet rope to the skiff, and quickly untie it from the ship" ,PCR CR>
|
|
<RETURN ,BY-SHIP>)
|
|
(T
|
|
<TELL "A watery grave awaits you that way." CR>
|
|
<RFALSE>)
|
|
;(T
|
|
<TELL
|
|
"Letting loose your grip on your sanity as well
|
|
as on the rope ladder, you plummet into the sea" ,PCR>
|
|
<COND (,BOY-DRESS?
|
|
<JIGS-UP
|
|
"Flailing about in the water just tires you.">)
|
|
(T
|
|
<JIGS-UP
|
|
"Your skirts, until sodden, hold you above water.
|
|
Then they carry you down into the depths.">)>
|
|
<RFALSE>)>)>)>>
|
|
|
|
<OBJECT FIRE
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "fire")
|
|
(SYNONYM FIRE FIREPIT PIT)
|
|
(ADJECTIVE WARM SMOKY)
|
|
(FLAGS ;BURNBIT ONBIT)
|
|
(ACTION FIRE-F)>
|
|
|
|
<ROUTINE FIRE-F ()
|
|
<COND (<VERB? OFF>
|
|
<IMPOSSIBLES>)
|
|
(<VERB? ON PUT PUT-ON THROW>
|
|
<PERFORM ,V?BURN ,PRSO ,FIRE>
|
|
<RTRUE>
|
|
|
|
;<COND (<PRSO? ,CANDLE>
|
|
<COND (<FSET? ,CANDLE ,ONBIT>
|
|
<TELL "The candle is already lit" ,PCR>)
|
|
(T
|
|
<FSET ,CANDLE ,ONBIT>
|
|
<TELL
|
|
"You tip the end of the candle into the heat
|
|
until with a small burst it flames up" ,PCR>)>)>)
|
|
(<VERB? TELL-ABOUT>
|
|
<RFALSE>)
|
|
(T
|
|
<UNIMPORTANT-THING>)>>
|
|
|
|
<OBJECT STAIRS
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "stair")
|
|
(SYNONYM STAIR STAIRS STAIRW STEP)
|
|
(ADJECTIVE WOOD ROCK WET)
|
|
(ACTION STAIRS-F)>
|
|
|
|
<ROUTINE STAIRS-F ()
|
|
<COND (<VERB? CLIMB ;CLIMB-UP>
|
|
<COND (<EQUAL? ,HERE ,MAIN-DECK>
|
|
<DO-WALK ,P?NORTH>)
|
|
(T
|
|
<DO-WALK ,P?UP>)>)
|
|
(<VERB? CLIMB-DOWN>
|
|
<DO-WALK ,P?DOWN>)
|
|
(<AND <VERB? THROW>
|
|
<PRSI? ,STAIRS>>
|
|
<WASTES>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<EQUAL? ,HERE ,HOLD>
|
|
<TELL "Steep stairs mount up to" TR ,HATCH>)
|
|
(<EQUAL? ,HERE ,MAIN-DECK>
|
|
<COND (<FSET? ,HATCH ,OPENBIT>
|
|
<TELL
|
|
,STEEP-STAIRS "down from " T ,HATCH ". Another leads">)
|
|
(T
|
|
<TELL CTHE ,STAIRS " lead">)>
|
|
<TELL " to the foredeck" ,PCR>)
|
|
(T <RFALSE>)>)>>
|
|
|
|
;"LAFS-BED, CAPT-BED, CABIN-BED, COT, GUEST-BED = all use BED-F"
|
|
|
|
<ROUTINE BED-F ("OPTIONAL" (VARG <>) "AUX" THIS-BED)
|
|
<COND (.VARG
|
|
<COND (<AND <EQUAL? .VARG ,M-BEG>
|
|
<OR <VERB? WALK>
|
|
<AND ,PRSO
|
|
<VERB? TAKE>
|
|
<NOT <PRSO? ,HRING ,LRING>>
|
|
<NOT <IN? ,PRSO ,GLOBAL-OBJECTS>>
|
|
<NOT <EQUAL? <LOC ,PROTAGONIST>
|
|
<LOC ,PRSO>>>>>>
|
|
<DO-FIRST "stand up">
|
|
<RFATAL>)
|
|
(T
|
|
<RFALSE>)>)
|
|
(<AND <VERB? DISEMBARK STAND>
|
|
<IN? ,LAFOND ,LAFS-BED>>
|
|
<TELL
|
|
"Lafond slams you back into the feather mattress" ,PCR>)
|
|
(<AND <VERB? ENTER BOARD>
|
|
<EQUAL? <LOC ,PROTAGONIST> ,LAFS-ROOM>
|
|
<IN? ,LAFOND ,HERE>>
|
|
<TELL D ,LAFOND
|
|
" stops you. \"I'll tell you when to do that.\"" CR>)
|
|
;(<VERB? MAKE>
|
|
<V-CLEAN>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<AND <SET THIS-BED <COND (<EQUAL? ,HERE ,CABIN>
|
|
,CABIN-BED)
|
|
(<EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
,CAPT-BED)>>
|
|
<NOT <FIRST? .THIS-BED>>>
|
|
<TELL
|
|
"Someone appears to have tumbled out of it in a hurry">)
|
|
(<EQUAL? ,HERE ,LAFS-ROOM>
|
|
<TELL
|
|
"You gaze at the purple and gold bed, fearing it is your destiny">)
|
|
(<EQUAL? ,HERE ,CELL-1>
|
|
<TELL
|
|
"It is an uncomfortable canvas cot, old and torn">)
|
|
(T
|
|
<RFALSE>)>
|
|
<TELL ,PCR>)
|
|
(<VERB? LOOK-UNDER>
|
|
<COND (<QUEUED? ,I-COFFER> ;"which would only be in CABIN"
|
|
<TELL ,YOU-SEE A ,COFFER " ">
|
|
<FCLEAR ,COFFER ,NDESCBIT>
|
|
<FSET ,COFFER ,TOUCHBIT>)
|
|
(T <TELL ,THERES-NOTHING>)>
|
|
<TELL "under" TR ,PRSO>)
|
|
(<VERB? MOVE PUSH>
|
|
<TELL "It is nailed to the floor" ,PCR>)
|
|
(<AND <VERB? PUT-UNDER>
|
|
<EQUAL? ,HERE ,CAPT-QUARTERS ,CABIN>>
|
|
<COND (<PRSO? ,ME>
|
|
<PERFORM ,V?CRAWL-UNDER ,CABIN-BED>
|
|
<RTRUE>)
|
|
(<PRSO? ,RETICULE>
|
|
<RFALSE>
|
|
;<PERFORM ,V?DROP ,PRSO>
|
|
;<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"You do so, but the ship rolls to one side and" T ,PRSO " rolls out" ,PCR>
|
|
<MOVE ,PRSO ,HERE>)>)>>
|
|
|
|
|
|
<OBJECT CURTAIN ;"in CAPT-QUARTERS and LANDING"
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "curtain")
|
|
(SYNONYM CURTAIN)
|
|
(FLAGS DOORBIT)
|
|
(ACTION CURTAIN-F)>
|
|
|
|
<ROUTINE CURTAIN-F ()
|
|
<COND (<VERB? OPEN MOVE FIDDLE LOOK-BEHIND>
|
|
<TELL ,PULL-FABRIC
|
|
" Behind it," A ,CUPBOARD-OBJECT " mostly blocks the doorway." CR>
|
|
;<TELL
|
|
"You push" T ,CURTAIN " aside momentarily.
|
|
Behind it," A ,CUPBOARD-OBJECT " mostly blocks the doorway." CR>)
|
|
(<VERB? CLOSE>
|
|
<TELL ,ALREADY-IS>)
|
|
(<VERB? WALK WALK-TO>
|
|
<TELL "Please indicate a " D ,INTDIR ,PCR>)
|
|
;(<VERB? LOOK-BEHIND>
|
|
<PERFORM ,V?PUSH ,CUPBOARD-OBJECT>
|
|
<RTRUE>)>>
|
|
|
|
;"Windows in CABIN, CAPT-QUARTERS, BEDROOM"
|
|
;"LIB-WINDOW in Library and By-house"
|
|
<OBJECT WINDOW
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "window")
|
|
(SYNONYM GLASS WINDOW PORTHOLE)
|
|
(ADJECTIVE LARGE GLASS SMALL PANE PANES)
|
|
(ACTION WINDOW-F)>
|
|
|
|
<ROUTINE WINDOW-F ()
|
|
<COND (<VERB? OPEN>
|
|
<COND (<NOT <FSET? ,WINDOW ,OPENBIT>>
|
|
<COND (<EQUAL? ,HERE ,CABIN>
|
|
<TELL
|
|
"This isn't the opening kind of porthole" ,PCR>)
|
|
(<EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<TELL "These windows don't open" ,PCR>)
|
|
(<EQUAL? ,HERE ,LIBRARY ,BY-HOUSE>
|
|
<OPEN-CLOSE ,LIB-WINDOW>)
|
|
(T
|
|
<TELL "That's not necessary" ,PCR>)>)
|
|
(T
|
|
<TELL "It's already open" ,PCR>)>)
|
|
(<VERB? CLOSE>
|
|
<COND (<EQUAL? ,HERE ,LIBRARY ,BY-HOUSE>
|
|
<OPEN-CLOSE ,LIB-WINDOW>)
|
|
(T
|
|
<TELL ,BEAUTIFUL-NIGHT>)>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<EQUAL? ,HERE ,CABIN>
|
|
<TELL
|
|
"Through the porthole you see the bow of the pirate ship bucking in
|
|
the high seas, lit by the fires burning on deck. It is called the \""
|
|
D ,SHIP ".\" Odd, that was your mother's name" ,PCR>)
|
|
(<EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<PERFORM ,V?EXAMINE ,LEDGE>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,LIBRARY ,BY-HOUSE>
|
|
<TELL ,YOU-SEE ,DARKNESS TR ,WINDOW>)>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<COND (<EQUAL? ,CABIN ,HERE>
|
|
<PERFORM ,V?EXAMINE ,WINDOW>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<COND (,LADDER-HANGING
|
|
<QUEUE I-SEE-LADDER 2>
|
|
<TELL
|
|
"A rope " D ,LADDER " twists by in the breeze, and the">)
|
|
(T
|
|
<TELL "The">)>
|
|
<TELL " moon beckons across the lagoon to " D ,ISLAND>
|
|
<COND (,SKIFF-TIED
|
|
<TELL ". Moored to the stern is" A ,SKIFF>)>
|
|
<TELL ".">
|
|
<I-LOOK-SEA <>>
|
|
<CRLF>)
|
|
(<EQUAL? ,HERE ,LIBRARY ,BY-HOUSE>
|
|
<PERFORM ,V?EXAMINE ,LIB-WINDOW>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,BEDROOM>
|
|
<TELL
|
|
"It has a lovely view of grey-green palm trees extending for miles" ,PCR>)
|
|
(T
|
|
<TELL ,YOU-SEE ,DARKNESS TR ,WINDOW>)>)
|
|
(<VERB? MUNG>
|
|
<COND (<NOT ,PRSI>
|
|
<PROPOSE>)
|
|
(<PRSI? ,COFFER>
|
|
<PERFORM ,V?PUT-THROUGH ,COFFER ,WINDOW>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<TELL ,YOULL-HAVE-TO
|
|
"find something else to break" T ,WINDOW " with" ,PCR>)
|
|
(T
|
|
<TELL "Then again, a lady would just open it." CR>)>)
|
|
(<VERB? KILL>
|
|
<COND (<NOT ,PRSI>
|
|
<TELL "You haven't the strength to damage" TR ,WINDOW>)
|
|
(T
|
|
<PERFORM ,V?MUNG ,PRSO ,PRSI>
|
|
<RTRUE>)>)
|
|
(<VERB? THROW PUT-THROUGH PUT>
|
|
<COND (<EQUAL? ,HERE ,CABIN>
|
|
<COND (<VERB? THROW>
|
|
<V-THROW>)
|
|
(T
|
|
<TELL
|
|
"It doesn't fit through the porthole" ,PCR>)>)
|
|
(<PRSO? ,COFFER>
|
|
<COND (<IN? ,HERO ,HERE>
|
|
<TELL
|
|
"Jamison stops you, \"Nay, lady, glass is expensive.\"" CR>
|
|
<RTRUE>)>
|
|
<REMOVE ,PRSO>
|
|
<FSET ,LEDGE ,MUNGBIT>
|
|
<SETG SCORE <+ ,SCORE 1>>
|
|
<TELL
|
|
"You hurl" T ,COFFER " through" T ,WINDOW ", sending it and a shower of glass
|
|
into the sea. " CTHE ,LEDGE " now looks deep enough to sit upon" ,PCR>)
|
|
(<AND <NOT <FSET? ,LEDGE ,MUNGBIT>>
|
|
<EQUAL? ,HERE ,CAPT-QUARTERS>>
|
|
<TELL CTHE ,WINDOW " isn't open" ,PCR>)
|
|
(<PRSO? ,HANDS>
|
|
<TELL ,HUH>)
|
|
;(<PRSO? ,HOOPS>
|
|
<RFALSE>)
|
|
(T
|
|
<PUT-OBJ-THRU-WINDOW>)>)
|
|
(<VERB? ENTER EXIT DISEMBARK LEAP-OFF BOARD>
|
|
<COND (<EQUAL? ,HERE ,CABIN>
|
|
<IMPOSSIBLES>)
|
|
(<EQUAL? <LOC ,PROTAGONIST> ,CAPT-QUARTERS>
|
|
<PERFORM-PRSA ,LEDGE>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,LIBRARY>
|
|
<DO-WALK ,P?EAST>)
|
|
(<EQUAL? ,HERE ,BY-HOUSE>
|
|
<DO-WALK ,P?WEST>)
|
|
(<EQUAL? ,HERE ,BEDROOM>
|
|
<DO-WALK ,P?DOWN>)
|
|
(T
|
|
<WASTES>)>)>>
|
|
|
|
<ROUTINE PUT-OBJ-THRU-WINDOW ()
|
|
<COND (<AND <EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<NOT <FSET? ,LEDGE ,MUNGBIT>>>
|
|
<TELL "The window isn't open" ,PCR>)
|
|
(<PRSO? ,RETICULE>
|
|
<RFALSE>
|
|
;<TELL "You daren't drop" TR ,PRSO>)
|
|
(T
|
|
<PRONOUN>
|
|
<TELL " fall">
|
|
<COND (<NOT <FSET? ,PRSO ,PLURALBIT>>
|
|
<TELL "s">)>
|
|
<COND (<EQUAL? ,HERE ,CAPT-QUARTERS>
|
|
<REMOVE ,PRSO>
|
|
<TELL " into the seas below">)
|
|
(<EQUAL? ,HERE ,BEDROOM>
|
|
<MOVE ,PRSO ,CLEARING>
|
|
<TELL " onto the forest floor">)
|
|
(<EQUAL? ,HERE ,LIBRARY ,LAFS-ROOM>
|
|
<MOVE ,PRSO ,BY-HOUSE>
|
|
<TELL " into the darkness of the hedge">)
|
|
(<EQUAL? ,HERE ,BY-HOUSE>
|
|
<MOVE ,PRSO ,LIBRARY>
|
|
<TELL
|
|
" with a thunk over",THE-EDGE T ,LIB-WINDOW>)>
|
|
<TELL ,PCR>)>>
|
|
|
|
|
|
<ROUTINE OPEN-CLOSE (OBJ "OPTIONAL" (OPETELL <>) (CLOSETELL <>))
|
|
<COND (<VERB? OPEN RAISE MOVE>
|
|
<COND (<FSET? .OBJ ,OPENBIT>
|
|
<COND (<FSET? .OBJ ,PLURALBIT>
|
|
<TELL "They are">)
|
|
(T
|
|
<TELL "It is">)>
|
|
<TELL " already open.">)
|
|
(T
|
|
<FSET .OBJ ,OPENBIT>
|
|
<FSET .OBJ ,TOUCHBIT>
|
|
<COND (.OPETELL
|
|
<TELL .OPETELL ".">)
|
|
(<AND <EQUAL? .OBJ ,CUPBOARD-OBJECT>
|
|
<NOT <EQUAL? ,HERE ,SLEEPING-CUPBOARD>>>
|
|
<TELL "Opened. ">
|
|
<PERFORM ,V?LOOK-INSIDE ,CUPBOARD-OBJECT>
|
|
<RTRUE>)
|
|
(<OR <NOT <FIRST? .OBJ>>
|
|
<FSET? .OBJ ,TRANSBIT>
|
|
<FSET? .OBJ ,DOORBIT>>
|
|
<TELL "Opened.">)
|
|
(T
|
|
<TELL "Opening" T .OBJ " reveals">
|
|
<COND (<NOT <DESCRIBE-NOTHING>>
|
|
<TELL ".">)>
|
|
;<NOW-LIT?>
|
|
<RTRUE>)>)>
|
|
;<COND (<EQUAL? ,SLEEPING-CUPBOARD ,HERE>
|
|
<TELL " " ,YOU-SEE " better now.">)>
|
|
<CRLF>)
|
|
(<VERB? CLOSE>
|
|
<COND (<NOT <FSET? .OBJ ,OPENBIT>>
|
|
<COND (<FSET? .OBJ ,PLURALBIT>
|
|
<TELL "They are">)
|
|
(T
|
|
<TELL "It is">)>
|
|
<TELL " already closed" ,PCR>)
|
|
(T
|
|
<FCLEAR .OBJ ,OPENBIT>
|
|
<COND (<EQUAL? .OBJ ,MANACLES>
|
|
<FSET .OBJ ,LOCKEDBIT>)>
|
|
<COND (.CLOSETELL
|
|
<TELL .CLOSETELL ".">)
|
|
(T
|
|
<TELL "Shut.">
|
|
<COND (<PRSO? ,CUPBOARD-OBJECT>
|
|
;<FCLEAR ,SLEEPING-CUPBOARD ,ONBIT>
|
|
<COND (<EQUAL? ,SLEEPING-CUPBOARD ,HERE>
|
|
<TELL
|
|
" You imagine Jamison being lulled to sleep by
|
|
the waves lapping against the ship.">)>)
|
|
;(T
|
|
<NOW-DARK?>)>)>
|
|
<CRLF>)>)
|
|
;(T
|
|
<TELL
|
|
"You are the proud owner of Bug #119. Please report circumstances" ,PCR>)>>
|
|
|
|
<OBJECT TREE
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "tree")
|
|
(SYNONYM TREE TREES)
|
|
(ACTION TREE-F)>
|
|
|
|
<ROUTINE TREE-F ()
|
|
<COND (<VERB? CLIMB ;CLIMB-UP>
|
|
<TELL "The trees are all unclimbable." CR>)>>
|
|
|
|
<ROUTINE TOUCHING? (THING)
|
|
<COND (<AND <PRSO? .THING>
|
|
<OR <EQUAL? ,PRSA ,V?ALARM ,V?BITE ,V?BOARD>
|
|
<EQUAL? ,PRSA ,V?CLEAN ,V?CLIMB-OVER ,V?CRAWL-UNDER>
|
|
<EQUAL? ,PRSA ,V?CLIMB ,V?CLIMB-DOWN ,V?CLIMB-ON>
|
|
<EQUAL? ,PRSA ,V?CUT ,V?DANCE ,V?EMBRACE>
|
|
<EQUAL? ,PRSA ,V?ENTER ;,V?FEED ,V?FIDDLE>
|
|
<EQUAL? ,PRSA ,V?KICK ,V?KILL ,V?KISS>
|
|
<EQUAL? ,PRSA ,V?KNOCK ,V?LOOK-UNDER ,V?LOOK-INSIDE>
|
|
<EQUAL? ,PRSA ,V?MOVE ,V?MUNG ,V?WRING>
|
|
<EQUAL? ,PRSA ,V?ON ,V?OFF ,V?OPEN ,V?CLOSE>
|
|
<EQUAL? ,PRSA ,V?PICK ,V?PUSH ,V?RAISE>
|
|
<EQUAL? ,PRSA ,V?SET ,V?STAND-ON ,V?SWIM ,V?TIE>
|
|
<EQUAL? ,PRSA ;,V?TASTE ,V?THROW ,V?RAPE>
|
|
<EQUAL? ,PRSA ,V?TAKE ,V?TOUCH ,V?SHAKE>
|
|
<EQUAL? ,PRSA ,V?UNLOCK ,V?LOCK ,V?UNTIE>>>
|
|
<RTRUE>)
|
|
(<AND <PRSI? .THING>
|
|
<VERB? GIVE PUT PUT-ON PUT-UNDER>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE CANT-SEE (OBJ "AUX" (WRD <>))
|
|
<SET WRD <GET ,P-NAMW <COND (<PRSO? .OBJ> 0)
|
|
(T 1)>>>
|
|
<COND (<NOT .WRD>
|
|
<SET WRD <GET ,P-ADJW <COND (<PRSO? .OBJ> 0)
|
|
(T 1)>>>)>
|
|
<SETG P-WON <>>
|
|
<TELL ,YOU-CANT>
|
|
<TELL "see">
|
|
<COND (<AND .OBJ
|
|
<NOT <NAME? .WRD>>>
|
|
<TELL " any">)>
|
|
<COND ;(<NOT .OBJ>
|
|
<TELL " " .STRING>)
|
|
(<EQUAL? .OBJ ,PRSI>
|
|
<PRSI-PRINT>)
|
|
(T
|
|
<PRSO-PRINT>)>
|
|
<TELL " here." CR>
|
|
<STOP>>
|
|
|
|
<ROUTINE CANT-VERB-A-PRSO (STRING)
|
|
<TELL ,YOU-CANT .STRING A ,PRSO "!" CR>>
|
|
|
|
<ROUTINE TELL-HIT-HEAD ()
|
|
<TELL
|
|
"You knock your brow against" T ,PRSO " as you attempt this." CR>>
|
|
|
|
<ROUTINE NOUN-USED (TEST-NOUN OBJ)
|
|
<COND (<AND <PRSO? .OBJ>
|
|
<EQUAL? <GET ,P-NAMW 0> .TEST-NOUN>>
|
|
<RTRUE>)
|
|
(<AND <PRSI? .OBJ>
|
|
<EQUAL? <GET ,P-NAMW 1> .TEST-NOUN>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE ADJ-USED (TEST-ADJ)
|
|
<COND (<EQUAL? .TEST-ADJ <GET ,P-ADJW 0> <GET ,P-ADJW 1>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE OFF-VEHICLE? (OBJ) ;"tells to print GET OFF versus GET OUT OF"
|
|
<COND (<EQUAL? .OBJ ,LEDGE>
|
|
<RTRUE>)
|
|
(<EQUAL? .OBJ ,BENCH>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE TELL-OPEN/CLOSED (OBJ "OPTIONAL" (AN? <>))
|
|
<COND (<FSET? .OBJ ,OPENBIT>
|
|
<COND (.AN?
|
|
<TELL "n">)>
|
|
<TELL " open">)
|
|
(T
|
|
<TELL " closed">)>>
|
|
|
|
<ROUTINE WHEE ()
|
|
<SETG AWAITING-REPLY 2>
|
|
<QUEUE I-REPLY 2>
|
|
<TELL "Wasn't that fun?" CR>>
|
|
|
|
;<ROUTINE IN-YOUR-PACKAGE (STRING)
|
|
<TELL "This is the " .STRING>
|
|
<IN-PACKAGE>>
|
|
|
|
<ROUTINE IN-PACKAGE ()
|
|
<TELL " that came in your game package.|">>
|
|
|
|
;<ROUTINE HIS-HER ("OPTIONAL" (CAP-H <>))
|
|
<COND (.CAP-H
|
|
<TELL "H">)
|
|
(T
|
|
<TELL "h">)>
|
|
<COND (,MALE
|
|
<TELL "is">)
|
|
(T
|
|
<TELL "er">)>>
|
|
|
|
;<ROUTINE HER-HIS ("OPTIONAL" (CAP-H <>))
|
|
<COND (.CAP-H
|
|
<TELL "H">)
|
|
(T
|
|
<TELL "h">)>
|
|
<COND (,MALE
|
|
<TELL "er">)
|
|
(T
|
|
<TELL "is">)>>
|
|
|
|
;<ROUTINE HIM-HER ()
|
|
<COND (<FSET? ,PRSO ,FEMALEBIT>
|
|
<TELL "her">)
|
|
(T
|
|
<TELL "him">)>>
|
|
|
|
;<ROUTINE HER-HIM ()
|
|
<COND (,MALE
|
|
<TELL "her">)
|
|
(T
|
|
<TELL "him">)>>
|
|
|
|
;<ROUTINE HE-SHE ("OPTIONAL" (CAP <>))
|
|
<COND (,MALE
|
|
<COND (.CAP
|
|
<TELL "H">)
|
|
(T
|
|
<TELL "h">)>)
|
|
(T
|
|
<COND (.CAP
|
|
<TELL "Sh">)
|
|
(T
|
|
<TELL "sh">)>)>
|
|
<TELL "e">>
|
|
|
|
;<ROUTINE SHE-HE ("OPTIONAL" (CAP <>))
|
|
<COND (,MALE
|
|
<COND (.CAP
|
|
<TELL "Sh">)
|
|
(T
|
|
<TELL "sh">)>)
|
|
(T
|
|
<COND (.CAP
|
|
<TELL "H">)
|
|
(T
|
|
<TELL "h">)>)>
|
|
<TELL "e">>
|
|
|
|
<ROUTINE CANT-REACH (OBJ)
|
|
<TELL ,YOU-CANT "reach" T .OBJ>
|
|
<COND (<NOT <IN? ,PROTAGONIST ,HERE>>
|
|
<TELL " from" T <LOC ,PROTAGONIST>>)>
|
|
<TELL ,PCR>>
|
|
|
|
;<ROUTINE EAGERLY-ACCEPTS ()
|
|
<MOVE ,PRSO ,PRSI>
|
|
<TELL "Eagerly," T ,PRSI " accepts" T ,PRSO>>
|
|
|
|
;<ROUTINE NOT-ON-GROUND (VEHICLE)
|
|
<TELL "But" T .VEHICLE " isn't on the ground!" CR>>
|
|
|
|
;<ROUTINE AND-SIDEKICK ("OPTIONAL" (NEW-SIDEKICK-LOC <>))
|
|
<COND (<VISIBLE? ,SIDEKICK>
|
|
<COND (.NEW-SIDEKICK-LOC
|
|
<MOVE ,SIDEKICK .NEW-SIDEKICK-LOC>)>
|
|
<TELL " and " D ,SIDEKICK>)>>
|
|
|
|
;<ROUTINE PLAYER-CANT-SEE ()
|
|
<COND (<NOT ,LIT>
|
|
<TELL ,TOO-DARK CR>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE DO-FIRST (STRING "OPTIONAL" (OBJ <>))
|
|
<TELL ,YOULL-HAVE-TO .STRING>
|
|
<COND (.OBJ
|
|
<TPRINT .OBJ>)>
|
|
<TELL " first." CR>>
|
|
|
|
<ROUTINE NOT-IN ()
|
|
<TELL "But" T ,PRSO " isn't ">
|
|
<COND (<FSET? ,PRSI ,ACTORBIT>
|
|
<TELL "being held by">)
|
|
(<FSET? ,PRSI ,SURFACEBIT>
|
|
<TELL "on">)
|
|
(T
|
|
<TELL "in">)>
|
|
<TELL TR ,PRSI>>
|
|
|
|
;<ROUTINE NO-LID ()
|
|
<TELL CTHE ,PRSO " has no lid." CR>>
|
|
|
|
<ROUTINE SORE (STRING)
|
|
<TELL "You begin to get a sore " .STRING ,PCR>>
|
|
|
|
<ROUTINE CANT-USE-THAT-WAY (STRING)
|
|
<TELL "[" ,YOU-CANT "use " .STRING " that way.]" CR>>
|
|
|
|
<ROUTINE RECOGNIZE ()
|
|
<SETG P-WON <>>
|
|
<TELL "[That sentence isn't one I recognize.]|">>
|
|
|
|
;<ROUTINE EXPLETIVE ()
|
|
<TELL " \"Oh ">
|
|
<COND (<EQUAL? ,NAUGHTY-LEVEL 0>
|
|
<TELL "shucks">)
|
|
(<EQUAL? ,NAUGHTY-LEVEL 1>
|
|
<TELL "damn">)
|
|
(T
|
|
<TELL "shit">)>
|
|
<TELL "! ">>
|
|
|
|
<ROUTINE PRONOUN ()
|
|
<COND (<PRSO? ,ME>
|
|
<TELL "You">)
|
|
(<FSET? ,PRSO ,PLURALBIT>
|
|
<TELL "They">)
|
|
(<PRSO? ,LUCY>
|
|
<TELL "She">)
|
|
(<FSET? ,PRSO ,ACTORBIT>
|
|
<TELL "He">)
|
|
(T
|
|
<TELL "It">)>>
|
|
|
|
|
|
<ROUTINE REFERRING ("OPTIONAL" (HIM-HER <>))
|
|
<TELL "I don't see wh">
|
|
<COND (.HIM-HER
|
|
<TELL "o">)
|
|
(T
|
|
<TELL "at">)>
|
|
<TELL " you're referring to." CR>>
|
|
|
|
<ROUTINE NO-ONE-HERE (STRING)
|
|
<TELL "There's no one here to " .STRING ,PCR>>
|
|
|
|
<ROUTINE SEE-MANUAL (STRING)
|
|
<TELL
|
|
"[See the instruction manual section entitled \"Communicating
|
|
With Infocom's Interactive Fiction.\" to properly " .STRING "]" CR>>
|
|
|
|
<ROUTINE UNIMPORTANT-THING ()
|
|
<TELL "You have no need for that, milady." CR>
|
|
;<TELL "That's not important; leave it alone." CR>>
|
|
|
|
<ROUTINE PROPOSE ()
|
|
<SETG AWAITING-REPLY 1>
|
|
<QUEUE I-REPLY 2>
|
|
<TELL "And how do you propose to do that?" CR>>
|
|
|
|
<ROUTINE STOP-QUEUES ()
|
|
<COND (<RUNNING? ,I-HDANCE>
|
|
<SETG PARTNER <>>
|
|
<DEQUEUE I-HDANCE>)
|
|
(<RUNNING? ,I-HFOLLY>
|
|
<DEQUEUE I-HFOLLY>)>>
|
|
|
|
<GLOBAL TANGLED-RIGGING " A tangled mass of rigging hangs down from the mast,
|
|
like many rope ladders woven together.">
|
|
|
|
<GLOBAL COMMON-LOOKING "Completely common looking ">
|
|
|
|
<GLOBAL DARKNESS " only darkness beyond">
|
|
|
|
<GLOBAL DOESNT-RESPOND "He doesn't respond.|">
|
|
|
|
<GLOBAL IS-CLOSED " is closed">
|
|
|
|
<GLOBAL STEEP-STAIRS "Steep stairs descend ">
|
|
|
|
<GLOBAL TINY-GLOW "A tiny glow of fire creeps across a stretch of floor
|
|
-- inside the cage full of ammunition">
|
|
|
|
<GLOBAL TOO-DARK "It's too dark to see a thing.">
|
|
|
|
<CONSTANT TOO-DEEP
|
|
"Although the lagoon is warm and clear, it is much too deep.|">
|
|
|
|
<GLOBAL ISNT-FLUSH " is not flush against the doorsill. ">
|
|
|
|
<CONSTANT UNLADY "That is thoroughly unladylike behavior.|">
|
|
|
|
<GLOBAL THOROUGHLY-UNLADYLIKE "It is thoroughly unladylike to ">
|
|
|
|
<GLOBAL HALFWAY " halfway up the cliff stairs.">
|
|
|
|
<ROUTINE REPERTOIRE (ACT)
|
|
<TELL .ACT
|
|
" is not in the repertoire of well-bred young ladies." CR>>
|
|
|
|
<ROUTINE MAN-IS-DOWN ()
|
|
<TELL
|
|
,THOROUGHLY-UNLADYLIKE "hit a man when he's down!" CR>>
|
|
|
|
<GLOBAL YNH "You're not holding">
|
|
|
|
<CONSTANT PACE "You pace out the steps.|">
|
|
|
|
<GLOBAL THERES-NOTHING "There's nothing ">
|
|
|
|
<GLOBAL IT-SEEMS-THAT "It seems that">
|
|
|
|
<GLOBAL YOU-SEE "You can see">
|
|
|
|
<GLOBAL YOU-CANT-SEE-ANY "You can't see any ">
|
|
|
|
<GLOBAL WAY-TO-DO-THAT "way to do that.|">
|
|
|
|
<GLOBAL YOU-CANT "You can't ">
|
|
|
|
<GLOBAL YOU-ARENT "You aren't ">
|
|
|
|
<GLOBAL YOULL-HAVE-TO "You'll have to ">
|
|
|
|
<GLOBAL YOU-HAVE-ALREADY "You already have">
|
|
|
|
<ROUTINE NO-TIME-FOR (STR)
|
|
<TELL "This is no time to " .STR "!|">>
|
|
|
|
<GLOBAL PULL-FABRIC "You pull the cloth aside momentarily.">
|
|
|
|
<GLOBAL THE-BACK " only the back of">
|
|
|
|
<CONSTANT THE-EDGE " the edge of">
|
|
|
|
<CONSTANT SURPRISE "To your surprise, ">
|
|
|
|
<GLOBAL THE-BALLROOM "The ballroom is a ">
|
|
|
|
<GLOBAL YOU-ARE-ALREADY "You're already ">
|
|
|
|
<ROUTINE MORE-SPECIFIC ()
|
|
<TELL ,YOULL-HAVE-TO "be more specific." CR>>
|
|
|
|
<ROUTINE CANT-HURT (STR)
|
|
<TELL "Your " .STR " could not hurt" TR ,CRULLEY>>
|
|
|
|
<GLOBAL OVER-HEAD " over the head with">
|
|
|
|
<CONSTANT DANCE-FLOOR " the dance floor">
|
|
|
|
<CONSTANT DOESNT-LOOK "It doesn't look like">
|
|
|
|
<GLOBAL RIEF-DESC "rief descriptions.|">
|
|
|
|
; "The next four are globals (one routine) for various JIGS-UP"
|
|
|
|
<GLOBAL SMACK-YOUR-FACE
|
|
" Lafond smacks you hard across the face with the back of his hand,
|
|
\"Fool.\" He casts aside all formalities.">
|
|
|
|
<GLOBAL FALL-TO-BOTTOM " The fall to the bottom of the well is endless;
|
|
you've lost consciousness by the time the water overtakes you.">
|
|
|
|
<ROUTINE SAILOR-DEATH ()
|
|
<TELL ,INDENT "A sailor notices ">
|
|
<COND (<FSET? ,PANTS ,WORNBIT>
|
|
<TELL
|
|
"the roundness of your body through the lace of your chemise">)
|
|
(T
|
|
<TELL "the \"swish\" of your petticoats">)>
|
|
<TELL ". \"A woman,\" he gasps, \"free, aboard this ship!\"" CR>
|
|
<JIGS-UP
|
|
" It's been rather a long time since any of the crew have dealt with the
|
|
fairer sex, and they are a bit rough, despite Rodney Quick's exhortations.">>
|
|
|
|
<GLOBAL SOMETHING-HITS-YOU "Something cracks over your head,
|
|
knocking you unconscious.|
|
|
You awaken, cuddled in a huge purple and gold curtained bed, with a
|
|
shocking migraine. The man lying next to you pays no heed to your complaints,
|
|
and commands you in French when you try to defend yourself. He tires of
|
|
you within a few weeks, but lets you work the streets of Santa Ananas.">
|
|
|
|
<CONSTANT DRAGOONS-SURROUND "Dragoons surround you. ">
|
|
|
|
;<GLOBAL SPECIFY "specify ">
|
|
|
|
<ROUTINE LADY-MUST (STRING)
|
|
<TELL
|
|
"A lady must obtain her father's permission before " .STRING " anyone." CR>>
|
|
|
|
<ROUTINE FIGURE-IT-OUT ()
|
|
<TELL ,YOULL-HAVE-TO "figure that out " D, ME ,PCR>>
|
|
|
|
<GLOBAL SPEECHLESS "You find yourself speechless with dread.|">
|
|
|
|
<GLOBAL GAME-CAPS "PLUNDERED HEARTS">
|
|
|
|
<GLOBAL HIT-RETURN "[Press RETURN or ENTER to ">
|
|
|
|
<GLOBAL POLITE-SOCIETY "That's not done in polite society.|">
|
|
|
|
<GLOBAL POLITE "That wouldn't be polite.|">
|
|
|
|
<GLOBAL MOTHER "Mama would have been shocked.|">
|
|
|
|
<GLOBAL NO-LOITERING "Sorry, no loitering,\" says the butler">
|
|
|
|
<GLOBAL NO-STRENGTH "You haven't the strength.|">
|
|
|
|
<GLOBAL PUSHING-YOU-OUT ", pushing you out of the house.|">
|
|
|
|
<GLOBAL SINEWY-ARM
|
|
"A sinewy arm encircles you, \"Stay, my lady.\"">
|
|
|
|
<GLOBAL SQUEEZE-THRU " squeeze through the opening between cupboard and
|
|
wall">
|
|
|
|
<GLOBAL SUICIDE "Suicide is not the answer.|">
|
|
|
|
<ROUTINE KICKED-OUT ()
|
|
<TELL ,INDENT>
|
|
<COND (<EQUAL? ,HERE ,HALL-E>
|
|
<TELL "A black-garbed " D ,BUTLER>)
|
|
(T
|
|
<TELL CTHE ,BUTLER>)>
|
|
<TELL
|
|
" marches up to you, \"It was made clear at the whippings that villagers
|
|
are not admitted in this house.\" He grasps you by the scruff of the neck
|
|
and propels you headfirst out the front door" ,PCR CR>
|
|
<GOTO ,MAIN-ENTRANCE>>
|
|
|
|
<GLOBAL LOOK-AROUND "Look around you.|">
|
|
|
|
<GLOBAL LAUGHS "He laughs triumphantly and pulls you into the dance.|">
|
|
|
|
<GLOBAL CANT-FROM-HERE "You can't do that from here.|">
|
|
|
|
<GLOBAL CANT-GO "You can't go that way.|">
|
|
|
|
<GLOBAL HOLDING-IT "You're holding it!|">
|
|
|
|
;<GLOBAL CANT-SMELL "You can't smell any odor here.|">
|
|
|
|
<ROUTINE NICK-RUNS-OFF ()
|
|
<COND (<AND <RUNNING? ,I-CCLIMBS-UP>
|
|
<EQUAL? ,CRULLEY-CTR 10>>
|
|
<QUEUE I-CCLIMBS-UP 2>)>
|
|
<MOVE ,HERO ,GALLERY>
|
|
<MOVE ,LAFOND ,GALLERY>
|
|
<MOVE ,DAD ,GALLERY>
|
|
<MOVE ,LUCY ,GALLERY>
|
|
<SETG HERO-CTR 1>
|
|
<QUEUE I-DUEL -1>
|
|
<FSET ,RAPIER ,NDESCBIT>
|
|
<FCLEAR ,BALLROOM ,EVERYBIT> ;"getting rid of crew"
|
|
<TELL ,INDENT
|
|
"Nick kisses you briefly, a butterfly touching your lips,">
|
|
<COND (<EQUAL? <META-LOC ,RAPIER> ,HERE ,PASSAGE-4 ,CELL-4>
|
|
;<OR <VISIBLE? ,RAPIER>
|
|
<IN? ,RAPIER ,PASSAGE-4>
|
|
<IN? ,RAPIER ,CELL-4>>
|
|
;<OR <HELD? ,RAPIER ,HERE>
|
|
<HELD? ,RAPIER ,PASSAGE-4>
|
|
<HELD? ,RAPIER ,CELL-4>>
|
|
<MOVE ,RAPIER ,HERO>
|
|
<TELL " then seizes his rapier">)>
|
|
<TELL " and runs off to the north. Cookie calls a
|
|
breathless \"Hullo, Cap'n\" to him as he races past" ,PCR>>
|
|
|
|
<GLOBAL NOUN-MISSING "[There seems to be a noun missing in that sentence.]|">
|
|
|
|
;<GLOBAL ONLY-BLACKNESS "You see only blackness.|">
|
|
|
|
;<GLOBAL SENILITY-STRIKES "You already did that. Senility strikes again!|">
|
|
|
|
<GLOBAL INDENT " ">
|
|
|
|
<GLOBAL PCR ".|">
|
|
|
|
<GLOBAL ELLIPSIS "...||">
|
|
|
|
<GLOBAL NOTHING-HAPPENS "Nothing happens.|">
|
|
|
|
;<GLOBAL NOT-ENOUGH "There's not enough liquid to drink.|">
|
|
|
|
<GLOBAL FAILED "Failed.|">
|
|
|
|
<GLOBAL OK "Aye-aye.|">
|
|
|
|
<GLOBAL HUH "Pardon?|">
|
|
|
|
<GLOBAL ALREADY-IS "It already is.|">
|
|
|
|
<CONSTANT ALREADY-ARE "They already are.|">
|
|
|
|
<CONSTANT DO-YOU-WANT " do you want to ">
|
|
|
|
<GLOBAL BEAUTIFUL-NIGHT "But it's such a beautiful night!|">
|
|
|
|
<GLOBAL BROTHEL " over your white linen chemise. Mama would say
|
|
you belonged in a brothel.|">
|
|
|
|
<GLOBAL BUTLER-SUMMONS " walks up to you. \"M. Lafond
|
|
requests your presence in his room immediately, Miss.\" He points ">
|
|
|
|
<CONSTANT CALLS-AFTER " calls after you.||">
|
|
|
|
<GLOBAL NOTHING-NEW "This reveals nothing new.|">
|
|
|
|
<GLOBAL NO-VERB "[There was no verb in that sentence!]|">
|
|
|
|
;<GLOBAL NOT-APPROPRIATE "This is not the appropriate time or place.|"> |