moonmist/castle.zap
historicalsource a2025f6d6c Final Revision
2019-04-14 13:37:43 -04:00

1796 lines
44 KiB
Plaintext

.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