wishbringer-gold/center.zil
2019-04-18 21:34:52 -04:00

2864 lines
72 KiB
Plaintext

"CENTER for WISHBRINGER: (C)1985 Infocom, Inc. All rights reserved."
"*** ROTARY EAST (THEATER) ***"
<OBJECT ROTARY-EAST
(IN ROOMS)
(DESC "Rotary East")
(FLAGS ONBIT RLANDBIT)
(GLOBAL MOVIE-THEATER ENTRANCE CORNER GLOBBY)
(NORTH TO ROTARY-NORTH)
(EAST PER ENTER-PLEASURE-WHARF)
(SOUTH PER ENTER-ROTARY-SOUTH)
(WEST TO PARK)
(IN PER ENTER-THEATER?)
(PSEUDO "ROTARY" HERE-F)
(ACTION ROTARY-EAST-F)>
<ROUTINE ENTER-THEATER? ()
<COND (,SKEWED?
<COND (<FSET? ,TICKET ,RMUNGBIT>
<TELL "\"You won't get far without a " D ,TICKET
"!\" cries " D ,MISS-VOSS "." CR CR>)>
<COND (<DIGGER-PISSED?>
<RFALSE>)
(T
<COND (<NOT <ENABLED? ,I-FILM>>
<ENABLE <QUEUE I-FILM -1>>)>
<THIS-IS-IT ,TICKET>
<RETURN ,LOBBY>)>)
(T
<ITS-CLOSED ,MOVIE-THEATER>
<RFALSE>)>>
<ROUTINE DIGGER-PISSED? ()
<THIS-IS-IT ,GRAVEDIGGER>
<COND (<FSET? ,GRAVEDIGGER ,RMUNGBIT>
<COND (<ENABLED? ,I-FILM>
<STOP-FILM>)>
<SETG NO-MOVIE? T>
<TELL "As you appear in the " D ,GLOBBY " the " D ,GRAVEDIGGER
" promptly throws you ">
<COND (<EQUAL? ,HERE ,ROTARY-EAST>
<TELL "back">)
(T
<TELL "out">)>
<TELL " into the street. \"Sneak past me, eh? Scram!\"" CR CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE ROTARY-EAST-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "You're on the eastern side of the">
<WHICH-TOWN "Rotary">
<TELL ". A street branches off " <TO-E> ", towards the bay.|
|
On the " D ,CORNER " nearby stands a ">
<COND (,SKEWED?
<TELL "sleazy">)
(T
<TELL "charming">)>
<TELL " little " D ,MOVIE-THEATER ". Showtimes and admission prices are listed on a " D ,SCHEDULE " near the">
<OPEN-CLOSED ,ENTRANCE>
<TELL D ,ENTRANCE ", and a " D ,MARQUEE
" announces the current feature.">
<COND (,SKEWED?
<CRLF>
<CRLF>
<LIBRARIAN>
<TELL ", is peering at you suspiciously.">)>
<CRLF>)>>
<OBJECT MOVIE-THEATER
(IN LOCAL-GLOBALS)
(DESC "movie theater")
(SYNONYM THEATER THEATRE CINEMA BUILDING)
(ADJECTIVE MOVIE SLEAZY CHARMING PALACE)
(FLAGS NDESCBIT)
(ACTION MOVIE-THEATER-F)>
<ROUTINE MOVIE-THEATER-F ()
<COND (<VERB? EXAMINE>
<TELL "It looks like ">
<COND (,SKEWED?
<TELL "it ought to be condemned">)
(T
<TELL "the perfect place to enjoy an old movie">)>
<TELL "." CR>
<RTRUE>)
(<VERB? SEARCH>
<COND (<EQUAL? ,HERE ,INSIDE-THEATER>
<PERFORM ,V?LOOK-UNDER ,SEAT>
<RTRUE>)
(T
<RFALSE>)>)
(<VERB? WALK-TO ENTER THROUGH>
<COND (<EQUAL? ,HERE ,ROTARY-EAST ,LOBBY>
<DO-WALK ,P?IN>)
(T
<ALREADY-IN ,MOVIE-THEATER>)>
<RTRUE>)
(<VERB? EXIT>
<COND (<EQUAL? ,HERE ,LOBBY ,INSIDE-THEATER>
<DO-WALK ,P?OUT>)
(T
<ALREADY-IN ,MOVIE-THEATER T>)>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,ROTARY-EAST>
<COND (<FSET? ,ENTRANCE ,OPENBIT>
<GO-INSIDE>)
(T
<ITS-CLOSED ,ENTRANCE>)>)
(T
<V-LOOK>)>
<RTRUE>)
(<AND <EQUAL? ,HERE ,INSIDE-THEATER>
,MOVIE-VISIBLE?>
<IMAGE? ,MOVIE-THEATER>
<RFATAL>)
(<ENTRANCE-F>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT MARQUEE
(IN ROTARY-EAST)
(DESC "marquee")
(SYNONYM MARQUEE)
(FLAGS READBIT NDESCBIT)
(ACTION MARQUEE-F)>
<ROUTINE MARQUEE-F ()
<COND (<VERB? EXAMINE READ>
<COND (,SKEWED?
<FIXED-FONT-ON>
<TELL CR
" Now Playing!|
THE ONE IS WATCHING!|
starring|
THE EVIL ONE|
in|
Amazing 3-D!" CR>
<FIXED-FONT-OFF>)
(T
<SAY-THE ,MARQUEE>
<TELL " shows an outline of">
<BOSS>
<TELL
", triumphantly stepping on the face of a helpless mail clerk. Underneath are the words \"">
<COND (<FSET? ,ENVELOPE ,RMUNGBIT> ; "Given?"
<TELL
"Have You Delivered That Envelope Yet?">)
(T
<TELL
"You Forgot Something At The " D ,POST-OFFICE "!">)>
<TELL "\" in big red letters." CR>)>
<RTRUE>)
(<HURT? ,MARQUEE>
<MUNG-THEATER>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT ENTRANCE
(IN LOCAL-GLOBALS)
(DESC "entrance")
(SYNONYM ENTRANCE ENTRY DOOR LOCK)
; (ADJECTIVE THEATER)
(FLAGS DOORBIT LOCKEDBIT NDESCBIT)
(ACTION ENTRANCE-F)>
<ROUTINE ENTRANCE-F ()
<COND (<VERB? EXAMINE>
<COND (<FSET? ,ENTRANCE ,OPENBIT>
<TELL "It's open." CR>)
(T
<ITS-CLOSED ,ENTRANCE>)>
<RTRUE>)
(<VERB? OPEN>
<COND (,SKEWED?
<ALREADY-OPEN>)
(T
<ITS-CLOSED ,ENTRANCE>)>
<RTRUE>)
(<VERB? CLOSE>
<COND (,SKEWED?
<MUNG-THEATER>)
(T
<ITS-CLOSED ,ENTRANCE>)>
<RTRUE>)
(<USE-DOOR? ,ROTARY-EAST>
<RTRUE>)
(<HURT? ,ENTRANCE>
<MUNG-THEATER>
<RTRUE>)
(T
<YOU-DONT-NEED ,ENTRANCE>
<RFATAL>)>>
<ROUTINE MUNG-THEATER ()
<TELL "The people who own the " D ,MOVIE-THEATER>
<MIGHT-NOT-LIKE>>
<OBJECT TICKET
(DESC "ticket")
(SYNONYM TICKET STUB)
(ADJECTIVE MOVIE)
(FLAGS NDESCBIT TAKEBIT RMUNGBIT)
(VALUE 0)
(SIZE 1)
(ACTION TICKET-F)>
; "RMUNGBIT = ticket not bought, TOOLBIT = ticket given to gravedigger"
<ROUTINE TICKET-F ()
<COND (<AND <VERB? BUY>
<EQUAL? ,PRSO ,TICKET>>
<COND (<OR <NOT ,SKEWED?>
<NOT <IN? ,MISS-VOSS ,HERE>>>
<TELL "There's nobody here to sell you one." CR>)
(,PRSI
<COND (<EQUAL? ,PRSI ,COIN>
<PERFORM ,V?GIVE ,COIN ,MISS-VOSS>)
(T
<NOT-LIKELY ,MISS-VOSS "would accept that">)>)
(<HELD? ,COIN>
<WITH-COIN>
<PERFORM ,V?GIVE ,COIN ,MISS-VOSS>)
(T
<NO-MONEY>)>
<RTRUE>)
(<AND ,SKEWED?
<IN? ,TICKET ,MISS-VOSS>>
<TELL "You'll have to buy one from ">
<COND (<EQUAL? ,HERE ,ROTARY-EAST>
<PRINTD ,MISS-VOSS>)
(T
<TELL "somebody">)>
<TELL "." CR>
<RTRUE>)
(<VERB? EXAMINE READ>
<TELL "It's an ordinary " D ,TICKET ", number 802701." CR>
<RTRUE>)
(<HURT? ,TICKET>
<RUIN ,TICKET>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT LOBBY
(IN ROOMS)
(DESC "Theater Lobby")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL MOVIE-THEATER ENTRANCE CORNER CORRIDOR GLOBBY SCREEN)
(NORTH PER ENTER-AUDITORIUM?)
(OUT PER EXIT-LOBBY)
(IN PER ENTER-AUDITORIUM?)
(ACTION LOBBY-F)>
<ROUTINE LOBBY-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<STANDING>
<TELL
"in the " D ,GLOBBY " of the " D ,MOVIE-THEATER ". A short " D ,CORRIDOR " leads north into ">
<COND (<L? ,MOVIE-SCRIPT 6>
<TELL D ,DARKNESS ". Sound effects and music can be heard drifting down the " D ,CORRIDOR>)
(T
<TELL "silent " D ,DARKNESS>)>
<TELL "." CR CR>
<SAY-THE ,GRAVEDIGGER>
<TELL " is standing near the " D ,CORRIDOR
", a large cardboard " D ,CARTON " at his feet." CR>)>>
<ROUTINE EXIT-LOBBY ()
<COND (,ECLIPSE?
<SAY-THE ,GRAVEDIGGER>
<DIGGER-STUMBLES>
<RFALSE>)
(<AND <FSET? ,TICKET ,TOOLBIT>
<FSET? ,GLOBBY ,TOUCHBIT>>
<SAY-SURE>
<TELL "leave the " D ,MOVIE-THEATER "? The " D ,GRAVEDIGGER
" might not let you in again without another "
D ,TICKET "!">
<COND (<YES?>
<FCLEAR ,GLOBBY ,TOUCHBIT>
<SETG NO-MOVIE? T>
<STOP-FILM>
<TELL "\"Come again!\" sneers the " D ,GRAVEDIGGER
" as you leave." CR CR>)
(T
<TELL ,OKAY "you're still in the " D ,GLOBBY "." CR>
<RFALSE>)>)>
<RETURN ,ROTARY-EAST>>
<OBJECT GLOBBY
(IN LOCAL-GLOBALS)
(DESC "lobby")
(SYNONYM LOBBY)
(FLAGS NDESCBIT TOUCHBIT)
(ACTION GLOBBY-F)>
; "TOUCHBIT = no lobby warning given"
<ROUTINE GLOBBY-F ()
<COND (<VERB? ENTER WALK-TO THROUGH>
<COND (<EQUAL? ,HERE ,ROTARY-EAST>
<DO-WALK ,P?IN>)
(<EQUAL? ,HERE ,INSIDE-THEATER>
<DO-WALK ,P?OUT>)
(T
<ALREADY-IN ,GLOBBY>)>
<RTRUE>)
(<VERB? EXIT LEAVE>
<COND (<EQUAL? ,HERE ,INSIDE-THEATER>
<DO-WALK ,P?OUT>)
(<EQUAL? ,HERE ,LOBBY>
<V-WALK-AROUND>)
(T
<ALREADY-IN ,GLOBBY T>)>)
(<NOT <EQUAL? ,HERE ,LOBBY>>
<YOUD-HAVE-TO "go into" ,GLOBBY>
<RFATAL>)
(<VERB? EXAMINE LOOK-INSIDE>
<V-LOOK>
<RTRUE>)
(T
<YOU-DONT-NEED ,GLOBBY>
<RFATAL>)>>
<GLOBAL NO-MOVIE? T>
<GLOBAL MOVIE-STATUS T>
<ROUTINE ENTER-AUDITORIUM? ()
<SAY-THE ,GRAVEDIGGER>
<COND (,ECLIPSE?
<COND (<FSET? ,TICKET ,TOOLBIT>
<DIGGER-STUMBLES>
<RFALSE>)
(T
<TELL " cries, \"Don't leave me alone!\"">
<FSET ,GRAVEDIGGER ,RMUNGBIT>)>)
(T
<COND (,NO-MOVIE?
<TELL " blocks your path. \""
<PICK-ONE ,NO-ENTERS> ".\"" CR>
<RFALSE>)
(T
<TELL " nods as you pass.">)>)>
<CRLF>
<CRLF>
<RETURN ,INSIDE-THEATER>>
<ROUTINE DIGGER-STUMBLES ()
<TELL " stumbles into your path. \"Help! It's dark!\"" CR>>
<GLOBAL NO-ENTERS
<LTABLE 0
"Ticket, please"
"Can't get in without a ticket"
"No ticket, no movie">>
<OBJECT CARTON
(IN LOBBY)
(DESC "carton")
(SYNONYM CARTON BOX)
(ADJECTIVE CARDBOARD)
(FLAGS READBIT TRYTAKEBIT NDESCBIT CONTBIT OPENBIT)
(CAPACITY 10)
(ACTION CARTON-F)>
<GLOBAL LOOKED-IN-CARTON? <>>
<ROUTINE CARTON-F ()
<COND (<VERB? EXAMINE READ LOOK-ON>
<TELL
"The open " D ,CARTON " is marked, \"Free 3D Movie Glasses Here!\"" CR>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<COND (<FIRST? ,CARTON>
<TELL ,YOU-SEE>
<PRINT-CONTENTS ,CARTON>
<TELL " inside">)
(T
<TELL "It's empty">)>
<TELL "." CR>
<COND (<NOT ,LOOKED-IN-CARTON?>
<SETG LOOKED-IN-CARTON? T>
<CRLF>
<SAY-THE ,GRAVEDIGGER>
<TELL
" sees your disappointment, shrugs and mumbles something unkind about newfangled thingamabobs." CR>)>
<RTRUE>)
(<AND <VERB? PUT THROW>
<EQUAL? ,PRSI ,CARTON>>
<COND (<G? <GETP ,PRSO ,P?SIZE> 10>
<TOO-LARGE ,PRSO>)
(<EQUAL? ,PRSO ,TICKET>
<PERFORM ,V?GIVE ,TICKET ,GRAVEDIGGER>
<RTRUE>)
(T
<SAY-THE ,GRAVEDIGGER>
<TELL " pulls ">
<ARTICLE ,PRSO T>
<TELL D ,PRSO " out of the " D ,CARTON " and hands it back to you. \"Keep it,\" he mutters." CR>)>
<RTRUE>)
(<OR <HURT? ,CARTON>
<AND <VERB? TAKE>
<EQUAL? ,PRSO ,CARTON>>>
<SAY-THE ,GRAVEDIGGER>
<MIGHT-NOT-LIKE>
<RTRUE>)
(<VERB? CLOSE>
<TELL "There's no lid." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT SCHEDULE
(IN ROTARY-EAST)
(DESC "schedule")
(SYNONYM SCHEDULE LIST SHOWTIMES PRICES)
(ADJECTIVE ADMISSION TIMES)
(FLAGS NDESCBIT READBIT)
(ACTION SCHEDULE-F)>
<ROUTINE SCHEDULE-F ()
<COND (<VERB? READ EXAMINE>
<SAY-THE ,SCHEDULE>
<TELL " says:" CR CR>
<FIXED-FONT-ON>
<COND (,SKEWED?
<TELL " OPEN ALL NIGHT!">)
(T
<TELL " EVENINGS AT 7 & 9">)>
<TELL CR "ALL SHOWS ONE GOLD COIN" CR>
<FIXED-FONT-OFF>
<RTRUE>)
(<HURT? ,SCHEDULE>
<MUNG-THEATER>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT INSIDE-THEATER
(IN ROOMS)
(DESC "Inside Theater")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL MOVIE-THEATER CORRIDOR GLOBBY AISLE SCREEN)
(OUT PER EXIT-AUDITORIUM?)
(SOUTH PER EXIT-AUDITORIUM?)
(ACTION INSIDE-THEATER-F)>
<ROUTINE INSIDE-THEATER-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"This is a " D ,MOVIE-THEATER " unlike any you've ever seen! The seats are wide, deep and comfortable. The aisles are spotless. The air is clear of smoke, and the screen is dramatically large. A chill goes up your spine as you realize how alien your universe has become." CR CR>
<COND (<OR <EQUAL? ,MOVIE-SCRIPT 6>
,ECLIPSE?>
<SAY-THE ,MOVIE-THEATER>
<TELL " screen is dark and silent">)
(T
<TELL "There's a noisy movie playing on the screen">)>
<TELL
". A dark " D ,CORRIDOR " leads out to the " D ,GLOBBY "." CR>)>>
<OBJECT SEAT
(IN INSIDE-THEATER)
(DESC "seat")
(SYNONYM SEAT SEATS CHAIR CHAIRS)
(FLAGS NDESCBIT SURFACEBIT)
(CAPACITY 10)
(ACTION SEAT-F)>
; "TOOLBIT = sitting"
<ROUTINE SEAT-F ()
<COND (<VERB? EXAMINE>
<TELL "They look really comfortable." CR>
<RTRUE>)
(<AND <VERB? LOOK-INSIDE LOOK-ON>
<FSET? ,SEAT ,TOOLBIT>>
<ALREADY-IN ,SEAT>
<RTRUE>)
(<VERB? SIT CLIMB-ON ENTER>
<COND (<FSET? ,SEAT ,TOOLBIT>
<ALREADY-IN ,SEAT>
<RTRUE>)
(<FIRST? ,SEAT>
<TELL "You'll have to clear it off first.">)
(T
<FSET ,SEAT ,TOOLBIT>
<TELL
"Done. The seat is even more comfortable than it looks.">)>
<CRLF>
<RTRUE>)
(<VERB? STAND EXIT TAKE-OFF>
<COND (<FSET? ,SEAT ,TOOLBIT>
<FCLEAR ,SEAT ,TOOLBIT>
<TELL
"With a reluctant sigh, you rise from the comfortable seat.">)
(T
<TELL "But you're already standing!">)>
<CRLF>
<RTRUE>)
(<VERB? LOOK-UNDER SEARCH>
<COND (<FSET? ,GLASSES ,RMUNGBIT>
<FCLEAR ,GLASSES ,RMUNGBIT>
<MOVE ,GLASSES ,INSIDE-THEATER>)>
<COND (<NOT <FSET? ,GLASSES ,TOUCHBIT>>
<TELL "Hmm. This place isn't completely spotless. You just discovered a used " D ,GLASSES " under a seat." CR>)
(T
<RFALSE>)>)
(<OR <HURT? ,SEAT>
<VERB? STAND-ON LIE-DOWN>>
<MUNG-THEATER>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT AISLE
(IN LOCAL-GLOBALS)
(DESC "aisle")
(SYNONYM AISLE AISLES)
(FLAGS NDESCBIT)
(ACTION AISLE-F)>
<ROUTINE AISLE-F ()
<COND (<GROUND-F>
<RTRUE>)
(T
<YOU-DONT-NEED ,AISLE>
<RFATAL>)>>
<ROUTINE EXIT-AUDITORIUM? ()
<COND (<FSET? ,SEAT ,TOOLBIT>
<YOUD-HAVE-TO "get out of" ,SEAT>
<RFALSE>)
(<AND <IN? ,GLASSES ,PROTAGONIST>
<FSET? ,GLASSES ,WORNBIT>>
<SETG FUZZY-FROM ,LOBBY>
<SETG FUZZY? T>
<RETURN ,FUZZY>)
(<DIGGER-PISSED?>
<RETURN ,ROTARY-EAST>)
(T
<RETURN ,LOBBY>)>>
<ROUTINE CHEAP-GLASSES ()
<TELL " a cheap pair of sunglasses." CR>>
<OBJECT GLASSES
(DESC "pair of 3D glasses")
(SYNONYM GLASSES SPECTACLES SUNGLASSES PAIR)
(ADJECTIVE 3D CHEAP)
(FLAGS TAKEBIT WEARBIT RMUNGBIT)
(VALUE 3)
(SIZE 3)
(ACTION GLASSES-F)>
; "RMUNGBIT = glasses not yet found"
<ROUTINE GLASSES-F ()
<THIS-IS-IT ,GLASSES>
<COND (<VERB? EXAMINE>
<TELL "They resemble">
<CHEAP-GLASSES>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<COND (<DONT-HAVE? ,GLASSES>
<RTRUE>)>
<TELL "It's like peering through">
<CHEAP-GLASSES>
<RTRUE>)
(<AND <VERB? LOOK-THRU>
<EQUAL? ,PRSI ,GLASSES>>
<COND (<DONT-HAVE? ,GLASSES>
<RTRUE>)
(<NOT <FSET? ,GLASSES ,WORNBIT>>
<YOUD-HAVE-TO "be wearing" ,GLASSES>
<RTRUE>)>
<PERFORM ,V?EXAMINE ,PRSO>
<RTRUE>)
(<AND <VERB? FIND>
<EQUAL? ,HERE ,LOBBY ,INSIDE-THEATER>
<FSET? ,GLASSES ,RMUNGBIT>>
<TELL
"You don't see any here. But somebody may have dropped a pair nearby." CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE BLANK-SCREEN ()
<SAY-THE ,SCREEN>
<TELL " is blank and silent." CR>>
<OBJECT SCREEN
(IN LOCAL-GLOBALS)
(DESC "movie screen")
(SYNONYM SCREEN FILM SHOW MOVIE)
(ADJECTIVE SOUNDTRACK IMAGE PICTUR)
(FLAGS NDESCBIT)
(ACTION SCREEN-F)>
<ROUTINE SCREEN-F ()
<COND (<VERB? LISTEN>
<PERFORM ,V?LISTEN ,SOUND>
<RTRUE>)
(<EQUAL? ,HERE ,LOBBY>
<CANT-SEE-ANY>
<RFATAL>)
(<VERB? EXAMINE LOOK-ON>
<COND (<NOT <ENABLED? ,I-FILM>>
<BLANK-SCREEN>)>
<SETG NO-CR? T>
<RTRUE>)
(<HURT? ,SCREEN>
<MUNG-THEATER>
<RTRUE>)
(T
<RFALSE>)>>
<GLOBAL MOVIE-SCRIPT 0>
<GLOBAL MOVIE-VISIBLE? <>>
<GLOBAL NO-CR? <>>
<ROUTINE I-FILM ()
<COND (<EQUAL? ,HERE ,INSIDE-THEATER>
<COND (<FSET? ,GLASSES ,WORNBIT>
<SETG MOVIE-SCRIPT <+ ,MOVIE-SCRIPT 1>>
<COND (,NO-CR?
<SETG NO-CR? <>>)
(T
<CRLF>)>
<SETG MOVIE-VISIBLE? T>
<COND (<EQUAL? ,MOVIE-SCRIPT 1>
<MOVE ,SCOPE ,HERE>
<FCLEAR ,SCOPE ,TRYTAKEBIT>
<MOVE ,CHEMICALS ,HERE>
<FCLEAR ,CHEMICALS ,TRYTAKEBIT>
<MOVE ,EVIL-ONE ,HERE>
<FCLEAR ,EVIL-ONE ,ACTORBIT>
<SAY-THE ,SCREEN>
<TELL
" shows an evil woman squinting through an " D ,SCOPE
". A laboratory full of bubbling 3D " D ,CHEMICALS
" is visible in the back" D ,GROUND>)
(<EQUAL? ,MOVIE-SCRIPT 2>
<MOVE ,VULTURE ,INSIDE-THEATER>
<FCLEAR ,VULTURE ,ACTORBIT>
<FCLEAR ,VULTURE ,TRYTAKEBIT>
<TELL
"A 3D " D ,VULTURE " lands on the woman's shoulder and croaks a secret into her ear. An evil eyebrow rises slowly as she listens">)
(<EQUAL? ,MOVIE-SCRIPT 3>
<SAY-THE ,OLD-WOMAN>
<TELL
" swings the 3D " D ,SCOPE " around (narrowly missing your nose) and peers into it again. A point-of-view shot reveals what the 'scope is focused on: a small " D ,MOVIE-THEATER ", remarkably similar to the one you're in right now">)
(<EQUAL? ,MOVIE-SCRIPT 4>
<MOVE ,MISS-VOSS ,INSIDE-THEATER>
<FCLEAR ,MISS-VOSS ,ACTORBIT>
<SAY-THE ,SCOPE>
<TELL " zooms in on the " D ,ENTRANCE " to the "
D ,MOVIE-THEATER ". A dead ringer for " D ,MISS-VOSS " looks up and waves timidly at the camera">)
(<EQUAL? ,MOVIE-SCRIPT 5>
<MOVE ,MISS-VOSS ,ROTARY-EAST>
<FSET ,MISS-VOSS ,ACTORBIT>
<MOVE ,PANEL ,HERE>
<FCLEAR ,PANEL ,TRYTAKEBIT>
<MOVE ,SW2 ,HERE>
<FCLEAR ,SW2 ,TRYTAKEBIT>
<MOVE ,SW1 ,HERE>
<FCLEAR ,SW1 ,TRYTAKEBIT>
<MOVE ,KITTY ,HERE>
<FSET ,KITTY ,NDESCBIT>
<FCLEAR ,KITTY ,ACTORBIT>
<FCLEAR ,KITTY ,TAKEBIT>
<PUTP ,KITTY ,P?DESCFCN <>>
<SAY-THE ,OLD-WOMAN>
<TELL " stalks across the lab to a panel of heavy-duty power switches. As the camera follows, you catch a fleeting 3D glimpse of a " D ,KITTY " sleeping in the " D ,CORNER " of the lab">)
(<EQUAL? ,MOVIE-SCRIPT 6>
<STOP-FILM>
<FSET ,SW1 ,OPENBIT>
<SAY-THE ,OLD-WOMAN>
<TELL
" selects a power switch labeled \"Palace Theater\" and opens it with a diabolical cackle. A 3D arc of electricity leaps from the screen, and a shower of sparks seems to engulf the "
D ,MOVIE-THEATER "...|
|
Poof! The image on the screen goes black. The soundtrack slowly grinds to a halt">)>
<TELL "." CR>)
(T
<SETG MOVIE-VISIBLE? <>>
<TELL CR <PICK-ONE ,FUZZIES> "." CR>)>)>>
<GLOBAL FUZZIES
<LTABLE 0
"All you can see on the screen is a confusing double-image"
"The picture on the screen is fuzzy and hard to watch"
"The screen image is a meaningless blur of colored light">>
<ROUTINE STOP-FILM ()
<FCLEAR ,INSIDE-THEATER ,ONBIT>
<DISABLE <INT I-FILM>>
<SETG MOVIE-VISIBLE? <>>
<COND (<IN? ,VULTURE ,INSIDE-THEATER>
<FSET ,VULTURE ,ACTORBIT>
<FSET ,VULTURE ,TRYTAKEBIT>
<REMOVE ,VULTURE>)>
<COND (<IN? ,MISS-VOSS ,INSIDE-THEATER>
<FSET ,MISS-VOSS ,ACTORBIT>
<MOVE ,MISS-VOSS ,ROTARY-EAST>)>
<COND (<IN? ,KITTY ,INSIDE-THEATER>
<MOVE ,KITTY ,LABORATORY>
<FSET ,KITTY ,ACTORBIT>
<FSET ,KITTY ,TAKEBIT>
<FCLEAR ,KITTY ,NDESCBIT>
<PUTP ,KITTY ,P?DESCFCN ,DESCRIBE-KITTY>
<MOVE ,PANEL ,LABORATORY>
<FSET ,PANEL ,TRYTAKEBIT>
<MOVE ,SW2 ,LABORATORY>
<FSET ,SW2 ,TRYTAKEBIT>
<MOVE ,SW1 ,LABORATORY>
<FSET ,SW1 ,TRYTAKEBIT>)>
<MOVE ,CHEMICALS ,LABORATORY>
<FSET ,CHEMICALS ,TRYTAKEBIT>
<REMOVE ,EVIL-ONE>
<FSET ,EVIL-ONE ,ACTORBIT>
<MOVE ,SCOPE ,LABORATORY>
<FSET ,SCOPE ,TRYTAKEBIT>>
"*** PARK ***"
<OBJECT PARK
(IN ROOMS)
(DESC "Park")
(FLAGS ONBIT RLANDBIT WETBIT)
(GLOBAL TREE)
(NORTH TO ROTARY-NORTH)
(EAST TO ROTARY-EAST)
(SOUTH PER ENTER-ROTARY-SOUTH)
(WEST TO ROTARY-WEST)
(ACTION PARK-F)
(PSEUDO "WALKS" HERE-F "ROTARY" HERE-F)>
<ROUTINE PARK-F ("OPTIONAL" (CONTEXT <>))
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<STANDING>
<TELL "in a circular park, surrounded by the">
<WHICH-TOWN "Rotary">
<TELL ". Walks converge from four directions on a ">
<COND (,SKEWED?
<TELL "neglected">)
(T
<TELL "shallow">)>
<TELL " marble " D ,FOUNTAIN ", filled with ">
<COND (,SKEWED?
<TELL "greasy">)
(T
<TELL "sparkling">)>
<TELL " water.|
|
A " D ,STATUE " stands in the middle of the " D ,FOUNTAIN "." CR>)
(T
<RFALSE>)>>
<OBJECT FOUNTAIN
(IN PARK)
(DESC "fountain")
(SYNONYM FOUNTAIN WATER)
(ADJECTIVE MARBLE SPARKLING GREASY)
(FLAGS NDESCBIT CONTBIT OPENBIT)
(CAPACITY 50)
(ACTION FOUNTAIN-F)
(CONTFCN IN-FOUNTAIN)>
<ROUTINE FOUNTAIN-F ()
<COND (<GETTING-INTO?>
<TELL "You'd get soaked">
<IF-YOU-TRIED>
<RTRUE>)
(<AND <VERB? PUT PUT-ON THROW>
<EQUAL? ,PRSI ,FOUNTAIN>>
<COND (,SKEWED?
<PERFORM ,V?GIVE ,PRSO ,PIRANHA>)
(T
<PERFORM ,V?GIVE ,PRSO ,GOLDFISH>)>
<RTRUE>)
(<VERB? OPEN CLOSE>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(<VERB? DRINK TASTE>
<WATER-DIRTY>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE IN-FOUNTAIN (CONTEXT)
<COND (<AND <EQUAL? .CONTEXT ,M-CONT>
,SKEWED?
<NOT <EQUAL? ,PRSO ,PIRANHA>>
<OR <VERB? TAKE>
<TOUCHING? ,PRSO>>>
<COND (<FSET? ,PIRANHA ,RMUNGBIT>
<SNAPPY>
<RTRUE>)
(<EQUAL? ,PRSO ,BOTTLE>
<SNAPPY>
<SETG PIRANHA-SCRIPT 1>
<I-PIRANHA-SNACK>)
(T
<RFALSE>)>)
(T
<RFALSE>)>>
<ROUTINE SNAPPY ()
<SAY-THE ,PIRANHA>
<TELL " " <PICK-ONE ,NIPS> "." CR>>
<GLOBAL NIPS
<LTABLE 0
"nips savagely at your fingertips"
"tries to bite your hand"
"snaps at your fingers">>
<OBJECT COIN
(IN FOUNTAIN)
(DESC "gold coin")
(FDESC 0)
(SYNONYM COIN GOLD MONEY)
(ADJECTIVE GOLD PROFILE)
(FLAGS NDESCBIT TAKEBIT)
(ACTION COIN-F)
(VALUE 1)
(SIZE 1)>
<ROUTINE COIN-F ()
<COND (<IN? ,COIN ,TROLL>
<TELL ,CANT ". ">
<SAY-THE ,TROLL>
<TELL " has it." CR>
<RFATAL>)
(<VERB? EXAMINE>
<SAY-THE ,COIN>
<TELL " is etched with a">
<SAY-PROFILE>
<TELL "." CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE SAY-PROFILE ()
<TELL " profile of ">
<FATHERS>>
<ROUTINE FATHERS ()
<TELL "one of Festeron's founding fathers">>
<OBJECT GOLDFISH
(IN FOUNTAIN)
(DESC "goldfish")
(SYNONYM GOLDFISH FISH)
(ADJECTIVE GOLD)
(FLAGS NDESCBIT TRYTAKEBIT ACTORBIT)
(ACTION GFISH-F)>
<OBJECT PIRANHA
(DESC "piranha")
(SYNONYM PIRANHA FISH)
(FLAGS NDESCBIT TRYTAKEBIT ACTORBIT RMUNGBIT)
(ACTION GFISH-F)>
; "RMUNGBIT = piranha not eating"
<ROUTINE GFISH-F ()
<COND (<VERB? EXAMINE>
<SAY-THE ,PRSO>
<COND (,SKEWED?
<TELL " stares back at you defiantly">
<COND (<NOT ,ECLIPSE?>
<TELL ", its ">
<SHARP-TEETH>
<TELL " gleaming in the moonlight">)>)
(T
<TELL " swims shyly away as you stare at it">)>
<TELL "." CR>
<RTRUE>)
(<AND <VERB? TAKE>
<EQUAL? ,PRSO ,GOLDFISH ,PIRANHA>>
<SAY-THE ,PRSO>
<COND (,SKEWED?
<TELL " would probably bite off one of your fingers">
<IF-YOU-TRIED>)
(T
<TELL " quickly swims out of reach." CR>)>
<RTRUE>)
(<AND <VERB? GIVE THROW FEED SWING>
<EQUAL? ,PRSI ,GOLDFISH ,PIRANHA>>
<COND (<EQUAL? ,PRSO ,BROOM>
<GET-OFF-BROOM-FIRST>)>
<MOVE ,PRSO ,FOUNTAIN>
<TELL "It lands in the " D ,FOUNTAIN " with a splash">
<COND (<NOT ,SKEWED?>
<TELL ", but the " D ,GOLDFISH
" isn't interested">)
(<NOT <FSET? ,PIRANHA ,RMUNGBIT>>
<TELL ", but the " D ,PIRANHA
" is too busy eating to notice">)
(<EQUAL? ,PRSO ,WORM>
<FCLEAR ,PIRANHA ,RMUNGBIT>
<MOVE ,WORM ,STEEP-TRAIL>
; <SETG PIRANHA-SCRIPT 3>
<ENABLE <QUEUE I-PIRANHA-SNACK -1>>
<TELL "." CR CR>
<SAY-THE ,PIRANHA>
<TELL
" snatches away the worm and swims to the far side of the " D ,FOUNTAIN
" to devour it">)
(T
<TELL ". ">
<UNFORTUNATELY>
<TELL "the " D ,PIRANHA " isn't as interested in ">
<ARTICLE ,PRSO T>
<TELL D ,PRSO " as it is in biting your fingers">)>
<TELL "." CR>
<RTRUE>)
(<TOUCHING? ,PRSO>
<SAY-THE ,PRSO>
<TELL " won't let you near." CR>
<RTRUE>)
(<OR <TALKING-TO? ,PRSO>
<VERB? YELL>>
<SAY-THE ,PRSO>
<TELL " gurgles ">
<COND (,SKEWED?
<TELL "threatening">)
(T
<TELL "shy">)>
<TELL "ly." CR>
<RFATAL>)
(<VERB? EAT DRINK TASTE>
<YOUD-HAVE-TO "catch" ,PRSO>
<RTRUE>)
(T
<RFALSE>)>>
<GLOBAL PIRANHA-SCRIPT 3>
<ROUTINE I-PIRANHA-SNACK ()
<COND (<OR ,FUZZY? ,ECLIPSE?>
<RTRUE>)>
<SETG PIRANHA-SCRIPT <- ,PIRANHA-SCRIPT 1>>
<COND (<ZERO? ,PIRANHA-SCRIPT>
<FSET ,PIRANHA ,RMUNGBIT>
<COND (<EQUAL? ,HERE ,PARK>
<CRLF>
<SAY-THE ,PIRANHA>
<TELL " in the " D ,FOUNTAIN
" is watching you hungrily." CR>)>
<DISABLE <INT I-PIRANHA-SNACK>>)>>
<OBJECT STATUE
(IN PARK)
(DESC "statue")
(SYNONYM STATUE COMMEMORATION FATHERS WOMAN)
(ADJECTIVE HEROIC FOUNDING)
(FLAGS TRYTAKEBIT NDESCBIT)
(ACTION STATUE-F)>
<ROUTINE STATUE-F ()
<COND (<VERB? EXAMINE>
<SAY-THE ,STATUE>
<TELL " is a heroic commemoration of ">
<COND (,SKEWED?
<TELL "a very evil-looking " D ,OLD-WOMAN>)
(T
<FATHERS>
<TELL ", dressed in a fancy military uniform">)>
<TELL "." CR>
<RTRUE>)
(<OR <GETTING-INTO?>
<TOUCHING? ,STATUE>>
<TELL "You'd get soaked in the " D ,FOUNTAIN>
<IF-YOU-TRIED>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT FESTERON
(IN GLOBAL-OBJECTS)
(DESC "village")
(SYNONYM TOWN VILLAGE CENTER)
(ADJECTIVE FESTERON WITCHVILLE)
(FLAGS NDESCBIT)
(ACTION FESTERON-F)>
<ROUTINE FESTERON-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<COND (<IN-VILLAGE?>
<RTRUE>)
(<EQUAL? ,HERE ,HILLTOP ,LOOKOUT-HILL ,LABORATORY>
<TOWN-TOO-FAR>)
(<EQUAL? ,HERE ,CLIFF-EDGE>
<COND (<OR <NOT ,SKEWED?>
,SUCCESS?>
<TOWN-TOO-FAR>)
(T
<BUT-THE ,FESTERON>
<TELL "is covered with fog!" CR>)>)
(T
<TELL ,CANT " see the " D FESTERON " from here." CR>)>
<RTRUE>)
(<VERB? WALK-TO ENTER THROUGH>
<COND (<IN-VILLAGE?>
<RTRUE>)
(T
<REFER-TO-MAP>)>
<RTRUE>)
(<VERB? EXIT>
<V-WALK-AROUND>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE IN-VILLAGE? ()
<COND (<OR <EQUAL? ,HERE ,ROTARY-NORTH ,ROTARY-SOUTH ,PARK>
<EQUAL? ,HERE ,ROTARY-EAST ,ROTARY-WEST>>
<ALREADY-IN ,FESTERON>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE TOWN-TOO-FAR ()
<SAY-THE ,FESTERON>
<TELL " is too far away to make out much detail." CR>>
"*** ROTARY WEST ***"
<OBJECT ROTARY-WEST
(IN ROOMS)
(DESC "Rotary West")
(FLAGS ONBIT RLANDBIT)
(GLOBAL POLICE-STATION SIGN POLICE-DOOR CORNER)
(NORTH TO ROTARY-NORTH)
(EAST TO PARK)
(SOUTH PER ENTER-ROTARY-SOUTH)
(WEST TO EDGE-OF-LAKE)
(IN PER ENTER-POLICE-STATION)
(PSEUDO "ROTARY" HERE-F)
(ACTION ROTARY-WEST-F)>
<ROUTINE ROTARY-WEST-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "You're on the west side of the">
<WHICH-TOWN "Rotary">
<TELL ". A street branches west, towards the lake.|
|
The " D ,INSIDE-POLICE-STATION " stands on a nearby " D ,CORNER ". It's a ">
<COND (,SKEWED?
<TELL "grim">)
(T
<TELL "modest">)>
<TELL
" little building with a sign over the">
<OPEN-CLOSED ,POLICE-DOOR>
<TELL D ,ENTRANCE "." CR>)>>
<ROUTINE ENTER-POLICE-STATION ()
<COND (<FSET? ,POLICE-DOOR ,OPENBIT>
<COND (<ZERO? ,MACGUFFIN-SCRIPT>
<COND (,SKEWED?
<ENABLE <QUEUE I-NASTY-MACGUFFIN -1>>)
(T
<ENABLE <QUEUE I-DULL-MACGUFFIN -1>>)>)>
<RETURN ,INSIDE-POLICE-STATION>)
(T
<ITS-CLOSED ,POLICE-DOOR>
<RFALSE>)>>
<OBJECT POLICE-STATION
(IN LOCAL-GLOBALS)
(DESC "police station")
(SYNONYM STATIO HEADQU OFFICE BUILDING)
(ADJECTIVE POLICE FRONT)
(FLAGS NDESCBIT)
(ACTION POLICE-STATION-F)>
<ROUTINE POLICE-STATION-F ()
<COND (<ENTER-FROM? ,ROTARY-WEST ,INSIDE-POLICE-STATION
,POLICE-STATION>
<RTRUE>)
(<VERB? EXAMINE LOOK-ON>
<V-LOOK>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,ROTARY-WEST>
<GO-INSIDE>)
(T
<V-LOOK>)>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT POLICE-DOOR
(IN LOCAL-GLOBALS)
(DESC "police station door")
(SYNONYM DOOR ENTRANCE ENTRY LOCK)
(ADJECTIVE POLICE STATIO)
(FLAGS NDESCBIT OPENBIT DOORBIT READBIT)
(ACTION POLICE-DOOR-F)>
<ROUTINE POLICE-DOOR-F ()
<COND (<AND <VERB? READ LOOK-ON EXAMINE>
<EQUAL? ,HERE ,ROTARY-WEST>>
<PERFORM ,V?EXAMINE ,SIGN>
<RTRUE>)
(<USE-DOOR? ,ROTARY-WEST>
<RTRUE>)
(T
<RFALSE>)>>
"*** INSIDE POLICE STATION ***"
<OBJECT INSIDE-POLICE-STATION
(IN ROOMS)
(DESC "Police Station")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL POLICE-STATION CELL CELL-DOOR POLICE-DOOR CORNER)
(OUT PER EXIT-STATION?)
(ACTION INSIDE-POLICE-STATION-F)>
<ROUTINE EXIT-STATION? ()
<COND (<FSET? ,POLICE-DOOR ,OPENBIT>
<COND (,SKEWED?
<SETG MACGUFFIN-SCRIPT 1>)>
<RETURN ,ROTARY-WEST>)
(T
<ITS-CLOSED ,POLICE-DOOR>
<RFALSE>)>>
<ROUTINE INSIDE-POLICE-STATION-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"You're in the front office of the">
<WHICH-TOWN>
<TELL " " D ,INSIDE-POLICE-STATION ". ">
<COND (,SKEWED?
<TELL
"The room is lined with dimly-lit jail cells. Occasional wails of anguish suggest that many of the cells are occupied">)
(T
<TELL
"A modest jail cell is visible in a " D ,CORNER " of the room">)>
<TELL "." CR CR D ,MACGUFFIN>
<COND (,SKEWED?
<TELL ", Witchville's finest, is glaring down at you from behind an intimidatingly high desk">)
(T
<TELL ", Festeron's finest, is ">
<COND (<G? ,MACGUFFIN-SCRIPT 3>
<TELL "sound asleep">)
(T
<TELL "nodding off">)>
<TELL " behind a desk">)>
<TELL ". " ,YOU-SEE>
<COND (<FIRST? ,DESK>
<PRINT-CONTENTS ,DESK>
<TELL " on the desk, and ">)>
<TELL "a " D ,POSTER " taped to the wall." CR>)>>
<OBJECT DESK
(IN INSIDE-POLICE-STATION)
(DESC "desk")
(SYNONYM DESK DRAWER)
(ADJECTIVE INTIMIDATINGLY TALL)
(FLAGS NDESCBIT SURFACEBIT)
(CAPACITY 25)
(ACTION DESK-F)>
<ROUTINE DESK-F ()
<COND (<VERB? EXAMINE>
<PERFORM ,V?LOOK-ON ,DESK>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,DESK>>
<ITS-CLOSED ,DESK>
<RTRUE>)
(<VERB? LOOK-BEHIND>
<PERFORM ,V?EXAMINE ,MACGUFFIN>
<RTRUE>)
(<OR <EQUAL? ,PRSA ,V?LOOK-INSIDE ,V?SEARCH ,V?OPEN>
<GETTING-INTO?>>
<NOT-LIKELY ,MACGUFFIN
"wants nosey people poking around his desk">
<RTRUE>)
(<VERB? CLOSE>
<ALREADY-CLOSED>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT RADIO
(IN INSIDE-POLICE-STATION)
(DESC "police radio")
(SYNONYM RADIO)
(ADJECTIVE POLICE)
(FLAGS NDESCBIT ; TRYTAKEBIT)
(ACTION RADIO-F)>
<ROUTINE RADIO-F ()
<COND (<OR <HURT? ,RADIO>
<VERB? TAKE>>
<PRINTD ,MACGUFFIN>
<MIGHT-NOT-LIKE>
<RTRUE>)
(<OR <SEE-VERB?>
<TOUCHING? ,RADIO>>
<SAY-THE ,RADIO>
<TELL " is hidden behind " D ,MACGUFFIN "'s desk." CR>
<RTRUE>)
(<VERB? LISTEN>
<TELL "It emits">
<STATIC>
<TELL "." CR>
<RTRUE>)
(T
<YOU-DONT-NEED ,RADIO>
<RFATAL>)>>
<OBJECT CHOCOLATE
(IN DESK)
(DESC "piece of chocolate")
(SYNONYM CHOCOLATE PIECE CANDY)
(ADJECTIVE CHOCOLATE CREAMY DELICIOUS)
(FLAGS NDESCBIT TAKEBIT)
(VALUE 0)
(SIZE 1)
(ACTION CHOCOLATE-F)>
<ROUTINE CHOCOLATE-F ()
<COND (<AND <VERB? TAKE>
<EQUAL? ,PRSO ,CHOCOLATE>
<IN? ,CHOCOLATE ,DESK>
<L? ,MACGUFFIN-SCRIPT 4>>
<SETG MACGUFFIN-SCRIPT 1>
<TELL "\"Hands off,\" " D ,MACGUFFIN " growls sleepily." CR>
<RTRUE>)
(<VERB? EXAMINE>
<FSET ,CHOCOLATE ,TOOLBIT>
<TELL "You share " D ,MACGUFFIN "'s passion for fine chocolate. Looking at this creamy piece is making your mouth water. Only your iron will is stopping you from eating it right now." CR>
<RTRUE>)
(<VERB? EAT>
<COND (<EAT-CHOCOLATE?>
<TELL "Gulp! ">
<COND (<FSET? ,CHOCOLATE ,TOOLBIT>
<TELL "So much for your iron will">)
(T
<TELL "It's gone">)>
<TELL "." CR>)>
<RTRUE>)
(<VERB? TASTE BITE>
<COND (<EAT-CHOCOLATE?>
<TELL "The taste makes you hungry for more.">
<HISTORY>)>
<RTRUE>)
(<VERB? DRINK>
<NOT-LIQUID>
<RTRUE>)
(<AND <VERB? GIVE>
<EQUAL? ,CHOCOLATE ,PRSO>
<FSET? ,PRSI ,ACTORBIT>>
<REMOVE ,CHOCOLATE>
<TELL "Eagerly, ">
<ARTICLE ,PRSI T>
<TELL D ,PRSI " accepts the " D ,CHOCOLATE ".">
<HISTORY>
<RTRUE>)
(<AND <VERB? PUT-ON>
<EQUAL? ,PRSI ,DESK>
,SKEWED?>
<PERFORM ,V?GIVE ,CHOCOLATE ,MACGUFFIN>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE HISTORY ()
<TELL " In a few moments, the candy is history." CR>>
<ROUTINE EAT-CHOCOLATE? ()
<COND (<DONT-HAVE? ,CHOCOLATE>
<RFALSE>)
(T
<REMOVE ,CHOCOLATE>
<SETG CHOCOLATE-SCRIPT 3>
<ENABLE <QUEUE I-DIGEST-CHOCOLATE -1>>
<RTRUE>)>>
<GLOBAL CHOCOLATE-SCRIPT 0>
<ROUTINE I-DIGEST-CHOCOLATE ()
<SETG CHOCOLATE-SCRIPT <- ,CHOCOLATE-SCRIPT 1>>
<TELL CR "(The ">
<COND (<EQUAL? ,CHOCOLATE-SCRIPT 2>
<TELL D ,CHOCOLATE " is melting in your mouth.">
<COND (,SKEWED?
<MAKE-IT-SNAPPY>)
(T
<TELL ")">)>)
(<EQUAL? ,CHOCOLATE-SCRIPT 1>
<C-TASTE>
<TELL "almost gone.">
<COND (,SKEWED?
<HOLD-YOUR-PEACE>)
(T
<TELL ")">)>)
(T
<SETG CHOCOLATE-SCRIPT 0>
<DISABLE <INT I-DIGEST-CHOCOLATE>>
<C-TASTE>
<TELL "gone. Sure was great while it lasted.)">)>
<CRLF>>
<ROUTINE C-TASTE ()
<TELL "chocolate taste in your mouth is ">>
"*** ROTARY-SOUTH ***"
<OBJECT ROTARY-SOUTH
(IN ROOMS)
(DESC "Rotary South")
(FLAGS ONBIT RLANDBIT)
(GLOBAL LIBRARY LIBRARY-DOOR)
(NORTH PER TO-NORTH)
(EAST PER TO-EAST)
(SOUTH PER ENTER-OUTSIDE-COTTAGE)
(WEST PER TO-WEST)
(IN PER ENTER-LIBRARY?)
(PSEUDO "ROTARY" HERE-F)
(ACTION ROTARY-SOUTH-F)>
<ROUTINE TO-NORTH ()
<WAIT-CRY>
<RETURN ,PARK>>
<ROUTINE TO-EAST ()
<WAIT-CRY>
<RETURN ,ROTARY-EAST>>
<ROUTINE TO-WEST ()
<WAIT-CRY>
<RETURN ,ROTARY-WEST>>
<ROUTINE WAIT-CRY ("OPTIONAL" (GOING-SOUTH? <>))
<COND (<IN? ,MISS-VOSS ,ROTARY-SOUTH>
<COND (,NOTE-GIVEN?
<VOSS-HURRIES-AWAY>)
(T
<TELL "\"">
<COND (<AND <IN? ,VIOLET-NOTE ,MISS-VOSS>
<NOT .GOING-SOUTH?>>
<VOSS-LEAVES>
<TELL ,OKAY "never mind!\" shrug">)
(T
<TELL "Wait! I want to talk to you!\" crie">)>
<TELL "s " D ,MISS-VOSS " as you walk away.">)>
<CRLF>
<CRLF>)>>
<ROUTINE ENTER-LIBRARY? ()
<COND (<FSET? ,LIBRARY-DOOR ,OPENBIT>
<COND (<NOT <ENABLED? ,I-SLAM-DOOR>>
<START-BUZZ 7>
<SETG CRISP-SCRIPT 2>
<ENABLE <QUEUE I-SLAM-DOOR -1>>)>
<RETURN ,CIRCULATION-DESK>)
(T
<ITS-CLOSED ,LIBRARY-DOOR>
<VOSS-EXCUSE>
<RFALSE>)>>
<ROUTINE VOSS-EXCUSE ()
<COND (<AND <EQUAL? ,HERE ,ROTARY-SOUTH>
<IN? ,MISS-VOSS ,HERE>>
<TELL CR
"\"I leave early on Fridays,\" explains " D ,MISS-VOSS "." CR>)>>
<ROUTINE I-SLAM-DOOR ()
<COND (<OR ,FUZZY? ,ECLIPSE?>
<RTRUE>)
(<EQUAL? ,HERE ,CIRCULATION-DESK>
<SETG CRISP-SCRIPT <- ,CRISP-SCRIPT 1>>
<COND (<NOT <ZERO? ,CRISP-SCRIPT>>
<RTRUE>)>
<DISABLE <INT I-SLAM-DOOR>>
<CRLF>
<COND (<FSET? ,LIBRARY-DOOR ,OPENBIT>
<TELL
"Bang! The " D ,LIBRARY-DOOR " slams shut. ">)>
<TELL
"You hear a faint \"click\" as somebody locks ">
<COND (<FSET? ,LIBRARY-DOOR ,OPENBIT>
<FCLEAR ,LIBRARY-DOOR ,OPENBIT>
<FCLEAR ,CIRCULATION-DESK ,ONBIT>
<TELL "it">)
(T
<TELL "the " D ,LIBRARY-DOOR>)>
<TELL " from the outside." CR>
<FSET ,LIBRARY-DOOR ,LOCKEDBIT>
<COND (<AND <VISIBLE? ,CANDLE>
<FSET? ,CANDLE ,ONBIT>>
<FCLEAR ,CANDLE ,ONBIT>
<FSET ,CANDLE ,RMUNGBIT>
<CRLF>
<SAY-THE ,CANDLE>
<TELL " flares brightly, and then fizzles out." CR>)>
<SAY-IF-NOT-LIT>)>>
<ROUTINE ROTARY-SOUTH-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "This is the south side of the">
<WHICH-TOWN "Rotary">
<TELL
". A road branches south, towards " D ,POST-OFFICE " Hill.|
|
The">
<WHICH-TOWN "Public Library">
<TELL ", ">
<COND (,SKEWED?
<TELL "once ">)>
<TELL
"famous for its museum of local historic artifacts, stands ">
<COND (,SKEWED?
<TELL "in a pitiful state of disrepair">)
(T
<TELL "proudly on the nearby " D ,CORNER>)>
<TELL "." CR>)>>
<ROUTINE ENTER-ROTARY-SOUTH ()
<COND (<AND <NOT ,SKEWED?>
<NOT ,NOTE-GIVEN?>
<ZERO? ,VOSS-SCRIPT>>
<ENABLE <QUEUE I-VOSS-BABBLE -1>>)>
<RETURN ,ROTARY-SOUTH>>
<OBJECT LIBRARY
(IN LOCAL-GLOBALS)
(DESC "library")
(SYNONYM LIBRARY BUILDING)
(ADJECTIVE FREE PUBLIC)
(FLAGS NDESCBIT)
(ACTION LIBRARY-F)>
<ROUTINE LIBRARY-F ()
<COND (<ENTER-FROM? ,ROTARY-SOUTH ,CIRCULATION-DESK ,LIBRARY>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,ROTARY-SOUTH>
<COND (<FSET? ,LIBRARY-DOOR ,OPENBIT>
<GO-INSIDE>)
(T
<ITS-CLOSED ,LIBRARY-DOOR>)>)
(T
<V-LOOK>)>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT LIBRARY-DOOR
(IN LOCAL-GLOBALS)
(DESC "library door")
(SYNONYM DOOR ENTRANCE ENTRY LOCK)
(ADJECTIVE LIBRARY)
(FLAGS DOORBIT LOCKEDBIT NDESCBIT RMUNGBIT)
(ACTION LIBRARY-DOOR-F)>
; "RMUNGBIT = Door not yet opened"
<ROUTINE LIBRARY-DOOR-F ()
<COND (<AND <VERB? UNLOCK>
<EQUAL? ,PRSO ,LIBRARY-DOOR>
<FSET? ,LIBRARY-DOOR ,LOCKEDBIT>>
<COND (<FSET? ,PRSO ,OPENBIT>
<ALREADY-OPEN>)
(<NOT <EQUAL? ,HERE ,ROTARY-SOUTH>>
<LOCK-IS-OUTSIDE>)
(<NOT <EQUAL? ,PRSI ,LIBRARY-KEY>>
<THING-WONT-LOCK ,PRSI ,PRSO T>)
(T
<FCLEAR ,LIBRARY-DOOR ,LOCKEDBIT>
<FSET ,CIRCULATION-DESK ,ONBIT>
<FSET ,LIBRARY-DOOR ,OPENBIT>
<TELL ,OKAY "the " D ,LIBRARY-DOOR
" is now unlocked and open." CR>
<COND (<FSET? ,LIBRARY-DOOR ,RMUNGBIT>
<FCLEAR ,LIBRARY-DOOR ,RMUNGBIT>
<CRLF>
<UPDATE-SCORE 3>)>
<GOOD-PLACE-TO-SAVE>)>
<RTRUE>)
(<AND <VERB? LOCK>
<EQUAL? ,PRSO ,LIBRARY-DOOR>
<NOT <FSET? ,LIBRARY-DOOR ,OPENBIT>>
<NOT <FSET? ,LIBRARY-DOOR ,LOCKEDBIT>>>
<COND (<EQUAL? ,HERE ,CIRCULATION-DESK>
<LOCK-IS-OUTSIDE>)
(<NOT <EQUAL? ,PRSI ,LIBRARY-KEY>>
<THING-WONT-LOCK ,PRSI ,LIBRARY-DOOR>)
(T
<FSET ,LIBRARY-DOOR ,LOCKEDBIT>
<FCLEAR ,CIRCULATION-DESK ,ONBIT>
<FCLEAR ,LIBRARY-DOOR ,OPENBIT>
<TELL ,OKAY "the " D ,LIBRARY-DOOR " is">
<CLOSED-AND-LOCKED>)>
<RTRUE>)
(<HURT? ,LIBRARY-DOOR>
<COND (<NOT <FSET? ,LIBRARY-DOOR ,OPENBIT>>
<TELL "You won't get through the " D ,LIBRARY-DOOR
" that way." CR>)
(T
<TELL "Why bother? ">
<ALREADY-OPEN>)>
<RTRUE>)
(<VERB? OPEN>
<COND (<FSET? ,LIBRARY-DOOR ,OPENBIT>
<ALREADY-OPEN>
<RTRUE>)
(<FSET? ,LIBRARY-DOOR ,LOCKEDBIT>
<OBJECT-IS-LOCKED>
<VOSS-EXCUSE>
<RTRUE>)
(T
<RFALSE>)>)
(<USE-DOOR? ,ROTARY-SOUTH>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE LOCK-IS-OUTSIDE ()
<UNFORTUNATELY>
<TELL "the lock is on the outside." CR>>
<OBJECT VIOLET-NOTE
(DESC "violet note")
(SYNONYM NOTE PAPER SLIP)
(ADJECTIVE VIOLET PURPLE PALE)
(FLAGS TAKEBIT READBIT RMUNGBIT)
(VALUE 3)
(SIZE 1)
(ACTION VIOLET-NOTE-F)>
; "RMUNGBIT = note sealed"
<GLOBAL NOTE-READ? <>>
<ROUTINE VIOLET-NOTE-F ()
<COND (<VERB? EXAMINE>
<TELL "It's a folded sheet of pale violet paper">
<COND (<FSET? ,VIOLET-NOTE ,RMUNGBIT>
<TELL ", sealed with a dab of library paste">)>
<TELL ". ">
<SAY-ADDRESS>
<RTRUE>)
(<VERB? OPEN>
<COND (<DONT-HAVE? ,VIOLET-NOTE>
<RTRUE>)
(<FSET? ,VIOLET-NOTE ,RMUNGBIT>
<NOT-YOURS ,VIOLET-NOTE>)
(T
<TELL D ,CRISP " already opened it." CR>)>
<RTRUE>)
(<VERB? READ>
<COND (<DONT-HAVE? ,VIOLET-NOTE>
<RTRUE>)
(<FSET? ,VIOLET-NOTE ,RMUNGBIT>
<SAY-ADDRESS>)
(T
<SAY-NOTE>)>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<COND (<DONT-HAVE? ,VIOLET-NOTE>
<RTRUE>)
(<FSET? ,VIOLET-NOTE ,RMUNGBIT>
<NOT-YOURS ,VIOLET-NOTE>)
(T
<SAY-NOTE>)>
<RTRUE>)
(<HURT? ,VIOLET-NOTE>
<HOW-WOULD-YOU-LIKE-IT ,VIOLET-NOTE>
<RTRUE>)
(<VERB? SMELL>
<TELL "Ugh! Cheap perfume." CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE NOT-YOURS (THING)
<BUT-THE .THING>
<TELL "isn't addressed to you!" CR>>
<ROUTINE SAY-ADDRESS ()
<TELL
"The name \"Corky\" is beautifully handwritten on the outside." CR>>
<ROUTINE SAY-NOTE ()
<COND (<NOT ,NOTE-READ?>
<SETG NOTE-READ? T>
<UPDATE-SCORE 3>
<CRLF>)>
<TELL "The handwritten note says:|
|
\"Corky-Poo,|
|
I've got a plate of fresh oatmeal cookies waiting for you. Come over around sixish, and I'll show you my collection of Byron first editions, etc...|
|
Violet|
|
PS: If my little " D ,POODLE " yaps at you, just say ALEXIS, HEEL and she'll behave.\"" CR>>
<OBJECT CIRCULATION-DESK
(IN ROOMS)
(DESC "Circulation Desk")
(FLAGS RLANDBIT INDOORSBIT ONBIT)
(GLOBAL LIBRARY LIBRARY-DOOR GMUSEUM)
(SOUTH PER ENTER-MUSEUM)
(IN PER ENTER-MUSEUM)
(OUT PER EXIT-DESK)
(ACTION CIRCULATION-DESK-F)>
<ROUTINE EXIT-DESK ()
<COND (<SHUT-DOOR?>
<RFALSE>)
(T
<ITS-CLOSED ,LIBRARY-DOOR>
<RFALSE>)>>
<ROUTINE SHUT-DOOR? ()
<COND (<FSET? ,LIBRARY-DOOR ,OPENBIT>
<TELL "A sudden noise stops you in your tracks." CR>
<I-SLAM-DOOR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE ENTER-MUSEUM ()
<COND (<SHUT-DOOR?>
<RFALSE>)
(<EVIL-HERE?>
<RFALSE>)
(T
<RETURN ,MUSEUM>)>>
<ROUTINE CIRCULATION-DESK-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<STANDING>
<TELL
"before a large desk at the " D ,LIBRARY " " D ,ENTRANCE ". The top of the desk is almost hidden under a " D ,CLUTTER ", all grey with dust.">
<COND (<FIRST? ,CDESK>
<TELL " There's also ">
<PRINT-CONTENTS ,CDESK>
<TELL " on the desk.">)>
<TELL CR CR "A dark " D ,CORRIDOR " leads south into "
D ,DARKNESS ". ">
<SAY-DOOR ,LIBRARY-DOOR>
<SEE-WITCH>)>>
<OBJECT CDESK
(IN CIRCULATION-DESK)
(DESC "circulation desk")
(SYNONYM DESK)
(ADJECTIVE CIRCUL LARGE)
(FLAGS NDESCBIT DOORBIT LOCKEDBIT SURFACEBIT)
(CAPACITY 25)
(ACTION CDESK-F)>
<ROUTINE CDESK-F ()
<COND (<VERB? CLOSE LOCK>
<SAY-THE ,CDESK>
<TELL " is already">
<CLOSED-AND-LOCKED>
<RTRUE>)
(<GETTING-INTO?>
<WASTE-OF-TIME>
<RTRUE>)
(<VERB? EXAMINE LOOK-ON>
<TELL "Aside from the " D ,CLUTTER ", you see ">
<PRINT-CONTENTS ,CDESK>
<TELL " on the " D ,CDESK "." CR>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<ITS-CLOSED ,CDESK>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT GMUSEUM
(IN LOCAL-GLOBALS)
(DESC "museum")
(SYNONYM MUSEUM HALL)
(ADJECTIVE DARK)
(FLAGS NDESCBIT)
(ACTION GMUSEUM-F)>
<SYNONYM HALL HALLWAY CORRIDOR>
<ROUTINE GMUSEUM-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE LOOK-DOWN LOOK-THRU>
<COND (<EQUAL? ,HERE ,MUSEUM>
<V-LOOK>)
(T
<GO-INSIDE>)>
<RTRUE>)
(<VERB? WALK-TO ENTER THROUGH USE>
<COND (<EQUAL? ,HERE ,MUSEUM>
<TELL "It's right here!" CR>)
(T
<DO-WALK ,P?IN>)>
<RTRUE>)
(<VERB? SIT LIE-DOWN STAND-ON>
<LOITERING-ON ,GMUSEUM>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT CLUTTER
(IN CIRCULATION-DESK)
(DESC "clutter of books")
(SYNONYM BOOKS BOOK)
(ADJECTIVE CLUTTER PILE)
(FLAGS NDESCBIT READBIT TRYTAKEBIT)
(ACTION CLUTTER-F)>
<ROUTINE CLUTTER-F ()
<COND (<VERB? EXAMINE>
<TELL
"The titles range from classics of world literature to forgotten hits of years long past. Dust covers them equally, regardless of merit." CR>)
(<VERB? READ>
<LOITERING-ON ,CLUTTER>)
(<VERB? TAKE>
<TELL ,CANT
" take any books. You don't have a " D ,LIBRARY " card." CR>)
(<VERB? MUNG KICK>
<TELL
"That's no way to handle " D ,LIBRARY " materials!" CR>)
(T
<YOU-DONT-NEED ,CLUTTER>
<RFATAL>)>
<RTRUE>>
<OBJECT MUSEUM
(IN ROOMS)
(DESC "Museum")
(FLAGS RLANDBIT INDOORSBIT)
(GLOBAL LIBRARY GMUSEUM SIGN)
(NORTH PER EXIT-MUSEUM)
(OUT PER EXIT-MUSEUM)
(ACTION MUSEUM-F)>
<ROUTINE MUSEUM-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"Formerly a popular tourist attraction, the old Festeron " D ,MUSEUM
" is in a sorry state. ">
<SAY-EXHIBITS>
<COND (<IN? ,FOSSIL ,MUSEUM>
<TELL CR "Fortunately, one of your childhood favorites is still intact. It's a pair of enormous fossil mailboxes, their metal bones locked together in a pose of eternal combat." CR>)>
<TELL CR "There's a ">
<COND (<FSET? ,DCASE ,OPENBIT>
<TELL "broken ">)>
<TELL "glass " D ,DCASE " in the " D ,CORNER ".">
<COND (<FIRST? ,DCASE>
<TELL " " ,YOU-SEE>
<PRINT-CONTENTS ,DCASE>
<TELL " in the case.">)>
<CRLF>
<SEE-WITCH>)>>
<ROUTINE SAY-EXHIBITS ()
<TELL "Many of the best " D ,EXHIBITS " have been carted away; the few remaining are sorely in need of renovation." CR>>
<ROUTINE SEE-WITCH ()
<COND (<IN? ,EVIL-ONE ,HERE>
<TELL CR "There's an " D ,OLD-WOMAN " standing in the "
D ,CORRIDOR "." CR>)>>
<ROUTINE EXIT-MUSEUM ()
<COND (<EVIL-HERE?>
<RFALSE>)
(T
<RETURN ,CIRCULATION-DESK>)>>
<ROUTINE EVIL-HERE? ()
<COND (<IN? ,EVIL-ONE ,HERE>
<SAY-THE ,OLD-WOMAN>
<TELL " is blocking your path." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT EXHIBITS
(IN MUSEUM)
(DESC "exhibits")
(SYNONYM EXHIBIT DISPLAY)
(FLAGS NDESCBIT)
(ACTION EXHIBITS-F)>
<ROUTINE EXHIBITS-F ()
<COND (<SEE-VERB?>
<SAY-EXHIBITS>
<RTRUE>)
(T
<YOU-DONT-NEED ,EXHIBITS>
<RFATAL>)>>
<OBJECT FOSSIL
(DESC "fossil exhibit")
(SYNONYM FOSSIL MAILBOX BOXES EXHIBIT)
(ADJECTIVE LARGE SMALL RIBS BONES)
(FLAGS NDESCBIT CONTBIT TRANSBIT OPENBIT TRYTAKEBIT)
(CAPACITY 100)
(CONTFCN IN-FOSSIL)
(ACTION FOSSIL-F)>
<ROUTINE FOSSIL-F ("AUX" OBJ)
<COND (<VERB? EXAMINE>
<TELL "There's something disturbingly familiar about the "
D ,FOSSIL ".">
<SET OBJ <FIRST? ,FOSSIL>>
<COND (.OBJ
<TELL
" Maybe it has something to do with the object">
<COND (<NEXT? .OBJ>
<TELL "s">)>
<TELL
" you can see lying inside.">)>
<CRLF>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<TELL ,YOU-SEE>
<PRINT-CONTENTS ,FOSSIL>
<TELL " among the ribs of the " D ,FOSSIL "." CR>
<RTRUE>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,FOSSIL>>
<COND (<G? <GETP ,PRSO ,P?SIZE> 1>
<BUT-THE ,PRSO>
<TELL "won't fit">)
(T
<MOVE ,PRSO ,FOSSIL>
<TELL ,OKAY>
<ARTICLE ,PRSO T>
<TELL D ,PRSO " slips">)>
<TELL " between the ribs of the " D ,FOSSIL "." CR>
<RTRUE>)
(<OR <HURT? ,FOSSIL>
<MOVING? ,FOSSIL>
<VERB? REACH-IN OPEN>>
<HURT-FOSSIL>
<RTRUE>)
(<VERB? CLOSE>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE HURT-FOSSIL ()
<TELL
"You'd probably damage the priceless " D ,FOSSIL>
<IF-YOU-TRIED>>
<ROUTINE IN-FOSSIL (CONTEXT)
<COND (<AND <EQUAL? .CONTEXT ,M-CONT>
<TOUCHING? ,PRSO>>
<TELL ,CANT " possibly reach ">
<ARTICLE ,PRSO T>
<TELL D ,PRSO
". The fossil's ribs are too close together." CR>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT DCASE
(IN MUSEUM)
(DESC "display case")
(SYNONYM CASE)
(ADJECTIVE DISPLAY GLASS)
(FLAGS NDESCBIT CONTBIT LOCKEDBIT TRANSBIT TRYTAKEBIT)
(CAPACITY 10)
(ACTION DCASE-F)
(CONTFCN IN-DCASE)>
<ROUTINE IN-DCASE (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-CONT>
<COND (<AND <NOT <FSET? ,DCASE ,OPENBIT>>
<NOT <SEE-VERB?>>>
<TELL ,CANT " reach inside the closed "
D ,DCASE "." CR>
<RTRUE>)
(T
<RFALSE>)>)
(T
<RFALSE>)>>
<ROUTINE DCASE-F ("AUX" OPEN? THING)
<SET OPEN? <FSET? ,DCASE ,OPENBIT>>
<COND (<VERB? EXAMINE LOOK-INSIDE LOOK-DOWN>
<TELL "The ">
<COND (.OPEN?
<TELL "broken ">)>
<PRINTD ,DCASE>
<COND (<FIRST? ,DCASE>
<TELL " contains ">
<PRINT-CONTENTS ,DCASE>)
(T
<TELL " is empty">)>
<TELL ". ">
<SAY-DCASE-SIGN>
<RTRUE>)
(<OR <VERB? LOOK-ON>
<AND <VERB? PUT-ON>
<EQUAL? ,PRSI ,DCASE>>>
<TOO-HIGH ,DCASE>
<RTRUE>)
(<VERB? READ>
<SAY-DCASE-SIGN>
<RTRUE>)
(<AND <VERB? MUNG KILL>
<EQUAL? ,PRSO ,DCASE>>
<COND (.OPEN?
<ALREADY-BROKE-IT>)
(<NOT ,PRSI>
<TELL "(with " D ,HANDS ")" CR>
<TRY-BREAK "hand">)
(<OR <EQUAL? ,PRSI ,BROOM ,BRANCH ,CONCH-SHELL>
<EQUAL? ,PRSI ,BOTTLE ,UMBRELLA ,SHOE>>
<COND (<AND <EQUAL? ,PRSI ,BROOM>
,BROOM-SIT?>
<GET-OFF-BROOM-FIRST>)>
<FCLEAR ,DCASE ,DOORBIT>
<FSET ,DCASE ,TRANSBIT>
<FSET ,DCASE ,OPENBIT>
<FSET ,DCASE ,RMUNGBIT>
<TELL "Crash! You broke the " D ,DCASE " open with ">
<ARTICLE ,PRSI T>
<TELL D ,PRSI "." CR>
<COND (<NOT <FSET? ,SW2 ,OPENBIT>>
<TELL CR
"The tinkle of broken glass is drowned out by the blare of an electric security alarm! You stand frozen with fear as " D ,MACGUFFIN " strides into the "
D ,MUSEUM " and drags you to ">
<TORTURE-ENDING>
<RFATAL>)>)
(<OR <EQUAL? <LOC ,PRSI> ,GLOBAL-OBJECTS ,LOCAL-GLOBALS>
<EQUAL? ,PRSI ,DCASE>>
<WHAT-A-CONCEPT>)
(<DONT-HAVE? ,PRSI>
<RTRUE>)
(<EQUAL? ,PRSI ,WISHBRINGER>
<TELL "The stone is too small." CR>)
(T
<TELL
"You'd never break the " D ,DCASE " with that!" CR>)>
<RTRUE>)
(<AND <VERB? THROW>
<EQUAL? ,PRSI ,DCASE>>
<SET THING ,PRSO>
<TELL "Thrown." CR CR>
<PERFORM ,V?MUNG ,DCASE ,PRSO>
<MOVE .THING ,HERE>
<RTRUE>)
(<VERB? KICK>
<COND (.OPEN?
<ALREADY-BROKE-IT>)
(T
<TRY-BREAK "foot">)>
<RTRUE>)
(<GETTING-INTO?>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(<MOVING? ,DCASE>
<TOO-LARGE ,DCASE>
<RTRUE>)
(<AND <VERB? CLOSE>
.OPEN?>
<ALREADY-BROKE-IT>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE ALREADY-BROKE-IT ()
<SAY-THE ,DCASE>
<TELL " is broken, remember?" CR>>
<ROUTINE SAY-DCASE-SIGN ()
<TELL "A " D ,SIGN " on the " D ,DCASE " reads, \"">
<FROBOZZ "Burglar Alarm">
<TELL ".\"" CR>>
<ROUTINE TRY-BREAK (STR)
<SAY-THE ,DCASE>
<TELL " is still intact, but your " .STR " isn't. Ouch!" CR>>
<ROUTINE TORTURE-ENDING ()
<TELL
"the Tower, where you're subjected to months of slow, painful torture at the skilled hands of" ,EONE ".">
<BAD-ENDING>>
<OBJECT SCULPTURE
(IN DCASE)
(DESC "sculpture")
(SYNONYM SCULPTURE HOLE CHAOS ; CAT)
(ADJECTIVE BLACK MARBLE FOREHEAD HEAD)
(FLAGS NDESCBIT TAKEBIT SURFACEBIT CONTBIT OPENBIT)
(SIZE 5)
(CAPACITY 1)
(VALUE 0)
(ACTION SCULPTURE-F)>
<ROUTINE SCULPTURE-F ()
<COND (<VERB? EXAMINE>
<TELL
"The black marble " D ,SCULPTURE " is about 14 inches high. It's exquisitely crafted in the likeness of a cat." CR CR>
<TELL ,YOU-SEE
"a round, shallow hole carved into the forehead of the " D ,SCULPTURE "." CR>
<RTRUE>)
(<AND <VERB? PUT PUT-ON>
<EQUAL? ,PRSI ,SCULPTURE>>
<COND ; (<DONT-HAVE? ,SCULPTURE>
<RTRUE>)
(<EQUAL? ,PRSO ,WISHBRINGER>
<REPEAT ()
<COND (<DO-END>
<TELL CR
"Do you still want to put " ,GAME " into the " D ,SCULPTURE "?">
<COND (<NOT <YES?>>
<TELL ,OKAY
"you're still holding " ,GAME "." CR>
<RETURN>)>)
(T
<RETURN>)>>
<RFATAL>)
(<G? <GETP ,PRSO ,P?SIZE> 1>
<TOO-LARGE ,PRSO>)
(T
<SAY-THE ,PRSO>
<TELL " falls out of the " D ,SCULPTURE>
<AND-DROPS-OUT ,PRSO>)>
<RTRUE>)
(<OR <VERB? THROW>
<HURT? ,SCULPTURE>>
<RUIN ,SCULPTURE>
<RTRUE>)
(T
<RFALSE>)>>
<GLOBAL WIN-TRY 3>
<ROUTINE DO-END ("AUX" (GOT? <>))
<SETG WIN-TRY <- ,WIN-TRY 1>>
<COND (<EQUAL? ,WIN-TRY 2>
<MOVE ,EVIL-ONE ,HERE>
<SETG WOMAN-SCRIPT 5>
<ENABLE <QUEUE I-PLEA -1>>
<TELL ,GAME " glows brighter as it nears the "
D ,SCULPTURE ". It looks like it will fit perfectly into the black forehead.|
|
\"Wait!\" commands a familiar voice.|
|
You turn, and see the figure of an " D ,OLD-WOMAN " standing ">
<COND (,FUZZY?
<TELL "nearby...">
<DARK-BEING>)
(T
<TELL "in the " D ,DARKNESS
" of the " D ,CORRIDOR ".">)>
<TELL CR CR "\"Your quest is ended" ,ADVENTURER
",\" says the " D ,OLD-WOMAN ". \"The " D ,SCULPTURE
" you ">
<COND (<IN? ,SCULPTURE ,PROTAGONIST>
<TELL "hold">)
(T
<TELL "see before you">)>
<TELL " is " D ,CHAOS
", the Cat Which Was Stolen. Now give " ,GAME
" to me, and together we shall rejoice in your success.\"" CR>
<RTRUE>)
(<EQUAL? ,WIN-TRY 1>
<TELL
"\"Don't!\" barks the " D ,OLD-WOMAN " as " D ,HANDS " moves closer to the "
D ,SCULPTURE "." CR>
<RTRUE>)
(T
<SET GOT? <IN? ,SCULPTURE ,PROTAGONIST>>
<TELL
"\"No!\"|
|
A blast of Magick shakes the building as " ,GAME " touches the forehead of the " D ,SCULPTURE ". Violet sheets of energy, pure and brilliant, erupt from the very heart of the Stone and illuminate the room like daylight.|
|
The woman's disguise evaporates in the glare. It's" ,EONE ", her mouth frozen open in a wail of despair as she fades into oblivion. The memory of that face will haunt your dreams as long as you live.|
|
You ">
<COND (.GOT?
<TELL
"feel the " D ,SCULPTURE " become soft and warm in " D ,HANDS "s">)
(T
<TELL
"watch as the " D ,SCULPTURE " begins to soften in the radiance">)>
<TELL ". It wriggles like a thing alive, leaps ">
<COND (.GOT?
<TELL "out of your arms">)
(T
<TELL "across the floor">)>
<TELL " and disappears into a vortex of color. The " D ,LIBRARY
" folds around you like the closing of a great book...">
<DISABLE <INT I-PLEA>>
<REMOVE ,SCULPTURE>
<MOVE ,CHAOS ,CLIFF-EDGE>
<SETG GSCORE <+ ,GSCORE 5>>
<SETG SCORE 6>
<SETG MOVES 0>
<TO-FINISH>
<SETG SUCCESS? T>
; <COND (<G? ,SCORE 5>
<SETG SCORE 0>)>
; <SET GOT? <SPIN-DIAL 6 3>>
; <SETG HERE ,CLIFF-EDGE>
<V-LOOK>
<RFALSE>)>>
<ROUTINE I-PLEA ("AUX" STONE-LOC)
; <COND (,FUZZY?
<RTRUE>)>
<THIS-IS-IT ,EVIL-ONE>
<THIS-IS-IT ,WISHBRINGER>
<COND (,FUZZY?
<SETG FUZZY? <>>
<FCLEAR ,GLASSES ,WORNBIT>
<REMOVE ,GLASSES>
<TELL CR "\"Take off those glasses!\" commands the "
D ,OLD-WOMAN " sharply. To your astonishment, the " D ,GLASSES " leaps away from your eyes and disappears in a silent flash." CR CR>
<SETG HERE ,FUZZY-FROM>
<MOVE ,PROTAGONIST ,HERE>
<COND (<NOT <IN? ,EVIL-ONE ,HERE>>
<MOVE ,EVIL-ONE ,HERE>)>
<V-LOOK>
<RTRUE>)>
<SET STONE-LOC <LOC ,WISHBRINGER>>
<SETG WOMAN-SCRIPT <- ,WOMAN-SCRIPT 1>>
<CRLF>
<COND (<OR <EQUAL? .STONE-LOC ,HERE ,DCASE ,CDESK>
<EQUAL? .STONE-LOC ,FOSSIL ,COAT>>
<SAY-THE ,OLD-WOMAN>
<TELL " snatches away the Stone,">
<EVIL-ONE-TAKES-STONE>)
(<EQUAL? ,WOMAN-SCRIPT 4>
<SAY-THE ,OLD-WOMAN>
<TELL " steps out of the " D ,DARKNESS " and moves towards you. \"Give me the Stone,\" she says. \"I want to make certain you haven't damaged it.\"" CR>)
(<EQUAL? ,WOMAN-SCRIPT 3>
<TELL
"\"Let me touch " ,GAME ",\" says the " D ,OLD-WOMAN ", inching closer. \"I want to hold it again in my hands.\"|
|
You feel your fingers relaxing as she speaks." CR>)
(<EQUAL? ,WOMAN-SCRIPT 2>
<TELL
"\"Quickly!\" snaps the " D ,OLD-WOMAN " impatiently. \"Give me the Magick Stone. You have no use for it now!\"|
|
Your fingers are beginning to lose their grip on " ,GAME "." CR>)
(<EQUAL? ,WOMAN-SCRIPT 1>
<SAY-THE ,OLD-WOMAN>
<TELL " stretches out her clawlike hand. \"If you will not give the Stone to me freely,\" she growls, \"I will have no choice but to take it.\"|
|
Your hand is trembling violently. It wants to give her " ,GAME "!" CR>)
(T
<TELL "\"Yield!\" commands the woman sharply.|
|
The " D ,WISHBRINGER " leaps out of " D ,HANDS " and into the "
D ,OLD-WOMAN "'s bony fingers. She">
<EVIL-ONE-TAKES-STONE>)>>
<ROUTINE EVIL-ONE-TAKES-STONE ()
<DISABLE <INT I-PLEA>>
<TELL " holds it up and gazes into its depths. \"" ,GAME
",\" she whispers, deep in her throat.|
|
The Stone begins to pulse with crimson light. In its sinister glow, the "
D ,OLD-WOMAN "'s disguise melts away. It's" ,EONE "!|
|
\"A fool!\" she cackles wildly, and the " D ,SCULPTURE " shatters to pieces at the sound. \"My sister was a fool to send the likes of you on such a quest! Does she think a mail clerk can save the world from Wickedness? Be gone!\"|
|
With a wave of her warty hand," ,EONE " turns you into a "
<PICK-ONE ,TURNS> ".">
<BAD-ENDING>
<RTRUE>>
<GLOBAL TURNS
<LTABLE 0
"furry toilet seat cover"
"giant army boot"
"newt">>
<GLOBAL EONE " the Evil One">
<OBJECT EVIL-ONE
(DESC "old woman")
(SYNONYM ONE WOMAN LADY BEING)
(ADJECTIVE EVIL OLD WITCH)
(FLAGS VOWELBIT NDESCBIT ACTORBIT)
(ACTION EVIL-ONE-F)>
<ROUTINE EVIL-ONE-F ("OPTIONAL" (CONTEXT <>))
<THIS-IS-IT ,EVIL-ONE>
<COND (<VERB? EXAMINE>
<COND (<EQUAL? ,HERE ,INSIDE-THEATER>
<TELL "She's">
<DARK-BEING>)
(T
<TELL
"It looks like the " D ,OLD-WOMAN " you met at the " D ,MAGICK-SHOPPE ".|
|
(Hmm. The outline of the woman is " <PICK-ONE ,BLURS> ", like a double image. Must be your eyes getting tired or something.)">)>
<CRLF>
<RTRUE>)
(<IMAGE? ,EVIL-ONE>
<RFATAL>)
(<AND <VERB? GIVE>
<EQUAL? ,PRSI ,EVIL-ONE>>
<COND (<EQUAL? ,PRSO ,WISHBRINGER>
<SAY-THE ,OLD-WOMAN>
<TELL " takes " ,GAME " from you,">
<EVIL-ONE-TAKES-STONE>)
(T
<GESTURE " refuses your offer">)>
<RTRUE>)
(<OR <TALKING-TO? ,EVIL-ONE>
<VERB? YELL>>
<GESTURE " silences you">
<RFATAL>)
(<OR <HURT? ,EVIL-ONE>
<VERB? RUB KISS SQUEEZE>>
<TELL "Don't try it. This " D ,OLD-WOMAN " looks tough!" CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE GESTURE (STR)
<SAY-THE ,OLD-WOMAN>
<TELL .STR " with an impatient gesture." CR>>
<ROUTINE DARK-BEING ()
<TELL " a dark, sinister being with terrible eyes!">>
"*** ROTARY NORTH ***"
<OBJECT ROTARY-NORTH
(IN ROOMS)
(DESC "Rotary North")
(FLAGS ONBIT RLANDBIT)
(GLOBAL CHURCH CHURCH-DOOR WINDOW)
(NORTH TO SOUTH-OF-BRIDGE)
(EAST TO ROTARY-EAST)
(SOUTH TO PARK)
(WEST TO ROTARY-WEST)
(IN PER ENTER-CHURCH)
(ACTION ROTARY-NORTH-F)
(PSEUDO "ROTARY" HERE-F)>
<ROUTINE ROTARY-NORTH-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL "This is the northern side of the">
<WHICH-TOWN "Rotary">
<TELL ". A road leads north, towards the river.|
|
On the " D ,CORNER " stands a ">
<COND (,SKEWED?
<TELL "broken-down old " D ,CHURCH
" that looks as if it hasn't been used for years." CR>)
(T
<TELL
"quaint " D ,FESTERON " " D ,CHURCH ". Its little white steeple is straight out of a country postcard. ">
<SAY-DOOR ,CHURCH-DOOR>)>)>>
<ROUTINE ENTER-CHURCH ()
<COND (<FSET? ,CHURCH-DOOR ,OPENBIT>
<COND (<FSET? ,CHURCH ,RMUNGBIT>
<FCLEAR ,CHURCH ,RMUNGBIT>
<ENABLE <QUEUE I-RODENT -1>>)>
<RETURN ,INSIDE-CHURCH>)
(T
<ITS-CLOSED ,CHURCH-DOOR>
<RFALSE>)>>
<ROUTINE I-RODENT ()
<COND (<OR ,FUZZY? ,ECLIPSE?>
<RTRUE>)
(<FSET? ,CHURCH ,TOOLBIT>
<FCLEAR ,CHURCH ,TOOLBIT>)
(<AND <EQUAL? ,HERE ,INSIDE-CHURCH>
,LIT>
<DISABLE <INT I-RODENT>>
<FCLEAR ,CHURCH ,TOUCHBIT>
<TELL CR "As you look around the empty " D ,CHURCH " a ">
<COND (,SKEWED?
<TELL "big brown rat">)
(T
<TELL "little white mouse">)>
<TELL " scurries across the ">
<COND (,SKEWED?
<TELL "broken glass">)
(T
<TELL "floor">)>
<TELL " and disappears." CR>)>>
"*** INSIDE CHURCH ***"
<OBJECT INSIDE-CHURCH
(IN ROOMS)
(DESC "Church")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL CHURCH CHURCH-DOOR WINDOW AISLE)
(OUT TO ROTARY-NORTH IF CHURCH-DOOR IS OPEN)
(ACTION INSIDE-CHURCH-F)>
<ROUTINE INSIDE-CHURCH-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<STANDING>
<TELL "inside a">
<COND (,SKEWED?
<TELL
"n abandoned old " D ,CHURCH ". The aisles are littered with debris and bits of colored glass; everything is coated with a thick layer of dust">)
(T
<TELL
" beautiful old " D ,CHURCH ". The aisles are diffused with rich colored light streaming in through the stained glass " D ,WINDOW "s">)>
<TELL "." CR>)>>
<OBJECT SPEAKER
(DESC "speaker")
(SYNONYM SPEAKER LOUDSPEAKER)
(FLAGS NDESCBIT)
(ACTION SPEAKER-F)>
<ROUTINE SPEAKER-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE LOOK-ON LISTEN>
<TELL "It's burned out." CR>
<RTRUE>)
(<TOUCHING? ,SPEAKER>
<TOO-HIGH ,SPEAKER>
<RTRUE>)
(T
<YOU-DONT-NEED ,SPEAKER>
<RFATAL>)>>
<GLOBAL CANDLE-TAKEN? <>>
<OBJECT CANDLE
(IN INSIDE-CHURCH)
(DESC "candle")
(FDESC "A lighted candle is visible in a nook near the exit.")
(SYNONYM CANDLE LIGHT)
(ADJECTIVE LIGHTED LIT)
(FLAGS TAKEBIT ONBIT FLAMEBIT)
(ACTION CANDLE-F)
(VALUE 0)
(SIZE 5)>
; "RMUNGBIT = candle blown out in library"
<ROUTINE CANDLE-F ()
<COND (<AND <VERB? TAKE>
<EQUAL? ,PRSO ,CANDLE>
<NOT ,CANDLE-TAKEN?>>
<COND (<ITAKE>
<TELL "A voice from above ">
<COND (,SKEWED?
<SETG CANDLE-TAKEN? T>
<TELL "begins to proclaim something, but">
<STATIC>
<TELL " drowns out the solemn words. Looking up, you notice a speaker in the ceiling emitting sparks.|
|
Taken.">)
(T
<MOVE ,CANDLE ,INSIDE-CHURCH>
<TELL
"solemnly proclaims, \"Thou shalt not steal.\"">)>
<CRLF>)>
<RTRUE>)
(<VERB? LAMP-OFF BLOW-INTO>
<COND (<FSET? ,CANDLE ,ONBIT>
<BEST-EFFORTS ,CANDLE
"flame stubbornly refuses to go out">)
(T
<BUT-THE ,CANDLE>
<TELL "isn't lit!" CR>)>
<RTRUE>)
(<AND <VERB? PUT-ON>
<EQUAL? ,PRSI ,CANDLE>
<FSET? ,CANDLE ,ONBIT>>
<PERFORM ,V?BURN ,PRSO ,CANDLE>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE STATIC ()
<TELL " a burst of static">>
<ROUTINE BEST-EFFORTS (THING STR)
<COND (<PROB 50>
<TELL "Strange">)
(T
<TELL "That's odd">)>
<TELL ". Despite your best efforts, the " D .THING " " .STR "." CR>>
<OBJECT CHURCH-DOOR
(IN LOCAL-GLOBALS)
(DESC "church door")
(SYNONYM DOOR ENTRANCE ENTRY LOCK)
(ADJECTIVE CHURCH)
(FLAGS DOORBIT OPENBIT NDESCBIT)>
<OBJECT CHURCH
(IN LOCAL-GLOBALS)
(DESC "church")
(SYNONYM CHURCH BUILDING TEMPLE SYNAGO)
(ADJECTIVE BROKEN OLD)
(FLAGS NDESCBIT RMUNGBIT TOUCHBIT TOOLBIT)
(ACTION CHURCH-F)>
; "RMUNGBIT = rodent not yet activated,
TOUCHBIT = rodent not yet seen,
TOOLBIT = one move not passed before seeing rodent"
<ROUTINE CHURCH-F ()
<COND (<ENTER-FROM? ,ROTARY-NORTH ,INSIDE-CHURCH ,CHURCH>
<RTRUE>)
(<VERB? EXAMINE LOOK-ON>
<V-LOOK>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,INSIDE-CHURCH>
<V-LOOK>)
(T
<GO-INSIDE>)>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE CHURCH-WINDOWS-F ()
<COND (<VERB? EXAMINE>
<SAY-THE ,WINDOW>
<TELL "s ">
<COND (,SKEWED?
<TELL "are all broken">)
(T
<TELL "glow with rich colors">)>
<TELL "." CR>
<RTRUE>)
(<VERB? LOOK-INSIDE>
<COND (,SKEWED?
<COND (<EQUAL? ,HERE ,ROTARY-NORTH>
<GO-INSIDE>)
(T
<NOTHING-INTERESTING T>)>)
(T
<TELL ,CANT ". ">
<SAY-THE ,WINDOW>
<TELL "s are too thick." CR>)>
<RTRUE>)
(<HURT? ,WINDOW>
<COND (,SKEWED?
<TELL "They're already broken!" CR>)
(T
<HOW-WOULD-YOU-LIKE-IT ,WINDOW>)>
<RTRUE>)
(<VERB? OPEN CLOSE PUSH MOVE>
<SAY-THE ,WINDOW>
<TELL "s are ">
<COND (,SKEWED?
<TELL "broken!">)
(T
<TELL "too heavy to move.">)>
<CRLF>
<RTRUE>)
(T
<YOU-DONT-NEED ,WINDOW>
<RFATAL>)>>
<OBJECT CDEBRIS
(DESC "debris")
(SYNONYM DEBRIS GLASS BITS)
(ADJECTIVE COLORED BROKEN)
(FLAGS NDESCBIT)
(ACTION CDEBRIS-F)>
<ROUTINE CDEBRIS-F ()
<COND (<VERB? EXAMINE LOOK-ON>
<NOTHING-INTERESTING T>
<RTRUE>)
(<VERB? SEARCH LOOK-INSIDE LOOK-UNDER>
<NOTHING-INTERESTING>
<RTRUE>)
(T
<YOU-DONT-NEED ,CDEBRIS>
<RFATAL>)>>
"*** JAIL CELL ***"
<OBJECT JAIL-CELL
(IN ROOMS)
(DESC "Jail Cell")
(FLAGS ONBIT RLANDBIT INDOORSBIT)
(GLOBAL POLICE-STATION CELL CELL-DOOR HIDDEN-HATCH)
(DOWN PER THROUGH-HATCH?)
(IN PER THROUGH-HATCH?)
(OUT "You're locked inside!")
(ACTION JAIL-CELL-F)>
<ROUTINE JAIL-CELL-F (CONTEXT)
<COND (<EQUAL? .CONTEXT ,M-LOOK>
<TELL
"You're locked inside a damp, uncomfortable jail cell. Its thick steel door and stone walls offer little hope for escape.|
|
The only furnishing is a hard bunk ">
<COND (<FSET? ,BUNK ,RMUNGBIT>
<TELL "in the middle of the floor">)
(T
<TELL "against the wall">)>
<COND (<FIRST? ,BUNK>
<TELL " with ">
<PRINT-CONTENTS ,BUNK>
<TELL " on it">)>
<TELL "." CR>
<COND (<FSET? ,BUNK ,RMUNGBIT>
<CRLF>
<SEE-HOLE>)>)>>
<OBJECT CELL
(IN LOCAL-GLOBALS)
(DESC "cell")
(SYNONYM CELL CELLS)
(ADJECTIVE JAIL)
(FLAGS NDESCBIT)
(ACTION CELL-F)>
<ROUTINE CELL-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE>
<COND (<EQUAL? ,HERE ,JAIL-CELL>
<V-LOOK>)
(T
<COND (,SKEWED?
<TELL "They don't">)
(T
<TELL "It doesn't">)>
<TELL " look very comfortable." CR>)>
<RTRUE>)
(<AND <VERB? WALK-TO THROUGH ENTER>
<EQUAL? ,HERE ,INSIDE-POLICE-STATION>>
<COND (,SKEWED?
<TELL
D ,MACGUFFIN " smirks. \"You'll be in one soon enough.\"" CR>)
(T
<CELL-DOOR-IS-SECURE>)>
<RTRUE>)
(<CELL-DOOR-F>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE CELL-DOOR-IS-SECURE ()
<TELL "The lock on the " D ,CELL-DOOR " is very secure." CR>>
<OBJECT CELL-DOOR
(IN LOCAL-GLOBALS)
(DESC "cell door")
(SYNONYM DOOR BARS LOCK)
(ADJECTIVE CELL)
(FLAGS DOORBIT LOCKEDBIT NDESCBIT)
(ACTION CELL-DOOR-F)>
<ROUTINE CELL-DOOR-F ()
<COND (<OR <HURT? ,CELL-DOOR>
<VERB? EXAMINE SHAKE PICK>>
<CELL-DOOR-IS-SECURE>
<RTRUE>)
(<VERB? OPEN UNLOCK>
<NOT-LIKELY ,MACGUFFIN "would lend you the key">
<RTRUE>)
(<VERB? CLOSE LOCK>
<ALREADY-CLOSED>
<RTRUE>)
(<USE-DOOR? ,INSIDE-POLICE-STATION>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT BUNK
(IN JAIL-CELL)
(DESC "bunk")
(SYNONYM BUNK BED FURNITURE)
(ADJECTIVE FLIMSY)
(FLAGS NDESCBIT TRYTAKEBIT SURFACEBIT)
(CAPACITY 25)
(ACTION BUNK-F)>
; "RMUNGBIT = BUNK MOVED AWAY FROM WALL"
<ROUTINE BUNK-F ()
<COND (<VERB? EXAMINE LOOK-INSIDE LOOK-ON SEARCH>
<NOT-CLEAN ,BUNK>
<COND (<FIRST? ,BUNK>
<TELL " There's ">
<PRINT-CONTENTS ,BUNK>
<TELL " on it.">)>
<CRLF>
<RTRUE>)
(<AND <VERB? LOOK-UNDER>
<NOT <FSET? ,BUNK ,RMUNGBIT>>>
<SEE-HOLE>
<RTRUE>)
(<VERB? LOOK-BEHIND>
<COND (<FSET? ,BUNK ,RMUNGBIT>
<SEE-HOLE>)
(T
<YOUD-HAVE-TO "move" ,BUNK>)>
<RTRUE>)
(<VERB? PUSH MOVE>
<TELL ,OKAY "you moved the " D ,BUNK>
<COND (<FSET? ,BUNK ,RMUNGBIT>
<FCLEAR ,BUNK ,RMUNGBIT>
<FCLEAR ,UNDER-CELL ,ONBIT>
<TELL " back up against the wall." CR>)
(T
<FSET ,BUNK ,RMUNGBIT>
<COND (<NOT <FSET? ,HIDDEN-HATCH ,RMUNGBIT>>
<FSET ,UNDER-CELL ,ONBIT>)>
<TELL " away from the wall. ">
<SEE-HOLE>)>
<RTRUE>)
(<GETTING-INTO?>
<NOT-CLEAN ,BUNK T>
<CRLF>
<RTRUE>)
(<VERB? OPEN CLOSE>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(<AND <VERB? PUT-UNDER>
<EQUAL? ,PRSI ,BUNK>>
<WASTE-OF-TIME>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE SEE-HOLE ()
<FSET ,HIDDEN-HATCH ,TOUCHBIT>
<TELL "There's a ">
<COND (<FSET? ,HIDDEN-HATCH ,RMUNGBIT>
<TELL "patch of new concrete o">)
(T
<TELL "dark, narrow hole i">)>
<TELL "n the floor." CR>>
<ROUTINE NOT-CLEAN (THING "OPTIONAL" (WARN? <>))
<COND (.WARN?
<TELL "Better not. ">)>
<SAY-THE .THING>
<TELL " doesn't look very sanitary.">>
<OBJECT BLANKET
(IN BUNK)
(DESC "thick blanket")
(SYNONYM BLANKET)
(ADJECTIVE THICK)
(FLAGS WEARBIT TAKEBIT CONTBIT
TRANSBIT SURFACEBIT OPENBIT)
(VALUE 3)
(SIZE 10)
(CAPACITY 5)
(ACTION BLANKET-F)>
<ROUTINE BLANKET-F ()
<COND (<GETTING-INTO?>
<NOT-CLEAN ,BLANKET T>
<CRLF>
<RTRUE>)
(<VERB? TAKE>
<COND (<IN? ,BLANKET ,BABY>
<WAKE-BABY>)
(T
<RFALSE>)>)
(<AND <VERB? PUT PUT-ON>
<EQUAL? ,PRSI ,BLANKET>>
<COND (<EQUAL? ,PRSO ,BLANKET>
<TELL <PICK-ONE ,YUKS> CR>)
(T
<NOT-CLEAN ,BLANKET T>
<CRLF>)>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<NOT-CLEAN ,BLANKET>
<CRLF>
<RTRUE>)
(<VERB? OPEN CLOSE>
<WASTE-OF-TIME>
<RTRUE>)
(<VERB? LOOK-UNDER>
<COND (<IN? ,BLANKET ,PROTAGONIST>
<TELL "You're holding it!" CR>
<RTRUE>)
(<IN? ,BLANKET ,BABY>
<TELL "There's a " D ,BABY " there." CR>
<RTRUE>)
(T
<RFALSE>)>)
(T
<RFALSE>)>>
<OBJECT HIDDEN-HATCH
(IN LOCAL-GLOBALS)
(DESC "hole")
(SYNONYM HOLE CEMENT CONCRETE OPENING)
(ADJECTIVE DARK NARROW)
(FLAGS NDESCBIT)
(ACTION HIDDEN-HATCH-F)>
; "TOUCHBIT = HOLE FOUND, RMUNGBIT = HOLE CEMENTED OVER"
<ROUTINE HIDDEN-HATCH-F ()
<COND (<AND <NOT <FSET? ,HIDDEN-HATCH ,TOUCHBIT>>
<NOT <EQUAL? ,HERE ,UNDER-CELL>>>
<CANT-SEE-ANY ,HIDDEN-HATCH>
<RFATAL>)
(<VERB? WALK-TO ENTER THROUGH>
<COND (<EQUAL? ,HERE ,JAIL-CELL>
<DO-WALK ,P?DOWN>)
(T
<DO-WALK ,P?UP>)>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<COND (<FSET? ,HIDDEN-HATCH ,RMUNGBIT>
<SAY-THE ,HIDDEN-HATCH>
<TELL " is sealed with cement." CR>)
(<FSET? ,BUNK ,RMUNGBIT>
<CANT-MAKE-OUT-ANYTHING>)
(T
<TELL "The hole is blocked by ">
<COND (<EQUAL? ,HERE ,JAIL-CELL>
<TELL "the bunk">)
(T
<TELL
"something overhead. It looks like the underside of a bed or bunk">)>
<TELL "." CR>)>
<RTRUE>)
(<AND <VERB? PUT THROW>
<EQUAL? ,PRSI ,HIDDEN-HATCH>>
<COND (<OR <FSET? ,HIDDEN-HATCH ,RMUNGBIT>
<NOT <FSET? ,BUNK ,RMUNGBIT>>>
<PERFORM ,V?EXAMINE ,HIDDEN-HATCH>
<RFATAL>)
(<EQUAL? ,PRSO ,HANDS>
<NOTHING-EXCITING>
<RTRUE>)
(<PUTTING-OPEN-UMBRELLA?>
<RTRUE>)
(<G? <GETP ,PRSO ,P?SIZE> 10>
<TOO-LARGE ,PRSO>
<RTRUE>)
(<EQUAL? ,HERE ,JAIL-CELL>
<MOVE ,PRSO ,UNDER-CELL>)
(T
<MOVE ,PRSO ,JAIL-CELL>)>
<TELL ,OKAY>
<ARTICLE ,PRSO T>
<TELL D ,PRSO " disappears into the " D ,HIDDEN-HATCH "." CR>
<RTRUE>)
(<FSET? ,HIDDEN-HATCH ,RMUNGBIT>
<TELL ,CANT " do anything useful with the cement." CR>
<RFATAL>)
(<VERB? REACH-IN>
<NOTHING-EXCITING>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE THROUGH-HATCH? ()
<COND (<FSET? ,HIDDEN-HATCH ,RMUNGBIT>
<TELL ,CANT " pass through solid cement." CR>
<RFALSE>)
(<AND <NOT <FSET? ,HIDDEN-HATCH ,TOUCHBIT>>
<EQUAL? ,HERE ,JAIL-CELL>>
<TELL ,CANT " see any exit that way." CR>
<RFALSE>)
(<FSET? ,BUNK ,RMUNGBIT>
<COND (<CANT-FIT-INTO? "hole">
<RFALSE>)>
<GET-INTO "hole">
<COND (<EQUAL? ,HERE ,JAIL-CELL>
<RETURN ,UNDER-CELL>)
(T
<RETURN ,JAIL-CELL>)>)
(T
<PERFORM ,V?EXAMINE ,HIDDEN-HATCH>
<RFALSE>)>>
<OBJECT PSEUDO-BUNK
(IN UNDER-CELL)
(DESC "bunk")
(SYNONYM BUNK BED UNDERSIDE BOTTOM)
(ADJECTIVE FLIMSY)
(FLAGS NDESCBIT)
(ACTION PBUNK-F)>
<ROUTINE PBUNK-F ()
<COND (<FSET? ,BUNK ,RMUNGBIT>
<TELL ,CANT ". You">
<MOVED-THE-BUNK>
<RFATAL>)
(<VERB? EXAMINE LOOK-ON LOOK-UNDER>
<SAY-THE ,BUNK>
<TELL
" looks flimsy. You could probably move it if you tried." CR>
<RTRUE>)
(<VERB? MOVE PULL PUSH>
<FSET ,HIDDEN-HATCH ,TOUCHBIT>
<FSET ,BUNK ,RMUNGBIT>
<FSET ,UNDER-CELL ,ONBIT>
<SETG LIT T>
<TELL ,OKAY "you">
<MOVED-THE-BUNK>
<TELL CR "Faint light streams in from overhead." CR>
<RTRUE>)
(<OR <GETTING-INTO?>
<VERB? PUT PUT-ON THROW LOOK-BEHIND PUT-UNDER
PUT-BEHIND>>
<TELL <PICK-ONE ,YUKS> CR>
<RTRUE>)
(T
<RFALSE>)>>
<ROUTINE MOVED-THE-BUNK ()
<TELL " moved the bunk away from the hole." CR>>