From a2025f6d6c8e501dbe172ec521908abefa29c333 Mon Sep 17 00:00:00 2001 From: historicalsource Date: Sun, 14 Apr 2019 13:37:43 -0400 Subject: [PATCH] Final Revision --- castle.zap | 1795 +++++ castle.zil | 2804 ++++++++ colors.zap | 754 +++ colors.zil | 4 +- global.zap | 667 ++ global.zil | 906 +++ goal.zap | 2106 ++++++ goal.zil | 3 + lumber.ozil | 910 +++ m5.chart | 455 ++ m5.errors | 41 +- m5.record | 1339 +--- m5.serial | 1 + m5.zap | 53 + m5.zil | 48 + m5.zip | Bin 128866 -> 128828 bytes m5dat.zap | 16526 +++++++++++++++++++++++++++++++++++++++++++++ m5freq.xzap | 200 + m5pur.zap | 823 +++ m5str.zap | 309 + macros.zap | 2 + misc.zap | 349 + misc.zil | 362 + moon.mud | 6 + moonmist.man | 1239 ++++ moonmist.zil | 48 + parser.cmp | 302 + parser.zap | 3161 +++++++++ parser.zil | 281 +- people.zap | 2891 ++++++++ people.zil | 52 +- places.zap | 216 + places.zil | 249 + syntax.zap | 2 + syntax.zil | 10 +- things.zap | 299 + things.zil | 432 ++ tower.zap | 1309 ++++ tower.zil | 2194 ++++++ verbs.indicative | 179 + verbs.zap | 4859 +++++++++++++ verbs.zil | 28 +- 42 files changed, 46891 insertions(+), 1323 deletions(-) create mode 100644 castle.zap create mode 100644 castle.zil create mode 100644 colors.zap create mode 100644 global.zap create mode 100644 global.zil create mode 100644 goal.zap create mode 100644 lumber.ozil create mode 100644 m5.chart create mode 100644 m5.serial create mode 100644 m5.zap create mode 100644 m5.zil create mode 100644 m5dat.zap create mode 100644 m5freq.xzap create mode 100644 m5pur.zap create mode 100644 m5str.zap create mode 100644 macros.zap create mode 100644 misc.zap create mode 100644 misc.zil create mode 100644 moon.mud create mode 100644 moonmist.man create mode 100644 moonmist.zil create mode 100644 parser.cmp create mode 100644 parser.zap create mode 100644 people.zap create mode 100644 places.zap create mode 100644 places.zil create mode 100644 syntax.zap create mode 100644 things.zap create mode 100644 things.zil create mode 100644 tower.zap create mode 100644 tower.zil create mode 100644 verbs.indicative create mode 100644 verbs.zap diff --git a/castle.zap b/castle.zap new file mode 100644 index 0000000..8c295ef --- /dev/null +++ b/castle.zap @@ -0,0 +1,1795 @@ + + + .FUNCT CASTLE-F + EQUAL? PRSA,V?FIND,V?EXAMINE \?CCL3 + CALL OUTSIDE?,HERE + ZERO? STACK /?CCL6 + EQUAL? PRSA,V?FIND \?PRG12 + PRINTR "It's right here!" +?PRG12: PRINT DARK-TURRETS + RTRUE +?CCL6: EQUAL? PRSO,CASTLE /?PRG18 + FSET? HERE,WEARBIT /?CCL15 +?PRG18: PRINTR "It's all around you!" +?CCL15: CALL NOT-HERE,TOWER + RSTACK +?CCL3: EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?BOARD \?CCL21 + EQUAL? PRSO,CASTLE \?CCL24 + CALL OUTSIDE?,HERE + ZERO? STACK /?CCL27 + FSET? FRIEND,TOUCHBIT /?CCL30 + CALL PERFORM,PRSA,COURTYARD + RTRUE +?CCL30: CALL PERFORM,PRSA,FOYER + RTRUE +?CCL27: CALL HAR-HAR + RSTACK +?CCL24: CALL OUTSIDE?,HERE + ZERO? STACK \?CTR32 + FSET? HERE,WEARBIT \?CCL33 +?CTR32: CALL PERFORM,PRSA,OLD-GREAT-HALL + RTRUE +?CCL33: CALL HAR-HAR + RSTACK +?CCL21: EQUAL? PRSA,V?LEAVE \FALSE + CALL OUTSIDE?,HERE + ZERO? STACK \?CCL40 + CALL PERFORM,V?WALK-TO,COURTYARD + RTRUE +?CCL40: CALL HAR-HAR + RSTACK + + + .FUNCT TOWER-F + EQUAL? PRSA,V?LEAVE,V?WALK-TO,V?THROUGH /?CTR2 + EQUAL? PRSA,V?FIND,V?EXAMINE,V?BOARD \?CCL3 +?CTR2: CALL CASTLE-F + RSTACK +?CCL3: CALL REMOTE-VERB? + ZERO? STACK \FALSE + FSET? HERE,WEARBIT \FALSE + CALL NOT-HERE,TOWER + RTRUE + + + .FUNCT MOON-F + EQUAL? PRSA,V?EXAMINE \?CCL3 + PRINTI "Strange shapes of mist dance in front of the " + PRINTD MOON + PRINTR "." +?CCL3: EQUAL? PRSA,V?SMELL,V?EAT \FALSE + CALL PERFORM,V?SMELL,OCEAN + RTRUE + + + .FUNCT OCEAN-F + EQUAL? PRSA,V?LISTEN \?CCL3 + PRINTR "The breakers seem to be warning you." +?CCL3: EQUAL? PRSA,V?WALK-TO,V?THROUGH \FALSE + PRINTR "The cliffs are too dangerous in the dark." + + + .FUNCT CAR-DOOR-PSEUDO + EQUAL? PRSA,V?UNLOCK /?CCL3 + EQUAL? PRSA,V?LOCK,V?CLOSE,V?OPEN \FALSE +?CCL3: CALL NO-NEED + RSTACK + + + .FUNCT DRIVING? + ZERO? P-PRSA-WORD /?CCL3 + EQUAL? P-PRSA-WORD,W?DRIVE,W?ENTER,W?STEER \FALSE +?CCL3: EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?CLIMB-UP \?CCL7 + EQUAL? PRSA,V?THROUGH \?CCL10 + EQUAL? PRSO,CAR \?CCL10 + ZERO? PRSI /?CCL15 + CALL META-LOC,PRSI + EQUAL? HERE,STACK /FALSE + SET 'PRSO,PRSI + RTRUE +?CCL15: SET 'PRSO,FRONT-GATE + RTRUE +?CCL10: CALL META-LOC,PRSO + EQUAL? HERE,STACK /FALSE + RTRUE +?CCL7: EQUAL? PRSA,V?LEAVE \?CCL22 + EQUAL? PRSO,ROOMS,CAR \TRUE + RFALSE +?CCL22: EQUAL? PRSA,V?WALK \FALSE + ZERO? P-PRSA-WORD \TRUE + EQUAL? PRSO,P?OUT \TRUE + RFALSE + + + .FUNCT CAR-F,ARG=0,S + SET 'S,HERE + EQUAL? ARG,M-BEG \?CCL3 + CALL DRIVING? + ZERO? STACK /?CCL6 + EQUAL? PRSO,FRONT-GATE \?CCL9 + EQUAL? PRSA,V?THROUGH \?CCL12 + FSET? FRONT-GATE,OPENBIT /?CCL15 + CALL TOO-BAD-BUT,FRONT-GATE,STR?61 + RSTACK +?CCL15: EQUAL? S,DRIVEWAY \?CCL17 + CALL PERFORM,V?WALK-TO,COURTYARD + RTRUE +?CCL17: CALL PERFORM,V?WALK-TO,DRIVEWAY + RTRUE +?CCL12: CALL WALK-WITHIN-ROOM + RSTACK +?CCL9: EQUAL? S,DRIVEWAY \?CCL19 + EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?CLIMB-UP \?CCL22 + CALL META-LOC,PRSO + EQUAL? DRIVEWAY,STACK \?CCL25 + CALL WALK-WITHIN-ROOM + RSTACK +?CCL25: FSET? FRONT-GATE,OPENBIT /?CCL27 + CALL TOO-BAD-BUT,FRONT-GATE,STR?61 + RSTACK +?CCL27: CALL CAR-TO-COURTYARD + RSTACK +?CCL22: EQUAL? PRSA,V?LEAVE \?CCL29 + EQUAL? PRSO,COURTYARD \?CCL32 + CALL HAR-HAR + RSTACK +?CCL32: FSET? FRONT-GATE,OPENBIT /?CCL34 + CALL TOO-BAD-BUT,FRONT-GATE,STR?61 + RSTACK +?CCL34: CALL CAR-TO-COURTYARD + RSTACK +?CCL29: EQUAL? PRSO,P?IN,P?SOUTH /?CTR35 + EQUAL? PRSO,INTDIR \?CCL36 + CALL ADJ-USED?,W?SOUTH + ZERO? STACK /?CCL36 +?CTR35: FSET? FRONT-GATE,OPENBIT /?CCL43 + CALL TOO-BAD-BUT,FRONT-GATE,STR?61 + RSTACK +?CCL43: CALL CAR-TO-COURTYARD + RSTACK +?CCL36: SET 'CLOCK-WAIT,TRUE-VALUE + PRINT CASTLE-IS-SOUTH + RTRUE +?CCL19: EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?CLIMB-UP \?CCL48 + CALL META-LOC,PRSO + EQUAL? COURTYARD,STACK \?CCL51 + CALL WALK-WITHIN-ROOM + RSTACK +?CCL51: FSET? FRONT-GATE,OPENBIT /?CCL53 + CALL TOO-BAD-BUT,FRONT-GATE,STR?61 + RSTACK +?CCL53: CALL CAR-TO-DRIVEWAY + RSTACK +?CCL48: EQUAL? PRSA,V?LEAVE \?CCL55 + EQUAL? PRSO,DRIVEWAY \?CCL58 + CALL HAR-HAR + RSTACK +?CCL58: FSET? FRONT-GATE,OPENBIT /?CCL60 + CALL TOO-BAD-BUT,FRONT-GATE,STR?61 + RSTACK +?CCL60: CALL CAR-TO-DRIVEWAY + RSTACK +?CCL55: EQUAL? PRSO,P?NORTH /?CTR61 + EQUAL? PRSO,INTDIR \?CCL62 + CALL ADJ-USED?,W?NORTH + ZERO? STACK /?CCL62 +?CTR61: FSET? FRONT-GATE,OPENBIT /?CCL69 + CALL TOO-BAD-BUT,FRONT-GATE,STR?61 + RSTACK +?CCL69: CALL CAR-TO-DRIVEWAY + RSTACK +?CCL62: EQUAL? PRSO,P?OUT \?CCL71 + EQUAL? P-PRSA-WORD,FALSE-VALUE,W?GO /FALSE + FSET? FRONT-GATE,OPENBIT /?CCL76 + CALL TOO-BAD-BUT,FRONT-GATE,STR?61 + RSTACK +?CCL76: CALL CAR-TO-DRIVEWAY + RSTACK +?CCL71: CALL YOU-CANT,STR?41 + RSTACK +?CCL6: EQUAL? PRSA,V?WALK \?CCL78 + EQUAL? PRSO,P?OUT \?CCL78 + MOVE WINNER,HERE + CALL OWN-FEET + RSTACK +?CCL78: EQUAL? PRSA,V?WALK,V?STAND,V?FOLLOW /?CTR81 + EQUAL? PRSA,V?WALK-TO,V?THROUGH,V?LEAVE \?CCL82 + ZERO? PRSO /?CCL82 + EQUAL? PRSO,LUGGAGE,ROOMS,CAR /?CCL82 +?CTR81: CALL FIRST-YOU,STR?224,CAR + MOVE WINNER,HERE + EQUAL? PRSA,V?STAND /TRUE + RFALSE +?CCL82: EQUAL? PRSO,ROOMS \FALSE + EQUAL? PRSA,V?STOP \FALSE + CALL PERFORM,PRSA,CAR + RTRUE +?CCL3: EQUAL? ARG,M-LOOK \?CCL97 + LOC WINNER + EQUAL? STACK,CAR \TRUE + PRINTI "You are sitting in your new little " + PRINTD CAR + PRINTR "." +?CCL97: ZERO? ARG \FALSE + EQUAL? PRSA,V?EXAMINE \?CCL105 + CALL TELL-ABOUT-CAR + RTRUE +?CCL105: EQUAL? PRSA,V?UNLOCK /?CCL107 + EQUAL? PRSA,V?LOCK,V?LAMP-ON,V?LAMP-OFF /?CCL107 + EQUAL? PRSA,V?OPEN,V?CLOSE,V?CLIMB-ON \FALSE +?CCL107: CALL NO-NEED,STR?225 + RSTACK + + + .FUNCT CAR-TO-COURTYARD + MOVE CAR,COURTYARD + PRINTI "Your headlights bravely pierce the gloom as you enter the " + PRINTD COURTYARD + PRINTI ". You get out of your car. +" + CALL GOTO,COURTYARD + RSTACK + + + .FUNCT CAR-TO-DRIVEWAY + SET 'CLOCK-WAIT,TRUE-VALUE + PRINTR "(You can't leave yet. There's a mystery to be solved!)" + + + .FUNCT TELL-ABOUT-CAR,X + PRINTI "Your new little " + CALL PRINT-COLOR + ZERO? STACK /?PRG7 + PRINTC 32 +?PRG7: PRINTD CAR + PRINTR " is parked here." + + + .FUNCT VOICE-F + EQUAL? HERE,DRIVEWAY \?CCL3 + ZERO? DRAGON-EYE-COLOR /FALSE + EQUAL? PRSA,V?LISTEN /?CCL6 + CALL SPEAKING-VERB? + ZERO? STACK /FALSE +?CCL6: CALL VOICE-SAYS + RSTACK +?CCL3: EQUAL? HERE,DINING-ROOM \FALSE + EQUAL? PRSA,V?LISTEN \FALSE + CALL BUST-F + RSTACK + + + .FUNCT HORN-F + EQUAL? PRSA,V?SOUND,V?SLAP /?CCL3 + EQUAL? PRSA,V?RUB,V?PUSH,V?RING \FALSE +?CCL3: GETB LAST-NAME,0 + ZERO? STACK /?CCL8 + CALL GATE-OPENS + ZERO? STACK \TRUE + PRINTR """H-O-O-O-N-K!""" +?CCL8: CALL THIS-IS-IT,VOICE + MOVE VOICE,DRIVEWAY + CALL PERFORM,V?PUSH,DRAGON-EYE + RTRUE + + + .FUNCT DRIVEWAY-F,RARG=0 + EQUAL? RARG,M-BEG \?CCL3 + EQUAL? PRSA,V?YELL \?CCL6 + CALL PERFORM,V?KNOCK,FRONT-GATE + RTRUE +?CCL6: ZERO? DRAGON-EYE-COLOR /FALSE + CALL SPEAKING-VERB? + ZERO? STACK \?CCL8 + EQUAL? PRSA,V?LISTEN \FALSE + EQUAL? PRSO,DRAGON-EYE,DRAGON,FRONT-GATE \FALSE +?CCL8: CALL VOICE-SAYS + RTRUE +?CCL3: EQUAL? RARG,M-LOOK \FALSE + PRINTI "You are by the " + FSET? FRONT-GATE,OPENBIT \?PRG23 + PRINTI "open " +?PRG23: PRINTD FRONT-GATE + PRINTI " of " + PRINTD CASTLE + PRINTI ". You can hear the ocean beating urgently against the rocks far below. +" + CALL TELL-ABOUT-DRAGON + RTRUE + + + .FUNCT DRAGON-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL3 + CALL TELL-ABOUT-DRAGON + RTRUE +?CCL3: CALL DRAGON-EYE-F + RSTACK + + + .FUNCT TELL-ABOUT-DRAGON + PRINTI "In the moonlit gloom, you can make out an ornament on the gate. It's a winged, two-legged dragon called a wyvern, which crests the " + PRINT TRESYLLIAN + PRINTI " family's coat of arms. +The dragon appears in profile. " + CALL THIS-IS-IT,DRAGON-EYE + CALL TELL-ABOUT-EYE + RTRUE + + + .FUNCT I-DRAGON-EYE,GARG=0 + GETB LAST-NAME,0 + ZERO? STACK \FALSE + CALL PERFORM,V?PUSH,DRAGON-EYE + RETURN 2 + + + .FUNCT DRAGON-EYE-F + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL3 + CALL TELL-ABOUT-EYE + RTRUE +?CCL3: EQUAL? PRSA,V?LEAP,V?CLIMB-ON,V?BOARD \?CCL5 + PRINT TOO-SLIPPERY + RTRUE +?CCL5: EQUAL? PRSA,V?TURN,V?SLAP /?CTR8 + EQUAL? PRSA,V?RUB,V?RING,V?PUSH /?CTR8 + EQUAL? PRSA,V?MUNG,V?MOVE,V?KNOCK \?CCL9 +?CTR8: LESS? DRAGON-EYE-COLOR,0 /?CND13 + SET 'DRAGON-EYE-COLOR,-1 + PRINTI "The " + PRINTD DRAGON-EYE + PRINTI " glows red. " +?CND13: EQUAL? PRSA,V?PUSH /?PRG21 + PRINTI "Evidently you just pushed a button. " +?PRG21: PRINTI "A voice comes from a hidden speaker. It says: +" + CALL VOICE-SAYS + RTRUE +?CCL9: EQUAL? PRSA,V?TAKE \FALSE + PRINTI "It's part of the " + PRINTD FRONT-GATE + PRINTR "." + + + .FUNCT TELL-ABOUT-EYE + ZERO? DRAGON-EYE-COLOR \?PRG6 + PRINTR "The moonlight glints on its lone visible eye." +?PRG6: PRINTI "The " + PRINTD DRAGON-EYE + PRINTI " is glowing " + GRTR? DRAGON-EYE-COLOR,0 \?PRG13 + PRINTR "green." +?PRG13: PRINTR "red." + + + .FUNCT VOICE-SAYS + CALL QUEUE,I-DRAGON-EYE,0 + GETB LAST-NAME,0 + ZERO? STACK /?CND1 + PRINTI """Please enter, " + CALL TITLE-NAME + ZERO? STACK /?PRG9 + PRINTC 46 +?PRG9: PRINTI """ +" + CALL GATE-OPENS + RTRUE +?CND1: CALL QUEUE,I-FRIEND-GREETS,6 + PRINTI """Please announce " + PRINTD PLAYER + PRINTI ". State your title -- such as Lord or Lady, Sir or Dame, Mr. or Ms. -- and your first and last name."" +" + CALL GET-NAME + PRINTI """And what is " + PRINTD YOUR-COLOR + PRINTI ", " + CALL TITLE-NAME + PRINTI "?"" +" + CALL GET-COLOR + PRINTI """Jolly good! The spare bedroom is decorated in " + CALL PRINT-COLOR + PRINTI "! " + PRINTI "Please enter.""" + CRLF + CALL GATE-OPENS + RTRUE + + + .FUNCT GATE-OPENS + EQUAL? HERE,DRIVEWAY \FALSE + FSET? FRONT-GATE,OPENBIT /FALSE + REMOVE VOICE + FSET FRONT-GATE,OPENBIT + FCLEAR FRONT-GATE,LOCKED + CALL THIS-IS-IT,FRONT-GATE + PRINTI "The " + EQUAL? DRAGON-EYE-COLOR,1 /?PRG16 + LESS? DRAGON-EYE-COLOR,0 \?CND10 + PRINTI "red " +?CND10: SET 'DRAGON-EYE-COLOR,1 + PRINTI "eye turns green, and the " +?PRG16: PRINTD FRONT-GATE + PRINTR " creaks open." + + + .FUNCT FRONT-GATE-F + EQUAL? PRSA,V?KNOCK \?CCL3 + PRINTR "Apparently no one hears you." +?CCL3: EQUAL? PRSA,V?UNLOCK,V?SHAKE,V?MUNG \?CCL8 + PRINTR "Except for your rattling the gate, the silence remains unbroken." +?CCL8: EQUAL? PRSA,V?LEAP,V?CLIMB-ON,V?BOARD \?CCL12 + PRINT TOO-SLIPPERY + RTRUE +?CCL12: EQUAL? PRSA,V?WALK-TO \?CCL16 + EQUAL? HERE,DRIVEWAY,COURTYARD /?CCL16 + CALL PERFORM,PRSA,COURTYARD + RTRUE +?CCL16: EQUAL? PRSA,V?OPEN \?CCL20 + FSET? FRONT-GATE,LOCKED \FALSE + PRINTR "It seems to be locked." +?CCL20: EQUAL? PRSA,V?SEARCH-FOR /?CTR26 + EQUAL? PRSA,V?SEARCH,V?LOOK-ON,V?EXAMINE \?CCL27 +?CTR26: EQUAL? HERE,DRIVEWAY \FALSE + CALL TELL-ABOUT-DRAGON + RTRUE +?CCL27: IN? VOICE,HERE \FALSE + CALL VOICE-F + RSTACK + + + .FUNCT COURTYARD-F,RARG=0 + EQUAL? RARG,M-ENTER \?CCL3 + IN? FRIEND,LIMBO \?CND4 + MOVE FRIEND,COURTYARD +?CND4: ZERO? DRAGON-EYE-COLOR /?CND6 + SET 'DRAGON-EYE-COLOR,0 +?CND6: FSET? FRONT-GATE,LOCKED /FALSE + FCLEAR FRONT-GATE,OPENBIT + FSET FRONT-GATE,LOCKED + PRINTI "The " + PRINTD FRONT-GATE + PRINTR " closes and locks behind you." +?CCL3: EQUAL? RARG,M-LOOK \?CCL14 + FSET? HERE,TOUCHBIT /?CND15 + FSET HERE,TOUCHBIT + PRINTI "As flood lights blaze on, you look around. " +?CND15: CALL TELL-LIKE-BROCHURE + PRINT DARK-TURRETS + RTRUE +?CCL14: EQUAL? RARG,M-FLASH \FALSE + IN? FRIEND,COURTYARD \FALSE + FSET? FRIEND,TOUCHBIT /FALSE + ZERO? CLOCK-WAIT \FALSE + FSET FRIEND,TOUCHBIT + FCLEAR FRIEND,NDESCBIT + SET 'FOLLOWER,FRIEND + SET 'QCONTEXT,FRIEND + CALL QUEUE,I-FRIEND-GREETS,0 + CALL QUEUE,I-TOUR,7 + CALL ESTABLISH-GOAL,BUTLER,COURTYARD + FCLEAR FRONT-DOOR,LOCKED + SET 'QCONTEXT,FRIEND + CALL THIS-IS-IT,FRIEND + PUTP FRIEND,P?LDESC,12 + SET 'AWAITING-REPLY,FRIEND-C + CALL QUEUE,I-REPLY,CLOCKER-RUNNING + PRINTI " +Someone comes running out of the wing to greet you. " + GETP FRIEND,P?TEXT + PRINT STACK + PRINTI " You recognize her as your friend, " + PRINTD FRIEND + PRINTI " Lynd. +""" + CALL PRINT-NAME,FIRST-NAME + PRINTI "!"" she cries with outflung arms. ""You sweet thing, to answer my letter in person this way! And all the people I wrote about are here tonight for Lionel's memorial birthday dinner!"" +After a warm hug, she asks anxiously, """ + GET QUESTIONS,AWAITING-REPLY + PRINT STACK + PRINTI """ +" + RETURN 2 + + + .FUNCT TELL-LIKE-BROCHURE,DR=0 + PRINTI "It looks even lovelier than it sounds in the " + PRINTD BROCHURE + PRINTC 46 + ZERO? DR /?CND3 + CALL OPEN-DOOR?,DR +?CND3: CRLF + RTRUE + + + .FUNCT MAZE-EXIT,RM + EQUAL? OHERE,GARDEN \?CCL3 + SET 'RM,COURTYARD + JUMP ?CND1 +?CCL3: SET 'RM,GARDEN +?CND1: EQUAL? WINNER,PLAYER /?PRG6 + RETURN RM +?PRG6: PRINTI "You stumble blindly through the maze and suddenly emerge in the " + PRINTD RM + PRINTI ". +" + RETURN RM + + + .FUNCT MAZE-F,RARG=0 + ZERO? RARG \FALSE + EQUAL? PRSA,V?THROUGH \FALSE + EQUAL? HERE,MAZE \FALSE + CALL MAZE-EXIT + CALL GOTO,STACK + RSTACK + + + .FUNCT GARDEN-F,RARG=0,OBJ + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "Here in the central garden the plants quake nervously in the mist. In the very middle is a " + PRINTD POND + PRINTR "." +?CCL3: ZERO? RARG \FALSE + EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH,V?EXAMINE \FALSE + CALL FIND-FLAG-HERE,SECRETBIT >OBJ + ZERO? OBJ /FALSE + CALL DISCOVER,OBJ,HERE + RTRUE + + + .FUNCT POND-F + EQUAL? PRSA,V?THROUGH /?PRG6 + EQUAL? PRSA,V?SWIM,V?LEAP,V?BOARD \?CCL3 +?PRG6: PRINTR "On second thought, it looks too dark and slippery." +?CCL3: EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-INSIDE,V?EXAMINE \FALSE + CALL TELL-AS-WELL-AS,POND,STR?228 + RTRUE + + + .FUNCT FRONT-DOOR-F + EQUAL? PRSA,V?WALK-TO \FALSE + CALL OUTSIDE?,HERE + ZERO? STACK /?CCL6 + CALL PERFORM,V?WALK-TO,COURTYARD + RTRUE +?CCL6: CALL PERFORM,V?WALK-TO,FOYER + RTRUE + + + .FUNCT FOYER-F,RARG=0 + EQUAL? RARG,M-ENTER \?CCL3 + FSET? FOYER,TOUCHBIT /FALSE + FSET FOYER,TOUCHBIT + PRINTI "As you enter the foyer, you're overwhelmed by the English past. Those barbarous times when Jack's ancestors had to shut themselves up in a fortified castle have softened into gracious country living. Yet " + PRINTD FRIEND + PRINTR " is clearly anxious." +?CCL3: EQUAL? RARG,M-LOOK \?CCL10 + CALL TELL-LIKE-BROCHURE + CALL DESCRIBE-CONTENTS,COAT-RACK + RTRUE +?CCL10: EQUAL? RARG,M-FLASH \FALSE + FSET? LORD,TOUCHBIT /TRUE + IN? LORD,FOYER \TRUE + CALL LORD-INTRO + RTRUE + + + .FUNCT DESCRIBE-CONTENTS,OBJ + CALL FIND-FLAG-NOT,OBJ,NDESCBIT + ZERO? STACK /FALSE + PRINTI "On" + CALL PRINTT,OBJ + PRINTI " you see" + CALL PRINT-CONTENTS,OBJ + PRINTI ". +" + RTRUE + + + .FUNCT UMBRELLA-STAND-F + FCLEAR UMBRELLA-STAND,NDESCBIT + EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3 + CALL YOU-CANT + RSTACK +?CCL3: EQUAL? PRSA,V?TAKE \?CCL5 + CALL NOUN-USED?,W?UMBRELLA + ZERO? STACK /FALSE + PRINTR "But it's not raining!" +?CCL5: EQUAL? PRSA,V?SEARCH-FOR /?CCL12 + EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?EXAMINE \FALSE +?CCL12: IN? CANE,UMBRELLA-STAND \?CCL17 + FSET? CANE,NDESCBIT \?CCL17 + FCLEAR CANE,NDESCBIT + FCLEAR CANE,SECRETBIT + FSET CANE,SEENBIT + FSET CANE,TAKEBIT + FSET CANE,TOUCHBIT + CALL THIS-IS-IT,CANE + PRINTR "Among the umbrellas there's a cane that looks odd." +?CCL17: EQUAL? PRSA,V?EXAMINE \?CCL23 + CALL TELL-LIKE-BROCHURE + RSTACK +?CCL23: CALL TELL-AS-WELL-AS,UMBRELLA-STAND,STR?229 + RTRUE + + + .FUNCT DRAWING-ROOM-F,RARG=0,PER + EQUAL? RARG,M-BEG \?CCL3 + EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL6 + EQUAL? PRSO,SECRET-DRAWING-DOOR \?CCL6 + CALL YOU-CANT,FALSE-VALUE,PLAYER,STR?231 + RTRUE +?CCL6: CALL SECRET-CHECK,RARG + RSTACK +?CCL3: EQUAL? RARG,M-LOOK \?CCL10 + CALL TELL-LIKE-BROCHURE,SECRET-DRAWING-DOOR + RSTACK +?CCL10: EQUAL? RARG,M-FLASH \FALSE + IN? DEALER,DRAWING-ROOM \FALSE + FSET? DEALER,TOUCHBIT /FALSE + FSET DEALER,TOUCHBIT + LOC PAINTER + EQUAL? STACK,HERE,PSEUDO-OBJECT \FALSE + GETP DEALER,P?LDESC + EQUAL? STACK,2 \FALSE + PRINTI "A tall graceful older couple in evening clothes are chatting and " + GET LDESC-STRINGS,2 + PRINT STACK + PRINTI ". +" + SET 'QCONTEXT,PAINTER + LOC LORD + EQUAL? STACK,HERE,PSEUDO-OBJECT \?CCL27 + SET 'PER,LORD + JUMP ?CND25 +?CCL27: LOC FRIEND + EQUAL? STACK,HERE,PSEUDO-OBJECT \?CND25 + CALL THIS-IS-IT,FRIEND + SET 'PER,FRIEND +?CND25: ZERO? PER /FALSE + PRINTD PER + PRINT INTRODUCES + PRINTI "them as Montague Hyde and Vivien Pentreath. +Hyde smiles and bows stiffly. And Vivien murmurs in an attractively low voice, ""How do you do, " + CALL TITLE-NAME + ZERO? STACK /?PRG38 + PRINTC 46 +?PRG38: PRINTI """ +""Believe it or not, this young " + ZERO? GENDER-KNOWN \?CCL42 + PRINTI "person" + JUMP ?PRG51 +?CCL42: FSET? PLAYER,FEMALE \?PRG49 + PRINTI "lady" + JUMP ?PRG51 +?PRG49: PRINTI "man" +?PRG51: PRINTI " is a famous American detective,"" " + PRINTD PER + PRINTI " tells them. +" + LOC FRIEND + EQUAL? STACK,HERE,PSEUDO-OBJECT \FALSE + PRINTI """Not a police detective, of course,"" " + PRINTD FRIEND + PRINTI " adds as they both stiffen, ""but a solver of all sorts of mysteries in the States. We're hoping to find out who or what is haunting " + PRINTD CASTLE + PRINTR ".""" + + + .FUNCT LOVER-PIC-F + EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "It's a portrait by " + PRINTD PAINTER + PRINTI " of " + PRINTD LOVER + PRINTI ", a lovely young woman with flowing blonde hair, standing on a grassy slope, gazing out to sea. It's painted in pastel tones, which emphasize " + PRINTD LOVER + PRINTR "'s violet eyes. There's something ethereal and fairylike about her. Ironically, her silvery white, sleeveless gown is the very one she was wearing at the time of her accident." + + + .FUNCT TAPESTRY-F + EQUAL? PRSA,V?SEARCH,V?EXAMINE \?CCL3 + CALL TELL-LIKE-BROCHURE + EQUAL? VARIATION,PAINTER-C \TRUE + PRINTR "Someone has added a star in red thread on the maiden's ARM." +?CCL3: EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND \FALSE + FSET SECRET-DRAWING-DOOR,TOUCHBIT + CALL THIS-IS-IT,SECRET-DRAWING-DOOR + PRINTI "Hidden behind the " + PRINTD TAPESTRY + PRINTI " is" + CALL PRINTT,SECRET-DRAWING-DOOR + PRINTR "!" + + + .FUNCT GREAT-HALL-F,RARG=0 + EQUAL? RARG,M-LOOK \?CCL3 + CALL TELL-LIKE-BROCHURE + CALL GREAT-HALL-IS-FLOORED + RTRUE +?CCL3: EQUAL? RARG,M-FLASH \FALSE + IN? DEB,GREAT-HALL \FALSE + FSET? DEB,TOUCHBIT /FALSE + ZERO? CLOCK-WAIT \FALSE + FSET DEB,TOUCHBIT + FCLEAR DEB,NDESCBIT + LOC OFFICER + EQUAL? STACK,HERE,PSEUDO-OBJECT \?PRG18 + GETP DEB,P?LDESC + EQUAL? STACK,1 \?PRG18 + PRINTI "A young couple are dancing to the faint sound of rock music from a portable radio on a table nearby. +" +?PRG18: GETP DEB,P?TEXT + PRINT STACK + CRLF + CALL COMMON-DESC,OFFICER + PRINTI " +They stop dancing, turn off the radio, and greet you." + LOC FRIEND + EQUAL? STACK,HERE,PSEUDO-OBJECT \?CND22 + PRINTC 32 + PRINTD FRIEND + PRINT INTRODUCES + PRINTI "them as the Honourable Iris Vane and Lt. Ian Fordyce of Her Majesty's Coldstream Guards. +" +?CND22: PUTP DEB,P?LDESC,0 + CALL THIS-IS-IT,DEB + PUTP OFFICER,P?LDESC,0 + CALL THIS-IS-IT,OFFICER + CALL QUEUE,I-TOUR,0 + CALL QUEUE,I-REPLY,CLOCKER-RUNNING + ZERO? GENDER-KNOWN /?CTR27 + FSET? PLAYER,FEMALE /?CCL28 +?CTR27: ZERO? GENDER-KNOWN \?PRG36 + PRINTI """What a lark, having a Yank sleuth in our midst" + JUMP ?PRG38 +?PRG36: PRINTI """My dear! What a handsome addition to your guest list" +?PRG38: PRINTI "!"" chirps Iris. Her green eyes sparkle " + ZERO? GENDER-KNOWN \?PRG45 + PRINTI "a trifle malic" + JUMP ?PRG47 +?PRG45: PRINTI "flirtat" +?PRG47: PRINTI "iously as she offers you her delicate hand. " + ZERO? GENDER-KNOWN \?CCL51 + SET 'QCONTEXT,OFFICER + PUTP OFFICER,P?LDESC,12 + SET 'AWAITING-REPLY,OFFICER-1-R + PRINTI """I always find Americans so innocently fascinating! I'm sure you'll have loads to tell us about the baffling mysteries you've solved..."" +""Belt up, Iris, there's a good girl,"" says Ian. Flashing you an apologetic smile, he comments, ""Spoiled rotten, I'm afraid. Personally I should like nothing better than to hear all about your mystery cases. But first tell us: " + GET QUESTIONS,AWAITING-REPLY + PRINT STACK + PRINTI """ +" + RETURN 2 +?CCL51: SET 'QCONTEXT,DEB + PUTP DEB,P?LDESC,12 + SET 'AWAITING-REPLY,DEB-C + PRINTI """Tell me, " + CALL TITLE-NAME + PRINTI " -- " + GET QUESTIONS,AWAITING-REPLY + PRINT STACK + PRINTI """ +" + RETURN 2 +?CCL28: EQUAL? VARIATION,FRIEND-C \?CND60 + PRINTD DEB + PRINTI " pulls Jack aside, whispers something to him, and giggles." + CRLF +?CND60: SET 'QCONTEXT,OFFICER + CALL THIS-IS-IT,OFFICER + PUTP OFFICER,P?LDESC,12 + SET 'AWAITING-REPLY,OFFICER-2-R + PRINTI """I say!"" exclaims Ian, bringing your hand to his lips. His glance runs swiftly over your face and figure with an air of expert appraisal. """ + GET QUESTIONS,AWAITING-REPLY + PRINT STACK + PRINTI """ +" + RETURN 2 + + + .FUNCT GREAT-HALL-IS-FLOORED + PRINTI "The hall is floored with black and white marble tiles. They've been worn smooth by footsteps over the centuries, especially near the archway to the " + PRINTD DRAWING-ROOM + PRINTR "." + + + .FUNCT ARMOR-F + FCLEAR ARMOR,NDESCBIT + EQUAL? PRSA,V?EXAMINE \?CCL3 + PRINTR "This is a full suit of steel body armour. It creaks as you walk past." +?CCL3: EQUAL? PRSA,V?SEARCH-FOR /?CCL7 + EQUAL? PRSA,V?SEARCH,V?OPEN,V?LOOK-INSIDE \FALSE +?CCL7: IN? CLUE-3,ARMOR \FALSE + FSET? CLUE-3,SECRETBIT \FALSE + FSET ARMOR,OPENBIT + CALL DISCOVER,CLUE-3 + RSTACK + + + .FUNCT SECRET-SITTING-DOOR-F + EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE \FALSE + PRINTR "It seems to be stuck closed." + + + .FUNCT SITTING-ROOM-F,RARG=0 + EQUAL? RARG,M-BEG \?CCL3 + CALL SECRET-CHECK,RARG + RSTACK +?CCL3: EQUAL? RARG,M-LOOK \FALSE + CALL TELL-LIKE-BROCHURE + PRINTI "It's a comfy place to read a book, play the piano, or just relax." + CRLF + CALL DESCRIBE-CONTENTS,PIANO + CALL DESCRIBE-CONTENTS,WRITING-DESK + RTRUE + + + .FUNCT WYVERN-F + EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE \?CCL3 + CALL SECRET-SITTING-DOOR-F + RSTACK +?CCL3: EQUAL? PRSA,V?SIT-AT /?CTR4 + EQUAL? PRSA,V?SIT,V?CLIMB-ON,V?BOARD \?CCL5 +?CTR4: MOVE PLAYER,WYVERN + PRINTR "Okay, but it's not that comfortable." +?CCL5: EQUAL? PRSA,V?TURN /?CCL11 + EQUAL? PRSA,V?SLAP,V?RUB,V?PUSH /?CCL11 + EQUAL? PRSA,V?MUNG,V?MOVE-DIR,V?MOVE \FALSE +?CCL11: CALL OPEN-SECRET,STR?232,WYVERN,SECRET-SITTING-DOOR + FCLEAR SECRET-SITTING-DOOR,OPENBIT + PRINTI "Before you know it, " + IN? PLAYER,WYVERN \?PRG22 + PRINTI "you're dumped into it. +" + CALL GOTO,SITTING-PASSAGE + RTRUE +?PRG22: PRINTR "it creaks upward to close again." + + + .FUNCT WRITING-DESK-F + CALL REMOTE-VERB? + ZERO? STACK \FALSE + IN? LETTER-MAID,WRITING-DESK \FALSE + FCLEAR LETTER-MAID,NDESCBIT + RFALSE + + + .FUNCT PIANO-F,O,N=0 + EQUAL? PRSA,V?LISTEN \?CCL3 + LOC PIANO + FIRST? STACK >O /?PRG4 +?PRG4: ZERO? O /FALSE + FSET? O,PERSONBIT \?CCL10 + GETP O,P?LDESC + EQUAL? STACK,22 \?CCL10 + PRINTR "The music sounds lovely." +?CCL10: NEXT? O >O /?PRG4 + JUMP ?PRG4 +?CCL3: EQUAL? PRSA,V?PLAY \?CCL16 + PUTP WINNER,P?LDESC,22 + ZERO? PRSI /?PRG21 + FSET? PRSI,PERSONBIT \?PRG21 + PUTP PRSI,P?LDESC,22 +?PRG21: CALL HE-SHE-IT,WINNER,TRUE-VALUE,STR?241 + PRINTI " down" + FIRST? SITTING-ROOM >O /?PRG23 +?PRG23: ZERO? O \?CCL27 + ZERO? N \?REP24 + PRINTI " and" +?REP24: ZERO? N \?CCL43 + CALL HE-SHE-IT,WINNER,-1,STR?242 + JUMP ?PRG62 +?CCL27: GETP O,P?LDESC + EQUAL? STACK,22 \?CND25 + EQUAL? O,WINNER /?CND25 + ZERO? N \?CND35 + PRINTI " with" +?CND35: INC 'N + PRINTC 32 + PRINTD O + PRINTI " and" +?CND25: NEXT? O >O /?PRG23 + JUMP ?PRG23 +?CCL43: GETP PLAYER,P?LDESC + EQUAL? STACK,22 \?PRG58 + PRINTI " you " + EQUAL? N,1 \?PRG56 + PRINTI "both" + JUMP ?PRG60 +?PRG56: PRINTI "all" + JUMP ?PRG60 +?PRG58: PRINTI " they" +?PRG60: PRINTI " play" +?PRG62: PRINTI " a lovely " + GET PIANO-PIECES,N + PRINT STACK + GRTR? N,2 \?PRG68 + PRINTI "tet" +?PRG68: PRINTR "." +?CCL16: CALL REMOTE-VERB? + ZERO? STACK \FALSE + IN? MUSIC,PIANO \FALSE + FCLEAR MUSIC,NDESCBIT + RFALSE + + + .FUNCT MUSIC-F + EQUAL? PRSA,V?PLAY,V?LISTEN \?CCL3 + IN? PIANO,HERE \?CCL6 + CALL PIANO-F + RTRUE +?CCL6: CALL NOT-HERE,PIANO + RTRUE +?CCL3: CALL REMOTE-VERB? + ZERO? STACK \FALSE + FCLEAR MUSIC,NDESCBIT + EQUAL? PRSA,V?READ /?CTR9 + EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \FALSE +?CTR9: CALL NOT-HOLDING?,PRSO + ZERO? STACK \TRUE + PRINTI "It's " + EQUAL? VARIATION,PAINTER-C \?CCL19 + PRINTR "Beethoven's ""Suite No. 9."" Someone has drawn a star in red ink over the first four letters of the word ""SUITe.""" +?CCL19: EQUAL? VARIATION,DOCTOR-C \?PRG26 + PRINTR """Funeral March of a Marionette.""" +?PRG26: PRINTR "theme music from the American radio show, ""A Prairie Home Companion.""" + + + .FUNCT CORR-1-F,ARG=0 + EQUAL? ARG,M-LOOK \FALSE + PRINTI "The " + PRINTD CORR-1 + PRINTI " goes between the two great halls to east and west. Behind sliding doors, the " + PRINTD DINING-ROOM + PRINTI " is north and the " + PRINTD SITTING-ROOM + PRINTR " is south." + + + .FUNCT DINING-ROOM-F,RARG=0,N + EQUAL? RARG,M-LOOK \?CCL3 + PRINT DINING-DESC + RTRUE +?CCL3: EQUAL? RARG,M-ENTER \?CCL7 + CALL QUEUED?,I-DINNER-SIT + ZERO? STACK /?CCL10 + IN? LORD,DINING-ROOM \?CCL13 + CALL QUEUE,I-DINNER-SIT,1 + RFALSE +?CCL13: CALL FIND-FLAG-HERE,PERSONBIT,PLAYER,BUTLER >N + ZERO? N /FALSE + CALL HE-SHE-IT,N,TRUE-VALUE + PRINTR " says, ""Let's wait for his lordship.""" +?CCL10: ZERO? MISSED-DINNER /FALSE + IN? FRIEND,HERE \FALSE + SET 'MISSED-DINNER,FALSE-VALUE + FSET? DINING-ROOM,TOUCHBIT /?CND22 + FSET DINING-ROOM,TOUCHBIT + PRINT DINING-DESC +?CND22: CALL THIS-IS-IT,FRIEND + SET 'QCONTEXT,FRIEND + PRINTD FRIEND + PRINTI " says, ""We didn't know when you would come to dinner, so we started without you." + EQUAL? LIONEL-SPEAKS-COUNTER,INIT-LIONEL-SPEAKS-COUNTER \?CCL30 + PRINTR """" +?CCL30: CALL QUEUE,I-DINNER-TALK,1 + PRINTI " And " + ZERO? LIONEL-SPEAKS-COUNTER \?PRG40 + PRINTI "then Lionel spoke" + JUMP ?PRG42 +?PRG40: PRINTI "now Lionel is speaking" +?PRG42: PRINTR " on tape!""" +?CCL7: EQUAL? RARG,M-EXIT \FALSE + CALL QUEUED?,I-LIONEL-SPEAKS + ZERO? STACK /FALSE + PRINTD LORD + PRINTI " politely but firmly vetoes any such move. """ + EQUAL? LIONEL-SPEAKS-COUNTER,INIT-LIONEL-SPEAKS-COUNTER \?PRG57 + PRINTI "It's annoying enough to have the servants abscond at dinner time,"" he points out drily. " + PRINT JACK-THINKS-GLADYS + PRINTR " Cigars and port will be time enough for that sort of aggro!""" +?PRG57: PRINTR "Let's hear what old Lionel has to say.""" + + + .FUNCT I-DINNER-TALK,GARG=0 + FSET DINNER,TAKEBIT + FCLEAR DINNER,TRYTAKEBIT + MOVE DINNER-2,TABLE-DINING + CALL QUEUED?,I-LIONEL-SPEAKS + CALL DINNER-TALK,STACK + RETURN 2 + + + .FUNCT DINNER-TALK,N,X + MOVE PLAYER,CHAIR-DINING + PRINTI "Several people glance at your outfit with " + EQUAL? NOW-WEARING,DINNER-OUTFIT /?CCL5 + SET 'WRONG-OUTFIT,2 + PRINTI "dis" + JUMP ?PRG8 +?CCL5: SET 'WRONG-OUTFIT,1 +?PRG8: PRINTI "approval." + ZERO? WASHED \?CND10 + PRINTI " They whisper about how dirty you still look." +?CND10: CRLF + EQUAL? LIONEL-SPEAKS-COUNTER,INIT-LIONEL-SPEAKS-COUNTER \?CND14 + PRINTD LORD + PRINTI " announces his engagement to " + PRINTD FRIEND + PRINTI ", prompting various reactions from the guests. +The dinner is excellent, with a flow of subdued conversation... +" +?CND14: PUTP LORD,P?LDESC,0 + SET 'KEEP-WAITING,TRUE-VALUE + CALL V-WAIT,N,FALSE-VALUE,TRUE-VALUE + RSTACK + + + .FUNCT POPULATION,RM,NOT1=0,NOT2=0,CNT=0,OBJ + FIRST? RM >OBJ /?KLU19 +?KLU19: ZERO? OBJ /FALSE +?PRG3: FSET? OBJ,PERSONBIT \?CCL7 + FSET? OBJ,INVISIBLE /?CCL7 + ZERO? NOT1 /?PRD11 + EQUAL? OBJ,NOT1 /?CCL7 +?PRD11: ZERO? NOT2 /?CTR6 + EQUAL? OBJ,NOT2 /?CCL7 +?CTR6: INC 'CNT + JUMP ?CND5 +?CCL7: FSET? OBJ,CONTBIT \?CND5 + CALL POPULATION,OBJ,NOT1,NOT2 + ADD CNT,STACK >CNT +?CND5: NEXT? OBJ >OBJ /?KLU20 +?KLU20: ZERO? OBJ \?PRG3 + RETURN CNT + + + .FUNCT BUST-D,ARG + CALL THIS-IS-IT,COUSIN + PRINTI "A brooding bust of " + PRINTD COUSIN + PRINTI " (sculpted by " + PRINTD PAINTER + PRINTR ") is displayed in a corner." + + + .FUNCT BUST-F + EQUAL? PRSA,V?PUSH,V?OPEN,V?MOVE-DIR /?CTR2 + EQUAL? PRSA,V?MOVE,V?LOOK-UNDER,V?EXAMINE /?CTR2 + EQUAL? PRSA,V?TAKE \?CCL3 + EQUAL? P-PRSA-WORD,W?RAISE,W?LIFT \?CCL3 +?CTR2: EQUAL? PRSA,V?EXAMINE \?PRG13 + EQUAL? LIONEL-SPEAKS-COUNTER,INIT-LIONEL-SPEAKS-COUNTER \?PRG13 + CALL TELL-LIKE-BROCHURE + RTRUE +?PRG13: PRINTI "The " + PRINTD BUST + PRINTI " is hollow. When you lift it from its shelf, you discover" + CALL PRINTT,RECORDER + PRINTI " underneath, with an elaborate clockwork timer." + FSET BUST,OPENBIT + FSET RECORDER,SEENBIT + EQUAL? LIONEL-SPEAKS-COUNTER,INIT-LIONEL-SPEAKS-COUNTER /?CND15 + PRINTR " Evidently the timer was set to play the tape during the usual dinner hour on this date." +?CND15: CRLF + RTRUE +?CCL3: EQUAL? PRSA,V?PLAY,V?LISTEN \FALSE + CALL QUEUED?,I-LIONEL-SPEAKS + ZERO? STACK /?PRG25 + SET 'LIONEL-FORCED,TRUE-VALUE + CALL QUEUE,I-LIONEL-SPEAKS,1 + RTRUE +?PRG25: PRINT TIMER-PREVENTS-IT + RTRUE + + + .FUNCT RECORDER-F + EQUAL? PRSA,V?PLAY,V?LISTEN,V?EXAMINE \?CCL3 + CALL BUST-F + RSTACK +?CCL3: EQUAL? PRSA,V?LAMP-OFF,V?LAMP-ON \?CCL5 + PRINT TIMER-PREVENTS-IT + RTRUE +?CCL5: EQUAL? PRSA,V?TAKE \?CCL9 + PRINTR "It's fastened tightly to the shelf." +?CCL9: CALL SPEAKING-VERB?,RECORDER + ZERO? STACK /FALSE + CALL WONT-HELP-TO-TALK-TO,RECORDER + RSTACK + + + .FUNCT TABLE-DINING-F + EQUAL? PRSA,V?LOOK-ON,V?LOOK-INSIDE,V?EXAMINE \?CCL3 + FSET? DINNER,TAKEBIT \FALSE + CALL TELL-AS-WELL-AS,TABLE-DINING,STR?245 + RTRUE +?CCL3: EQUAL? PRSA,V?SIT-AT \?CCL8 + CALL PERFORM,V?SIT,CHAIR-DINING + RTRUE +?CCL8: EQUAL? PRSA,V?SIT \FALSE + CALL HAR-HAR + RTRUE + + + .FUNCT PUNCHBOWL-F,OBJ + EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3 + CALL HAR-HAR + RSTACK +?CCL3: EQUAL? PRSA,V?PUT-UNDER \?CCL5 + EQUAL? PRSI,PUNCHBOWL \FALSE + FSET PRSO,NDESCBIT + MOVE PRSO,SIDEBOARD + PRINTR "Okay." +?CCL5: EQUAL? PRSA,V?TAKE,V?MOVE,V?LOOK-UNDER \FALSE + EQUAL? PRSO,PUNCHBOWL \FALSE + CALL FIND-FLAG,SIDEBOARD,NDESCBIT >OBJ + ZERO? OBJ /?PRG20 + FSET OBJ,TAKEBIT + FSET OBJ,TOUCHBIT + FCLEAR OBJ,NDESCBIT + MOVE OBJ,PLAYER + CALL THIS-IS-IT,OBJ + PRINTI "You find" + CALL PRINTT,OBJ + PRINTR " underneath, so you take it." +?PRG20: PRINTR "There's nothing under it." + + + .FUNCT DINNER-D,ARG,L + LOC DINNER >L + EQUAL? L,KITCHEN,SIDEBOARD \FALSE + PRINTI "An appetizing aroma wafts from an array of covered dishes" + EQUAL? L,KITCHEN \?CCL8 + PRINTI " sitting about" + JUMP ?PRG14 +?CCL8: EQUAL? L,SIDEBOARD \?PRG14 + PRINTI " on the " + PRINTD SIDEBOARD +?PRG14: PRINTR "." + + + .FUNCT DINNER-F,I,L + LOC DINNER >L + EQUAL? PRSA,V?DRESS \?CCL3 + CALL META-LOC,DINNER-OUTFIT + EQUAL? HERE,STACK \?CCL6 + CALL PERFORM,V?WEAR,DINNER-OUTFIT + RTRUE +?CCL6: CALL NOT-HERE,DINNER-OUTFIT + RTRUE +?CCL3: EQUAL? PRSA,V?EAT \?CCL8 + PRINTR "You take a bite and find it delicious." +?CCL8: EQUAL? PRSA,V?EXAMINE \?CCL13 + PRINTI "A lovely assortment of fish, fowl, greens, and sweets fills the " + EQUAL? L,KITCHEN,SIDEBOARD \?PRG21 + PRINTR "dishes." +?PRG21: PRINTR "plate." +?CCL13: EQUAL? PRSA,V?LAMP-ON,V?TAKE \?CCL24 + FSET? DINNER,TRYTAKEBIT \FALSE + EQUAL? L,KITCHEN \?CCL30 + PRINTR "It's not ready yet." +?CCL30: EQUAL? L,SIDEBOARD \FALSE + CALL I-DINNER-SIT >L + ZERO? L /?PRG38 + RETURN L +?PRG38: PRINTR "You look around and notice that no one else is eating yet." +?CCL24: EQUAL? PRSA,V?WAIT-FOR \?CCL41 + CALL QUEUED?,I-DINNER >I + ZERO? I /FALSE + SUB DINNER-TIME,PRESENT-TIME + CALL V-WAIT,STACK,FALSE-VALUE,TRUE-VALUE + RTRUE +?CCL41: EQUAL? PRSA,V?WALK-TO \FALSE + EQUAL? HERE,DINING-ROOM \?CCL49 + CALL META-LOC,DINNER + CALL PERFORM,PRSA,STACK + RTRUE +?CCL49: CALL PERFORM,PRSA,DINING-ROOM + RTRUE + + + .FUNCT BACKSTAIRS-F,RARG=0 + EQUAL? RARG,M-BEG \?CCL3 + CALL SECRET-CHECK,RARG + RSTACK +?CCL3: EQUAL? RARG,M-LOOK \FALSE + PRINTI "You can go east to the " + PRINTD DINING-ROOM + PRINTI " or down narrow stairs to the " + PRINTD KITCHEN + PRINTC 46 + CALL OPEN-DOOR?,SECRET-DINING-DOOR + CRLF + RTRUE + + + .FUNCT KITCHEN-F,RARG=0 + EQUAL? RARG,M-LOOK \FALSE + PRINTI "The " + PRINTD KITCHEN + PRINTI " is large yet cramped. From here, you can go west to the tower " + PRINTD BASEMENT + PRINTR ", east to the servants' quarters, or up the stairs." + + + .FUNCT LANTERN + EQUAL? PRSA,V?AIM \?CCL3 + CALL START-SENTENCE,LAMP + PRINTI " shines in all " + PRINTD INTDIR + PRINTR "s, so you can't point it." +?CCL3: EQUAL? PRSA,V?USE \?CCL7 + CALL PERFORM,V?LAMP-ON,PRSO + RTRUE +?CCL7: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "The lamp " + FSET? LAMP,ONBIT \?PRG17 + PRINTR "is on." +?PRG17: PRINTR "is turned off." + + + .FUNCT GALLERY-F,RARG=0 + EQUAL? RARG,M-BEG \?CCL3 + EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?PRD8 + EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-BEHIND,V?EXAMINE \FALSE +?PRD8: EQUAL? PRSO,WALL,PAINTING-GALLERY \FALSE + FCLEAR PEEPHOLE,SECRETBIT + PRINTI "You discover" + CALL HIM-HER-IT,PEEPHOLE + PRINTR " in the eye of one ancestor." +?CCL3: EQUAL? RARG,M-LOOK \FALSE + PRINTI "The " + PRINTD GALLERY + PRINTI " spans the top of the double stairways. You can go east to " + PRINTD YOUR-ROOM + PRINTI " or west to " + PRINTD VIVIEN-ROOM + PRINTI ". Hallways lead to the northeast and northwest. On the wall is a " + PRINTD PAINTING-GALLERY + PRINTI " of " + PRINTD LORD + PRINTR "'s ancestors." + + + .FUNCT PICTURE-F,RARG=0 + EQUAL? PRSA,V?EXAMINE \FALSE + CALL TELL-LIKE-BROCHURE + RSTACK + + + .FUNCT BATHROOM-F + EQUAL? PRSA,V?WALK-TO,V?THROUGH /?CCL3 + EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?BOARD \FALSE +?CCL3: EQUAL? HERE,YOUR-ROOM \?CCL8 + CALL PERFORM,PRSA,YOUR-BATHROOM + RTRUE +?CCL8: CALL RANDOM-PSEUDO + RSTACK + + + .FUNCT FIREPLACE-F + EQUAL? PRSA,V?LOOK-UP,V?LOOK-INSIDE,V?EXAMINE \?CCL3 + EQUAL? HERE,IAN-ROOM \?PRG7 + CALL TELL-IAN-FIREPLACE + CRLF + RTRUE +?PRG7: PRINTR "It's empty, except for soot on the walls." +?CCL3: EQUAL? PRSA,V?LAMP-ON \?CCL10 + CALL WONT-HELP + RSTACK +?CCL10: EQUAL? PRSA,V?PUT-IN \FALSE + PRINTI "When you think how sooty" + CALL PRINTT,PRSO + PRINTR " would get, you change your mind." + + + .FUNCT BED-PSEUDO + EQUAL? PRSA,V?THROUGH,V?SIT /?CCL3 + EQUAL? PRSA,V?LIE,V?CLIMB-ON,V?BOARD \FALSE +?CCL3: CALL WONT-HELP + RSTACK + + + .FUNCT NIGHTSTAND-LG-F + EQUAL? HERE,JACK-ROOM \?CCL3 + EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?CTR2 + EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \?CCL3 +?CTR2: IN? NECKLACE-OF-D,JACK-ROOM \?PRG11 + CALL DISCOVER,NECKLACE-OF-D + RSTACK +?PRG11: PRINT NOTHING-NEW + RTRUE +?CCL3: EQUAL? HERE,JACK-ROOM \?CCL14 + EQUAL? PRSA,V?PUT-IN \?CCL14 + EQUAL? PRSO,NECKLACE-OF-D \?CCL14 + MOVE NECKLACE-OF-D,JACK-ROOM + FSET NECKLACE-OF-D,NDESCBIT + CALL OKAY + RSTACK +?CCL14: CALL RANDOM-PSEUDO + RSTACK + + + .FUNCT DRESSING-TABLE-LG-F + EQUAL? PRSA,V?SEARCH-FOR /?CTR2 + EQUAL? PRSA,V?SEARCH,V?CLOSE,V?OPEN \?CCL3 +?CTR2: CALL NOTHING-SPECIAL + RSTACK +?CCL3: EQUAL? PRSA,V?LOOK-ON,V?LOOK-INSIDE,V?EXAMINE \FALSE + EQUAL? HERE,WENDISH-ROOM \?CCL10 + CALL WENDISH-STUFF-D + RTRUE +?CCL10: EQUAL? HERE,TAMARA-ROOM \?CCL12 + CALL DRESSING-TABLE-TAM + CRLF + RTRUE +?CCL12: CALL NOTHING-SPECIAL + RSTACK + + + .FUNCT MIRROR-GLOBAL-F + CALL REMOTE-VERB? + ZERO? STACK \FALSE + FSET? HERE,WORNBIT /?CCL5 + CALL NOT-HERE,MIRROR-GLOBAL + RSTACK +?CCL5: EQUAL? PRSA,V?MOVE /?CTR6 + EQUAL? PRSA,V?LOOK-INSIDE,V?FIX,V?EXAMINE \?CCL7 +?CTR6: CALL DRESSING-MIRROR-F + RSTACK +?CCL7: CALL RANDOM-PSEUDO + RSTACK + + + .FUNCT OPEN-DOOR?,DR,NOSP=0 + FSET? DR,OPENBIT \FALSE + ZERO? NOSP \?CND4 + PRINTC 32 +?CND4: CALL THIS-IS-IT,DR + CALL DOOR-ROOM,HERE,DR >NOSP + ZERO? NOSP /?PRG10 + FSET NOSP,SEENBIT +?PRG10: PRINTI "And there's a wide-open " + PRINTD DR + PRINTC 33 + RTRUE + + + .FUNCT YOUR-ROOM-F,RARG=0 + EQUAL? RARG,M-BEG \?CCL3 + EQUAL? PRSA,V?WALK-TO \?CCL6 + EQUAL? PRSO,BED \?CCL6 + CALL PERFORM,V?LIE,BED + RTRUE +?CCL6: CALL SECRET-CHECK,RARG + RSTACK +?CCL3: EQUAL? RARG,P?WEST,P?OUT /?CTR9 + EQUAL? RARG,P?EAST,P?IN \?CCL10 +?CTR9: ZERO? NOW-WEARING \?CCL15 + PRINTI "Before you even take a step, you" + PRINT REMEMBER-NOT-DRESSED + PRINTC 46 + CRLF + RETURN 2 +?CCL15: EQUAL? RARG,P?EAST,P?IN \FALSE + CALL ENTER-PASSAGE + RTRUE +?CCL10: EQUAL? RARG,M-ENTER \?CCL24 + CALL QUEUE,I-TOUR,0 + RSTACK +?CCL24: EQUAL? RARG,M-LOOK \FALSE + CALL START-SENTENCE,YOUR-ROOM + PRINTI " is decorated in shades of " + CALL PRINT-COLOR + PRINTI ". You see " + PRINTD YOUR-BATHROOM + PRINTI " to the north and a cozy " + PRINTD FIREPLACE + PRINTI " in one corner. The room is furnished with a bed, a " + PRINTD NIGHTSTAND + PRINTI " with a lamp on it, a " + PRINTD CHEST-OF-DRAWERS + PRINTI ", a " + PRINTD WARDROBE + PRINTI ", a " + PRINTD YOUR-CHAIR + PRINTI ", and a " + PRINTD DRESSING-TABLE + PRINTI " with mirror and bench. There's also a full-length " + PRINTD YOUR-MIRROR + PRINTC 46 + CALL OPEN-DOOR?,SECRET-YOUR-DOOR + CRLF + CALL DESCRIBE-CONTENTS,BED + CALL DESCRIBE-CONTENTS,YOUR-CHAIR + FSET? HERE,TOUCHBIT /TRUE + LOC BUTLER + EQUAL? STACK,GALLERY,YOUR-ROOM /TRUE + CALL QUEUED?,I-DINNER + GRTR? 2,STACK /TRUE + CALL IN-MOTION?,FRIEND + ZERO? STACK \TRUE + PUTP FRIEND,P?LINE,0 + SET 'QCONTEXT,FRIEND + CALL HE-SHE-IT,FRIEND,TRUE-VALUE + IN? FRIEND,HERE /?PRG43 + MOVE FRIEND,HERE + PRINTI " enters and" +?PRG43: PRINTI " says, ""Let's chat a bit" + CALL FIND-FLAG-HERE,PERSONBIT,PLAYER,FRIEND + ZERO? STACK \?PRG49 + PRINTI ", now that we're alone" +?PRG49: PRINTR ".""" + + + .FUNCT ENTER-PASSAGE + PRINTI "You step down into a narrow " + PRINTD PASSAGE + PRINTR "." + + + .FUNCT BED-F + EQUAL? PRSA,V?THROUGH,V?BOARD \?CCL3 + CALL PERFORM,V?LIE,PRSO + RTRUE +?CCL3: EQUAL? PRSA,V?CLIMB-ON \FALSE + CALL PERFORM,V?SIT,PRSO + RTRUE + + + .FUNCT NIGHTSTAND-F + EQUAL? PRSA,V?LOOK-ON,V?EXAMINE \FALSE + CALL TELL-AS-WELL-AS,NIGHTSTAND,FALSE-VALUE,NIGHTLAMP + RTRUE + + + .FUNCT TELL-AS-WELL-AS,CONT,STR,OBJ=0,X=0 + FSET? CONT,SURFACEBIT \?CCL3 + PRINTC 79 + JUMP ?PRG8 +?CCL3: FSET CONT,OPENBIT + PRINTC 73 +?PRG8: PRINTC 110 + CALL PRINTT,CONT + PRINTI " you see" + CALL FIND-FLAG-NOT,CONT,NDESCBIT + ZERO? STACK /?PRG13 + SET 'X,TRUE-VALUE + JUMP ?CND10 +?PRG13: PRINTI " only" +?CND10: ZERO? OBJ /?PRG20 + CALL PRINTT,OBJ + JUMP ?CND15 +?PRG20: PRINT STR +?CND15: ZERO? X /?PRG26 + PRINTI ", as well as" + CALL PRINT-CONTENTS,CONT +?PRG26: PRINTR "." + + + .FUNCT DRESSING-MIRROR-F + EQUAL? PRSA,V?TURN,V?RUB,V?PUSH /?PRG6 + EQUAL? PRSA,V?MOVE-DIR,V?MOVE,V?FIX \?CCL3 +?PRG6: PRINTI "Now you can see " + PRINTD PLAYER + PRINTR " perfectly." +?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE + PRINTI "You look " + ZERO? WASHED /?PRG17 + PRINTI "smashing" + JUMP ?PRG19 +?PRG17: PRINTI "a trifle dirty" +?PRG19: PRINTI " in your " + ZERO? NOW-WEARING \?PRG26 + PRINTI "birthday suit" + JUMP ?PRG28 +?PRG26: PRINTD NOW-WEARING +?PRG28: PRINTR "." + + + .FUNCT YOUR-MIRROR-F + EQUAL? PRSA,V?SEARCH /?CTR2 + EQUAL? PRSA,V?RUB,V?LOOK-BEHIND,V?EXAMINE /?CTR2 + EQUAL? PRSA,V?SEARCH-FOR \?CCL3 + EQUAL? PRSO,YOUR-MIRROR \?CCL3 +?CTR2: IN? PLAYER,HERE /?PRG11 + CALL TOO-BAD-SIT-HIDE +?PRG11: PRINTI "By running your fingers around the frame, you discover" + CALL PRINTT,YOUR-SWITCH + CALL THIS-IS-IT,YOUR-SWITCH + PRINTR "." +?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL16 + FSET? SECRET-YOUR-DOOR,TOUCHBIT \?CCL16 + CALL PERFORM,PRSA,SECRET-YOUR-DOOR + RTRUE +?CCL16: EQUAL? PRSA,V?TURN /?PRG24 + EQUAL? PRSA,V?TAKE,V?RUB,V?PUSH /?PRG24 + EQUAL? PRSA,V?MOVE-DIR,V?MOVE,V?FIX \?CCL20 +?PRG24: PRINTR "It seems to be fastened to the wall." +?CCL20: CALL DRESSING-MIRROR-F + RSTACK + + + .FUNCT YOUR-SWITCH-F + EQUAL? PRSA,V?EXAMINE \?CCL3 + PRINTR "You can't tell by looking what it might do." +?CCL3: EQUAL? PRSA,V?OPEN \?CCL7 + FCLEAR YOUR-SWITCH,SECRETBIT + CALL OKAY,SECRET-YOUR-DOOR,STR?66 + RTRUE +?CCL7: EQUAL? PRSA,V?CLOSE \?CCL9 + FCLEAR YOUR-SWITCH,SECRETBIT + CALL OKAY,SECRET-YOUR-DOOR,STR?61 + RTRUE +?CCL9: EQUAL? PRSA,V?TURN,V?SLAP /?CCL11 + EQUAL? PRSA,V?RUB,V?PUSH,V?MOVE-DIR /?CCL11 + EQUAL? PRSA,V?MOVE,V?LAMP-ON,V?LAMP-OFF \FALSE +?CCL11: CALL OPEN-SECRET,FALSE-VALUE,YOUR-SWITCH,SECRET-YOUR-DOOR + RTRUE + + + .FUNCT YOUR-BATHROOM-F,RARG=0 + EQUAL? RARG,M-BEG \?CCL3 + EQUAL? PRSA,V?WALK-TO \FALSE + EQUAL? PRSO,YOUR-BATHROOM \FALSE + PRINT AHHH + RTRUE +?CCL3: EQUAL? RARG,M-LOOK \?CCL12 + PRINTI "From the look of it, " + PRINTD YOUR-BATHROOM + PRINTR " was added in recently. It is comfortable and inviting, especially for Cornwall." +?CCL12: EQUAL? RARG,M-EXIT \?CCL16 + ZERO? NOW-WEARING \FALSE + CALL FIND-FLAG,YOUR-ROOM,PERSONBIT >RARG + ZERO? RARG /FALSE + PRINTI "You peek in and see " + PRINTD RARG + PRINTI ", then" + PRINT REMEMBER-NOT-DRESSED + PRINTC 46 + CRLF + RETURN 2 +?CCL16: ZERO? RARG \FALSE + EQUAL? PRSA,V?UNLOCK /?CCL29 + EQUAL? PRSA,V?LOCK,V?CLOSE,V?OPEN \FALSE +?CCL29: CALL PERFORM,PRSA,YOUR-BATHROOM-DOOR + RTRUE + + + .FUNCT TOILET-PSEUDO + EQUAL? PRSA,V?LOOK-INSIDE \?CCL3 + CALL NOTHING-SPECIAL + RTRUE +?CCL3: EQUAL? PRSA,V?USE,V?SIT \FALSE + PRINT AHHH + RTRUE + + + .FUNCT BATH-PSEUDO + EQUAL? PRSA,V?LAMP-ON,V?FILL,V?CLOSE \?CCL3 + EQUAL? WINNER,PLAYER \TRUE + PRINTR "Okay, then what?" +?CCL3: EQUAL? PRSA,V?THROUGH /?CTR8 + EQUAL? PRSA,V?TAKE,V?SWIM,V?BOARD \?CCL9 +?CTR8: ZERO? NOW-WEARING \?PRG21 + FIRST? PLAYER \?CND15 + PRINTI "First you drop everything... +" + CALL ROB,PLAYER,HERE +?CND15: GET P-ITBL,P-VERBN + PUT STACK,0,W?BATHE + CALL V-WAIT,9,FALSE-VALUE,TRUE-VALUE + SET 'WASHED,TRUE-VALUE + PRINTI "You're now squeaky clean. After toweling off, you feel nicely relaxed and ready to tackle the mystery of " + PRINTD CASTLE + PRINTR "." +?PRG21: PRINTI "You almost step into the tub before you realize that your " + PRINTD NOW-WEARING + PRINTR " would get wet." +?CCL9: CALL RANDOM-PSEUDO + RSTACK + + + .FUNCT IRIS-ROOM-F,RARG=0 + EQUAL? RARG,M-BEG,M-EXIT \?CCL3 + EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL6 + EQUAL? PRSO,SECRET-IRIS-DOOR \?CCL6 + CALL YOU-CANT,FALSE-VALUE,PLAYER,STR?231 + RTRUE +?CCL6: CALL SECRET-CHECK,RARG + RSTACK +?CCL3: EQUAL? RARG,P?EAST,P?IN \?CCL10 + CALL ENTER-PASSAGE + RTRUE +?CCL10: EQUAL? RARG,M-LOOK \FALSE + PRINTD IRIS-ROOM + PRINTI " is furnished much like yours, but with a canopied bed and " + PRINTD IRIS-CHAIR + PRINTC 46 + CALL OPEN-DOOR?,SECRET-IRIS-DOOR + CRLF + RTRUE + + + .FUNCT WENDISH-ROOM-F,RARG=0 + EQUAL? RARG,M-BEG,M-EXIT \?CCL3 + CALL SECRET-CHECK,RARG + RSTACK +?CCL3: EQUAL? RARG,P?NORTH,P?IN \?CCL6 + CALL ENTER-PASSAGE + RTRUE +?CCL6: EQUAL? RARG,M-LOOK \FALSE + PRINTI "The room shows the doctor's precise, scientific personality. Everything is in its place. " + CALL WENDISH-STUFF-D + PRINTI "His " + PRINTD WENDISH-KIT + PRINTI " is on a marble-topped console attached to the wall. On the north wall is" + CALL PRINTT,CANDLE + PRINTC 46 + CALL OPEN-DOOR?,SECRET-WENDISH-DOOR + CRLF + RTRUE + + + .FUNCT CANDLE-F + EQUAL? PRSA,V?EXAMINE \?CCL3 + PRINTR "It seems to be fastened loosely to the wall." +?CCL3: EQUAL? PRSA,V?TURN,V?PUSH,V?MOVE-DIR /?CCL7 + EQUAL? PRSA,V?MOVE,V?LOOK-UNDER,V?LOOK-BEHIND /?CCL7 + EQUAL? PRSA,V?TAKE \FALSE + EQUAL? P-PRSA-WORD,W?RAISE,W?LIFT \FALSE +?CCL7: CALL OPEN-SECRET,STR?249,CANDLE,SECRET-WENDISH-DOOR + RSTACK + + + .FUNCT WENDISH-STUFF-D,X + PRINTI "Several " + PRINTD WENDISH-STUFF + PRINTI "s are lying on the " + PRINTD DRESSING-TABLE-LG + PRINTR "." + + + .FUNCT WENDISH-STUFF-F + EQUAL? PRSA,V?READ /?PRG6 + EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \?CCL3 +?PRG6: PRINTR "They are too technical to understand." +?CCL3: CALL RANDOM-PSEUDO + RSTACK + + + .FUNCT WENDISH-KIT-F,X + EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?CTR2 + EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \?CCL3 +?CTR2: CALL SEARCH-KIT-BOX,WENDISH-KIT,STR?250 + RTRUE +?CCL3: EQUAL? PRSA,V?TAKE \FALSE + EQUAL? PRSO,WENDISH-KIT \FALSE + CALL YOU-SHOULDNT + RSTACK + + + .FUNCT SEARCH-KIT-BOX,OBJ,STR,X=0 + FSET OBJ,OPENBIT + IN? LENS-BOX,OBJ \?CCL3 + SET 'X,LENS-BOX + JUMP ?CND1 +?CCL3: IN? VIVIEN-DIARY,OBJ \?CCL5 + SET 'X,VIVIEN-DIARY + JUMP ?CND1 +?CCL5: IN? COSTUME,OBJ \?CCL7 + SET 'X,COSTUME + JUMP ?CND1 +?CCL7: IN? BLOWGUN,OBJ \?CND1 + SET 'X,BLOWGUN +?CND1: ZERO? X /?CCL11 + CALL DISCOVER,X + EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /TRUE + PRINTC 89 + PRINT OU-STOP-SEARCHING + PRINTR "." +?CCL11: CALL TELL-AS-WELL-AS,OBJ,STR + RTRUE + + + .FUNCT VIVIEN-ROOM-F,RARG=0 + EQUAL? RARG,M-BEG,M-EXIT \?CCL3 + CALL SECRET-CHECK,RARG + RSTACK +?CCL3: EQUAL? RARG,P?SOUTH,P?IN \?CCL5 + CALL ENTER-PASSAGE + RTRUE +?CCL5: EQUAL? RARG,M-LOOK \FALSE + PRINTI "The room is untidy, probably because Vivien is an artist. Sketches and garments are strewn on the canopied bed and " + PRINTD VIVIEN-CHAIR + PRINTI ". Leaning against the wall are stretched canvases, and a fold-up easel for her outdoor art work. On the tallboy are a sketch pad, and a paint-smeared " + PRINTD VIVIEN-BOX + PRINTI ". On the south wall is a cheval glass and" + CALL PRINTT,FIGURINE + PRINTC 46 + CALL OPEN-DOOR?,SECRET-VIVIEN-DOOR + CRLF + CALL DESCRIBE-CONTENTS,VIVIEN-CHAIR + RTRUE + + + .FUNCT VIVIEN-BOX-F,X + EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?CTR2 + EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \?CCL3 +?CTR2: CALL SEARCH-KIT-BOX,VIVIEN-BOX,STR?251 + RTRUE +?CCL3: EQUAL? PRSA,V?TAKE \FALSE + EQUAL? PRSO,VIVIEN-BOX \FALSE + CALL YOU-SHOULDNT + RSTACK + + + .FUNCT FIGURINE-F + EQUAL? PRSA,V?EXAMINE \?CCL3 + PRINTR "It's turned toward the wall, so you can't see its face." +?CCL3: EQUAL? PRSA,V?TURN /?CCL7 + EQUAL? PRSA,V?PUSH,V?MOVE-DIR,V?MOVE \FALSE +?CCL7: CALL OPEN-SECRET,STR?161,FIGURINE,SECRET-VIVIEN-DOOR + RSTACK + + + .FUNCT IAN-ROOM-F,RARG=0 + EQUAL? RARG,M-BEG,M-EXIT \?CCL3 + CALL SECRET-CHECK,RARG + RSTACK +?CCL3: EQUAL? RARG,P?NORTH,P?IN \?CCL5 + CALL ENTER-PASSAGE + RTRUE +?CCL5: EQUAL? RARG,M-LOOK \FALSE + PRINTD IAN-ROOM + PRINTI " has rich wood panelling, a four-poster bed, Victorian washstand, and " + PRINTD IAN-CHAIR + PRINTI ". " + CALL TELL-IAN-FIREPLACE + CRLF + CALL OPEN-DOOR?,SECRET-IAN-DOOR,TRUE-VALUE + ZERO? STACK /TRUE + CRLF + RTRUE + + + .FUNCT TELL-IAN-FIREPLACE + PRINTI "In the " + PRINTD FIREPLACE + PRINTI ", the fender has flashy grillwork, and the " + PRINTD ANDIRON + PRINTI "s have fancy carved heads." + RTRUE + + + .FUNCT ANDIRON-F + EQUAL? PRSA,V?EXAMINE \?CCL3 + PRINTR "By looking closely, you find that the head can turn." +?CCL3: EQUAL? PRSA,V?TURN,V?RUB /?CCL7 + EQUAL? PRSA,V?PUSH,V?MOVE-DIR,V?MOVE \FALSE +?CCL7: CALL OPEN-SECRET,STR?161,ANDIRON,SECRET-IAN-DOOR + RSTACK + + + .FUNCT HYDE-ROOM-F,RARG=0 + EQUAL? RARG,M-BEG,M-EXIT \?CCL3 + EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL6 + EQUAL? PRSO,SECRET-HYDE-DOOR \?CCL6 + CALL YOU-CANT,FALSE-VALUE,PLAYER,STR?231 + RTRUE +?CCL6: CALL SECRET-CHECK,RARG + RSTACK +?CCL3: EQUAL? RARG,P?NORTH,P?IN \?CCL10 + CALL ENTER-PASSAGE + RTRUE +?CCL10: EQUAL? RARG,M-LOOK \FALSE + PRINTD HYDE-ROOM + PRINTI " has many tasteful antiques, such as " + CALL PRINTA,HYDE-CHAIR + PRINTI " in one corner." + CALL OPEN-DOOR?,SECRET-HYDE-DOOR + CRLF + RTRUE + + .ENDI diff --git a/castle.zil b/castle.zil new file mode 100644 index 0000000..e0dfd6b --- /dev/null +++ b/castle.zil @@ -0,0 +1,2804 @@ +"CASTLE for MOONMIST +Copyright (C) 1986 Infocom, Inc. All rights reserved." + + + + + + + + + ) + (T + + )>) + ( + >> + ) + (T )>) + ( + + + > + ) + (T )> + ) + (T )>) + (T + + > + + ; + ) + (T )>)>) + ( + > + + ) + (T )>)>> + + + + + ) + ( + ) + ( ;"WING-ROOMS" + + )>> + + + + + ) + ( + + )>> + + + + + ) + ( + )>> +[ + + )>> + + + +;< (GLOBAL ;CAR-WINDOW FRONT-GATE CAR MOON OCEAN COURTYARD) + (THINGS BLAST NULL-F)>) + (LINE 1) + (STATION DRIVEWAY) + (CHARACTER 2) ;"floor number" + (OUT PER DECAR-F)> + +> + > + ;>> + ) + ( + + > + ;"DRIVE CAR THRU object" + >> + + ) + (T )>) + (T ;"DRIVE CAR IN" + + )>) + (>> + ) + (T )>) + ( + ,ROOMS ,CAR>> + )>) + ( + > + >> + )>)>> + +) "AUX" S) + > + + + + + > + ) + ( + + ) + (T + + )>) + (T )>) + ( + + > + ) + (> + ) + (T ; + )>) + ( + + ) + (> + ) + (T ; + )>) + ( + >> + > + ) + (T )>) + (T ; + + + + ;)>) + (T ; + + > + ; ,COURTYARD ,CASTLE> + ) + (> + ) + (T ; + )>) + ( + + ) + (> + ) + (T ; + )>) + ( + >> + > + ) + (T )>) + ( + ,W?GO> + ) + (> + ) + (T )>) + (T )>) + ;(T )>) + ( > + + ) + ( + + > + >> + ; + >>> + ; + + ;> + + ) + (T )>) + ( + ;"only if syntax allows it" + + ) + ( + + )>)>) + ( + ;,HERE ,CAR> + )> + ) + (.ARG ) + ( + + ) + ;( + + ) + ( + ) + (T + + )>) + ;( + + ) + ( + )>> + + + + > + + + > + + + )> + > + +