mirror of
https://github.com/historicalsource/moonmist
synced 2024-06-29 05:05:09 +03:00
1796 lines
44 KiB
Plaintext
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
|