ballyhoo/way.zil

3913 lines
112 KiB
Plaintext

"WAY for ballyhoo: copyright (c)1986 infocom, inc."
<ROOM MIDWEST
(IN ROOMS)
(DESC "Midway Entrance")
(FLAGS ONBIT RLANDBIT)
(WEST PER TURNSTILE-EXIT)
(OUT PER TURNSTILE-EXIT)
(EAST TO MID)
(NORTH PER EXIT-UNDER-STANDS)
(SOUTH TO MEN)
(GLOBAL BANNER FRONT BIGTOP TURNSTILE MIDWAY MENAGERIE SLOT SAWDUST)
(ACTION MIDWEST-F)>
<ROUTINE MIDWEST-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"To the west is the " D ,TURNSTILE " exit from the midway, which continues
east. The side of the " D ,BIGTOP " borders on the north. ">
<TELL-BANNER>)
(<EQUAL? .RARG ,M-ENTER>
<COND (<NOT <FSET? ,MIDWEST ,TOUCHBIT>>
<ENABLE <QUEUE I-DRUNK -1>>)
(<AND <IN? ,DICK ,MIDWEST>
<FSET? ,DICK ,RMUNGBIT>>
<MOVE ,FLASK ,DICK>)>)>>
<ROUTINE TELL-FRONT ("OPTIONAL" (MID? <>))
<TELL
"Your eyes soak in the lavishly painted sideshow fronts ">
<COND (.MID?
<TELL
"-- " D ,ANDREW " " D ,JENNY "'s to the south and Rimshaw's to">)
(T
<TELL "which line the midway along">)>
<TELL " the north. " CR>>
<ROUTINE TELL-BANNER ("OPTIONAL" (NORTH? <>))
<TELL "A soiled, " D ,BANNER " beckons ">
<COND (.NORTH?
<TELL "north">)
(T
<TELL "south">)>
<TELL ,PERIOD>>
<ROOM MEN
(IN ROOMS)
(DESC "Menagerie")
(FLAGS ONBIT RLANDBIT)
(WEST PER APE-ENTER)
(EAST PER BULL-ENTER)
(NORTH TO MIDWEST)
(SE TO NOOK)
(SW PER FENCE-EXIT)
(GLOBAL CAGE APE-DOOR BANNER STRAW TENT CHAIN FENCE COMPARTMENT) ;"8"
(ACTION MEN-F)>
<ROUTINE MEN-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This scrawny patch of dirt offers a square cage on its west side; an open
tent giving off a dank, earthy smell on its east side; and a well-worn path
along the tent to the southeast. ">
<TELL-BANNER T>
<COND (<NOT <IN? ,BULL ,MEN>>
<CRLF>
<TELL-BULL-HOLE>)>)
(<EQUAL? .RARG ,M-ENTER>
<COND (<AND <EQUAL? ,P-WALK-DIR ,P?EAST ,P?OUT>
<NOT ,END-GAME>>
<MOVE ,APE ,MEN>)>
;<COND (<AND <EQUAL? .RARG ,M-ENTER>
<IN? ,TRAP ,LOCAL-GLOBALS>>
<MOVE ,TRAP ,PROP-ROOM>)>)
(<AND <EQUAL? .RARG ,M-END>
<IN? ,BULL ,MEN>
<NOT <ENABLED? ,I-BULL>>
<NOT <VERB? LISTEN>>
<PROB 20>>
<ENABLE <QUEUE I-CHAINS 1>>)>>
<ROUTINE I-CHAINS ()
<TELL CR
"The slow-moving sound of " D ,CHAIN "s from inside the tent is heard." CR>
<RFALSE>>
<ROUTINE APE-ENTER ()
<COND (<OR ,END-GAME
<FSET? ,APE-DOOR ,OPENBIT>>
<COND (<EQUAL? ,HERE ,APE-ROOM>
<RETURN ,MEN>)
(T
<RETURN ,APE-ROOM>)>)
(T
<TELL "The " D ,APE-DOOR " is ">
<OPEN-CLOSED ,APE-DOOR>
<TELL ,PERIOD>
<RFALSE>)>>
<ROUTINE BULL-ENTER ("AUX" (FOO ,MEN))
<COND (<AND <EQUAL? ,HERE ,MEN>
<IN? ,BULL ,HERE>>
<TELL
"With upraised tusks and flailing trunk, the " D ,BULL " backs you off." CR>
<RFALSE>)
(T
<TELL
"Mindful of where you step, you walk ">
<COND (<EQUAL? ,HERE ,MEN>
<SET FOO ,BULL-ROOM>
<TELL "in">)
(T
<TELL "out">)>
<TELL "side the tent." CR CR>
<RETURN .FOO>)>>
<ROUTINE FENCE-EXIT ()
<COND (<NOT <IN? ,BULL ,MEN>>
<COND (<EQUAL? ,HERE ,NEAR-WAGON>
<RETURN ,MEN>)
(T
<COND (<NOT <FSET? ,LADDER ,RMUNGBIT>>
<TELL
"Walking through the damaged fence, y">
<NOTICE-LADDER>)>
<RETURN ,NEAR-WAGON>)>)
(T
<TELL "A " D ,FENCE " stops you." CR>
<RFALSE>)>>
<OBJECT APE
(IN MEN)
(DESC "Mahler")
(SYNONYM MAHLER APE GORILLA BEAST)
(ADJECTIVE HAIRY)
(FLAGS ACTORBIT NARTICLEBIT NDESCBIT SEARCHBIT OPENBIT CONTBIT)
(ACTION APE-F)>
;" APE rmungbit = Ape is happy with music"
<ROUTINE APE-F ()
<COND (<AND <FSET? ,APE ,RMUNGBIT>
<OR <VERB? EXAMINE>
<TALKING-TO? ,APE>>>
<TELL
"He seems off in another world with his music." CR>
<STOP>)
(<VERB? EXAMINE>
<TELL
D ,APE " appears as a huge ball of dark fur with a thumping breastplate
and a crinkled mug, both high-gloss black. ">
<COND (<EQUAL? ,HERE ,APE-ROOM>
<TELL
"He's looking down at you quizzically.">)
(<IN? ,GIRL ,APE>
<TELL
"The girl dangles from the ape's grip.">)>
<CRLF>)
(<TALKING-TO? ,APE>
<COND (<EQUAL? ,HERE ,MEN>
<TELL
"The ape seems wearied by the familiar attention you're paying him." CR>)
(<NOT ,END-GAME>
<TELL
D ,APE " stares at you through his deep-set jaundiced eyes." CR>)
(T
<TELL
"You're not close enough for meaningful communication." CR>)>
<STOP>)
(<AND <NOT <EQUAL? ,HERE ,APE-ROOM>>
<TOUCHING? ,APE>>
<CANT-REACH ,APE>)
(<AND <VERB? RUB>
<NOT ,PRSI>>
<TELL
"The hair is coarse and bristly against the palm of " D ,HANDS ". The
gorilla is too puzzled by your intrusion, however, to enjoy such a
creature comfort." CR>)
(<AND <VERB? PUT-ON>
<PRSO? ,HEADPHONES>>
<PERFORM ,V?GIVE ,HEADPHONES ,APE>
<RTRUE>)
(<VERB? GIVE SHOW>
<COND (<IDROP>
<RTRUE>)
(<PRSO? ,MOUSE ,WATER>
<RFALSE>)
(<TRAP-SET?>
<ENABLE <QUEUE I-CURSE -1>>
<TELL
,INSTANT "in many a beast's life between his recognition that someone has
caused him great harm and his moment of striking back, during which time
his imminent victim usually says ... well, go ahead ..." CR>)
(<AND <PRSO? ,RADIO>
<FSET? ,RADIO ,ONBIT>>
<SETG APE-C 4>
<TELL
D ,APE " looks expectantly at the device, but as it rests in his hairy clutches
the static-emission from the radio quickly grates on his sensitive nerves.
He shoves it back to you, then really begins to give you static." CR>)
(<AND <PRSO? ,HEADPHONES>
<RUNNING? ,I-RUN>
<EQUAL? ,KNOB-SET ,V?PLAY>>
<COND (<EQUAL? <GET ,TAPE-TABLE ,ON-TAPE> 2>
<SETG SCORE <+ ,SCORE 10>>
<MOVE ,HEADPHONES ,APE>
<FSET ,APE ,RMUNGBIT>
<ENABLE <QUEUE I-MOVE-DICK 1>>
<TELL
"From the looks of him -- an undeniable lowbrow. But now " D ,APE ", true
to his name, displays a quite highbrow taste in music. He ushers the
headphones over to the " D ,CORNER " of his " D ,CAGE ", his savage
breast to soothe.">)
(<RUNNING? ,I-RUN>
<TELL
D ,APE " refuses to have anything to do with the headphones.">)>
<CRLF>)
(<PRSO? ,BALLOON>
<BALLOON-FLIGHT>
<TELL D ,APE " just scratches his head." CR>)
(T
<MOVE ,PRSO ,HERE>
<TELL D ,APE " holds">
<ARTICLE ,PRSO T>
<TELL
" limply in his massive hand for a moment then lets it drop">
<COND (<PRSO? ,MEAT>
<TELL
". It doesn't look like part of his normal diet">)>
<TELL ,PERIOD>)>)
(<HURT? ,APE>
<TELL
"In the face of your attack, " D ,APE " simply scrunches his nose in curiosity.
This has the effect of withering the fierce expression on your face and
botching your follow-through. With the playfulness that is characteristic
of the great apes, " D ,APE>
<LUGGAGE>
<RTRUE>)
(<AND <EQUAL? ,FOLLOW-FLAG 9>
<VERB? FOLLOW>>
<DO-WALK ,P?NORTH>
<RTRUE>)>>
<GLOBAL APE-C 0>
<ROUTINE I-APE ()
<COND (<OR <AND <NOT <EQUAL? ,HERE ,APE-ROOM>>
<NOT <FSET? ,APE ,RMUNGBIT>>>
<RUNNING? ,I-CURSE>>
<DISABLE <INT I-APE>>
<SETG APE-C 0>
<RFALSE>)
(<FSET? ,APE ,RMUNGBIT>
<COND (<OR <NOT <EQUAL? <GET ,TAPE-TABLE ,ON-TAPE> 2>>
<NOT <RUNNING? ,I-RUN>>>
<FCLEAR ,APE ,RMUNGBIT>
<SETG APE-C 0>
<FSET ,HEADPHONES ,INVISIBLE>
<DISABLE <INT I-RUN>>
<COND (<EQUAL? ,HERE ,APE-ROOM ,MEN>
<TELL CR
D ,APE " suddenly lets out a primal, deafening scream that rattles the bars
of his cage. You can hear the " D ,HEADPHONES " being reduced to dust in the
ape's tense grip. ">
<COND (<EQUAL? ,HERE ,APE-ROOM>
<APE-DEATH>)
(T
<TELL
"With that volcanic emotional response to the end of his listening pleasure, "
D ,APE " settles back down onto the straw." CR>)>)>)
(T
<RFALSE>)>)
(T
<SETG APE-C <+ ,APE-C 1>>
<COND (<NOT <EQUAL? ,FOLLOW-FLAG 99>>
<CRLF>)>
<COND (<EQUAL? ,APE-C 1>
<MOVE ,APE ,HERE> ;"used to be in m-enter"
<TELL
D ,APE " gets up from his doldrums and stares down at you">
<COND (<FSET? ,SUIT ,WORNBIT>
<TELL
". If apes could laugh, this one would -- at the sight of you standing
there expectantly in your hairy suit. Instead the gorilla is bewildered, and
starts">)
(T
<TELL ",">)>
<TELL
" tilting his head slowly to one side.">)
(<EQUAL? ,APE-C 2 3 4>
<TELL <PICK-ONE ,APES>>)
(<EQUAL? ,APE-C 5>
<TELL
D ,APE " bellows out a roar that backs you toward the cage door.">)
(<EQUAL? ,APE-C 6>
<TELL
"Agitated by your presence, " D ,APE " appears on the verge of attack.">)
(<EQUAL? ,APE-C 7>
<APE-DEATH>)>
<CRLF>)>>
<GLOBAL APES
<LTABLE 0
"The gorilla picks his nose impassively."
"The ape begins mouthing some straw with his pliable lips."
"Excitedly, Mahler bounces up and down while baring his massive yellow
teeth at you.">>
<ROUTINE APE-DEATH ()
<JIGS-UP 4
"Like an eclipse the gorilla hovers over you then everything becomes
dark.">
<RTRUE>>
<ROUTINE LUGGAGE ()
<JIGS-UP 1
" treats you like a piece of luggage for about 30 minutes.">
<RTRUE>>
<ROOM APE-ROOM
(IN ROOMS)
(DESC "Inside Mahler's Cage")
(EAST PER APE-ENTER)
(OUT TO MEN IF APE-DOOR IS OPEN)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL CAGE APE-DOOR STRAW COMPARTMENT TRAP-DOOR)
(ACTION APE-ROOM-F)>
<ROUTINE APE-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You stand on the straw-covered cage floor, surrounded on four sides by
closely spaced iron bars. The ">
<COND (<FSET? ,APE-DOOR ,OPENBIT>
<TELL "open">)
(T
<TELL "closed">)>
<TELL " " D ,APE-DOOR " is east">
<COND (<NOT <FSET? ,TRAP-DOOR ,INVISIBLE>>
<TELL " and a " D ,TRAP-DOOR " here is ">
<OPEN-CLOSED ,TRAP-DOOR>)>
<TELL ".">
<COND (<AND <IN? ,APE ,HERE>
<NOT <EQUAL? ,P-WALK-DIR ,P?IN ,P?WEST>>>
<TELL CR CR D ,APE " is ">
<COND (<FSET? ,APE ,RMUNGBIT>
<TELL
"slumped over in the " D ,CORNER " of his cage listening to the "
D ,HEADPHONES ".">)
(T
<TELL
"staring at you with deep-set, jaundiced eyes.">)>)>
<CRLF>)
(<AND <EQUAL? .RARG ,M-ENTER>
<NOT ,END-GAME>>
<MOVE ,APE ,APE-ROOM>
<ENABLE <QUEUE I-APE -1>>)
(<AND <EQUAL? .RARG ,M-END>
<EQUAL? <GET ,TAPE-TABLE ,ON-TAPE> 2>
;<EQUAL? ,APE-C 2>
<HELD? ,HEADPHONES>
<RUNNING? ,I-RUN>
<EQUAL? ,KNOB-SET ,V?PLAY>>
<TELL CR "Mahler snatches away the " D ,HEADPHONES "." CR CR>
<PERFORM ,V?GIVE ,HEADPHONES ,APE>
<RTRUE>)>>
<OBJECT APE-DOOR
(IN LOCAL-GLOBALS)
(DESC "cage door")
(SYNONYM DOOR GATE LOCK)
(ADJECTIVE ;APE CAGE)
(FLAGS DOORBIT NDESCBIT LOCKEDBIT CAGEBIT)
;(ACTION APE-DOOR-F)>
;<ROUTINE APE-DOOR-F ()
<COND (<AND <VERB? PUT>
<EQUAL? ,PRSI ,APE-DOOR>>
<COND (<G? <GETP ,PRSO ,P?SIZE> 20>
<TELL "It won't fit through the door." CR>)
(T
<MOVE ,PRSO ,MEN>
<TELL
"The " D ,PRSO " goes through the ape-door into the darkness below." CR>)>)>>
<OBJECT COMPARTMENT
(IN LOCAL-GLOBALS)
(DESC "compartment")
(SYNONYM COMPAR)
(ADJECTIVE SMALL RECTANGULAR)
(FLAGS NDESCBIT CONTBIT)
(CAPACITY 50)
(ACTION COMPARTMENT-F)>
<ROUTINE COMPARTMENT-F ()
<COND (<EQUAL? ,HERE ,APE-ROOM>
<COND (<NOT <FSET? ,TRAP-DOOR ,OPENBIT>>
<CANT-SEE ,COMPARTMENT>)
(<VERB? OPEN CLOSE>
<PERFORM ,PRSA ,TRAP-DOOR>
<RTRUE>)
(<VERB? LOOK-INSIDE SEARCH>
<TELL "There is">
<COND (<NOT <FSET? ,RIBBON ,TOUCHBIT>>
<MOVE ,RIBBON ,COMPARTMENT>)>
<PRINT-CONTENTS ,COMPARTMENT>
<TELL " in the " D ,COMPARTMENT "." CR>
<COND (<NOT <FSET? ,RIBBON ,TOUCHBIT>>
<MOVE ,RIBBON ,HERE>)>
<RTRUE>)
(<VERB? THROUGH ENTER BOARD>
<TELL "It's too small for you." CR>)
(<VERB? PUT>
<V-DIG>)>)
(<EQUAL? ,HERE ,MEN>
<COND (<VERB? LOOK-INSIDE OPEN CLOSE PUT THROUGH BOARD ENTER>
<TELL
,YOU-SEE " no openings to the " D ,COMPARTMENT "." CR>)
(<AND <VERB? KNOCK>
<NOT <FSET? ,TRAP-DOOR ,RMUNGBIT>>>
<TELL
"You detect a brief sound of movement in return, but can't tell if it's
coming from " D ,APE " or from inside the " D ,COMPARTMENT "." CR>)>)
(<AND <EQUAL? ,HERE ,APE-ROOM>
<VERB? OPEN CLOSE>>
<PERFORM ,PRSA ,TRAP-DOOR>)>>
<OBJECT TRAP-DOOR
(IN LOCAL-GLOBALS)
(DESC "trap door")
(SYNONYM OUTLINE DOOR TRAP)
(ADJECTIVE TRAP)
(FLAGS NDESCBIT DOORBIT INVISIBLE)
(ACTION TRAP-DOOR-F)>
;"RMUNGBIT = have opened it first time. Now no sound when knock on compartmnt"
<ROUTINE TRAP-DOOR-F ()
<COND (<AND <VERB? RAISE OPEN>
<NOT <FSET? ,TRAP-DOOR ,OPENBIT>>>
<COND (<OR <FSET? ,APE ,RMUNGBIT>
<NOT <IN? ,APE ,HERE>>>
<FSET ,TRAP-DOOR ,OPENBIT>
<FSET ,TRAP-DOOR ,RMUNGBIT>
<TELL
"As the " D ,TRAP-DOOR " hinges upward, you can see a " D ,COMPARTMENT
" that is empty">
<COND (<AND <FSET? ,RIBBON ,INVISIBLE>
<NOT <FSET? ,RIBBON ,TOUCHBIT>>>
<FCLEAR ,RIBBON ,INVISIBLE>
<TELL " but for a small red ribbon">)>
<TELL ,PERIOD>)
(T
<TELL
"Bulky and difficult to grip, the " D ,TRAP-DOOR " resists the labored
attempt of " D ,HANDS "s which are especially sweat-drenched with " D ,APE
" hovering over you." CR>)>)
(<AND <VERB? CLOSE LOWER>
<FSET? ,TRAP-DOOR ,OPENBIT>>
<COND (<NOT <FSET? ,RIBBON ,TOUCHBIT>>
<FSET ,RIBBON ,INVISIBLE>)>
<FCLEAR ,TRAP-DOOR ,OPENBIT>
<TELL "It lowers over the " D ,COMPARTMENT "." CR>)
(<AND <VERB? LOOK-INSIDE>
<FSET? ,TRAP-DOOR ,OPENBIT>>
<PERFORM ,V?LOOK-INSIDE ,COMPARTMENT>
<RTRUE>)>>
<OBJECT RIBBON
(IN APE-ROOM)
(DESC "ribbon")
(SYNONYM RIBBON)
(ADJECTIVE RED BRIGHT CLOTH ;STUNNING ;SMALL)
(FLAGS TAKEBIT NDESCBIT INVISIBLE WEARBIT)
(SIZE 2)
(ACTION RIBBON-F)>
;"RMUNGBIT = set on v-examine, cleared as player wins count-back for memory"
<ROUTINE RIBBON-F ()
<COND (<VERB? EXAMINE>
<TELL
"Though cut from ordinary cloth, the ribbon is a stunning bright red." CR>)
(<AND <VERB? TIE>
<PRSI? ,ME>>
<PERFORM ,V?WEAR ,RIBBON>
<RTRUE>)
(<AND <FSET? ,RIBBON ,WORNBIT>
<VERB? UNTIE>>
<PERFORM ,V?REMOVE ,RIBBON>
<RTRUE>)>>
<OBJECT CAGE
(IN LOCAL-GLOBALS)
(DESC "cage")
(SYNONYM CAGE BARS BAR)
(ADJECTIVE SQUARE)
(FLAGS NDESCBIT)
(GENERIC GEN-BAR)
(ACTION CAGE-F)>
<ROUTINE CAGE-F ()
<COND (<AND <VERB? EXAMINE>
<EQUAL? ,HERE ,MEN ,APE-ROOM>
,END-GAME>
<TELL
"Several of the vertical bars are bent to either side." CR>)
(<AND <VERB? EXAMINE>
<EQUAL? ,HERE ,NOOK>>
<TELL "It's not as high as " D ,APE "'s cage." CR>)
(<AND <VERB? PUT-ON>
<PRSI? ,CAGE>>
<COND (<EQUAL? ,HERE ,ON-CAGE>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(<EQUAL? ,HERE ,NOOK>
<MOVE ,PRSO ,ON-CAGE>
<TELL "Done." CR>)>)
(<VERB? LOOK-ON>
<COND (<EQUAL? ,HERE ,ON-CAGE>
<V-LOOK>)
(<EQUAL? ,HERE ,NOOK>
<TELL "It's too high." CR>)>)
(<VERB? UNLOCK LOCK OPEN CLOSE>
<COND (<EQUAL? ,HERE ,NOOK ,ROUST-ROOM>
<PERFORM ,PRSA ,ROUST-DOOR ,PRSI>)
(T
<PERFORM ,PRSA ,APE-DOOR ,PRSI>)>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,ROUST-ROOM ,APE-ROOM>
<V-LOOK>
<RTRUE>)
(<EQUAL? ,HERE ,ON-CAGE>
<NO-POSITION>)
(T
<COND (<EQUAL? ,HERE ,MEN>
<TELL "Peering into the cage, you observe ">
<COND (<FSET? ,APE ,RMUNGBIT>
<TELL
D ,APE " hunched in the " D ,CORNER " listening to the " D ,HEADPHONES>)
(<IN? ,APE ,HERE>
<TELL
"a gargantuan and thoroughly bored gorilla sitting on a helter-skelter bed
of straw">)
(T
<TELL "nothing but straw">)>)
(T
<TELL
"The confines of the cage are so darkly shaded that you cannot distinguish
anything inside">
<COND (<FSET? ,KEY ,TRYTAKEBIT>
<TELL
", except for a hoop key ring hanging against the far " D ,WALLS " which
happens to be illuminated by a spot of soft light">)>)>
<TELL ,PERIOD>)>)
(<AND <VERB? PUT>
<PRSI? ,CAGE>
<NOT <IDROP>>>
<COND (<EQUAL? ,HERE ,ROUST-ROOM ,APE-ROOM>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(<AND <FSET? ,KEY ,TRYTAKEBIT>
<PRSO? ,POLE>>
<PERFORM ,V?TAKE-WITH ,KEY ,POLE>
<RTRUE>)
(<AND <G? <GETP ,PRSO ,P?SIZE> 25>
<NOT <EQUAL? ,PRSO ,POLE>>>
<TELL-CLOSELY-SPACED>)
(<AND <EQUAL? ,HERE ,MEN>
<IN? ,APE ,MEN>>
<TELL D ,APE " completely ignores">
<ARTICLE ,PRSO T>
<TELL
", as he would anything from this distance, so you withdraw it." CR>)
(T
<V-DIG>)>)
(<VERB? ENTER BOARD THROUGH>
<COND (<EQUAL? ,HERE ,APE-ROOM ,ROUST-ROOM ,ON-CAGE>
<TELL ,LOOK-AROUND CR>)
(<EQUAL? ,HERE ,MEN>
<DO-WALK ,P?WEST>)
(<EQUAL? ,HERE ,NOOK>
<DO-WALK ,P?NORTH>)>)
(<AND <VERB? DISEMBARK>
<EQUAL? ,HERE ,APE-ROOM ,ROUST-ROOM>>
<DO-WALK ,P?OUT>
<RTRUE>)
(<VERB? LOOK-UNDER>
<COND (<OR <EQUAL? ,HERE ,MEN>
<AND <EQUAL? ,HERE ,APE-ROOM>
<FSET? ,APE-DOOR ,OPENBIT>>>
<TELL
"Below the surface of the cage floor there appears to be a rectangular "
D ,COMPARTMENT " of sorts." CR>)
(<EQUAL? ,HERE ,APE-ROOM>
<PERFORM ,V?EXAMINE ,APE-DOOR>
<RTRUE>)>)
(<VERB? REACH-IN>
<COND (<EQUAL? ,HERE ,APE-ROOM ,ROUST-ROOM>
<TELL ,LOOK-AROUND CR>)
(<EQUAL? ,HERE ,NOOK>
<COND (<FSET? ,HEADPHONES ,TRYTAKEBIT>
<PERFORM ,V?TAKE ,HEADPHONES>
<RTRUE>)
(<FSET? ,KEY ,TRYTAKEBIT>
<PERFORM ,V?TAKE ,KEY>
<RTRUE>)
(T
<TELL-WITHIN-REACH>)>)
(<AND <EQUAL? ,HERE ,MEN>
<IN? ,APE ,HERE>>
<PERFORM ,V?RUB ,APE>
<RTRUE>)>)
(<VERB? CLIMB-ON CLIMB-UP CLIMB-FOO>
<COND (<EQUAL? ,HERE ,ON-CAGE ,ROUST-ROOM>
<TELL ,LOOK-AROUND CR>)
(<EQUAL? ,HERE ,NOOK>
<DO-WALK ,P?UP>)
(T
<TELL
"Grabbing hold of the rusted iron bars, you hike one leg up into the air,
and then, as would a prisoner, hang your head in despair." CR>)>)
(<VERB? CLIMB-DOWN>
<COND (<EQUAL? ,HERE ,ON-CAGE>
<DO-WALK ,P?DOWN>)
(T
<TELL ,LOOK-AROUND CR>)>)>>
<ROUTINE NO-POSITION ()
<TELL
"You're in no position to do that." CR>>
<ROOM ON-CAGE
(IN ROOMS)
(DESC "Top of Cage")
(FLAGS ONBIT RLANDBIT)
(UP PER UP-LADDER)
(DOWN PER UP-DOWN-CAGE)
(GLOBAL CAGE TENT LADDER)
(GROUND-LOC NOOK)
(ACTION ON-CAGE-F)>
<ROUTINE ON-CAGE-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You're standing in semidarkness on top of a cage next to the elephant
tent which rises above. " ,YOU-SEE ", faintly, a rope ladder hanging from the
top edge of the tent." CR>)>>
<ROUTINE UP-DOWN-CAGE ()
<COND (<CANT-CLIMB?>
<TELL "Your arms are too full." CR>
<RFALSE>)>
<TELL "You ">
<COND (<EQUAL? ,HERE ,NOOK>
<TELL "hoist " D ,ME " up and onto the " D ,CAGE "." CR CR>
<RETURN ,ON-CAGE>)
(T
<COND (<NOT ,DIED>
<TELL "fall awkwardly">)
(T
<TELL "clamber">)>
<TELL " down from the " D ,CAGE "." CR>
<COND (<NOT ,DIED>
<ENABLE <QUEUE I-DEMISE 2>>
<SETG DIED T>
<TELL-DIED>
<MOVE ,PROTAGONIST ,NOOK>
<SETG HERE ,NOOK>)
(T
<CRLF>
<RETURN ,NOOK>)>
<RFALSE>)>>
<ROOM BULL-ROOM
(IN ROOMS)
(DESC "Elephant Tent")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
;(EAST TO CLOSET)
(WEST PER BULL-ENTER)
(GLOBAL SAWDUST TENT CHAIN BURN-HOLE)
(ACTION BULL-ROOM-F)>
<ROUTINE BULL-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"The " D ,GROUND " here is covered with matted-down sawdust that emits a
strong earthy smell. By all evidence, this tent used to house an elephant."
CR>)>>
<ROOM CLOSET
(IN ROOMS)
(DESC "Wardrobe Closet")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(UP PER UP-STAIRS)
(GLOBAL STAIRCASE)
(ACTION CLOSET-F)>
<ROUTINE CLOSET-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You are standing amid a kaleidoscope of his-and-her garments, a view as
if from inside a clothes drier in mid-cycle">
<COND (<OR <FSET? ,DRESS ,NDESCBIT>
<FSET? ,SHAWL ,NDESCBIT>>
<TELL ". Among the mentionables ">
<COND (<AND <FSET? ,DRESS ,NDESCBIT>
<FSET? ,SHAWL ,NDESCBIT>>
<TELL
"are a sequin-dress/safari-suit combination, and a
knitted-shawl/leather-jacket combo">)
(T
<TELL "is">
<COND (<FSET? ,DRESS ,NDESCBIT>
<TELL " a " D ,DRESS>)
(T
<TELL " a " D ,SHAWL>)>)>)>
<TELL
"." CR CR "Stairs against the wall lead upward." CR>)>>
<OBJECT CLOSET-OBJECT
(IN CLOSET)
(DESC "closet")
(SYNONYM CLOSET)
(ADJECTIVE WARDROBE)
(FLAGS NDESCBIT)
(ACTION GLOBAL-ROOM-F)>
<OBJECT DRESS
(IN CLOSET)
(DESC "dress-suit combination")
(SYNONYM COMBINATION DRESS SUIT POCKET)
(ADJECTIVE SEQUIN SAFARI SLIT GARMENT)
(FLAGS NDESCBIT WEARBIT CONTBIT SEARCHBIT TAKEBIT OPENBIT)
(SIZE 15)
(CAPACITY 4)
(ACTION DRESS-F)>
<ROUTINE DRESS-F ()
<COND (<VERB? EXAMINE>
<TELL "The sequins glimmer in the ">
<COND (<NOT <FSET? ,HERE ,INDOORSBIT>>
<TELL "moon">)>
<TELL
"light. There's a small slit of a pocket on the hip of the dress." CR>)
(<VERB? OPEN LOOK-INSIDE SEARCH REACH-IN>
<COND (<IN? ,VEIL ,LOCAL-GLOBALS>
<MOVE ,VEIL ,DRESS>)>
<TELL ,YOU-SEE>
<PRINT-CONTENTS ,DRESS>
<TELL " in the pocket." CR>)
(<VERB? CLOSE>
<TELL "It's only a slit of a pocket." CR>)
(<AND <VERB? WEAR>
<FSET? ,SUIT ,WORNBIT>>
<WONT-FIT-OVER ,SUIT>)
(<AND <VERB? WEAR>
<FSET? ,SHAWL ,WORNBIT>>
<WONT-FIT-OVER ,SHAWL>)
(<AND <VERB? WEAR TAKE-OFF REMOVE>
<FSET? ,DRESS ,WORNBIT>>
<COND (<FSET? ,SHAWL ,WORNBIT>
<REMOVE-FIRST ,SHAWL>
<RTRUE>)>
<TELL "You wriggle ">
<COND (<VERB? WEAR>
<TELL "into">
<MOVE ,DRESS ,PROTAGONIST>
<FSET ,DRESS ,WORNBIT>)
(T
<TELL "out of">
<FCLEAR ,DRESS ,WORNBIT>)>
<TELL " the " D ,DRESS "." CR>)>>
<OBJECT VEIL
(IN LOCAL-GLOBALS)
(DESC "veil")
(SYNONYM VEIL)
(FLAGS WEARBIT TAKEBIT)
(SIZE 3)
(ACTION VEIL-F)>
<ROUTINE VEIL-F ()
<COND (<VERB? LOOK-INSIDE>
<COND (<FSET? ,VEIL ,WORNBIT>
<V-LOOK>)
(T
<PERFORM ,V?EXAMINE ,VEIL>
<RTRUE>)>)
(<AND <VERB? WEAR>
<FSET? ,MASK ,WORNBIT>>
<WONT-FIT-OVER ,MASK>
<RTRUE>)>>
<ROUTINE WONT-FIT-OVER (OBJ)
<TELL "It won't fit over the " D .OBJ "." CR>>
<OBJECT SHAWL
(IN CLOSET)
(DESC "shawl-jacket combo")
(SYNONYM JACKET SHAWL COMBO)
(ADJECTIVE LEATHER KNITTED)
(FLAGS NDESCBIT WEARBIT TAKEBIT)
(ACTION SHAWL-F)>
<ROUTINE SHAWL-F ()
<COND (<AND <VERB? WEAR>
<FSET? ,SUIT ,WORNBIT>>
<WONT-FIT-OVER ,SUIT>)>>
<ROOM ON-TENT
(IN ROOMS)
(DESC "On the Tent")
(FLAGS ONBIT RLANDBIT)
(DOWN PER POKE-EXIT)
(GLOBAL LADDER TENT BURN-HOLE)
(GROUND-LOC NOOK)
(ACTION ON-TENT-F)>
<ROUTINE ON-TENT-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You are standing unsteadily on top of a gabled tent. ">
<COND (<NOT <RUNNING? ,I-POKE>>
<TELL
"On one edge of the tent a rope " D ,LADDER " drops down.">)>
<CRLF>)
(<EQUAL? .RARG ,M-BEG>
<COND (<AND <VERB? WALK>
<NOT <EQUAL? ,P-WALK-DIR ,P?DOWN>>>
<PERFORM ,V?WALK-AROUND>
<RTRUE>)
(<VERB? WALK-AROUND>
<TELL
"With lousy footing and a lousy sense of " D ,INTDIR " up here, you take a
few wobbly steps." CR>
<SETG NOT-MOVED-C 0>
<RTRUE>)
(T
<RFALSE>)>)
(<AND <EQUAL? .RARG ,M-ENTER>
<RUNNING? ,I-CHASE>>
<DISABLE <INT I-CHASE>>
<ENABLE <QUEUE I-POKE -1>>)>>
<ROUTINE POKE-EXIT ()
<COND (<RUNNING? ,I-POKE>
<TELL "You can't seem to locate the rope ladder." CR>
<RFALSE>)
(T
<DOWN-LADDER>)>>
<GLOBAL NOT-MOVED-C 0> ;"If 3, you die. Set to 0 when you V-WALK-AROUND"
<GLOBAL POKE-C 0> ;"Incremented each time I-POKE runs"
<GLOBAL WON-ON-TENT <>>
<ROUTINE I-POKE ()
<SETG NOT-MOVED-C <+ ,NOT-MOVED-C 1>>
<SETG POKE-C <+ ,POKE-C 1>>
<CRLF>
<COND (<OR <EQUAL? ,POKE-C 2 4 7>
<EQUAL? ,POKE-C 9 12>>
<FCLEAR ,BURN-HOLE ,INVISIBLE>
<TELL
"Suddenly, and with a muffled \"pop,\" a sleek metal shaft is thrust
upward through the canvas. ">
<COND (<OR <G? ,NOT-MOVED-C 3>
<EQUAL? ,POKE-C 12>>
<JIGS-UP 3
"Its business end makes electrifying contact with your skin.">
<RTRUE>)
(<EQUAL? ,POKE-C 4 9>
<MOVE ,PROD ,HERE>
<TELL
"It lingers momentarily, its business end sending a wisp of smoke into the
night air.">)
(T
<TELL-PROD-WITHDRAW>)>)
(<EQUAL? ,POKE-C 5 10>
<MOVE ,PROD ,LOCAL-GLOBALS>
<TELL-PROD-WITHDRAW>)
(<OR <EQUAL? ,POKE-C 1 3 6>
<EQUAL? ,POKE-C 8 11>>
<TELL
"You can hear, from inside the tent, what sounds like a ladder being
moved across the " D ,GROUND ", then the plod of footsteps coming nearer
and louder.">)
(<EQUAL? ,POKE-C 17>
<TELL
"Still in your death-grip, the prod pivots dangerously close to your forearm,
and you feel its electronic heat.">)
(<EQUAL? ,POKE-C 18>
<TELL "The " D ,PROD " slips a bit in your sweaty grip.">)
(<EQUAL? ,POKE-C 19>
<JIGS-UP 3 "The prod is violently thrust into your stomach!">
<RTRUE>)
(T
<RFALSE>)>
<CRLF>>
<ROUTINE TELL-PROD-WITHDRAW ()
<TELL
"The prod, finding no contact, is withdrawn through its burn hole.">>
<OBJECT PROD
(IN LOCAL-GLOBALS)
(DESC "elephant prod")
(SYNONYM PROD SHAFT STUNNER)
(ADJECTIVE ELEPHANT CRUDE ELECTRONIC METAL)
(FLAGS NDESCBIT TAKEBIT VOWELBIT)
(ACTION PROD-F)>
<ROUTINE PROD-F ()
<COND (<VERB? EXAMINE>
<TELL
"The metal shaft is rigged with a crude electronic stunner at its end." CR>)
(<VERB? TAKE>
<SETG POKE-C 15>
<MOVE ,PROD ,PROTAGONIST>
<TELL
"You grip the shaft tightly as its owner begins jostling it dangerously.">
<RTRUE>)
(<VERB? PUSH MOVE THROW RAISE SHAKE>
<SETG SCORE <+ ,SCORE 10>>
<MOVE ,PROD ,LOCAL-GLOBALS>
<SETG WON-ON-TENT T>
<DISABLE <INT I-POKE>>
<ENABLE <QUEUE I-MOVE-DICK 10>>
<TELL
"Sounds of awkward footwork and cursing come from inside the tent as your
opponent struggles with you and finally gets the shaft. There is a shriek
of bloodcurdling terror as he takes the " D ,PROD ", which sears loudly
through the " D ,CANVAS ", down with him.|
|
Moments later, you hear someone helping the victim, who is groaning in pain,
out of the tent. The " D ,LADDER " is also dragged out." CR>)
(<OR <VERB? DROP GIVE PUT PUT-ON THROW THROW-OFF>
<AND <TOUCHING? ,PROD>
<IS-NOUN? ,W?STUNNER>>>
<SETG POKE-C 18>
<TELL "Blunder!" CR>)>>
<OBJECT BURN-HOLE
(IN LOCAL-GLOBALS)
(DESC "burn hole")
(SYNONYM HOLE HOLES)
(ADJECTIVE BURN)
(FLAGS NDESCBIT)
(ACTION BURN-HOLE-F)>
<ROUTINE BURN-HOLE-F ()
<COND (<VERB? LOOK-INSIDE>
<TELL "You ">
<COND (<RUNNING? ,I-POKE>
<TELL
"glimpse some movement below but are too disoriented to make it out">)
(T
<TELL "can't make anything out">)>
<TELL ,PERIOD>)
(<VERB? ENTER THROUGH BOARD>
<TELL "It's too small." CR>)>>
<ROUTINE I-MOVE-DICK ()
<ENABLE <QUEUE I-MOVE-DICK -1>>
<COND (<AND <NOT <EQUAL? ,HERE ,MIDWEST>>
<FSET? ,CLOWN-ALLEY ,TOUCHBIT>
<NOT <IN? ,DICK ,MIDWEST>>>
<SETG DICK-DRUNK T>
<MOVE ,DICK ,MIDWEST>
<FSET ,DICK ,RMUNGBIT>
<MOVE ,TRADE-CARD ,GLOBAL-OBJECTS>
<MOVE ,NOTE ,GLOBAL-OBJECTS>
<FCLEAR ,DICK ,NDESCBIT>
<DISABLE <INT I-MOVE-DICK>>)
(T
<RFALSE>)>>
<OBJECT TENT
(IN LOCAL-GLOBALS)
(DESC "tent")
(SYNONYM TENT ENTRANCE CANVAS)
(ADJECTIVE ELEPHANT ;BULL DROOPY)
(FLAGS NDESCBIT)
(GENERIC GEN-TENT)
(ACTION TENT-F)>
<ROUTINE TENT-F ()
<COND ;(<VERB? EXAMINE>
<COND (<EQUAL? ,HERE ,ON-CAGE>
<TELL
,YOU-SEE ", faintly, a rope " D ,LADDER " against the " D ,TENT "." CR>)
(T
<RFALSE>)>)
(<VERB? CLIMB-ON CLIMB-UP CLIMB-FOO>
<COND (<EQUAL? ,HERE ,ON-CAGE>
<PERFORM ,V?CLIMB-UP ,LADDER>
<RTRUE>)>)
(<VERB? ENTER THROUGH WALK-TO BOARD>
<COND (<EQUAL? ,HERE ,MEN>
<DO-WALK ,P?EAST>)
(<EQUAL? ,HERE ,BACK-YARD>
<DO-WALK ,P?WEST>)
(<EQUAL? ,HERE ,WEST-CAMP>
<PERFORM ,V?THROUGH ,CANVAS>
<RTRUE>)
(<EQUAL? ,HERE ,PROP-ROOM ,BULL-ROOM>
<TELL ,LOOK-AROUND CR>)
(T
<V-WALK-AROUND>)>)
(<VERB? CRAWL-UNDER>
<COND (<AND <EQUAL? ,HERE ,PROP-ROOM>
<FSET? ,CANVAS ,RMUNGBIT>>
<DO-WALK ,P?SOUTH>)
(<EQUAL? ,HERE ,WEST-CAMP>
<PERFORM ,V?THROUGH ,CANVAS>
<RTRUE>)
(T
<TENT-BOUND>)>)
(<VERB? LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,BULL-ROOM ,PROP-ROOM>
<V-LOOK>)
(<EQUAL? ,HERE ,MEN>
<COND (<IN? ,BULL ,HERE>
<PERFORM ,V?EXAMINE ,BULL>)
(T
<PERFORM ,V?LOOK-INSIDE ,ME>)>)
(<EQUAL? ,HERE ,BACK-YARD>
<TELL
"You can't see anything past the shadowy entrance." CR>)
(<EQUAL? ,HERE ,WEST-CAMP>
<PERFORM ,V?EXAMINE ,CANVAS>
<RTRUE>)>)
(<AND <VERB? LOOK-BEHIND>
<EQUAL? ,HERE ,NOOK>>
<PERFORM ,V?EXAMINE ,FRONT>
<RTRUE>)>>
<OBJECT BULL
(IN MEN)
(DESC "elephant")
(SYNONYM ELEPHANT BULL TRUNK HANNIBAL)
(ADJECTIVE JUNGLE BIG AFRICAN TUSK TUSKS TRUNK PACHYDERM)
(FLAGS NDESCBIT ACTORBIT VOWELBIT)
(ACTION BULL-F)>
<ROUTINE BULL-F ()
<COND (<VERB? EXAMINE>
<TELL
"Behind two soulful eyes, gleaming white tusks, and lush palm-like ears
stands the huge gray elephantine bulk that is Hannibal of the Jungle." CR>)
(<TALKING-TO? ,BULL>
<TELL "The " D ,BULL " merely eyes you passively." CR>
<STOP>)
(<VERB? UNLOCK>
<CANT-REACH ,CHAIN>)
(<AND <VERB? THROW PUT-UNDER>
<PRSO? ,MOUSE ,DEAD-MOUSE>>
<PERFORM ,V?GIVE ,PRSO ,BULL>
<RTRUE>)
(<VERB? CRAWL-UNDER>
<DO-WALK ,P?EAST>)
(<OR <AND <VERB? PUT>
<PRSI? ,BULL>>
<AND <VERB? GIVE SHOW>
<PRSI? ,BULL>>>
<COND (<IDROP>
<RTRUE>)
(<PRSO? ,BALLOON>
<BALLOON-FLIGHT>
<CRLF>)
(<AND <PRSO? ,DEAD-MOUSE>
<NOT <FSET? ,DEAD-MOUSE ,RMUNGBIT>>>
<FSET ,DEAD-MOUSE ,RMUNGBIT>
<TELL
"The old bromide about " D ,BULL "s being afraid of mice is in fact, you
suddenly recall, based on the big pachyderms' fear of losing their balance by
stepping on little squishy things like people or scampering rodents.
(Hence Gloria Golotov's fearlessness tonight while lying under Hannibal's
mighty hoof.)|
|
Glumly, you poke the " D ,DEAD-MOUSE "'s cold, soft belly and realize
it lacks the pizzazz to get Hannibal to dancing." CR>)
(<EQUAL? ,PRSO ,MOUSE>
<COND (<NOT <IN? ,MOUSE ,PROTAGONIST>>
<TELL ,NOT-HOLDING " the " D ,MOUSE "." CR>)
(<FSET? ,BULL ,RMUNGBIT>
<MOVE ,MOUSE ,LOCAL-GLOBALS>
<ENABLE <QUEUE I-BULL 2>>
<TELL
"A humid stream of air from the " D ,BULL "'s trunk blasts your face. The "
D ,MOUSE " wriggles from your grip and scurries across the " D ,SAWDUST
" under Hannibal." CR>)
(T
<FSET ,BULL ,RMUNGBIT>
<TELL
"The mouse itself is in a fright. It squirms across the back of " D ,HANDS ",
and then dangles once again from your grip.|
|
Wide-eyed, the bull " D ,BULL " takes one giant lumbering step backward.
Its " D ,CHAIN "s jingle as the bull begins rocking with slow-motion
nervousness from side to side." CR>)>)
(<OR <EQUAL? ,PRSO ,WATER>
<AND <EQUAL? ,PRSO ,BUCKET>
<IN? ,WATER ,BUCKET>>>
<COND (<FSET? ,BULL ,RMUNGBIT>
<PERFORM ,V?HELLO ,BULL>
<RTRUE>)>
<MOVE ,WATER ,LOCAL-GLOBALS>
<ENABLE <QUEUE I-BULL 2>>
<TELL
"Hannibal eagerly snakes his thick trunk over to the " D ,BUCKET
" and with a quick snort siphons out all of the " D ,WATER "." CR>)
(T
<TELL
"With its lazy trunk, the bull grasps the " D ,PRSO>
<COND (<TRAP-SET?>
<FSET ,TRAP ,RMUNGBIT>
<TELL
" which snaps down hard, barely tickling the thick skin of the pachyderm,
who">)
(T
<TELL " and">)>
<TELL " flings it ">
<COND (<OR <PROB 50>
<PRSO? ,TRAP>>
<MOVE ,PRSO ,HERE>
<TELL "in your " D ,INTDIR>)
(T
<MOVE ,PRSO ,BULL-ROOM>
<TELL "behind itself">)>
<TELL ,PERIOD>)>)
(<VERB? RUB>
<TELL
"You can feel the warm, slobbery end of the " D ,BULL "'s trunk against
your cheek." CR>)
(<VERB? LOOK-BEHIND>
<DO-WALK ,P?EAST>
<RTRUE>)
(<AND <VERB? FOLLOW>
<EQUAL? ,FOLLOW-FLAG 12>>
<DO-WALK ,P?SW>
<RTRUE>)>>
<ROUTINE I-BULL ()
<COND (<FSET? ,BULL ,RMUNGBIT>
<SETG SCORE <+ ,SCORE 10>>
<MOVE ,BULL ,LOCAL-GLOBALS>
<COND (<EQUAL? ,HERE ,MEN ,APE-ROOM>
<FCLEAR ,MEN ,TOUCHBIT>
<FCLEAR ,NEAR-WAGON ,TOUCHBIT>
<ENABLE <QUEUE I-FOLLOW 2>>
<SETG FOLLOW-FLAG 12>
<TELL CR
"Loudly trumpeting its frustration, Hannibal of the Jungle thunders
out of the tent, shearing its " D ,CHAIN " with a dull thud. The raging
bull stampedes ">
<COND (<EQUAL? ,HERE ,APE-ROOM>
<TELL "past you and ">)>
<TELL "through a fence to the southwest." CR>)>
<RTRUE>)
(<EQUAL? ,HERE ,MEN>
<COND (<PROB 50>
<TELL CR
"Spouting point-blank from the " D ,BULL "'s trunk, a blast of warm "
D ,WATER " sprays you in the face.">)
(T
<TELL CR
"The " D ,BULL " lazily draws its trunk upward, ejecting the " D ,WATER
" across its broad back.">)>
<CRLF>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE QUEUE-THUMB? ()
<COND (<AND ,THUMB-TAPPED
,HYP-BOX
<NOT <IN? ,BULL ,MEN>>>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE I-THUMB ()
<ENABLE <QUEUE I-THUMB -1>>
<COND (<OR <AND <FSET? ,THUMB ,RMUNGBIT>
<NOT <IN? ,THUMB ,HERE>>>
<NOT ,HELPED-THUMB>>
<COND (<NOT ,WARPED-DOOR-BROKEN>
<MOVE ,THUMB ,CLOWN-ALLEY>)>
<DISABLE <INT I-THUMB>>
<RFALSE>)
(T
<FCLEAR ,THUMB ,NDESCBIT>
<FCLEAR ,BLUE-DOOR ,RMUNGBIT>
<FSET ,DEALER ,RMUNGBIT>
<COND (<NOT <FSET? ,THUMB ,RMUNGBIT>>
<MOVE ,THUMB ,HERE>
<FSET ,THUMB ,RMUNGBIT>
<TELL CR
"For an instant you can hear the treading of light feet on the ground.
The figure of " D ,THUMB " appears out of the darkness, flailing his small
arms and babbling up at you in his native tongue. He then pauses a moment
to think." CR>)
(T
<DISABLE <INT I-THUMB>>
<TELL CR
"Suddenly animated again by an idea, the little comrade taps on your foot
and points stridently in the direction of the Blue Room. He then looks
around with an air of suspicion, backing cautiously away into the night." CR>
<ROB ,UPPER ,MASK>
<ROB ,LOWER ,MASK>
<MOVE ,THUMB ,CLOWN-ALLEY>
<SETG FOLLOW-FLAG 1>
<ENABLE <QUEUE I-FOLLOW 2>>)>)
(T
<RFALSE>)>>
<OBJECT CHAIN
(IN LOCAL-GLOBALS)
(DESC "massive chain")
(SYNONYM CHAIN CHAINS MENAGERIE)
(ADJECTIVE MASSIVE)
(FLAGS TRYTAKEBIT NDESCBIT TAKEBIT)
(ACTION CHAIN-F)>
<ROUTINE CHAIN-F ()
<COND (<IS-NOUN? ,W?MENAGERIE>
<SETG PRSO ,MENAGERIE>
<GLOBAL-ROOM-F>)
(<AND <TOUCHING? ,CHAIN>
<IN? ,BULL ,HERE>>
<CANT-REACH ,CHAIN>)
(<VERB? TAKE TIE>
<TELL "You barely manage to budge the " D ,CHAIN "." CR>)>>
<ROOM NOOK
(IN ROOMS)
(DESC "Menagerie Nook")
(FLAGS ONBIT RLANDBIT)
(EAST PER BLUE-DOOR-ENTER)
(NORTH TO ROUST-ROOM IF ROUST-DOOR IS OPEN)
(IN PER NOOK-EXIT)
(NW TO MEN)
;(WEST TO MEN)
(UP PER UP-DOWN-CAGE)
(GLOBAL ROUST-DOOR CAGE STRAW TENT FRONT BLUE-DOOR)
(ACTION NOOK-F)>
<ROUTINE NOOK-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You are standing outside of the elephant " D ,TENT ". Along its side wall
to the north sits a " D ,CAGE " with " D ,STRAW " poking out of it. The
menagerie is northwest of here.|
|
Facing you on the east side there is a big old plywood sideshow front,
faded beyond recognition. It serves as the barrier wall of an enclosed
structure behind the elephant tent." CR>)
(<AND <EQUAL? .RARG ,M-BEG>
<ENABLED? ,I-DEMISE>
<VERB? RESTORE QUIT RESTART>>
<TELL "Not so fast." CR>)>>
<ROUTINE NOOK-EXIT ()
<COND (<FSET? ,BLUE-DOOR ,OPENBIT>
<RETURN ,BLUE-ROOM>)
(<FSET? ,ROUST-DOOR ,OPENBIT>
<RETURN ,ROUST-ROOM>)
(T
<V-WALK-AROUND>
<RFALSE>)>>
<ROUTINE BLUE-DOOR-ENTER ()
<COND (<FSET? ,BLUE-DOOR ,INVISIBLE>
<TELL ,CANT-GO CR>
<RFALSE>)
(<NOT <FSET? ,BLUE-DOOR ,OPENBIT>>
<TELL "The " D ,BLUE-DOOR " is closed." CR>
<RFALSE>)
(T
<RETURN ,BLUE-ROOM>)>>
<OBJECT PATH
(IN LOCAL-GLOBALS)
(DESC "path")
(SYNONYM PATH PASSAGE)
(FLAGS NDESCBIT TRYTAKEBIT)
(ACTION PATH-F)>
<ROUTINE PATH-F ()
<COND (<NOT <AND <EQUAL? ,MEET-COUNTER 10>
<NOT ,DREAMING>>>
<CANT-SEE ,PATH>)
(<VERB? FOLLOW TAKE WALK-TO BOARD THROUGH>
<COND (<EQUAL? ,HERE ,MEN>
<DO-WALK ,P?SE>)
(<EQUAL? ,HERE ,NOOK>
<DO-WALK ,P?NW>)
(<EQUAL? ,HERE ,WINGS>
<DO-WALK ,P?NE>)
(<EQUAL? ,HERE ,UNDER-STANDS>
<DO-WALK ,P?SW>)>)>>
<OBJECT STRAW
(IN LOCAL-GLOBALS)
(DESC "straw")
(SYNONYM STRAW LAYER BED)
(ADJECTIVE COURSE)
(FLAGS TRYTAKEBIT NOA)
(ACTION STRAW-F)>
<ROUTINE STRAW-F ()
<COND (<OR <VERB? MOVE RAISE SEARCH LOOK-INSIDE DIG>
<AND <EQUAL? ,HERE ,APE-ROOM>
<VERB? TAKE>>>
<PERFORM ,V?LOOK-UNDER ,STRAW>
<RTRUE>)
(<VERB? TAKE> ;"to weave baskets? the last straw"
<SETG AWAITING-REPLY 5>
<ENABLE <QUEUE I-REPLY 2>>
<TELL "So you're taking up basket-weaving now?" CR>)>>
<OBJECT SAWDUST
(IN LOCAL-GLOBALS)
(DESC "sawdust")
(SYNONYM SAWDUST)
;(ADJECTIVE COURSE)
(FLAGS TRYTAKEBIT NOA)
;(ACTION SAWDUST-F)>
<OBJECT GLOBAL-SAWDUST ;"cf., above"
(IN GLOBAL-OBJECTS)
(DESC "sawdust")
(SYNONYM SAWDUST)
;(ADJECTIVE COURSE)
(FLAGS NDESCBIT TRYTAKEBIT NOA)
(ACTION GLOBAL-SAWDUST-F)>
<ROUTINE GLOBAL-SAWDUST-F ()
<COND (<DONT-HANDLE? ,SAWDUST>
<RFALSE>)
(<NOT <EQUAL? ,HERE ,RING>>
<CANT-SEE <> "any sawdust">)>>
<OBJECT ROUST-DOOR
(IN LOCAL-GLOBALS)
(DESC "cage door")
(SYNONYM DOOR GATE LOCK)
(ADJECTIVE CAGE)
(FLAGS DOORBIT NDESCBIT LOCKEDBIT CAGEBIT)
(GENERIC GEN-NOOK-DOOR-F)
;(ACTION ROUST-DOOR-F)>
;<ROUTINE ROUST-DOOR-F ()
<COND (<AND <VERB? PUT>
<EQUAL? ,PRSI ,ROUST-DOOR>>
<COND (<G? <GETP ,PRSO ,P?SIZE> 20>
<TELL "It won't fit through the door." CR>)
(T
<MOVE ,PRSO ,MEN>
<TELL
"The " D ,PRSO " goes through the lion-door into the darkness below." CR>)>)>>
<ROOM ROUST-ROOM
(IN ROOMS)
(DESC "Inside Cage")
(OUT TO NOOK IF ROUST-DOOR IS OPEN)
(SOUTH TO NOOK IF ROUST-DOOR IS OPEN)
(FLAGS RLANDBIT ONBIT INDOORSBIT)
(GLOBAL ROUST-DOOR STRAW CAGE)
(ACTION ROUST-ROOM-F)>
<ROUTINE ROUST-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This barred rectangular hovel is blanketed with straw and has the look,
if not the smell, of a human dwelling. Its southside door ">
<COND (<FSET? ,ROUST-DOOR ,OPENBIT>
<TELL "stands open">)
(T
<TELL "is closed">)>
<TELL ,PERIOD>)>>
<OBJECT KEY
(IN NOOK)
(DESC "skeleton key")
(SYNONYM KEY RING KEYS)
(ADJECTIVE SKELETON KEY HOOP)
(FLAGS NDESCBIT TAKEBIT TRYTAKEBIT)
(SIZE 4)
(ACTION KEY-F)>
;"TRYTAKEBIT for KEY = KEY is still on wall"
<ROUTINE KEY-F ()
<COND (<AND <IS-NOUN? ,W?KEYS>
<NOT <FSET? ,KEY ,TRYTAKEBIT>>>
<TELL "(It's just one key.)" CR CR>)>
<REAL-KEY-F>>
<ROUTINE REAL-KEY-F ()
<COND (<TAKE-WITH-POLE?>
<RTRUE>)
(<AND <TOUCHING? ,PRSO> ;"V-TAKE-WITH is NOT in touching"
<NOT <EQUAL? ,PRSA ,V?PUT>>
<FSET? ,KEY ,TRYTAKEBIT>>
<COND (<PRSI? ,POLE>
<RFALSE>)>
<CANT-REACH ,KEY>)
(<VERB? EXAMINE>
<TELL "The " D ,KEY " is attached to a hoop ring." CR>)
(<AND <VERB? PUT>
;<PRSI? ,KEY>
<NOT <IDROP>>>
<COND (<AND <PRSO? ,POLE>
<FSET? ,KEY ,TRYTAKEBIT>>
<PERFORM ,V?TAKE-WITH ,KEY ,POLE>
<RTRUE>)
(T
<RFALSE>)>)
(<OR <AND <VERB? REMOVE OPEN>
<PRSO? ,KEY>>
<AND <VERB? TAKE>
<PRSI? ,KEY>
<PRSO? ,KEY>>>
<TELL "The key ring is welded shut." CR>)>>
<ROUTINE TAKE-WITH-POLE? ()
<COND (<AND <FSET? ,PRSO ,TRYTAKEBIT>
<VERB? TAKE-WITH MOVE KILL>
<PRSI? ,POLE>>
<MOVE ,PRSO ,PROTAGONIST>
<FCLEAR ,PRSO ,TRYTAKEBIT>
<FCLEAR ,PRSO ,NDESCBIT>
<COND (<AND <EQUAL? ,PRSO ,KEY>
<NOT <FSET? ,KEY ,TOUCHBIT>>>
<SETG SCORE <+ ,SCORE 10>>)>
<FSET ,PRSO ,TOUCHBIT>
<TELL
"Using the " D ,POLE ", you fish the hoop ring off the " D ,WALLS
". It slides down the raised pole and jingles into " D ,HANDS "." CR>)
(T
<RFALSE>)>>
;<OBJECT KEY-RING
(IN NOOK)
(DESC "key ring")
(SYNONYM RING)
(ADJECTIVE KEY)
(FLAGS TAKEBIT TRYTAKEBIT OPENBIT CONTBIT SEARCHBIT NDESCBIT)
(ACTION KEY-RING-F)>
;<ROUTINE KEY-RING-F ()
<COND (<KEY-REACH?>
<RTRUE>)>>
<OBJECT JIM
(IN LOCAL-GLOBALS)
(DESC "roustabout")
(DESCFCN JIM-DESCFCN)
(SYNONYM ROUSTABOUT MAN)
(FLAGS ACTORBIT PERSON CONTBIT OPENBIT SEARCHBIT)
(ACTION JIM-F)>
;"RMUNGBIT = have got him under my spell"
<ROUTINE JIM-F ()
<COND (<EQUAL? ,JIM ,WINNER>
<COND (<AND <FSET? ,JIM ,RMUNGBIT>
<NOT <VERB? HELLO>>>
<TELL "The " D ,JIM>
<COND (<OR <AND <VERB? FIND TAKE WHERE>
<PRSO? ,NET ,GLOBAL-NET>>
<AND <VERB? PUT-UNDER>
<PRSO? ,NET ,GLOBAL-NET>
<PRSI? ,TIGHTROPE-OBJECT>>>
<SETG FOLLOW-FLAG 5>
<SETG SCORE <+ ,SCORE 10>>
<SETG P-IT-OBJECT ,JIM-GLOBAL>
<ENABLE <QUEUE I-FOLLOW 3>>
<MOVE ,JIM ,LOCAL-GLOBALS>
<ENABLE <QUEUE I-END-GAME 3>>
<TELL " goes tearing out through the wings.">)
(T
<TELL
", though he possesses a vocabulary of over 800 words and can comprehend
something a bit more complex than a simple two-word command, seems unable
to act upon your words, perhaps because this is not one of his usual
duties.">)>
<CRLF>
<STOP>)
(T
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?ASK-ABOUT ,JIM ,MUNRAB>
<SETG WINNER ,JIM>
<RTRUE>)>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,JIM>>
<TELL
"The " D ,JIM ", alas, doesn't relate well to strangers. He ignores you."
CR>)
(<VERB? EXAMINE>
<COND (<FSET? ,JIM ,RMUNGBIT>
<TELL "He's standing at attention">)
(T
<TELL
"He looks flea-bitten, slack-jawed and hangdog">)>
<TELL ,PERIOD>)
(<AND <VERB? FOLLOW>
<EQUAL? ,FOLLOW-FLAG 14 5>>
<DO-WALK ,P?SOUTH>)>>
<ROUTINE JIM-DESCFCN ("OPTIONAL" X)
<TELL "A " D ,JIM " stands nearby.">>
<OBJECT JIM-GLOBAL ;"for talking to thru phones"
(IN GLOBAL-OBJECTS)
(DESC "roustabout")
(SYNONYM ROUSTABOUT)
(FLAGS NDESCBIT ACTORBIT)
(ACTION JIM-GLOBAL-F)>
<ROUTINE JIM-GLOBAL-F ()
<COND (<AND <VERB? FOLLOW>
<EQUAL? ,FOLLOW-FLAG 14 5>>
<DO-WALK ,P?SOUTH>)
(<DONT-HANDLE? ,JIM-GLOBAL>
<RFALSE>)
(<AND <IN? ,HEADPHONES ,HERE>
<TALKING-TO? ,JIM-GLOBAL>
<NOT <VERB? WAVE-AT ALARM>>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?TALK-INTO ,HEADPHONES>
<RTRUE>)
(T
<CANT-SEE ,JIM-GLOBAL>
<STOP>)>>
<OBJECT MALCOM
(IN LOCAL-GLOBALS)
(DESC "Malcom")
(SYNONYM MALCOM)
(ADJECTIVE MYSTIC)
(FLAGS ACTORBIT PERSON NARTICLEBIT)>
<OBJECT BROS
(IN LOCAL-GLOBALS)
(DESC "Genatossio")
(SYNONYM BROTHER)
(ADJECTIVE GENATOSSIO)
(FLAGS ACTORBIT PERSON NARTICLEBIT)>
<OBJECT GLORIA
(IN LOCAL-GLOBALS)
(DESC "Gloria")
(SYNONYM GLORIA)
(ADJECTIVE GLORIOUS)
(FLAGS ACTORBIT PERSON NARTICLEBIT)>
<OBJECT DUFFY
(IN LOCAL-GLOBALS)
(DESC "Sgt. Duffy")
(SYNONYM DUFFY)
(ADJECTIVE SGT SERGEANT)
(FLAGS ACTORBIT PERSON NARTICLEBIT)
(ACTION DUFFY-F)>
<ROUTINE DUFFY-F ()
<COND (<AND <EQUAL? ,PRSI ,DUFFY>
<VERB? ASK-ABOUT TELL-ABOUT ASK-FOR>>
<RFALSE>)
(T
<TELL "This isn't his usual beat." CR>)>>
<OBJECT HEADPHONES
(IN ROUST-ROOM)
(DESC "pair of headphones")
(FDESC
"In contrast with the seedy surroundings, an expensive-looking pair of
headphones lies on the straw.")
(SYNONYM PAIR HEADPHONES PLAYER COUNTER)
(ADJECTIVE CASSETTE CONTROL MIKE MICROP EXPENSIVE TAPE)
(FLAGS LIGHTBIT ;ONBIT WEARBIT
TAKEBIT OPENBIT CONTBIT ;TRYTAKEBIT ;NDESCBIT ;SEARCHBIT)
(SIZE 10)
(ACTION HEADPHONES-F)>
;"RMUNGBIT = have tried to wear phones once"
;"TRYTAKEBIT = they hang on wall in roust-cage/nook"
<ROUTINE HEADPHONES-F ("AUX" NUM) ;"kludge"
<COND (<AND <IN? ,HEADPHONES ,APE>
<NOT <VERB? TAKE>>
<OR <VERB? EXAMINE REWIND PLAY ADVANCE LAMP-OFF
RECORD LAMP-ON>
<TOUCHING? ,HEADPHONES>>>
<TELL D ,APE " has the " D ,HEADPHONES "." CR>
<RTRUE>)
;(<AND <TOUCHING? ,HEADPHONES>
<IN? ,HEADPHONES ,APE>
<EQUAL? ,HERE ,MEN>>
<CANT-REACH ,HEADPHONES>
<RTRUE>)>
<COND (<AND <VERB? LAMP-OFF EJECT ;RECORD PLAY REWIND ADVANCE>
<EQUAL? ,KNOB-SET ,V?RECORD>>
<RECORD-TAPE T>)>
<COND (<VERB? EXAMINE READ>
<SET NUM <* ,ON-TAPE 62>>
<TELL
"It's a nice " D ,HEADPHONES " with a built-in cassette player which
contains a tape, which is now ">
<COND (<EQUAL? ,KNOB-SET ,V?PLAY>
<TELL "playing">)
(<EQUAL? ,KNOB-SET ,V?ADVANCE>
<TELL "advancing">)
(<EQUAL? ,KNOB-SET ,V?REWIND>
<TELL "rewinding">)
(<EQUAL? ,KNOB-SET ,V?RECORD>
<TELL "recording">)
(T
<TELL "not spinning">)>
<TELL
". The controls allow you to either play, record, advance, rewind or eject
the tape. A counter on the player reads [" N .NUM "]." CR>)
(<EQUAL? ,PRSA ,KNOB-SET>
<COND (<VERB? LAMP-ON PLAY>
;<SETG PRSA ,V?EXAMINE>
<TELL "It's already playing." CR>)
(T
<TELL "That's what the tape is already doing." CR>)>)
(<OR <AND <VERB? PLAY ADVANCE RECORD>
<EQUAL? ,ON-TAPE 15>>
<AND <VERB? REWIND>
<EQUAL? ,ON-TAPE 0>>>
<TELL "You're at the very ">
<COND (<EQUAL? ,ON-TAPE 15>
<TELL "end">)
(T
<TELL "beginning">)>
<TELL " of the tape." CR>)
(<VERB? PLAY ADVANCE RECORD REWIND>
<ENABLE <QUEUE I-RUN -1>>
<SETG KNOB-SET ,PRSA>
<COND (<VERB? RECORD>
<TELL "The small mike crackles open." CR>)
(T ;"1 2 3"
<TAPE-PRINT T>)>
<RTRUE>)
(<VERB? LAMP-ON>
<PERFORM ,V?PLAY ,HEADPHONES>
<RTRUE>)
(<VERB? LAMP-OFF EJECT>
<SETG KNOB-SET <>>
<TELL "The tape ">
<COND (<RUNNING? ,I-RUN>
<TELL "stops spinning">)
(<VERB? LAMP-OFF>
<TELL "isn't even running." CR>
<RTRUE>)>
<COND (<AND <VERB? EJECT>
<RUNNING? ,I-RUN>>
<TELL " but ">)>
<COND (<VERB? EJECT>
<TELL "simply will not eject">)>
<DISABLE <INT I-RUN>>
<TELL ,PERIOD>)
(<VERB? OPEN>
<TELL "The headphones won't open up." CR>)
(<VERB? WEAR>
<TELL
"The headphones, seemingly tailored for a pinhead, fit you like a vise.
And since they can be listened to without being worn, you remove them." CR>)
(<AND <VERB? TAKE>
<IN? ,HEADPHONES ,APE>
<FSET? ,APE ,RMUNGBIT>>
<TELL
D ,APE " has a fit as you snatch away the source of his listening pleasure. ">
<APE-DEATH>)
(<VERB? LISTEN>
<COND (<IN? ,HEADPHONES ,APE>
<TELL "It's " ,CLASSICAL>)
(<AND <EQUAL? ,KNOB-SET ,V?PLAY>
<EQUAL? <GET ,TAPE-TABLE ,ON-TAPE> 2 0>>
<PERFORM ,V?LISTEN ,MUSIC>
<RTRUE>)
(<EQUAL? ,KNOB-SET ,V?PLAY ,V?REWIND ,V?ADVANCE>
<SETG FOLLOW-FLAG 99>
<ENABLE <QUEUE I-FOLLOW 1>>
<RTRUE>)>)
(<VERB? TELL TALK-INTO> ;"V-TELL can't move clock"
<TELL "It would only fall on deaf ears." CR>
<SETG CLOCK-WAIT T>
<RTRUE>)>>
<GLOBAL KNOB-SET <>> ;"set to a verb atom"
;"For the non-programmer: each element, 0 to 15 inclusive, is a discrete
minute on the tape. An element of 0 is rock music, of 1 is back-ground
hiss, of 2 is classical music, 4 is AM radio noise"
<GLOBAL TAPE-TABLE
<TABLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>>
<GLOBAL ON-TAPE 6> ;"Discrete location on tape from 0 to 15 inclusive"
<ROUTINE RECORD-TAPE ("OPTIONAL" (NOT-ADVANCE? <>))
;<COND (<EQUAL? ,ON-TAPE 0>
<SET BEG T>)
(T
<SETG ON-TAPE <+ ,ON-TAPE 1>>)>
<COND (<AND <VERB? TALK-INTO>
<PRSO? ,HEADPHONES>>
<PUT ,TAPE-TABLE ,ON-TAPE 3>)
(<CLASSICAL-PLAYING?>
<PUT ,TAPE-TABLE ,ON-TAPE 2>)
(<AND <GETP <META-LOC ,RADIO> ,P?GROUND-LOC>
<EQUAL? <META-LOC ,RADIO> <META-LOC ,HEADPHONES>>
<FSET? ,RADIO ,ONBIT>>
<PUT ,TAPE-TABLE ,ON-TAPE 4>)
(T
<PUT ,TAPE-TABLE ,ON-TAPE 1>)>
<COND (.NOT-ADVANCE?
<RTRUE>)>
<SETG ON-TAPE <+ ,ON-TAPE 1>>
<RTRUE>>
<ROUTINE TAPE-PRINT ("OPTIONAL" (TURN? <>) "AUX" (FF? <>) (CR? T))
<COND (<EQUAL? ,FOLLOW-FLAG 99>
;<AND <VERB? LISTEN>
<PRSO? ,HEADPHONES>>
<SET CR? <>>)>
<COND (<NOT <VISIBLE? ,HEADPHONES>>
<RFALSE>)
(<EQUAL? ,KNOB-SET ,V?ADVANCE ,V?REWIND>
<COND (<EQUAL? ,KNOB-SET ,V?ADVANCE>
<SET FF? T>)>
<COND (.TURN?
<TELL-TURN-KNOB>
<TELL "the cassette tape begins to ">
<COND (.FF?
<TELL "advance">)
(T
<TELL "rewind">)>
<TELL " rapidly">)
(T
<COND (.CR?
<CRLF>)>
<TELL "The tape continues whirring ">
<COND (.FF?
<TELL "forward">)
(T
<TELL "backward">)>)>
<TELL ,PERIOD>)
(<EQUAL? ,KNOB-SET ,V?PLAY>
<COND (.TURN?
<TELL-TURN-KNOB>
<TELL "you hear from the headphones ">)
(T
<COND (.CR?
<CRLF>)>
<TELL "The tape continues to play, emitting ">)>
<COND (<0? <GET ,TAPE-TABLE ,ON-TAPE>>
<TELL "the blare of a Jimi Hendrix guitar solo">
<COND (<EQUAL? ,ON-TAPE 3 4> ;"on-tape starts at 6"
<TELL
". You can also hear, in the background, the subliminal low tones of a ">
<COND (<FSET? ,HYP ,RMUNGBIT>
<TELL
"voice you recognize as Rimshaw's.">)
(T
<TELL "hypnotic voice.">)>
<TELL
" He repeats these words over and over again: \"At the clap of my hands
you shall obey my every command.\"" CR>
<RTRUE>)>)
(<EQUAL? <GET ,TAPE-TABLE ,ON-TAPE> 2>
;<EQUAL? ,ON-TAPE 15>
<TELL "the sounds of classical music">)
;(<EQUAL? <GET ,TAPE-TABLE ,ON-TAPE> 3>
<TELL "the sound of your own voice babbling away">)
(<EQUAL? <GET ,TAPE-TABLE ,ON-TAPE> 4>
<TELL "the noise of AM radio">)
(T
<TELL "background hiss">)>
<TELL ,PERIOD>)>
;<COND (<OR <G? ,ON-TAPE 15>
<L? ,ON-TAPE 1>>
<STOP-TAPE>
<RTRUE>)>
<COND (<AND .TURN?
<L? ,ON-TAPE 16>>
<TELL-COUNTER T>)>
<RTRUE>>
<ROUTINE TELL-TURN-KNOB ()
;<ENABLE <QUEUE I-RUN 2>>
<TELL "You adjust the controls and ">>
<ROUTINE I-RUN ("AUX" NUM)
<COND (<EQUAL? ,KNOB-SET ,V?PLAY>
<SETG ON-TAPE <+ ,ON-TAPE 1>>)
(<EQUAL? ,KNOB-SET ,V?ADVANCE>
<SETG ON-TAPE <+ ,ON-TAPE 5>>)
(<EQUAL? ,KNOB-SET ,V?REWIND>
<SETG ON-TAPE <- ,ON-TAPE 5>>)>
<COND (<IN? ,HEADPHONES ,APE>
<RFALSE>)>
<COND (<EQUAL? ,KNOB-SET ,V?RECORD>
<RECORD-TAPE>) ;"advances on-tape by one"
(<AND <NOT <EQUAL? ,ON-TAPE 16>>
<EQUAL? <META-LOC ,HEADPHONES> ,HERE>
<EQUAL? ,KNOB-SET ,V?PLAY ,V?ADVANCE ,V?REWIND>
<NOT <ENABLED? ,I-DEMISE>>
<NOT <AND <OR <EQUAL? ,PRSA ,V?LAMP-ON ,V?PLAY>
<EQUAL? ,PRSA ,V?ADVANCE ,V?REWIND>>
<PRSO? ,HEADPHONES>>>>
<TAPE-PRINT>)>
<COND (<OR <G? ,ON-TAPE 15>
<L? ,ON-TAPE 1>>
<COND (<AND <EQUAL? ,KNOB-SET ,V?RECORD>
<EQUAL? ,ON-TAPE 15>>
<RECORD-TAPE T>)>
<STOP-TAPE>)>
<COND (<AND <VERB? EXAMINE>
<PRSO? ,HEADPHONES>>
<RTRUE>)
(<AND <NOT <EQUAL? ,PRSA ,V?PLAY ,V?REWIND>>
<NOT <EQUAL? ,PRSA ,V?ADVANCE ,V?LAMP-ON>>
<VISIBLE? ,HEADPHONES>>
<TELL-COUNTER>)>
<RTRUE>>
<ROUTINE TELL-COUNTER ("OPTIONAL" (TURN-KNOB? <>) "AUX" TAPE-LOC)
<SET TAPE-LOC ,ON-TAPE>
<COND (.TURN-KNOB?
<COND (<EQUAL? ,KNOB-SET ,V?REWIND>
<SET TAPE-LOC <- ,ON-TAPE 5>>)
(<EQUAL? ,KNOB-SET ,V?PLAY>
<SET TAPE-LOC <+ ,ON-TAPE 1>>)
(<EQUAL? ,KNOB-SET ,V?ADVANCE>
<SET TAPE-LOC <+ ,ON-TAPE 5>>)>)>
<SET TAPE-LOC <* .TAPE-LOC 62>>
<COND (<AND <G? .TAPE-LOC 0>
<L? .TAPE-LOC 931>>
<TELL "The counter reads [" N .TAPE-LOC "]." CR>)>
<RTRUE>>
<ROUTINE STOP-TAPE ()
<SETG KNOB-SET <>>
<DISABLE <INT I-RUN>>
<COND (<VISIBLE? ,HEADPHONES>
<TELL "The tape suddenly halts." CR>)>
<COND (<G? ,ON-TAPE 15>
<SETG ON-TAPE 15>)
(T
<SETG ON-TAPE 0>)>
<RTRUE>>
<OBJECT MUSIC
(IN GLOBAL-OBJECTS)
(DESC "music")
(SYNONYM MUSIC)
(ADJECTIVE CLASSIC)
(FLAGS NDESCBIT CLEARBIT)
(ACTION MUSIC-F)>
<ROUTINE MUSIC-F ()
<COND (<OR <AND <CLASSICAL-PLAYING?>
<VISIBLE? ,RADIO>>
<AND <RUNNING? ,I-RUN>
<EQUAL? ,KNOB-SET ,V?PLAY>
<EQUAL? <GET ,TAPE-TABLE ,ON-TAPE> 2 0>>>
<COND (<VERB? LISTEN>
<COND (<OR <AND <CLASSICAL-PLAYING?>
<VISIBLE? ,RADIO>>
<EQUAL? <GET ,TAPE-TABLE ,ON-TAPE> 2>>
<TELL "It has a calming effect on you." CR>)
(T
<TELL "It's pretty irritating." CR>)>)
(<AND <VERB? RECORD>
<VISIBLE? ,HEADPHONES>>
<PERFORM ,V?RECORD ,HEADPHONES>
<RTRUE>)>)
(T
<CANT-SEE ,MUSIC>)>>
<ROUTINE CLASSICAL-PLAYING? ()
<COND (<AND <GETP <META-LOC ,RADIO> ,P?GROUND-LOC>
<EQUAL? <META-LOC ,RADIO> <META-LOC ,HEADPHONES>>
<FSET? ,RADIO ,ONBIT>
<EQUAL? ,STATION 1170>>
<RTRUE>)
(T
<RFALSE>)>>
;"Midway attractions"
<ROOM PARLOR
(IN ROOMS)
(DESC "Hypnotist's Parlor")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(SOUTH TO MID)
(OUT TO MID)
(ACTION PARLOR-F)>
<ROUTINE PARLOR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"The parlor, with its tufted black leather sofa, softly lighted chandelier
and darkly varnished paneling strives for a subdued turn-of-the-century motif
and is purposefully dimmed -- thus setting the mood for conveyance, for
squinting." CR>)
(<AND <EQUAL? .RARG ,M-BEG>
<IN? ,HYP ,HERE>>
<COND (<AND <VERB? EXAMINE>
<PRSO? ,SOFA ,CHANDELIER>
<NOT <FSET? ,PRSO ,RMUNGBIT>>>
<FSET ,PRSO ,RMUNGBIT>
<TELL
"Before you can fix your gaze upon the " D ,PRSO ", " D ,HYP " speaks, \"You
are wondering about the " D ,PRSO ". But I can assure you, there is nothing
at all " <PICK-ONE ,YAWNS> " about it. Observe for " D ,ME ".\" Rimshaw
gestures in a grand manner toward">
<ARTICLE ,PRSO T>
<TELL ". Amazing." CR>)
(<AND <VERB? DROP THROW>
<FSET? ,PRSO ,TAKEBIT>
<NOT <FSET? ,PRSO ,WORNBIT>>
<NOT <EQUAL? ,PRSO ,MOUSE ,BALLOON ,TICKET>>>
<HYP-HAND-BACK>)>)>>
<OBJECT PARLOR-OBJECT
(IN PARLOR)
(DESC "parlor")
(SYNONYM PARLOR)
;(ADJECTIVE HYPNOT)
(FLAGS NDESCBIT)
(ACTION GLOBAL-ROOM-F)>
<OBJECT CHANDELIER
(IN PARLOR)
(DESC "chandelier")
(SYNONYM CHANDELIER LIGHT)
(FLAGS LIGHTBIT NDESCBIT)
(ACTION LIGHT-F)>
<GLOBAL HYP-BOX <>>
<ROUTINE HYP-HAND-BACK ()
<TELL
D ,HYP " is also Rimshaw the Immaculate. He hands">
<ARTICLE ,PRSO T>
<TELL " back to you." CR>>
<OBJECT TICKET
(IN LOCAL-GLOBALS)
(DESC "your ticket")
(SYNONYM TICKET OAKLEY DUCAT DUCKET)
(ADJECTIVE MY YOUR ANNIE)
(LDESC "Your ticket lies here.")
(FLAGS TAKEBIT CONTBIT OPENBIT NARTICLEBIT)
(SIZE 2)
(ACTION TICKET-F)>
<ROUTINE TICKET-F ()
<COND (<VERB? PUSH PUNCH CUT>
<TELL ,SPECIFIC>)
(<VERB? LOOK-INSIDE EXAMINE READ>
<PERFORM ,V?EXAMINE ,PINK-BOX>
<SETG P-IT-OBJECT ,TICKET>
<RTRUE>)
(<AND <VERB? PUT-UNDER>
<EQUAL? ,PRSI ,FRONT>
<EQUAL? ,HERE ,NOOK>>
<PERFORM ,V?PUT-UNDER ,PRSO ,BLUE-DOOR>
<RTRUE>)
(<AND <VERB? TAKE>
<IN? ,TICKET ,DEALER>>
<TELL "The " D ,DEALER " yanks it back." CR>)>>
<OBJECT BLUE-BOX
(IN TICKET)
(DESC "blue dot")
(SYNONYM DOT)
(ADJECTIVE BLUE)
(FLAGS NDESCBIT)
(ACTION BOX-F)>
<OBJECT PINK-BOX
(IN TICKET)
(DESC "pink dot")
(SYNONYM DOT)
(ADJECTIVE PINK)
(FLAGS NDESCBIT)
(ACTION BOX-F)>
<ROUTINE BOX-F ()
<COND (<OR <VERB? PUSH PUNCH CUT>
<EQUAL? ,P-PRSA-WORD ,W?POKE>>
<COND (<NOT <IN? ,TICKET ,PROTAGONIST>>
<SETG P-IT-OBJECT ,TICKET>
<TELL ,NOT-HOLDING " the ticket." CR>)
(<FSET? ,PRSO ,RMUNGBIT>
<TELL "It already is." CR>)
(<OR <AND <PRSO? ,BLUE-BOX>
<FSET? ,PINK-BOX ,RMUNGBIT>>
<AND <PRSO? ,PINK-BOX>
<FSET? ,BLUE-BOX ,RMUNGBIT>>>
<SETG AWAITING-REPLY 3>
<ENABLE <QUEUE I-REPLY 2>>
<TELL
"Were you ever considering a career with the circus?" CR>)
(T
<FSET ,PRSO ,RMUNGBIT>
<TELL "You perforate the " D ,PRSO "." CR>)>)
(<AND <VERB? DROP THROW PUT GIVE>
<PRSO? ,BLUE-BOX ,PINK-BOX>>
<PERFORM ,PRSA ,TICKET ,PRSI>
<RTRUE>)
(<VERB? EXAMINE>
<IN-PACKAGE ,TICKET>)>>
<ROUTINE MAN-OR-WOMAN (MAN WOMAN)
<COND (<FSET? ,BLUE-BOX ,RMUNGBIT>
<TELL .MAN>)
(T
<TELL .WOMAN>)>>
<OBJECT HYP
(IN PARLOR)
(DESC "Rimshaw the Incomparable")
(DESCFCN HYP-DESC)
(SYNONYM MAN ;INCOMP RIMSHA PHRENO PALM-READER)
;(ADJECTIVE MAN RIMSHA)
(FLAGS NARTICLEBIT ACTORBIT PERSON CONTBIT OPENBIT SEARCHBIT)
(ACTION HYP-F)>
;"RMUNGBIT = have TALKED-TO? him once and got spiel"
<ROUTINE HYP-F ()
<COND (<AND <NOT <FSET? ,HYP ,RMUNGBIT>>
<VERB? TELL>>
<RFALSE>)
(<AND <NOT <FSET? ,HYP ,RMUNGBIT>>
<NOT <VERB? ASK-ABOUT>>
<OR <TALKING-TO? ,HYP>
<AND <VERB? GIVE SHOW THROW>
<PRSO? ,TICKET>>>>
<FSET ,HYP ,RMUNGBIT>
<TELL
"Rimshaw steps nearer, speaking in a very spiritual tone, \"I can tell
immediately that you " D ,ME " possess great powers of transcendence. It
is your eyes which bespeak your affinity with those mysterious energies
that choose to remain unseen.">
<COND (<AND <VERB? GIVE SHOW THROW>
<PRSO? ,TICKET>>
<TELL "\"" CR CR>
<TELL-WHAT-NOW>)
;(<AND <VERB? TELL>
,P-CONT>
<SETG WINNER ,PRSO>
<SETG HERE <LOC ,WINNER>>
<RTRUE>)
(<AND <EQUAL? ,WINNER ,HYP>
<VERB? HYPNOTISE>
<EQUAL? ,PRSO ,ME>
<HELD? ,TICKET>>
<CRLF> <CRLF>
<TELL-WHAT-NOW <> T>
<CRLF> <CRLF>
<PERFORM ,V?HYPNOTISE ,ME>
<RTRUE>)
(T
<SETG P-IT-OBJECT ,HYP>
<TELL " Ticket, please.\"" CR>
<STOP>)>)
(<EQUAL? ,WINNER ,HYP>
<COND (<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>
;<NOT <EQUAL? ,PRSI ,HEAD ,FORTUNE ,HANDS>>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?ASK-ABOUT ,HYP ,PRSI>
<SETG WINNER ,HYP>
<RTRUE>)
(<VERB? HELLO>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?HELLO ,HYP>
<SETG WINNER ,HYP>
<RTRUE>)
(<AND <VERB? HYPNOTISE>
<PRSO? ,ME>>
<COND (<TICKET-CHECK? ,PARLOR>
<RTRUE>)
(T
<COND (<NOT <EQUAL? <LOC ,PROTAGONIST> ,SOFA>>
<TELL
"You settle into the tufted " D ,SOFA " and ">)>
<TELL
D ,HYP " approaches you purposefully. Poised in front of you, the hypnotist
points both of his hands' tension-filled fingers at you and commands,
\"RE-LAX!!! Now count backward slowly from 100.\"" CR CR>
<SETG P-CONT <>>
<TELL
"With transcendental calm you begin mouthing the words one hundred,
ninety-nine, ninety-eight ...">
<DREAM>)>)
(<OR <AND <VERB? RUB READ EXAMINE>
<PRSO? ,HEAD>>
<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>
<PRSI? ,HEAD>>>
<COND (<TICKET-CHECK? ,HEAD>
<RTRUE>)
(T
<SETG DREAM-C <+ ,DREAM-C 1>>
<FSET ,HEAD ,RMUNGBIT>
<TELL
D ,HYP " places his fingertips on top of your skull and begins going
carefully over its hills and valleys, pausing occasionally for comment.
\"Intelligence: I ascertain you play Infocom games. Personally I enjoyed
\"Enchanter\" ... Romance: A ">
<COND (<FSET? ,PINK-BOX ,RMUNGBIT>
<TELL "tall handsome stranger">)
(T
<TELL "woman of mysterious beauty">)>
<TELL "
will soon come into your life ... Travel: You will visit the Grand Canyon
before the year is out.\"|
|
With this, Rimshaw gives a perfunctory slap up the side of your head and
says, \"End of Session.\"" CR>)>)
(<OR <AND <VERB? READ RUB EXAMINE>
<PRSO? ,HANDS>>
<AND <VERB? TELL READ EXAMINE>
<PRSO? ,FORTUNE>>
<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>
<PRSI? ,FORTUNE ,HANDS>>>
<COND (<TICKET-CHECK? ,HANDS>
<RTRUE>)
(T
<FSET ,HANDS ,RMUNGBIT>
<SETG DREAM-C <+ ,DREAM-C 1>>
<TELL
D ,HYP " takes " D ,HANDS " and studies the palm lines with the intensity
of a cartographer, finally saying in a dramatic whisper, \"Tonight you
have an appointment with destiny.\"" CR>)>)
(T
<TELL "Rimshaw remains aloof." CR>
<STOP>)>) ;"end of winner"
(<VERB? GIVE SHOW THROW>
<COND (<PRSO? ,TICKET>
<COND (,HYP-BOX
<COND (<OR <NOT ,WON-STANDS>
<L? ,DREAM-C 4>>
<TELL-WHAT-NOW T>)
(T
<TELL
"\"I have done all that I can do. No more.\"" CR>)>)
(T
<TELL-WHAT-NOW>)>)
(<PRSO? ,HANDS>
<SETG WINNER ,HYP>
<PERFORM ,V?READ ,HANDS>
<SETG WINNER ,PROTAGONIST>
<RTRUE>)
(<AND <PRSO? ,HEADPHONES>
<NOT ,TAPE-SHOW>>
<SETG TAPE-SHOW T>
<TELL
D ,HYP " begins to lose his composure, regains it again quickly, does a
slow burn, stomps around the " D ,PARLOR-OBJECT " a bit, then reassumes
his previous lordly manner." CR>)
(<NOT <FSET? ,MASK ,WORNBIT>>
<PERFORM ,V?ASK-ABOUT ,HYP ,PRSO>
<RTRUE>)>)
(<AND <VERB? ASK-ABOUT>
<PRSI? ,HEAD ,HANDS ,FORTUNE>>
<SETG WINNER ,HYP>
<PERFORM ,V?READ ,PRSI>
<SETG WINNER ,PROTAGONIST>
<RTRUE>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,HYP>>
<TELL
D ,HYP " draws his hand to his forehead, closes his eyes, meditates a
moment, then offers, \"About">
<COND (<OR <IN? ,PRSI ,ROOMS>
<EQUAL? ,PRSI ,HYP>>
<TELL " that">)
(T
<ARTICLE ,PRSI T>)>
<COND (<PROB 50>
<TELL " I am unable">)
(T
<TELL " it is impossible for me">)>
<TELL " to soothsay.\"" CR>)>>
<ROUTINE HYP-DESC ("OPTIONAL" X)
<SETG P-IT-OBJECT ,HYP>
<TELL
"Standing here, attired in an immaculate black tuxedo, is none other than
Rimshaw himself.">>
<GLOBAL TAPE-SHOW <>>
<ROUTINE TICKET-CHECK? ("OPTIONAL" (OBJ <>))
<COND (<NOT ,HYP-BOX>
<TELL "\"Ticket, please.\"" CR>
<RTRUE>)
(<OR <FSET? .OBJ ,RMUNGBIT>
<AND <EQUAL? ,PRSA ,V?HYPNOTISE>
<OR <G? ,DREAM-C 3>
,WON-STANDS>>>
<TELL
"With the arrogant self-satisfaction common to members of his profession,
he responds, \"It's been done.\"" CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE TELL-WHAT-NOW ("OPTIONAL" (LOOKS-AT? <>) (NO-Q? <>))
<SETG HYP-BOX T>
<ENABLE <QUEUE I-HYP 2>> ;"ie, rimshaw is winner for"
<TELL "He "> ;"in v-hypnotise"
<COND (.LOOKS-AT?
<TELL "glances at">)
(T
<TELL "punches">)>
<TELL " your ticket and hands it back.">
<SETG P-IT-OBJECT ,HYP>
<COND (.NO-Q?
<RTRUE>)>
<TELL " \"Whadda you want?\"" CR>>
<ROUTINE I-HYP ()
<DISABLE <INT I-HYP>>
<COND (<FSET? ,CANVAS ,RMUNGBIT>
<FCLEAR ,TRAP ,NDESCBIT>)>
<RFALSE>>
<ROUTINE DREAM ()
<ROB ,PROTAGONIST ,BIGTOP>
<MOVE-TAKEBIT ,WINGS ,BANNER>
<MOVE-TAKEBIT ,CON-AREA ,BUTTON>
<MOVE ,LONG ,CON-AREA>
<MOVE ,CONCESSIONAIRE ,CON-AREA>
<MOVE ,CON-STAND ,CON-AREA>
<MOVE ,ROAR ,STANDS-ROOM>
<MOVE ,UNIFORM ,HAWKER>
;<SETG SCORE-BEFORE-DREAM ,SCORE>
;<SETG MOVES-BEFORE-DREAM ,MOVES>
;<SETG SCORE 16>
;<SETG MOVES 7>
<SETG SIT-IN-STANDS T>
<SETG MONEY-BEFORE-DREAM ,POCKET-CHANGE>
<SETG POCKET-CHANGE 1841>
<SETG DREAMING T>
<SETG STANDS-C 0>
<SETG TLOC 1>
<FCLEAR ,CON-AREA ,TOUCHBIT>
<FCLEAR ,STANDS-ROOM ,TOUCHBIT>
<ENABLE <QUEUE I-STANDS 1>>
<TELL CR CR
"Your mind begins to drift back, back, back into the most recently forgotten
past ..." CR CR>
<GOTO ,STANDS-ROOM>>
<ROUTINE WAKE-UP ("OPTIONAL" (FORCED? <>))
<ROB ,BIGTOP ,PROTAGONIST>
<ROB ,BANNER ,WINGS>
<ROB ,BUTTON ,CON-AREA>
<FCLEAR ,LONG ,TOUCHBIT>
<FCLEAR ,WINGS ,TOUCHBIT>
<FCLEAR ,HAWKER ,RMUNGBIT>
<FCLEAR ,MONKEY ,RMUNGBIT>
<FCLEAR ,LONG ,RMUNGBIT>
<FCLEAR ,JERRY ,RMUNGBIT>
<FCLEAR ,TEAM ,RMUNGBIT>
<FCLEAR ,BANANA ,RMUNGBIT>
<MOVE ,CONCESSIONAIRE ,LOCAL-GLOBALS>
<MOVE ,JUNK-FOOD ,LOCAL-GLOBALS>
<MOVE ,BANANA ,LOCAL-GLOBALS>
<MOVE ,UNIFORM ,THUMB>
<MOVE ,MONKEY ,DICK>
<MOVE ,LONG ,LOCAL-GLOBALS>
<MOVE ,SHORT ,LOCAL-GLOBALS>
<MOVE ,HAWKER ,LOCAL-GLOBALS>
<MOVE ,CON-STAND ,LOCAL-GLOBALS>
;<SETG FOOD-ORDERED <>>
;<SETG ADJ-FOOD-ORDERED <>>
<SETG ORDERED-GRANOLA <>>
<SETG POCKET-CHANGE ,MONEY-BEFORE-DREAM>
<SETG HERE ,PARLOR>
<SETG DREAMING <>>
<SETG LINE-COUNTER 0>
<SETG PLAYER-NUM 1>
<DISABLE <INT I-BAD-LUCK>>
<DISABLE <INT I-STANDS>>
<MOVE ,PROTAGONIST ,SOFA>
<COND (<VERB? ALARM>
<TELL "You suddenly drift back to reality ...">
<COND (<NOT ,WON-STANDS>
<TELL
" " D ,HYP " looks disappointed at your limited progress under hypnosis">
<COND (<L? ,DREAM-C 4>
<TELL
" but he seems willing to try again">)>)>)
(T
<TELL "wake up ...">)> ;"WIN THE STANDS PUZZLE?"
<TELL "." CR CR>
<V-LOOK>>
;<OBJECT WATCH
(IN HYP)
(DESC "pocket watch")
(SYNONYM WATCH)
(ADJECTIVE POCKET)
(FLAGS TRYTAKEBIT NDESCBIT)
(SIZE 7)
;(ACTION WATCH-F)>
;<ROUTINE WATCH-F ()
<COND (<VERB? TAKE>
<TELL " ">)>>
<OBJECT SOFA
(IN PARLOR)
(DESC "leather sofa")
(SYNONYM SOFA COUCH)
(ADJECTIVE TUFTED BLACK LEATHER)
(FLAGS VEHBIT CONTBIT SURFACEBIT NDESCBIT OPENBIT)
(ACTION SOFA-F)>
;"RMUNGBIT = Hypno. has read your mind about sofa"
<ROUTINE SOFA-F ("OPTIONAL" (RARG <>))
<COND (<AND <EQUAL? .RARG ,M-BEG>
<VERB? WALK>>
<OUT-OF-FIRST ,SOFA>)
(<AND <EQUAL? .RARG ,M-BEG>
<VERB? DROP THROW>>
<HYP-HAND-BACK>)
(.RARG
<RFALSE>)
(<VERB? LIE-DOWN>
<TELL "This is hypnotism, not psychoanalysis." CR>)
(<VERB? OPEN CLOSE>
<CANT-OPEN>)
(<AND <VERB? PUT-ON>
<PRSI? SOFA>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)>>
<OBJECT TUX
(IN HYP)
(DESC "tuxedo")
(SYNONYM TUX TUXEDO)
(ADJECTIVE BLACK)
(FLAGS NDESCBIT TRYTAKEBIT)
(ACTION TUX-F)>
<ROUTINE TUX-F ()
<COND (<VERB? REMOVE TAKE>
<KIND-OF-PERFORMER ,HYP>)>>
<OBJECT FORTUNE
(IN GLOBAL-OBJECTS)
(DESC "future")
(SYNONYM FORTUNE FUTURE)
(ADJECTIVE MY)
(FLAGS NDESCBIT)
(ACTION FORTUNE-F)>
<ROUTINE FORTUNE-F ()
<COND (<AND <VERB? TELL>
<ENABLED? ,I-HYP>>
<SETG WINNER ,HYP>
<PERFORM ,PRSA ,PRSO>
<SETG WINNER ,PROTAGONIST>
<RTRUE>)>>
<ROOM MID
(IN ROOMS)
(DESC "Midway of Midway")
(FLAGS ONBIT RLANDBIT)
(WEST TO MIDWEST)
(EAST TO MIDEAST)
(NORTH TO PARLOR)
(SOUTH TO BOUDOIR)
(GLOBAL FRONT MIDWAY)
(ACTION MID-F)>
<ROUTINE MID-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is about midway along the midway. ">
<TELL-FRONT T>
<COND (<IN? ,CROWD ,HERE>
<TELL CR
"On the north side of the midway, a crowd is drawn tightly around a
sideshow entrance." CR>)>)
;(<AND <EQUAL? .RARG ,M-ENTER>
<NOT <FSET? ,MID ,TOUCHBIT>>
<G? ,SCORE 7>
<L? ,SCORE 11>>
<MOVE ,CROWD ,MID>)>>
<OBJECT MIDWAY
(IN LOCAL-GLOBALS)
(DESC "midway")
(SYNONYM MIDWAY)
;(ADJECTIVE)
(FLAGS NDESCBIT)
(ACTION GLOBAL-ROOM-F)>
<OBJECT MENAGERIE
(IN LOCAL-GLOBALS)
(DESC "menagerie")
(SYNONYM MENAGERIE)
(FLAGS NDESCBIT)
(ACTION GLOBAL-ROOM-F)>
<OBJECT FRONT
(IN LOCAL-GLOBALS)
(DESC "sideshow front")
(SYNONYM FRONTS FRONT PLACARD ENTRANCE)
(ADJECTIVE JENNY ANDREW RIMSHA TINA\'S SIDESHOW BIG OLD PLYWOOD)
(FLAGS NDESCBIT RMUNGBIT)
(ACTION FRONT-F)>
<ROUTINE FRONT-F ()
<COND (<VERB? EXAMINE READ>
<TELL "The " D ,FRONT>
<COND (<EQUAL? ,HERE ,MIDWEST>
<TELL " heralding the charms of Tina is">)
(<EQUAL? ,HERE ,NOOK ,MIDEAST>
<TELL " is">)
(T
<TELL "s are">)>
<COND (<EQUAL? ,HERE ,NOOK>
<TELL " warped and faded beyond recognition." CR>
<RTRUE>)
(T
<TELL
" an eyeful of dazzling, flamboyant artwork similar to that represented
in the circus program along with glowing introductions of the performers. ">
<COND (<EQUAL? ,HERE ,MID>
<TELL "Each ">)
(T
<TELL "The ">)>
<TELL "front has a small entrance." CR>)>)
(<AND <VERB? LOOK-BEHIND>
<EQUAL? ,HERE ,NOOK>>
<TELL
"You can't. The " D ,FRONT " serves as a barrier to an enclosed area." CR>)
(<VERB? THROUGH ENTER WALK-TO>
<COND (<EQUAL? ,HERE ,MID>
<TELL "North or south?" CR>)
(<EQUAL? ,HERE ,MIDEAST>
<DO-WALK ,P?NORTH>)
(<EQUAL? ,HERE ,NOOK>
<DO-WALK ,P?EAST>)>)
(<AND <VERB? PUT-UNDER>
<PRSO? TICKET>
<EQUAL? ,HERE ,NOOK>>
<COND (<NOT <EQUAL? ,CLOWN-COUNTER 7>>
<TELL ,TIPPED-OFF>
<RTRUE>)>
<FCLEAR ,BLUE-DOOR ,INVISIBLE>
<COND (<AND <EQUAL? ,BOUNCE-C 0>
<NOT <FSET? ,BLUE-ROOM ,TOUCHBIT>>>
<SETG SCORE <+ ,SCORE 10>>)>
<TELL
"The ticket disappears under the plywood">
<COND (<AND <EQUAL? ,BLUE-ROOM-ENTER-NUMBER 2>
<NOT <FSET? ,DEALER ,RMUNGBIT>>> ;<G? ,BOUNCE-C 19>
<COND (<FSET? ,BLUE-DOOR ,RMUNGBIT>
<MOVE ,TICKET ,LOCAL-GLOBALS>
<TELL ,PERIOD>
<RTRUE>)
(T
<FSET ,BLUE-DOOR ,RMUNGBIT>)>
<TELL " and then ">
<COND (<AND <EQUAL? ,BLUE-ROOM-ENTER-NUMBER 2>
;<G? ,BOUNCE-C 19>
<NOT <FSET? ,DEALER ,RMUNGBIT>>>
<MOVE ,TICKET ,HERE>
<TELL "reappears." CR>)
(T
<FCLEAR ,BLUE-DOOR ,RMUNGBIT>
<WIN-BLUE-DOOR>)>) ;"second time around"
(T
<WIN-BLUE-DOOR T>)>)>>
<ROUTINE I-BLUE-DOOR ()
<FCLEAR ,BLUE-DOOR ,OPENBIT>
<COND (<EQUAL? ,HERE ,BLUE-ROOM ,NOOK>
<COND (<NOT <AND <VERB? CLOSE>
<PRSO? ,BLUE-DOOR>>>
<CRLF>)>
<TELL
"The spring-loaded " D ,BLUE-DOOR " slides shut." CR>)>>
<OBJECT BLUE-DOOR
(IN LOCAL-GLOBALS)
(DESC "secret panel")
(SYNONYM PANEL OPENING DOOR)
(ADJECTIVE SECRET SPRING)
(FLAGS NDESCBIT DOORBIT INVISIBLE)
(GENERIC GEN-NOOK-DOOR-F)
(ACTION BLUE-DOOR-F)>
;"BLUE-DOOR RMUNGBIT = I've been kicked out and my ticket has been given
back to me, if I give it under door AGAIN, it is
NOT given back to me"
<ROUTINE BLUE-DOOR-F ()
<COND (<AND <VERB? PUT-UNDER>
<PRSO? ,TICKET>>
<PERFORM ,V?PUT-UNDER ,TICKET ,FRONT>
<RTRUE>)
(<VERB? WALK-TO THROUGH BOARD>
<COND (<EQUAL? ,HERE ,NOOK>
<DO-WALK ,P?EAST>)
(<EQUAL? ,HERE ,BLUE-ROOM>
<DO-WALK ,P?WEST>)>)
(<VERB? OPEN>
<COND (<EQUAL? ,HERE ,BLUE-ROOM>
<COND (<EQUAL? ,BLUE-ROOM-ENTER-NUMBER 1>
<SETG BLUE-ROOM-ENTER-NUMBER 2>
<SETG FORCED-BET T>
<TELL "You decide instead to make ">
<COND (,BET-ONCE
<TELL "one last">)
(T
<TELL "a">)>
<TELL
" bet, and plunk 1 dollar down on the table." CR CR>
<SETG P-DOLLAR-FLAG T>
<SETG P-AMOUNT 100>
<PERFORM ,V?BET ,INTNUM>
<RTRUE>)>
<ENABLE <QUEUE I-BLUE-DOOR 2>>
<RFALSE>)
(T
<TELL "There's no handle." CR>)>)
(<AND <VERB? CLOSE>
<FSET? ,BLUE-DOOR ,OPENBIT>>
<RTRUE>)>>
<ROUTINE GEN-NOOK-DOOR-F ()
<COND (<VERB? PUT-UNDER>
,BLUE-DOOR)>>
<GLOBAL FORCED-BET <>>
<ROUTINE WIN-BLUE-DOOR ("OPTIONAL" (AND? <>))
<FSET ,BLUE-DOOR ,OPENBIT>
<MOVE ,TICKET ,BLUE-ROOM>
<ENABLE <QUEUE I-BLUE-DOOR 3>>
<COND (.AND?
<TELL " and ">)>
<TELL
"moments later a " D ,BLUE-DOOR " in the old sideshow front slides open." CR>>
<ROOM FAT-WEST
(IN ROOMS)
(DESC "West Half of Fat Lady")
(SOUTH PER AROUND-FAT)
(OUT PER AROUND-FAT)
(NE PER AROUND-FAT)
(SE PER AROUND-FAT)
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL BIGTOP)
(ACTION FAT-ROOM-F)>
<ROOM FAT-EAST
(IN ROOMS)
(DESC "East Half of Fat Lady")
(NW PER AROUND-FAT)
(SW PER AROUND-FAT)
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL BIGTOP)
(ACTION FAT-ROOM-F)>
<ROUTINE FAT-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<COND (<EQUAL? ,HERE ,FAT-WEST>
<TELL
"Dominating this once spacious room, geographic in her enormity, mountainous
in her irreducibility, t">)
(T
<TELL "T">)>
<TELL
"he " D ,FAT " sits (though no chair is visible) breathtakingly to the ">
<COND (<EQUAL? ,HERE ,FAT-WEST>
<TELL "east">)
(T
<TELL "west">)>
<TELL ". ">
<TELL "Paths around the attraction lead ">
<COND (<EQUAL? ,HERE ,FAT-WEST>
<TELL "northeast and southeast. The exit is south." CR>
<RTRUE>)
(T
<TELL "northwest and southwest." CR>)>)>>
<ROUTINE AROUND-FAT ()
<SETG HANDOUT <>>
<COND (<HELD? ,FAT-HAND>
<TELL "Not while you're holding the " D ,FAT-HAND "!" CR>
<RFALSE>)
(<EQUAL? ,P-WALK-DIR ,P?SOUTH ,P?OUT>
<RETURN ,MIDEAST>)
(<OR <AND <EQUAL? ,P-WALK-DIR ,P?EAST>
<EQUAL? ,HERE ,FAT-WEST>>
<AND <EQUAL? ,P-WALK-DIR ,P?WEST>
<EQUAL? ,HERE ,FAT-EAST>>>
<TELL "The " D ,FAT "'s in the way." CR>
<RFALSE>)
(T
<TELL
"It's a long haul, the scenery changing little. Eventually you arrive at
..." CR CR>
<COND (<EQUAL? ,HERE ,FAT-EAST>
<MOVE-FAT ,FAT-WEST>)
(T
<MOVE-FAT ,FAT-EAST>)>)>>
<ROUTINE MOVE-FAT (PLACE)
<COND (<IN? ,RADIO ,FAT>
<COND (<FSET? ,RADIO ,NDESCBIT>
<FCLEAR ,RADIO ,NDESCBIT>)
(T
<FSET ,RADIO ,NDESCBIT>)>)>
<MOVE ,FAT .PLACE>
<MOVE ,FAT-HAND .PLACE>
<RETURN .PLACE>>
<OBJECT FAT
(IN FAT-WEST)
(DESC "fat lady")
(SYNONYM LADY TINA WOMAN)
(ADJECTIVE FAT)
(FLAGS ACTORBIT PERSON NDESCBIT CONTBIT OPENBIT FEMALE)
(ACTION FAT-F)>
<GLOBAL HANDOUT <>>
<ROUTINE FAT-F ()
<COND (<OR <TALKING-TO? ,FAT>
<AND <VERB? GIVE SHOW>
<PRSI? ,FAT>
<NOT <FSET? ,PRSO ,EATBIT>>>>
<COND (<AND <IN? ,RADIO ,FAT>
<NOT <FSET? ,RADIO ,NDESCBIT>>>
<TELL
"She doesn't seem to notice you with that radio in her ear." CR>)
(T
<COND (<AND <FSET? ,GRANOLA ,RMUNGBIT>
<IN? ,RADIO ,FAT>>
<TELL
"She merely sighs wistfully, which creates a gale-force gust">
<COND (<NOT ,HANDOUT>
<SETG HANDOUT T>
<COND (<NOT <HELD? ,FAT-HAND>>
<TELL
", and cranes her wrecking-ball-sized hand over to you">)>)>
<TELL ,PERIOD>)
(T
<TELL "She appears oblivious">
<COND (<FSET? ,GRANOLA ,RMUNGBIT>
<TELL ", once again,">)>
<TELL " to both sight and sound." CR>)>)>
<STOP>)
(<HURT? ,FAT>
<TELL "The " D ,FAT " is unaffected by your malice." CR>)
(<VERB? BOARD CLIMB-ON CLIMB-UP CLIMB-FOO>
<TELL "The slope is too steep." CR>)
(<VERB? SMELL>
<TELL "There's no smell." CR>)
(<VERB? EXAMINE>
<TELL
"The " D ,FAT " is wearing a " D ,BIGTOP ", and the expression on her face
is sad and distant, almost Rushmorean. ">
<COND (<AND <NOT <FSET? ,RADIO ,NDESCBIT>>
<IN? ,RADIO ,FAT>>
<TELL
"She appears to be holding a small radio up to her ear.">)
(,HANDOUT
<TELL "The " D ,FAT-HAND " is reached out.">)>
<CRLF>)
(<AND <VERB? GIVE SHOW>
<PRSI? ,FAT>>
<COND (<AND <IN? ,RADIO ,FAT>
<NOT <FSET? ,RADIO ,NDESCBIT>>>
;<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?HELLO ,FAT>
<STOP>)
(<PRSO? ,GRANOLA>
<MOVE ,GRANOLA ,LOCAL-GLOBALS>
<FSET ,GRANOLA ,RMUNGBIT> ;"She's eaten the food"
<TELL
"Tina is quick to confiscate the " D ,GRANOLA " from " D ,HANDS " and
grinds it up without hesitation. Turning her far-away gaze slowly in your
direction, she seems to notice you for the first time this evening." CR>)
(<FSET? ,PRSO ,EATBIT>
<TELL
"The " D ,PRSO " is obviously not part of her usual diet, since she ignores
it." CR>)>)
(<VERB? KISS>
<COND (<HELD? ,FAT-HAND>
<PERFORM ,V?KISS ,FAT-HAND>
<RTRUE>)
(<FSET? ,BLUE-BOX ,RMUNGBIT>
<TELL
"The " D ,FAT " is far too distant for your affection." CR>)>)
(<AND <VERB? SHAKE-WITH>
<PRSO? ,HANDS>>
<PERFORM ,V?TAKE ,FAT-HAND>
<RTRUE>)
(<VERB? WALK-AROUND>
<COND (<EQUAL? ,HERE ,FAT-WEST>
<DO-WALK ,P?NE>)
(T
<DO-WALK ,P?NW>)>
<RTRUE>)>>
<OBJECT FAT-HAND
(IN FAT-WEST)
(DESC "fat lady's hand")
(SYNONYM HAND)
(ADJECTIVE HER FAT LADY\'S TINA TINAS TINA\'S)
(FLAGS NDESCBIT TAKEBIT TRYTAKEBIT)
(SIZE 80)
(ACTION FAT-HAND-F)>
<ROUTINE FAT-HAND-F ()
<COND (<VERB? EXAMINE>
<TELL
"It looks like an enormously over-inflated rubber glove." CR>)
(<VERB? TAKE>
<COND (,HANDOUT
<MOVE ,FAT-HAND ,PROTAGONIST>
<FCLEAR ,FAT-HAND ,NDESCBIT>
<SETG HANDOUT <>>
<TELL
"As you take hold, the " D ,FAT-HAND " becomes relaxed, its full weight now
residing in your arms like a sandbag and making your knees buckle." CR>)
(T
<CANT-REACH ,FAT-HAND>
<TELL
". It's too far ... \"inland\" if you will." CR>)>)
(<VERB? DROP>
<MOVE ,FAT-HAND ,HERE>
<FSET ,FAT-HAND ,NDESCBIT>
<SETG HANDOUT <>>
<TELL "The hand is craned away from you." CR>)
(<AND <VERB? PUT>
<PRSI? ,FAT-HAND>>
<PERFORM ,V?GIVE ,PRSO ,FAT>
<RTRUE>)
(<AND <VERB? THROW GIVE PUT PUT-ON>
<EQUAL? ,PRSO ,FAT-HAND>>
<TELL "It's too unwieldy." CR>)
(<VERB? SHAKE>
<COND (<HELD? ,FAT-HAND>
<TELL
"Though unable to budge the " D ,FAT-HAND ", your friendly intentions
are nevertheless understood. ">
<WIN-FAT>
<RTRUE>)
(,HANDOUT
<PERFORM ,V?TAKE ,FAT-HAND>
<COND (<IN? ,FAT-HAND ,PROTAGONIST>
<CRLF>
<WIN-FAT>
<RTRUE>)>)
(T
<TELL ,NOT-HOLDING " " D ,FAT-HAND "." CR>)>)
(<VERB? KISS>
<COND (<NOT <HELD? ,FAT-HAND>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)
(T ;<FSET? ,BLUE-BOX ,RMUNGBIT>
<WIN-FAT>)>)
(<VERB? RUB>
<COND (<OR <HELD? ,FAT-HAND>
,HANDOUT>
<WIN-FAT>)
(T
<PERFORM ,V?TAKE ,FAT-HAND>)>
<RTRUE>)>>
<ROUTINE WIN-FAT ()
<COND (<EQUAL? ,HERE ,FAT-EAST>
<MOVE ,RADIO ,FAT-WEST>)
(T
<MOVE ,RADIO ,FAT-EAST>)>
<SETG HANDOUT <>>
<FSET ,RADIO ,ONBIT>
<FCLEAR ,RADIO ,NDESCBIT>
<FSET ,FAT-HAND ,NDESCBIT>
<ENABLE <QUEUE I-RADIO -1>>
<MOVE ,FAT-HAND ,HERE>
<TELL
"The " D ,FAT " appears quite taken by your kindnesses. She clasps both her
hands up to her chins, and stares ahead in teary silence." CR>>
<OBJECT RADIO
(IN FAT)
(DESC "transistor radio")
(SYNONYM RADIO)
(ADJECTIVE TRANSISTOR SMALL)
(FLAGS LIGHTBIT ;ONBIT
TAKEBIT ;TRYTAKEBIT OPENBIT CONTBIT ;NDESCBIT ;SEARCHBIT)
(ACTION RADIO-F)>
<GLOBAL STATION 856>
<ROUTINE RADIO-F ()
<COND (<DONT-HANDLE? ,RADIO>
<RFALSE>)
(<AND <IN? ,RADIO ,FAT>
<FSET? ,RADIO ,NDESCBIT>>
<CANT-SEE ,RADIO>)
(<VERB? OPEN CLOSE>
<TELL "It's one of those non-opening models." CR>)
(<VERB? RECORD>
<PERFORM ,V?RECORD>
<RTRUE>)
(<AND <TOUCHING? ,RADIO>
<IN? ,RADIO ,FAT>>
<FSET ,RADIO ,NDESCBIT>
<TELL
"The " D ,FAT " casually passes the " D ,RADIO " over to her opposite
hand." CR>)
(<AND <VERB? EXAMINE>
<NOT <IN? ,RADIO ,FAT>>>
<TELL "The AM dial is ">
<COND (<FSET? ,RADIO ,ONBIT>
<TELL "illuminated and set to " N ,STATION "." CR>)
(T
<TELL "darkened." CR>)>)
(<VERB? LISTEN>
<COND (<IN? ,RADIO ,FAT>
<TELL "You're not close enough." CR>)
(<AND <FSET? ,RADIO ,ONBIT>
<VISIBLE? ,RADIO>>
<RTRUE>)
(T
<RFALSE>)>)
(<VERB? SET>
<PERFORM ,V?SET ,DIAL ,PRSI>
<RTRUE>)
(<VERB? LAMP-ON>
<COND (<NOT <FSET? ,RADIO ,ONBIT>>
<FSET ,RADIO ,ONBIT>
<ENABLE <QUEUE I-RADIO -1>>
<TELL
"The " D ,DIAL " bursts forth in a circle of light." CR>)
(T
<TELL "It is." CR>)>)
(<VERB? LAMP-OFF>
<COND (<FSET? ,RADIO ,ONBIT>
<DISABLE <INT I-RADIO>>
<FCLEAR ,RADIO ,ONBIT>
<TELL
"The " D ,DIAL " flickers and grows dark." CR>)
(T
<TELL "It's already off." CR>)>)>>
<ROUTINE I-RADIO ()
<COND (<AND <VISIBLE? ,RADIO>
<FSET? ,RADIO ,ONBIT>
<NOT <ENABLED? ,I-DEMISE>>>
<COND (<NOT <AND <VERB? LISTEN>
<PRSO? ,RADIO>>>
<CRLF>)>
<TELL
"Drifting out from the radio is ">
<COND (<GETP ,HERE ,P?GROUND-LOC>
<COND (<AND <EQUAL? ,STATION 1170>
<FSET? ,DIAL ,RMUNGBIT>
<NOT ,CALLED-STATION>>
<TELL
"an appeal for cash: The announcer repeats that she will not play a
certain piece by Vivaldi until just one more caller phones in a pledge." CR>
<RTRUE>)
(<EQUAL? ,STATION 1170>
<TELL ,CLASSICAL>
<COND (<AND <EQUAL? ,ON-ROPE 3 4>
<EQUAL? ,APE-LOC 3>
<NOT <FSET? ,DIAL ,RMUNGBIT>>>
<FSET ,DIAL ,RMUNGBIT>
<TELL CR
"There is a sudden break in the music. A female announcer comes on the
air and, after reminding her audience that this is Pledge Week for WPDL,
in a honeyed voice begins making an appeal for cash." CR>)>
<RTRUE>)
(T
<TELL
"the typical noisy hubbub of AM radio.">
<CRLF>
<RTRUE>)>)
(T
<TELL "a jumble of static." CR>
<RTRUE>)>)>>
<OBJECT WPDL
(IN GLOBAL-OBJECTS)
(DESC "WPDL")
(SYNONYM WPDL)
(FLAGS NDESCBIT NARTICLEBIT)
(ACTION WPDL-F)>
<ROUTINE WPDL-F ()
<COND (<DONT-HANDLE? ,WPDL>
<RFALSE>)
(<AND <NOT <VISIBLE? ,RADIO>>
<NOT <EQUAL? ,HERE ,OFFICE>>>
<CANT-SEE <> "the radio">)
(<AND <VERB? LISTEN>
<EQUAL? ,STATION 1170>>
<PERFORM ,V?LISTEN ,RADIO>
<RTRUE>)
(<OR <AND <VERB? SET>
<PRSO? ,DIAL>>
<AND <VERB? LAMP-ON>
<PRSO? ,WPDL>>>
<SETG P-NUMBER 1170>
<PERFORM ,V?SET ,DIAL ,INTNUM>
<RTRUE>)>>
;<ROUTINE ELEVATED? ()
<COND (<OR <EQUAL? ,HERE ,PLATFORM-1 ,PLATFORM-2 ,ON-WAGON>
<EQUAL? ,HERE ,TIGHTROPE-ROOM ,ON-TENT ,ON-WAGON>
<EQUAL? ,HERE ,ON-CAGE>>
<RTRUE>)
(T
<RFALSE>)>>
;"Ape proves to be essentially a lowbrow with highbrow tastes in music."
<OBJECT DIAL ;"Ape get static from radio, you get static from ape"
(IN RADIO)
(DESC "radio dial")
(SYNONYM DIAL ;LIGHT CIRCLE STATION)
(ADJECTIVE RADIO ;STATION AM)
(FLAGS NDESCBIT)
(ACTION DIAL-F)>
;"RMUNGBIT = FUNDRAISING BEGINS IN I-RADIO"
<ROUTINE DIAL-F ()
<COND (<VERB? EXAMINE READ>
<PERFORM ,V?EXAMINE ,RADIO>
<RTRUE>)
(<AND <VERB? SET TUNE LAMP-ON LAMP-OFF>
<AND <IN? ,RADIO ,FAT>>>
<PERFORM ,V?TAKE ,RADIO>
<RTRUE>)
(<AND <VERB? SET>
<EQUAL? ,PRSI ,INTNUM>>
<COND (,P-DOLLAR-FLAG
<V-DIG>)
(<NOT <FSET? ,RADIO ,ONBIT>>
<TELL
"The dial is darkened and the numbers invisible." CR>)
(<EQUAL? ,P-NUMBER ,STATION>
<TELL "That's where it's tuned to now!" CR>)
(<OR <G? ,P-NUMBER 1600>
<L? ,P-NUMBER 550>>
<TELL "That's off the AM scale." CR>)
(T
<SETG STATION ,P-NUMBER>
<COND (<GETP ,HERE ,P?GROUND-LOC>
<COND (<EQUAL? ,P-NUMBER 1170>
<TELL "You ">
<COND (<AND <FSET? ,DIAL ,RMUNGBIT>
<NOT ,CALLED-STATION>>
<TELL "should ">)>
<TELL
"have found an oasis of nice, soothing music." CR>
<RTRUE>)
;(<PROB 50>
<SIGNAL>)
(T
<TELL
"The very erratic signal is carrying, for the moment, ">
<COND (<PROB 35>
<TELL "the latest in post-punk.">)
(<PROB 32>
<TELL "an advertising pitch.">)
(T
<TELL "a radio call-in debate.">)>
<CRLF>)>)
(T
<SIGNAL T>)>)>)>>
<ROUTINE SIGNAL ("OPTIONAL" (GROUNDED? <>))
<TELL
"You pick up a faint signal at " N ,P-NUMBER " ... then it drifts into
static.">
<COND (.GROUNDED?
<TELL
" The reception here is horrible.">)>
<CRLF>>
<OBJECT STAIRCASE
(IN LOCAL-GLOBALS)
(DESC "spiral staircase")
(SYNONYM STAIRS STAIRCASE STAIR STAIRW)
(ADJECTIVE SPIRAL)
(FLAGS NDESCBIT)
(ACTION STAIRCASE-F)>
;"RMUNGBIT = andrew blocking it off"
<ROUTINE STAIRCASE-F ()
<COND (<VERB? ;CLIMB-ON CLIMB-UP CLIMB-FOO>
<DO-WALK ,P?UP>)>>
<ROUTINE UP-STAIRS ()
<COND (<IN? ,ANDREW ,HERE>
<TELL D ,ANDREW>
<COND (<NOT <FSET? ,STAIRCASE ,RMUNGBIT>>
<TELL
" goose-steps to a position in front of the " D ,STAIRCASE ", dragging
Jenny's high heel across the ground. There " D ,ANDREW>)
(T
<FSET ,STAIRCASE ,RMUNGBIT>)>
<TELL
" stands blocking your way up. Stiffly, he pats his holster a couple of times
and you hear its leather crinkle." CR>
<RFALSE>)
(<AND <FSET? ,CLOSET ,TOUCHBIT>
<EQUAL? ,HERE ,CLOSET>>
<TELL "You come out of the closet">)
(T
<TELL
"With a bizarre twist, the " D ,STAIRCASE " leads up over the " D ,WALLS "
and then down">)>
<TELL ,PERIOD>
<CRLF>
<COND (<EQUAL? ,HERE ,CLOSET>
<RETURN ,BOUDOIR>)
(T
<RETURN ,CLOSET>)>>
<ROOM BOUDOIR
(IN ROOMS)
(DESC "Jennifer's Boudoir")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(NORTH TO MID)
(OUT TO MID)
(UP PER UP-STAIRS)
(GLOBAL STAIRCASE)
(ACTION BOUDOIR-F)>
<ROUTINE BOUDOIR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This is a cozy little drawing room where guests are received. On the
gloomy west side of the room, a " D ,STAIRCASE " leads upward." CR>)>>
<OBJECT HERM
(IN BOUDOIR)
(DESC "Andrew Jenny")
(DESCFCN HERM-DESC)
(SYNONYM JENNY PAIR HERMAPHRODITE ATTRACTION)
(ADJECTIVE ANDREW ANDY)
(FLAGS ACTORBIT PERSON NARTICLEBIT)
(GENERIC GEN-JENNY-F)
(ACTION HERM-F)>
;"RMUNGBIT = asked guard about herm-andrew-jenny once"
<ROUTINE HERM-F ()
<COND (<OR <TALKING-TO? ,HERM>
<EQUAL? ,HERM ,WINNER>
<VERB? GIVE SHOW>>
<TELL
"As two distinct personalities, the pair must be addressed individually." CR>
<STOP>)
(<VERB? EXAMINE>
<TELL
"[You can't use the verb \"">
<PRINTB ,P-PRSA-WORD>
<COND (<EQUAL? ,P-PRSA-WORD ,W?EXAMINE>
<TELL "e">)>
<TELL
"\" with multiple personalities. Each must be observed individually.]" CR>)
(<AND <VERB? FOLLOW>
<EQUAL? ,FOLLOW-FLAG 6>>
<DO-WALK ,P?NORTH>)>>
<ROUTINE HERM-DESC ("OPTIONAL" X)
<SET P-IT-OBJECT ,ANDREW>
<TELL
"Andrew Jenny is the attraction of this sideshow. He appears standoffish,
she's looking bored.">>
<OBJECT ANDREW
(IN BOUDOIR)
(DESC "Andrew")
(SYNONYM ANDREW ANDY MAN)
(FLAGS NARTICLEBIT ACTORBIT PERSON CONTBIT OPENBIT SEARCHBIT NDESCBIT)
(ACTION ANDREW-F)>
<ROUTINE ANDREW-F ()
<COND (<EQUAL? ,ANDREW ,WINNER>
<COND (<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?ASK-ABOUT ,ANDREW ,PRSI>
<SETG WINNER ,ANDREW>
<RTRUE>)
(<VERB? HELLO>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?HELLO ,ANDREW>
<SETG WINNER ,ANDREW>
<RTRUE>)
(T
<TELL
"Andrew displays a tight-lipped military reserve, and says nothing." CR>
<STOP>)>)
(<VERB? EXAMINE>
<ENABLE <QUEUE I-TURNSTILE 2>>
<TELL
D ,ANDREW "'s wearing an army boot, combat fatigues with a black leather
shoulder holster, and a pith helmet. He sneers at you, his handlebar mustache
nearly poking his eye. \"What are you staring at!\"" CR>)
(<SPILL-BEANS?>
<RFATAL>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,ANDREW>>
<COND (<PRSI? ,JENNY>
<TELL
D ,ANDREW " turns sarcastic. \"My 'better' half -- ugh! Well ... can't live
with 'er, can't live without 'er.\"" CR>)>)
(<AND <VERB? FOLLOW>
<EQUAL? ,FOLLOW-FLAG 6>>
<DO-WALK ,P?NORTH>)>>
<OBJECT ANDREW-CLOTHES
(IN ANDREW)
(DESC "Andrew's outfit")
(SYNONYM OUTFIT BOOT HOLSTER HELMET)
(ADJECTIVE BLACK LEATHER FATIGUES SHOULDER ARMY PITH)
(FLAGS NDESCBIT TRYTAKEBIT NARTICLEBIT)
(ACTION ANDREW-CLOTHES-F)>
<ROUTINE ANDREW-CLOTHES-F ()
<COND (<VERB? TAKE RAISE RUB PUSH SEARCH REMOVE LOOK-INSIDE>
<COND (,END-GAME
<V-DIG>
<RTRUE>)>
<TELL
D ,ANDREW " snaps his half body into a martial arts fighting pose, which puts
you off." CR>)
(<VERB? EXAMINE>
<TELL
"The overall effect of " D ,ANDREW-CLOTHES " is unmistakable: He's dressed
to kill." CR>)>>
<OBJECT JENNY
(IN BOUDOIR)
(DESC "Jenny")
(SYNONYM JENNY JENNIF WOMAN)
(FLAGS NARTICLEBIT ACTORBIT PERSON CONTBIT OPENBIT SEARCHBIT NDESCBIT
FEMALE)
(GENERIC GEN-JENNY-F)
(ACTION JENNY-F)>
<ROUTINE GEN-JENNY-F ()
,JENNY>
;"trying to affect the accent of a southern belle, sounds like a ding-a-ling"
<ROUTINE JENNY-F ()
<COND (<EQUAL? ,JENNY ,WINNER>
<COND (<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?ASK-ABOUT ,JENNY ,PRSI>
<SETG WINNER ,JENNY>
<RTRUE>)
(<VERB? HELLO>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?HELLO ,JENNY>
<SETG WINNER ,JENNY>
<RTRUE>)
(T
<TELL "Jenny remains aloof." CR>
<STOP>)>) ;"end of winner"
(<VERB? EXAMINE>
<TELL
"She has on a svelte calf-length black evening dress and a pink feather
boa draped over her shoulder." CR>)
(<SPILL-BEANS?>
<RFATAL>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,JENNY>>
<COND (<PRSI? ANDREW>
<TELL
"She sighs. \"Mr. Tough Guy, huh? Deep down he's not really this mean.
Just don't get on his bad side, honey.\"" CR>)>)
(<AND <VERB? FOLLOW>
<EQUAL? ,FOLLOW-FLAG 6>>
<DO-WALK ,P?NORTH>)>>
<OBJECT JENNY-CLOTHES
(IN JENNY)
(DESC "Jenny's apparel")
(SYNONYM BOA DRESS ARANGEMENT APPAREL)
(ADJECTIVE PINK FEATHER JENNY EVENING BLACK FRUIT \'N\' FLOWER)
(FLAGS NDESCBIT TRYTAKEBIT NARTICLEBIT)
(ACTION JENNY-CLOTHES-F)>
<ROUTINE JENNY-CLOTHES-F ()
<COND (<VERB? TAKE RUB REMOVE LOOK-INSIDE SEARCH PICK>
<COND (,END-GAME
<V-DIG>
<RTRUE>)>
<TELL
D ,JENNY " flicks her feather boa into your face, tickling your nose. \"Quit
that, honey.\"" CR>)
(<VERB? RAISE LOOK-UNDER>
<NOT-PEEP>)>>
<ROUTINE NOT-PEEP ()
<TELL "This is a sideshow, not a peep show." CR>>
<ROUTINE SPILL-BEANS? ()
<COND (<OR <AND <VERB? SHOW GIVE>
<PRSO? ,CASE>
<FSET? ,CASE ,RMUNGBIT>
,GUARD-FELT-CASE>
<AND <PRSI? ,STAND ,LION-NAME ,LION-CAGE ,GIRL
,NIMROD ,CASE>
<OR <AND <VERB? ASK-ABOUT TELL-ABOUT>
<PRSO? ,ANDREW ,JENNY ,HERM>
<FSET? ,CASE ,RMUNGBIT>> ;"Andy realizes"
<AND <VERB? TELL-ABOUT>
,GUARD-FELT-CASE>>>>
<MOVE ,ANDREW ,LOCAL-GLOBALS>
<MOVE ,JENNY ,LOCAL-GLOBALS>
<MOVE ,HERM ,LOCAL-GLOBALS>
<SETG FOLLOW-FLAG 6>
<ENABLE <QUEUE I-FOLLOW 2>>
<SETG SCORE <+ ,SCORE 10>>
<TELL
"Jenny looks very pensive for a few moments. As the memory of events in
which she unknowingly took part slowly dawns upon the hemisphere of her
mind, a tear starts to well up in her eye, loads up with mascara, and
spills down her cheek. ">
<COND (<HELD? ,CASE>
<MOVE ,CASE ,ANDREW>
<FSET ,CASE ,INVISIBLE>
<TELL
"Andrew impulsively snatches the " D ,CASE " from you. " CR CR>)>
<TELL
"\"Aha!\" squeals Jenny, as she seems to recollect more details of Andrew's
dirty dealings. \"And you're supposed to meet later on with your fellow
thugs at Katz's trailer, the big brute. Well you can just forget about it,
Andrew!\"|
|
There ensues a hurly-burly struggle between the opposing personalities trapped
within the one body. Jenny chases Andrew out of the sideshow amid shrieks
of rage which echo down the midway." CR>
<RTRUE>)
(T
<RFALSE>)>>
<GLOBAL GUARD-FELT-CASE <>>
<OBJECT CASE
(IN LOCAL-GLOBALS)
(DESC "cigarette case")
(SYNONYM CASE)
(ADJECTIVE CIGARETTE ;COMPACT)
(FLAGS TAKEBIT CONTBIT)
(CAPACITY 1)
(ACTION CASE-F)>
;"rmungbit = have show case to herm after I know its significance"
<ROUTINE CASE-F ()
<COND (<VERB? EXAMINE>
<TELL
"It is gilded with gold leaf and shows intricate design work on
its face." CR>)
(<AND ,GUARD-FELT-CASE
<IN? ,ANDREW ,HERE>
<NOT <FSET? ,CASE ,RMUNGBIT>>
<OR <AND <VERB? SHOW GIVE>
<EQUAL? ,PRSI ,ANDREW ,JENNY ,HERM>>
<AND <VERB? TELL-ABOUT ASK-ABOUT>
<EQUAL? ,PRSI ,CASE>
<EQUAL? ,PRSO ,ANDREW ,JENNY ,HERM>>>>
<FSET ,CASE ,RMUNGBIT>
<TELL
"As " D ,ANDREW " realizes you know him to be the owner of the " D ,CASE
", his eye gets wide, and then, behind his distinguished exterior, he
begins to turn shades of purple." CR>)>>
;<OBJECT FLUFF
(IN LOCAL-GLOBALS)
(DESC "lavender fluff")
(SYNONYM FLUFF WHISP)
(ADJECTIVE LAVENDER SCANT)
(FLAGS TAKEBIT)
(ACTION FLUFF-F)>
;"FLUFF RMUNGBIT = fluff has been seen and lost by Andrew-Jenny"
;<ROUTINE FLUFF-F ()
<COND (<AND <VERB? SHOW GIVE>
<EQUAL? ,PRSI ,ANDREW ,JENNY>>
<FSET ,FLUFF ,RMUNGBIT>
<MOVE ,FLUFF ,LOCAL-GLOBALS>
<TELL
"As Andrew hears where you came across the " D ,FLUFF ", his eye gets
wide, and he takes a swipe at the fluff, which drifts away through the
air." CR>)>>
<ROOM MIDEAST
(IN ROOMS)
(DESC "Far End of Midway")
(FLAGS ONBIT RLANDBIT)
(WEST TO MID)
(NORTH TO FAT-WEST)
(IN TO FAT-WEST)
(GLOBAL FRONT MIDWAY)
(ACTION MIDEAST-F)>
<ROUTINE MIDEAST-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You've reached the far end of the midway. A sideshow front to the north
advertises the \"827 Pounds of Feminine Charm\" that is Tina." CR>)>>
<GLOBAL DRUNK-COUNTER 0>
<ROUTINE I-DRUNK ()
<SETG DRUNK-COUNTER <+ ,DRUNK-COUNTER 1>>
<FCLEAR ,VOICES ,INVISIBLE>
<COND (<AND <EQUAL? ,DRUNK-COUNTER 3>
<EQUAL? ,HERE ,MIDWEST>>
<TELL CR
"The " D ,DICK " examines the label of the flask that he's holding
then takes a slug." CR>)
(<AND <EQUAL? ,DRUNK-COUNTER 5>
<EQUAL? ,HERE ,MIDWEST>>
<ENABLE <QUEUE I-FOLLOW 2>>
<SETG FOLLOW-FLAG 11>
<TELL CR
"The pitchman gives the " D ,DICK " a final slap on the back and leads him
through the " D ,TURNSTILE "." CR>)>
<COND (<OR <NOT <EQUAL? ,HERE ,MIDWEST>>
<EQUAL? ,FOLLOW-FLAG 11>>
<MOVE ,CON ,LOCAL-GLOBALS>
<MOVE ,DICK ,LOCAL-GLOBALS>
<MOVE ,KIESTER ,LOCAL-GLOBALS>
<FSET ,VOICES ,INVISIBLE>
<DISABLE <INT I-DRUNK>>)>>
<OBJECT CON
(IN MIDWEST)
(DESC "Billy Monday")
(DESCFCN CON-DESC)
(SYNONYM BILLY BILL PITCHMAN MONDAY)
(ADJECTIVE MAN BILLY ;PITCHMAN)
(FLAGS ACTORBIT PERSON NARTICLEBIT SEARCHBIT CONTBIT OPENBIT)
(ACTION CON-F)>
;" CON RMUNGBIT = Con has forced drink on detective"
<ROUTINE CON-F ()
<COND (<EQUAL? ,CON ,WINNER>
<COND (<AND <VERB? TELL-ABOUT>
<PRSO? ,ME>>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?ASK-ABOUT ,CON ,PRSI>
<SETG WINNER ,CON>
<RTRUE>)
(<VERB? HELLO>
<SETG WINNER ,PROTAGONIST>
<PERFORM ,V?HELLO ,CON>
<SETG WINNER ,CON>
<RTRUE>)
(<AND <VERB? YES>
<EQUAL? ,AWAITING-REPLY 8>>
<V-YES>)
(<AND <VERB? NO>
<EQUAL? ,AWAITING-REPLY 8>>
<V-NO>)
(T
<TELL "He just grins, revealing a gold tooth." CR>)>)
(<AND <VERB? LISTEN>
<EQUAL? ,HERE ,MIDWEST>>
<PERFORM ,V?LISTEN ,VOICES>
<RTRUE>)
(<VERB? EXAMINE>
<COND (<EQUAL? ,HERE ,MIDWEST>
<TELL
"He's all smiles and solicitude toward the " D ,DICK "." CR>)>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,CON>>
<COND (<PRSI? ,FLASK>
<TELL "He takes a deep breath. \"Well, ">
<MAN-OR-WOMAN "brother" "sister">
<TELL
", step right up -- I don't care what's your sickness, I don't care what's
draggin' you down, don't tell me 'cause I don't want to know whether
it's pyorrhea, anorexia nervosa, sick headache, goiter, varicose veins, bilious
derangements, nervous debility ...\" The pitchman realizes he's getting nowhere
with you and turns his attention back to the detective." CR>)
(T
<TELL "\"I don't know much about that,\" he ">
<COND (<PRSI? ,GIRL> ;"etc. sensitive shit"
<TELL-GRIN>)
(T
<TELL "says.">)>
<SETG AWAITING-REPLY 8>
<ENABLE <QUEUE I-REPLY 2>>
<TELL
" \"But have you asked me about " D ,FLASK "?\"" CR>)>)
(<VERB? FOLLOW>
<COND (<EQUAL? ,FOLLOW-FLAG 7 11>
<DO-WALK ,P?WEST>)
(<EQUAL? ,FOLLOW-FLAG 15>
<DO-WALK ,P?UP>)>)>>
<ROUTINE CON-DESC ("OPTIONAL" X)
<COND (<EQUAL? ,HERE ,MIDWEST>
<TELL
"Next to the " D ,BIGTOP ", the " D ,DICK " is talking to a pitchman who's
carrying an open trunk that's strapped to his upper body.">)
(T
<TELL D ,CON " is here.">)>>
<ROUTINE TELL-GRIN ()
<TELL "grins, revealing a gold tooth.">>
<OBJECT SMOKE
(IN BLUE-ROOM)
(DESC "cloud of smoke")
(SYNONYM SMOKE CLOUD)
(ADJECTIVE CIGARETTE)
(FLAGS NDESCBIT)
(ACTION SMOKE-F)>
<ROUTINE SMOKE-F ()
<COND (<VERB? THROUGH WALK-TO>
<PERFORM ,V?WALK-TO ,POKER>
<RTRUE>)>>
<ROOM BLUE-ROOM
(IN ROOMS)
(DESC "Blue Room")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(WEST TO NOOK IF BLUE-DOOR IS OPEN)
(OUT TO NOOK IF BLUE-DOOR IS OPEN)
(GLOBAL BLUE-DOOR POKER)
;(PSEUDO "SMOKE")
(ACTION BLUE-ROOM-F)>
<ROUTINE BLUE-ROOM-F (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<SETG BLUE-ROOM-ENTER-NUMBER <+ ,BLUE-ROOM-ENTER-NUMBER 1>>
<COND (<FSET? ,DEALER ,RMUNGBIT> ;"new dealer"
<MOVE ,TICKET ,DEALER>
<ENABLE <QUEUE I-CHASE -1>>)>
<ENABLE <QUEUE I-BLUE-DOOR 1>>
<TELL
"As you enter, a blue haze of smoke stings your eyeballs." CR CR>)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"In the far " D ,CORNER " of this tented enclosure a thick, undulating cloud
of smoke hovers over a " D ,POKER ". Straight across from you a tight-jawed
dealer stands over a " D ,TABLE " covered with a green floor-length
tablecloth." CR>)
(<EQUAL? .RARG ,M-BEG>
<COND (<AND <NOT <EQUAL? ,BLUE-ROOM-ENTER-NUMBER 1>>
<NOT <FSET? ,DEALER ,RMUNGBIT>>>
<SETG BOUNCE-C <+ ,BOUNCE-C 1>>
<COND (<AND <EQUAL? ,BOUNCE-C 1>
,HELPED-THUMB>
<FSET ,THUMB ,NDESCBIT>
<MOVE ,THUMB ,HERE>)
(<AND <G? ,BOUNCE-C 20>
<EQUAL? ,BLUE-ROOM-ENTER-NUMBER 2>>
<ENABLE <QUEUE KICKED-OUT-FIRST-TIME 1>>)>)
(<AND <G? ,CHASE-C 2>
<OR <TALKING-TO? ,DEALER>
<TALKING-TO? ,CON>
<AND <VERB? GIVE SHOW>
<PRSI? ,DEALER ,CON>>>>
<TELL "You get no response from him." CR>
<SETG P-CONT <>>
<RTRUE>)>
<COND (<VERB? BET>
<COND (<FSET? ,DEALER ,RMUNGBIT>
<COND (<IN? ,DEALER ,HERE>
<TELL "He refuses to deal with you." CR>
<SETG P-IT-OBJECT ,DEALER>)
(T
<TELL "All bets are off." CR>)>
<RTRUE>)
(<PRSO? ,DOLLAR> ;"to dollar-f"
<RFALSE>)
(<OR <PRSO? ,GLOBAL-MONEY>
<OR <ZERO? ,P-AMOUNT>
<NOT ,P-AMOUNT>>>
<SPECIFY-MONEY T>
<RFATAL>)
(<AND <PRSO? ,INTNUM>
<NOT ,P-DOLLAR-FLAG>>;"set to <> in parser"
<SPECIFY-MONEY T>
<RFATAL>)
(<NOT <EQUAL? ,PRSO ,INTNUM ,DOLLAR>>
<TELL "You can only bet money." CR>)
(<L? ,POCKET-CHANGE ,P-AMOUNT>
<TELL "You can't bet more than you have." CR>
<STOP>)
(<AND <G? ,POCKET-CHANGE 30326>
<EQUAL? ,BLUE-ROOM-ENTER-NUMBER 2>>
<TELL
"The " D ,DEALER " examines your winnings.">
<EIGHTY-SIX>)
(<G? 25 ,P-AMOUNT>
;<NOT <EQUAL? ,PRSO ,DOLLAR>>
<TELL "\"The minimum bet is 25 cents.\"" CR>
<STOP>)
(<L? 200 ,P-AMOUNT>
<TELL
"\"No bets over 2 dollars. House rules.\"" CR>)
(T
<COND (<NOT ,BET-ONCE>
<TELL
"The " D ,DEALER " shuffles the four decks and breathes a sigh." CR>)>
<SETG BET-ONCE T>
<COND (<OR <EQUAL? ,BLUE-ROOM-ENTER-NUMBER 2>
<AND ,HELPED-THUMB
<OR <G? ,POCKET-CHANGE 23000>
<L? ,POCKET-CHANGE 401>>>>
<SETG BLUE-ROOM-ENTER-NUMBER 2>
<SETG FORCED-BET T>
<FSET ,THUMB ,NDESCBIT>
<MOVE ,THUMB ,HERE>)>
;<COND (<EQUAL? ,PRSO ,DOLLAR>
<COND (<IS-ADJ? ,W?TWO>
<SETG P-AMOUNT 200>)
(T
<SETG P-AMOUNT 100>)>
<SETG P-DOLLAR-FLAG T>)>
<SETG POCKET-CHANGE <+ ,POCKET-CHANGE
<PLAY-HAND ,P-AMOUNT>>>)>
<RTRUE>)>)>>
<GLOBAL BET-ONCE <>>
<GLOBAL BLUE-ROOM-ENTER-NUMBER 0>
<GLOBAL BOUNCE-C 0> ;"added to in blue-room m-beg, on 1 tapped by
Thumb, on 20 thrown out of blue-room and set to 25."
;"can get by door if dealer-rmungbit (new dealer) set at
I-Thumb as tells of danger."
<GLOBAL THUMB-TAPPED <>>
<ROUTINE KICKED-OUT-FIRST-TIME ()
<COND (<EQUAL? ,HERE ,BLUE-ROOM>
<TELL CR
D ,CON " suddenly emerges from the cloud of smoke in the "
D ,CORNER " and whispers something to the " D ,DEALER ". ">
<EIGHTY-SIX>)>>
<ROUTINE EIGHTY-SIX ()
;<MOVE ,THUMB ,LOCAL-GLOBALS>
<SETG BOUNCE-C 25>
<DISABLE <INT I-CHASE>> ;"dont follow Billy"
<FCLEAR ,BLUE-DOOR ,OPENBIT>
<DISABLE <INT I-BLUE-DOOR>>
<TELL
"The " D ,DEALER " summarily eighty-sixes you from the room." CR CR>
<GOTO ,NOOK>>
<GLOBAL CHASE-C 0>
<GLOBAL DEALER-JOKE <>>
<ROUTINE JOKE-TIME? (GLOB)
<COND (<AND <NOT .GLOB>
<OR <FSET? ,SHAWL ,WORNBIT>
<FSET? ,DRESS ,WORNBIT>>>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE I-CHASE ()
<COND (<AND <L? ,CHASE-C 4> ;"not added to till below"
<NOT <EQUAL? ,HERE ,BLUE-ROOM>>>
<DISABLE <INT I-CHASE>>
<RFALSE>)>
<SETG CHASE-C <+ ,CHASE-C 1>>
<COND (<EQUAL? ,CHASE-C 1>
<TELL
"You notice a different dealer standing behind the " D ,TABLE ". He is
scrutinizing " D ,TICKET ".">
<COND (<JOKE-TIME? ,DEALER-JOKE>
<SETG DEALER-JOKE T>
<TELL
" He glances at you and gives off a look that says, \"I've just about
seen it all now.\"">)>
<CRLF>)
(<EQUAL? ,CHASE-C 2>
<MOVE ,BLACKJACK ,LOCAL-GLOBALS>
<MOVE ,DEALER ,LOCAL-GLOBALS>
<TELL CR
"The " D ,DEALER " gathers up the cards and disappears into the " D ,SMOKE
"." CR>)
(<EQUAL? ,CHASE-C 3>
<MOVE ,CON ,HERE>
<MOVE ,DEALER ,HERE>
<TELL CR
"You see the dealer approaching with " D ,CON "." CR>)
(<EQUAL? ,CHASE-C 4>
<MOVE ,CON ,LOCAL-GLOBALS>
<SETG FOLLOW-FLAG 7>
<ENABLE <QUEUE I-FOLLOW 2>>
;<FSET ,BLUE-DOOR ,OPENBIT>
<ENABLE <QUEUE I-BLUE-DOOR 2>>
<TELL CR
"The pair of thugs hurry up to confront you. ">
<COND (<IN? ,KIESTER ,LOCAL-GLOBALS>
<EIGHTY-SIX>
<RFALSE>)
(<HELD? ,KIESTER>
<MOVE ,KIESTER ,LOCAL-GLOBALS>
<TELL
"Scuffling with you over the " D ,KIESTER ", they manage to wrestle it
away. " D ,CON " shouts \"Hey Rube!\" then">)
(T
<TELL D ,CON " grabs the " D ,KIESTER ",">
<MOVE ,KIESTER ,LOCAL-GLOBALS>)>
<COND (<FSET? ,BLUE-DOOR ,OPENBIT>
<TELL " sights the open">)
(T
<TELL " throws open the">
<FSET ,BLUE-DOOR ,OPENBIT>
<ENABLE <QUEUE I-BLUE-DOOR 2>>)>
<TELL
" panel and bolts through the opening as the dealer ">
<COND (<FSET? ,PINK-BOX ,RMUNGBIT>
<TELL "shoves you away">)
(T
<TELL
"doubles you over with a punch to your midsection">)>
<TELL ,PERIOD>
<RTRUE>)
(<AND <L? ,CHASE-C 8>
<EQUAL? ,HERE ,NOOK>>
<SETG CHASE-C 7>
<SETG FOLLOW-FLAG 15>
<ENABLE <QUEUE I-FOLLOW 2>>
<TELL CR
"You see the silhouette of a man on top of the cage. He throws something bulky
onto the tent, then climbs up after it." CR>
<RTRUE>)
(<G? ,CHASE-C 12>
<DISABLE <INT I-CHASE>>)>>
<OBJECT DEALER
(IN BLUE-ROOM)
(DESC "dealer")
(SYNONYM DEALER MAN)
(ADJECTIVE BLACKJACK TIGHT DIFFERENT NEW)
(FLAGS ACTORBIT PERSON NDESCBIT CONTBIT OPENBIT SEARCHBIT)
(ACTION DEALER-F)>
;"DEALER RMUNGBIT = Change of dealers taken place as Thumb tell you about it"
<ROUTINE DEALER-F ()
<COND (<OR <TALKING-TO? ,DEALER>
<AND <VERB? SHOW GIVE>
<PRSI? ,DEALER>>>
<COND (<FSET? ,DEALER ,RMUNGBIT>
<TELL
"This dealer is even less friendly than the first. He plain ignores you." CR>)
(T
<TELL
"Poker-faced and eagle-eyed, he doesn't ">
<COND (<VERB? HELLO>
<TELL "acknowledge">)
(T
<TELL "respond">)>
<TELL ", but merely gestures for you to bet." CR>)>
<STOP>)
(<VERB? BET>
<SPECIFY-MONEY T>)
(<HURT? ,DEALER>
<TELL "He's bigger than you." CR>)
(<AND <VERB? FOLLOW WALK-TO>
<NOT <IN? ,DEALER ,HERE>>
<EQUAL? ,HERE ,BLUE-ROOM>>
<PERFORM ,V?WALK-TO ,POKER>
<RTRUE>)>>
<ROUTINE WALK-INTO-CON ()
<TELL
"As you approach, " D ,CON>
<COND (<NOT <IN? ,CON ,HERE>>
<TELL " appears and">)>
<TELL " intercepts you">
<COND (<HELD? ,KIESTER>
<MOVE ,KIESTER ,LOCAL-GLOBALS>
<TELL ", snatching away the " D ,KIESTER>)>
<TELL ". ">>
<OBJECT TABLE
(IN BLUE-ROOM)
(DESC "blackjack table")
(SYNONYM TABLECLOTH CLOTH TABLE)
(ADJECTIVE BLACKJACK GREEN)
(FLAGS NDESCBIT)
(ACTION TABLE-F)>
;"TABLE RMUNGBIT = have examined THUMB once"
<ROUTINE TABLE-F ()
<COND (<AND <VERB? LOOK-UNDER MOVE RAISE>
<IN? ,THUMB ,HERE>>
<PERFORM ,V?EXAMINE ,THUMB>
<RTRUE>)
(<VERB? LOOK-UNDER MOVE RAISE>
<COND (<AND <FSET? ,DEALER ,RMUNGBIT>
<FSET? ,KIESTER ,TRYTAKEBIT>>
<MOVE ,KIESTER ,HERE>
<FCLEAR ,KIESTER ,OPENBIT>
<FSET ,KIESTER ,LOCKEDBIT>
<TELL
,YOU-SEE " what appears to be a suitcase under the " D ,TABLE "." CR>)
(T
<V-LOOK-UNDER>
<RTRUE>)>)
(<AND <VERB? PUT-ON>
<PRSI? ,TABLE>>
<COND (<OR <AND <PRSO? ,INTNUM>
,P-DOLLAR-FLAG>
<PRSO? ,GLOBAL-MONEY>>
<PERFORM ,V?BET ,PRSO>
<RTRUE>)
(T
<COND (<IN? ,DEALER ,HERE>
<PERFORM ,V?TAKE ,BLACKJACK>
<RTRUE>)
(T
<V-DIG>)>)>)>>
<OBJECT BLACKJACK
(IN BLUE-ROOM)
(DESC "deck of cards")
(SYNONYM BLACKJACK GAME DECK CARDS) ;"GAME MUST REMAIN SYN. - parser"
(ADJECTIVE BLACKJACK CARD DECKS GRIFT)
(FLAGS NDESCBIT TRYTAKEBIT)
(GENERIC GEN-BLACKJACK-F)
(ACTION BLACKJACK-F)>
<ROUTINE GEN-BLACKJACK-F ()
,BLACKJACK>
<ROUTINE BLACKJACK-F ()
<COND (<VERB? PLAY>
<PERFORM ,V?PUT-ON ,GLOBAL-MONEY ,TABLE>
<RTRUE>)
(<VERB? EXAMINE COUNT>
<TELL "Four decks are being used. They look clean." CR>)
(<VERB? TAKE>
<TELL "The dealer stays " D ,HANDS "." CR>)>>
<OBJECT POKER
(IN LOCAL-GLOBALS) ;"so blackjack will be found if TABLE referred to"
(DESC "poker game")
(SYNONYM POKER GAME TABLE)
(ADJECTIVE POKER)
(FLAGS NDESCBIT)
(GENERIC GEN-BLACKJACK-F)
(ACTION POKER-F)>
<ROUTINE POKER-F ()
<COND (<AND <VERB? WALK-TO PLAY THROUGH>
<EQUAL? ,HERE ,BLUE-ROOM>>
<COND (<IN? ,DEALER ,HERE>
<TELL
"The " D ,DEALER " bars your way, indicating the " D ,POKER "'s private.
Considering the lack of oxygen at the table and the probability of marked
cards, you wouldn't have survived long in the " D ,POKER " anyway." CR>)
(T
<WALK-INTO-CON>
<EIGHTY-SIX>)>)>>
<OBJECT KIESTER
(IN CON)
(DESC "keister")
(SYNONYM KEISTER TRUNK CASE SUITCASE)
(ADJECTIVE SUIT)
(CAPACITY 60)
(SIZE 70)
(FLAGS CONTBIT OPENBIT SEARCHBIT TAKEBIT TRYTAKEBIT NDESCBIT)
(ACTION KIESTER-F)>
<ROUTINE KIESTER-F ()
<COND (<VERB? TAKE OPEN CLOSE PUT>
<COND (<IN? ,KIESTER ,CON>
<TELL
"The " D ,JUNK " klinks together as Billy nonchalantly pushes you
away." CR>)
(<AND <NOT <FSET? ,KIESTER ,TOUCHBIT>>
<VERB? TAKE>>
<FCLEAR ,KIESTER ,TRYTAKEBIT>
<FSET ,KIESTER ,TOUCHBIT>
<MOVE ,KIESTER ,PROTAGONIST>
<TELL
"As you lift it, you can hear a muffled scream from inside." CR>)
(T
<RFALSE>)>)>>
<OBJECT JUNK
(IN KIESTER)
(DESC "jumble of trinkets")
(SYNONYM JUMBLE TRINKET)
(FLAGS TRYTAKEBIT)
(GENERIC GEN-FOOD)
(ACTION JUNK-F)>
<ROUTINE JUNK-F ()
<COND (<AND <EQUAL? ,HERE ,MIDWEST>
<VERB? BUY TAKE>>
<PERFORM ,PRSA ,FLASK>
<RTRUE>)>>
<OBJECT FLASK
(IN LOCAL-GLOBALS)
(DESC
"Dr. Nostrum's Prehydrogenated Genuine Preparation of Naturally Nitrated
Compound Herbified Extract")
(SYNONYM EXTRACT NOSTRUM FLASK ;BOTTLE LABEL)
(ADJECTIVE DR PREPARATION PREHYDRO GENUINE NATURALLY NITRATED COMPOUND
HERBIFIED)
(FLAGS TRYTAKEBIT NDESCBIT NARTICLEBIT)
(ACTION FLASK-F)>
<ROUTINE FLASK-F ()
<COND (<VERB? OPEN CLOSE>
<TELL "There's no cap." CR>)
(<VERB? LOOK-INSIDE EXAMINE>
<TELL "It looks like pretty potent stuff." CR>)
(<AND <IN? ,DICK ,MIDWEST>
<NOT ,DICK-DRUNK>>
<COND (<VERB? DRINK-FROM DRINK TAKE READ MOVE>
<TELL
"You're interfering with the hospitality that " D ,CON " is paying the "
D ,DICK ". Billy shoves you away, and his " D ,JUNK " clinks together
in his " D ,KIESTER "." CR>)
(<VERB? BUY>
<TELL
"\"I'm sorry, we're fresh out,\" the pitchman ">
<TELL-GRIN>
<CRLF>)>)
(<VERB? READ>
<TELL
"It's the usual ballyhoo for " D ,FLASK "." CR>)
(<VERB? DRINK-FROM DRINK TAKE READ MOVE>
<COND (<IN? ,FLASK ,JOEY>
<TAKE-FLASK-RAG>
<RTRUE>)
(<IN? ,FLASK ,DICK>
<TELL
"The " D ,DICK ", being dead drunk, has a rigor mortis grip on it." CR>)>)>>
<OBJECT RAG
(IN LOCAL-GLOBALS)
(DESC "dirty rag")
(SYNONYM RAG)
(ADJECTIVE DIRTY)
(FLAGS TRYTAKEBIT)
(ACTION RAG-F)>
;"RMUNGBIT = tried to take it or flask first time"
<ROUTINE RAG-F ()
<COND (<VERB? TAKE>
<TAKE-FLASK-RAG>
<RTRUE>)>>
<ROUTINE TAKE-FLASK-RAG ()
<TELL
"Chuckles pulls back">
<ARTICLE ,PRSO T>
<TELL ". ">
<COND (<NOT <FSET? ,RAG ,RMUNGBIT>>
<FSET ,RAG ,RMUNGBIT>
<TELL
"\"Why do all the towners think they can get away with harassing
us poor innocent clowns?\"">)>
<CRLF>>