1652 lines
43 KiB
Plaintext
1652 lines
43 KiB
Plaintext
"GLOBALS for
|
|
TOA #2
|
|
(c) Copyright 1984 Infocom, Inc. All Rights Reserved.
|
|
"
|
|
|
|
<DIRECTIONS NORTH EAST WEST SOUTH UP DOWN IN OUT SE SW NE NW>
|
|
|
|
"SUBTITLE GLOBAL OBJECTS"
|
|
|
|
|
|
<OBJECT GLOBAL-OBJECTS
|
|
(FLAGS RMUNGBIT INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT VICBIT DOORBIT
|
|
TURNBIT PERSON VOWELBIT OPENBIT SEARCHBIT TRANSBIT WEARBIT ONBIT
|
|
TOOLBIT RENTBIT PUSHBIT WORNBIT)
|
|
;(FDESC "")
|
|
;(LDESC "")
|
|
;(TEXT "")
|
|
;(SIZE 0)
|
|
;(VALUE 0)
|
|
;(CAPACITY 0)>
|
|
|
|
<OBJECT LOCAL-GLOBALS
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM ZZMGCK)
|
|
;(DESCFCN 0)
|
|
;(GLOBAL GLOBAL-OBJECTS)
|
|
;(PSEUDO "FOOBAR" V-WAIT)
|
|
;(CONTFCN 0)
|
|
;(SIZE 0)>
|
|
;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
|
|
|
|
<OBJECT ROOMS>
|
|
|
|
<OBJECT RED-HERRING
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "thingy")
|
|
(SYNONYM COMBIN)
|
|
(ACTION RED-HERRING-F)>
|
|
|
|
<ROUTINE RED-HERRING-F ()
|
|
<COND (<VERB? ASK-ABOUT>
|
|
<RFALSE>)
|
|
(T <GLOBAL-NOT-HERE-PRINT ,RED-HERRING>)>>
|
|
|
|
;<OBJECT FOO-TOOL
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM HAMMER CROWBA EXPLOS MACHET)
|
|
(DESC "such thing")>
|
|
|
|
;<OBJECT FINGER
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS SURFACEBIT OPENBIT CONTBIT TOUCHBIT)
|
|
(CAPACITY 1)
|
|
(SYNONYM FINGER)
|
|
(DESC "finger")
|
|
;(ACTION FINGER-FCN)>
|
|
|
|
;<ROUTINE FINGER-FCN ()
|
|
<COND (<AND <VERB? PUT-ON>
|
|
<PRSI? ,FINGER>>
|
|
<PERFORM ,V?WEAR ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? EXAMINE LOOK-INSIDE>
|
|
<COND (<FSET? ,RING ,WEARBIT>
|
|
<TELL "Sitting on your finger is a ring." CR>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "It's part of your hands." CR>
|
|
<RTRUE>)>)>>
|
|
|
|
<OBJECT INTNUM
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM INTNUM)
|
|
;(DESC "number")
|
|
(SDESC "number")
|
|
(ACTION INTNUM-F)>
|
|
|
|
<ROUTINE INTNUM-F ()
|
|
<COND (<AND <VERB? GIVE WITHDRAW>
|
|
<NOT ,P-DOLLAR-FLAG>>
|
|
<TELL "Next time, tell me what there's " N ,P-NUMBER " of." CR>
|
|
<SETG CLOCK-WAIT T>
|
|
<RFATAL>)
|
|
(<AND ,P-DOLLAR-FLAG
|
|
<NOT <VERB? WITHDRAW TAKE ASK-FOR>>
|
|
<==? ,WINNER ,PLAYER>
|
|
<G? ,P-AMOUNT ,POCKET-CHANGE>>
|
|
<TELL-DONT-HAVE "that much">)>>
|
|
|
|
<OBJECT INTDIR
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM INTDIR)
|
|
(ADJECTIVE NORTH EAST SOUTH WEST NE NW SE SW)
|
|
;(FLAGS TOOLBIT)
|
|
(DESC "direction")>
|
|
|
|
<OBJECT PSEUDO-OBJECT
|
|
;(DESC "pseudo")
|
|
(SDESC "bunch of clothes")
|
|
(DESCFCN 0)
|
|
(ACTION CRETIN-F)>
|
|
|
|
<OBJECT IT
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM IT THAT HIM HER)
|
|
(DESC "random object")
|
|
(FLAGS NDESCBIT TOUCHBIT)>
|
|
|
|
<OBJECT AIR
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "air")
|
|
(FLAGS VOWELBIT CONTBIT OPENBIT)
|
|
(SYNONYM AIR OXYGEN)
|
|
(TEXT "Air being what it is, you can't see it.")
|
|
(ACTION AIR-F)>
|
|
|
|
<ROUTINE AIR-F ()
|
|
<COND (<VERB? SMELL TASTE>
|
|
<COND (<AND <AIRTIGHT-ROOM?>
|
|
<NOT <FSET? ,MASK ,WORNBIT>>>
|
|
<TELL "The air is musty but breathable." CR>)
|
|
(<EQUAL? ,HERE ,MM-ENGINE-ROOM ,NW-ENGINE-ROOM>
|
|
<TELL "The air is heavy with diesel fumes." CR>)
|
|
(<==? <GETP ,HERE ,P?LINE> ,UNDERWATER-LINE-C>
|
|
<TELL
|
|
"It feels a whole lot better than the water you could be breathing." CR>)
|
|
(T
|
|
<TELL "You find nothing special about the air." CR>)>)
|
|
(<VERB? OPEN CLOSE>
|
|
<TELL "I think you're an air head." CR>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<PERFORM ,V?LOOK>
|
|
<RTRUE>)
|
|
(<AND <EQUAL? ,PRSI ,AIR>
|
|
<VERB? THROW DROP>>
|
|
<PERFORM ,PRSA ,PRSO ,GROUND>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT GROUND ;"was GROUND"
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM FLOOR GROUND)
|
|
(ADJECTIVE OCEAN)
|
|
(DESC "floor")
|
|
(ACTION FLOOR-F)>
|
|
|
|
<ROUTINE FLOOR-F ()
|
|
<COND (<AND <VERB? PUT-ON PUT>
|
|
<PRSI? ,GROUND>>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT DECK
|
|
(IN LOCAL-GLOBALS)
|
|
(SYNONYM DECK)
|
|
(ADJECTIVE NORTH SOUTH EAST WEST);"my fingers are crossed"
|
|
(DESC "deck")
|
|
(ACTION DECK-F)>
|
|
|
|
<ROUTINE DECK-F ()
|
|
<COND (<VERB? WALK-TO>
|
|
<TELL-SHD-DIR>)
|
|
(<AND <VERB? PUT-ON PUT>
|
|
<PRSI? ,DECK>>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT FLOOR-HOLE-1
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "hole")
|
|
(SYNONYM HOLE HATCH HATCHW)
|
|
(ADJECTIVE BOTTOM LOWER)
|
|
(FLAGS INVISIBLE)
|
|
(ACTION FLOOR-HOLE-F)>
|
|
|
|
<OBJECT FLOOR-HOLE-2
|
|
(IN LOCAL-GLOBALS)
|
|
;(DESC "hole")
|
|
(SDESC "hole")
|
|
(SYNONYM HOLE HATCH HATCHW)
|
|
(ADJECTIVE BOTTOM LOWER)
|
|
(FLAGS INVISIBLE)
|
|
(ACTION FLOOR-HOLE-F)>
|
|
|
|
<ROUTINE FLOOR-HOLE-F ()
|
|
<COND (<VERB? THROUGH>
|
|
<DO-WALK ,P?DOWN>
|
|
<RTRUE>)
|
|
(<VERB? LOOK-INSIDE ;LOOK-DOWN>
|
|
<TELL-YOU-CANT "make anything out on the other side.">)
|
|
(<VERB? EXAMINE>
|
|
<COND (<AND <==? ,HERE ,WRECK-5>
|
|
<NOT ,WRECK-5-FLOODED>>
|
|
<TELL "There's water on the other side." CR>)
|
|
(T <TELL-LOOKS-HOLE>)>)>>
|
|
|
|
<ROUTINE TELL-LOOKS-HOLE ()
|
|
<TELL "It looks a lot like a hole." CR>>
|
|
|
|
<OBJECT CEILING-HOLE-1
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "hole")
|
|
(SYNONYM HOLE HATCH HATCHW)
|
|
(ADJECTIVE TOP UPPER)
|
|
(FLAGS INVISIBLE)
|
|
(ACTION CEILING-HOLE-F)>
|
|
|
|
<OBJECT CEILING-HOLE-2
|
|
(IN LOCAL-GLOBALS)
|
|
;(DESC "hole")
|
|
(SDESC "hole")
|
|
(SYNONYM HOLE HATCH HATCHW)
|
|
(ADJECTIVE TOP UPPER)
|
|
(FLAGS INVISIBLE)
|
|
(ACTION CEILING-HOLE-F)>
|
|
|
|
<ROUTINE CEILING-HOLE-F ()
|
|
<COND (<VERB? THROUGH>
|
|
<DO-WALK ,P?UP>
|
|
<RTRUE>)
|
|
(<VERB? LOOK-INSIDE ;LOOK-UP>
|
|
<TELL-YOU-CANT "make anything out on the other side.">)
|
|
(<VERB? EXAMINE>
|
|
<TELL-LOOKS-HOLE>)>>
|
|
|
|
<OBJECT HOLE
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT)
|
|
(DESC "hole")
|
|
(SYNONYM HOLE)
|
|
(ADJECTIVE SMALL)
|
|
(ACTION HOLE-F)>
|
|
|
|
<ROUTINE HOLE-F ()
|
|
<COND (<VERB? DRILL>
|
|
<RFALSE>)
|
|
(T <GLOBAL-NOT-HERE-PRINT ,HOLE>)>>
|
|
|
|
<OBJECT BULKHEADS
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "bulkhead")
|
|
(SYNONYM BULKHE)>
|
|
|
|
<OBJECT WALLS
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "wall")
|
|
(SYNONYM WALL WALLS)>
|
|
|
|
<OBJECT CEILING
|
|
(IN GLOBAL-OBJECTS)
|
|
(FLAGS NDESCBIT TOUCHBIT)
|
|
(DESC "ceiling")
|
|
(SYNONYM CEILIN)>
|
|
|
|
<OBJECT MAST
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "mast")
|
|
(SYNONYM MAST MASTS)
|
|
(ADJECTIVE ROTTIN)
|
|
(FLAGS INVISIBLE)
|
|
(ACTION MAST-F)>
|
|
|
|
<ROUTINE MAST-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL "There are several rotting masts here.">
|
|
<COND (<==? ,HERE ,WRECK-1>
|
|
<TELL
|
|
" The top of one has fallen into a hole at your feet.">)>
|
|
<CRLF>)
|
|
(<VERB? CLIMB-FOO>
|
|
<TELL "None of the masts looks sturdy enough." CR>)>>
|
|
|
|
;<OBJECT HANDS
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM HAND HANDS PAIR ARMS)
|
|
(ADJECTIVE ARM)
|
|
(DESC "pair of hands")
|
|
(FLAGS NDESCBIT TOOLBIT WEAPONBIT TOUCHBIT)
|
|
;(ACTION READ-PALMS-F)>
|
|
|
|
;<ROUTINE READ-PALMS-F ()
|
|
<COND (<VERB? READ>
|
|
<TELL "I don't read palms." CR>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT LIGHTHOUSE
|
|
(IN LOCAL-GLOBALS)
|
|
(SYNONYM LIGHTH BEACON)
|
|
(DESC "lighthouse")
|
|
(ACTION LIGHTHOUSE-F)>
|
|
|
|
<ROUTINE LIGHTHOUSE-F ()
|
|
<COND (<EQUAL? ,HERE ,WINDING-ROAD-1>
|
|
<COND (<VERB? THROUGH OPEN>
|
|
<TELL "The door is locked." CR>
|
|
<RTRUE>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"You can see the base of a " D ,LIGHTHOUSE ". ">
|
|
<TELL-CLOSED
|
|
"door, which has lettering stencilled on it,">
|
|
<RTRUE>)>)
|
|
(T
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The " D ,LIGHTHOUSE " towers over Hardscrabble Island from the
|
|
island's northwest corner.">
|
|
<COND (<OR <G? ,PRESENT-TIME 1200>
|
|
<L? ,PRESENT-TIME 480>>
|
|
<TELL
|
|
" Its light provides a beacon for ships.">)>
|
|
<CRLF>
|
|
<RTRUE>)
|
|
(<VERB? WALK-TO>
|
|
<TELL-SHD-DIR>
|
|
;<TELL "You must supply a " D ,INTDIR "!" CR>)
|
|
(<VERB? FIND>
|
|
<RFALSE>)
|
|
(<VERB? ASK-ABOUT>
|
|
<COND (<FSET? ,PRSO ,VICBIT>
|
|
<TELL "\"It's been there forever.\"" CR>)>)
|
|
(T
|
|
<TELL "That would be difficult from this distance." CR>)>)>>
|
|
|
|
<OBJECT GLOBAL-TREASURE
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM TREASU)
|
|
(DESC "treasure")
|
|
(ACTION GLOBAL-TREASURE-F)>
|
|
|
|
<ROUTINE GLOBAL-TREASURE-F ()
|
|
<COND (<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT TELL>
|
|
<RFALSE>)
|
|
(<VERB? FIND>
|
|
<COND (<==? ,WINNER ,PLAYER>
|
|
<TELL-NOT-EASY>)
|
|
(T <TELL "\"I'd like to know where some is.\"" CR>)>)
|
|
(T <GLOBAL-NOT-HERE-PRINT ,GLOBAL-TREASURE>)>>
|
|
|
|
<OBJECT TRAWLER
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "Night Wind")
|
|
(SYNONYM TRAWLE WIND BOAT SHIP)
|
|
(ADJECTIVE NIGHT)
|
|
(FLAGS RENTBIT)
|
|
(LINE 4)
|
|
(ACTION TRAWLER-F)>
|
|
|
|
<ROUTINE TRAWLER-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (<==? <GETP ,HERE ,P?LINE> ,TRAWLER-LINE-C>
|
|
<TELL
|
|
"The " D ,TRAWLER " is in decent shape." CR>)
|
|
(<AND <==? ,HERE ,MM-WHEELHOUSE>
|
|
,AT-SEA>
|
|
<GLOBAL-NOT-HERE-PRINT ,TRAWLER>)
|
|
(T
|
|
<TELL "The " D ,TRAWLER>
|
|
<TELL-BOAT-DESC>)>)
|
|
(<VERB? BOARD THROUGH>
|
|
<COND (<==? ,HERE ,WHARF>
|
|
<DO-WALK ,P?WEST>)
|
|
(<AND <==? ,HERE ,UNDERWATER>
|
|
<==? ,DEPTH 50>>
|
|
<DO-WALK ,P?UP>)
|
|
(T <TELL-YOU-CANT "get there from here.">)>
|
|
<RTRUE>)
|
|
(<VERB? DISEMBARK>
|
|
<COND (,AT-SEA
|
|
<COND (<GLOBAL-IN? ,RAILING ,HERE>
|
|
<PERFORM ,V?DIVE>
|
|
<RTRUE>)
|
|
(T <TELL-NO-EXIT>)>)
|
|
(<==? ,HERE ,NW-STARBOARD-DECK>
|
|
<DO-WALK ,P?EAST>)
|
|
(T <TELL-NO-EXIT>)>)
|
|
(<AND <VERB? LISTEN>
|
|
,AT-SEA>
|
|
<TELL-THRUM>)
|
|
(<VERB? LAUNCH>
|
|
<TELL-YOU-CANT "do it alone.">)>>
|
|
|
|
<ROUTINE TELL-NO-EXIT ()
|
|
<TELL-HOW-THAT "do" "from here">>
|
|
|
|
<ROUTINE TELL-HOW-THAT (STR "OPTIONAL" (LAST <>))
|
|
<TELL "How can you " .STR " that">
|
|
<COND (.LAST <TELL " " .LAST>)>
|
|
<TELL "?" CR>>
|
|
|
|
<ROUTINE TELL-BOAT-DESC ()
|
|
<TELL " looks weathered but not aged." CR>>
|
|
|
|
<ROUTINE TELL-THRUM ()
|
|
<TELL "You hear the powerful thrum of diesel engines." CR>>
|
|
|
|
<OBJECT SALVAGER
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "Mary Margaret")
|
|
(SYNONYM SALVAG MARGAR SHIP BOAT)
|
|
(ADJECTIVE MARY)
|
|
(FLAGS RENTBIT)
|
|
(LINE 5)
|
|
(ACTION SALVAGER-F)>
|
|
|
|
<ROUTINE SALVAGER-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<COND (<==? <GETP ,HERE ,P?LINE> ,SALVAGER-LINE-C>
|
|
<TELL
|
|
"The " D ,SALVAGER " is shipshape." CR>)
|
|
(<AND <==? ,HERE ,NW-WHEELHOUSE>
|
|
,AT-SEA>
|
|
<GLOBAL-NOT-HERE-PRINT ,SALVAGER>)
|
|
(T
|
|
<TELL "The " D ,SALVAGER " is a medium-size boat that">
|
|
<TELL-BOAT-DESC>)>)
|
|
(<VERB? BOARD THROUGH>
|
|
<COND (<==? ,HERE ,WHARF>
|
|
<DO-WALK ,P?EAST>)
|
|
(<AND <==? ,HERE ,UNDERWATER>
|
|
<==? ,DEPTH 50>>
|
|
<DO-WALK ,P?UP>)
|
|
(T <TELL-YOU-CANT "get there from here.">)>
|
|
<RTRUE>)
|
|
(<VERB? DISEMBARK>
|
|
<COND (,AT-SEA
|
|
<COND (<GLOBAL-IN? ,RAILING ,HERE>
|
|
<PERFORM ,V?DIVE>
|
|
<RTRUE>)
|
|
(T <TELL-NO-EXIT>)>)
|
|
(<==? ,HERE ,MM-PORT-DECK>
|
|
<DO-WALK ,P?WEST>)
|
|
(T <TELL-NO-EXIT>)>)
|
|
(<AND <VERB? LISTEN>
|
|
,AT-SEA>
|
|
<TELL-THRUM>)
|
|
(<VERB? LAUNCH>
|
|
<TELL-YOU-CANT "do it alone.">)>>
|
|
|
|
<OBJECT SHIPWRECK
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "shipwreck")
|
|
(SYNONYM WRECK SHIPWR SHIP)
|
|
(ADJECTIVE ROTTEN)
|
|
(ACTION SHIPWRECK-F)>
|
|
|
|
<ROUTINE SHIPWRECK-F ()
|
|
<COND (<VERB? DISEMBARK>
|
|
<TELL-NOT-EASY>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "It is what's left of a ">
|
|
<COND (<EQUAL? ,WRECK-CHOSEN 1 3>
|
|
<TELL "wooden">)
|
|
(T <TELL "steel">)>
|
|
<TELL " ship." CR>)>>
|
|
|
|
<OBJECT GLOBAL-SLEEP
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "sleep")
|
|
(SYNONYM SLEEP)
|
|
(ACTION GLOBAL-SLEEP-F)>
|
|
|
|
<ROUTINE GLOBAL-SLEEP-F ()
|
|
<COND (<VERB? WALK-TO>
|
|
<PERFORM ,V?SLEEP>
|
|
<RTRUE>)
|
|
(T <TELL "Huh? Wake up!" CR>)>>
|
|
|
|
;<OBJECT GLOBAL-MEETING
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "meeting")
|
|
(SYNONYM MEETING)
|
|
(ACTION GLOBAL-MEETING-F)>
|
|
|
|
;<ROUTINE GLOBAL-MEETING-F ()
|
|
<COND (<VERB? LAMP-ON>
|
|
<TELL-YOURE-NOT "Tip O'Neill.">)
|
|
(<VERB? EXAMINE>
|
|
<TELL "How do you propose I do that?" CR>)>>
|
|
|
|
<OBJECT FIELD
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "abandoned field")
|
|
(SYNONYM FIELD WEEDS)
|
|
(ADJECTIVE ABANDO OVERGR)
|
|
(FLAGS VOWELBIT)
|
|
(ACTION FIELD-F)>
|
|
|
|
<ROUTINE FIELD-F ()
|
|
<COND (<VERB? BOARD THROUGH>
|
|
<TELL-YOU-CANT "make your way through the growth.">)
|
|
(<VERB? LOOK-BEHIND>
|
|
<TELL <PICK-ONE ,YUKS> CR>)
|
|
(<VERB? CUT>
|
|
<TELL-DONT-HAVE "all week">)
|
|
(<VERB? PLAY>
|
|
<TELL "Sounds exciting." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"This field was once productive farmland but hasn't been tended for many
|
|
years." CR>)>>
|
|
|
|
<OBJECT ROCKS
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "rocky coastline")
|
|
(SYNONYM ROCKS COASTL)
|
|
(ADJECTIVE ROCKY)
|
|
(ACTION ROCKS-F)>
|
|
|
|
<ROUTINE ROCKS-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The rocks here are large, pointy, and impossible to get through." CR>)
|
|
(<VERB? BOARD THROUGH>
|
|
<TELL-YOU-CANT "get through the rocks.">)>>
|
|
|
|
<OBJECT POCKET
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "pocket")
|
|
(SYNONYM POCKET)
|
|
(FLAGS CONTBIT OPENBIT)
|
|
(TEXT "You keep your money in it.")
|
|
(ACTION POCKET-F)>
|
|
|
|
<ROUTINE POCKET-F ()
|
|
<COND (<OR <FSET? ,WET-SUIT ,WORNBIT>
|
|
<FSET? ,DEEP-SUIT ,WORNBIT>>
|
|
<TELL "Your diving gear is over the pocket." CR>)
|
|
(<AND <VERB? TAKE>
|
|
<PRSO? ,GLOBAL-MONEY ,RIDICULOUS-MONEY-KLUDGE>>
|
|
<TELL-FLASHING-CASH>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<TELL "There is $" N ,POCKET-CHANGE " in it." CR>)
|
|
(<VERB? EMPTY>
|
|
<TELL "You think better of the idea." CR>)
|
|
(<VERB? OPEN>
|
|
<TELL "It's open enough." CR>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,POCKET>>
|
|
<COND (<AND ,P-DOLLAR-FLAG
|
|
<PRSO? ,INTNUM>
|
|
<G? ,P-AMOUNT ,POCKET-CHANGE>>
|
|
<TELL-DONT-HAVE "that much">)
|
|
(<OR <PRSO? ,GLOBAL-MONEY ,RIDICULOUS-MONEY-KLUDGE>
|
|
<AND <PRSO? ,INTNUM> ,P-DOLLAR-FLAG>>
|
|
<TELL-ALREADY "there">)
|
|
(T <TELL-NO-FIT>)>)>>
|
|
|
|
<ROUTINE TELL-NO-FIT ("OPTIONAL" (STR <>))
|
|
<TELL "It won't fit">
|
|
<COND (.STR <TELL " " .STR>)>
|
|
<TELL "." CR>>
|
|
|
|
<OBJECT PEOPLE
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "bunch of people")
|
|
(SYNONYM PEOPLE)
|
|
(ACTION PEOPLE-F)>
|
|
|
|
<ROUTINE PEOPLE-F ()
|
|
<COND (<EQUAL? ,HERE ,SHANTY ,FERRY-LANDING>
|
|
<TELL "Leave them alone. They're not bothering you." CR>)
|
|
(<OR <IN? ,HERE ,WEASEL>
|
|
<IN? ,HERE ,JOHNNY>
|
|
<IN? ,HERE ,PETE>
|
|
<IN? ,HERE ,SPEAR-CARRIER>
|
|
<IN? ,HERE ,DELIVERY-BOY>>
|
|
<TELL-REFER-INDIVIDUAL "s">)
|
|
(T <GLOBAL-NOT-HERE-PRINT ,PEOPLE>)>>
|
|
|
|
<ROUTINE TELL-REFER-INDIVIDUAL (STR)
|
|
<TELL "Refer to individual" .STR "." CR>>
|
|
|
|
<OBJECT WALLPAPER
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "wallpaper")
|
|
(SYNONYM WALLPA)
|
|
(ADJECTIVE FADED DRAB OFF-WH)
|
|
(TEXT "It's faded to a drab off-white.")>
|
|
|
|
;<ROUTINE WALLPAPER-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL "It's a drab off-white." CR>)>>
|
|
|
|
<OBJECT CARPET
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "carpeting")
|
|
(SYNONYM CARPET RUG)
|
|
(ADJECTIVE DRAB WORN)
|
|
(TEXT "It's drab and worn.")>
|
|
|
|
;<ROUTINE CARPET-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL "It's drab and worn." CR>)>>
|
|
|
|
<OBJECT GLOBAL-SURFACE ;"local that moves"
|
|
(IN RED-BOAR-INN)
|
|
;(DESC "counter")
|
|
(SDESC "counter")
|
|
(SYNONYM TABLE DESK COUNTE DRAWER)
|
|
(FLAGS SURFACEBIT CONTBIT OPENBIT NDESCBIT)
|
|
(CAPACITY 10)
|
|
(ACTION GLOBAL-SURFACE-F)>
|
|
|
|
<ROUTINE GLOBAL-SURFACE-F ()
|
|
<COND (<VERB? OPEN>
|
|
<TELL <PICK-ONE ,YUKS> CR>)>>
|
|
|
|
<GLOBAL SHARED-OBJECT-TABLE
|
|
<TABLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>>
|
|
<GLOBAL LAST-S-O-T-PLACE <>>
|
|
|
|
<ROUTINE MOVE-SHARED-OBJECTS (PLACE "AUX" (CTR 0) (SURFACE? T))
|
|
<COND (<==? .PLACE ,LAST-S-O-T-PLACE>
|
|
<RFALSE>)
|
|
(<EQUAL? ,LAST-S-O-T-PLACE ,MM-CREW-QTRS ,NW-CREW-QTRS>
|
|
<SET SURFACE? <>>
|
|
<UNLOAD ,UNDER-BUNK>
|
|
<UNLOAD ,BUNK>)
|
|
(<EQUAL? ,LAST-S-O-T-PLACE ,MM-GALLEY ,NW-GALLEY>
|
|
<UNLOAD ,STOVE>)
|
|
(<EQUAL? ,LAST-S-O-T-PLACE ,MM-LOUNGE ,NW-LOUNGE>
|
|
<UNLOAD ,LOUNGE-CHAIR>)>
|
|
<COND (.SURFACE?
|
|
<UNLOAD ,GLOBAL-SURFACE>)>
|
|
<COND (<NOT <EQUAL? .PLACE ,MM-CREW-QTRS ,NW-CREW-QTRS>>
|
|
<MOVE ,GLOBAL-SURFACE ,PLACE>)>
|
|
<SETG LAST-S-O-T-PLACE .PLACE>
|
|
<REPEAT ()
|
|
<COND (<G? .CTR 44> <RETURN>)
|
|
(<==? <GET ,SHARED-OBJECT-TABLE <+ .CTR 1>> .PLACE>
|
|
<MOVE <GET ,SHARED-OBJECT-TABLE .CTR>
|
|
<GET ,SHARED-OBJECT-TABLE <+ .CTR 2>>>
|
|
<PUT ,SHARED-OBJECT-TABLE .CTR 0>
|
|
<PUT ,SHARED-OBJECT-TABLE <+ .CTR 1> 0>
|
|
<PUT ,SHARED-OBJECT-TABLE <+ .CTR 2> 0>)>
|
|
<SET CTR <+ .CTR 3>>>>
|
|
|
|
<ROUTINE UNLOAD (OBJ "AUX" F N)
|
|
<COND (<SET F <FIRST? .OBJ>>
|
|
<SET N <NEXT? .F>>
|
|
<PUT-IN-TABLE .F ,LAST-S-O-T-PLACE .OBJ>
|
|
<REPEAT ()
|
|
<COND (<NOT .N> <RETURN>)>
|
|
<SET F .N>
|
|
<SET N <NEXT? .F>>
|
|
<PUT-IN-TABLE .F ,LAST-S-O-T-PLACE .OBJ>>)>>
|
|
|
|
<ROUTINE PUT-IN-TABLE (OBJ RM SURF "AUX" (CTR 0))
|
|
<COND (<==? .OBJ ,PLAYER> <RFALSE>)>
|
|
<REPEAT ()
|
|
<COND (<G? .CTR 44> <RETURN>)
|
|
(<==? <GET ,SHARED-OBJECT-TABLE .CTR> 0>
|
|
<PUT ,SHARED-OBJECT-TABLE .CTR .OBJ>
|
|
<PUT ,SHARED-OBJECT-TABLE <+ .CTR 1> .RM>
|
|
<PUT ,SHARED-OBJECT-TABLE <+ .CTR 2> .SURF>
|
|
<MOVE .OBJ ,LOCAL-GLOBALS>
|
|
<RFALSE>)
|
|
(T <SET CTR <+ .CTR 3>>)>>
|
|
<TELL "[BUG: Too much on surfaces.]" CR>>
|
|
|
|
<OBJECT GLOBAL-BANK
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM BANK TRUST)
|
|
(ADJECTIVE MARINE TRUST)
|
|
(DESC "bank")
|
|
(ACTION GLOBAL-BANK-F)>
|
|
|
|
<ROUTINE GLOBAL-BANK-F ()
|
|
<COND (<EQUAL? ,HERE ,BANK>
|
|
<COND (<VERB? EXAMINE>
|
|
<PERFORM ,V?LOOK>
|
|
<SETG P-IT-OBJECT ,GLOBAL-BANK>
|
|
<RTRUE>)
|
|
(<VERB? ROB>
|
|
<ROBBERY-ENDING>)
|
|
(<VERB? DROP EXIT>
|
|
<DO-WALK ,P?OUT>
|
|
<RTRUE>)
|
|
(<VERB? MUNG>
|
|
<TELL "This isn't Monte Carlo." CR>
|
|
<RTRUE>)>)
|
|
(<EQUAL? ,HERE ,SHORE-ROAD-2>
|
|
<COND (<VERB? THROUGH>
|
|
<DO-WALK ,P?IN>
|
|
<RTRUE>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"The " D ,BANK " is an imposing granite building." CR>
|
|
<RTRUE>)
|
|
(<VERB? ROB>
|
|
<COND (,BUSINESS-HOURS?
|
|
<ROBBERY-ENDING>)
|
|
(T <ROBBERY-ENDING <>>)>)>)
|
|
(<OR <AND <VERB? ASK-ABOUT>
|
|
<PRSI? ,GLOBAL-BANK>>
|
|
<AND <VERB? FIND WALK-TO>
|
|
<PRSO? ,GLOBAL-BANK>>>
|
|
<RFALSE>)
|
|
(T <GLOBAL-NOT-HERE-PRINT ,GLOBAL-BANK>)>>
|
|
|
|
<ROUTINE ROBBERY-ENDING ("OPTIONAL" (INSIDE? T))
|
|
<COND (.INSIDE?
|
|
<TELL
|
|
"The teller trips the alarm, and policemen come and drag you away.
|
|
As you contemplate a stretch in prison, you consider that
|
|
crime might not pay." CR>)
|
|
(T
|
|
<TELL
|
|
"You don't realize your attempts have set off a silent alarm
|
|
until the police arrive. At that point, you can only wonder if
|
|
attempted robbery wasn't such a bright idea." CR>)>
|
|
<CRLF>
|
|
<FINISH>>
|
|
|
|
<OBJECT GLOBAL-MONEY
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM MONEY CASH \$)
|
|
(DESC "money")
|
|
(ACTION GLOBAL-MONEY-F)>
|
|
|
|
<ROUTINE GLOBAL-MONEY-F ()
|
|
<COND (<VERB? ASK-FOR ASK-ABOUT STEP WHAT FOLLOW>
|
|
<RFALSE>)
|
|
(<VERB? FIND>
|
|
<TELL-NOT-EASY>
|
|
<RTRUE>)
|
|
(<G? ,POCKET-CHANGE 0>
|
|
<COND (<OR <FSET? ,WET-SUIT ,WORNBIT>
|
|
<FSET? ,DEEP-SUIT ,WORNBIT>>
|
|
<TELL-CANT-REACH "it">)
|
|
(<VERB? COUNT>
|
|
<TELL "You are carrying $" N ,POCKET-CHANGE "." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "It looks a lot like $" N ,POCKET-CHANGE "." CR>)
|
|
(<NOT <VERB? TAKE>>
|
|
<TELL-FLASHING-CASH>)>)
|
|
(<EQUAL? ,HERE ,BANK>
|
|
<TELL
|
|
"Not surprisingly, the money here is not easily accessible." CR>
|
|
<RTRUE>)
|
|
(T <GLOBAL-NOT-HERE-PRINT ,GLOBAL-MONEY>)>>
|
|
|
|
<ROUTINE TELL-FLASHING-CASH ()
|
|
<TELL "Flashing your bankroll is not a good idea." CR>>
|
|
|
|
<OBJECT FERRY-TOKEN
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM TOKEN)
|
|
(ADJECTIVE FERRY)
|
|
(DESC "ferry token")
|
|
(ACTION FERRY-TOKEN-F)>
|
|
|
|
<ROUTINE FERRY-TOKEN-F ()
|
|
<COND (<AND <IN? ,SPEAR-CARRIER ,HERE>
|
|
<OR <AND <VERB? ASK-ABOUT ASK-FOR>
|
|
<PRSO? ,SPEAR-CARRIER>>
|
|
<VERB? BUY>>>
|
|
<NO-TOKENS ,HERE>)
|
|
(<AND <VERB? ASK-ABOUT>
|
|
<FSET? ,PRSO ,PERSON>>
|
|
<TELL "\"You need them for the ferry.\"" CR>)
|
|
(<VERB? FIND ASK-FOR>
|
|
<RFALSE>)
|
|
(T <GLOBAL-NOT-HERE-PRINT ,FERRY-TOKEN>)>>
|
|
|
|
<ROUTINE NO-TOKENS (PLACE)
|
|
<COND (<==? .PLACE ,BANK>
|
|
<TELL
|
|
"The teller says, \"We're out. Try Outfitters.\"">)
|
|
(T <TELL
|
|
"The " D ,SPEAR-CARRIER " checks and then says, \"I'm afraid we're
|
|
out of tokens. Try " D ,BANK ".\"">)>
|
|
<CRLF>
|
|
<RTRUE>>
|
|
|
|
<OBJECT GLOBAL-TIME
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM TIME)
|
|
(ADJECTIVE CORREC)
|
|
(DESC "time")
|
|
(FLAGS NDESCBIT)
|
|
(ACTION GLOBAL-TIME-F)>
|
|
|
|
<ROUTINE GLOBAL-TIME-F ()
|
|
<COND (<VERB? ASK-FOR ASK-ABOUT>
|
|
<COND (<PRSO? ,SPEAR-CARRIER>
|
|
<TELL "The " D ,PRSO " checks and tells you it's ">
|
|
<TIME-PRINT ,PRESENT-TIME>
|
|
<CRLF>)
|
|
(<FSET? ,PRSO ,PERSON>
|
|
<TELL "\"I'm not sure.\"" CR>)>)
|
|
(<AND <VERB? TELL>
|
|
<PRSO? ,GLOBAL-TIME>
|
|
<NOT ,PRSI>>
|
|
<TELL
|
|
"Didn't you learn that the little hand points to the hour and the big hand
|
|
points to the minute?" CR>)
|
|
(<VERB? EXAMINE>
|
|
<PERFORM ,V?TIME>
|
|
<SETG P-IT-OBJECT ,GLOBAL-TIME>
|
|
<RTRUE>)
|
|
(<AND <VERB? TELL>
|
|
<FSET? ,PRSO ,VICBIT>
|
|
<NOT <PRSO? ,ME>>>
|
|
<RFALSE>)
|
|
(T <TELL "If you want to know the time, check your watch." CR>)>>
|
|
|
|
<OBJECT GLOBAL-DAY ;"installed under protest"
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "day")
|
|
(SYNONYM DAY)
|
|
(ACTION GLOBAL-DAY-F)>
|
|
|
|
<ROUTINE GLOBAL-DAY-F ()
|
|
<COND (<OR <AND <VERB? ASK-FOR ASK-ABOUT>
|
|
<FSET? ,PRSO ,VICBIT>>
|
|
<AND <VERB? WHAT>
|
|
<NOT <==? ,WINNER ,PLAYER>>>>
|
|
<TELL "\"Wednesday.\"" CR>)
|
|
(<VERB? WHAT> ;"waste of valuable space"
|
|
<TELL "Ask somebody." CR>)
|
|
(T <TELL-SERIOUS>)>>
|
|
|
|
<ROUTINE TELL-SERIOUS ()
|
|
<TELL "Be serious." CR>>
|
|
|
|
<OBJECT ADVENTURER
|
|
(IN BEDROOM)
|
|
(SYNONYM PLAYER ADVENT CRETIN)
|
|
(DESC "cretin")
|
|
(CHARACTER 0)
|
|
(FLAGS PERSON VICBIT NDESCBIT INVISIBLE)
|
|
(ACTION ADVENTURER-F)>
|
|
|
|
<ROUTINE ADVENTURER-F ()
|
|
<COND (<G? ,BLOOD-ALCOHOL 25>
|
|
<JIGS-UP
|
|
"You pass out and never find that you've been mugged, rolled and killed.">)
|
|
(<OR <G? ,HOW-THIRSTY 3>
|
|
<G? ,BLOOD-ALCOHOL 15>
|
|
<G? ,HOW-HUNGRY 3>
|
|
<==? ,HOW-TIRED 6>
|
|
<==? ,P-ADVERB ,W?SLOWLY>>
|
|
<COND (<OR <VERB? SLEEP WAIT>
|
|
<AND <VERB? TELL> <NOT ,PRSI>>
|
|
<GAME-COMMAND?>
|
|
,WAITED?>
|
|
<SETG WAITED? 2>
|
|
<COND (<VERB? WALK> T)
|
|
(<AND ,PRSO
|
|
<NOT <==? <META-LOC ,PRSO> ,HERE>>
|
|
<NOT <IN? ,PRSO ,GLOBAL-OBJECTS>>>
|
|
<SETG PRSO ,NOT-HERE-OBJECT>)
|
|
(<AND ,PRSI
|
|
<NOT <==? <META-LOC ,PRSI> ,HERE>>
|
|
<NOT <IN? ,PRSI ,GLOBAL-OBJECTS>>>
|
|
<SETG PRSI ,NOT-HERE-OBJECT>)>
|
|
<COND (<EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
|
|
<RETURN <NOT-HERE-OBJECT-F>>)
|
|
(T <RFALSE>)>)
|
|
(T
|
|
<SETG WAITED? 1>
|
|
<COND (<EQUAL? <CLOCKER> ,M-FATAL>
|
|
<SETG CLOCK-WAIT T>
|
|
<TELL "This interrupts what you're trying to do." CR>
|
|
<RFATAL>)
|
|
(<VERB? WALK>
|
|
<COND (<AND <NOT <IN? ,PLAYER ,UNDERWATER>>
|
|
<IN? ,PLAYER ,HERE>>
|
|
<COND (<G? ,BLOOD-ALCOHOL 15>
|
|
<TELL-YOURE-NOT
|
|
"quite sure which direction is which...">
|
|
<CRLF>
|
|
<RANDOM-WALK>)
|
|
(<PROB 40>
|
|
<TELL
|
|
"You stop to sit down for a bit and then struggle back to your feet." CR>
|
|
<RFATAL>)>)>)>)>)
|
|
(<AND <FSET? ,FLIPPERS ,WORNBIT>
|
|
<VERB? WALK>
|
|
<NOT ,AT-SEA>
|
|
<OR <L? <GETP ,HERE ,P?LINE> ,TRAWLER-LINE-C>
|
|
<AND <==? ,HERE ,MM-PORT-DECK>
|
|
<==? ,P-WALK-DIR ,P?WEST>>
|
|
<AND <==? ,HERE ,NW-STARBOARD-DECK>
|
|
<==? ,P-WALK-DIR ,P?EAST>>>>
|
|
<TELL "You'd look silly walking around in flippers." CR>)>>
|
|
|
|
<GLOBAL WAITED? <>>
|
|
|
|
<ROUTINE RANDOM-WALK ("AUX" P Z L S (D <>))
|
|
<SET P 0>
|
|
<REPEAT ()
|
|
<COND (<L? <SET P <NEXTP ,HERE .P>> ,LOW-DIRECTION>
|
|
<COND (.D
|
|
<DO-WALK .D>)>
|
|
<RETURN>)
|
|
(T
|
|
<SET Z <GETPT ,HERE .P>>
|
|
<SET L <PTSIZE .Z>>
|
|
<COND (<OR <EQUAL? .L ,UEXIT>
|
|
<AND <EQUAL? .L ,CEXIT>
|
|
<VALUE <GETB .Z ,CEXITFLAG>>>
|
|
<AND <EQUAL? .L ,DEXIT>
|
|
<FSET? <GETB .Z ,DEXITOBJ> ,OPENBIT>>>
|
|
<COND (<NOT .D> <SET D .P>)
|
|
(<PROB 50> <SET D .P>)>)>)>>>
|
|
|
|
<ROUTINE DETECTOR-NOISE ("OPTIONAL" (LISTENING? <>) "AUX" C H P Z L R
|
|
(LAST-R <>))
|
|
<SET H <META-LOC ,PLAYER>>
|
|
<COND (<AND <NOT .LISTENING?>
|
|
<VERB? LISTEN>
|
|
<PRSO? ,METAL-DETECTOR>>
|
|
<RFALSE>)
|
|
(<AND <==? <META-LOC ,METAL-DETECTOR> .H>
|
|
,DETECTOR-ON
|
|
,DETECTOR-POWERED>
|
|
<SET C <+ <COUNT-METAL .H> <GETP .H ,P?DESCFCN>>>
|
|
<SET P 0>
|
|
<REPEAT ()
|
|
<COND (<0? <SET P <NEXTP .H .P>>>
|
|
<RETURN>)
|
|
(<NOT <L? .P ,LOW-DIRECTION>>
|
|
<SET Z <GETPT .H .P>>
|
|
<SET L <PTSIZE .Z>>
|
|
<COND (<EQUAL? .L ,UEXIT ,CEXIT ,DEXIT>
|
|
<SET R <GETB .Z 0>>
|
|
<COND (<NOT <==? .R .LAST-R>>
|
|
<SET C <+ .C </ <COUNT-METAL .R> 2>
|
|
</ <GETP .R ,P?DESCFCN> 2>>>
|
|
<SET LAST-R .R>)>)
|
|
(<EQUAL? .L ,FEXIT>
|
|
<SET R <APPLY <GET .Z 0> <>>>
|
|
<COND (<AND .R <NOT <==? .R .LAST-R>>>
|
|
<SET C <+
|
|
.C
|
|
</ <COUNT-METAL .R> 2>
|
|
</ <GETP .R ,P?DESCFCN> 2>
|
|
>>
|
|
<SET LAST-R .R>)>)>)>>
|
|
<COND (<EQUAL? .C 0>
|
|
<COND (.LISTENING?
|
|
<TELL
|
|
"The " D ,METAL-DETECTOR " makes no noise." CR>
|
|
<RTRUE>)
|
|
(T <RFALSE>)>)>
|
|
<TELL "The " D ,METAL-DETECTOR " is clicking ">
|
|
<COND (<G? .C 100>
|
|
<TELL "extremely fast">)
|
|
(<G? .C 75>
|
|
<TELL "quickly">)
|
|
(<G? .C 50>
|
|
<TELL "moderately">)
|
|
(<G? .C 25>
|
|
<TELL "slowly">)
|
|
(T <TELL "occasionally">)>
|
|
<TELL "." CR>)
|
|
(.LISTENING?
|
|
<TELL "The " D ,METAL-DETECTOR " makes no noise." CR>)>>
|
|
|
|
<ROUTINE COUNT-METAL (R "AUX" F (V 0))
|
|
<SET F <FIRST? .R>>
|
|
<REPEAT ()
|
|
<COND (<NOT .F> <RETURN .V>)
|
|
(<OR <NOT <FSET? .F ,INVISIBLE>>
|
|
<EQUAL? .F ,PLAYER>>
|
|
<SET V <+ .V <GETP .F ,P?STATION>>>
|
|
<COND (<FIRST? .F>
|
|
<SET V <+ .V <COUNT-METAL .F>>>)>)>
|
|
<SET F <NEXT? .F>>>>
|
|
|
|
<OBJECT ME
|
|
(IN GLOBAL-OBJECTS)
|
|
(SYNONYM ME MYSELF)
|
|
(DESC "you")
|
|
(FLAGS PERSON VICBIT)
|
|
(ACTION CRETIN-F)>
|
|
|
|
<ROUTINE CRETIN-F ()
|
|
<COND (<NOT <EQUAL? ,PRSO ,WINNER ,ME>>
|
|
<RFALSE>)>
|
|
<COND (<VERB? EAT>
|
|
<TELL "Stick to stew." CR>)
|
|
(<VERB? DRINK>
|
|
<TELL "Stick to grog." CR>)
|
|
(<VERB? ALARM>
|
|
<TELL "Good morning!" CR>)
|
|
(<VERB? MUNG ATTACK KILL>
|
|
<TELL
|
|
"Although it's not hard, I can't make it that simple." CR>)
|
|
(<VERB? FIND>
|
|
<TELL "Have you tried asking the parrot?" CR>)
|
|
(<OR <VERB? TAKE LAMP-ON>
|
|
<AND <VERB? GIVE> <PRSO? ,ME>>>
|
|
<TELL "You romantic fool!" CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "You look like a diver." CR>)
|
|
;(<VERB? LOOK-INSIDE>
|
|
<TELL "I'm a computer, not a doctor!" CR>)
|
|
(<VERB? LOOK-UNDER>
|
|
<TELL
|
|
"I think the center of the earth is down there somewhere." CR>)
|
|
(<VERB? RUB>
|
|
<TELL "You're starting to rub me the wrong way." CR>)
|
|
(<VERB? PLAY>
|
|
<TELL "Don't expect an Oscar." CR>)
|
|
(<VERB? CLIMB-ON BOARD THROUGH>
|
|
<TELL "I'm not impressed." CR>)
|
|
;(<VERB? CLOSE>
|
|
<TELL
|
|
"I've heard of zipping one's lip..." CR>)
|
|
(<VERB? CROSS SHAKE>
|
|
<TELL "I'm much too kind." CR>)
|
|
;(<VERB? DISEMBARK>
|
|
<TELL "What makes you think you deserve it?" CR>)
|
|
(<VERB? DROP>
|
|
<TELL "Like a hot potato." CR>)
|
|
;(<VERB? LEAN-ON OPEN>
|
|
<TELL "I think you've got enough troubles." CR>)
|
|
(<VERB? FOLLOW>
|
|
<TELL "What makes you think you know where you're going?" CR>)
|
|
;(<VERB? LISTEN>
|
|
<TELL "Huh? Did you say something?" CR>)
|
|
(<VERB? SEARCH>
|
|
<TELL "Okay. I found one empty head but a strong heart." CR>)
|
|
;(<VERB? MAKE>
|
|
<TELL "What an attitude!" CR>)
|
|
(<VERB? SMELL PUSH>
|
|
<TELL "I'd rather not." CR>)
|
|
(<VERB? THROW>
|
|
<TELL "For a loop?" CR>)
|
|
;(<VERB? WEAR>
|
|
<TELL "Consider " D ,GLOBAL-SELF " worn. Happy?" CR>)
|
|
(<VERB? ROB>
|
|
<TELL "You wouldn't get much from anyone that stupid." CR>)
|
|
(T
|
|
<RFALSE>)>
|
|
<RTRUE>>
|
|
|
|
<OBJECT GLOBAL-SELF
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "yourself")
|
|
(SYNONYM SELF YOURSE)
|
|
(FLAGS VICBIT)
|
|
(ACTION GLOBAL-SELF-F)>
|
|
|
|
<ROUTINE GLOBAL-SELF-F ()
|
|
<COND (<==? ,WINNER ,PLAYER>
|
|
<COND (<PRSI? ,GLOBAL-SELF>
|
|
<SETG PRSI ,ME>)>
|
|
<COND (<PRSO? ,GLOBAL-SELF>
|
|
<SETG PRSO ,ME>)>)>
|
|
<PERFORM ,PRSA ,PRSO ,PRSI>
|
|
<RTRUE>>
|
|
|
|
<OBJECT GLOBAL-ROOM
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "room")
|
|
(SYNONYM ROOM CABIN)
|
|
(ACTION GLOBAL-ROOM-F)>
|
|
|
|
<ROUTINE GLOBAL-ROOM-F ("OPTIONAL" (PARG <>))
|
|
<COND (<==? .PARG ,M-NAME>
|
|
<PUTP ,PSEUDO-OBJECT ,P?SDESC "room">)
|
|
(<VERB? EXAMINE>
|
|
<PERFORM ,V?LOOK>
|
|
<SETG P-IT-OBJECT ,GLOBAL-ROOM>
|
|
<RTRUE>)
|
|
(<VERB? DROP EXIT DISEMBARK>
|
|
<DO-WALK ,P?OUT>
|
|
<RTRUE>)
|
|
(<VERB? ENTER THROUGH>
|
|
<DO-WALK ,P?IN>
|
|
<RTRUE>)
|
|
(<VERB? MUNG ATTACK>
|
|
<TELL "It's sturdier than you give it credit for." CR>
|
|
<RTRUE>)
|
|
(<VERB? UNLOCK>
|
|
<TELL "Please be more specific about what you want to unlock." CR>)
|
|
(<VERB? PUT>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)>>
|
|
|
|
;<OBJECT DOORWAY
|
|
(IN LOCAL-GLOBALS)
|
|
(FLAGS NDESCBIT CONTBIT OPENBIT)
|
|
(DESC "doorway")
|
|
(SYNONYM DOORWAY OPENIN)
|
|
(ADJECTIVE ARCHED TIMBER)
|
|
;(ACTION DOORWAY-FCN)>
|
|
|
|
;<ROUTINE DOORWAY-FCN ()
|
|
<COND (<VERB? EXAMINE LOOK-INSIDE>
|
|
<COND (<AND <EQUAL? ,HERE ,NORTH-ANTECHAMBER ,BURIAL-CHAMBER>
|
|
<EQUAL? ,BEAM-PLACED 4>>
|
|
<TELL
|
|
"The mast is in the doorway, running from top to bottom." CR>
|
|
<RTRUE>)
|
|
(<AND <EQUAL? ,HERE ,SOUTH-ANTECHAMBER ,ANNEX>
|
|
<EQUAL? ,BEAM-PLACED 2 3>>
|
|
<TELL
|
|
"The beam is wedged in the doorway from side to side." CR>
|
|
<RTRUE>)>)>>
|
|
|
|
<OBJECT WINDOW
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "window")
|
|
(SYNONYM WINDOW)
|
|
(FLAGS TRANSBIT)
|
|
(ACTION WINDOW-F)>
|
|
|
|
<ROUTINE WINDOW-F ()
|
|
<COND (<EQUAL? ,HERE ,BEDROOM>
|
|
<COND (<VERB? LOOK-INSIDE>
|
|
<TELL
|
|
"You see an " D ,FIELD " beyond the alley where the terrible events of last
|
|
night transpired." CR>)
|
|
(<VERB? OPEN CLOSE>
|
|
<TELL "It's stuck shut." CR>)>)
|
|
(<EQUAL? ,HERE ,BANK>
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"It is a barred window about chest-high behind which the teller transacts his
|
|
business." CR>)
|
|
(<VERB? LOOK-INSIDE LOOK-BEHIND>
|
|
<TELL "There is a teller there." CR>)>)
|
|
(<EQUAL? ,HERE ,MM-WHEELHOUSE ,NW-WHEELHOUSE>
|
|
<COND (<VERB? LOOK-INSIDE>
|
|
<TELL "You can see the ocean beyond the deck." CR>)>)>>
|
|
|
|
<OBJECT IN-WINDOW
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "window")
|
|
(SYNONYM WINDOW)
|
|
(FLAGS TRANSBIT)
|
|
(ACTION IN-WINDOW-F)>
|
|
|
|
<ROUTINE IN-WINDOW-F ("AUX" L)
|
|
<COND (<VERB? LOOK-INSIDE>
|
|
<TELL "You see ">
|
|
<COND (<AND <EQUAL? <SET L <LOC ,JOHNNY>> ,MM-WHEELHOUSE
|
|
,NW-WHEELHOUSE>
|
|
<==? <GETP ,HERE ,P?LINE> <GETP .L ,P?LINE>>>
|
|
<TELL "Johnny in ">)>
|
|
<TELL "the wheelhouse." CR>)>>
|
|
|
|
<OBJECT BEDROOM-DOOR
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "bedroom door")
|
|
(SYNONYM DOOR)
|
|
(ADJECTIVE BEDROOM MY ROOM)
|
|
(FLAGS NDESCBIT DOORBIT)
|
|
(ACTION BEDROOM-DOOR-F)>
|
|
|
|
<ROUTINE BEDROOM-DOOR-F ()
|
|
<COND (<VERB? OPEN>
|
|
<COND (<FSET? ,BEDROOM-DOOR ,OPENBIT>
|
|
<TELL-ALREADY "open">
|
|
<RTRUE>)
|
|
(<AND <EQUAL? ,HERE ,UPSTAIRS-HALLWAY>
|
|
,BEDROOM-DOOR-LOCKED>
|
|
<TELL "It's locked." CR>
|
|
<RTRUE>)
|
|
(T
|
|
<FSET ,BEDROOM-DOOR ,OPENBIT>
|
|
<SETG BEDROOM-DOOR-LOCKED <>>
|
|
<COND (<IN? ,WEASEL ,UPSTAIRS-HALLWAY>
|
|
<TELL
|
|
"You open the door and see " D ,WEASEL ". He says,
|
|
\"Oh. Hi. I was just wonderin' if you were gonna be at the meetin'
|
|
at " D ,SHANTY ".\" He turns and heads down the steps." CR>
|
|
<ESTABLISH-GOAL ,WEASEL ,SHANTY>
|
|
<DISABLE <INT I-WEASEL-TO-BEDROOM>>)
|
|
(T <TELL-NOW ,BEDROOM-DOOR "open">)>
|
|
<RTRUE>)>)
|
|
(<VERB? CLOSE>
|
|
<COND (<NOT <FSET? ,BEDROOM-DOOR ,OPENBIT>>
|
|
<TELL-ALREADY "closed">
|
|
<RTRUE>)
|
|
(T
|
|
<FCLEAR ,BEDROOM-DOOR ,OPENBIT>
|
|
<TELL-NOW ,BEDROOM-DOOR "closed">
|
|
<RTRUE>)>)
|
|
(<VERB? UNLOCK>
|
|
<COND (,BEDROOM-DOOR-LOCKED
|
|
<COND (<OR <IN? ,PLAYER ,BEDROOM>
|
|
<PRSI? ,KEY>>
|
|
<SETG BEDROOM-DOOR-LOCKED <>>
|
|
<TELL-NOW ,BEDROOM-DOOR "unlocked">)
|
|
(,PRSI
|
|
<TELL-YOU-CANT "unlock it with that!">)
|
|
(T <TELL "Not without the key." CR>)>)
|
|
(T <TELL-ALREADY "unlocked">)>)>>
|
|
|
|
<OBJECT OCEAN
|
|
(IN LOCAL-GLOBALS)
|
|
(SYNONYM WATER OCEAN SEA WAVES)
|
|
(ADJECTIVE BRINE SEA OCEAN)
|
|
(DESC "ocean")
|
|
(FLAGS OPENBIT DRINKBIT VOWELBIT)
|
|
(ACTION OCEAN-F)>
|
|
|
|
<ROUTINE OCEAN-F ("AUX" L)
|
|
<COND (<AIRTIGHT-ROOM?>
|
|
<TELL "There's no water in here." CR>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<EQUAL? <GETP ,HERE ,P?LINE> ,UNDERWATER-LINE-C>
|
|
<TELL "There is water all around you." CR>)
|
|
(T
|
|
<TELL "The ocean looks choppy">
|
|
<COND (,AT-SEA
|
|
<TELL ". Whitecaps rise and fall around the boat.">)
|
|
(T <TELL
|
|
", and you know about the dangerous currents here.">)>
|
|
<CRLF>)>)
|
|
(<VERB? LISTEN>
|
|
<TELL "You hear the crashing of the waves." CR>)
|
|
(<VERB? BOARD THROUGH SWIM>
|
|
<COND (<EQUAL? <SET L <GETP ,HERE ,P?LINE>> ,UNDERWATER-LINE-C>
|
|
<TELL "You're already in it!" CR>)
|
|
(<OR <EQUAL? .L ,TRAWLER-LINE-C ,SALVAGER-LINE-C>
|
|
<EQUAL? ,HERE ,WHARF ,FERRY-LANDING>>
|
|
<COND (,AT-SEA
|
|
<PERFORM ,V?DIVE>
|
|
<RTRUE>)
|
|
(T
|
|
<JIGS-UP
|
|
"The currents pull you in several conflicting directions, and you end up
|
|
much the worse for it.">)>)
|
|
(T <TELL-NO-SHORELINE>)>)
|
|
(<AND <VERB? DROP THROW>
|
|
<PRSI? ,OCEAN>>
|
|
<COND (<==? <GETP ,HERE ,P?LINE> ,UNDERWATER-LINE-C>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)
|
|
(T <TELL-NO-LITTER>)>)
|
|
(<VERB? SMELL>
|
|
<TELL
|
|
"It smells very salty, which is what you might expect from the sea." CR>)
|
|
(<VERB? DRINK TASTE>
|
|
<COND (<OR <G? <GETP ,HERE ,P?LINE> ,BACK-ALLEY-LINE-C>
|
|
<EQUAL? ,HERE ,FERRY-LANDING ,WHARF>>
|
|
<TELL "Bleahhhh! You spit it out immediately!" CR>)
|
|
(T <TELL-NO-SHORELINE>)>)
|
|
(<VERB? RUB>
|
|
<COND (<OR <G? <GETP ,HERE ,P?LINE> ,BACK-ALLEY-LINE-C>
|
|
<EQUAL? ,HERE ,FERRY-LANDING ,WHARF>>
|
|
<TELL "It's wet." CR>)
|
|
(T <TELL-NO-SHORELINE>)>)>>
|
|
|
|
<ROUTINE TELL-NO-SHORELINE ()
|
|
<TELL-YOU-CANT "make your way to the shoreline.">>
|
|
|
|
<ROUTINE TELL-NO-LITTER ()
|
|
<TELL "It would spoil the beauty of the sea." CR>>
|
|
|
|
<OBJECT STAIRS
|
|
(IN LOCAL-GLOBALS)
|
|
(SYNONYM STAIRS STEPS STAIRW)
|
|
(DESC "stairs")
|
|
;(FLAGS NDESCBIT CLIMBBIT TOUCHBIT)
|
|
(ACTION STAIRS-F)>
|
|
|
|
<ROUTINE STAIRS-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"The carpeted stairway leads ">
|
|
<COND (<EQUAL? ,HERE ,UPSTAIRS-HALLWAY>
|
|
<TELL "down">)
|
|
(<EQUAL? ,HERE ,RED-BOAR-INN>
|
|
<TELL "up">)>
|
|
<TELL "." CR>)
|
|
(<VERB? CLIMB-FOO>
|
|
<COND (<EQUAL? ,HERE ,UPSTAIRS-HALLWAY>
|
|
<V-CLIMB-UP ,P?DOWN>)
|
|
(T <V-CLIMB-UP>)>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT LADDER-TOP
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "ladder top")
|
|
(SYNONYM LADDER TOP)
|
|
(ADJECTIVE LADDER TOP)
|
|
(TEXT "It's the top of a ladder that leads down.")
|
|
(ACTION LADDER-TOP-F)>
|
|
|
|
<ROUTINE LADDER-TOP-F ()
|
|
<COND (<VERB? CLIMB-FOO>
|
|
<DO-WALK ,P?DOWN>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT LADDER-BOTTOM
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "ladder bottom")
|
|
(SYNONYM LADDER BOTTOM)
|
|
(ADJECTIVE LADDER BOTTOM)
|
|
(TEXT "It's the bottom of a ladder that leads up.")
|
|
(ACTION LADDER-BOTTOM-F)>
|
|
|
|
<ROUTINE LADDER-BOTTOM-F ()
|
|
<COND (<VERB? CLIMB-FOO>
|
|
<DO-WALK ,P?UP>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT RAILING
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "railing")
|
|
(SYNONYM RAILIN RAIL)
|
|
(ADJECTIVE METAL STURDY)
|
|
(TEXT "The sturdy metal railing encircles the deck.")
|
|
(ACTION RAILING-F)>
|
|
|
|
<ROUTINE RAILING-F ()
|
|
<COND (<VERB? CLIMB-FOO>
|
|
<TELL "You immediately climb back down." CR>)
|
|
(<VERB? DISEMBARK LEAP>
|
|
<PERFORM ,V?DIVE>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT BUNKS
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "collection of decrepit bunks")
|
|
(SYNONYM BUNK BUNKS COLLEC BEDS)
|
|
(ADJECTIVE OLD DECREP ROTTIN ROTTEN)
|
|
(ACTION BUNKS-F)>
|
|
|
|
<ROUTINE BUNKS-F ()
|
|
<COND (<VERB? BOARD SLEEP>
|
|
<TELL-BAD-SHAPE>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"These stacks of bunks look as though they were never comfortable.
|
|
The work of time and the sea have made them fairly
|
|
decrepit, incapable of supporting much weight." CR>)
|
|
(<VERB? MUNG>
|
|
<TELL
|
|
"Some pieces fall away, but the structure holds together." CR>)>>
|
|
|
|
<ROUTINE TELL-BAD-SHAPE ()
|
|
<TELL "They don't look as if they could support your weight." CR>>
|
|
|
|
<ROUTINE TIME-PRINT (NUM "AUX" HR (PM <>))
|
|
<COND (<G? <SET HR </ .NUM 60>> 12>
|
|
<SET HR <- .HR 12>>
|
|
<SET PM T>)
|
|
(<==? .HR 12> <SET PM T>)
|
|
(<==? .HR 0> <SET HR 12>)>
|
|
<PRINTN .HR>
|
|
<TELL ":">
|
|
<COND (<L? <SET HR <MOD .NUM 60>> 10>
|
|
<TELL "0">)>
|
|
<TELL N .HR " ">
|
|
<TELL <COND (.PM "p.m.") (T "a.m.")>>>
|
|
|
|
;"GLOBAL VARIABLES"
|
|
|
|
<GLOBAL HERE <>>
|
|
|
|
<GLOBAL LOAD-ALLOWED 100>
|
|
|
|
;<GLOBAL LOAD-MAX 0>
|
|
|
|
<GLOBAL LIT T>
|
|
|
|
;<GLOBAL DEBUG <>>
|
|
|
|
<GLOBAL WATCH-SCORE 8>
|
|
|
|
<GLOBAL WATCH-MOVES 0>
|
|
|
|
<GLOBAL SCORE 8> ;"This is actually HOURS; STATUS-LINE stuff looks for SCORE.
|
|
Normal SCORE is RATING here; initialized in VERBS."
|
|
|
|
<GLOBAL MOVES 0> ;"This is actually minutes. Moves themselves aren't counted."
|
|
|
|
<GLOBAL PRESENT-TIME 480>
|
|
|
|
<GLOBAL WATCH-WOUND T>
|
|
|
|
<GLOBAL SET-HR 0>
|
|
|
|
<GLOBAL SET-MIN 60>
|
|
|
|
<GLOBAL DELIVERY-TABLE <TABLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>>
|
|
|
|
<GLOBAL DT-PTR 0>
|
|
|
|
<GLOBAL QCONTEXT <>>
|
|
|
|
<GLOBAL QCONTEXT-ROOM <>>
|
|
|
|
<GLOBAL BEDROOM-MESSAGE <>>
|
|
|
|
<GLOBAL MEETINGS-COMPLETED 0>
|
|
|
|
<GLOBAL DETECTOR-POWERED <>>
|
|
|
|
<GLOBAL DETECTOR-ON <>>
|
|
|
|
<GLOBAL SOUPS-ON <>>
|
|
|
|
<GLOBAL HOW-TIRED 1>
|
|
|
|
<GLOBAL HOW-HUNGRY 1>
|
|
|
|
<GLOBAL WRECK-FOUND 0>
|
|
|
|
<GLOBAL WEASEL-PISSED <>>
|
|
|
|
;<GLOBAL INDENTS
|
|
<TABLE ""
|
|
" "
|
|
" "
|
|
" "
|
|
" "
|
|
" ">>
|
|
|
|
;"******************************************
|
|
Here come the pseudos
|
|
********************************************"
|
|
|
|
<ROUTINE TABLE-PSEUDO ("OPTIONAL" (PARG <>))
|
|
<COND (<==? .PARG ,M-NAME>
|
|
<PUTP ,PSEUDO-OBJECT ,P?SDESC "table">)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"The table has a variety of forms and brochures you find boring." CR>)
|
|
(<AND <VERB? PUT PUT-ON>
|
|
<PRSI? ,PSEUDO-OBJECT>>
|
|
<TELL
|
|
"A bank official scurries out, picks up the " D ,PRSO ", and hands it
|
|
to you, pointing out that the table is for bank business only." CR>
|
|
<RTRUE>)>>
|
|
|
|
<ROUTINE LIGHTHOUSE-LOCK-PSEUDO ("OPTIONAL" (PARG <>))
|
|
<COND (<==? .PARG ,M-NAME>
|
|
<PUTP ,PSEUDO-OBJECT ,P?SDESC "lock">)
|
|
(<VERB? PICK>
|
|
<TELL "You try for a while, but the lock won't give." CR>
|
|
<RTRUE>)
|
|
(<VERB? UNLOCK>
|
|
<TELL-NO-KEY>
|
|
<RTRUE>)
|
|
(<VERB? MUNG>
|
|
<TELL
|
|
"You find that the door and lock withstand your attempts." CR>
|
|
<RTRUE>)
|
|
(<VERB? LOCK>
|
|
<TELL-ALREADY "locked">
|
|
<RTRUE>)>>
|
|
|
|
<ROUTINE WHEEL-PSEUDO ("OPTIONAL" (PARG <>))
|
|
<COND (<==? .PARG ,M-NAME>
|
|
<PUTP ,PSEUDO-OBJECT ,P?SDESC "wheel">)
|
|
(<VERB? TURN SPIN>
|
|
<COND (<IN? ,JOHNNY ,HERE>
|
|
<TELL
|
|
D ,JOHNNY " glares at you. You decide to leave the piloting to the captain."
|
|
CR>)
|
|
(T <TELL "The wheel spins." CR>)>)>>
|
|
|
|
<ROUTINE BOLT-PSEUDO ("OPTIONAL" (PARG <>))
|
|
<COND (<==? .PARG ,M-NAME>
|
|
<PUTP ,PSEUDO-OBJECT ,P?SDESC "bolts">)
|
|
(T <TELL
|
|
"The bolts are rusted firmly into place." CR>)>>
|
|
|
|
;"Parser-related stuff"
|
|
|
|
<OBJECT NOT-HERE-OBJECT
|
|
(DESC "such thing" ;"[not here]")
|
|
(ACTION NOT-HERE-OBJECT-F)>
|
|
|
|
<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ)
|
|
;"This COND is game independent (except the TELL)"
|
|
<COND (<AND <EQUAL? ,PRSO ,NOT-HERE-OBJECT>
|
|
<EQUAL? ,PRSI ,NOT-HERE-OBJECT>>
|
|
<TELL "Those things aren't here." CR>
|
|
<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 WAIT-FOR
|
|
;LOOK-INSIDE ;LOOK-OUTSIDE ;SEARCH WHAT
|
|
$CALL GIVE MAKE THROUGH WALK-TO ;TELL>
|
|
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
|
|
<COND (<NOT <==? .OBJ ,NOT-HERE-OBJECT>>
|
|
<RTRUE>)>)
|
|
(T
|
|
<RFALSE>)>)>)
|
|
(T
|
|
<COND (<VERB? ASK-ABOUT ASK-FOR
|
|
;SEARCH-OBJECT-FOR SGIVE TELL>
|
|
<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"
|
|
<COND (<VERB? $CALL>
|
|
<V-CALL-LOSE>
|
|
<SETG CLOCK-WAIT <>>)
|
|
(<EQUAL? ,WINNER ,ADVENTURER>
|
|
<TELL-YOU-CANT "see any" <>>
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " here." CR>)
|
|
(T
|
|
<START-SENTENCE ,WINNER>
|
|
<TELL " seems confused. \"I don't see any">
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " here!\"" CR>)>
|
|
<SETG P-MOBY-FOUND <>>
|
|
<SETG PRSA <>>
|
|
<SETG PRSO <>>
|
|
<SETG PRSI <>>
|
|
<RFATAL>>
|
|
|
|
<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ CTR PER)
|
|
;"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 (i.e.
|
|
come up with one object)."
|
|
<SET M-F <MOBY-FIND .TBL>>
|
|
<COND (<AND <G? .M-F 1>
|
|
<SET OBJ <GETP <1 .TBL> ,P?GLOBAL>>>
|
|
<SET M-F 1>
|
|
<SETG P-MOBY-FOUND .OBJ>)>
|
|
;<COND (<AND ,DEBUG
|
|
<G? .M-F 0>>
|
|
<TELL "[MOBY-FOUND " N .M-F "; to wit:">
|
|
<SET CTR 1>
|
|
<REPEAT ()
|
|
<COND (<G? .CTR .M-F>
|
|
<TELL "]" CR>
|
|
<RETURN>)>
|
|
<TELL " " D <GET .TBL .CTR>>
|
|
<SET CTR <+ .CTR 1>>
|
|
<COND (<L? .CTR .M-F> <TELL ",">)>>)
|
|
(,DEBUG <TELL "[Nothing MOBY-FOUND.]" CR>)>
|
|
<COND (<==? 1 .M-F>
|
|
<COND (.PRSO?
|
|
<COND (<AND <VERB? TELL>
|
|
<==? ,WINNER ,PLAYER>
|
|
<FSET? ,P-MOBY-FOUND ,VICBIT>>
|
|
<SETG P-CONT <>>
|
|
<TELL-NOT-HERE-TALK>
|
|
<RTRUE>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<AND <FSET? ,P-MOBY-FOUND ,PERSON>
|
|
<NOT <0? <BAND <GETP <META-LOC ,PLAYER>
|
|
,P?CORRIDOR>
|
|
<GETP <LOC ,P-MOBY-FOUND>
|
|
,P?CORRIDOR>>>>>
|
|
<TELL
|
|
"You can see " D ,P-MOBY-FOUND " in the distance." CR>)
|
|
(<AND <PRSO? ,MCGINTY>
|
|
<IN? ,PLAYER ,BACK-ALLEY-2>
|
|
<IN? ,MCGINTY ,MCGINTY-HQ>>
|
|
<TELL
|
|
"Looking through the window, you see " D ,MCGINTY " in his office." CR>)
|
|
(T
|
|
<GLOBAL-NOT-HERE-PRINT ,PRSO>)>
|
|
<RTRUE>)
|
|
(T <SETG PRSO ,P-MOBY-FOUND>)>)
|
|
(T <SETG PRSI ,P-MOBY-FOUND>)>
|
|
<COND (<AND ,P-XADJ <NOT ,P-XNAM>> <SETG P-NONOUN T>)
|
|
(T <SETG P-NONOUN <>>)>
|
|
<RFALSE>)
|
|
(<NOT .PRSO?>
|
|
<COND (<OR <VERB? ASK-ABOUT>
|
|
<AND <VERB? TELL>
|
|
<PRSO? ,ME>>>
|
|
<COND (<PRSO? ,ME>
|
|
<COND (<AND <==? ,WINNER ,PLAYER>
|
|
,QCONTEXT
|
|
<==? ,HERE ,QCONTEXT-ROOM>>
|
|
<SET PER ,QCONTEXT>)
|
|
(T <SET PER ,WINNER>)>)
|
|
(T <SET PER ,PRSO>)>
|
|
<COND (<FSET? .PER ,VICBIT>
|
|
<SAY-CONFUSED .PER .PRSO?>)
|
|
(T <SUDDENLY-REALIZE-TALKING .PER>
|
|
;<TELL
|
|
"You realize you're talking to " A ,PRSO "." CR>)>
|
|
<RTRUE>)
|
|
(<FSET? ,PRSO ,VICBIT>
|
|
<SAY-CONFUSED ,PRSO .PRSO?>)
|
|
(T
|
|
<TELL "You wouldn't find any">
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " there." CR>
|
|
<RTRUE>)>)
|
|
(T ,NOT-HERE-OBJECT)>>
|
|
|
|
<ROUTINE GLOBAL-NOT-HERE-PRINT (OBJ)
|
|
<COND (,P-MULT <SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>)
|
|
(T
|
|
<TELL-YOU-CANT "see any" <>>
|
|
<COND (<EQUAL? .OBJ ,PRSO> <PRSO-PRINT>)
|
|
(T <PRSI-PRINT>)>
|
|
<TELL " here." CR>)>
|
|
<SETG P-WON <>>
|
|
<RTRUE>>
|
|
|
|
<ROUTINE SAY-CONFUSED (PER PRSO?)
|
|
<START-SENTENCE .PER>
|
|
<TELL " looks confused. \"I have no idea what">
|
|
<NOT-HERE-PRINT .PRSO?>
|
|
<TELL " you're talking about!\"" CR>>
|
|
|
|
<ROUTINE NOT-HERE-PRINT (PRSO?)
|
|
<COND (,P-OFLAG
|
|
<COND (,P-XADJ <TELL " "> <PRINTB ,P-XADJN>)>
|
|
<COND (,P-XNAM <TELL " "> <PRINTB ,P-XNAM>)>)
|
|
(.PRSO?
|
|
<BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
|
|
(T
|
|
<BUFFER-PRINT <GET ,P-ITBL ,P-NC2> <GET ,P-ITBL ,P-NC2L> <>>)>
|
|
<SETG P-WON <>>>
|
|
|
|
<ROUTINE TELL-YOU-CANT (STR "OPTIONAL" (FINISH T))
|
|
<TELL "You can't " .STR>
|
|
<COND (.FINISH <CRLF>)>>
|
|
|
|
<ROUTINE TELL-ROPE-HIGH ()
|
|
<TELL-CANT-REACH "the rope">>
|
|
|
|
<ROUTINE TELL-CANT-REACH (STR)
|
|
<TELL-YOU-CANT "reach " <>>
|
|
<TELL .STR "." CR>>
|
|
|
|
<ROUTINE TELL-NO-GO (PRINT?)
|
|
<COND (.PRINT? <TELL-YOU-CANT "go that way.">)>>
|
|
|
|
<ROUTINE TELL-NO-NO ()
|
|
<TELL-YOU-CANT "do that.">>
|
|
|
|
<ROUTINE TELL-NO-AFFORD ()
|
|
<TELL-YOU-CANT "afford it.">>
|
|
|
|
<ROUTINE TELL-TOO-BIG ()
|
|
<TELL-YOU-CANT "fit through the hole carrying the tank.">>
|