suspect/things.zil

874 lines
22 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"THINGS for M3
Copyright (C) 1984 Infocom, Inc. All rights reserved."
<OBJECT GLOBAL-OBJECTS
(FLAGS AN BURNBIT CONTBIT DOORBIT
DRINKBIT FEMALE FOODBIT FURNITURE
INVISIBLE LOCKED NDESCBIT ONBIT
OPENBIT PERSON READBIT RMUNGBIT
SEARCHBIT SURFACEBIT TAKEBIT THE
TOLD TOOLBIT TOUCHBIT TRANSBIT
TRYTAKEBIT VEHBIT WEARBIT WEAPONBIT
WINDOWBIT MICHAELBIT ALICIABIT ;"31 BITS")
(DESCFCN NULL-F)
(CONTFCN NULL-F)
(PSEUDO NULL-F)
(TEXT "FOO")>
<OBJECT LOCAL-GLOBALS
(IN GLOBAL-OBJECTS)
(SYNONYM ZZKJLK) ;"This synonym is necessary - God knows">
<OBJECT PSEUDO-OBJECT
(DESC "pseudo" ;"Place holder (MUST BE 6 CHARACTERS!!!!!)")
(ACTION NULL-F ;"Place holder")>
<OBJECT NOT-HERE-OBJECT
(DESC "such thing")
(ACTION NOT-HERE-OBJECT-F)>
<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ)
;"Protocol: return T if case was handled and msg TELLed,
<> if PRSO/PRSI ready to use"
<COND ;"This COND is game independent (except the TELL)"
(<AND <EQUAL? ,PRSO ,NOT-HERE-OBJECT>
<EQUAL? ,PRSI ,NOT-HERE-OBJECT>>
<TELL "Those things aren't">
<TELL-HERE>
<RTRUE>)
(<EQUAL? ,PRSO ,NOT-HERE-OBJECT>
<SET TBL ,P-PRSO>)
(T
<SET TBL ,P-PRSI>
<SET PRSO? <>>)>
<COND (.PRSO?
<COND (<VERB? ASK-CONTEXT-ABOUT ASK-CONTEXT-FOR CLIMB-UP
EXAMINE FIND FOLLOW SEARCH SEARCH-OBJECT-FOR
WHAT PHONE MAKE THROUGH WALK-TO WAIT-FOR ARREST
ACCUSE ANALYZE FINGERPRINT>
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
<COND (<NOT <==? .OBJ ,NOT-HERE-OBJECT>>
<RTRUE>)>)
(T
<RFALSE>)>)
(<VERB? TELL>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>)>)
(T
<COND (<VERB? ASK-ABOUT ASK-FOR SAY
SEARCH-OBJECT-FOR SGIVE TELL-ME>
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
<COND (<NOT <==? .OBJ ,NOT-HERE-OBJECT>>
<RTRUE>)>)
(T
<RFALSE>)>)>)>
;"Here is the default 'cant see any' printer"
<SETG P-WON <>>
<TELL-CANT-SEE "any">
<NOT-HERE-PRINT>
<TELL-HERE>
<RTRUE>>
<ROUTINE TELL-CANT-SEE (STR)
<TELL ,YOU-CANT-SEE .STR>>
<ROUTINE TELL-HERE ()
<TELL " here." CR>>
<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ (CNT 0) PB? (LOCAL 0))
;"Protocol: return T if case was handled and msg TELLed,
,NOT-HERE-OBJECT if 'can't see' msg TELLed,
<> if PRSO/PRSI ready to use"
;"Here is where special-case code goes. <MOBY-FIND .TBL> returns
number of matches. If 1, then P-MOBY-FOUND is it. One may treat
the 0 and >1 cases alike or different. It doesn't matter. Always
return RFALSE (not handled) if you have resolved the problem."
<SET M-F <MOBY-FIND .TBL>>
%<DEBUG-CODE
<COND (,HDEBUG
<TELL "[Moby-found " N .M-F " objects" "]" CR>)>>
<COND (<G? .M-F 1>
<SET PB? <IN-BALLROOM? ,PLAYER>>
<REPEAT ()
<COND (<G? <SET CNT <+ .CNT 1>> .M-F>
<RETURN>)>
<SET OBJ <GET .TBL .CNT>>
<COND (<OR <AND .PB? <IN-BALLROOM? .OBJ>>
<CORRIDOR-LOOK .OBJ>>
<COND (<G? <SET LOCAL <+ .LOCAL 1>> 1>
<RETURN>)
(ELSE
<SETG P-MOBY-FOUND .OBJ>)>)>>
<COND (<EQUAL? .LOCAL 1>
<SET M-F 1>)>)>
<COND (<==? .M-F 1>
%<DEBUG-CODE
<COND (,HDEBUG
<TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>>
<COND (.PRSO? <SETG PRSO ,P-MOBY-FOUND>)
(T <SETG PRSI ,P-MOBY-FOUND>)>
<RFALSE>)
(<G? .M-F 1>
<COND (<VERB? EXAMINE> <RETURN ,NOT-HERE-OBJECT>)
(<SET OBJ
<APPLY <GETP <SET OBJ <GET .TBL 1>>
,P?GENERIC>
.OBJ>>
<COND (<==? .OBJ ,NOT-HERE-OBJECT> <RTRUE>)
(.PRSO? <SETG PRSO .OBJ>)
(T <SETG PRSI .OBJ>)>)
(<NOT ,P-NAM>
<TELL-NO-NOUNS>
<RTRUE>)
(ELSE
<WHICH-PRINT 0 .M-F .TBL>
<SETG P-ACLAUSE
<COND (<==? .TBL ,P-PRSO> ,P-NC1)
(T ,P-NC2)>>
<SETG P-AADJ ,P-ADJ>
<SETG P-ANAM ,P-NAM>
<ORPHAN <> <>>
<SETG P-OFLAG T>
<RTRUE>)>)
(<OR <AND <NOT .PRSO?>
<FSET? ,PRSO ,PERSON>
<VERB? ASK-ABOUT ASK-FOR TELL-ME WHAT-IS-WAS>>
<AND .PRSO?
<VERB? ASK-CONTEXT-ABOUT ASK-CONTEXT-FOR>>
<AND <NOT <==? ,WINNER ,PLAYER>>
<VERB? WALK-TO FOLLOW FIND WHAT GIVE SGIVE>>>
<COND (<NOT <EQUAL? ,WINNER ,PLAYER>>
<TELL CD ,WINNER>)
(<AND <VERB? ASK-ABOUT ASK-FOR TELL-ME>
<NOT <EQUAL? ,PRSO ,PLAYER ,CORPSE>>>
<TELL CD ,PRSO>)
(ELSE
<TELL-ISNT-ANYONE>
<RTRUE>)>
<TELL
" looks confused. ">
<I-DONT-KNOW-ABOUT "any" <>>
<NOT-HERE-PRINT>
<TELL "!\"" CR>
<RTRUE>)
(<NOT .PRSO?>
<TELL "You wouldn't find any">
<NOT-HERE-PRINT>
<TELL " there." CR>
<RTRUE>)
(T ,NOT-HERE-OBJECT)>>
<ROUTINE NOT-HERE-PRINT ()
<COND (<OR ,P-OFLAG ,P-MERGED>
<COND (,P-XADJ <TELL " "> <PRINTB ,P-XADJN>)>
<COND (,P-XNAM <TELL " "> <PRINTB ,P-XNAM>)>)
(<EQUAL? ,PRSO ,NOT-HERE-OBJECT>
<BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
(T
<BUFFER-PRINT <GET ,P-ITBL ,P-NC2> <GET ,P-ITBL ,P-NC2L> <>>)>>
<OBJECT IT
(IN GLOBAL-OBJECTS)
(SYNONYM IT HE SHE THEY)
(DESC "it")
(FLAGS NDESCBIT AN)
;(ACTION IT-F)>
;<ROUTINE IT-F ()
<COND (<AND <EQUAL? ,PRSO ,IT>
<NOT ,P-IT-OBJECT>
,P-HIM-HER>
<PERFORM ,PRSA ,P-HIM-HER ,PRSI>
<RTRUE>)
(<OR <AND <EQUAL? ,PRSI ,IT>
<VERB? ASK-ABOUT ASK-FOR SEARCH-OBJECT-FOR TELL-ME>>
<AND <EQUAL? ,PRSO ,IT>
<VERB? ASK-CONTEXT-ABOUT ASK-CONTEXT-FOR FIND WHAT>>>
<TELL "\"I'm not sure what you're talking about.\"" CR>)>>
<ROUTINE THE? (NOUN)
<COND (<OR <EQUAL? .NOUN ,IT ,YOU ,HIM-HER>
<FSET? .NOUN ,PERSON>>
<RTRUE>)
(T <TELL " the">)>>
<ROUTINE THIS-IS-IT (OBJ)
%<DEBUG-CODE
<COND (,IDEBUG
<TELL "[It's " D .OBJ "]" CR>)>>
<SETG P-IT-OBJECT .OBJ>
<SETG P-IT-LOC ,HERE>>
<OBJECT INTNUM
(IN GLOBAL-OBJECTS)
(SYNONYM INTNUM)
(DESC "number")
;(ACTION INTNUM-F)>
<OBJECT WEATHER
(IN GLOBAL-OBJECTS)
(SYNONYM WEATHER SKY RAIN CLOUDS)
(DESC "weather")
(ACTION WEATHER-F)>
<GLOBAL SAW-RAIN-SLACK-OFF? <>>
<ROUTINE WEATHER-F ()
<COND (<VERB? EXAMINE FIND LISTEN>
<COND (<AND <NOT <OUTSIDE? ,HERE>>
<NOT <GLOBAL-IN? ,WINDOW ,HERE>>>
<TELL-YOU-CANT "see the outside from here">)
(<L? ,PRESENT-TIME 550>
<TELL
"The rain is pouring down. It's a great night for ducks!" CR>)
(<L? ,PRESENT-TIME 570>
<SETG SAW-RAIN-SLACK-OFF? T>
<TELL
"The rain has slacked off, it's just a drizzle now." CR>)
(<L? ,PRESENT-TIME 630>
<TELL
"The rain is coming down in buckets">
<COND (,SAW-RAIN-SLACK-OFF? <TELL " again">)>
<TELL "." CR>)
(ELSE
<TELL
"The rain is almost stopped, and the storm seems to be passing off to the
northeast." CR>)>)
(<VERB? RUB>
<COND (<OUTSIDE? ,HERE>
<TELL "It's wet." CR>)
(ELSE
<TELL-YOU-CANT "touch that">)>)>>
<GLOBAL RAIN-STATE 2>
<ROUTINE I-RAIN-SLOWS ()
<SETG RAIN-STATE 1>
<COND (<OUTSIDE? ,HERE>
<SETG SAW-RAIN-SLACK-OFF? T>
<TELL
"Now the rain has slowed. It's just a light shower now." CR>
<RFALSE>)>>
<ROUTINE I-RAIN-POURS ()
<SETG RAIN-STATE 2>
<COND (<OUTSIDE? ,HERE>
<TELL
"Now the rain is coming down in torrents, a real cloudburst." CR>
<RFALSE>)>>
<ROUTINE I-RAIN-STOPS ()
<SETG RAIN-STATE 0>
<COND (<OUTSIDE? ,HERE>
<TELL
"Now the rain has slowed down almost to a stop. Only a few drops
are falling now." CR>
<RFALSE>)>>
<OBJECT MIDNIGHT
(IN GLOBAL-OBJECTS)
(DESC "midnight")
(SYNONYM MIDNIGHT)
(FLAGS NDESCBIT)>
<OBJECT HANDCUFFS
(IN DUFFY)
(DESC "handcuffs")
(SYNONYM HANDCUFF CUFF CUFFS)
(FLAGS NDESCBIT)>
<OBJECT WATER
(IN LOCAL-GLOBALS)
(DESC "water")
(SYNONYM WATER)
(ACTION WATER-F)
(FLAGS NDESCBIT)>
<ROUTINE WATER-F ()
<COND (<VERB? WALK>
<PERFORM ,V?LAMP-ON ,WATER>
<RTRUE>)>>
<OBJECT TELEPHONE
(IN LOCAL-GLOBALS)
(DESC "telephone")
(SYNONYM TELEPHONE PHONE)
(ACTION TELEPHONE-F)
(FLAGS NDESCBIT)>
<ROUTINE TELEPHONE-F ()
<COND (<VERB? REPLY>
<TELL "It wasn't ringing." CR>)
(<VERB? TAKE>
<TELL "You hear a dial tone." CR>)
(<AND <VERB? PHONE> <EQUAL? ,PRSO ,TELEPHONE>>
<TELL ,YOU-SHOULD "dial a number, such as 911." CR>)
(<VERB? HANG-UP>
<DISABLE <INT I-HANG-UP>>
<TELL "You replace the receiver." CR>)>>
<OBJECT GLOBAL-FINGERPRINTS
(IN GLOBAL-OBJECTS)
(DESC "fingerprints")
(SYNONYM FINGERPRINT PRINT PRINTS)
;(ADJECTIVE FINGER)
(FLAGS NDESCBIT)>
<OBJECT SINK
(IN LOCAL-GLOBALS)
(DESC "sink")
(SYNONYM SINK BASIN TAP)
(ACTION SINK-F)
(FLAGS NDESCBIT)>
<ROUTINE SINK-F ()
<COND (<AND <VERB? BRUSH> <EQUAL? ,PRSO ,HANDS>>
<TELL "Your hands are now clean." CR>)>>
<OBJECT SHOWER
(IN LOCAL-GLOBALS)
(DESC "shower")
(SYNONYM BATH STALL)
(ADJECTIVE SHOWER)
(ACTION SHOWER-F)
(FLAGS NDESCBIT)>
<ROUTINE SHOWER-F ()
<COND (<VERB? TAKE LAMP-ON>
<TELL "You'd get your costume all wet." CR>)
(<VERB? LOOK-INSIDE>
<TELL ,THERE-IS "no blood in the shower." CR>)>>
<OBJECT TOILET
(IN LOCAL-GLOBALS)
(DESC "toilet")
(SYNONYM TOILET)
(ACTION TOILET-F)
(CAPACITY 30)
(FLAGS NDESCBIT FURNITURE VEHBIT OPENBIT SURFACEBIT)>
<ROUTINE TOILET-F ("OPTIONAL" (RARG <>))
<COND (<EQUAL? .RARG ,M-END> <RFALSE>)
(<EQUAL? ,PRSO ,TOILET>
<COND (<VERB? WALK USE>
<TELL "You now feel refreshed." CR>)
(<VERB? LOOK-INSIDE SMELL>
<TELL
"The toilet is immaculate. Nosey, aren't you?" CR>)
(<VERB? FLUSH>
<TELL ,YOU-ARE "a model and considerate guest." CR>)>)>>
<OBJECT GLOBAL-HERE
(IN GLOBAL-OBJECTS)
(DESC "here")
(SYNONYM HERE)
(FLAGS NDESCBIT)>
<OBJECT HALLWAY
(IN GLOBAL-OBJECTS)
(DESC "hallway")
(SYNONYM HALL HALLWAY CORRIDOR)
(FLAGS NDESCBIT)>
<OBJECT GLOBAL-ROOM
(IN GLOBAL-OBJECTS)
(DESC "room")
(SYNONYM ROOM FLOOR)
(ACTION GLOBAL-ROOM-F)
(FLAGS NDESCBIT)>
<ROUTINE GLOBAL-ROOM-F ()
<COND (<VERB? EXAMINE LOOK-ON>
<PERFORM ,V?LOOK>
<RTRUE>)
(<VERB? SEARCH-OBJECT-FOR>
<PERFORM ,V?FIND ,PRSI>
<RTRUE>)
(<AND <VERB? PUT> <EQUAL? ,PRSI ,GLOBAL-ROOM>>
<PERFORM ,V?DROP ,PRSO>
<RTRUE>)>>
<OBJECT GLOBAL-MURDER
(IN GLOBAL-OBJECTS)
(DESC "murder")
(SYNONYM MURDER KILLING DEATH DEAD)
(ADJECTIVE VERONICA)
(ACTION GLOBAL-MURDER-F)
(FLAGS NDESCBIT)>
<ROUTINE GLOBAL-MURDER-F ("AUX" OW)
<COND (<AND <VERB? TELL-ME>
<EQUAL? ,WINNER ,PLAYER>
<EQUAL? ,PRSI ,GLOBAL-MURDER>>
<PERFORM ,V?REVEAL ,GLOBAL-MURDER ,PRSO>
%<DEBUG-CODE
<COND (<AND ,GOSSIP <NOT <FSET? ,PLAYER ,TOLD>>>
<TELL "[Murder: Player revealed to self?]" CR>)>>
<FSET ,PLAYER ,TOLD>
%<DEBUG-CODE
<COND (<AND ,GOSSIP <NOT <FSET? ,PRSO ,TOLD>>>
<TELL
"[Murder: Player revealed to " D ,PRSO "]" CR>)>>
<FSET ,PRSO ,TOLD>
<RTRUE>)
(<AND <VERB? $REVEAL>
<EQUAL? ,PRSO ,GLOBAL-MURDER>>
<REVEAL-MURDER ,PRSI>
%<DEBUG-CODE
<COND (<AND ,GOSSIP <NOT <FSET? ,WINNER ,TOLD>>>
<TELL
"[Murder: " D ,WINNER " revealed to self?]" CR>)>>
<FSET ,WINNER ,TOLD>
<COND (<IN? ,PRSI ,HERE>
<TELL
CD ,WINNER " sees " D ,PRSI " and they speak for a few moments. "
CD ,PRSI "'s eyes widen as " HE/SHE ,PRSI " is told of the murder.
There is an apparent conflict between shock and the desire to immediately
tell someone else about it." CR>)
(<NEARBY? ,PRSI>
<TELL
CD ,WINNER " is speaking excitedly and urgently to " D ,PRSI " some
distance away. You can't hear what is being said, but " D ,PRSI " is
very agitated by what " HE/SHE ,PRSI " has heard." CR>)>
<RTRUE>)
(<AND <VERB? IS>
<EQUAL? ,PRSO ,VERONICA ,CORPSE ,GLOBAL-VERONICA>
<NOT <EQUAL? ,PLAYER ,WINNER>>>
<SET OW ,WINNER>
<SETG WINNER ,PLAYER>
<PERFORM ,V?REVEAL ,GLOBAL-MURDER .OW>
<RTRUE>)>>
<OBJECT GLOBAL-EMBEZZLEMENT
(IN GLOBAL-OBJECTS)
(DESC "theft")
(SYNONYM THEFT EMBEZZLEMENT)
(FLAGS NDESCBIT)>
<OBJECT HORSE
(IN GLOBAL-OBJECTS)
(DESC "horse")
(SYNONYM HORSE GRUE HORSES)
(ADJECTIVE LURKING)
(FLAGS NDESCBIT)>
<OBJECT GLASS
(DESC "broken glass")
(SYNONYM GLASS GOBLET)
(ADJECTIVE BROKEN)
(FLAGS TAKEBIT TRYTAKEBIT CONTBIT OPENBIT SEARCHBIT)
(ACTION GLASS-F)>
<ROUTINE GLASS-F ("AUX" (W ,WINNER))
<COND (<AND <VERB? TAKE> <IN? ,GLASS ,BUTLER>>
<SETG WINNER ,BUTLER>
<PERFORM ,V?GIVE ,GLASS .W>
<SETG WINNER .W>)
(<AND <VERB? CUT> <EQUAL? ,PRSO ,PLAYER>>
<TELL
"Suicide is not the answer." CR>)
(<VERB? SMELL>
<TELL
,THERE-IS "something on the glass which smells sweet -- probably the remains
of " 'VERONICA "'s drink." CR>)
(<VERB? EXAMINE>
<TELL
"This is a large fragment of " 'GLASS " from a highball glass.
There is a film of red liquid on the inside." CR>)
(<VERB? ANALYZE>
<COND (<EQUAL? ,PRSI ,GLOBAL-FINGERPRINTS>
<TELL ,YOU-DONT-HAVE "the equipment." CR>)
(T
<TELL
"Since you're not a psychiatrist or a laboratory chemist, your chances
of a successful analysis are poor. Perhaps you should get someone more
competent to do the job." CR>)>)>>
<OBJECT LIQUID
(IN GLASS)
(DESC "liquid")
(SYNONYM LIQUID FILM)
(ADJECTIVE RED SWEET)
(FLAGS NDESCBIT)
(ACTION LIQUID-F)>
<ROUTINE LIQUID-F ()
<COND (<VERB? EXAMINE EAT SMELL RUB>
<TELL
"This seems to be the remains of " 'VERONICA "'s drink." CR>)>>
<OBJECT RECEIPT
(IN PLAYER)
(DESC "costume receipt")
(SYNONYM RECEIPT)
(ADJECTIVE COSTUME)
(FLAGS TAKEBIT BURNBIT READBIT)
(SIZE 2)
(TEXT
"(A copy is in your game package.)")>
;"\"Costumes Unlimited|
312 Wisconsin Ave.|
Rockville, MD|
555-9009|
|
(1) Cowboy costume with lariat and gunbelt: $65\"
"
<OBJECT COSTUME-SHOP
(IN GLOBAL-OBJECTS)
(DESC "Costumes Unlimited")
(SYNONYM SHOP)
(ADJECTIVE COSTUME UNLIMITED)
(FLAGS NDESCBIT)
(ACTION SHOP-F)>
<ROUTINE SHOP-F ()
<COND (<VERB? PHONE>
<COND (<G? ,PRESENT-TIME 600>
<TELL
"The telephone rings continuously for as long as you wait." CR>)
(ELSE
<MOVE ,JACK ,HERE>
<ENABLE <QUEUE I-HANG-UP 5>>
<TELL
"A tired-sounding voice answers. \"Costumes Unlimited, Jack
speaking. We're closing at ten. We don't have many costumes left.
Better make it quick.\"" CR>)>)>>
<ROUTINE I-HANG-UP ()
<COND (<IN? ,JACK ,HERE>
<REMOVE ,JACK>
<TELL
"You hear a click as the telephone is hung up at the other end." CR>)>>
<OBJECT JACK
(DESC "Jack")
(SYNONYM JACK)
(ACTION JACK-F)
(FLAGS NDESCBIT TRANSBIT PERSON)>
<ROUTINE JACK-F ()
<COND (<NOT <IN? ,JACK ,HERE>>
<TELL "He hung up." CR>)
(<OR <EQUAL? ,JACK ,WINNER>
<VERB? $CALL>>
<COND (<VERB? SGIVE TELL-ME> <RFALSE>)
(ELSE
<TELL "\"Get to the point, I'm busy.\"" CR>)>)
(<VERB? TAKE EXAMINE>
<TELL "Jack's on the telephone, not">
<TELL-HERE>)
(<AND <VERB? ASK-ABOUT> <EQUAL? ,PRSO ,JACK>>
<COND (<==? ,PRSI ,GLOBAL-VERONICA ,VERONICA ,CORPSE>
<COND (<NOT ,JACK-ASKED?>
<SETG JACK-ASKED? T>
<TELL
"\"" 'VERONICA " Ashcroft, eh? Upper crust type, right? Yeah, she rented " A
,FAIRY-COSTUME ". Real expensive. Great costume, though.\"" CR>)
(ELSE <TELL ,REPEATING-YOURSELF CR>)>)
(<==? ,PRSI ,FAIRY-COSTUME>
<COND (<NOT ,JACK-ASKED?>
<SETG JACK-ASKED? T>
<TELL
"\"Yeah, we rented one of them. Some society dame rented it. Just a minute,
I can tell you who...\" There is a short pause. \"Yeah, here she is.
" 'VERONICA " Ashcroft, one Titania costume, a hundred and twenty dollars.
We don't get much call for that one. Heck of a costume, though.\"" CR>)
(ELSE <TELL ,REPEATING-YOURSELF CR>)>)
(T
<TELL "\"Get to the point, I'm busy.\"" CR>)>)>>
<GLOBAL REPEATING-YOURSELF "\"You're repeating yourself.\"">
<GLOBAL JACK-ASKED? <>>
<OBJECT JACKSON
(IN GLOBAL-OBJECTS)
(DESC "Earl Davis Jackson")
(SYNONYM JACKSON EDITOR)
(ADJECTIVE EARL DAVIS)
(ACTION JACKSON-F)
(FLAGS NDESCBIT TRANSBIT PERSON)>
<ROUTINE JACKSON-F ()
<COND (<VERB? PHONE>
<TELL-NO-ANSWER>)>>
<OBJECT CARD
(IN WASTE-BASKET)
(DESC "business card")
(SYNONYM CARD)
(ADJECTIVE BUSINESS CRUMPLED)
(FLAGS NDESCBIT BURNBIT READBIT)
(TEXT
"(A copy is in your game package.)")>
;"The front reads:|
|
\"Kings Point Realty|
Specializing in finer homes|
William Cochrane,|
President\"|
|
On the back is a handwritten message:|
|
\"Don't do something you'll regret. Call me ASAP.|
Bill\"|
"
<OBJECT WASTE-BASKET
(IN OFFICE)
(SYNONYM BASKET WASTEBASKET)
(ADJECTIVE WASTE)
(DESC "waste basket")
(FDESC "Next to the large desk is a waste basket.")
(ACTION WASTE-BASKET-F)
(CAPACITY 15)
(SIZE 15)
(FLAGS SEARCHBIT CONTBIT OPENBIT TAKEBIT)>
<ROUTINE WASTE-BASKET-F ()
<COND (<AND <VERB? LOOK-INSIDE EXAMINE SEARCH SEARCH-OBJECT-FOR>
<EQUAL? ,PRSO ,WASTE-BASKET>>
<COND (<IN? ,CARD ,WASTE-BASKET>
<FCLEAR ,CARD ,NDESCBIT>
<FSET ,CARD ,TAKEBIT>
<TELL
"A crumpled " 'CARD " is on top">)
(ELSE
<TELL
"It's nearly full">)>
<TELL " of boring trash">
<PRINT-CONTENTS ,WASTE-BASKET ", including " ,CARD>
<TELL "." CR>)>>
<OBJECT DISCUSSION
(IN GLOBAL-OBJECTS)
(SYNONYM DISCUSSION ARGUMENT)
(ADJECTIVE HEATED)
(DESC "heated discussion")
(FLAGS NDESCBIT)>
<GLOBAL NUMBERS <LTABLE "one" "two" "three" "too many">>
<OBJECT TAXI
(IN GLOBAL-OBJECTS)
(SYNONYM TAXI CAB)
(DESC "taxi")
(ACTION TAXI-F)
(FLAGS NDESCBIT)>
<ROUTINE TAXI-F ()
<COND (<VERB? PHONE>
<TELL
"Since this is late on a rainy, disgusting night, the taxi company has
all its telephones off the hook. Too bad." CR>)>>
<OBJECT HANDS
(IN GLOBAL-OBJECTS)
(DESC "hands")
(SYNONYM HANDS)
(ACTION HANDS-F)
(FLAGS NDESCBIT)>
<ROUTINE HANDS-F ()
<COND (<VERB? BRUSH>
<COND (<GLOBAL-IN? ,SINK ,HERE>
<PERFORM ,V?BRUSH ,HANDS ,SINK>
<RTRUE>)
(ELSE
<TELL "There are sinks in the bathrooms." CR>)>)>>
<OBJECT FOOD
(IN LOCAL-GLOBALS)
(DESC "food")
(SYNONYM D\'OEUVRES OEUVRES MUNCHIES FOOD)
(ADJECTIVE HORS SHRIMP SANDWICHES)
(ACTION FOOD-F)
(FLAGS FOODBIT NDESCBIT TAKEBIT TRYTAKEBIT)>
<ROUTINE FOOD-F ()
<COND (<VERB? THROW THROW-AT THROW-THROUGH>
<TELL "This isn't \"Animal House.\"" CR>)
(<VERB? TAKE>
<TELL
"I suppose you plan to take it home in your pockets and eat it later?" CR>)
(<VERB? EAT SMELL>
<TELL
"Not bad. Obviously " 'VERONICA " found a good caterer." CR>)>>
<OBJECT GLOBAL-CHAIR
(IN LOCAL-GLOBALS)
(DESC "chair")
(SYNONYM CHAIR ARMCHAIR)
(ADJECTIVE ARM LAWN)
(FLAGS FURNITURE VEHBIT TRYTAKEBIT TAKEBIT OPENBIT)
(SIZE 100)
(ACTION GLOBAL-CHAIR-F)>
<OBJECT GLOBAL-SOFA
(IN LOCAL-GLOBALS)
(DESC "sofa")
(SYNONYM COUCH SOFA)
(ADJECTIVE LARGE)
(FLAGS FURNITURE VEHBIT TRYTAKEBIT TAKEBIT OPENBIT)
(SIZE 100)
(ACTION GLOBAL-CHAIR-F)>
<ROUTINE GLOBAL-CHAIR-F ("OPTIONAL" (RARG <>))
<COND (<EQUAL? .RARG ,M-BEG ,M-END> <RFALSE>)
(<AND <VERB? TAKE> <EQUAL? ,PRSO ,GLOBAL-CHAIR>>
<TELL ,RIDICULOUS CR>)
(<AND <VERB? PUT> <EQUAL? ,PRSI ,GLOBAL-CHAIR ,GLOBAL-SOFA>>
<FCLEAR ,PRSO ,WEARBIT>
<MOVE ,PRSO ,HERE>
<TELL
"It seems a shame to mar " THE ,PRSI " with " A ,PRSO ", so you put it on
the floor instead." CR>)
(<AND <VERB? SIT>
<EQUAL? ,PRSO ,GLOBAL-CHAIR ,GLOBAL-SOFA>
<HELD? ,CORPSE>>
<TELL CTHE ,PRSO " can't take that much weight." CR>)
(<AND <VERB? HIDE-BEHIND> <NOT ,PLAYER-HIDING>>
<NOW-CONCEALED>)>>
<ROUTINE NOW-CONCEALED ()
<SETG PLAYER-HIDING ,PRSO>
<TELL
,YOU-ARE "now concealed behind ">
<TELL-PRSO>>
<OBJECT CURTAINS
(IN LOCAL-GLOBALS)
(DESC "curtains")
(SYNONYM CURTAINS)
(FLAGS NDESCBIT)
(ACTION CURTAINS-F)>
<ROUTINE CURTAINS-F ()
<COND (<NOT <GLOBAL-IN? ,CURTAINS ,HERE>>
<TELL "There are no curtains">
<TELL-HERE>)
(<VERB? LOOK-INSIDE>
<COND (<FSET? ,HERE ,OPENBIT>
<TELL "You see darkness." CR>)
(T <TELL "The curtains are closed." CR>)>)
(<VERB? EXAMINE>
<TELL "The curtains are ">
<COND (<FSET? ,HERE ,OPENBIT> <TELL "open">)
(T <TELL "closed">)>
<TELL "." CR>)
(<VERB? OPEN>
<COND (<FSET? ,HERE ,OPENBIT>
<TELL ,THEY-ARE-ALREADY "open." CR>)
(ELSE
<FSET ,HERE ,OPENBIT>
<TELL ,CURTAINS-ARE "open." CR>)>)
(<VERB? CLOSE>
<COND (<NOT <FSET? ,HERE ,OPENBIT>>
<TELL ,THEY-ARE-ALREADY "closed." CR>)
(ELSE
<FCLEAR ,HERE ,OPENBIT>
<TELL ,CURTAINS-ARE "closed." CR>)>)>>
<GLOBAL THEY-ARE-ALREADY "They are already ">
<GLOBAL CURTAINS-ARE "Okay, the curtains are ">
<OBJECT WINDOW
(IN LOCAL-GLOBALS)
(SYNONYM WINDOW)
(DESC "window")
(ACTION WINDOW-F)
(FLAGS WINDOWBIT NDESCBIT)>
<ROUTINE WINDOW-F ()
<COND (<VERB? OPEN CLOSE>
<TELL
"All the windows are closed and locked. The house has a reasonably
serious security setup." CR>)
(<VERB? LOOK-INSIDE LOOK-OUTSIDE>
<COND (<OR <FSET? ,HERE ,OPENBIT>
<NOT <GLOBAL-IN? ,CURTAINS ,HERE>>>
<PERFORM ,V?EXAMINE ,WEATHER>
<RTRUE>)
(ELSE
<TELL "The curtains are drawn." CR>)>)>>
<OBJECT GLOBAL-PLANTS
(IN LOCAL-GLOBALS)
(SYNONYM PLANTS POTS PLANT POT)
(DESC "plant")
(ACTION GLOBAL-PLANTS-F)
(FLAGS WINDOWBIT NDESCBIT)>
<ROUTINE GLOBAL-PLANTS-F ()
<COND (<VERB? EXAMINE>
<TELL
"These are ">
<COND (<EQUAL? ,HERE ,PORCH>
<TELL "small potted shrubs, bushes">)
(T
<TELL "large shrubs, bushes, trees">)>
<TELL ", and so on." ,DOING-WELL CR>)
(<VERB? TAKE MUNG EAT>
<TELL-CARE>)>>
<OBJECT HOUSE
(IN GLOBAL-OBJECTS)
(SYNONYM HOUSE)
(ADJECTIVE FARM)
(DESC "house")
(ACTION HOUSE-F)
(FLAGS NDESCBIT)>
<ROUTINE HOUSE-F ()
<COND (<VERB? EXAMINE>
<COND (<OUTSIDE? ,HERE>
<TELL
"It's dark, but you know that the Ashcroft house is a large, mostly
colonial structure. It was extensively rebuilt in the late nineteenth
century. It is partly brick, and partly white-painted wood." CR>)
(T
<TELL "The house is in good repair." CR>)>)>>
<OBJECT KEY
(IN GLOBAL-OBJECTS)
(SYNONYM KEY KEYS)
(DESC "key")
(ACTION KEY-F)
(FLAGS NDESCBIT)>
<ROUTINE KEY-F ()
<COND (<VERB? FIND>
<TELL "I don't know where the keys are." CR>)>>
<OBJECT STAIR
(IN LOCAL-GLOBALS)
(SYNONYM STAIR STAIRS)
(DESC "stair")
(ACTION STAIR-F)
(FLAGS NDESCBIT)>
<ROUTINE STAIR-F ()
<COND (<VERB? CLIMB-FOO CLIMB-UP>
<DO-WALK ,P?UP>
<RTRUE>)
(<VERB? CLIMB-DOWN>
<DO-WALK ,P?DOWN>
<RTRUE>)>>
<OBJECT PARTY
(IN GLOBAL-OBJECTS)
(SYNONYM PARTY)
(DESC "party")
(ACTION PARTY-F)
(FLAGS NDESCBIT)>
<ROUTINE PARTY-F ()
<COND (<VERB? LEAVE>
<TELL
"Don't be such a wet blanket!" CR>)>>