1775 lines
47 KiB
Plaintext
1775 lines
47 KiB
Plaintext
"GLOBALS for
|
|
LEATHER GODDESSES OF PHOBOS
|
|
(c) Copyright 1986 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 <>>
|
|
|
|
<GLOBAL INT-MAX 429> ;"sum of highest possible scores"
|
|
|
|
<GLOBAL EXT-MAX 9309> ;"what you tell player the maximum score is"
|
|
|
|
<ROUTINE INCREMENT-SCORE (BASE VAR "OPTIONAL" (INC-RANK <>) "AUX" CHANGE DIF)
|
|
<COND (.INC-RANK
|
|
<SETG RANK <+ ,RANK 1>>)>
|
|
<SET CHANGE <+ <RANDOM .VAR> .BASE>>
|
|
<SET DIF <- <+ .BASE .VAR> .CHANGE>>
|
|
<SETG INT-MAX <- ,INT-MAX .DIF>>
|
|
<SETG EXT-MAX <+ ,INT-MAX <RANDOM <- ,EXT-MAX ,INT-MAX>>>>
|
|
<SETG SCORE <+ ,SCORE .CHANGE>>>
|
|
|
|
<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 MUNGBIT ONBIT LIGHTBIT RLANDBIT WORNBIT
|
|
VEHBIT INDOORSBIT CONTBIT VOWELBIT LOCKEDBIT NDESCBIT DOORBIT
|
|
ACTORBIT SMELLEDBIT UNTEEDBIT)>
|
|
|
|
<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")>
|
|
|
|
<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? BOARD>
|
|
<EQUAL? ,P-PRSA-WORD ,W?RIDE>>
|
|
<COND (<IN? ,PROTAGONIST ,STALLION>
|
|
<DO-WALK ,P-DIRECTION>)
|
|
(<IN? ,STALLION ,HERE>
|
|
<DO-FIRST "mount">)
|
|
(T
|
|
<TELL ,THERES-NOTHING "to ride!" CR>)>)>>
|
|
|
|
<OBJECT INTNUM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "number")
|
|
(SYNONYM NUMBER)
|
|
(ADJECTIVE WIFE HUSBAND \#) ;"for things like WIFE # 375"
|
|
(ACTION INTNUM-F)>
|
|
|
|
<ROUTINE INTNUM-F ()
|
|
<COND (<AND <ADJ-USED ,A?WIFE>
|
|
<OR <NOT <EQUAL? ,HERE ,INNER-HAREM>>
|
|
<NOT ,MALE>>
|
|
<NOT <PICKING-WIFE>>>
|
|
<SETG P-WON <>>
|
|
<TELL ,YOU-CANT-SEE-ANY "wife here!" CR>)
|
|
(<AND <ADJ-USED ,A?HUSBAND>
|
|
<OR <NOT <EQUAL? ,HERE ,INNER-HAREM>>
|
|
,MALE>
|
|
<NOT <PICKING-WIFE>>>
|
|
<SETG P-WON <>>
|
|
<TELL ,YOU-CANT-SEE-ANY "husband here!" CR>)
|
|
(<VERB? ANSWER-KLUDGE>
|
|
<PERFORM ,V?USE-QUOTES ,INTNUM>
|
|
<RTRUE>)
|
|
(<AND <EQUAL? ,P-NUMBER ,CHOICE-NUMBER>
|
|
<IN? ,SULTANS-WIFE ,HERE>>
|
|
<COND (<PRSO? ,INTNUM>
|
|
<PERFORM-PRSA ,SULTANS-WIFE ,PRSI>
|
|
<RTRUE>)
|
|
(T
|
|
<PERFORM-PRSA ,PRSO ,SULTANS-WIFE>
|
|
<RTRUE>)>)
|
|
(<OR <AND <VERB? ASK-NO-ONE-FOR PICK>
|
|
<IN? ,HAREM-GUARD ,HERE>>
|
|
<AND <VERB? ASK-FOR>
|
|
<PRSO? ,HAREM-GUARD>>>
|
|
<PICK-WIFE ,INTNUM>)
|
|
(<AND <EQUAL? ,HERE ,VIZICOMM-BOOTH>
|
|
<VERB? SET>>
|
|
<PERFORM-PRSA ,VIZICOMM>
|
|
<RTRUE>)>>
|
|
|
|
<ROUTINE PICKING-WIFE ()
|
|
<COND (<AND <VERB? ASK-NO-ONE-FOR PICK>
|
|
<IN? ,HAREM-GUARD ,HERE>>
|
|
<RTRUE>)
|
|
(<AND <VERB? ASK-FOR>
|
|
<PRSO? ,HAREM-GUARD>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<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-WOMAN
|
|
(IN GLOBAL-OBJECTS)
|
|
(SDESC "")
|
|
(SYNONYM MAN WOMAN)
|
|
(ACTION MAN-WOMAN-F)>
|
|
|
|
<ROUTINE MAN-WOMAN-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 <EQUAL? <GET ,P-NAMW 0> ,W?MAN> ;"MAN is the PRSO"
|
|
<PRSO? ,MAN-WOMAN> ;"in case PRSI is also MAN or WOMAN">
|
|
<COND (<SET PERSON <FIND-MAN>>
|
|
<PERFORM-PRSA .PERSON ,PRSI>
|
|
<RTRUE>)
|
|
(T
|
|
<CANT-SEE ,MAN-WOMAN>)>)
|
|
(<AND <EQUAL? <GET ,P-NAMW 0> ,W?WOMAN> ;"WOMAN is the PRSO"
|
|
<PRSO? ,MAN-WOMAN> ;"in case PRSI is also MAN or WOMAN">
|
|
<COND (<SET PERSON <FIND-WOMAN>>
|
|
<PERFORM-PRSA .PERSON ,PRSI>
|
|
<RTRUE>)
|
|
(T
|
|
<CANT-SEE ,MAN-WOMAN>)>)
|
|
(<AND <EQUAL? <GET ,P-NAMW 1> ,W?MAN> ;"MAN is the PRSI"
|
|
<PRSI? ,MAN-WOMAN> ;"in case PRSO is also MAN or WOMAN">
|
|
<COND (<SET PERSON <FIND-MAN>>
|
|
<PERFORM-PRSA ,PRSO .PERSON>
|
|
<RTRUE>)
|
|
(T
|
|
<CANT-SEE ,MAN-WOMAN>)>)
|
|
(<AND <EQUAL? <GET ,P-NAMW 1> ,W?WOMAN> ;"WOMAN is the PRSI"
|
|
<PRSI? ,MAN-WOMAN> ;"in case PRSO is also MAN or WOMAN">
|
|
<COND (<SET PERSON <FIND-WOMAN>>
|
|
<PERFORM-PRSA ,PRSO .PERSON>
|
|
<RTRUE>)
|
|
(T
|
|
<CANT-SEE ,MAN-WOMAN>)>)>>
|
|
|
|
<ROUTINE FIND-MAN ()
|
|
<PUTP ,MAN-WOMAN ,P?SDESC "man">
|
|
<COND (<IN? ,SALESMAN ,HERE>
|
|
<RETURN ,SALESMAN>)
|
|
(<IN? ,MAD-SCIENTIST ,HERE>
|
|
<RETURN ,MAD-SCIENTIST>)
|
|
(<IN? ,MITRE ,HERE>
|
|
<RETURN ,MITRE>)
|
|
(<IN? ,PROPRIETOR ,HERE>
|
|
<RETURN ,PROPRIETOR>)
|
|
(<AND <IN? ,THORBAST ,HERE>
|
|
,MALE>
|
|
<RETURN ,THORBAST>)
|
|
(<AND <IN? ,YOUNG-WOMAN ,HERE>
|
|
<NOT ,MALE>>
|
|
<RETURN ,YOUNG-WOMAN>)
|
|
(<AND <IN? ,SULTAN ,HERE>
|
|
,MALE>
|
|
<RETURN ,SULTAN>)
|
|
(<AND <IN? ,SULTANS-WIFE ,HERE>
|
|
<NOT ,MALE>>
|
|
<RETURN ,SULTANS-WIFE>)
|
|
(<AND <VISIBLE? ,SIDEKICK>
|
|
,MALE>
|
|
<RETURN ,SIDEKICK>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE FIND-WOMAN ()
|
|
<PUTP ,MAN-WOMAN ,P?SDESC "woman">
|
|
<COND (<AND <IN? ,THORBAST ,HERE>
|
|
<NOT ,MALE>>
|
|
<RETURN ,THORBAST>)
|
|
(<AND <IN? ,YOUNG-WOMAN ,HERE>
|
|
,MALE>
|
|
<RETURN ,YOUNG-WOMAN>)
|
|
(<AND <IN? ,THETA ,HERE>
|
|
<NOT <FSET? ,THETA ,MUNGBIT>>>
|
|
<RETURN ,THETA>)
|
|
(<IN? ,LGOP ,HERE>
|
|
<RETURN ,LGOP>)
|
|
(<AND <IN? ,SULTAN ,HERE>
|
|
<NOT ,MALE>>
|
|
<RETURN ,SULTAN>)
|
|
(<AND <IN? ,SULTANS-WIFE ,HERE>
|
|
,MALE>
|
|
<RETURN ,SULTANS-WIFE>)
|
|
(<AND <VISIBLE? ,SIDEKICK>
|
|
<NOT ,MALE>>
|
|
<RETURN ,SIDEKICK>)
|
|
(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?BODY>
|
|
<EQUAL? ,P-XADJN ,W?MY <>>>
|
|
<COND (<PRSO? ,NOT-HERE-OBJECT>
|
|
<SETG PRSO ,ME>)
|
|
(T
|
|
<SETG PRSI ,ME>)>
|
|
<RFALSE>)
|
|
(<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 ,W?PALM>
|
|
<EQUAL? ,P-XNAM ,W?FINGER ,W?EYE ,W?EYES>
|
|
<EQUAL? ,P-XNAM ,W?HEAD ,W?EARS ,W?EAR>
|
|
<EQUAL? ,P-XNAM ,W?LIP ,W?LIPS ,W?MOUTH>
|
|
<EQUAL? ,P-XNAM ,W?KNEECAP ,W?KNEE ,W?KNEES>
|
|
<EQUAL? ,P-XNAM ,W?NOSE ,W?NOSTRIL ,W?BALLS>
|
|
<EQUAL? ,P-XNAM ,W?PENIS ,W?COCK ,W?ASS>
|
|
<EQUAL? ,P-XNAM ,W?TITS ,W?BREAST ,W?BOSOM>
|
|
<EQUAL? ,P-XNAM ,W?CUNT ,W?VAGINA ,W?PUSSY>
|
|
<EQUAL? ,P-XNAM ,W?TIT ,W?BODY>>
|
|
<OR <EQUAL? ,P-XADJN ,W?TRENT ,W?TIFFAN ,W?TIFF\'S>
|
|
<EQUAL? ,P-XADJN ,W?GODDESSES ,W?SHAPE ,W?COUCHMATE>
|
|
<EQUAL? ,P-XADJN ,W?THORBAST ,W?ASSASSIN ,W?SALESMAN>
|
|
<EQUAL? ,P-XADJN ,W?SCIENTIST ,W?GORILLA ,W?MONKEY>
|
|
<EQUAL? ,P-XADJN ,W?KING\'S ,W?MITRE ,W?SULTAN>
|
|
<EQUAL? ,P-XADJN ,W?PROPRIETOR ,W?OWNER ,W?GUARD>
|
|
<EQUAL? ,P-XADJN ,W?PRINCE ,W?DAUGHTER ,W?THETA>
|
|
<EQUAL? ,P-XADJN ,W?BARTENDER ,W?WIFE\'S ,W?HUSBAND>
|
|
<EQUAL? ,P-XADJN ,W?ELYSIA ,W?ELYSIUM ,W?WOMAN>
|
|
<EQUAL? ,P-XADJN ,W?ROBOT ,W?BABY\'S>
|
|
<EQUAL? ,P-XADJN ,W?MAN\'S ,W?HIS ,W?HER>>>
|
|
<TELL
|
|
"[Sorry. Given limited space, we can't handle everything. Therefore, you can
|
|
only refer to characters in the story, not individual body parts. For example,
|
|
you can KISS IRWIN but you can't KISS IRWIN'S ELBOW.]" 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
|
|
<TELL "[" ,YOULL-HAVE-TO "be more specific.]" CR>)>)
|
|
(T
|
|
<COND (<EQUAL? ,WINNER ,PROTAGONIST>
|
|
<TELL "You">)
|
|
(T
|
|
<TELL "Looking confused," T ,WINNER " says, \"I">)>
|
|
<TELL " can't ">
|
|
<COND (<EQUAL? ,P-XNAM ,W?ODOR ,W?SMELL ,W?SCENT>
|
|
<TELL "smell">)
|
|
(T
|
|
<TELL "see">)>
|
|
<COND (<OR <NOT <NAME? ,P-XNAM>>
|
|
<EQUAL? ,P-XNAM ,W?FORD>>
|
|
<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>
|
|
<EQUAL? ,PRSA ,V?WAIT-FOR ,V?WALK-TO ,V?MAKE>
|
|
<EQUAL? ,PRSA ,V?BUY ,V?CALL ,V?SAY>
|
|
<EQUAL? ,PRSA ,V?FIND ,V?FOLLOW ,V?PHONE>
|
|
<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>
|
|
<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 .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 LOVE ;"for MAKE LOVE TO someone"
|
|
(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 "You're not a hypnotist." CR>)>>
|
|
|
|
<OBJECT GROUND
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM FLOOR GROUND)
|
|
(SDESC "ground")
|
|
(ACTION GROUND-F)>
|
|
|
|
<ROUTINE GROUND-F ()
|
|
<COND (<EQUAL? ,HERE ,IN-SPACE>
|
|
<CANT-SEE ,GROUND>
|
|
<RTRUE>)
|
|
(<OR <FSET? ,HERE ,INDOORSBIT>
|
|
<EQUAL? <LOC ,PROTAGONIST> ,BARGE>>
|
|
<PUTP ,GROUND ,P?SDESC "floor">)
|
|
(T
|
|
<PUTP ,GROUND ,P?SDESC "ground">)>
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (<EQUAL? ,HERE ,SPAWNING-GROUND>
|
|
<TELL ,OOZY-WITH-SLIME CR>)
|
|
(<AND <GLOBAL-IN? ,HOLE ,HERE>
|
|
<NOT <HOLE-INVISIBLE>>>
|
|
<TELL "You notice" AR ,HOLE>)
|
|
(<EQUAL? ,HERE ,CELL>
|
|
<TELL "Soft. Cushiony." CR>)
|
|
(<EQUAL? ,HERE ,OTHER-CELL>
|
|
<TELL "Rock-hard." CR>)
|
|
(<AND <EQUAL? ,HERE ,HOLD>
|
|
<EQUAL? ,SIDEKICK-EXPLODED 1>>
|
|
<SPLATTERED-DESC>
|
|
<CRLF>)
|
|
(<IN-CATACOMBS>
|
|
<TELL ,CATACOMBS-WATER-DESC CR>)>)
|
|
(<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? LEAP STAND-ON>
|
|
<EQUAL? ,HERE ,ROOF>>
|
|
<PERFORM ,V?LEAP ,ROOMS> ;"V-LEAP handles it"
|
|
<RTRUE>)>>
|
|
|
|
;<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 TOWERING)
|
|
(ACTION CEILING-F)>
|
|
|
|
<ROUTINE CEILING-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (<AND <EQUAL? ,HERE ,HOLD>
|
|
<EQUAL? ,SIDEKICK-EXPLODED 1>>
|
|
<SPLATTERED-DESC>
|
|
<CRLF>)
|
|
(<AND <EQUAL? ,HERE ,CELL>
|
|
,HOLE-OPEN>
|
|
<TELL "There's a hole in the ceiling." CR>)
|
|
(<AND <EQUAL? ,HERE ,BEDROOM>
|
|
<FSET? ,BEDROOM ,MUNGBIT>>
|
|
<TELL "Most of the ceiling is now gone." CR>)>)
|
|
(<NOT <FSET? ,HERE ,INDOORSBIT>>
|
|
<CANT-SEE ,CEILING>)
|
|
(<AND <VERB? ENTER>
|
|
<EQUAL? ,HERE ,CELL>
|
|
,HOLE-OPEN>
|
|
<DO-WALK ,P?UP>)
|
|
(<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)>
|
|
|
|
<ROUTINE ODOR-F ()
|
|
<COND (<AND <EQUAL? ,HERE ,IN-SPACE>
|
|
<NOT <IN? ,THORBAST ,HERE>>>
|
|
<TELL ,CANT-SMELL>)
|
|
(<AND <EQUAL? ,HERE ,MENS-ROOM ,LADIES-ROOM>
|
|
<RUNNING? ,I-URGE>>
|
|
<TELL ,CANT-SMELL>)
|
|
(<AND <EQUAL? ,HERE ,PLAZA>
|
|
<L? ,PLAZA-COUNTER 9>>
|
|
<TELL ,CANT-SMELL> ;"the Plaza odor comes after final prompt")
|
|
(<OR <VERB? SMELL>
|
|
<AND <VERB? EXAMINE>
|
|
<EQUAL? ,P-PRSA-WORD ,W?DESCRIBE>>>
|
|
<COND (<GETP ,HERE ,P?ODOR>
|
|
<COND (<FSET? ,HERE ,SMELLEDBIT>
|
|
<TELL
|
|
"There is a strong odor of " <GETP ,HERE ,P?ODOR> " in the air." CR>)
|
|
(T
|
|
<FSET ,HERE ,SMELLEDBIT>
|
|
<SCRATCH-N-SNIFF>
|
|
<APPLY <GETP ,HERE ,P?ACTION> ,M-SMELL>
|
|
<CRLF>)>)
|
|
(<EQUAL? ,HERE ,INNER-HAREM>
|
|
<SETG HERE ,HAREM>
|
|
<PERFORM ,V?SMELL ,ODOR>
|
|
<SETG HERE ,INNER-HAREM>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,GARDEN>
|
|
<NO-SCRATCH-N-SNIFF "fresh honeysuckle">)
|
|
(<AND <ACCESSIBLE? ,CHOCOLATE>
|
|
<NOT <FSET? ,CHOCOLATE ,UNTEEDBIT>>>
|
|
<TELL "[the " D ,CHOCOLATE "]" CR>
|
|
<PERFORM ,V?SMELL ,CHOCOLATE>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL ,CANT-SMELL>)>)>>
|
|
|
|
<ROUTINE SCRATCH-N-SNIFF ("OPTIONAL" (NUM <>))
|
|
<TELL "[Scratch 'n' sniff spot number ">
|
|
<COND (.NUM
|
|
<PRINTN .NUM>)
|
|
(T
|
|
<PRINTN <GETP ,HERE ,P?ODOR-NUMBER>>)>
|
|
<TELL ,HIT-RETURN "continue.]">
|
|
<READ ,P-INBUF ,P-LEXV>
|
|
<CRLF>>
|
|
|
|
<ROUTINE NO-SCRATCH-N-SNIFF (STRING)
|
|
<TELL
|
|
"[Too bad there's no scratch 'n' sniff for this one, huh?]|
|
|
|
|
|
Ahhh, the odor of " .STRING "!" CR>>
|
|
|
|
<OBJECT WATER
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "water")
|
|
(SYNONYM WATER FOUNTAIN POOL OASIS)
|
|
(ADJECTIVE FRESH CANAL DARK BRACKISH STAGNANT WARM LARGE REFLECTING)
|
|
(FLAGS NARTICLEBIT)
|
|
(ACTION WATER-F)>
|
|
|
|
<ROUTINE WATER-F ()
|
|
<COND (<AND <EQUAL? ,HERE ,MINARET ,DUNETOP>
|
|
<TOUCHING? ,WATER>>
|
|
<CANT-REACH ,WATER>)
|
|
(<VERB? DRINK BUY>
|
|
<TELL "You're not thirsty." CR>)
|
|
(<VERB? LOOK-INSIDE LOOK-UNDER EXAMINE>
|
|
<TELL "The water is dark and murky." CR>)
|
|
(<VERB? PASS MAKE>
|
|
<V-PEE>)
|
|
(<VERB? REACH-IN>
|
|
<TELL "Your hand is now wet." CR>)
|
|
(<AND <VERB? PUT-ON>
|
|
<PRSI? ,WATER>>
|
|
<PERFORM ,V?PUT ,PRSO ,WATER>
|
|
<RTRUE>)
|
|
(<GLOBAL-IN? ,CANAL-OBJECT ,HERE>
|
|
<COND (<PRSO? ,WATER>
|
|
<PERFORM-PRSA ,CANAL-OBJECT ,PRSI>
|
|
<RTRUE>)
|
|
(T
|
|
<PERFORM-PRSA ,PRSO ,CANAL-OBJECT>
|
|
<RTRUE>)>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,WATER>>
|
|
<COND (<AND <PRSO? ,RAFT>
|
|
<EQUAL? ,HERE ,OASIS>>
|
|
<TELL "Next you'll be putting yachts in bathtubs!" CR>)
|
|
(<AND <PRSO? ,RAFT>
|
|
<IN-CATACOMBS>>
|
|
<PERFORM ,V?DROP ,RAFT>
|
|
<RTRUE>)
|
|
(T
|
|
<WASTES>)>)
|
|
(<AND <VERB? ON WALK> ;"for TURN ON WATER or RUN WATER"
|
|
<EQUAL? ,HERE ,MENS-ROOM ,LADIES-ROOM>>
|
|
<PERFORM ,V?FLUSH ,TOILET>
|
|
<RTRUE>)
|
|
(<VERB? BOARD ENTER CRAWL-UNDER>
|
|
<V-SWIM>)>>
|
|
|
|
;<OBJECT SKY
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "sky")
|
|
(SYNONYM SKY)
|
|
(ACTION SKY-F)>
|
|
|
|
;<ROUTINE SKY-F ()
|
|
<COND (<FSET? ,HERE ,INDOORSBIT>
|
|
<CANT-SEE ,SKY>)>>
|
|
|
|
<OBJECT HANDS
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM HANDS HAND PALM FINGER)
|
|
(ADJECTIVE BARE MY YOUR)
|
|
(DESC "your hand")
|
|
(FLAGS NDESCBIT TOUCHBIT NARTICLEBIT PARTBIT)
|
|
(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? COUNT>
|
|
<COND (<NOUN-USED ,W?FINGER ,HANDS>
|
|
<TELL "Ten">)
|
|
(T
|
|
<TELL "Two">)>
|
|
<TELL ", as usual." CR>)
|
|
(<VERB? CLEAN>
|
|
<TELL "Done." CR>)
|
|
(<AND <VERB? TAKE-WITH>
|
|
<PRSI? ,HANDS>>
|
|
<PERFORM ,V?TAKE ,PRSO>
|
|
<RTRUE>)
|
|
(<AND <VERB? PUT-ON>
|
|
<PRSI? ,EYES>>
|
|
<PERFORM ,V?SPUT-ON ,EYES ,HANDS>
|
|
<RTRUE>)
|
|
(<AND <VERB? PUT-ON PUT>
|
|
<PRSI? ,EARS>>
|
|
<PERFORM ,V?SPUT-ON ,EARS ,HANDS>
|
|
<RTRUE>)
|
|
(<AND <VERB? SPUT-ON>
|
|
<PRSO? ,EYES ,EARS, NOSE>>
|
|
<COND (,GONE-APE
|
|
<TELL ,DEXTERITY>)
|
|
(<G? <ITEMS-CARRIED> 0>
|
|
<TELL ,YOU-CANT "do that with " 'HANDS "s full!" CR>)
|
|
(T
|
|
<COND (,HAND-COVER
|
|
<TELL "You're already">)
|
|
(T
|
|
<SETG HAND-COVER ,PRSO>
|
|
<FSET ,PRSO ,MUNGBIT>
|
|
<COND (<EQUAL? ,HAND-COVER ,EARS>
|
|
<TELL ,MUFFLED "'re">)
|
|
(T
|
|
<TELL "Okay, you're now">)>)>
|
|
<TELL
|
|
" covering " D ,HAND-COVER " with " 'HANDS "s." CR>)>)>>
|
|
|
|
<ROUTINE ITEMS-CARRIED ("AUX" X (CNT 0))
|
|
<SET X <FIRST? ,PROTAGONIST>>
|
|
<REPEAT ()
|
|
<COND (<NOT .X>
|
|
<RETURN>)
|
|
(<AND <NOT <FSET? .X ,WORNBIT>>
|
|
<NOT <EQUAL? .X ,COMIC-BOOK>>>
|
|
<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 PARTBIT)
|
|
(ACTION HEAD-F)>
|
|
|
|
<ROUTINE HEAD-F ()
|
|
<COND (<AND <VERB? PUT-ON>
|
|
<PRSO? ,BLANKET ,SHEET ,SACK>>
|
|
<SETG AWAITING-REPLY 2>
|
|
<QUEUE I-REPLY 2>
|
|
<TELL "Where do you think you are, Traal?" CR>)>>
|
|
|
|
<OBJECT EYES
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your eyes")
|
|
(SYNONYM EYE EYES)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT PLURALBIT PARTBIT)
|
|
(ACTION EYES-F)>
|
|
|
|
<ROUTINE EYES-F ()
|
|
<COND (<VERB? CLOSE>
|
|
<COND (,GONE-APE
|
|
<WASTES>)
|
|
(<FSET? ,EYES ,MUNGBIT>
|
|
<COND (<EQUAL? ,EYES ,HAND-COVER>
|
|
<TELL ,HANDS-OVER-EYES>)
|
|
(T
|
|
<TELL ,SENILITY-STRIKES>)>)
|
|
(T
|
|
<FSET ,EYES ,MUNGBIT>
|
|
<EYES-ARE-NOW "closed">)>)
|
|
(<VERB? OPEN>
|
|
<COND (<FSET? ,EYES ,MUNGBIT>
|
|
<COND (<EQUAL? ,EYES ,HAND-COVER>
|
|
<TELL ,HANDS-OVER-EYES>)
|
|
(T
|
|
<SENSE-AGAIN ,EYES>)>)
|
|
(T
|
|
<TELL "They are open!" CR>)>)>>
|
|
|
|
<ROUTINE EYES-ARE-NOW (STRING)
|
|
<TELL "Your eyes are now " .STRING ,PERIOD-CR>>
|
|
|
|
<ROUTINE OPEN-EYES-AND-REMOVE-HANDS ()
|
|
<FCLEAR ,EYES ,MUNGBIT>
|
|
<COND (,HAND-COVER
|
|
<FCLEAR ,HAND-COVER ,MUNGBIT>
|
|
<SETG HAND-COVER <>>)>>
|
|
|
|
<OBJECT EARS
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your ears")
|
|
(SYNONYM EAR EARS)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT PLURALBIT PARTBIT)
|
|
(ACTION EARS-F)>
|
|
|
|
<ROUTINE EARS-F ()
|
|
<COND (<AND <VERB? TAKE>
|
|
<EQUAL? ,P-PRSA-WORD ,W?HOLD>>
|
|
<PERFORM ,V?SPUT-ON ,EARS ,HANDS>
|
|
<RTRUE>)
|
|
(<AND <VERB? UNCOVER>
|
|
<FSET? ,COTTON-BALLS ,WORNBIT>
|
|
<NOT ,GONE-APE>>
|
|
<COND (<EQUAL? ,EARS ,HAND-COVER>
|
|
<SETG HAND-COVER <>>)>
|
|
<PERFORM ,V?REMOVE ,COTTON-BALLS>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT NOSE
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your nose")
|
|
(SYNONYM NOSE NOSTRIL)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT PARTBIT)
|
|
(ACTION NOSE-F)>
|
|
|
|
<ROUTINE NOSE-F ()
|
|
<COND (<VERB? BLOW PICK>
|
|
<TELL ,YECHH>)
|
|
(<AND <VERB? TAKE>
|
|
<EQUAL? ,P-PRSA-WORD ,W?HOLD>>
|
|
<PERFORM ,V?SPUT-ON ,NOSE ,HANDS>
|
|
<RTRUE>)
|
|
(<AND <VERB? UNCOVER>
|
|
<FSET? ,CLOTHES-PIN ,WORNBIT>
|
|
<NOT ,GONE-APE>>
|
|
<COND (<EQUAL? ,NOSE ,HAND-COVER>
|
|
<SETG HAND-COVER <>>)>
|
|
<PERFORM ,V?REMOVE ,CLOTHES-PIN>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT MOUTH
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your mouth")
|
|
(SYNONYM MOUTH LIP LIPS)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT PARTBIT)
|
|
(ACTION MOUTH-F)>
|
|
|
|
<ROUTINE MOUTH-F ()
|
|
<COND (<AND <VERB? CLEAN>
|
|
<FSET? ,LIP-BALM ,WORNBIT>>
|
|
<PERFORM ,V?REMOVE ,LIP-BALM>
|
|
<RTRUE>)
|
|
(<AND <VERB? EXAMINE>
|
|
<FSET? ,LIP-BALM ,WORNBIT>>
|
|
<ROB ,PROTAGONIST ,TOILET>
|
|
<MOVE ,LIP-BALM ,PROTAGONIST>
|
|
<V-INVENTORY> ;"should say YOU HAVE LIP BALM (SMEARED...)"
|
|
<ROB ,TOILET ,PROTAGONIST>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,MOUTH>>
|
|
<PERFORM ,V?EAT ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? OPEN>
|
|
<TELL "This fails to catch any flies." CR>)>>
|
|
|
|
<OBJECT KNEECAPS
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your kneecaps")
|
|
(SYNONYM KNEECAP KNEE KNEES)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT PLURALBIT PARTBIT)>
|
|
|
|
<OBJECT COCK
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your naughty bits")
|
|
(SYNONYM COCK PENIS BALLS ASS)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT PARTBIT)
|
|
(ACTION NAUGHTY-BITS-F)>
|
|
|
|
<OBJECT CUNT
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your naughty bits")
|
|
(SYNONYM CUNT VAGINA PUSSY)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT PARTBIT)
|
|
(ACTION NAUGHTY-BITS-F)>
|
|
|
|
<OBJECT TITS
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your naughty bits")
|
|
(SYNONYM TIT TITS BREAST BOSOM)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT PLURALBIT PARTBIT)
|
|
(ACTION NAUGHTY-BITS-F)>
|
|
|
|
<ROUTINE NAUGHTY-BITS-F ()
|
|
<COND (<AND <NOUN-USED ,W?PUSSY ,CUNT>
|
|
<NOT <ADJ-USED ,A?MY>>
|
|
<VISIBLE? ,PAINTING>>
|
|
<COND (<PRSO? ,CUNT>
|
|
<PERFORM-PRSA ,PAINTING ,PRSI>
|
|
<RTRUE>)
|
|
(T
|
|
<PERFORM-PRSA ,PRSI ,PAINTING>
|
|
<RTRUE>)>)
|
|
(T
|
|
<TELL
|
|
"You don't need to refer to " 'COCK " to complete " ,LGOP-CAPS ,PERIOD-CR>)>>
|
|
|
|
<OBJECT PROTAGONIST
|
|
(IN JOES-BAR)
|
|
(SYNONYM PROTAG)
|
|
(DESC "it")
|
|
(FLAGS NDESCBIT INVISIBLE ACTORBIT)>
|
|
|
|
<OBJECT ME
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM I ME MYSELF SELF)
|
|
(DESC "yourself")
|
|
(FLAGS ;ACTORBIT TOUCHBIT NARTICLEBIT)
|
|
(ACTION ME-F)>
|
|
|
|
<ROUTINE ME-F ()
|
|
<COND (<VERB? TELL>
|
|
<TELL
|
|
"Talking to yourself is a sign of impending mental collapse." CR>
|
|
<STOP>)
|
|
(<VERB? RELIEVE>
|
|
<V-PEE>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,ME>
|
|
<NOT ,MALE>
|
|
<NOT <EQUAL? ,NAUGHTY-LEVEL 0>>>
|
|
<PERFORM ,V?FUCK ,ME>
|
|
<RTRUE>)
|
|
(<AND <VERB? TOUCH FUCK EAT>
|
|
<NOT <EQUAL? ,NAUGHTY-LEVEL 0>>>
|
|
<TELL
|
|
"Encouraging such behavior would endanger the possibility of landing
|
|
a lucrative Hollywood contract to make a film of " ,LGOP-CAPS ,PERIOD-CR>)
|
|
(<AND <VERB? GIVE>
|
|
<PRSI? ,ME>>
|
|
<PERFORM ,V?TAKE ,PRSO>
|
|
<RTRUE>)
|
|
(<AND <VERB? SHOW>
|
|
<PRSI? ,ME>>
|
|
<PERFORM ,V?EXAMINE ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? MOVE>
|
|
<V-WALK-AROUND>)
|
|
(<VERB? SEARCH>
|
|
<V-INVENTORY>
|
|
<RTRUE>)
|
|
(<VERB? EXAMINE>
|
|
<COND (,GONE-APE
|
|
<TELL "You've gone ape!" CR>)
|
|
(T
|
|
<TELL "You're wearing">
|
|
<COND (<FSET? ,WHITE-SUIT ,WORNBIT>
|
|
<TELL AR ,WHITE-SUIT>)
|
|
(T
|
|
<TELL AR ,GARMENT>)>)>)
|
|
(<VERB? KILL MUNG>
|
|
<JIGS-UP "Done.">)
|
|
(<VERB? FIND WHERE>
|
|
<TELL "You're in" TR ,HERE>)
|
|
(<VERB? MEASURE>
|
|
<TELL "You don't measure up." CR>)
|
|
(<AND <VERB? UNTIE>
|
|
,BODY-TIED-TO-SLAB>
|
|
<COND (,GONE-APE
|
|
<PERFORM-PRSA ,YOUR-BODY>
|
|
<RTRUE>)
|
|
(T
|
|
<YUKS>)>)
|
|
(<AND <VERB? TIE>
|
|
<PRSI? ,FIRST-SLAB ,SECOND-SLAB>>
|
|
<COND (<AND ,BODY-TIED-TO-SLAB
|
|
<NOT ,GONE-APE>>
|
|
<TELL "You are!" CR>)
|
|
(T
|
|
<TELL ,YOU-CANT "tie yourself down!" CR>)>)
|
|
(<VERB? FOLLOW>
|
|
<TELL "Like most computers, I don't have legs." CR>)>>
|
|
|
|
<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 (<EQUAL? ,HERE ,EXIT-SHOP>
|
|
<PERFORM-PRSA ,DUST>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL ,NOTHING-NEW>)>)
|
|
;(<VERB? WALK-AROUND>
|
|
<TELL "Walking around here">
|
|
<HO-HUM>
|
|
<TELL " To move elsewhere, type the desired direction." CR>)
|
|
(<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 LOCAL-GLOBALS)
|
|
(DESC "house")
|
|
(SYNONYM HOUSE HOME)
|
|
(ADJECTIVE SMALL RICKETY MAD SCIENTIST PLASTIC)
|
|
(ACTION HOUSE-F)>
|
|
|
|
<ROUTINE HOUSE-F ()
|
|
<COND (<VERB? ENTER WALK-TO BOARD>
|
|
<COND (<OR <EQUAL? ,HERE ,BEDROOM ,TEENSY-WEENSY-HOUSE>
|
|
<EQUAL? ,HERE ,LABORATORY ,LOOKS-CAN-BE-DECEIVING>>
|
|
<TELL ,LOOK-AROUND>)
|
|
(<EQUAL? ,HERE ,FRONT-DOOR>
|
|
<DO-WALK ,P?NORTH>)
|
|
(<EQUAL? ,HERE ,BACK-DOOR>
|
|
<DO-WALK ,P?SOUTH>)
|
|
(<EQUAL? ,HERE ,CLEVELAND>
|
|
<DO-WALK ,P?NE>)
|
|
(<EQUAL? ,HERE ,BEDROOM ,GARDEN>
|
|
<DO-WALK ,P?WEST>)>)
|
|
(<VERB? EXIT LEAVE DISEMBARK>
|
|
<COND (<EQUAL? ,HERE ,LABORATORY ,BEDROOM>
|
|
<TELL ,CANT-FROM-HERE>)
|
|
(<EQUAL? ,HERE ,TEENSY-WEENSY-HOUSE ,LABORATORY>
|
|
<V-WALK-AROUND>)
|
|
(T
|
|
<TELL ,LOOK-AROUND>)>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<COND (<EQUAL? ,HERE ,FRONT-DOOR ,BACK-DOOR ,GARDEN>
|
|
<TELL ,CANT-FROM-HERE>)
|
|
(T
|
|
<V-LOOK>)>)
|
|
(<VERB? SEARCH>
|
|
<TELL ,NOTHING-NEW>)>>
|
|
|
|
<OBJECT SIGN
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "sign")
|
|
(SYNONYM SIGN)
|
|
(ADJECTIVE LARGE RED FADED)
|
|
(FLAGS READBIT)
|
|
(ACTION SIGN-F)>
|
|
|
|
<ROUTINE SIGN-F ("AUX" NUM)
|
|
<SET NUM <CANAL-LOC>>
|
|
<COND (<AND <EQUAL? ,HERE ,CANAL>
|
|
<NOT <EQUAL? .NUM 15>>>
|
|
<CANT-SEE ,SIGN>)
|
|
(<VERB? READ>
|
|
<COND (<EQUAL? ,HERE ,END-OF-HALLWAY>
|
|
<TELL "\"Up To Observation Room.\"" CR>)
|
|
(<EQUAL? ,HERE ,OBSERVATION-ROOM>
|
|
<TELL "\"Down to Cells.\"" CR>)
|
|
(<EQUAL? ,HERE ,EXIT-SHOP>
|
|
<TELL "\"E" ,BOUGHT-AND-SOLD ".\"" CR>)
|
|
(<EQUAL? ,HERE ,VIZICOMM-BOOTH>
|
|
<TELL "\"Out of order.\"" CR>)
|
|
(<EQUAL? ,HERE ,SOUTH-POLE>
|
|
<TELL
|
|
"\"Martian Orphanages, Inc.|
|
|
South Polar Branch\"" CR>)
|
|
(<EQUAL? ,HERE ,PENGUIN-PARK>
|
|
<TELL
|
|
"\"Give generously to the Penguin Retirement Fund.\"" CR>)
|
|
(<EQUAL? ,HERE ,CANAL ,WATTZ-UPP-DOCK>
|
|
<TELL
|
|
"The sign has no writing, only the skull and crossbones." CR>)>)>>
|
|
|
|
<OBJECT STAIRS
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "stair")
|
|
(SYNONYM STAIR STAIRS STAIRW STEP)
|
|
(ADJECTIVE WINDING)
|
|
(ACTION STAIRS-F)>
|
|
|
|
<ROUTINE STAIRS-F ()
|
|
<COND (<VERB? CLIMB CLIMB-UP>
|
|
<DO-WALK ,P?UP>)
|
|
(<VERB? CLIMB-DOWN>
|
|
<COND (<EQUAL? ,HERE ,BEDROOM>
|
|
<COND (<NOT <BEDROOM-EXIT-F T>>
|
|
<RTRUE>)>
|
|
<GOTO ,TEENSY-WEENSY-HOUSE>)
|
|
(T
|
|
<DO-WALK ,P?DOWN>)>)
|
|
(<AND <VERB? THROW>
|
|
<PRSI? ,STAIRS>>
|
|
<WASTES>)>>
|
|
|
|
<OBJECT WINDOW
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "window")
|
|
(SYNONYM WINDOW VIEWPORT GLASS)
|
|
(ADJECTIVE RECTAN STAINED GLASS BARRED SMALL GRIMY)
|
|
(ACTION WINDOW-F)>
|
|
|
|
<ROUTINE WINDOW-F ()
|
|
<COND (<VERB? LOOK-INSIDE>
|
|
<COND (<EQUAL? ,HERE ,OBSERVATION-ROOM>
|
|
<SETG SEEN-EXAMINATION-ROOM T>
|
|
<TELL ,YOU-SEE " a large room below. ">
|
|
<EXAMINATION-ROOM-DESC T>)
|
|
(<EQUAL? ,HERE ,BEDROOM>
|
|
<MOVE ,FORD ,HERE>
|
|
<COND (<FSET? ,HEADLIGHT ,TRYTAKEBIT>
|
|
<MOVE ,HEADLIGHT ,HERE>)>
|
|
<MOVE ,FORD ,HERE>
|
|
<TELL
|
|
"A car is parked on the street, twenty feet below. It's a Ford, a 1933 Ford
|
|
... and one of its " 'HEADLIGHT "s is ">
|
|
<COND (<AND <IN? ,HEADLIGHT ,HERE>
|
|
<FSET? ,HEADLIGHT ,TRYTAKEBIT>>
|
|
<TELL "loose">)
|
|
(T
|
|
<TELL "missing">)>
|
|
<TELL ,PERIOD-CR>)
|
|
(<EQUAL? ,HERE ,HOLD>
|
|
<TELL ,YOU-SEE " Saturn and her ample rings.">
|
|
<COND (<NOT <EQUAL? ,SPACESHIP-SCENE-STATUS 1>>
|
|
<TELL
|
|
" Much closer, no more than a hundred feet away, is"
|
|
A ,PASSENGER-SHIP ". Judging by the steam blowing from
|
|
her ion engines, she's preparing to depart.">)>
|
|
<CRLF>)
|
|
(<EQUAL? ,HERE ,JOES-BAR>
|
|
<TELL
|
|
"It's raw and blowy outside. Little whirlpools of dust dance by." CR>)
|
|
(<EQUAL? ,HERE ,SOUTH-POLE>
|
|
<COND (<FSET? ,ORPHANAGE-FOYER ,TOUCHBIT>
|
|
<TELL "The window is fogged." CR>)
|
|
(T
|
|
<SETG COTTON-BALLS-SEEN T>
|
|
<MOVE ,COTTON-BALLS ,HERE> ;"so you can refer"
|
|
<TELL
|
|
,YOU-SEE " a " 'COTTON-BALLS " sitting in an entrance foyer." CR>)>)
|
|
(<EQUAL? ,HERE ,ORPHANAGE-FOYER>
|
|
<TELL ,YOU-SEE " an icy plain." CR>)
|
|
(<EQUAL? ,HERE ,MAIN-HALL-OF-PALACE>
|
|
<TELL "Colored light spills through the window." CR>)>)
|
|
(<VERB? OPEN>
|
|
<COND (<EQUAL? ,HERE ,BEDROOM>
|
|
<TELL ,ALREADY-IS>)
|
|
(T
|
|
<TELL "It's not that kind of window." CR>)>)
|
|
(<VERB? CLOSE>
|
|
<COND (<EQUAL? ,HERE ,BEDROOM>
|
|
<TELL "It seems stuck." CR>)
|
|
(T
|
|
<TELL ,ALREADY-IS>)>)
|
|
(<AND <VERB? PUT-THROUGH PUT>
|
|
<PRSI? ,WINDOW>
|
|
<EQUAL? ,HERE ,BEDROOM>>
|
|
<COND (<PRSO? ,HANDS>
|
|
<TELL ,HUH>)
|
|
(<IN? ,PROTAGONIST ,BED>
|
|
<CANT-REACH ,PRSI>)
|
|
(<AND <PRSO? ,SHEET>
|
|
<OR ,SHEET-HANGING
|
|
,SHEET-TIED>>
|
|
<RFALSE> ;"SHEET-F handles it")
|
|
(T
|
|
<REMOVE ,PRSO>
|
|
<PRONOUN>
|
|
<TELL " land">
|
|
<COND (<NOT <FSET? ,PRSO ,PLURALBIT>>
|
|
<TELL "s">)>
|
|
<TELL
|
|
" on the street below. An urchin dashes up and runs off with" TR ,PRSO>)>)
|
|
(<AND <VERB? EMPTY-FROM>
|
|
<PRSI? ,WINDOW>
|
|
<EQUAL? ,HERE ,BEDROOM>>
|
|
<PERFORM ,V?EMPTY ,PRSO ,WINDOW>
|
|
<RTRUE>)
|
|
(<VERB? ENTER EXIT DISEMBARK LEAP-OFF>
|
|
<COND (<EQUAL? ,HERE ,BEDROOM>
|
|
<COND (,SHEET-HANGING
|
|
<PERFORM ,V?CLIMB-DOWN ,SHEET>
|
|
<RTRUE>)
|
|
(T
|
|
<PLUMMET-TO-PAVEMENT>)>)
|
|
(<EQUAL? ,HERE ,SOUTH-POLE ,ORPHANAGE-FOYER>
|
|
<TELL "It's barred!" CR>)
|
|
(<EQUAL? ,HERE ,OBSERVATION-ROOM>
|
|
<DO-WALK ,P?WEST>)
|
|
(T
|
|
<DO-FIRST "open" ,WINDOW>)>)>>
|
|
|
|
<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>)>>
|
|
|
|
<OBJECT HOLE
|
|
(IN LOCAL-GLOBALS)
|
|
(SDESC "black circle")
|
|
(SYNONYM HOLE CIRCLE)
|
|
(ADJECTIVE BLACK WHITE)
|
|
(ACTION HOLE-F)>
|
|
|
|
<GLOBAL HOLE-MOVE <>>
|
|
|
|
<ROUTINE HOLE-F ("AUX" OLD-HERE)
|
|
<COND (<OR <AND <NOT <CIRCLE-ISNT-BLACK>>
|
|
<PRSO? ,HOLE>
|
|
<EQUAL? <GET ,P-ADJW 0> ,A?WHITE>>
|
|
<AND <NOT <CIRCLE-ISNT-BLACK>>
|
|
<PRSI? ,HOLE>
|
|
<EQUAL? <GET ,P-ADJW 1> ,A?WHITE>>
|
|
<AND <CIRCLE-ISNT-BLACK>
|
|
<PRSO? ,HOLE>
|
|
<EQUAL? <GET ,P-ADJW 0> ,A?BLACK>>
|
|
<AND <CIRCLE-ISNT-BLACK>
|
|
<PRSI? ,HOLE>
|
|
<EQUAL? <GET ,P-ADJW 1> ,A?BLACK>>>
|
|
<CANT-SEE ,HOLE>)
|
|
(<HOLE-INVISIBLE>
|
|
<CANT-SEE ,HOLE>)
|
|
(<AND <EQUAL? ,HERE ,CELL>
|
|
<NOUN-USED ,W?HOLE ,HOLE>
|
|
<VERB? BOARD ENTER WALK-TO LOOK-INSIDE>>
|
|
<DO-WALK ,P?UP>)
|
|
(<AND <EQUAL? <LOC ,PROTAGONIST> ,CAGE ,FIRST-SLAB ,SECOND-SLAB>
|
|
<TOUCHING? ,HOLE>>
|
|
<CANT-REACH ,HOLE>
|
|
<RTRUE>)
|
|
(<VERB? STAND-ON ENTER BOARD>
|
|
<COND (<CIRCLE-ISNT-BLACK>
|
|
<TELL ,NOTHING-HAPPENS>
|
|
<RTRUE>)
|
|
(<NOT <IN? ,PROTAGONIST ,HERE>>
|
|
<NOT-GOING-ANYWHERE>
|
|
<RTRUE>)>
|
|
<FALL-THROUGH-HOLE>
|
|
<SETG LONG-CORRIDOR-LOC 1>
|
|
<SETG MAD-SCIENTIST-COUNTER 0>
|
|
<SETG IMPATIENCE-COUNTER 0>
|
|
<DEQUEUE I-MAD-SCIENTIST>
|
|
<SET OLD-HERE ,HERE>
|
|
<COND (<EQUAL? ,HERE ,LONG-CORRIDOR>
|
|
<TELL
|
|
"Geronimo!|
|
|
Yow! You appear in midair, high above a canal-studded desertscape.
|
|
The ground is approaching uncomfortably fast.|
|
|
Caw! Caw! A pterodactyl snatches you">
|
|
<AND-SIDEKICK>
|
|
<TELL " in midair and deposits you safely in" ,ELLIPSIS>
|
|
<COND (<AND <FSET? ,MY-KIND-OF-DOCK ,TOUCHBIT>
|
|
<PROB 60>>
|
|
<GOTO ,MY-KIND-OF-DOCK>)
|
|
(<AND <FSET? ,OASIS ,TOUCHBIT>
|
|
<PROB 40>>
|
|
<GOTO ,OASIS>)
|
|
(T
|
|
<GOTO ,RUINED-CASTLE-2>)>)
|
|
(T
|
|
<GOTO <GETP ,HERE ,P?HOLE-DESTINATION>>)>
|
|
<COND (<AND <EQUAL? .OLD-HERE ,WELL-BOTTOM>
|
|
<IN? ,SIDEKICK ,WELL-BOTTOM>>
|
|
<SETG HOLE-MOVE T> ;"the call to GOTO, above, clears it"
|
|
<SIDEKICK-FOLLOWS-YOU>
|
|
<SETG HOLE-MOVE <>>)>
|
|
<RTRUE>)
|
|
(<VERB? LOOK-UNDER TAKE>
|
|
<TELL "It's not liftable." CR>)
|
|
(<AND <VERB? POUR RUB PUT-ON>
|
|
<NOUN-USED ,W?STAIN ,STAIN>
|
|
<PRSO? ,STAIN>>
|
|
<APPLY-STAIN ,HOLE>)
|
|
(<AND <VERB? PUT PUT-ON PUT-THROUGH>
|
|
<PRSI? ,HOLE>>
|
|
<COND (<CIRCLE-ISNT-BLACK>
|
|
<WASTES>)
|
|
(<PRSO? ,SOD>
|
|
<RFALSE> ;"SOD-F handles it")
|
|
(T
|
|
<COND (<EQUAL? ,HERE ,LONG-CORRIDOR>
|
|
<REMOVE ,PRSO> ;"Geronimo!")
|
|
(T
|
|
<COND (<AND <PRSO? ,TORCH>
|
|
<EQUAL? ,HERE ,WELL-BOTTOM>>
|
|
<TORCH-OFF>)>
|
|
<MOVE ,PRSO <GETP ,HERE ,P?HOLE-DESTINATION>>)>
|
|
<NON-DIMENSIONAL-JOURNEY>)>)
|
|
(<CIRCLE-ISNT-BLACK>
|
|
<RFALSE>)
|
|
(<VERB? REACH-IN TOUCH>
|
|
<TELL ,HAND-DWINDLES>)
|
|
(<VERB? EXAMINE LOOK-INSIDE>
|
|
<TELL ,STARING-INTO-VOID>)
|
|
(<VERB? MEASURE>
|
|
<PERFORM-PRSA ,FLEXIBLE-HOLE>
|
|
<RTRUE>)>>
|
|
|
|
<ROUTINE HOLE-INVISIBLE ()
|
|
<COND (<OR <AND <EQUAL? ,HERE ,GARDEN>
|
|
<NOT <FSET? ,SOD ,MUNGBIT>>>
|
|
<AND <EQUAL? ,HERE ,CELL>
|
|
<NOT ,HOLE-OPEN>>
|
|
<AND <EQUAL? ,HERE ,LONG-CORRIDOR>
|
|
<NOT <EQUAL? ,LONG-CORRIDOR-LOC 3>>>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE NON-DIMENSIONAL-JOURNEY ()
|
|
<TELL
|
|
"You get all cross-eyed trying to follow the non-dimensional journey of"
|
|
T ,PRSO " into" T ,HOLE ". When you get your eyeballs untangled again,"
|
|
T ,PRSO " is gone." CR>>
|
|
|
|
<ROUTINE FALL-THROUGH-HOLE ()
|
|
<SETG HOLE-MOVE T>
|
|
<SETG RAFT-HELD <>>
|
|
<TELL
|
|
"You're sucked into the hole in a direction that isn't down, but neither
|
|
is it one of the other directions with which you're familiar.">
|
|
<COND (<ULTIMATELY-IN? ,WHITE-SUIT>
|
|
<MOVE ,WHITE-SUIT ,AT-MAIN-HATCH>
|
|
<FCLEAR ,WHITE-SUIT ,TOUCHBIT>
|
|
<FCLEAR ,WHITE-SUIT ,WORNBIT>
|
|
<COND (<VISIBLE? ,WHITE-SUIT>
|
|
<TELL
|
|
" Oddly, your " D ,WHITE-SUIT " vanishes without a trace.">)>)>
|
|
<CRLF> <CRLF>>
|
|
|
|
<ROUTINE TOUCHING? (THING)
|
|
<COND (<AND <PRSO? .THING>
|
|
<OR <EQUAL? ,PRSA ,V?TAKE ,V?TOUCH ,V?SHAKE>
|
|
<EQUAL? ,PRSA ,V?CLEAN ,V?KISS ,V?SWIM>
|
|
<EQUAL? ,PRSA ,V?PUSH ,V?CLOSE ,V?LOOK-UNDER>
|
|
<EQUAL? ,PRSA ,V?MOVE ,V?OPEN ,V?KNOCK>
|
|
<EQUAL? ,PRSA ,V?SET ,V?SHAKE ,V?RAISE>
|
|
<EQUAL? ,PRSA ,V?UNLOCK ,V?LOCK ,V?CLIMB-UP>
|
|
<EQUAL? ,PRSA ,V?CLIMB ,V?CLIMB-DOWN ,V?CLIMB-ON>
|
|
<EQUAL? ,PRSA ,V?BOARD ,V?ENTER ,V?ON>
|
|
<EQUAL? ,PRSA ,V?OFF ,V?SET ,V?THROW>
|
|
<EQUAL? ,PRSA ,V?TASTE ,V?FUCK ,V?RAPE>
|
|
<EQUAL? ,PRSA ,V?LOOK-INSIDE ,V?STAND-ON ,V?TIE>
|
|
<EQUAL? ,PRSA ,V?MUNG ,V?KICK ,V?KILL>
|
|
<EQUAL? ,PRSA ,V?KNOCK ,V?CUT ,V?WHIP>
|
|
<EQUAL? ,PRSA ,V?BITE ,V?PUSH>>>
|
|
<RTRUE>)
|
|
(<AND <PRSI? .THING>
|
|
<VERB? GIVE PUT PUT-ON>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE IN-CATACOMBS ()
|
|
<COND (<EQUAL? ,HERE ,CATACOMBS ,WELL-BOTTOM ,LADDER-ROOM>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,BURIAL-CHAMBER ,FORGOTTEN-STOREHOUSE>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE IN-SPACE? ()
|
|
<COND (<OR <EQUAL? ,HERE ,HOLD ,STABLE ,AT-MAIN-HATCH>
|
|
<EQUAL? ,HERE ,LONG-CORRIDOR ,IN-SPACE ,SPACE-YACHT>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE CANT-SEE ("OPTIONAL" (OBJ <>) (STRING <>))
|
|
<SETG P-WON <>>
|
|
<TELL ,YOU-CANT>
|
|
<COND (<EQUAL? .OBJ ,ODOR>
|
|
<TELL "smell">)
|
|
(T
|
|
<TELL "see">)>
|
|
<COND (<OR <NOT .OBJ>
|
|
<AND .OBJ
|
|
<NOT <NAME? .OBJ>>>>
|
|
<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 OPEN-YOUR-EYES! ()
|
|
<COND (<FSET? ,EYES ,MUNGBIT>
|
|
<DO-FIRST "open" ,EYES>)
|
|
(T
|
|
<DO-FIRST "uncover" ,EYES>)>>
|
|
|
|
<ROUTINE NOW-TIED (OBJ)
|
|
<TELL "Okay," T ,PRSO " is now tied to" TR .OBJ>>
|
|
|
|
<ROUTINE TELL-HIT-HEAD ()
|
|
<TELL
|
|
"You bang your bean 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 (<OR <EQUAL? .OBJ ,STOOL ,TOILET ,FRONT-STOOP>
|
|
<EQUAL? .OBJ ,FIRST-SLAB ,SECOND-SLAB>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE OPEN-CLOSED (OBJ)
|
|
<COND (<FSET? .OBJ ,OPENBIT>
|
|
<TELL "open">)
|
|
(T
|
|
<TELL "closed">)>>
|
|
|
|
<ROUTINE WEE ()
|
|
<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 " ,LGOP-CAPS " 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 (,MALE
|
|
<TELL "him">)
|
|
(T
|
|
<TELL "her">)>>
|
|
|
|
<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 ,PERIOD-CR>>
|
|
|
|
<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 (<OR <FSET? ,EYES ,MUNGBIT>
|
|
<EQUAL? ,HAND-COVER ,EYES>>
|
|
<OPEN-YOUR-EYES!>)
|
|
(<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 "The " D ,PRSO " has no lid." CR>>
|
|
|
|
<ROUTINE SORE (STRING)
|
|
<TELL "You begin to get a sore " .STRING ,PERIOD-CR>>
|
|
|
|
<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.]" CR>>
|
|
|
|
<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">)
|
|
(<FSET? ,PRSO ,FEMALEBIT>
|
|
<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 ,PERIOD-CR>>
|
|
|
|
<ROUTINE SEE-MANUAL (STRING)
|
|
<TELL
|
|
"[You need quotes to " .STRING " See the instruction manual section
|
|
entitled \"Communicating With Infocom's Interactive Fiction.\"]" CR>>
|
|
|
|
<ROUTINE UNIMPORTANT-THING-F ()
|
|
<TELL "That's not important; leave it alone." CR>>
|
|
|
|
<GLOBAL TOO-DARK "It's too dark to see a thing.">
|
|
|
|
<GLOBAL YNH "You're not holding">
|
|
|
|
<GLOBAL THERES-NOTHING "There's nothing ">
|
|
|
|
<GLOBAL YOU-SEE "You can see">
|
|
|
|
<GLOBAL IT-SEEMS-THAT "It seems that">
|
|
|
|
<GLOBAL YOU-CANT-SEE-ANY "You can't see any ">
|
|
|
|
<GLOBAL YOU-CANT "You can't ">
|
|
|
|
<GLOBAL YOULL-HAVE-TO "You'll have to ">
|
|
|
|
<GLOBAL CATACOMBS-WATER-DESC
|
|
"As the result of an ancient leak, the catacombs are knee deep in warm,
|
|
brackish canal water.">
|
|
|
|
<GLOBAL ITS-ENGRAVED "There's an engraving on its side.">
|
|
|
|
<GLOBAL LGOP-CAPS "LEATHER GODDESSES OF PHOBOS">
|
|
|
|
<GLOBAL STICK-IT-IN-POCKET " stick it back in your back pocket">
|
|
|
|
<GLOBAL SPREAD-APART " spread apart to form an opening">
|
|
|
|
<GLOBAL PLEASURE-PALACE-DESC
|
|
" the arching towers and curving domes of the notorious Pleasure Palace of ">
|
|
|
|
<GLOBAL ATTACK-FLEET " Main Attack Fleet">
|
|
|
|
<GLOBAL MUFFLED "Many sounds seem muffled now that you">
|
|
|
|
<GLOBAL ABOUT-TO-KISS ", but just as you are about to kiss the frog ">
|
|
|
|
<GLOBAL PRIVATE-BOUDOIR " extremely secret and private boudoir">
|
|
|
|
<GLOBAL 45-DEGREE-ANGLE " forty-five degree angle">
|
|
|
|
<GLOBAL HIT-RETURN ". Hit the RETURN/ENTER key to ">
|
|
|
|
<GLOBAL BOUGHT-AND-SOLD "xits bought and sold">
|
|
|
|
<GLOBAL BATTLESHIP-DESC
|
|
"Hanging from the base of the long, potent-looking battleship are two
|
|
pendulous, brimming fuel tanks.">
|
|
|
|
<GLOBAL EVOLVED " evolved eating flies weighing a quarter of a">
|
|
|
|
<GLOBAL OOZY-WITH-SLIME "The ground is oozy with proto-slime.">
|
|
|
|
<GLOBAL VIZICOMM-DESC
|
|
" an ordinary pay vizicomm, with a handset, coin slot, dial, coin return
|
|
knob, and coin return box.">
|
|
|
|
<GLOBAL SIGN-AND-STAIRS
|
|
". A sign is posted next to the stairs which lead both upwards and downwards.">
|
|
|
|
<GLOBAL PROPRIETOR-STIRS "The proprietor stirs somewhat from his lethargy. \"">
|
|
|
|
<GLOBAL WRITING-CHANGES "The writing on the button changes as you press it">
|
|
|
|
<GLOBAL PINNED ", pinned to the dock by the current.|">
|
|
|
|
<GLOBAL KEEP-IT-FROM-FLOATING-AWAY
|
|
". To keep it from floating away, you pull the raft out of the water.|">
|
|
|
|
<GLOBAL ALREADY-IN-MODE "You are already in that mode.|">
|
|
|
|
<GLOBAL LOOK-AROUND "Look around you.|">
|
|
|
|
<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.|">
|
|
|
|
<GLOBAL MISSIONARY-ONLY
|
|
"Sorry -- nothing beyond the missionary position in SUGGESTIVE level.|">
|
|
|
|
<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 PART-OF-VIZICOMM "You can't take that -- it's part of the vizicomm!|">
|
|
|
|
<GLOBAL PERIOD-CR ".|">
|
|
|
|
<GLOBAL ELLIPSIS "...||">
|
|
|
|
<GLOBAL HANDS-OVER-EYES
|
|
"That would accomplish nothing, since you're covering
|
|
your eyes with your hands.|">
|
|
|
|
<GLOBAL MORE-ROYAL-BLOOD
|
|
"It would take considerably more royal blood than you've got to wear
|
|
this royal crown.|">
|
|
|
|
<GLOBAL GIMME-TROUBLE
|
|
"\"Don't gimme trouble -- just gimme a number between 1 and 8379.\"|">
|
|
|
|
<GLOBAL TWICE-AS-LOUD "t begins crying twice as loudly as before.|">
|
|
|
|
<GLOBAL ONLY-ONE-THING-IN-COMPARTMENT
|
|
"You can only fit one thing in the odd machine at a time.|">
|
|
|
|
<GLOBAL NOTHING-HAPPENS "Nothing happens.|">
|
|
|
|
<GLOBAL HORSE-CANT-FIT "The horse can't fit through there!|">
|
|
|
|
<GLOBAL FAILED "Failed.|">
|
|
|
|
<GLOBAL OK "Okay.|">
|
|
|
|
<GLOBAL HUH "Huh?|">
|
|
|
|
<GLOBAL YECHH "Yechh.|">
|
|
|
|
<GLOBAL ALREADY-IS "It already is!|">
|
|
|
|
<GLOBAL NOTHING-NEW "This reveals nothing new.|">
|
|
|
|
<GLOBAL ONLY-WITH-A-RAKE "You can only rake with a rake.|">
|
|
|
|
<GLOBAL LOOKS-UNAPPETIZING
|
|
" looks unappetizing, but smells deliciously familiar.|">
|
|
|
|
<GLOBAL NO-VERB "[There was no verb in that sentence!]|">
|
|
|
|
<GLOBAL DONT-WANT-TO "You don't want to. Believe me.|">
|
|
|
|
<GLOBAL DEXTERITY "You don't have enough dexterity.|">
|
|
|
|
<GLOBAL NO-STEERING "There's no obvious steering mechanism.|">
|
|
|
|
<GLOBAL PFFT "\"Phfffft!\" The torch goes out.|">
|
|
|
|
<GLOBAL TRELLIS-TOO-WIDE "The trellis is too wide to fit in the hole.|">
|
|
|
|
<GLOBAL LEAVE-ME-ALONE
|
|
"\"Leave me alone! I'm manipulating the budget for the invasion. I can't
|
|
believe how much neuro-tinglers cost these days...\"|">
|
|
|
|
<GLOBAL HAND-DWINDLES
|
|
"Your hand dwindles disorientingly to a point, like railroad tracks
|
|
vanishing toward the horizon.|">
|
|
|
|
<GLOBAL STARING-INTO-VOID
|
|
"It's like staring into an eternal void of blackest infinity sucking up all
|
|
life and thought and hope and being -- or, like what you see after getting
|
|
your face smashed in a bar fight. You can pick the metaphor you're most
|
|
familiar with.|"> |