1327 lines
33 KiB
Plaintext
1327 lines
33 KiB
Plaintext
"GLOBALS for
|
|
BALLYHOO
|
|
(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>
|
|
|
|
<GLOBAL HERE <>>
|
|
|
|
<GLOBAL LIT T>
|
|
|
|
<GLOBAL MOVES 0>
|
|
|
|
<GLOBAL SCORE 0>
|
|
|
|
;<GLOBAL INDENTS
|
|
<PTABLE ""
|
|
" "
|
|
" "
|
|
" "
|
|
" "
|
|
" ">>
|
|
|
|
;"global objects and associated routines"
|
|
|
|
<OBJECT GLOBAL-OBJECTS
|
|
(FLAGS INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT OPENBIT
|
|
SEARCHBIT TRANSBIT WEARBIT RMUNGBIT ONBIT
|
|
LIGHTBIT RLANDBIT WORNBIT VEHBIT INDOORSBIT
|
|
LOCKEDBIT EATBIT CAGEBIT CONTBIT PERSON
|
|
VOWELBIT NDESCBIT DOORBIT ACTORBIT FEMALE
|
|
NOA AIRBIT CLEARBIT REWEARBIT)>
|
|
|
|
<OBJECT LOCAL-GLOBALS
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM ZZMGCK)
|
|
(DESCFCN 0)
|
|
(GLOBAL GLOBAL-OBJECTS)
|
|
(FDESC "F")
|
|
(LDESC "F")
|
|
(PSEUDO "FOOBAR" V-WALK)
|
|
(SIZE 0)
|
|
(TEXT "")
|
|
(CAPACITY 0)>
|
|
;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
|
|
|
|
<OBJECT ROOMS
|
|
(IN TO ROOMS)>
|
|
|
|
<OBJECT BACK
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your back")
|
|
(SYNONYM BACK SHOULDER STOMACH)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT NDESCBIT)
|
|
(ACTION BACK-F)>
|
|
|
|
<ROUTINE BACK-F ()
|
|
<COND (<IS-NOUN? ,W?STOMACH>
|
|
<COND (<VERB? LISTEN>
|
|
<PERFORM ,V?LISTEN ,ROAR>
|
|
<RTRUE>)
|
|
(T
|
|
<V-COUNT>)>)>>
|
|
|
|
<OBJECT INTDIR
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "direction")
|
|
(SYNONYM DIRECTION)
|
|
(ADJECTIVE NORTH EAST SOUTH WEST ; "UP DOWN" NE NW SE SW)
|
|
; "(NE 0)
|
|
(SE 0)
|
|
(SW 0)
|
|
(NW 0)" >
|
|
|
|
;<OBJECT INTNUM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "number")
|
|
(SYNONYM INTNUM)
|
|
(ADJECTIVE NUMBER)>
|
|
|
|
<OBJECT INTNUM
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM NUMBER INTNUM)
|
|
;(DESC "number")
|
|
(SDESC "number")
|
|
(ACTION INTNUM-F)>
|
|
|
|
<ROUTINE INTNUM-F ()
|
|
<COND (<AND ,P-DOLLAR-FLAG
|
|
<NOT <EQUAL? ,PRSA ,V?TAKE ,V?ASK-FOR ,V?BET>>
|
|
;<NOT <EQUAL? ,PRSA ,V?COUNT-BACK>>
|
|
<EQUAL? ,WINNER ,PROTAGONIST>
|
|
<G? ,P-AMOUNT ,POCKET-CHANGE>>
|
|
<TELL ,THAT-MUCH>)
|
|
(<EQUAL? ,P-NUMBER 21>
|
|
<COND (<EQUAL? ,INTNUM ,PRSO>
|
|
<PERFORM ,PRSA ,BLACKJACK ,PRSI>)
|
|
(T
|
|
<PERFORM ,PRSA ,PRSO ,BLACKJACK>)>
|
|
<RTRUE>)>>
|
|
|
|
<GLOBAL POCKET-CHANGE 1281>
|
|
|
|
<OBJECT GLOBAL-MONEY
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM MONEY CASH)
|
|
(ADJECTIVE COIN COINS MY)
|
|
(DESC "money")
|
|
(FLAGS NOA ;NARTICLEBIT)
|
|
(ACTION GLOBAL-MONEY-F)>
|
|
|
|
<ROUTINE GLOBAL-MONEY-F ()
|
|
<COND (<DONT-HANDLE? ,GLOBAL-MONEY>
|
|
<RFALSE>)
|
|
(<VERB? FIND>
|
|
<V-DIG>
|
|
<RTRUE>)
|
|
(<VERB? PASS>
|
|
<RFALSE>)
|
|
(<G? ,POCKET-CHANGE 0>
|
|
<COND (<VERB? COUNT>
|
|
<TELL "You're carrying ">
|
|
<PRINT-AMOUNT ,POCKET-CHANGE>
|
|
<TELL ,PERIOD>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "It looks a lot like ">
|
|
<PRINT-AMOUNT ,POCKET-CHANGE>
|
|
<TELL ,PERIOD>)
|
|
(<VERB? TAKE>
|
|
<HAVE-IT>)
|
|
(T
|
|
<TELL
|
|
"Treating your hard-earned cash this way won't get you anywhere." CR>
|
|
<RFATAL>)>)
|
|
|
|
(T
|
|
<CANT-SEE ,GLOBAL-MONEY>)>>
|
|
|
|
<OBJECT DOLLAR
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM DOLLAR BILL BUCK BUCKS)
|
|
(ADJECTIVE DOLLAR TWO)
|
|
(DESC "dollar")
|
|
;(FLAGS NARTICLEBIT)
|
|
(ACTION DOLLAR-F)>
|
|
|
|
<ROUTINE DOLLAR-F ()
|
|
<COND (<AND <L? ,POCKET-CHANGE 100>
|
|
<NOT <ZERO? ,POCKET-CHANGE>>>
|
|
<TELL ,THAT-MUCH>)
|
|
(,P-MULT
|
|
<SPECIFY-MONEY>
|
|
<RFATAL>)
|
|
(<VERB? BET>
|
|
<COND (<EQUAL? <GET ,P-ADJW 0> ,W?TWO>
|
|
<SETG P-AMOUNT 200>)
|
|
(T
|
|
<SETG P-AMOUNT 100>)>
|
|
<SETG P-DOLLAR-FLAG T>
|
|
<PERFORM ,V?BET ,INTNUM>
|
|
<RTRUE>)
|
|
(<NOT <VERB? EXAMINE>>
|
|
<GLOBAL-MONEY-F>)>>
|
|
|
|
<OBJECT PSEUDO-OBJECT
|
|
(DESC "pseudo")
|
|
(ACTION ME-F)>
|
|
|
|
<OBJECT IT
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM IT THEM HER HIM)
|
|
(DESC "it")
|
|
(FLAGS VOWELBIT NARTICLEBIT NDESCBIT TOUCHBIT)>
|
|
|
|
<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>)
|
|
(<PRSO? ,NOT-HERE-OBJECT>
|
|
<SET TBL ,P-PRSO>)
|
|
(T
|
|
<SET TBL ,P-PRSI>
|
|
<SET PRSO? <>>)>
|
|
<COND (.PRSO?
|
|
<COND (<OR <EQUAL? ,PRSA ,V?FIND ,V?FOLLOW ,V?PHONE>
|
|
<EQUAL? ,PRSA ,V?WHAT ,V?WHERE ,V?WHO>
|
|
<EQUAL? ,PRSA ,V?WAIT-FOR ,V?WALK-TO ,V?PHONE-WITH>
|
|
<EQUAL? ,PRSA ,V?BUY ,V?CALL ;,V?SAY>
|
|
<AND <EQUAL? ,PRSO ,GIRL>
|
|
<EQUAL? ,PRSA ,V?LISTEN>
|
|
<IN? ,GIRL ,LOCAL-GLOBALS>>>
|
|
<SET X T>
|
|
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
|
|
<COND (<NOT <EQUAL? .OBJ ,NOT-HERE-OBJECT>>
|
|
<RTRUE>)>)
|
|
(T
|
|
<RFALSE>)>)>)
|
|
|
|
(T
|
|
<COND (<OR <EQUAL? ,PRSA ,V?ASK-ABOUT ,V?ASK-FOR ,V?TELL-ABOUT>
|
|
<EQUAL? ,PRSA ,V?SEARCH-OBJECT-FOR>>
|
|
<SET X T>
|
|
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
|
|
<COND (<NOT <EQUAL? .OBJ ,NOT-HERE-OBJECT>>
|
|
<RTRUE>)>)
|
|
(T
|
|
<RFALSE>)>)>)>
|
|
;"Here is the default 'cant see any' printer"
|
|
<COND (.X
|
|
<TELL ,SPECIFIC>)
|
|
(<EQUAL? ,WINNER ,PROTAGONIST>
|
|
<TELL "[You can't ">
|
|
<COND (<EQUAL? ,P-XNAM ,W?CONVER ,W?VOICE ,W?VOICES>
|
|
<TELL "hear">)
|
|
(T
|
|
<TELL "see">)>
|
|
<COND (<NOT <NAME? ,P-XNAM>>
|
|
<TELL " any">)>
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " here.]" CR>)
|
|
(<OR <EQUAL? ,THUMB ,WINNER>
|
|
<AND <EQUAL? ,DICK ,WINNER>
|
|
<OR <FSET? ,DICK ,RMUNGBIT>
|
|
,DICK-UNRESPONSIVE>>>
|
|
<RFALSE>)
|
|
(<EQUAL? ,WINNER ,GUARD>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL "Looking confused,">
|
|
<ARTICLE ,WINNER T>
|
|
<TELL " says, \"I don't see">
|
|
<COND (<NOT <NAME? ,P-XNAM>>
|
|
<TELL " any">)>
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " here!\"" CR>)>
|
|
<STOP>>
|
|
|
|
<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>
|
|
<SETG P-IT-OBJECT ,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>
|
|
<SETG P-IT-OBJECT ,PRSO>)
|
|
(T
|
|
<SETG PRSI .OBJ>)>
|
|
<RFALSE>)
|
|
(T
|
|
,NOT-HERE-OBJECT)>>
|
|
|
|
<ROUTINE NOT-HERE-PRINT (PRSO?)
|
|
<COND (<EQUAL? ,P-XNAM ,EDDIE>
|
|
<TELL "anyone by that name">)
|
|
(,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 LIGHT
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "light")
|
|
(SYNONYM LIGHT LIGHTS LAMP SPOTLIGHT)
|
|
(ADJECTIVE GLARING)
|
|
(FLAGS LIGHTBIT)
|
|
(ACTION LIGHT-F)>
|
|
|
|
<ROUTINE LIGHT-F ()
|
|
<COND (<VERB? LAMP-ON LAMP-OFF>
|
|
<TELL "You've no access to the lighting equipment." CR>)>>
|
|
|
|
<OBJECT DARKNESS
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "darkness")
|
|
(SYNONYM DARK DARKNESS)
|
|
(FLAGS NARTICLEBIT)
|
|
(ACTION DARKNESS-F)>
|
|
|
|
<ROUTINE DARKNESS-F ()
|
|
<COND (<VERB? THROUGH BOARD WALK-TO>
|
|
<V-WALK-AROUND>)>>
|
|
|
|
;<OBJECT HELLO-OBJECT
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "greeting")
|
|
(SYNONYM HELLO HI)
|
|
(FLAGS NDESCBIT)
|
|
;(ACTION HELLO-OBJECT-F)>
|
|
|
|
;<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>)>>
|
|
|
|
<OBJECT GROUND
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM FLOOR GROUND FIELD)
|
|
(ADJECTIVE GRASSY ARENA)
|
|
(DESC "ground")
|
|
(ACTION GROUND-F)>
|
|
|
|
<ROUTINE GROUND-F ()
|
|
<COND (<VERB? CLIMB-UP CLIMB-ON CLIMB-FOO BOARD>
|
|
<V-DIG>)
|
|
(<VERB? LOOK-UNDER>
|
|
<V-COUNT>)
|
|
(<AND <VERB? SEARCH-OBJECT-FOR>
|
|
<EQUAL? ,HERE ,UNDER-STANDS>
|
|
<PRSO? ,GROUND>>
|
|
<PERFORM ,V?SEARCH-OBJECT-FOR ,GARBAGE ,PRSI>
|
|
<RTRUE>)
|
|
(<AND <VERB? EXAMINE>
|
|
<EQUAL? ,HERE ,PLATFORM-1 ,PLATFORM-2 ,TIGHTROPE-ROOM>>
|
|
<PERFORM ,V?LOOK-DOWN>
|
|
<RTRUE>)
|
|
(<AND <VERB? EXAMINE>
|
|
<EQUAL? ,HERE ,APE-ROOM>>
|
|
<V-LOOK>)
|
|
(<VERB? THROUGH> ;"cross"
|
|
<V-WALK-AROUND>)
|
|
(<VERB? LEAVE>
|
|
<DO-WALK ,P?UP>)>>
|
|
|
|
<OBJECT WALLS
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "wall")
|
|
(SYNONYM WALL WALLS)
|
|
(ADJECTIVE SIDE)
|
|
(ACTION WALLS-F)>
|
|
|
|
<ROUTINE WALLS-F ()
|
|
<COND (<EQUAL? ,HERE ,PROP-ROOM ,WEST-CAMP>
|
|
<PERFORM ,PRSA ,CANVAS>
|
|
<RTRUE>)
|
|
(<AND <VERB? PUT>
|
|
<PRSO? ,THUMB>
|
|
<EQUAL? ,HERE ,TAMER-ROOM>>
|
|
<PERFORM ,V?PUT ,THUMB ,CRAWL-SPACE>
|
|
<RTRUE>)
|
|
(<AND <VERB? KNOCK>
|
|
<EQUAL? ,HERE ,TAMER-ROOM>
|
|
<IN? ,GIRL ,LOCAL-GLOBALS>
|
|
<NOT ,GIRL-CRIED>>
|
|
<TELL-WIMPER>)>>
|
|
|
|
<OBJECT HOME
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "home")
|
|
(SYNONYM HOME)>
|
|
|
|
<ROUTINE TELL-WIMPER ()
|
|
<SETG GIRL-CRIED T>
|
|
<TELL
|
|
"You can hear a faint whimper coming from the " D ,CRAWL-SPACE "." CR>>
|
|
|
|
<OBJECT CEILING
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "ceiling")
|
|
(SYNONYM CEILIN ROOF)
|
|
(ACTION CEILING-F)>
|
|
|
|
<ROUTINE CEILING-F ()
|
|
<COND (<AND <EQUAL? ,HERE ,ON-WAGON>
|
|
<IN? ,MUNRAB ,ON-WAGON>>
|
|
<PERFORM ,V?KNOCK ,OFFICE-DOOR>
|
|
<RTRUE>)
|
|
(<VERB? LOOK-UNDER>
|
|
<PERFORM ,V?LOOK>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT CORNER
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "corner")
|
|
(SYNONYM CORNER)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION CORNER-F)>
|
|
|
|
<ROUTINE CORNER-F ()
|
|
<COND (<VERB? EXAMINE LOOK-INSIDE>
|
|
<V-LOOK>
|
|
<RTRUE>)
|
|
(<VERB? WALK-TO ENTER THROUGH>
|
|
<COND (<EQUAL? ,HERE ,BLUE-ROOM>
|
|
<PERFORM ,V?WALK-TO ,POKER>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"You're close enough to the " D ,CORNER " already." CR>)>)>>
|
|
|
|
<OBJECT EGRESS
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "egress")
|
|
(SYNONYM EGRESS)
|
|
(FLAGS NDESCBIT VOWELBIT)
|
|
(ACTION EGRESS-F)>
|
|
|
|
<ROUTINE EGRESS-F ()
|
|
<COND (<VERB? WHAT>
|
|
<TELL
|
|
"You'd have to see it to believe it." CR>)
|
|
(<VERB? WALK-TO>
|
|
<DO-WALK ,P?OUT>)>>
|
|
|
|
<OBJECT LADDER
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "ladder")
|
|
(SYNONYM LADDER ;ROPE STEPLADDER)
|
|
(ADJECTIVE ROPE SMALL)
|
|
(FLAGS NDESCBIT TRYTAKEBIT)
|
|
(ACTION LADDER-F)>
|
|
|
|
;"LADDER rmungbit = have walked SW from broken fence and seen ladder on wagon"
|
|
|
|
<ROUTINE LADDER-F ()
|
|
<COND (<AND <EQUAL? ,HERE ,NEAR-WAGON>
|
|
<NOT <FSET? ,LADDER ,RMUNGBIT>>>
|
|
<CANT-SEE ,LADDER>)
|
|
(<VERB? TAKE>
|
|
<COND (<EQUAL? ,P-PRSA-WORD ,W?TAKE ,W?GET ,W?REMOVE>
|
|
<TELL "It's not takeable." CR>)
|
|
(T
|
|
<PERFORM ,V?CLIMB-FOO ,LADDER>)>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,ON-TENT>
|
|
<COND (<VERB? EXAMINE FIND CLIMB-DOWN CLIMB-FOO>
|
|
<COND (<ENABLED? ,I-POKE>
|
|
<TELL
|
|
"You desperately grope in the darkness for the rope ladder, but can't
|
|
seem to find it." CR>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "You can barely see the ladder. ">
|
|
<COND (<VERB? CLIMB-DOWN CLIMB-FOO>
|
|
<DO-WALK ,P?DOWN>
|
|
<RTRUE>)>
|
|
<CRLF>
|
|
<RTRUE>)>)
|
|
(T
|
|
<COND (<ENABLED? ,I-POKE>
|
|
<CANT-SEE ,LADDER>)
|
|
(T
|
|
<RFALSE>)>)>)
|
|
(<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>)>)
|
|
(<AND <VERB? UNTIE TAKE-WITH>
|
|
<PRSI? ,POLE>>
|
|
<PERFORM ,V?UNTIE ,LADDER>
|
|
<RTRUE>)
|
|
(<AND <VERB? CLIMB-UP CLIMB-FOO>
|
|
<EQUAL? ,HERE ,CLOWN-ALLEY>>
|
|
<PERFORM ,V?BOARD ,UPPER>
|
|
<RTRUE>)
|
|
(<AND <VERB? CLIMB-FOO>
|
|
<EQUAL? ,HERE ,ON-WAGON>>
|
|
<PERFORM ,V?CLIMB-DOWN ,LADDER>
|
|
<RTRUE>)
|
|
(<VERB? CLIMB-UP CLIMB-FOO>
|
|
<DO-WALK ,P?UP>)
|
|
(<VERB? CLIMB-DOWN>
|
|
<COND (<EQUAL? ,HERE ,ON-WAGON>
|
|
<COND (<NOT <CLIMB?>>
|
|
<COND (<RUNNING? ,I-OFFICE>
|
|
<MUNRAB-ENTERS-OFFICE T>)>
|
|
<GOTO ,NEAR-WAGON>
|
|
<RTRUE>)>
|
|
<RTRUE>)
|
|
(T
|
|
<DO-WALK ,P?DOWN>)>)>>
|
|
|
|
<ROUTINE CLIMB? ("AUX" X (TO-GROUND? T) (GROUND <>))
|
|
<COND (<AND ,END-GAME
|
|
<EQUAL? ,HERE ,RING>
|
|
<NOT <IN? ,PROTAGONIST ,STAND>>>
|
|
<TELL
|
|
"The rope " D ,LADDER ", which is tangled around its platform, dangles down
|
|
a couple of feet out of your reach." CR>
|
|
<RTRUE>)
|
|
(<CANT-CLIMB?>
|
|
<SET X <FIRST? ,PROTAGONIST>>
|
|
<REPEAT ()
|
|
<COND (<AND <NOT <FSET? .X ,WORNBIT>>
|
|
<NOT <EQUAL? .X ,BALLOON ,MOUSE>>>
|
|
<RETURN>)
|
|
(T
|
|
<SET X <NEXT? .X>>)>>
|
|
<COND (<SET GROUND <GETP ,HERE ,P?GROUND-LOC>>
|
|
<MOVE .X .GROUND>)
|
|
(T
|
|
<SET TO-GROUND? <>>
|
|
<MOVE .X ,HERE>)>
|
|
<TELL
|
|
"Trying to grip the " D ,LADDER ", you fumble away">
|
|
<ARTICLE .X T>
|
|
<COND (.TO-GROUND?
|
|
<TELL " and it falls to the ground below">)>
|
|
<TELL ,PERIOD>
|
|
<RTRUE>)
|
|
(<AND <EQUAL? ,APE-LOC 1>
|
|
<EQUAL? ,HERE ,RING>>
|
|
<SETG APE-LOC 2>
|
|
<FCLEAR ,PLATFORM-1 ,TOUCHBIT>
|
|
<TELL
|
|
"As you hoist " D ,ME " onto the " D ,LADDER ", the platform buckles with the
|
|
addition of your weight. " D ,APE " is spooked, and ">
|
|
<COND (<NOT <IN? ,NET ,MUNRAB>>
|
|
<TELL
|
|
"loses his bundle which falls tragically in front of your horrified face
|
|
to the ground below.">
|
|
<FINISH>)
|
|
(T
|
|
<TELL
|
|
"clambers up into the supporting apparatus as you board the platform." CR CR>
|
|
<COND (<AND <EQUAL? <META-LOC ,RADIO> ,PLATFORM-1>
|
|
<FSET? ,RADIO ,ONBIT>
|
|
<EQUAL? ,STATION 1170>>
|
|
<TELL
|
|
"In his distress, " D ,APE " must not have noticed the radio playing." CR CR>)>
|
|
<GOTO ,PLATFORM-1>
|
|
<RTRUE>)>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE CANT-CLIMB? ()
|
|
<COND (<AND <OR <G? <CCOUNT ,PROTAGONIST> 2>
|
|
<G? <WEIGHT ,PROTAGONIST> 30>>
|
|
<NOT <HELD? ,POLE>>>
|
|
<RTRUE>)
|
|
(<OR <AND <HELD? ,POLE>
|
|
<G? <CCOUNT ,PROTAGONIST> 1>>
|
|
<HELD? ,STAND>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE UP-LADDER ()
|
|
<COND (<AND <EQUAL? ,HERE ,NEAR-WAGON>
|
|
<NOT <FSET? ,LADDER ,RMUNGBIT>>>
|
|
<TELL ,CANT-GO CR>
|
|
<RFALSE>)>
|
|
<COND (<NOT <CLIMB?>>
|
|
<TELL-CLIMBING>
|
|
<COND (<EQUAL? ,HERE ,RING>
|
|
<RETURN ,PLATFORM-1>)
|
|
(<EQUAL? ,HERE ,NEAR-WAGON>
|
|
<RETURN ,ON-WAGON>)
|
|
(T
|
|
<RETURN ,ON-TENT>)>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE DOWN-LADDER ()
|
|
<COND (<NOT <CLIMB?>>
|
|
<TELL-CLIMBING>
|
|
<COND (<EQUAL? ,HERE ,PLATFORM-1>
|
|
<RETURN ,RING>)
|
|
(<EQUAL? ,HERE ,ON-WAGON>
|
|
<RETURN ,NEAR-WAGON>)
|
|
(T
|
|
<RETURN ,ON-CAGE>)>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE TELL-CLIMBING ()
|
|
<COND (<AND <EQUAL? ,HERE ,ON-WAGON>
|
|
<RUNNING? ,I-OFFICE>>
|
|
<MUNRAB-ENTERS-OFFICE T>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "You grasp the " D ,LADDER " firmly and climb ">
|
|
<COND (<EQUAL? ,P-WALK-DIR ,P?UP>
|
|
<TELL "up">)
|
|
(T
|
|
<TELL "down">)>)>
|
|
<TELL " ..." CR CR>>
|
|
|
|
<OBJECT AIR
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "air")
|
|
(SYNONYM AIR)
|
|
(FLAGS VOWELBIT NARTICLEBIT AIRBIT)
|
|
(ACTION AIR-F)>
|
|
|
|
<ROUTINE AIR-F ()
|
|
<COND (<VERB? SMELL>
|
|
<PERFORM ,V?SMELL>
|
|
<RTRUE>)>>
|
|
|
|
;<OBJECT SKY
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "sky")
|
|
(SYNONYM SKY)
|
|
(ACTION SKY-F)>
|
|
|
|
;<ROUTINE SKY-F ()
|
|
<COND (<NOT <FSET? ,HERE ,OUTSIDEBIT>>
|
|
<CANT-SEE ,SKY>)
|
|
(<AND <IN? ,FLEET ,HERE>
|
|
<VERB? EXAMINE>>
|
|
<TELL
|
|
"The sky is filled with the ships of the " D ,FLEET "." CR>)>>
|
|
|
|
;<OBJECT STAR
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "sun")
|
|
(SYNONYM STAR SUN SYSTEM SOL)
|
|
(ADJECTIVE APPROA STAR SOLAR SMALL UNREGA YELLOW ORANGE)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION STAR-F)>
|
|
|
|
;<ROUTINE STAR-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (<EQUAL? ,HERE ,WAR-CHAMBER>
|
|
<TELL
|
|
"The approaching star is a small, unregarded yellow sun, with nine planets of
|
|
varying sizes. The " D ,THIRD-PLANET " catches your attention.">
|
|
<CRLF>)
|
|
(<EQUAL? ,HERE ,DAIS ,SPEEDBOAT>
|
|
<TELL "The sun is a smallish orange star." CR>)
|
|
(<EQUAL? ,HERE ,FRONT-OF-HOUSE ,COUNTRY-LANE ,BACK-OF-HOUSE>
|
|
<TELL "The sun is a smallish yellow star." CR>)
|
|
(T
|
|
<CANT-SEE ,STAR>)>)>>
|
|
|
|
<OBJECT HANDS
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM HANDS HAND PALM)
|
|
(ADJECTIVE ;BARE MY YOUR)
|
|
(DESC "your hand")
|
|
(FLAGS NDESCBIT TOUCHBIT NARTICLEBIT)
|
|
(ACTION HANDS-F)>
|
|
|
|
;"RMUNGBIT for hands = Rimshaw has read palm"
|
|
|
|
<ROUTINE HANDS-F ("AUX" ACTOR)
|
|
<COND (<VERB? WAVE>
|
|
<SETG PRSO <>>
|
|
<PERFORM ,V?WAVE-AT>
|
|
<RTRUE>)
|
|
(<AND <VERB? READ RUB>
|
|
<PRSO? ,HANDS>
|
|
<ENABLED? ,I-HYP>>
|
|
<SETG WINNER ,HYP>
|
|
<PERFORM ,PRSA ,PRSO>
|
|
<SETG WINNER ,PROTAGONIST>
|
|
<RTRUE>)
|
|
(<VERB? READ EXAMINE>
|
|
<TELL "Your lifeline is very short." CR>)
|
|
(<VERB? CLAP>
|
|
<SETG PRSO <>>
|
|
<PERFORM ,V?CLAP>
|
|
<RTRUE>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,HANDS>>
|
|
<PERFORM ,V?TAKE ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? SHAKE>
|
|
<COND (<SET ACTOR <FIND-IN ,HERE ,PERSON>>
|
|
<COND (<EQUAL? .ACTOR ,FAT>
|
|
<PERFORM ,V?SHAKE ,FAT-HAND>)
|
|
(T
|
|
<PERFORM ,V?THANK .ACTOR>)>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "Glad to meet you." CR>)>)>>
|
|
|
|
;<OBJECT FLY
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your fly")
|
|
(SYNONYM FLY)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT DOORBIT)>
|
|
|
|
;<ROUTINE BACK-F () ;"verbose version"
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (<IN? ,MONKEY ,PROTAGONIST>
|
|
<TELL
|
|
"Out of the corner of your eye you see a dark, hairy object which
|
|
just now scampers to your opposite shoulder. There is no longer any
|
|
doubt: You have a monkey on your back." CR>)
|
|
(T
|
|
<RFALSE>)>)>>
|
|
|
|
<OBJECT MONKEY
|
|
(IN DICK)
|
|
(DESC "monkey")
|
|
(SYNONYM MONKEY MUGSY ANIMAL)
|
|
(FLAGS NDESCBIT ACTORBIT)
|
|
(ACTION MONKEY-F)>
|
|
|
|
;"MONKEY RMUNGBIT = he falls upon you for first and only time"
|
|
|
|
<ROUTINE MONKEY-F ()
|
|
<COND (<AND <IN? ,MONKEY ,DICK>
|
|
<IN? ,DICK ,HERE>>
|
|
<TELL
|
|
"Obviously, the " D ,DICK " doesn't ACTUALLY have a " D ,MONKEY "
|
|
on his back. This is merely a metaphor indicating \"obsession\" or
|
|
\"addiction\"; in the detective's case, the latter." CR>)
|
|
(<IN? ,MONKEY ,PROTAGONIST>
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"\"Obsessed\" though you may be, that is no metaphorical " D ,MONKEY
|
|
". It's high-strung, ill-mannered and foul-smelling." CR>)
|
|
(<OR <HURT? ,MONKEY>
|
|
<VERB? TAKE REMOVE FOLLOW MOVE>>
|
|
<TELL
|
|
"The animal darts over to your opposite shoulder, piercing your ear with a
|
|
shriek." CR>)
|
|
(<VERB? RUB>
|
|
<TELL
|
|
"He snaps his primate choppers at " D ,HANDS " and you flinch." CR>)
|
|
(<AND <VERB? GIVE SHOW>
|
|
<PRSI? ,MONKEY>>
|
|
<COND (<PRSO? ,BANANA>
|
|
<COND (<FSET? ,BANANA ,RMUNGBIT>
|
|
<MOVE ,BANANA ,MONKEY>
|
|
<FSET ,BANANA ,NDESCBIT>
|
|
<TELL
|
|
"The human-like hand of the " D ,MONKEY " grasps it and chomps away while
|
|
clinging ever more tightly onto " D ,BACK "." CR>)
|
|
(T
|
|
<NOT-INTERESTED>)>)
|
|
(T
|
|
<PERFORM ,V?TAKE ,MONKEY>
|
|
<RTRUE>)>)
|
|
(<TALKING-TO? ,MONKEY>
|
|
<TELL "It screeches loudly." CR>
|
|
<STOP>)
|
|
(<VERB? SMELL>
|
|
<TELL "Foul." CR>)>)>>
|
|
|
|
<OBJECT HEAD
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "your head")
|
|
(SYNONYM HEAD SKULL BUMP BUMPS)
|
|
(ADJECTIVE YOUR MY)
|
|
(FLAGS NARTICLEBIT)
|
|
(ACTION HEAD-F)>
|
|
|
|
;"RMUNGBIT = have been felt by Rimshaw"
|
|
|
|
<ROUTINE HEAD-F ()
|
|
<COND (<AND <VERB? RUB READ>
|
|
<PRSO? ,HEAD>
|
|
<ENABLED? ,I-HYP>>
|
|
<SETG WINNER ,HYP>
|
|
<PERFORM ,PRSA ,PRSO>
|
|
<SETG WINNER ,PROTAGONIST>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT PROTAGONIST
|
|
(SYNONYM PROTAG)
|
|
(DESC "it")
|
|
(FLAGS NDESCBIT INVISIBLE)
|
|
(ACTION PROTAGONIST-F)>
|
|
|
|
;"RMUNGBIT = can win the DID puzzle of yes-no stuff"
|
|
|
|
<ROUTINE PROTAGONIST-F ()
|
|
<RFALSE>>
|
|
|
|
<ROUTINE PROTAGONIST-HACK-F ()
|
|
<COND (<FSET? ,MASK ,WORNBIT>
|
|
<COND (<OR <NOT <EQUAL? ,WINNER ,PROTAGONIST>>
|
|
<VERB? ASK-ABOUT TELL TELL-ABOUT HELLO REPLY>>
|
|
<TELL "The " D ,MASK " muffles your words." CR>
|
|
<SETG P-IT-OBJECT ,MASK>
|
|
<STOP>)
|
|
(<AND <VERB? INHALE KISS>
|
|
,PRSO>
|
|
<TELL "The " D ,MASK " is in the way." CR>
|
|
<SETG P-IT-OBJECT ,MASK>
|
|
<STOP>)
|
|
(T
|
|
<RFALSE>)>)
|
|
(<AND <ENABLED? ,I-HELIUM>
|
|
<NOT <TALKING-TO? ,GUARD>>
|
|
<NOT <EQUAL? ,PRSO ,HEADPHONES>>
|
|
<OR <VERB? ASK-ABOUT TELL TELL-ABOUT HELLO REPLY>
|
|
<NOT <EQUAL? ,WINNER ,PROTAGONIST>>>>
|
|
<SETG SPEAK-HELIUM T>
|
|
<PUTP ,PROTAGONIST ,P?ACTION ,PROTAGONIST-F>
|
|
<TELL
|
|
"As a squeaky voice emerges, you're surprised">
|
|
<COND (<AND ,PRSO
|
|
<NOT <EQUAL? ,PRSO ,ME>>>
|
|
<TELL " but">
|
|
<ARTICLE ,PRSO T>
|
|
<TELL " isn't at all amused">)>
|
|
<TELL ,PERIOD>
|
|
<STOP>)>>
|
|
|
|
<OBJECT YOU
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM YOU YOURSELF HIMSELF HERSELF)
|
|
(DESC "himself or herself")
|
|
(FLAGS NDESCBIT NARTICLEBIT)
|
|
(ACTION YOU-F)>
|
|
|
|
<ROUTINE YOU-F ()
|
|
<COND (<AND <VERB? ASK-ABOUT>
|
|
<EQUAL? ,PRSI ,YOU>>
|
|
<PERFORM ,V?ASK-ABOUT ,PRSO ,PRSO>
|
|
<RTRUE>)
|
|
(<AND <VERB? TELL-ABOUT>
|
|
<EQUAL? ,PRSI ,YOU>>
|
|
<PERFORM ,V?TELL-ABOUT ,PRSO ,WINNER>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT ME
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM I ME MYSELF SUCKER)
|
|
(DESC "yourself")
|
|
(FLAGS ACTORBIT TOUCHBIT NARTICLEBIT)
|
|
;(GENERIC SUCKER-F)
|
|
(ACTION ME-F)>
|
|
|
|
<ROUTINE ME-F ("AUX" OLIT)
|
|
<COND (<VERB? TELL>
|
|
<TELL
|
|
"Talking to yourself is a sign that it's getting late." CR>
|
|
<STOP>)
|
|
(<VERB? LISTEN>
|
|
<TELL "Yes?" CR>)
|
|
(<VERB? ALARM>
|
|
<COND (,DREAMING
|
|
<WAKE-UP>)
|
|
(T
|
|
<TELL ,YOU-ARE CR>)>)
|
|
(<VERB? TAKE KILL MUNG>
|
|
<TELL ,BASKET-CASE CR>)
|
|
(<AND <VERB? THROW POUR PUT-ON>
|
|
<PRSO? ,WATER>>
|
|
<MOVE ,WATER ,LOCAL-GLOBALS>
|
|
<TELL ,ALL-WET>)
|
|
(<AND <VERB? GIVE>
|
|
<PRSI? ,ME>>
|
|
<PERFORM ,V?TAKE ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? MOVE>
|
|
<V-WALK-AROUND>)
|
|
(<VERB? SEARCH>
|
|
<V-INVENTORY>
|
|
<RTRUE>)
|
|
(<AND <VERB? WHIP>
|
|
<PRSI? ,WHIP>>
|
|
<COND (<WHIP-HOLD>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"You may feel this mystery has got you whipped, but now it's clear you've
|
|
actually beaten yourself." CR>
|
|
<RTRUE>)>)
|
|
(<VERB? FIND>
|
|
<TELL "You're right here!" CR>)
|
|
;(<VERB? WHO>
|
|
<TELL "You are " D ,IDENTITY-FLAG "." CR>)
|
|
(<VERB? FOLLOW>
|
|
<V-WALK-AROUND>)>>
|
|
|
|
<OBJECT GLOBAL-ROOM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "room")
|
|
(SYNONYM ROOM PLACE ARENA)
|
|
;(ADJECTIVE AREA)
|
|
(ACTION GLOBAL-ROOM-F)>
|
|
|
|
<ROUTINE GLOBAL-ROOM-F ()
|
|
<COND (<VERB? LOOK LOOK-INSIDE EXAMINE>
|
|
<V-LOOK>
|
|
<RTRUE>)
|
|
(<AND <VERB? SEARCH>
|
|
<EQUAL? ,HERE ,TAMER-ROOM>
|
|
<IN? ,CROWBAR ,LOCAL-GLOBALS>>
|
|
<PERFORM ,V?CLOSE ,TAMER-DOOR>
|
|
<RTRUE>)
|
|
(<VERB? THROUGH WALK-TO ENTER>
|
|
<COND (<AND <PRSO? ,RING>
|
|
<EQUAL? ,HERE ,WINGS>>
|
|
<DO-WALK ,P?NORTH>)
|
|
(<AND <PRSO? ,MENAGERIE>
|
|
<EQUAL? ,HERE ,MIDWEST>>
|
|
<DO-WALK ,P?SOUTH>)
|
|
(<AND <PRSO? ,MIDWAY>
|
|
<EQUAL? ,HERE ,CON-AREA>>
|
|
<DO-WALK ,P?EAST>)
|
|
(T
|
|
<V-WALK-AROUND>)>)
|
|
(<VERB? LEAVE EXIT>
|
|
<DO-WALK ,P?OUT>)
|
|
(<VERB? WALK-AROUND>
|
|
<TELL
|
|
"Walking around here reveals nothing new. To move elsewhere, just type
|
|
the desired direction." CR>)
|
|
(<VERB? LAMP-ON>
|
|
<PERFORM ,V?LAMP-ON ,LIGHT>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT VOICES
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "conversation")
|
|
(SYNONYM CONVER VOICES VOICE)
|
|
(FLAGS INVISIBLE CLEARBIT)
|
|
(GENERIC GEN-VOICE-F)
|
|
(ACTION VOICES-F)>
|
|
|
|
<ROUTINE VOICES-F ()
|
|
<COND (<VERB? LISTEN>
|
|
<COND (<EQUAL? ,HERE ,MIDWEST>
|
|
<TELL
|
|
"The scratchy recording of a calliope, blaring out from unseen speakers,
|
|
is drowning out the voices." CR>)
|
|
(<RUNNING? ,I-MEET>
|
|
<COND (<EQUAL? ,MEET-COUNTER 7 8>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "They're too muffled." CR>)>)
|
|
(T
|
|
<CANT-SEE ,VOICES>)>)>>
|
|
|
|
<OBJECT HIGH-VOICE
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "voice")
|
|
(SYNONYM VOICE)
|
|
(ADJECTIVE HIGH HIGH- ;SQUEEKY)
|
|
(FLAGS ;INVISIBLE NDESCBIT CLEARBIT)
|
|
(GENERIC GEN-VOICE-F)
|
|
(ACTION HIGH-VOICE-F)>
|
|
|
|
<ROUTINE HIGH-VOICE-F ("AUX" ACTOR)
|
|
<COND (<VERB? LISTEN>
|
|
<COND (<EQUAL? <META-LOC ,THUMB> ,HERE>
|
|
<PERFORM ,V?LISTEN ,THUMB>
|
|
<RTRUE>)
|
|
(<ZERO? <GET ,P-ADJW 0>>
|
|
<CANT-SEE ,VOICES>)
|
|
(T
|
|
<CANT-SEE <> "the midget">)>)
|
|
(<VERB? TALK-INTO>
|
|
<COND (<IN? ,GUARD ,HERE>
|
|
<COND (<ENABLED? ,I-HELIUM>
|
|
<PERFORM ,V?HELLO ,GUARD>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"The guard turns his head toward you but seems unmoved by your falsetto
|
|
performance." CR>)>)
|
|
(<SET ACTOR <FIND-IN ,HERE ,PERSON>> ;"me isn't person"
|
|
<TELL
|
|
"Hardly amused, " D .ACTOR " ignores your performance." CR>)
|
|
(<SET ACTOR <FIND-IN ,HERE ,ACTORBIT>>
|
|
<PERFORM ,V?TELL .ACTOR>
|
|
<RTRUE>)
|
|
(T
|
|
<PERFORM ,V?TELL ,ME>
|
|
<RTRUE>)>)
|
|
(<DONT-HANDLE? ,HIGH-VOICE>
|
|
<RFALSE>)
|
|
(T
|
|
<CANT-SEE ,VOICES>)>>
|
|
|
|
<ROUTINE GEN-VOICE-F ()
|
|
,VOICES>
|
|
|
|
<OBJECT ROAR
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "roar")
|
|
(SYNONYM ROAR GROWL)
|
|
(ADJECTIVE LOUD)
|
|
(FLAGS NDESCBIT CLEARBIT)
|
|
(ACTION ROAR-F)>
|
|
|
|
<ROUTINE ROAR-F ()
|
|
<COND (<VERB? LISTEN>
|
|
<TELL "\"Rrrrr...grrrrr.\"" CR>)>>
|
|
|
|
<ROUTINE TALKING-TO? (ACTOR)
|
|
<COND (<OR <ASKING? .ACTOR>
|
|
<EQUAL? ,WINNER .ACTOR>>
|
|
<RTRUE>)
|
|
(<AND <VERB? TELL TELL-ABOUT HELLO WAVE-AT REPLY YELL ALARM>
|
|
<EQUAL? ,PRSO .ACTOR>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE ASKING? (ACTOR)
|
|
<COND (<AND <VERB? ASK-ABOUT ASK-FOR>
|
|
<EQUAL? ,PRSO .ACTOR>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE TOUCHING? (THING)
|
|
<COND (<AND <TOUCHING-VERB?>
|
|
<EQUAL? ,PRSO .THING>>
|
|
<RTRUE>)
|
|
(<HURT? .THING>
|
|
<RTRUE>)
|
|
(<AND <PRSI? .THING>
|
|
<VERB? SHOW GIVE PUT PUT-ON>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE TOUCHING-VERB? ()
|
|
<COND (<OR <EQUAL? ,PRSA ,V?TAKE ,V?RUB ,V?SHAKE>
|
|
<EQUAL? ,PRSA ,V?SPIN ,V?CLEAN ,V?KISS>
|
|
<EQUAL? ,PRSA ,V?PUSH ,V?CLOSE ,V?LOOK-UNDER>
|
|
<EQUAL? ,PRSA ,V?MOVE ;,V?TAKE-WITH ,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-FOO ,V?CLIMB-DOWN ,V?CLIMB-ON>
|
|
<EQUAL? ,PRSA ,V?BOARD ,V?THROUGH ,V?LAMP-ON>
|
|
<EQUAL? ,PRSA ,V?BITE ,V?KICK ,V?KILL>
|
|
<EQUAL? ,PRSA ,V?MUNG ,V?WHIP ,V?PUSH>
|
|
<EQUAL? ,PRSA ,V?LEAP ,V?LAMP-OFF ,V?PUT>
|
|
<EQUAL? ,PRSA ,V?PUT-ON ,V?SEARCH ,V?LOOK-INSIDE>
|
|
<EQUAL? ,PRSA ,V?POUR ,V?EAT>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE DISTURB? (THING)
|
|
<COND (<OR <TOUCHING? .THING>
|
|
<TALKING-TO? .THING>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE HURT? (THING)
|
|
<COND (<AND <OR <EQUAL? ,PRSA ,V?MUNG ,V?KICK ,V?KILL>
|
|
<EQUAL? ,PRSA ,V?KNOCK ,V?CUT ,V?WHIP>
|
|
<EQUAL? ,PRSA ,V?BITE ,V?PUSH>>
|
|
<EQUAL? ,PRSO .THING>>
|
|
<RTRUE>)
|
|
;(<AND <VERB? THROW>
|
|
<EQUAL? ,PRSI .THING>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE TELL-WITHIN-REACH ()
|
|
<TELL "There is nothing within your reach." CR>>
|
|
|
|
<ROUTINE NOT-INTERESTED ()
|
|
<TELL
|
|
"The " D ,PRSI " doesn't seem interested in the " D ,PRSO "." CR>>
|
|
|
|
<ROUTINE TELL-CLOSELY-SPACED ("OPTIONAL" (PRSO? <>))
|
|
<TELL "The bars of the ">
|
|
<COND (.PRSO?
|
|
<TELL D ,PRSO>)
|
|
(,PRSI
|
|
<TELL D ,PRSI>)
|
|
(T
|
|
<TELL "thing">)>
|
|
<TELL " are too closely spaced." CR>>
|
|
|
|
<ROUTINE CANT-REACH (THING)
|
|
<TELL "You" <PICK-ONE ,REACHES>>
|
|
<ARTICLE .THING T>
|
|
<COND (<EQUAL? .THING ,APE ,NIMROD ,ELSIE>
|
|
<TELL ", luckily." CR>)
|
|
(<NOT <EQUAL? .THING ,FAT-HAND>>
|
|
<TELL ,PERIOD>)>
|
|
<RTRUE>>
|
|
|
|
<GLOBAL REACHES
|
|
<LTABLE 0
|
|
"'re not close enough to"
|
|
" can't reach">>
|
|
|
|
;<ROUTINE UNIMPORTANT-THING-F ()
|
|
<COND (<AND <VERB? ASK-ABOUT>
|
|
<PRSO? ,GUIDE>>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL "That's not important; leave it alone." CR>)>>
|
|
|
|
;"Like Jerrys GLOBAL-NOT-HERE-PRINT"
|
|
|
|
<ROUTINE CANT-SEE ("OPTIONAL" (OBJ <>) (STRING <>))
|
|
;(,P-MULT <SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>)
|
|
<TELL "[You can't ">
|
|
<COND (<AND .OBJ
|
|
<OR <EQUAL? .OBJ ,VOICES ,HIGH-VOICE ,ROAR>
|
|
<EQUAL? .OBJ ,MUSIC ,WHIMPER>>>
|
|
<TELL "hear">)
|
|
(T
|
|
<TELL "see">)>
|
|
<COND (.OBJ
|
|
<COND (<NOT <AND <EQUAL? .OBJ ,PRSO>
|
|
<NAME? <GET ,P-NAMW 0>>>>
|
|
<TELL " any">)>)>
|
|
<COND (<NOT .OBJ>
|
|
<TELL " " .STRING>)
|
|
(<EQUAL? .OBJ ,PRSI>
|
|
<PRSI-PRINT>)
|
|
(T
|
|
<PRSO-PRINT>)>
|
|
<TELL " here.]" CR>
|
|
<SETG P-WON <>>
|
|
<STOP>>
|
|
|
|
;<ROUTINE TELL-ME-HOW ()
|
|
<TELL "You must tell me how to do that to">
|
|
<ARTICLE ,PRSO>
|
|
<TELL ,PERIOD>>
|
|
|
|
<ROUTINE YOU-CANT-USE (STRING)
|
|
<TELL "[You can't use " .STRING " that way.]" CR>>
|
|
|
|
<ROUTINE CANT-OPEN ()
|
|
<COND (<VERB? OPEN CLOSE>
|
|
<TELL "You can't ">
|
|
<COND (<VERB? OPEN>
|
|
<TELL "open">)
|
|
(T
|
|
<TELL "close">)>
|
|
<ARTICLE ,PRSO>
|
|
<TELL ,PERIOD>)>>
|
|
|
|
<ROUTINE CARRIAGE-RETURNS (CNT)
|
|
<REPEAT ()
|
|
<CRLF>
|
|
<SET CNT <- .CNT 1>>
|
|
<COND (<0? .CNT>
|
|
<RTRUE>)>>>
|
|
|
|
<ROUTINE OUT-OF-FIRST (VEHICLE)
|
|
<TELL "You'll have to get ">
|
|
<COND (<EQUAL? <LOC ,PROTAGONIST> ,STAND ,SOFA>
|
|
<TELL "off">)
|
|
(T
|
|
<TELL "out">)>
|
|
<TELL " of the " D .VEHICLE " first." CR>>
|
|
|
|
<ROUTINE CRAWL-DIR ()
|
|
<COND (<EQUAL? ,P-PRSA-WORD ,W?CRAWL>
|
|
<DO-WALK ,P-DIRECTION>)
|
|
(<GLOBAL-IN? ,BIGTOP ,HERE>
|
|
<PERFORM ,V?CRAWL-UNDER ,BIGTOP>)
|
|
(<GLOBAL-IN? ,TENT ,HERE>
|
|
<PERFORM ,V?CRAWL-UNDER ,TENT>)
|
|
(T
|
|
<CANT-SEE ,TENT>)>
|
|
<RTRUE>>
|
|
|
|
<ROUTINE TELL-HIT-HEAD ()
|
|
<TELL "You hit your head against">
|
|
<ARTICLE ,PRSO T>
|
|
<TELL " as you attempt this." CR>>
|
|
|
|
<ROUTINE IS-NOUN? (TEST-NOUN) ;"prso" ;"prsi"
|
|
<COND (<EQUAL? .TEST-NOUN <GET ,P-NAMW 0> <GET ,P-NAMW 1>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
;<ROUTINE IS-ADJ? (OBJ TEST-ADJECTIVE "AUX" INPUT-ADJECTIVE)
|
|
<COND (<EQUAL? .OBJ ,PRSO>
|
|
<SET INPUT-ADJECTIVE <GET ,P-ADJW 0>>)
|
|
(T
|
|
<SET INPUT-ADJECTIVE <GET ,P-ADJW 1>>)>
|
|
<COND (<EQUAL? .TEST-ADJECTIVE .INPUT-ADJECTIVE>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE IS-ADJ? (TEST-ADJ)
|
|
<COND (<EQUAL? .TEST-ADJ <GET ,P-ADJW 0> <GET ,P-ADJW 1>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
;<ROUTINE IS-VERB? (TEST-VERB)
|
|
<COND (<EQUAL? .TEST-ADJ <GET ,P-ADJW 0> <GET ,P-ADJW 1>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE SPECIFY-MONEY ("OPTIONAL" (BET? <>))
|
|
<SETG P-CONT <>>
|
|
<TELL
|
|
"[Specify an amount of money, such as: ">
|
|
<COND (.BET?
|
|
<TELL "BET ">)>
|
|
<TELL "75 CENTS, or ">
|
|
<COND (.BET?
|
|
<TELL "BET ">)>
|
|
<TELL "$1.50.]|">>
|
|
|
|
<ROUTINE TELL-SEE-MANUAL ()
|
|
<TELL
|
|
"[Please consult your manual for the correct way to talk to characters.]" CR>>
|
|
|
|
<ROUTINE OPEN-CLOSED (THING)
|
|
<COND (<FSET? .THING ,OPENBIT>
|
|
<TELL "open">)
|
|
(T
|
|
<TELL "closed">)>>
|
|
|
|
<GLOBAL LOOK-AROUND "Look around you.">
|
|
|
|
<GLOBAL YAWNS <LTABLE 0 "unusual" "interesting" "extraordinary" "special">>
|
|
|
|
<GLOBAL ALREADY-OPEN "It's already open.">
|
|
|
|
<GLOBAL ALREADY-CLOSED "It's already closed.">
|
|
|
|
<GLOBAL TOO-DARK "It's too dark to see.">
|
|
|
|
<GLOBAL CANT-GO "You can't go that way.">
|
|
|
|
<GLOBAL IT-LOOKS-LIKE "It looks like">
|
|
|
|
<GLOBAL NOT-HOLDING "You're not holding">
|
|
|
|
<GLOBAL UNBALANCED "Confirmed. You are a completely unbalanced person. ">
|
|
|
|
<GLOBAL HIGH-ABOVE " high above the arena floor">
|
|
|
|
<GLOBAL YOU-SEE "You can see">
|
|
|
|
<GLOBAL TAIL-END "standing at the tail end of">
|
|
|
|
<GLOBAL YOU-ARE "You already are.">
|
|
|
|
<GLOBAL REFERRING "[It's unclear what you're referring to.]">
|
|
|
|
<GLOBAL TREADMILL " treadmilling its tiny front foreclaws against the
|
|
steely inside of the bucket">
|
|
|
|
<GLOBAL INSTANT "You have just encountered that brief instant of time ">
|
|
|
|
<GLOBAL BASKET-CASE "You're not a basket case. Yet.">
|
|
|
|
<GLOBAL PERIOD ".|">
|
|
|
|
<GLOBAL TELL-STANDS " has been moved back to its original position">
|
|
|
|
<GLOBAL HOW "How do you intend this?">
|
|
|
|
<GLOBAL BUSY "You get a constant busy signal.|">
|
|
|
|
<GLOBAL CLASSICAL "soothing classical music.|">
|
|
|
|
<GLOBAL EXIT-DEN "As you exit the den, the lion">
|
|
|
|
<GLOBAL GUARD-CALLS "From inside his cage, Harry calls out, ">
|
|
|
|
<GLOBAL TIPPED-OFF "You haven't been tipped off about that yet.|">
|
|
|
|
<GLOBAL NO-TALENT "This bit of gymnastics is beyond your talent.">
|
|
|
|
<GLOBAL SPECIFIC "You'll have to be more specific.|">
|
|
|
|
<GLOBAL BAD-SENTENCE "[That sentence isn't one I recognize.]">
|
|
|
|
<GLOBAL THAT-MUCH "You don't have that much.|">
|
|
|
|
<GLOBAL LIONS-WAIT
|
|
"The lions seem eager to go after the meat, but your presence here is making
|
|
them hesitate.">
|
|
|
|
<GLOBAL BAD-AIM "Your aim is way off">
|
|
|
|
<GLOBAL BEAT-IT "\"Show's over. Beat it, sucker.\"|">
|
|
|
|
<GLOBAL LION-STAND-MOVED
|
|
" sitting a few yards away from where you first saw it.">
|
|
|
|
<GLOBAL EMPTY "It's empty">
|
|
|
|
<GLOBAL ALL-WET "You're all wet.|"> |