mirror of
https://github.com/historicalsource/moonmist
synced 2024-04-25 21:49:37 +03:00
2892 lines
82 KiB
Plaintext
2892 lines
82 KiB
Plaintext
|
|
|
|
.FUNCT PLAYER-NAME-F
|
|
CALL DO-INSTEAD-OF,PLAYER,PLAYER-NAME
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PLAYER-F,ARG=0,L=0
|
|
EQUAL? ARG,M-WINNER /?CCL3
|
|
EQUAL? PRSO,PLAYER \FALSE
|
|
EQUAL? PRSA,V?THANKS,V?SORRY /?CTR8
|
|
EQUAL? PRSA,V?HELLO,V?DANCE,V?ARREST \?CCL9
|
|
?CTR8: CALL HAR-HAR
|
|
RTRUE
|
|
?CCL9: EQUAL? PRSA,V?EXAMINE \?CCL13
|
|
PRINTI "You are wearing"
|
|
ZERO? NOW-WEARING \?PRG21
|
|
PRINTI " nothing"
|
|
JUMP ?CND16
|
|
?PRG21: CALL PRINTT,NOW-WEARING
|
|
?CND16: FIRST? PLAYER >L /?PRG23
|
|
?PRG23: ZERO? L /?REP24
|
|
FSET? L,WORNBIT \?CND25
|
|
EQUAL? L,NOW-WEARING /?CND25
|
|
PRINTI " and"
|
|
CALL PRINTT,L
|
|
?CND25: NEXT? L >L /?PRG23
|
|
JUMP ?PRG23
|
|
?REP24: PRINTR "."
|
|
?CCL13: EQUAL? PRSA,V?SEARCH \?CCL36
|
|
CALL PERFORM,V?INVENTORY
|
|
RTRUE
|
|
?CCL36: EQUAL? PRSA,V?SMELL \FALSE
|
|
PRINTI "You smell "
|
|
ZERO? WASHED /?PRG46
|
|
PRINTR "clean and fresh."
|
|
?PRG46: PRINTR "as if you need washing."
|
|
?CCL3: CALL DIVESTMENT?,NOW-WEARING
|
|
ZERO? STACK /?CCL49
|
|
CALL NO-CHANGING?
|
|
ZERO? STACK \TRUE
|
|
ZERO? NOW-WEARING /FALSE
|
|
EQUAL? PRSA,V?REMOVE,V?DISEMBARK /FALSE
|
|
CALL FIRST-YOU,STR?139,NOW-WEARING
|
|
FCLEAR NOW-WEARING,WORNBIT
|
|
SET 'NOW-WEARING,FALSE-VALUE
|
|
RFALSE
|
|
?CCL49: ZERO? PRSI /?CCL58
|
|
EQUAL? PRSA,V?SEARCH-FOR /?CCL58
|
|
FSET? PRSI,SECRETBIT \?CCL58
|
|
FSET? PRSI,SEENBIT /?CCL58
|
|
CALL NOT-FOUND,PRSI
|
|
RTRUE
|
|
?CCL58: ZERO? PRSO /?CCL64
|
|
EQUAL? PRSA,V?WALK,V?FIND /?CCL64
|
|
FSET? PRSO,SECRETBIT \?CCL64
|
|
FSET? PRSO,SEENBIT /?CCL64
|
|
CALL NOT-FOUND,PRSO
|
|
RTRUE
|
|
?CCL64: ZERO? AWAITING-REPLY /?CCL70
|
|
EQUAL? PRSA,V?WALK-TO /?CTR69
|
|
EQUAL? PRSA,V?WALK,V?THROUGH,V?FOLLOW \?CCL70
|
|
?CTR69: SET 'CLOCK-WAIT,TRUE-VALUE
|
|
CALL PLEASE-ANSWER
|
|
RTRUE
|
|
?CCL70: LOC PLAYER >L
|
|
EQUAL? L,HERE,CAR /FALSE
|
|
ZERO? P-WALK-DIR /?CCL79
|
|
CALL TOO-BAD-SIT-HIDE
|
|
RSTACK
|
|
?CCL79: EQUAL? PRSO,FALSE-VALUE,ROOMS,L /FALSE
|
|
EQUAL? PRSA,V?FIND /?CTR82
|
|
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH,V?WALK-TO \?CCL83
|
|
?CTR82: EQUAL? PRSO,SLEEP-GLOBAL /FALSE
|
|
CALL TOO-BAD-SIT-HIDE
|
|
RSTACK
|
|
?CCL83: CALL SPEAKING-VERB?
|
|
ZERO? STACK \FALSE
|
|
CALL GAME-VERB?
|
|
ZERO? STACK \FALSE
|
|
CALL REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
EQUAL? PRSA,V?SMILE /FALSE
|
|
EQUAL? PRSA,V?SHOOT,V?NOD,V?LOOK-ON /FALSE
|
|
EQUAL? PRSA,V?LISTEN,V?FAINT,V?AIM /FALSE
|
|
CALL HELD?,PRSO
|
|
ZERO? STACK \FALSE
|
|
CALL HELD?,PRSO,GLOBAL-OBJECTS
|
|
ZERO? STACK \FALSE
|
|
EQUAL? L,CHAIR-DINING \?CCL105
|
|
IN? PRSO,TABLE-DINING /FALSE
|
|
?CCL105: EQUAL? PRSA,V?EXAMINE /FALSE
|
|
CALL HELD?,PRSO,L
|
|
ZERO? STACK \?CCL111
|
|
CALL TOO-BAD-SIT-HIDE
|
|
RSTACK
|
|
?CCL111: ZERO? PRSI /FALSE
|
|
CALL HELD?,PRSI
|
|
ZERO? STACK \FALSE
|
|
CALL HELD?,PRSI,GLOBAL-OBJECTS
|
|
ZERO? STACK \FALSE
|
|
CALL HELD?,PRSI,L
|
|
ZERO? STACK \FALSE
|
|
CALL TOO-BAD-SIT-HIDE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT PLEASE-ANSWER,P
|
|
GETB QUESTIONERS,AWAITING-REPLY >P
|
|
PRINTD P
|
|
PRINTI " says, """
|
|
EQUAL? P,BUTLER,DOCTOR \?PRG8
|
|
PRINTI "Pardon me, "
|
|
CALL TITLE-NAME
|
|
PRINTI ", but"
|
|
JUMP ?PRG10
|
|
?PRG8: PRINTI "Wait a mo'."
|
|
?PRG10: PRINTR " I asked you a question."""
|
|
|
|
|
|
.FUNCT TOO-BAD-SIT-HIDE
|
|
MOVE WINNER,HERE
|
|
CALL FIRST-YOU,STR?163
|
|
RFALSE
|
|
|
|
|
|
.FUNCT FRIEND-D,ARG=0
|
|
CALL DESCRIBE-PERSON,FRIEND
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-REPLY,GARG=0,P,X
|
|
ZERO? AWAITING-REPLY /FALSE
|
|
EQUAL? AWAITING-REPLY,BUTLER-1-R,BUTLER-2-R,BUTLER-3-R /?CTR4
|
|
EQUAL? AWAITING-REPLY,BUTLER-4-R \?CCL5
|
|
?CTR4: CALL QUEUED?,I-BUTLER-HINTS
|
|
ZERO? STACK /?CND8
|
|
CALL QUEUE,I-BUTLER-HINTS,CLOCKER-RUNNING
|
|
?CND8: SET 'P,BUTLER
|
|
JUMP ?CND1
|
|
?CCL5: EQUAL? AWAITING-REPLY,FRIEND-C \?CCL11
|
|
EQUAL? VARIATION,FRIEND-C \?CCL11
|
|
SET 'P,FRIEND
|
|
JUMP ?CND1
|
|
?CCL11: EQUAL? AWAITING-REPLY,DEB-C \?CCL15
|
|
SET 'P,DEB
|
|
JUMP ?CND1
|
|
?CCL15: EQUAL? AWAITING-REPLY,OFFICER-1-R,OFFICER-2-R \?CCL17
|
|
SET 'P,OFFICER
|
|
JUMP ?CND1
|
|
?CCL17: EQUAL? AWAITING-REPLY,DOCTOR-C \?CND1
|
|
SET 'P,DOCTOR
|
|
?CND1: ZERO? P \?CCL21
|
|
SET 'AWAITING-REPLY,FALSE-VALUE
|
|
RFALSE
|
|
?CCL21: GETP P,P?LINE >X
|
|
ADD 1,X
|
|
PUTP P,P?LINE,STACK
|
|
ZERO? X \?CCL24
|
|
CALL QUEUE,I-REPLY,CLOCKER-RUNNING
|
|
PRINTD P
|
|
PRINTI " repeats, ""I said: "
|
|
GET QUESTIONS,AWAITING-REPLY
|
|
PRINT STACK
|
|
PRINTI """
|
|
"
|
|
RETURN 2
|
|
?CCL24: SET 'AWAITING-REPLY,FALSE-VALUE
|
|
PUTP P,P?LDESC,20
|
|
CALL VISIBLE?,P
|
|
ZERO? STACK /?PRG41
|
|
CALL HE-SHE-IT,P,TRUE-VALUE
|
|
PRINTI " mutters, ""I'd "
|
|
EQUAL? P,FRIEND \?PRG37
|
|
PRINTI "wondered if you"
|
|
JUMP ?PRG39
|
|
?PRG37: PRINTI "heard that Americans"
|
|
?PRG39: PRINTI " were rude, but really...!"""
|
|
CRLF
|
|
?PRG41: RETURN 2
|
|
|
|
|
|
.FUNCT FRIEND-F,ARG=0,OBJ,X
|
|
EQUAL? ARG,M-WINNER \?CCL3
|
|
EQUAL? AWAITING-REPLY,FRIEND-C \?CCL6
|
|
EQUAL? PRSA,V?NO,V?YES \?CCL6
|
|
PUTP FRIEND,P?LDESC,0
|
|
PUTP FRIEND,P?LINE,0
|
|
SET 'AWAITING-REPLY,FALSE-VALUE
|
|
PRINTI """Then you "
|
|
EQUAL? PRSA,V?YES /?CND11
|
|
PRINTI "don't "
|
|
?CND11: SET 'P-IT-OBJECT,GHOST-NEW
|
|
PRINTI "know about my engagement, and the "
|
|
PRINTD GHOST-OLD
|
|
PRINTR ", and the fact that... that someone is trying to kill me!"""
|
|
?CCL6: CALL GRAB-ATTENTION,FRIEND
|
|
ZERO? STACK \?CCL18
|
|
RETURN 2
|
|
?CCL18: EQUAL? PRSA,V?DESCRIBE \?CCL22
|
|
EQUAL? PRSO,GHOST-NEW \?CCL22
|
|
PRINTI "Tammy shakes her head. ""I just don't know if the ghost was "
|
|
PRINTD LOVER
|
|
PRINTR ". I never saw her, just that portrait by Vivien. The night I saw that ghastly face peering down at me... Well, I was too shaken to remember anything, except that horrible spider dropping down on me!"" She shudders at the memory."
|
|
?CCL22: EQUAL? PRSA,V?FOLLOW \?CCL28
|
|
EQUAL? PRSO,PLAYER \?CCL28
|
|
CALL WILLING?,FRIEND
|
|
ZERO? STACK /?PRG36
|
|
PRINTI """I'll try my best, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI "!"""
|
|
CRLF
|
|
CALL NEW-FOLLOWER,FRIEND
|
|
RTRUE
|
|
?PRG36: PRINTR """Not just now."""
|
|
?CCL28: EQUAL? PRSA,V?YES \?CCL39
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?KISS,FRIEND
|
|
RTRUE
|
|
?CCL39: CALL COM-CHECK,FRIEND >X
|
|
ZERO? X /?CCL41
|
|
EQUAL? X,M-FATAL /FALSE
|
|
EQUAL? X,M-OTHER \TRUE
|
|
RETURN 2
|
|
?CCL41: CALL WHY-ME
|
|
RETURN 2
|
|
?CCL3: EQUAL? PRSA,V?TELL-ABOUT,V?SHOW,V?ASK-ABOUT \?CCL52
|
|
EQUAL? PRSI,SLEEP-OUTFIT,DINNER-OUTFIT /?CTR51
|
|
EQUAL? PRSI,EXERCISE-OUTFIT,TWEED-OUTFIT,CAR \?CCL52
|
|
?CTR51: CALL GRAB-ATTENTION,FRIEND
|
|
ZERO? STACK \?PRG62
|
|
RETURN 2
|
|
?PRG62: PRINTI """It's super!"
|
|
EQUAL? PRSI,TWEED-OUTFIT /?PRG68
|
|
PRINTI " And it's "
|
|
PRINTD YOUR-COLOR
|
|
PRINTC 33
|
|
?PRG68: PRINTR """"
|
|
?CCL52: CALL ASKING-ABOUT?,FRIEND >OBJ
|
|
ZERO? OBJ /?CCL71
|
|
CALL GRAB-ATTENTION,FRIEND,OBJ
|
|
ZERO? STACK \?CCL74
|
|
RETURN 2
|
|
?CCL74: EQUAL? OBJ,CASTLE \?CCL78
|
|
PRINTR """Oh, it's such a lovely place. If only I felt safe here!"""
|
|
?CCL78: EQUAL? OBJ,SEARCHER /?PRD84
|
|
CALL EVIDENCE?,OBJ
|
|
ZERO? STACK /?CCL82
|
|
?PRD84: ZERO? CONFESSED \?PRD87
|
|
GET TOLD-ABOUT-EVID,FRIEND-C
|
|
ZERO? STACK /?CCL82
|
|
?PRD87: EQUAL? FRIEND,SEARCHER /?CCL82
|
|
PRINT IM-SHOCKED
|
|
RTRUE
|
|
?CCL82: EQUAL? OBJ,COUSIN,BUST \?CCL93
|
|
PRINTR """Sorry, but I never met the man."""
|
|
?CCL93: EQUAL? OBJ,DEB \?CCL97
|
|
EQUAL? VARIATION,FRIEND-C \?CCL97
|
|
PRINT RHYMES-WITH-RICH
|
|
CRLF
|
|
RTRUE
|
|
?CCL97: EQUAL? OBJ,LENS,LENS-1,LENS-2 \?CCL103
|
|
PRINTI """You know I've never worn glasses, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI ", or "
|
|
PRINTD LENS
|
|
PRINTI "es, either."
|
|
EQUAL? VARIATION,DOCTOR-C,PAINTER-C \?PRG112
|
|
ZERO? FOUND-IT-PERM /?PRG112
|
|
PRINTI " I can't imagine who dropped it."
|
|
?PRG112: PRINTR """"
|
|
?CCL103: EQUAL? OBJ,PASSAGE \?CCL115
|
|
ZERO? FRIEND-FOUND-PASSAGES /?CCL115
|
|
CALL FRIEND-PASSAGE-STORY
|
|
RSTACK
|
|
?CCL115: EQUAL? OBJ,PRIEST-DOOR /?PRG124
|
|
EQUAL? OBJ,PASSAGE \?CCL119
|
|
GET FOUND-PASSAGES,FRIEND-C
|
|
ZERO? STACK \?CCL119
|
|
?PRG124: PRINTC 34
|
|
EQUAL? OBJ,PASSAGE \?PRG130
|
|
PRINTI "You mean "
|
|
PRINTD PASSAGE
|
|
PRINTI "s like in horror movies? "
|
|
?PRG130: PRINTI "Golly, I don't know that much about the castle, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
ZERO? STACK /?PRG136
|
|
PRINTC 46
|
|
?PRG136: PRINTI " Maybe Jack could tell you."
|
|
EQUAL? VARIATION,FRIEND-C \?PRG142
|
|
PRINTI " Or Iris, who's spent far too much time here."
|
|
?PRG142: PRINTR """"
|
|
?CCL119: EQUAL? OBJ,LORD,ROMANCE,FRIEND \?CCL145
|
|
EQUAL? OBJ,SEARCHER \?CTR144
|
|
GETP OBJ,P?LDESC
|
|
EQUAL? STACK,21 /?CCL145
|
|
?CTR144: EQUAL? OBJ,FRIEND /?PRG155
|
|
FSET? LORD,TOUCHBIT \?CCL152
|
|
?PRG155: PRINTI """Oh, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI ", I"
|
|
EQUAL? VARIATION,LORD-C \?PRG162
|
|
PRINTI " was"
|
|
JUMP ?PRG164
|
|
?PRG162: PRINTI "'m"
|
|
?PRG164: PRINTI " so happy!"" "
|
|
PRINTD FRIEND
|
|
PRINTI " gushes. ""The whole thing seem"
|
|
EQUAL? VARIATION,LORD-C \?PRG171
|
|
PRINTI "ed "
|
|
JUMP ?PRG173
|
|
?PRG171: PRINTI "s "
|
|
?PRG173: PRINTI "just like a fairy tale, or a paperback romance! But "
|
|
EQUAL? VARIATION,LORD-C \?PRG189
|
|
PRINTI "lately,"
|
|
LOC LORD
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \?PRG185
|
|
PRINTI """ she whispers, """
|
|
JUMP ?PRG187
|
|
?PRG185: PRINTC 32
|
|
?PRG187: PRINTI "Jack seems cool toward me"
|
|
JUMP ?PRG191
|
|
?PRG189: PRINTI "I told you all about it in my letter"
|
|
?PRG191: PRINTR "."""
|
|
?CCL152: MOVE LORD,HERE
|
|
CALL LORD-INTRO
|
|
RTRUE
|
|
?CCL145: EQUAL? OBJ,LOVER \?CCL194
|
|
PRINTI """She lived just down the beach, and from all accounts she spent most of her time hanging about the castle. If she'd stayed home a bit more, "
|
|
PRINTD ACCIDENT
|
|
PRINTR " never would've happened -- I mean, her falling in the well and drowning."""
|
|
?CCL194: EQUAL? OBJ,ACCIDENT \?CCL198
|
|
PRINTI """I can't tell you much,"" says "
|
|
PRINTD FRIEND
|
|
PRINTI ", ""because I wasn't here when it happened. But all the guests here tonight were also here that night. At dinner, they decided to have a wine tasting later in the evening. "
|
|
PRINTD LOVER
|
|
PRINTI " was to choose and pour the wine. But when the time came, she didn't show up, so they sent the butler down to the "
|
|
PRINTD BASEMENT
|
|
PRINTR ", to find her and help carry up the bottles. He came back saying that she'd fallen down the well!"""
|
|
?CCL198: EQUAL? OBJ,GHOST-OLD \?CCL202
|
|
PRINTI """I've told you all I know in my letter, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
ZERO? STACK /?PRG209
|
|
PRINTC 46
|
|
?PRG209: PRINTI " But come to think of it, there's an old "
|
|
PRINTD HISTORY-BOOK
|
|
PRINTI " in the "
|
|
PRINTD LIBRARY
|
|
PRINTI " that tells about "
|
|
PRINTD CASTLE
|
|
PRINTR ". You might learn more from that."""
|
|
?CCL202: EQUAL? OBJ,GHOST-NEW,DANGER,HAUNTING \?CCL212
|
|
PRINTI """Since I wrote you, I've seen the ghost again, and this third time was the worst. After working late one night, I was "
|
|
GET LDESC-STRINGS,17
|
|
PRINT STACK
|
|
PRINTI " the office to go to my room. As I opened the door to the "
|
|
PRINTD CORR-2
|
|
PRINTI ", I saw this ghostly figure with "
|
|
PRINT LONG-BLOND-HAIR
|
|
PRINTI " and a dead white face. It was holding a sword and about to attack me!""
|
|
"
|
|
PRINTD FRIEND
|
|
PRINTI " gulps and her voice quavers as she concludes, ""I s-s-screamed and shrank back inside the office and slammed the door! That's about all I can tell you, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI "..."""
|
|
CRLF
|
|
LOC LORD
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \?PRG228
|
|
GETP LORD,P?LINE
|
|
ZERO? STACK \?PRG228
|
|
PRINTI """I was just dozing off when Tammy's scream woke me,"" adds "
|
|
PRINTD LORD
|
|
PRINTI ". ""By the time I ran into the "
|
|
PRINTD CORR-2
|
|
PRINTI ", the ghost "
|
|
EQUAL? VARIATION,FRIEND-C \?PRG226
|
|
PRINTI "had disappeared."""
|
|
CRLF
|
|
JUMP ?PRG228
|
|
?PRG226: PRINTI "was almost gone. I did catch"
|
|
PRINT WHITISH-GLIMPSE
|
|
PRINTI " as it disappeared down the tower stairs -- but frankly I was more concerned about "
|
|
PRINTD FRIEND
|
|
PRINTI "."""
|
|
CRLF
|
|
?PRG228: PRINTD FRIEND
|
|
PRINTR " fidgets nervously. ""I don't know whether this ghost is real, or someone just play-acting. It can sneak around anywhere it pleases in the whole castle. I just don't understand how a person dressed up like a spook can do that without being caught!"""
|
|
?CCL212: EQUAL? OBJ,COSTUME,BLOWGUN,TAMARA-EVIDENCE \?CCL231
|
|
EQUAL? VARIATION,FRIEND-C \?CCL231
|
|
PRINTR """I've, uh, never seen it before."""
|
|
?CCL231: CALL COMMON-ASK-ABOUT,FRIEND,OBJ >X
|
|
ZERO? X /?CCL237
|
|
EQUAL? X,M-FATAL /FALSE
|
|
RTRUE
|
|
?CCL237: FSET? OBJ,PERSONBIT \?CCL242
|
|
EQUAL? OBJ,MAID /?CCL242
|
|
SET 'CLOCK-WAIT,TRUE-VALUE
|
|
PRINTI """I already told you about"
|
|
CALL HIM-HER-IT,OBJ
|
|
PRINTR " in my letter."""
|
|
?CCL242: EQUAL? PRSA,V?SHOW \?PRG252
|
|
PRINTI """It looks like "
|
|
CALL PRINTA,OBJ
|
|
PRINTR " to me."""
|
|
?PRG252: PRINTI """I just don't know, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
ZERO? STACK /?PRG258
|
|
PRINTC 46
|
|
?PRG258: PRINTR """"
|
|
?CCL71: EQUAL? PRSA,V?FOLLOW \?CCL261
|
|
CALL TOUR?
|
|
ZERO? STACK \TRUE
|
|
?CCL261: EQUAL? PRSA,V?HELLO,V?KISS \?CCL265
|
|
CALL UNSNOOZE,FRIEND
|
|
PUTP FRIEND,P?LINE,0
|
|
PUTP FRIEND,P?LDESC,0
|
|
CALL HE-SHE-IT,FRIEND,TRUE-VALUE,STR?175
|
|
PRINTR " you with affection. ""I'm so glad you're here!"""
|
|
?CCL265: CALL PERSON-F,FRIEND,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT TAMARA-EVIDENCE-F
|
|
EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?EXAMINE \FALSE
|
|
CALL NOT-HOLDING?,PRSO
|
|
ZERO? STACK \TRUE
|
|
PRINTI "It's a receipt for the purchase of an adder from a pet shop in Frobzance. Someone has written the word ""Iris"" on it and then viciously crossed it out."
|
|
CRLF
|
|
ZERO? EVIDENCE-FOUND \?CND8
|
|
CALL CONGRATS
|
|
?CND8: SET 'EVIDENCE-FOUND,TAMARA-EVIDENCE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ASKING-ABOUT?,WHO,DR
|
|
EQUAL? PRSA,V?SHOW,V?CONFRONT,V?ASK-ABOUT \FALSE
|
|
EQUAL? PRSI,PASSAGE \?CCL6
|
|
CALL FIND-FLAG-LG,HERE,DOORBIT,SECRETBIT >DR
|
|
ZERO? DR /?CCL6
|
|
FSET? DR,OPENBIT /FALSE
|
|
?CCL6: EQUAL? WHO,PRSO \FALSE
|
|
RETURN PRSI
|
|
|
|
|
|
.FUNCT LORD-INTRO
|
|
SET 'FOLLOWER,LORD
|
|
FSET LORD,TOUCHBIT
|
|
FSET LORD,SEENBIT
|
|
FCLEAR LORD,NDESCBIT
|
|
SET 'QCONTEXT,LORD
|
|
CALL THIS-IS-IT,LORD
|
|
PRINTI """Here comes Jack now!"" exclaims "
|
|
PRINTD FRIEND
|
|
PRINTI ", as he comes striding toward you. "
|
|
CALL COMMON-DESC,LORD
|
|
PRINTI "
|
|
""My fiance, "
|
|
PRINTD LORD
|
|
PRINTC 32
|
|
PRINT TRESYLLIAN
|
|
PRINTI ","" "
|
|
PRINTD FRIEND
|
|
PRINT INTRODUCES
|
|
PRINTI "him. ""Jack, this is my friend from the States, "
|
|
CALL TELL-FULL-NAME
|
|
PRINTI ".""
|
|
""So you're that famous young sleuth whom the Yanks call "
|
|
ZERO? GENDER-KNOWN \?CCL9
|
|
PRINTI "Young "
|
|
JUMP ?PRG12
|
|
?CCL9: CALL TITLE
|
|
?PRG12: PRINTI "Sherlock!"" says "
|
|
PRINTD LORD
|
|
ZERO? GENDER-KNOWN /?PRG18
|
|
FSET? PLAYER,FEMALE /?PRG20
|
|
?PRG18: PRINTI ", shaking hands"
|
|
?PRG20: PRINTI ". ""Tammy's told me about the mysteries you've solved"
|
|
ZERO? GENDER-KNOWN \?CCL24
|
|
PRINTI ". She seems to think you can unravel the mystery of "
|
|
PRINTD CASTLE
|
|
PRINTR "."""
|
|
?CCL24: FSET? PLAYER,FEMALE \?PRG31
|
|
PRINTI " -- but she never let on you looked so smashing! Welcome to Cornwall, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI " luv!""
|
|
Before you know it, he sweeps you into his arms and kisses you warmly! Let's hope "
|
|
PRINTD FRIEND
|
|
PRINTI " doesn't mind -- but for the moment all you can see are "
|
|
PRINTD LORD
|
|
PRINTR "'s dazzling sapphire-blue eyes."
|
|
?PRG31: PRINTR "!""
|
|
His keen blue eyes size you up with a friendly twinkle. Yet his friendliness seems to be all on the surface -- it may take time to figure out where His Lordship's really coming from."
|
|
|
|
|
|
.FUNCT TELL-FULL-NAME
|
|
CALL TITLE
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
ZERO? MIDDLE-WORD /?PRG9
|
|
EQUAL? MIDDLE-WORD,W?COMMA /?CND5
|
|
PRINTC 32
|
|
?CND5: PRINTB MIDDLE-WORD
|
|
?PRG9: PRINTC 32
|
|
CALL PRINT-NAME,LAST-NAME
|
|
CALL TELL-SUFFIX
|
|
RSTACK
|
|
|
|
|
|
.FUNCT LORD-D,ARG=0
|
|
CALL DESCRIBE-PERSON,LORD
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LORD-GHOST-STORY
|
|
PRINTI """No use asking ME, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
ZERO? STACK /?PRG7
|
|
PRINTC 46
|
|
?PRG7: PRINTI " All I caught was"
|
|
PRINT WHITISH-GLIMPSE
|
|
PRINTI ". "
|
|
EQUAL? VARIATION,DOCTOR-C,PAINTER-C \?CCL11
|
|
PRINTR "I couldn't even swear it was a woman; it might've been some bloke in drag."""
|
|
?CCL11: FSET GHOST-NEW,PERSONBIT
|
|
PRINTI "She was blonde, definitely female, and about Dee's height...""
|
|
"
|
|
PRINTD LORD
|
|
PRINTR "'s own face is pale as he adds, ""So, yes, it COULD have been her ghost... or Dee herself."""
|
|
|
|
|
|
.FUNCT LORD-F,ARG=0,OBJ,X
|
|
EQUAL? ARG,M-WINNER \?CCL3
|
|
CALL GRAB-ATTENTION,LORD
|
|
ZERO? STACK \?CCL6
|
|
RETURN 2
|
|
?CCL6: EQUAL? PRSA,V?DESCRIBE \?CCL10
|
|
EQUAL? PRSO,GHOST-NEW \?CCL10
|
|
EQUAL? VARIATION,FRIEND-C /?CCL10
|
|
CALL LORD-GHOST-STORY
|
|
RTRUE
|
|
?CCL10: EQUAL? PRSA,V?REPLY,V?ANSWER \?CCL15
|
|
EQUAL? 3,LIONEL-SPEAKS-COUNTER \?CCL15
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?ASK-ABOUT,LORD,ARTIFACT
|
|
RTRUE
|
|
?CCL15: CALL COM-CHECK,LORD >X
|
|
ZERO? X /?CCL19
|
|
EQUAL? X,M-FATAL /FALSE
|
|
EQUAL? X,M-OTHER \TRUE
|
|
RETURN 2
|
|
?CCL19: CALL WHY-ME
|
|
RETURN 2
|
|
?CCL3: CALL ASKING-ABOUT?,LORD >OBJ
|
|
ZERO? OBJ /?CCL30
|
|
CALL GRAB-ATTENTION,LORD,OBJ
|
|
ZERO? STACK \?CCL33
|
|
RETURN 2
|
|
?CCL33: EQUAL? OBJ,ACCIDENT \?CCL37
|
|
PRINTI "Jack takes a deep breath. ""You've heard the bare facts, I assume -- she was in the "
|
|
PRINTD BASEMENT
|
|
PRINTI ", slipped and fell down the well. The evidence proves what happened: a tent pole she'd stumbled over; her one shoe that came off, with the slippery sole and the loose heel; and of course "
|
|
PRINTD NECKLACE-OF-D
|
|
PRINTI ". I even"
|
|
PRINT FOUND-FABRIC
|
|
PRINTI """
|
|
He adds, ""The police never found "
|
|
PRINTD CORPSE
|
|
PRINTR ". But the well is drawing tide water. No doubt she was swept out to sea."""
|
|
?CCL37: EQUAL? OBJ,ARTIFACT \?CCL41
|
|
PRINTI "Jack fidgets and replies, ""Well, ah, we've all HEARD of it, certainly. Uncle Lionel liked to drop teasing hints about how valuable it was. But he was frightfully secretive. He never identified it."
|
|
EQUAL? LIONEL-SPEAKS-COUNTER,INIT-LIONEL-SPEAKS-COUNTER /?PRG52
|
|
PRINTI " He's probably playing the same silly game right now."
|
|
ZERO? LIONEL-SPEAKS-COUNTER /?PRG52
|
|
PRINTI " Let's hear the old boy out."
|
|
?PRG52: PRINTR """"
|
|
?CCL41: EQUAL? OBJ,CASTLE \?CCL55
|
|
PRINTI """Well, as I daresay you've heard, the castle's been infested lately with a spook. And it seems bent on harming "
|
|
PRINTD FRIEND
|
|
PRINTR ". All in all, a very rum go."""
|
|
?CCL55: EQUAL? OBJ,SEARCHER \?CCL59
|
|
ZERO? CONFESSED \?PRD62
|
|
GET TOLD-ABOUT-EVID,LORD-C
|
|
ZERO? STACK /?CCL59
|
|
?PRD62: EQUAL? LORD,SEARCHER /?CCL59
|
|
PRINT IM-SHOCKED
|
|
RTRUE
|
|
?CCL59: EQUAL? OBJ,FRIEND,ROMANCE \?CCL68
|
|
PRINTI """She's a darling girl, really first-rate."
|
|
EQUAL? VARIATION,FRIEND-C \?PRG82
|
|
LOC LORD
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \?PRG78
|
|
PRINTI """ He whispers, """
|
|
JUMP ?PRG80
|
|
?PRG78: PRINTC 32
|
|
?PRG80: PRINTI "Although lately she's seemed cool toward me."
|
|
?PRG82: PRINTR """"
|
|
?CCL68: EQUAL? OBJ,GHOST-NEW,DANGER,HAUNTING \?CCL85
|
|
EQUAL? VARIATION,FRIEND-C /?CCL85
|
|
CALL LORD-GHOST-STORY
|
|
RTRUE
|
|
?CCL85: EQUAL? OBJ,CLUE-2 \?CCL89
|
|
EQUAL? VARIATION,LORD-C /?CCL89
|
|
IN? OBJ,LORD /?CCL89
|
|
CALL CLUE-2-STORY,LORD
|
|
RTRUE
|
|
?CCL89: EQUAL? OBJ,LENS,LENS-1,LENS-2 \?CCL94
|
|
CALL HE-SHE-IT,LORD,TRUE-VALUE
|
|
PRINTI " gives a puzzled shrug, saying, """
|
|
PRINTR "There's nothing wrong with my eyesight."""
|
|
?CCL94: EQUAL? OBJ,MAID \?CCL101
|
|
FSET? LETTER,TOUCHBIT \?CCL101
|
|
PRINT JACK-THINKS-GLADYS
|
|
PRINTR """"
|
|
?CCL101: EQUAL? OBJ,PASSAGE \?CCL107
|
|
GET FOUND-PASSAGES,LORD-C
|
|
ZERO? STACK \?CCL107
|
|
PRINTI """Hmm... good question. I know there are old tales about "
|
|
PRINTD CASTLE
|
|
PRINTI " being honeycombed with "
|
|
PRINTD PASSAGE
|
|
PRINTR "s, but I've never actually stumbled on any. Uncle Lionel would have known, but I never asked him before he died, worse luck."""
|
|
?CCL107: EQUAL? OBJ,PRIEST-DOOR \?CCL113
|
|
PRINTI """It's in the "
|
|
PRINTD DUNGEON
|
|
PRINTI ", close to the curtain wall. Dee used it because her cottage is just down the shore.""
|
|
He adds, ""By the way, the name '"
|
|
PRINTD PRIEST-DOOR
|
|
PRINTI "' dates back to when the Catholic Church was outlawed in England, and priests had to hide for fear of execution. Many British great houses have "
|
|
PRINTD PASSAGE
|
|
PRINTR "s, hiding places, and entrances."""
|
|
?CCL113: CALL COMMON-ASK-ABOUT,LORD,OBJ >X
|
|
ZERO? X /?CCL117
|
|
EQUAL? X,M-FATAL /FALSE
|
|
RTRUE
|
|
?CCL117: CALL TELL-DUNNO,LORD,OBJ
|
|
RSTACK
|
|
?CCL30: EQUAL? PRSA,V?RUB,V?KISS \?CCL122
|
|
IN? FRIEND,HERE \?CND123
|
|
GETP FRIEND,P?LINE
|
|
ADD 1,STACK
|
|
PUTP FRIEND,P?LINE,STACK
|
|
CALL HE-SHE-IT,FRIEND,TRUE-VALUE
|
|
PRINTI " flashes you an angry look."
|
|
CRLF
|
|
?CND123: FSET? PLAYER,FEMALE \FALSE
|
|
CALL UNSNOOZE,LORD
|
|
PUTP LORD,P?LINE,0
|
|
PUTP LORD,P?LDESC,0
|
|
PRINTI """I say! You Americans are frightfully friendly!"" says "
|
|
PRINTD LORD
|
|
PRINTR "."
|
|
?CCL122: CALL PERSON-F,LORD,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CLUE-2-STORY,PER
|
|
PRINTC 34
|
|
PRINTR "I thought it was just one more of Lionel's weird jokes, or the effect of jungle rot on his brain -- that sort of thing."""
|
|
|
|
|
|
.FUNCT TELL-DUNNO,PER,OBJ
|
|
FSET? OBJ,PERSONBIT \?PRG6
|
|
PRINTR """I don't indulge much in idle gossip, you know."""
|
|
?PRG6: PRINTI """You know as much as I do"
|
|
EQUAL? PER,OFFICER \?PRG13
|
|
CALL IAN-CALLS-YOU
|
|
PRINTR "."""
|
|
?PRG13: PRINTI ", "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
ZERO? STACK /?PRG19
|
|
PRINTC 46
|
|
?PRG19: PRINTR """"
|
|
|
|
|
|
.FUNCT JACK-TAPE-F,P
|
|
EQUAL? PRSA,V?PLAY,V?LISTEN,V?LAMP-ON \FALSE
|
|
PRINTI "First you hear Lionel: ""This "
|
|
PRINTD JACK-TAPE
|
|
PRINTI " should capture any sound in the "
|
|
PRINTD JACK-ROOM
|
|
PRINTI " when I run it. Testing, testing,...""
|
|
Then you hear Lionel tell "
|
|
PRINTD LOVER
|
|
PRINTI " that he suspects Jack of coveting the inheritance and wanting to kill him.
|
|
After a pause, Jack tells Lionel, with a cold-blooded chuckle, that his time has come. Then "
|
|
PRINT LIONELS-VOICE
|
|
PRINTI " is urgent and muffled, as if he's being smothered! He calls out, ""Jack! Stop!"" and then... silence."
|
|
CRLF
|
|
FIRST? HERE >P /?KLU24
|
|
?KLU24: ZERO? P /?CND6
|
|
CALL FOUND-PASSAGES-REPEAT,P,JACK-TAPE,TOLD-ABOUT-EVID
|
|
?CND6: IN? FRIEND,HERE \?CND8
|
|
EQUAL? CAPTOR,FRIEND /?CND8
|
|
CALL THIS-IS-IT,FRIEND
|
|
MOVE FRIEND,TAMARA-ROOM
|
|
PUT FOLLOW-LOC,FRIEND-C,TAMARA-ROOM
|
|
EQUAL? FOLLOWER,FRIEND,LORD \?CND12
|
|
SET 'FOLLOWER,0
|
|
?CND12: GETP FRIEND,P?CHARACTER
|
|
GET GOAL-TABLES,STACK
|
|
PUT STACK,GOAL-ENABLE,0
|
|
PUTP FRIEND,P?LDESC,7
|
|
PRINTD FRIEND
|
|
PRINTI "'s eyes fill with tears, and she runs to her room."
|
|
CRLF
|
|
?CND8: ZERO? EVIDENCE-FOUND \?CND16
|
|
CALL CONGRATS
|
|
?CND16: SET 'EVIDENCE-FOUND,JACK-TAPE
|
|
ZERO? CONFESSED \TRUE
|
|
IN? LORD,HERE \?CCL22
|
|
CALL CONFESSION,LORD
|
|
RTRUE
|
|
?CCL22: CALL FIND-FLAG-HERE-NOT,PERSONBIT,MUNGBIT,WINNER >P
|
|
ZERO? P /TRUE
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?ASK-ABOUT,P,JACK-TAPE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LOVER-D,ARG=0
|
|
CALL DESCRIBE-PERSON,LOVER
|
|
RTRUE
|
|
|
|
|
|
.FUNCT LOVER-F,ARG=0
|
|
IN? LOVER-PIC,HERE \?CCL3
|
|
CALL REMOTE-VERB?
|
|
ZERO? STACK \?CCL3
|
|
CALL DO-INSTEAD-OF,LOVER-PIC,LOVER
|
|
RTRUE
|
|
?CCL3: CALL PERSON-F,LOVER,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DEB-D,ARG=0
|
|
CALL DESCRIBE-PERSON,DEB
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DEB-F,ARG=0,OBJ,X
|
|
EQUAL? ARG,M-WINNER \?CCL3
|
|
SET 'FAWNING,FALSE-VALUE
|
|
EQUAL? AWAITING-REPLY,DEB-C \?CCL6
|
|
EQUAL? PRSA,V?NO,V?YES \?CCL6
|
|
CALL ESTABLISH-GOAL,DOCTOR,HERE
|
|
PUTP DEB,P?LDESC,0
|
|
PUTP DEB,P?LINE,0
|
|
SET 'AWAITING-REPLY,FALSE-VALUE
|
|
EQUAL? PRSA,V?YES \?PRG14
|
|
PRINTR """Splendid!"""
|
|
?PRG14: PRINTR """What a pity!"""
|
|
?CCL6: CALL GRAB-ATTENTION,DEB
|
|
ZERO? STACK \?CCL17
|
|
RETURN 2
|
|
?CCL17: EQUAL? PRSA,V?DESCRIBE \?CCL21
|
|
EQUAL? PRSO,GHOST-NEW \?CCL21
|
|
FSET GHOST-NEW,PERSONBIT
|
|
PRINTI """Well, it appeared to be a woman with "
|
|
PRINT LONG-BLOND-HAIR
|
|
PRINTI " in a "
|
|
EQUAL? VARIATION,DOCTOR-C /?PRG30
|
|
PRINTI "sleeveless, "
|
|
?PRG30: PRINTI "silvery white gown. But if you're asking me, 'Was it really poor Dee?' I'm just not sure. "
|
|
EQUAL? VARIATION,FRIEND-C,LORD-C \?CCL34
|
|
PRINTR "I didn't see the face that well. But I'd say the figure was average height, and moved in a very feminine way, just as she did -- so it COULD have been her ghost."""
|
|
?CCL34: EQUAL? VARIATION,PAINTER-C \?PRG41
|
|
PRINTR "It seemed different from Dee in some way...""
|
|
She snaps her fingers, and her eyes brighten maliciously. ""Now I know! The ghost was too tall! Definitely taller than she!"""
|
|
?PRG41: PRINTI "It was "
|
|
PRINTI "about the right height, I suppose, but"
|
|
PRINTR " its gown, with long sleeves and a high neck, seemed different from hers. It lacked her femininity. She was a very feminine woman, you know -- almost seductive, as I'm sure Jack can testify. The ghost was just a sexless spook, one might say."""
|
|
?CCL21: EQUAL? PRSA,V?FOLLOW \?CCL49
|
|
EQUAL? PRSO,PLAYER \?CCL49
|
|
CALL WILLING?,DEB
|
|
ZERO? STACK /?CCL49
|
|
PRINTI """Ooo! I love an adventure, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI "!"""
|
|
CRLF
|
|
CALL NEW-FOLLOWER,DEB
|
|
RTRUE
|
|
?CCL49: CALL COM-CHECK,DEB >X
|
|
ZERO? X /?CCL56
|
|
EQUAL? X,M-FATAL /FALSE
|
|
EQUAL? X,M-OTHER \TRUE
|
|
RETURN 2
|
|
?CCL56: CALL WINNER-DEFAULT,DEB
|
|
RSTACK
|
|
?CCL3: CALL ASKING-ABOUT?,DEB >OBJ
|
|
ZERO? OBJ /?CCL65
|
|
CALL GRAB-ATTENTION,DEB,OBJ
|
|
ZERO? STACK \?CCL68
|
|
RETURN 2
|
|
?CCL68: EQUAL? OBJ,SEARCHER \?CCL72
|
|
ZERO? CONFESSED \?PRG77
|
|
GET TOLD-ABOUT-EVID,DEB-C
|
|
ZERO? STACK /?CCL72
|
|
?PRG77: PRINT IM-SHOCKED
|
|
RTRUE
|
|
?CCL72: EQUAL? OBJ,GHOST-NEW,DANGER,HAUNTING \?CCL80
|
|
PRINTI """It was quite dramatic, really. One night I couldn't sleep, so I got a poetic urge to go up on the "
|
|
PRINTD DECK
|
|
PRINTI " in the moonlight and commune with my soul.""
|
|
"
|
|
PRINTD DEB
|
|
PRINTR " goes on, ""As I started up the tower stairs, I saw this figure in white coming 'round the curve of the stairway. My dear, I absolutely FROZE! The ghost turned 'round and flitted back up the stairs, and by the time I recovered, it was gone!"""
|
|
?CCL80: EQUAL? OBJ,TAMARA-EVIDENCE \?CCL84
|
|
PRINTR """My word! It looks as if someone dislikes me!"""
|
|
?CCL84: CALL COMMON-ASK-ABOUT,DEB,OBJ >X
|
|
ZERO? X /?CCL88
|
|
EQUAL? X,M-FATAL /FALSE
|
|
RTRUE
|
|
?CCL88: CALL TELL-DUNNO,DEB,OBJ
|
|
RSTACK
|
|
?CCL65: EQUAL? PRSA,V?DANCE,V?KISS,V?RUB \?CCL93
|
|
CALL WILLING?,DEB,TRUE-VALUE
|
|
ZERO? STACK /FALSE
|
|
CALL UNSNOOZE,DEB
|
|
PUTP DEB,P?LINE,0
|
|
PUTP DEB,P?LDESC,0
|
|
PRINTI """Oooo"
|
|
CALL I-JUST-LOVE-IT
|
|
RTRUE
|
|
?CCL93: CALL PERSON-F,DEB,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT WILLING?,PER,KISS=0
|
|
ZERO? KISS \?CCL3
|
|
LESS? BED-TIME,PRESENT-TIME /FALSE
|
|
CALL QUEUED?,I-TOUR
|
|
ZERO? STACK \FALSE
|
|
EQUAL? HERE,DINING-ROOM /FALSE
|
|
CALL QUEUED?,I-DINNER-SIT
|
|
ZERO? STACK \FALSE
|
|
EQUAL? PER,CONFESSED,CAPTOR /FALSE
|
|
RTRUE
|
|
?CCL3: EQUAL? PER,FRIEND \?CCL16
|
|
EQUAL? VARIATION,FRIEND-C /FALSE
|
|
RTRUE
|
|
?CCL16: EQUAL? PER,BUTLER \?CCL21
|
|
EQUAL? PRSA,V?EMPTY \?CCL24
|
|
EQUAL? HERE,YOUR-ROOM \FALSE
|
|
?CCL24: EQUAL? PRSA,V?FOLLOW /FALSE
|
|
RTRUE
|
|
?CCL21: ZERO? GENDER-KNOWN /FALSE
|
|
EQUAL? PER,DEB \?CCL33
|
|
FSET? PLAYER,FEMALE /FALSE
|
|
RTRUE
|
|
?CCL33: EQUAL? PER,OFFICER \FALSE
|
|
FSET? PLAYER,FEMALE /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT OFFICER-D,ARG=0
|
|
FSET? OFFICER,TOUCHBIT \?CCL3
|
|
CALL DESCRIBE-PERSON,OFFICER
|
|
RTRUE
|
|
?CCL3: FSET OFFICER,TOUCHBIT
|
|
FSET OFFICER,SEENBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT I-JUST-LOVE-IT
|
|
PRINTI "! I just love it when you do that, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTR "!"""
|
|
|
|
|
|
.FUNCT WINNER-DEFAULT,PER
|
|
ZERO? GENDER-KNOWN /?CCL3
|
|
PRINTC 34
|
|
ZERO? FAWNING /?PRG10
|
|
PRINTI "But "
|
|
?PRG10: PRINTI "I really can't help you with that"
|
|
EQUAL? PER,OFFICER \?PRG14
|
|
CALL IAN-CALLS-YOU
|
|
?PRG14: PRINTR "."""
|
|
?CCL3: CALL WHY-ME
|
|
RETURN 2
|
|
|
|
|
|
.FUNCT OFFICER-F,ARG=0,P,OBJ,X
|
|
EQUAL? ARG,M-WINNER \?CCL3
|
|
SET 'FAWNING,FALSE-VALUE
|
|
EQUAL? AWAITING-REPLY,OFFICER-1-R,OFFICER-2-R \?CCL6
|
|
EQUAL? PRSA,V?NO,V?YES \?CCL6
|
|
CALL ESTABLISH-GOAL,DOCTOR,HERE
|
|
PUTP OFFICER,P?LDESC,0
|
|
PUTP OFFICER,P?LINE,0
|
|
PRINTC 34
|
|
EQUAL? PRSA,V?YES \?CCL13
|
|
PRINTI "Jolly good"
|
|
EQUAL? AWAITING-REPLY,OFFICER-1-R \?CND11
|
|
PRINTI "! You're certainly quick"
|
|
JUMP ?CND11
|
|
?CCL13: EQUAL? AWAITING-REPLY,OFFICER-1-R \?PRG24
|
|
PRINTI "I dare say you soon shall"
|
|
JUMP ?CND11
|
|
?PRG24: PRINTI "Pity"
|
|
?CND11: SET 'AWAITING-REPLY,FALSE-VALUE
|
|
PRINTR "!"""
|
|
?CCL6: CALL GRAB-ATTENTION,OFFICER
|
|
ZERO? STACK \?CCL29
|
|
RETURN 2
|
|
?CCL29: EQUAL? PRSA,V?DESCRIBE \?CCL33
|
|
EQUAL? PRSO,GHOST-NEW \?CCL33
|
|
EQUAL? VARIATION,PAINTER-C \?CCL33
|
|
PRINTI """Ghosts don't turn off lights, to my way of thinking. That alone makes me think our "
|
|
PRINTD GHOST-OLD
|
|
PRINTI "'s a fake. Somebody's sick idea of a joke, perhaps. "
|
|
FSET GHOST-NEW,PERSONBIT
|
|
PRINTI "Otherwise, the masquerade was highly effective. A female figure with "
|
|
PRINT LONG-BLOND-HAIR
|
|
PRINTR ", wearing the same sort of gown Dee was wearing that awful night she died -- at first it left me breathless. The only flaw, I should say, was the spook's height: too tall for Dee."""
|
|
?CCL33: EQUAL? PRSA,V?FOLLOW \?CCL43
|
|
EQUAL? PRSO,PLAYER \?CCL43
|
|
CALL WILLING?,OFFICER
|
|
ZERO? STACK /?CCL43
|
|
PRINTI """What ho! A bit of sleuthing, eh, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI "?"""
|
|
CRLF
|
|
CALL NEW-FOLLOWER,OFFICER
|
|
RTRUE
|
|
?CCL43: CALL COM-CHECK,OFFICER >X
|
|
ZERO? X /?CCL50
|
|
EQUAL? X,M-FATAL /FALSE
|
|
EQUAL? X,M-OTHER \TRUE
|
|
RETURN 2
|
|
?CCL50: CALL WINNER-DEFAULT,OFFICER
|
|
RSTACK
|
|
?CCL3: CALL ASKING-ABOUT?,OFFICER >OBJ
|
|
ZERO? OBJ /?CCL59
|
|
CALL GRAB-ATTENTION,OFFICER,OBJ
|
|
ZERO? STACK \?CCL62
|
|
RETURN 2
|
|
?CCL62: EQUAL? OBJ,SEARCHER \?CCL66
|
|
ZERO? CONFESSED \?PRG71
|
|
GET TOLD-ABOUT-EVID,OFFICER-C
|
|
ZERO? STACK /?CCL66
|
|
?PRG71: PRINT IM-SHOCKED
|
|
RTRUE
|
|
?CCL66: EQUAL? OBJ,LENS,LENS-1,LENS-2 \?CCL74
|
|
CALL HE-SHE-IT,OFFICER,TRUE-VALUE
|
|
PRINTR " grins, ""It's not mine. Her Majesty would hardly allow me to serve in her Coldstream Guards were my vision faulty!"""
|
|
?CCL74: EQUAL? OBJ,GHOST-NEW,DANGER,HAUNTING \?CCL78
|
|
EQUAL? VARIATION,PAINTER-C \?CCL78
|
|
PRINTI """It was the last time I came down here to visit Jack. We had been up late, playing cards in the "
|
|
PRINTD GAME-ROOM
|
|
PRINTR ". Then Jack toddled off to bed, but I stayed up to read and finish my drink. I must have dozed off with my glass in my hand, for I woke with a start as it crashed to the floor. And the first thing I saw was this figure in white at the other end of the room.""
|
|
He goes on, ""Blimey, I thought I was seeing things! For a moment I just gaped at it. Then the spook went haring off out the door, flicking off the light on the way. By the time I found the door, it was gone."""
|
|
?CCL78: CALL COMMON-ASK-ABOUT,OFFICER,OBJ >X
|
|
ZERO? X /?CCL84
|
|
EQUAL? X,M-FATAL /FALSE
|
|
RTRUE
|
|
?CCL84: CALL TELL-DUNNO,OFFICER,OBJ
|
|
RSTACK
|
|
?CCL59: EQUAL? PRSA,V?DANCE,V?KISS,V?RUB \?CCL89
|
|
CALL WILLING?,OFFICER,TRUE-VALUE
|
|
ZERO? STACK /FALSE
|
|
CALL UNSNOOZE,OFFICER
|
|
PUTP OFFICER,P?LINE,0
|
|
PUTP OFFICER,P?LDESC,0
|
|
PRINTI """Hello"
|
|
CALL I-JUST-LOVE-IT
|
|
RTRUE
|
|
?CCL89: CALL PERSON-F,OFFICER,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT IAN-CALLS-YOU
|
|
GETB LAST-NAME,0
|
|
ZERO? STACK /FALSE
|
|
PRINTI ", "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
ZERO? GENDER-KNOWN /TRUE
|
|
FSET? PLAYER,FEMALE \?PRG12
|
|
PRINTI " luv"
|
|
RTRUE
|
|
?PRG12: PRINTI " old "
|
|
BTST PRESENT-TIME,1 \?PRG19
|
|
PRINTI "chap"
|
|
RTRUE
|
|
?PRG19: PRINTI "son"
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DOCTOR-D,ARG=0
|
|
FSET? DOCTOR,TOUCHBIT \?CCL3
|
|
CALL DESCRIBE-PERSON,DOCTOR
|
|
RTRUE
|
|
?CCL3: FSET DOCTOR,TOUCHBIT
|
|
CRLF
|
|
PRINTC 34
|
|
ZERO? TOUR-FORCED /?PRG13
|
|
PRINTI "Oh,"
|
|
JUMP ?PRG15
|
|
?PRG13: PRINTI "Do excuse me for interrupting,"" "
|
|
PRINTD FRIEND
|
|
PRINTI " breaks in, ""but"
|
|
?PRG15: PRINTI " here comes "
|
|
PRINTD DOCTOR
|
|
PRINTI "! I'm sure "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI " wants to meet such a distinguished scientist!""
|
|
"
|
|
PRINTI "A man is coming downstairs. "
|
|
CALL COMMON-DESC,DOCTOR
|
|
SET 'QCONTEXT,DOCTOR
|
|
CALL THIS-IS-IT,DOCTOR
|
|
PUTP DOCTOR,P?LDESC,12
|
|
SET 'AWAITING-REPLY,DOCTOR-C
|
|
CALL QUEUE,I-REPLY,CLOCKER-RUNNING
|
|
PRINTD FRIEND
|
|
PRINT INTRODUCES
|
|
PRINTI "him as one of Lionel's oldest friends, Dr. Nicholas Wendish.
|
|
He's carelessly dressed in rumpled evening clothes, but his hawk eyes peering at you through gold-rimmed specs show ruthless intelligence.
|
|
""I read about one of your mystery cases when I was in New York last year, "
|
|
CALL TITLE-NAME
|
|
PRINTI ","" he probes. """
|
|
GET QUESTIONS,AWAITING-REPLY
|
|
PRINT STACK
|
|
PRINTI """
|
|
"
|
|
RETURN 2
|
|
|
|
|
|
.FUNCT DOCTOR-F,ARG=0,OBJ,X
|
|
EQUAL? ARG,M-WINNER \?CCL3
|
|
EQUAL? AWAITING-REPLY,DOCTOR-C \?CCL6
|
|
EQUAL? PRSA,V?NO,V?YES \?CCL6
|
|
PUTP DOCTOR,P?LDESC,0
|
|
PUTP DOCTOR,P?LINE,0
|
|
SET 'AWAITING-REPLY,FALSE-VALUE
|
|
PRINTR """I see..."""
|
|
?CCL6: CALL GRAB-ATTENTION,DOCTOR
|
|
ZERO? STACK \?CCL12
|
|
RETURN 2
|
|
?CCL12: EQUAL? PRSA,V?DESCRIBE \?CCL16
|
|
EQUAL? PRSO,GHOST-NEW \?CCL16
|
|
EQUAL? VARIATION,DOCTOR-C \?CCL16
|
|
PRINTD DOCTOR
|
|
PRINTI " shrugs, with a look of distaste, as if he'd like to forget the episode. """
|
|
PRINTI "I'm afraid I can't tell you any more, "
|
|
CALL TITLE-NAME
|
|
ZERO? STACK /?PRG29
|
|
PRINTC 46
|
|
?PRG29: PRINTI " I assumed the ghost was "
|
|
PRINTD LOVER
|
|
PRINTI ". It certainly looked like her: a blonde, attractive young woman. If it WASN'T "
|
|
PRINTD LOVER
|
|
PRINTR ", it was a convincing imposture."""
|
|
?CCL16: CALL DIVESTMENT?,MUSTACHE
|
|
ZERO? STACK /?CCL32
|
|
EQUAL? VARIATION,DOCTOR-C \?CCL35
|
|
PRINT MUSTACHE-STORY
|
|
RTRUE
|
|
?CCL35: CALL HAR-HAR
|
|
RSTACK
|
|
?CCL32: CALL COM-CHECK,DOCTOR >X
|
|
ZERO? X /?CCL39
|
|
EQUAL? X,M-FATAL /FALSE
|
|
EQUAL? X,M-OTHER \TRUE
|
|
RETURN 2
|
|
?CCL39: CALL WHY-ME
|
|
RETURN 2
|
|
?CCL3: CALL ASKING-ABOUT?,DOCTOR >OBJ
|
|
ZERO? OBJ /?CCL50
|
|
CALL GRAB-ATTENTION,DOCTOR,OBJ
|
|
ZERO? STACK \?CCL53
|
|
RETURN 2
|
|
?CCL53: EQUAL? OBJ,SEARCHER \?CCL57
|
|
ZERO? CONFESSED \?PRD60
|
|
GET TOLD-ABOUT-EVID,DOCTOR-C
|
|
ZERO? STACK /?CCL57
|
|
?PRD60: EQUAL? DOCTOR,SEARCHER /?CCL57
|
|
PRINT IM-SHOCKED
|
|
RTRUE
|
|
?CCL57: EQUAL? OBJ,COUSIN,BUST \?CCL66
|
|
PRINTR """He loved me as a brother."""
|
|
?CCL66: EQUAL? OBJ,GHOST-NEW,DANGER,HAUNTING \?CCL70
|
|
EQUAL? VARIATION,DOCTOR-C \?CCL70
|
|
PRINTI "The doctor pauses, looking troubled, as if reluctant to speak, or perhaps marshaling his thoughts.
|
|
""On the very night after "
|
|
PRINTD ACCIDENT
|
|
PRINTI ","" he says at last, ""I couldn't sleep. I suppose the tragedy was on my mind. That and the medical cases I have in my London clinic for rare diseases. Anyhow, I took a stroll out in the "
|
|
PRINTD COURTYARD
|
|
PRINTI ". The fresh sea breeze was very soothing. When I went back inside, I felt ready for sleep. I went in through the "
|
|
PRINTD OLD-GREAT-HALL
|
|
PRINTI ", you see.""
|
|
He goes on, ""Then I saw this ghostly figure in white -- Good Lord, what a shock it gave me! I couldn't move for a moment; I thought "
|
|
PRINTD LOVER
|
|
PRINTI " had come back from the dead. As I stood there, staring, the ghost flitted off toward the "
|
|
PRINTD BASEMENT
|
|
PRINTR "... I felt no impulse to go after it, I might add."""
|
|
?CCL70: EQUAL? OBJ,LENS,LENS-1,LENS-2 \?CCL76
|
|
PRINTC 34
|
|
EQUAL? VARIATION,DOCTOR-C,PAINTER-C \?PRG85
|
|
ZERO? FOUND-IT-PERM /?PRG85
|
|
PRINTI "Not mine. "
|
|
?PRG85: PRINTR "As you see, I wear glasses at all times,"" he says."
|
|
?CCL76: EQUAL? OBJ,MUSTACHE \?CCL88
|
|
EQUAL? VARIATION,DOCTOR-C \?CCL88
|
|
PRINT MUSTACHE-STORY
|
|
RTRUE
|
|
?CCL88: EQUAL? OBJ,WENDISH-STUFF \?CCL94
|
|
PRINTR """I always bring them along."""
|
|
?CCL94: CALL COMMON-ASK-ABOUT,DOCTOR,OBJ >X
|
|
ZERO? X /?CCL98
|
|
EQUAL? X,M-FATAL /FALSE
|
|
RTRUE
|
|
?CCL98: CALL TELL-DUNNO,DOCTOR,OBJ
|
|
RSTACK
|
|
?CCL50: CALL PERSON-F,DOCTOR,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT MUSTACHE-F
|
|
EQUAL? PRSA,V?TAKE,V?MOVE,V?ASK-FOR /?PRD5
|
|
CALL DIVESTMENT?,MUSTACHE
|
|
ZERO? STACK /?CCL3
|
|
?PRD5: IN? MUSTACHE,DOCTOR \?CCL3
|
|
FSET? DOCTOR,MUNGBIT \?CCL10
|
|
EQUAL? VARIATION,DOCTOR-C \FALSE
|
|
FSET MUSTACHE,TAKEBIT
|
|
FCLEAR MUSTACHE,TRYTAKEBIT
|
|
RFALSE
|
|
?CCL10: EQUAL? VARIATION,DOCTOR-C \?CTR13
|
|
FSET? MUSTACHE,TOUCHBIT \?CCL14
|
|
?CTR13: CALL FACE-RED,DOCTOR
|
|
RTRUE
|
|
?CCL14: FSET MUSTACHE,TOUCHBIT
|
|
PRINTI "It comes off, leaving "
|
|
PRINTD DOCTOR
|
|
PRINTI " blinking with embarrassment. He grabs it and puts it in place again. "
|
|
PRINT MUSTACHE-STORY
|
|
RTRUE
|
|
?CCL3: EQUAL? PRSA,V?WEAR /?CCL20
|
|
EQUAL? PRSA,V?PUT \FALSE
|
|
FSET? PRSI,PERSONBIT \FALSE
|
|
?CCL20: CALL WEAR-SCARE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT WENDISH-BOOK-F
|
|
EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?EXAMINE \FALSE
|
|
CALL NOT-HOLDING?,PRSO
|
|
ZERO? STACK \TRUE
|
|
PRINTI "The "
|
|
PRINTD WENDISH-BOOK
|
|
PRINTI " contains an incriminating record of "
|
|
PRINTD DOCTOR
|
|
PRINTI "'s fiendish experiments on patients at his clinic. Near the end you read:
|
|
""Finally took care of Poldark's granddau. (comely wench), pity she disc'd facts of his end."""
|
|
CRLF
|
|
ZERO? EVIDENCE-FOUND \?CND8
|
|
CALL CONGRATS
|
|
?CND8: SET 'EVIDENCE-FOUND,WENDISH-BOOK
|
|
RETURN EVIDENCE-FOUND
|
|
|
|
|
|
.FUNCT DEALER-D,ARG=0,PER
|
|
CALL DESCRIBE-PERSON,DEALER
|
|
RTRUE
|
|
|
|
|
|
.FUNCT DEALER-F,ARG=0,OBJ,X
|
|
EQUAL? ARG,M-WINNER \?CCL3
|
|
CALL GRAB-ATTENTION,DEALER
|
|
ZERO? STACK \?CCL6
|
|
RETURN 2
|
|
?CCL6: EQUAL? PRSA,V?DESCRIBE \?CCL10
|
|
EQUAL? PRSO,GHOST-NEW \?CCL10
|
|
EQUAL? VARIATION,PAINTER-C /?CCL10
|
|
PRINTI """You're wondering, I presume, if it really was "
|
|
PRINTD LOVER
|
|
PRINTI " Hallam's ghost? Frankly, I don't put stock in ghosts, but my answer is... "
|
|
FSET GHOST-NEW,PERSONBIT
|
|
EQUAL? VARIATION,FRIEND-C,PAINTER-C,LORD-C \?PRG21
|
|
PRINTI "possibly. That's as far as I'd go. It was certainly a female figure, in a shimmering whitish gown, sleeveless and cut low. She had "
|
|
PRINT LONG-BLOND-HAIR
|
|
PRINTI " like "
|
|
PRINTD LOVER
|
|
PRINTR "'s and was about her size. But as for her face -- my view was too brief,"" Hyde shrugs."
|
|
?PRG21: PRINTI "I'm not at all convinced. Somehow it didn't match my memories of "
|
|
PRINTD LOVER
|
|
PRINTR ". For one thing, the gown wasn't her style, at all. Her clothes were always quite revealing. The ghost seemed quite covered up at the throat and arms. You might say it totally lacked feminine sex appeal."""
|
|
?CCL10: CALL COM-CHECK,DEALER >X
|
|
ZERO? X /?CCL24
|
|
EQUAL? X,M-FATAL /FALSE
|
|
EQUAL? X,M-OTHER \TRUE
|
|
RETURN 2
|
|
?CCL24: CALL WHY-ME
|
|
RETURN 2
|
|
?CCL3: CALL ASKING-ABOUT?,DEALER >OBJ
|
|
ZERO? OBJ /?CCL35
|
|
CALL GRAB-ATTENTION,DEALER,OBJ
|
|
ZERO? STACK \?CCL38
|
|
RETURN 2
|
|
?CCL38: EQUAL? OBJ,SEARCHER \?CCL42
|
|
ZERO? CONFESSED \?PRG47
|
|
GET TOLD-ABOUT-EVID,DEALER-C
|
|
ZERO? STACK /?CCL42
|
|
?PRG47: PRINT IM-SHOCKED
|
|
RTRUE
|
|
?CCL42: EQUAL? OBJ,GHOST-NEW,DANGER,HAUNTING \?CCL50
|
|
EQUAL? VARIATION,PAINTER-C /?CCL50
|
|
PRINTI """I came down late one night to get a book that I'd left in the "
|
|
PRINTD SITTING-ROOM
|
|
PRINTI ". I had just turned 'round to go back upstairs when I saw a ghostly figure in the doorway. It fled as soon as I noticed it, in the "
|
|
PRINTD INTDIR
|
|
PRINTR " of the tower.""
|
|
He goes on, ""I was stunned, I must admit, so I dare say it took me a moment to collect my wits and go after it. I ran into the tower, but the spectre had vanished. This happened, by the way, a couple of weeks ago, on my last visit to the castle."""
|
|
?CCL50: EQUAL? OBJ,LENS,LENS-1,LENS-2 \?CCL56
|
|
CALL HE-SHE-IT,DEALER,TRUE-VALUE
|
|
PRINTR " displays his monocle, saying, ""This is the only vision aid I require."""
|
|
?CCL56: EQUAL? OBJ,ARMOR,BUST /?PRG64
|
|
EQUAL? OBJ,FIGURINE,LOVER-PIC,OIL-PAINTING /?PRG64
|
|
EQUAL? OBJ,PAINTING-GALLERY,WRITING-DESK \?CCL60
|
|
?PRG64: PRINTR """I haven't formed my professional opinion as yet."""
|
|
?CCL60: CALL COMMON-ASK-ABOUT,DEALER,OBJ >X
|
|
ZERO? X /?CCL67
|
|
EQUAL? X,M-FATAL /FALSE
|
|
RTRUE
|
|
?CCL67: CALL TELL-DUNNO,DEALER,OBJ
|
|
RSTACK
|
|
?CCL35: CALL PERSON-F,DEALER,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT PAINTER-D,ARG=0
|
|
FSET? PAINTER,TOUCHBIT \?CCL3
|
|
CALL DESCRIBE-PERSON,PAINTER
|
|
RTRUE
|
|
?CCL3: FSET PAINTER,TOUCHBIT
|
|
FCLEAR DEALER,NDESCBIT
|
|
LOC DEALER
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \TRUE
|
|
GETP DEALER,P?LDESC
|
|
EQUAL? STACK,2 /FALSE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PAINTER-F,ARG=0,OBJ,X
|
|
EQUAL? ARG,M-WINNER \?CCL3
|
|
CALL GRAB-ATTENTION,PAINTER
|
|
ZERO? STACK \?CCL6
|
|
RETURN 2
|
|
?CCL6: EQUAL? PRSA,V?DESCRIBE \?CCL10
|
|
EQUAL? PRSO,GHOST-NEW \?CCL10
|
|
EQUAL? VARIATION,PAINTER-C \?CCL10
|
|
FSET GHOST-NEW,PERSONBIT
|
|
PRINTI """It was "
|
|
PRINTD LOVER
|
|
PRINTI ", or her ghost. What more can I say? A female figure, her size, wearing the same sort of shimmering white gown she had on the night she died -- and unmistakably her face! The likeness was heart-stopping...""
|
|
Vivien chokes up for a moment, then dabs her eyes. ""I'm sorry. I shouldn't let my feelings take over this way, but "
|
|
PRINTD LOVER
|
|
PRINTR " was such a lovely person!"""
|
|
?CCL10: CALL COM-CHECK,PAINTER >X
|
|
ZERO? X /?CCL18
|
|
EQUAL? X,M-FATAL /FALSE
|
|
EQUAL? X,M-OTHER \TRUE
|
|
RETURN 2
|
|
?CCL18: CALL WHY-ME
|
|
RETURN 2
|
|
?CCL3: CALL ASKING-ABOUT?,PAINTER >OBJ
|
|
ZERO? OBJ /?CCL29
|
|
CALL GRAB-ATTENTION,PAINTER,OBJ
|
|
ZERO? STACK \?CCL32
|
|
RETURN 2
|
|
?CCL32: EQUAL? OBJ,BUST,FIGURINE \?CCL36
|
|
PRINTR """Yes, that's one of my works."""
|
|
?CCL36: EQUAL? OBJ,SEARCHER \?CCL40
|
|
ZERO? CONFESSED \?PRD43
|
|
GET TOLD-ABOUT-EVID,PAINTER-C
|
|
ZERO? STACK /?CCL40
|
|
?PRD43: EQUAL? PAINTER,SEARCHER /?CCL40
|
|
PRINT IM-SHOCKED
|
|
RTRUE
|
|
?CCL40: EQUAL? OBJ,FRIEND \?CCL49
|
|
EQUAL? VARIATION,PAINTER-C \?CCL49
|
|
PRINT RHYMES-WITH-RICH
|
|
CRLF
|
|
RTRUE
|
|
?CCL49: EQUAL? OBJ,GHOST-NEW,DANGER,HAUNTING \?CCL55
|
|
EQUAL? VARIATION,PAINTER-C \?CCL55
|
|
CALL HE-SHE-IT,PAINTER,TRUE-VALUE
|
|
PRINTI " is somber as she replies, ""I dare say it was morbid of me, but one night I went to the "
|
|
PRINTD BASEMENT
|
|
PRINTI ", just to try to imagine the horrible scene when poor "
|
|
PRINTD LOVER
|
|
PRINTI " suffered her... tragic accident. Suddenly I heard someone calling my name softly. I turned 'round, and there was "
|
|
PRINTD LOVER
|
|
PRINTI " herself standing by the stairs"
|
|
PRINTI "! I went absolutely numb! She smiled faintly, then fled up the stairs. I started to follow, but then I knew it was no use. "
|
|
PRINTD LOVER
|
|
PRINTR " is dead and gone, and chasing her ghost won't bring her back to me!"""
|
|
?CCL55: EQUAL? OBJ,CLUE-2 \?CCL64
|
|
EQUAL? VARIATION,LORD-C \?CCL64
|
|
IN? OBJ,PAINTER /?CCL64
|
|
CALL CLUE-2-STORY,PAINTER
|
|
RTRUE
|
|
?CCL64: EQUAL? OBJ,LENS,LENS-1,LENS-2 \?CCL69
|
|
CALL HE-SHE-IT,PAINTER,TRUE-VALUE
|
|
EQUAL? VARIATION,PAINTER-C \?PRG77
|
|
PRINTI " says she wears"
|
|
PRINT GLASSES-FOR
|
|
PRINTI ", as everyone knows; then she shudders, ""But "
|
|
PRINTD LENS
|
|
PRINTR "es -- ugh! -- I could never tolerate them!"""
|
|
?PRG77: PRINTI " admits to wearing "
|
|
PRINTD LENS
|
|
PRINTI "es at all times, and"
|
|
PRINT GLASSES-FOR
|
|
EQUAL? VARIATION,DOCTOR-C,PAINTER-C \?PRG86
|
|
ZERO? FOUND-IT-PERM /?PRG86
|
|
PRINTR ", but she says the lens you found isn't hers. With a cynical smile, she pops out both lenses, one at a time, to show you."
|
|
?PRG86: PRINTR "."
|
|
?CCL69: EQUAL? OBJ,LOVER \?CCL89
|
|
PUTP PAINTER,P?LDESC,7
|
|
PRINTI "The artist shrugs with a sad, wistful smile. ""What can I say? "
|
|
PRINTD LOVER
|
|
PRINTR " was a most unusual girl... utterly unworldly... almost fey. She grew up in a cottage not far from here, you know. Her drowning was a terrible tragedy... and yet... sometimes I'm not sure she WANTED to go on living."" She turns her face away to hide a tear."
|
|
?CCL89: EQUAL? OBJ,LOVER-PIC \?CCL93
|
|
PRINTI """Oh, you mean my portrait of dear "
|
|
PRINTD LOVER
|
|
PRINTR ". I don't believe I ever saw such skin as hers... or such hair."" She stops speaking and bites her lip."
|
|
?CCL93: EQUAL? OBJ,OIL-PAINTING \?CCL97
|
|
PRINTR """I don't admire the heroic style at all."""
|
|
?CCL97: EQUAL? OBJ,VIVIEN-STUFF \?CCL101
|
|
PRINTR """That's private property. It's no business of yours."""
|
|
?CCL101: CALL COMMON-ASK-ABOUT,PAINTER,OBJ >X
|
|
ZERO? X /?CCL105
|
|
EQUAL? X,M-FATAL /FALSE
|
|
RTRUE
|
|
?CCL105: CALL TELL-DUNNO,PAINTER,OBJ
|
|
RSTACK
|
|
?CCL29: EQUAL? PRSA,V?KISS \?CCL110
|
|
GETP PAINTER,P?LDESC
|
|
EQUAL? STACK,7 \?CCL110
|
|
PUTP PAINTER,P?LINE,0
|
|
PRINTR """You're sweet."""
|
|
?CCL110: CALL PERSON-F,PAINTER,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT VIVIEN-DIARY-F
|
|
EQUAL? PRSA,V?READ /?CCL3
|
|
EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \FALSE
|
|
?CCL3: CALL NOT-HOLDING?,PRSO
|
|
ZERO? STACK \TRUE
|
|
PRINTD VIVIEN-DIARY
|
|
PRINTI " falls open to a tear-stained page, and you read:
|
|
""O "
|
|
PRINTD LOVER
|
|
PRINTI ", sweet "
|
|
PRINTD LOVER
|
|
PRINTI "! Jack will pay dearly for your cruel death by losing his new sweetheart..."""
|
|
CRLF
|
|
ZERO? EVIDENCE-FOUND \?CND10
|
|
CALL CONGRATS
|
|
?CND10: SET 'EVIDENCE-FOUND,VIVIEN-DIARY
|
|
RETURN EVIDENCE-FOUND
|
|
|
|
|
|
.FUNCT COUSIN-F
|
|
EQUAL? HERE,DINING-ROOM \FALSE
|
|
CALL REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
CALL DO-INSTEAD-OF,BUST,COUSIN
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BOLITHO-WILL
|
|
PRINTC 32
|
|
PRINTD BUTLER
|
|
PRINTI " will see to the car and bring "
|
|
PRINTD LUGGAGE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BUTLER-D,ARG=0,GT,SAID=0,LL=0,L
|
|
FSET? BUTLER,TOUCHBIT \?CND1
|
|
CALL DESCRIBE-PERSON,BUTLER
|
|
RTRUE
|
|
?CND1: FCLEAR BUTLER,NDESCBIT
|
|
FSET BUTLER,TOUCHBIT
|
|
EQUAL? HERE,COURTYARD,FOYER \?CND3
|
|
LOC LORD
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \?CND3
|
|
GETP LORD,P?LINE
|
|
ZERO? STACK \?CND3
|
|
SET 'LL,TRUE-VALUE
|
|
?CND3: EQUAL? HERE,COURTYARD,FOYER \?CND8
|
|
LOC FRIEND
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \?CND8
|
|
SET 'SAID,TRUE-VALUE
|
|
PRINTI "
|
|
""We can talk more later, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI ","" says "
|
|
PRINTD FRIEND
|
|
PRINTI ", taking your arm, ""but let's go in now, so you can meet the other guests."
|
|
?CND8: ZERO? LL /?CCL16
|
|
ZERO? SAID /?CCL19
|
|
PRINTC 34
|
|
CRLF
|
|
PRINTI """Yes, d"
|
|
JUMP ?PRG24
|
|
?CCL19: SET 'SAID,TRUE-VALUE
|
|
PRINTI """D"
|
|
?PRG24: PRINTI "o come in."
|
|
CALL BOLITHO-WILL
|
|
PRINTI ","" says "
|
|
PRINTD LORD
|
|
PRINTI " as a"
|
|
JUMP ?CND14
|
|
?CCL16: ZERO? SAID /?PRG32
|
|
CALL BOLITHO-WILL
|
|
PRINTI "."""
|
|
CRLF
|
|
PRINTC 65
|
|
JUMP ?CND14
|
|
?PRG32: PRINTC 65
|
|
?CND14: CALL THIS-IS-IT,BUTLER
|
|
PRINTI "n elderly butler appears."
|
|
ZERO? SAID \?CND36
|
|
PRINTI " He bows slightly to you."
|
|
?CND36: GETP BUTLER,P?CHARACTER
|
|
GET GOAL-TABLES,STACK >GT
|
|
CALL META-LOC,LUGGAGE >L
|
|
EQUAL? L,YOUR-ROOM,YOUR-BATHROOM /?CND40
|
|
GETP L,P?LINE
|
|
ZERO? STACK /?CND40
|
|
IN? LUGGAGE,BUTLER \?CCL46
|
|
PRINTI " He has "
|
|
PRINTD LUGGAGE
|
|
PRINTC 46
|
|
JUMP ?CND44
|
|
?CCL46: LOC BUTLER
|
|
EQUAL? STACK,L \?CCL50
|
|
PUT GT,GOAL-FUNCTION,BUTLER-CARRIES
|
|
CALL ESTABLISH-GOAL,BUTLER,YOUR-ROOM
|
|
FCLEAR LUGGAGE,OPENBIT
|
|
MOVE LUGGAGE,BUTLER
|
|
PRINTI " He takes "
|
|
PRINTD LUGGAGE
|
|
PRINTC 46
|
|
JUMP ?CND44
|
|
?CCL50: PUT GT,GOAL-FUNCTION,BUTLER-FETCHES
|
|
CALL ESTABLISH-GOAL,BUTLER,L
|
|
?CND44: ZERO? SAID \?CND40
|
|
PRINTI " ""I'll carry "
|
|
PRINTD LUGGAGE
|
|
PRINTI " to "
|
|
PRINTD YOUR-ROOM
|
|
PRINTI "."""
|
|
?CND40: CRLF
|
|
RETURN 2
|
|
|
|
|
|
.FUNCT BUTLER-SORRY
|
|
PRINTI """Sorry, but I have duties to perform, "
|
|
CALL TITLE-NAME
|
|
ZERO? STACK /?PRG7
|
|
PRINTC 46
|
|
?PRG7: PRINTR """"
|
|
|
|
|
|
.FUNCT BUTLER-F,ARG=0,OBJ,X
|
|
EQUAL? ARG,M-WINNER \?CCL3
|
|
EQUAL? AWAITING-REPLY,BUTLER-1-R,BUTLER-2-R /?PRD8
|
|
EQUAL? AWAITING-REPLY,BUTLER-3-R,BUTLER-4-R \?CCL6
|
|
?PRD8: EQUAL? PRSA,V?NO,V?YES \?CCL6
|
|
PUTP BUTLER,P?LDESC,0
|
|
PUTP BUTLER,P?LINE,0
|
|
EQUAL? AWAITING-REPLY,BUTLER-1-R \?CCL13
|
|
SET 'AWAITING-REPLY,FALSE-VALUE
|
|
EQUAL? PRSA,V?YES \?PRG16
|
|
CALL ROB,LUGGAGE,CHEST-OF-DRAWERS
|
|
?PRG16: PRINTD BUTLER
|
|
PRINTR " responds politely, like the well-trained butler he is. But he seems to have something important on his mind."
|
|
?CCL13: EQUAL? AWAITING-REPLY,BUTLER-2-R \?CCL19
|
|
SET 'AWAITING-REPLY,FALSE-VALUE
|
|
EQUAL? PRSA,V?YES /?PRG25
|
|
PRINTR """Oh!... Please pardon me."""
|
|
?PRG25: PRINTI """Then no doubt you are here to investigate the spectral figure which has recently been seen about the castle."
|
|
ZERO? BUTLER-GHOST-STORY-TOLD \?PRG32
|
|
PRINTC 32
|
|
CALL BUTLER-GHOST-STORY
|
|
RTRUE
|
|
?PRG32: PRINTR """"
|
|
?CCL19: EQUAL? AWAITING-REPLY,BUTLER-3-R \?CCL35
|
|
SET 'AWAITING-REPLY,FALSE-VALUE
|
|
EQUAL? PRSA,V?YES \?PRG41
|
|
MOVE MACE,PLAYER
|
|
FSET MACE,SEENBIT
|
|
FCLEAR MACE,NDESCBIT
|
|
CALL THIS-IS-IT,MACE
|
|
PRINTI """Should you find "
|
|
PRINTD PLAYER
|
|
PRINTI " in any danger from our "
|
|
PRINTD GHOST-NEW
|
|
PRINTI ", perhaps you could use this.""
|
|
"
|
|
PRINTD BUTLER
|
|
PRINTI " gives you a small "
|
|
PRINTD MACE
|
|
PRINTI ".
|
|
|
|
"
|
|
RTRUE
|
|
?PRG41: PRINTR """As you wish,"" he sniffs."
|
|
?CCL35: SET 'AWAITING-REPLY,FALSE-VALUE
|
|
EQUAL? PRSA,V?YES /?PRG48
|
|
PRINTI """No doubt you soon shall. "
|
|
JUMP ?CND43
|
|
?PRG48: PRINTC 34
|
|
?CND43: EQUAL? VARIATION,LORD-C,FRIEND-C \?PRG55
|
|
PRINTI "To be precise, the ghost was just beyond the archway. It was bending over, groping for something on the "
|
|
PRINTD DRAWING-ROOM
|
|
PRINTI " carpet."
|
|
JUMP ?PRG62
|
|
?PRG55: PRINTI "If I may express an opinion, our "
|
|
PRINTD GHOST-NEW
|
|
PRINTI " must need reading glasses. The hall was ablaze with lights, yet it was bending down, groping blindly for something on the marble floor."
|
|
EQUAL? VARIATION,DOCTOR-C \?PRG62
|
|
PRINTI " And, I might add, it must also be left-handed. You see, "
|
|
CALL TITLE-NAME
|
|
PRINTI ", while bending over, the figure was using its left hand to grope with. I tried it myself, as did other servants, and we agree that such behavior indicates left-handedness."
|
|
?PRG62: PRINTI """
|
|
He continues, ""The ghost must have heard my footsteps, for"
|
|
PRINTI " it stood up, flashed me a startled glance, and fled into the darkness of the "
|
|
PRINTD DRAWING-ROOM
|
|
PRINTI ". I pursued, turning on the lights, but the thing had disappeared. I went into the foyer, but it was not there either, and the "
|
|
PRINTD FRONT-DOOR
|
|
PRINTR " was still locked -- from the inside."""
|
|
?CCL6: CALL GRAB-ATTENTION,BUTLER
|
|
ZERO? STACK \?CCL67
|
|
RETURN 2
|
|
?CCL67: EQUAL? PRSA,V?DESCRIBE \?CCL71
|
|
EQUAL? PRSO,GHOST-NEW \?CCL71
|
|
FSET GHOST-NEW,PERSONBIT
|
|
PRINTI """Frankly, I found it unconvincing. I don't see why a ghost would grope about on the floor to find something -- especially in a spot that wasn't even built when the "
|
|
PRINTD GHOST-OLD
|
|
PRINTI " was walled up in the tower. Besides, why should a ghost be scared away by a human being? It's usually the opposite, is it not?... No, "
|
|
CALL TITLE-NAME
|
|
PRINTI ", in my opinion that figure just didn't behave like a proper ghost. It had "
|
|
PRINT LONG-BLOND-HAIR
|
|
PRINTI " and was clad in a silvery-white "
|
|
EQUAL? VARIATION,DOCTOR-C \?PRG81
|
|
PRINTI "long-sleeved"
|
|
JUMP ?PRG83
|
|
?PRG81: PRINTI "sleeveless"
|
|
?PRG83: PRINTI " gown. I caught only a brief glimpse of its face, deadly white. As to height, it was too bent over for me to make out. If someone was masquerading as a ghost, of course, the imposter might well have been a man. However, as for the figure I saw -- "
|
|
EQUAL? VARIATION,DOCTOR-C \?PRG90
|
|
PRINTR "I cannot be sure of its sex."""
|
|
?PRG90: PRINTR "it seemed to me quite feminine."""
|
|
?CCL71: EQUAL? PRSA,V?WALK-TO,V?WALK /?PRD95
|
|
EQUAL? PRSA,V?THROUGH,V?STAND,V?SIT-AT /?PRD95
|
|
EQUAL? PRSA,V?SIT,V?OPEN,V?LEAVE /?PRD95
|
|
EQUAL? PRSA,V?EMPTY,V?DISEMBARK,V?CLOSE \?CCL93
|
|
?PRD95: CALL WILLING?,BUTLER
|
|
ZERO? STACK /?CCL93
|
|
EQUAL? PRSA,V?LEAVE /FALSE
|
|
EQUAL? PRSA,V?WALK-TO,V?THROUGH \?PRG106
|
|
EQUAL? PRSO,PASSAGE,DINNER /FALSE
|
|
?PRG106: PRINTI """As you wish, "
|
|
CALL TITLE-NAME
|
|
ZERO? STACK /?PRG112
|
|
PRINTC 46
|
|
?PRG112: PRINTI """
|
|
"
|
|
RFALSE
|
|
?CCL93: CALL COM-CHECK,BUTLER >X
|
|
ZERO? X /?CCL115
|
|
EQUAL? X,M-FATAL /FALSE
|
|
EQUAL? X,M-OTHER \TRUE
|
|
RETURN 2
|
|
?CCL115: CALL BUTLER-SORRY
|
|
RETURN 2
|
|
?CCL3: CALL ASKING-ABOUT?,BUTLER >OBJ
|
|
ZERO? OBJ /?CCL126
|
|
CALL GRAB-ATTENTION,BUTLER,OBJ
|
|
ZERO? STACK \?CCL129
|
|
RETURN 2
|
|
?CCL129: EQUAL? OBJ,ACCIDENT,LOVER \?CCL133
|
|
PRINTI """Perhaps you've heard how I was sent to the "
|
|
PRINTD BASEMENT
|
|
PRINTI " to find her. I found a tent pole and a shoe in front of the well, near one end of the "
|
|
PRINTD WINE-RACK
|
|
PRINTI ". The pole belonged to Lord Lionel. The shoe's spike heel was wrenched loose. I knew at once there had been an accident. Apparently Miss "
|
|
PRINTD LOVER
|
|
PRINTI ", in her cups, had stumbled over the pole and grabbed at the well for support. But as she was nowhere in sight, and her red necklace was lying beside the well, I assumed she had toppled down the well. When "
|
|
PRINTD LORD
|
|
PRINTI " arrived, he shone an electric torch down the well and"
|
|
PRINT FOUND-FABRIC
|
|
PRINTI " Evidently it was ripped off as she fell. At any rate, the police concluded that she had drowned. They lowered a diver into the well, but "
|
|
PRINTD CORPSE
|
|
PRINTR " was never found."""
|
|
?CCL133: EQUAL? OBJ,BUTLER \?CCL137
|
|
PRINTR """There's not much to tell. I've served the family all my life. Should you require anything, feel free to ask."""
|
|
?CCL137: EQUAL? OBJ,SEARCHER \?CCL141
|
|
ZERO? CONFESSED \?PRG146
|
|
GET TOLD-ABOUT-EVID,BUTLER-C
|
|
ZERO? STACK /?CCL141
|
|
?PRG146: PRINT IM-SHOCKED
|
|
RTRUE
|
|
?CCL141: EQUAL? OBJ,GHOST-NEW,DANGER,HAUNTING \?CCL149
|
|
PRINTC 34
|
|
CALL BUTLER-GHOST-STORY
|
|
RSTACK
|
|
?CCL149: EQUAL? OBJ,GHOST-OLD \?CCL153
|
|
PRINTI """They do say "
|
|
PRINTD CASTLE
|
|
PRINTR " is haunted."""
|
|
?CCL153: EQUAL? OBJ,LAMP \?CCL157
|
|
PRINTI """Yes, we keep"
|
|
CALL IN-CASE-OF-BLACKOUT
|
|
RTRUE
|
|
?CCL157: EQUAL? OBJ,YOUR-MIRROR,DRESSING-MIRROR \?CCL161
|
|
PRINTI """S"
|
|
CALL BUTLER-MIRROR-STORY
|
|
RSTACK
|
|
?CCL161: EQUAL? OBJ,PRIEST-DOOR /?PRG170
|
|
EQUAL? OBJ,PASSAGE \?CCL165
|
|
GET FOUND-PASSAGES,BUTLER-C
|
|
ZERO? STACK \?CCL165
|
|
?PRG170: PRINTI "The butler hesitates, looking thoughtful. ""I daresay that sort of thing would be better known to his lordship than to any of the staff, "
|
|
CALL TITLE-NAME
|
|
PRINTR "."""
|
|
?CCL165: CALL COMMON-ASK-ABOUT,BUTLER,OBJ >X
|
|
ZERO? X /?PRG177
|
|
EQUAL? X,M-FATAL /FALSE
|
|
RTRUE
|
|
?PRG177: PRINTI """I'm afraid it's not my place to say, "
|
|
CALL TITLE-NAME
|
|
ZERO? STACK /?PRG183
|
|
PRINTC 46
|
|
?PRG183: PRINTR """"
|
|
?CCL126: CALL PERSON-F,BUTLER,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT IN-CASE-OF-BLACKOUT
|
|
PRINTR " that in case of a power outage."""
|
|
|
|
|
|
.FUNCT BUTLER-GHOST-STORY
|
|
SET 'BUTLER-GHOST-STORY-TOLD,TRUE-VALUE
|
|
SET 'QCONTEXT,BUTLER
|
|
CALL THIS-IS-IT,BUTLER
|
|
PUTP BUTLER,P?LDESC,12
|
|
SET 'AWAITING-REPLY,BUTLER-4-R
|
|
SET 'CLOCK-WAIT,TRUE-VALUE
|
|
EQUAL? HERE,GREAT-HALL \?PRG3
|
|
PUT QUESTIONS,AWAITING-REPLY,STR?193
|
|
?PRG3: PRINTI "I myself glimpsed the ghost just last night. "
|
|
PRINTD LORD
|
|
PRINTI " and some guests were sitting up late, "
|
|
GET LDESC-STRINGS,13
|
|
PRINT STACK
|
|
PRINTI " in the "
|
|
PRINTD GREAT-HALL
|
|
PRINTI ". After they retired, I came upstairs to clean up and turn off the lights. As I entered the "
|
|
PRINTD GREAT-HALL
|
|
PRINTI " from the west, I saw the ghost on the far side of the room. "
|
|
GET QUESTIONS,AWAITING-REPLY
|
|
PRINT STACK
|
|
PRINTC 34
|
|
CRLF
|
|
RETURN 2
|
|
|
|
|
|
.FUNCT BUTLER-MIRROR-STORY
|
|
PRINTI "hould you wish to view "
|
|
PRINTD PLAYER
|
|
PRINTI " from all angles while dressing, you can do so by adjusting the "
|
|
PRINTD YOUR-MIRROR
|
|
PRINTI " and the hinged "
|
|
PRINTD DRESSING-MIRROR
|
|
PRINTI " of the "
|
|
PRINTD DRESSING-TABLE
|
|
PRINTR "."""
|
|
|
|
|
|
.FUNCT GHOST-NEW-D,ARG=0
|
|
FSET? GHOST-NEW,TOUCHBIT \?CCL3
|
|
CALL DESCRIBE-PERSON,GHOST-NEW
|
|
RTRUE
|
|
?CCL3: FCLEAR GHOST-NEW,NDESCBIT
|
|
FSET GHOST-NEW,PERSONBIT
|
|
FSET GHOST-NEW,TOUCHBIT
|
|
FSET GHOST-NEW,SEENBIT
|
|
FSET COSTUME,SEENBIT
|
|
CRLF
|
|
FSET? GHOST-NEW,MUNGBIT \?PRG9
|
|
PRINTI "Lying "
|
|
CALL GROUND-DESC
|
|
PRINT STACK
|
|
PRINTI " i"
|
|
JUMP ?PRG11
|
|
?PRG9: PRINTI "Out of the dark come"
|
|
?PRG11: PRINTI "s a figure with "
|
|
PRINT LONG-BLOND-HAIR
|
|
PRINTR ", dressed all in silvery white and glowing with an almost unearthly light."
|
|
|
|
|
|
.FUNCT GHOST-NEW-F,ARG=0,OBJ
|
|
EQUAL? ARG,M-WINNER \?CCL3
|
|
CALL GRAB-ATTENTION,GHOST-NEW
|
|
ZERO? STACK \?PRG9
|
|
RETURN 2
|
|
?PRG9: PRINT GHOST-CACKLES
|
|
RETURN 2
|
|
?CCL3: CALL ASKING-ABOUT?,GHOST-NEW >OBJ
|
|
ZERO? OBJ /?CCL14
|
|
CALL GRAB-ATTENTION,GHOST-NEW,OBJ
|
|
ZERO? STACK /?PRG23
|
|
EQUAL? VARIATION,LORD-C /?CCL19
|
|
PRINT GHOST-CACKLES
|
|
RETURN 2
|
|
?CCL19: CALL LOVER-SPEECH
|
|
ZERO? STACK \?PRG23
|
|
CALL GHOST-FLEES
|
|
?PRG23: RETURN 2
|
|
?CCL14: EQUAL? PRSA,V?EXAMINE \?CCL26
|
|
CALL HE-SHE-IT,GHOST-NEW,TRUE-VALUE
|
|
PRINTI " is wearing heavy white makeup with black eyes and lips. "
|
|
CALL DESCRIBE-GOWN
|
|
CRLF
|
|
CALL COMMON-OTHER,GHOST-NEW
|
|
RSTACK
|
|
?CCL26: EQUAL? PRSA,V?UNDRESS,V?SEARCH,V?BRUSH /?CTR29
|
|
EQUAL? PRSA,V?SEARCH-FOR \?CCL30
|
|
EQUAL? PRSI,COSTUME \?CCL30
|
|
?CTR29: FSET? GHOST-NEW,MUNGBIT /?CCL37
|
|
PRINT GHOST-CACKLES
|
|
RTRUE
|
|
?CCL37: IN? COSTUME,GHOST-NEW \FALSE
|
|
CALL UNDRESS-GHOST
|
|
RTRUE
|
|
?CCL30: CALL GHOST-NEW-VERBS >OBJ
|
|
ZERO? OBJ /?CCL44
|
|
CALL GRAB-ATTENTION,GHOST-NEW
|
|
ZERO? STACK /?PRG55
|
|
EQUAL? VARIATION,LORD-C /?CCL49
|
|
PRINT GHOST-CACKLES
|
|
RETURN 2
|
|
?CCL49: EQUAL? OBJ,2 /?CCL52
|
|
CALL LOVER-SPEECH
|
|
ZERO? STACK \?PRG55
|
|
?CCL52: CALL GHOST-FLEES
|
|
?PRG55: RETURN 2
|
|
?CCL44: CALL PERSON-F,GHOST-NEW,ARG
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GHOST-NEW-VERBS
|
|
EQUAL? PRSA,V?SGIVE,V?GIVE,V?BOW /TRUE
|
|
EQUAL? PRSA,V?RUB,V?LISTEN,V?KISS /TRUE
|
|
EQUAL? PRSA,V?SMILE /TRUE
|
|
CALL SPEAKING-VERB?,GHOST-NEW
|
|
ZERO? STACK \TRUE
|
|
EQUAL? PRSA,V?YELL,V?STOP,V?SLAP /?CTR10
|
|
EQUAL? PRSA,V?PUSH,V?MUNG,V?ARREST \?CCL11
|
|
?CTR10: RETURN 2
|
|
?CCL11: EQUAL? PRSA,V?TAKE \FALSE
|
|
FSET? GHOST-NEW,MUNGBIT /FALSE
|
|
RETURN 2
|
|
|
|
|
|
.FUNCT UNDRESS-GHOST,L,ADJ
|
|
LOC GHOST-NEW >L
|
|
MOVE COSTUME,WINNER
|
|
FCLEAR COSTUME,NDESCBIT
|
|
FCLEAR COSTUME,WORNBIT
|
|
FSET COSTUME,TOUCHBIT
|
|
FSET COSTUME,TAKEBIT
|
|
MOVE GHOST-NEW,LOCAL-GLOBALS
|
|
MOVE VILLAIN-PER,L
|
|
GETP VILLAIN-PER,P?STATION >ADJ
|
|
ZERO? ADJ /?CND1
|
|
ZERO? OTHER-POSS-POS /?CND1
|
|
GETPT HEAD,P?ADJECTIVE
|
|
PUTB STACK,OTHER-POSS-POS,ADJ
|
|
GETPT HANDS,P?ADJECTIVE
|
|
PUTB STACK,OTHER-POSS-POS,ADJ
|
|
GETPT EYE,P?ADJECTIVE
|
|
PUTB STACK,OTHER-POSS-POS,ADJ
|
|
GETPT OTHER-OUTFIT,P?ADJECTIVE
|
|
PUTB STACK,OTHER-POSS-POS,ADJ
|
|
?CND1: CALL THIS-IS-IT,VILLAIN-PER
|
|
FSET VILLAIN-PER,MUNGBIT
|
|
PUTP VILLAIN-PER,P?LDESC,19
|
|
SET 'VILLAIN-KNOWN?,TRUE-VALUE
|
|
PRINTI "When you remove the "
|
|
PRINTD COSTUME
|
|
PRINTI ", you discover "
|
|
PRINTD VILLAIN-PER
|
|
PRINTI " underneath!"
|
|
CRLF
|
|
CALL CONGRATS,COSTUME
|
|
RSTACK
|
|
|
|
|
|
.FUNCT DESCRIBE-GOWN
|
|
FSET GHOST-NEW,PERSONBIT
|
|
PRINTI "The gown "
|
|
EQUAL? LIT,HERE /?PRG7
|
|
PRINTI "seems to fluoresce in the dark. It "
|
|
?PRG7: PRINTI "has a "
|
|
EQUAL? VARIATION,DOCTOR-C \?PRG14
|
|
PRINTI "high"
|
|
JUMP ?PRG16
|
|
?PRG14: PRINTI "low"
|
|
?PRG16: PRINTI " neckline and "
|
|
EQUAL? VARIATION,DOCTOR-C \?PRG23
|
|
PRINTI "long"
|
|
JUMP ?PRG25
|
|
?PRG23: PRINTI "no"
|
|
?PRG25: PRINTI " sleeves."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT COSTUME-F
|
|
EQUAL? PRSA,V?TELL-ABOUT \?CCL3
|
|
FSET? PRSO,PERSONBIT \FALSE
|
|
GETP PRSO,P?CHARACTER
|
|
EQUAL? VARIATION,STACK \?CCL9
|
|
SET 'PRSA,V?ASK-ABOUT
|
|
RFALSE
|
|
?CCL9: CALL TELL-ABOUT-OBJECT,PRSO,COSTUME,FOUND-COSTUME
|
|
RSTACK
|
|
?CCL3: CALL REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
CALL NOUN-USED?,W?WIG
|
|
ZERO? STACK /?CCL13
|
|
EQUAL? VARIATION,LORD-C \?CCL13
|
|
SET 'CLOCK-WAIT,TRUE-VALUE
|
|
PRINTR "(There is no wig!)"
|
|
?CCL13: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL19
|
|
CALL NOUN-USED?,W?WIG
|
|
ZERO? STACK \?CND20
|
|
CALL DESCRIBE-GOWN
|
|
LOC COSTUME
|
|
EQUAL? STACK,GHOST-NEW,VILLAIN-PER \?PRG27
|
|
PRINTI " It's on"
|
|
JUMP ?PRG29
|
|
?PRG27: PRINTI " When you hold it up, you can see it would fit"
|
|
?PRG29: PRINTI " a "
|
|
EQUAL? VARIATION,LORD-C,FRIEND-C,DOCTOR-C \?PRG36
|
|
PRINTI "person of average height."
|
|
JUMP ?CND31
|
|
?PRG36: PRINTI "tall person."
|
|
?CND31: CRLF
|
|
?CND20: CALL NOUN-USED?,W?GOWN
|
|
ZERO? STACK \TRUE
|
|
EQUAL? VARIATION,LORD-C /TRUE
|
|
PRINTI "It's obvious that the wig was designed to resemble "
|
|
PRINTD LOVER
|
|
PRINTI "'s long, flowing hair."
|
|
CRLF
|
|
LOC COSTUME
|
|
EQUAL? STACK,GHOST-NEW,VILLAIN-PER /TRUE
|
|
PRINTI "Inside, you notice several individual "
|
|
EQUAL? VARIATION,FRIEND-C \?CCL50
|
|
PRINTI "red"
|
|
JUMP ?PRG59
|
|
?CCL50: EQUAL? VARIATION,DOCTOR-C \?PRG57
|
|
PRINTI "grayish"
|
|
JUMP ?PRG59
|
|
?PRG57: PRINTI "tawny"
|
|
?PRG59: PRINTI " hairs, the same color as "
|
|
GET CHARACTER-TABLE,VARIATION
|
|
PRINTD STACK
|
|
PRINTI "'s hair."
|
|
CRLF
|
|
CALL CONGRATS,COSTUME
|
|
RTRUE
|
|
?CCL19: EQUAL? PRSA,V?TAKE-OFF,V?TAKE,V?LOOK-UNDER \?CCL67
|
|
IN? COSTUME,GHOST-NEW \FALSE
|
|
CALL PERFORM,V?UNDRESS,GHOST-NEW
|
|
RTRUE
|
|
?CCL67: EQUAL? PRSA,V?WEAR /?CCL72
|
|
EQUAL? PRSA,V?PUT \FALSE
|
|
ZERO? PRSI /FALSE
|
|
FSET? PRSI,PERSONBIT \FALSE
|
|
?CCL72: CALL WEAR-SCARE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT WEAR-SCARE
|
|
PRINTI "You start to put"
|
|
CALL PRINTT,PRSO
|
|
PRINTI " on"
|
|
ZERO? PRSI /?PRG7
|
|
PRINTC 32
|
|
PRINTD PRSI
|
|
?PRG7: PRINTI ", but"
|
|
EQUAL? PRSO,NECKLACE-OF-D \?PRG14
|
|
PRINT CLASP-MUNGED
|
|
PRINTR "."
|
|
?PRG14: PRINTR " then decide it might scare the other guests."
|
|
|
|
|
|
.FUNCT WHY-ME
|
|
BTST PRESENT-TIME,1 \?PRG6
|
|
PRINTI """You could do that "
|
|
PRINTD PLAYER
|
|
PRINTR ", you know."""
|
|
?PRG6: PRINTI """I think you can do that better "
|
|
PRINTD PLAYER
|
|
PRINTR "."""
|
|
|
|
|
|
.FUNCT DESCRIBE-PERSON,PER,STR=0
|
|
GETP PER,P?LDESC >STR
|
|
EQUAL? PER,BUTLER,LOVER /?CND1
|
|
CALL ALL-TOGETHER-NOW?
|
|
ZERO? STACK /?CND1
|
|
EQUAL? PER,LORD \TRUE
|
|
SET 'P-HIM-OBJECT,FALSE-VALUE
|
|
SET 'P-HER-OBJECT,FALSE-VALUE
|
|
PRINTD PER
|
|
PRINTI " and all his guests are here."
|
|
ZERO? CONFESSED \?CND9
|
|
CALL QUEUED?,I-LIONEL-SPEAKS
|
|
ZERO? STACK \?CND9
|
|
PRINTR " They smile pleasantly but, with typical British reserve, seem willing to leave you to your own devices."
|
|
?CND9: CRLF
|
|
RTRUE
|
|
?CND1: ZERO? STR /?PRG18
|
|
GETP PER,P?CHARACTER
|
|
PUT TOUCHED-LDESCS,STACK,STR
|
|
RFALSE
|
|
?PRG18: CALL START-SENTENCE,PER
|
|
PRINTI " is "
|
|
GETPT PER,P?WEST >STR
|
|
ZERO? STR /?PRG26
|
|
GET STR,NEXITSTR >STR
|
|
ZERO? STR /?PRG26
|
|
PRINT STR
|
|
?PRG26: PRINTC 46
|
|
EQUAL? STR,6 \?CCL30
|
|
PRINTC 32
|
|
RTRUE
|
|
?CCL30: CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT ALL-TOGETHER-NOW?
|
|
LOC LORD
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \FALSE
|
|
LOC FRIEND
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \FALSE
|
|
LOC DEB
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \FALSE
|
|
LOC OFFICER
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \FALSE
|
|
LOC DOCTOR
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \FALSE
|
|
LOC DEALER
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \FALSE
|
|
LOC PAINTER
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT TELL-ABOUT-OBJECT,PER,OBJ,GL,C
|
|
GET GL,PLAYER-C
|
|
ZERO? STACK /FALSE
|
|
GETP PER,P?CHARACTER >C
|
|
GET GL,C
|
|
ZERO? STACK \?PRG9
|
|
PUT GL,C,TRUE-VALUE
|
|
EQUAL? C,VARIATION /?CND7
|
|
PUTP PER,P?LINE,0
|
|
?CND7: CALL GOOD-SHOW,PER,OBJ
|
|
RSTACK
|
|
?PRG9: PRINTI """I know that you found a "
|
|
PRINTD OBJ
|
|
PRINTR "."""
|
|
|
|
|
|
.FUNCT PERSON-F,PER,ARG,OBJ,X,L,C,N
|
|
LOC PER >L
|
|
GETP PER,P?CHARACTER >C
|
|
EQUAL? PRSA,V?SHAKE,V?ALARM \?CCL3
|
|
EQUAL? PRSO,PER \FALSE
|
|
CALL QUEUED?,I-COME-TO
|
|
ZERO? STACK /?CCL9
|
|
EQUAL? PER,VILLAIN-PER,GHOST-NEW \?CCL9
|
|
CALL QUEUE,I-COME-TO,1
|
|
RTRUE
|
|
?CCL9: CALL UNSNOOZE,PER,TRUE-VALUE
|
|
ZERO? STACK /?PRG16
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
PRINTR " gasps to see you so close!"
|
|
?PRG16: CALL HE-SHE-IT,PER,TRUE-VALUE,STR?1
|
|
PRINTI " still "
|
|
GETP PER,P?LDESC >X
|
|
ZERO? X /?CCL20
|
|
GET LDESC-STRINGS,X
|
|
PRINT STACK
|
|
JUMP ?PRG26
|
|
?CCL20: GETPT PER,P?WEST >X
|
|
ZERO? X /?PRG26
|
|
GET X,NEXITSTR
|
|
PRINT STACK
|
|
?PRG26: PRINTR "."
|
|
?CCL3: EQUAL? PRSA,V?FORGIVE \?CCL29
|
|
CALL GRAB-ATTENTION,PER
|
|
ZERO? STACK \?PRG34
|
|
RETURN 2
|
|
?PRG34: PRINTR """Thank you so much. I didn't realize I'd offended you."""
|
|
?CCL29: EQUAL? PRSA,V?GIVE \?CCL37
|
|
EQUAL? PRSI,PER \FALSE
|
|
CALL HELD?,PRSO
|
|
ZERO? STACK /FALSE
|
|
CALL GRAB-ATTENTION,PER
|
|
ZERO? STACK \FALSE
|
|
RETURN 2
|
|
?CCL37: EQUAL? PRSA,V?LAMP-OFF \?CCL48
|
|
GETP PER,P?LINE
|
|
ZERO? STACK /?CCL51
|
|
PRINTR "Seems you've already done that."
|
|
?CCL51: CALL WONT-HELP
|
|
RSTACK
|
|
?CCL48: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH,V?MUNG \?CCL55
|
|
EQUAL? PER,PRSO \FALSE
|
|
FSET? PER,PERSONBIT \FALSE
|
|
FSET? PER,MUNGBIT /FALSE
|
|
GETP PER,P?LINE
|
|
ADD 1,STACK
|
|
PUTP PER,P?LINE,STACK
|
|
GETP PER,P?LDESC
|
|
EQUAL? STACK,4 /?PRG64
|
|
PUTP PER,P?LDESC,20
|
|
?PRG64: CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
PRINTR " pushes you away and mutters, ""I don't think that's called for."""
|
|
?CCL55: EQUAL? PRSA,V?SHOW \?CCL67
|
|
EQUAL? PER,PRSO \FALSE
|
|
CALL GRAB-ATTENTION,PER
|
|
ZERO? STACK \?CCL73
|
|
RETURN 2
|
|
?CCL73: CALL PERFORM,V?TELL-ABOUT,PRSO,PRSI
|
|
RTRUE
|
|
?CCL67: EQUAL? PRSA,V?SMILE \?CCL78
|
|
EQUAL? PER,PRSO \FALSE
|
|
CALL GRAB-ATTENTION,PER
|
|
ZERO? STACK \?PRG87
|
|
RETURN 2
|
|
?PRG87: CALL HE-SHE-IT,PRSO,TRUE-VALUE,STR?218
|
|
PRINTR " back at you."
|
|
?CCL78: EQUAL? PRSA,V?TELL-ABOUT \?CCL90
|
|
EQUAL? PER,PRSO \FALSE
|
|
CALL GRAB-ATTENTION,PER
|
|
ZERO? STACK \?CND94
|
|
RETURN 2
|
|
?CND94: PUTP PER,P?LDESC,12
|
|
FSET? PRSI,RMUNGBIT \?CCL100
|
|
FSET? PRSI,SEENBIT \?CCL100
|
|
FSET? PRSI,PERSONBIT /?CCL100
|
|
GETP PER,P?CHARACTER
|
|
PUT TOLD-ABOUT-EVID,STACK,TRUE-VALUE
|
|
PRINT THATS-INTERESTING
|
|
RTRUE
|
|
?CCL100: EQUAL? PRSI,CLUE-1 \?CCL107
|
|
PRINT THATS-INTERESTING
|
|
RTRUE
|
|
?CCL107: EQUAL? PRSI,CONFESSED \?CCL112
|
|
EQUAL? PER,CONFESSED /?PRG126
|
|
PRINT IM-SHOCKED
|
|
RTRUE
|
|
?CCL112: EQUAL? PRSI,GHOST-NEW \?CCL118
|
|
FSET? GHOST-NEW,TOUCHBIT \?PRG126
|
|
EQUAL? PER,GHOST-NEW /?PRG126
|
|
GETP PER,P?CHARACTER
|
|
PUT TOLD-ABOUT-GHOST,STACK,TRUE-VALUE
|
|
PRINTR """You saw the ghost? Tell me, how can I help?"""
|
|
?CCL118: CALL SECRET-PASSAGE-OR-DOOR?,PRSI
|
|
ZERO? STACK /?PRG126
|
|
CALL TELL-ABOUT-OBJECT,PRSO,PASSAGE,FOUND-PASSAGES
|
|
RTRUE
|
|
?PRG126: PRINTR """I don't know what you mean."""
|
|
?CCL90: EQUAL? PRSA,V?THROW-AT \?CCL129
|
|
EQUAL? PER,PRSI \FALSE
|
|
FSET? PER,PERSONBIT \FALSE
|
|
FSET? PER,MUNGBIT /FALSE
|
|
MOVE PRSO,PRSI
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
PRINTI " catches"
|
|
CALL PRINTT,PRSO
|
|
PRINTI " with"
|
|
CALL HIM-HER-IT,PER,FALSE-VALUE,TRUE-VALUE
|
|
PRINTC 32
|
|
EQUAL? PER,DEB,DOCTOR \?PRG143
|
|
PRINTI "lef"
|
|
JUMP ?PRG145
|
|
?PRG143: PRINTI "righ"
|
|
?PRG145: PRINTR "t hand."
|
|
?CCL129: CALL COMMON-OTHER,PER
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SECRET-PASSAGE-OR-DOOR?,OBJ
|
|
EQUAL? OBJ,PASSAGE,SECRET-JACK-DOOR,SECRET-TAMARA-DOOR /TRUE
|
|
EQUAL? OBJ,SECRET-LIBRARY-DOOR,SECRET-DRAWING-DOOR,SECRET-SITTING-DOOR /TRUE
|
|
EQUAL? OBJ,SECRET-DINING-DOOR,SECRET-YOUR-DOOR,SECRET-IRIS-DOOR /TRUE
|
|
EQUAL? OBJ,SECRET-WENDISH-DOOR,SECRET-VIVIEN-DOOR,SECRET-IAN-DOOR /TRUE
|
|
EQUAL? OBJ,SECRET-HYDE-DOOR /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT CARRY-CHECK,PER
|
|
FIRST? PER \FALSE
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE,STR?1
|
|
PRINTI " holding"
|
|
CALL PRINT-CONTENTS,PER
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT WINNER-DESCRIBE,OBJ,RM
|
|
PRINTI """You can see "
|
|
PRINTD OBJ
|
|
EQUAL? HERE,RM \?PRG8
|
|
PRINTI " right over there"
|
|
JUMP ?PRG10
|
|
?PRG8: PRINTI " in the "
|
|
PRINTD RM
|
|
?PRG10: PRINTR "."""
|
|
|
|
|
|
.FUNCT TRANSIT-TEST,PER
|
|
EQUAL? PRSA,V?WALK-TO,V?WALK,V?THROUGH /?CCL3
|
|
EQUAL? PRSA,V?TAKE-TO,V?LEAVE,V?DISEMBARK \FALSE
|
|
?CCL3: CALL WILLING?,PER
|
|
RSTACK
|
|
|
|
|
|
.FUNCT COM-CHECK,PER,N,TAG
|
|
GETP PER,P?LINE >N
|
|
GETP PER,P?CHARACTER
|
|
GET TOLD-ABOUT-GHOST,STACK >TAG
|
|
EQUAL? PRSA,V?$CALL \?CCL3
|
|
CALL DONT-UNDERSTAND
|
|
RETURN M-OTHER
|
|
?CCL3: CALL TRANSIT-TEST,PER
|
|
ZERO? STACK /?CCL5
|
|
RETURN 2
|
|
?CCL5: EQUAL? PRSA,V?SORRY,V?HELLO,V?ALARM \?CCL9
|
|
EQUAL? PRSO,ROOMS /?CTR11
|
|
EQUAL? PRSO,PER \FALSE
|
|
?CTR11: SET 'WINNER,PLAYER
|
|
CALL PERFORM,PRSA,PER
|
|
RTRUE
|
|
?CCL9: EQUAL? PRSA,V?YES /?PRG19
|
|
EQUAL? PRSA,V?THANKS,V?NO,V?ARREST \?CCL16
|
|
?PRG19: RETURN 2
|
|
?CCL16: EQUAL? PRSA,V?DESCRIBE \?CCL22
|
|
EQUAL? PRSO,GHOST-NEW \?CCL25
|
|
PRINTI """I'm sorry, but I didn't see"
|
|
CALL HIM-HER-IT,GHOST-NEW
|
|
PRINTR "."""
|
|
?CCL25: EQUAL? PRSO,MAID \?CCL29
|
|
PRINT NEVER-NOTICED-HER
|
|
RTRUE
|
|
?CCL29: EQUAL? PRSO,BUST,COUSIN \?CCL33
|
|
CALL WINNER-DESCRIBE,BUST,DINING-ROOM
|
|
RTRUE
|
|
?CCL33: EQUAL? PRSO,LOVER \?PRG36
|
|
CALL WINNER-DESCRIBE,LOVER-PIC,DRAWING-ROOM
|
|
RTRUE
|
|
?PRG36: PRINTI """You could "
|
|
CALL META-LOC,PRSO
|
|
EQUAL? STACK,HERE /?PRG42
|
|
PRINTI "go "
|
|
?PRG42: PRINTI "have a look for "
|
|
PRINTD PLAYER
|
|
PRINTR ", you know."""
|
|
?CCL22: EQUAL? PRSA,V?WALK-TO,V?FOLLOW \?CCL45
|
|
EQUAL? PER,BUTLER /FALSE
|
|
EQUAL? PRSA,V?WALK-TO \?PRG57
|
|
ZERO? TAG \?PRG55
|
|
EQUAL? PRSO,TAMARA-BED,BED,SLEEP-GLOBAL \?PRG57
|
|
?PRG55: RETURN 2
|
|
?PRG57: PRINTR """I will go where I please, thank you very much."""
|
|
?CCL45: EQUAL? PRSA,V?INVENTORY \?CCL60
|
|
CALL CARRY-CHECK,PER
|
|
ZERO? STACK \TRUE
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE,STR?1
|
|
PRINTR "n't holding anything."
|
|
?CCL60: EQUAL? PRSA,V?LISTEN \?CCL66
|
|
EQUAL? PRSO,PLAYER-NAME,PLAYER /?PRG72
|
|
IN? PRSO,GLOBAL-OBJECTS /FALSE
|
|
?PRG72: PRINTI """I'm trying to, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTR "!"""
|
|
?CCL66: EQUAL? PRSA,V?RUB \?CND1
|
|
CALL FACE-RED
|
|
RTRUE
|
|
?CND1: RANDOM 3
|
|
EQUAL? STACK,1 \?CND75
|
|
CALL WILLING?,PER,TRUE-VALUE
|
|
ZERO? STACK /?CND75
|
|
EQUAL? PER,DEB \?CCL81
|
|
SET 'FAWNING,TRUE-VALUE
|
|
PRINTI """My dear "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI ", how could I refuse someone as handsome as you?"" Iris murmurs, batting her eyelashes. "
|
|
JUMP ?CND75
|
|
?CCL81: EQUAL? PER,OFFICER \?CND75
|
|
SET 'FAWNING,TRUE-VALUE
|
|
PRINTI """Delighted to help you if I can, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
PRINTI " luv! One feels those great luminous eyes of yours can see right through a chap!"" says the handsome young guardsman. "
|
|
?CND75: EQUAL? PRSA,V?DANCE \?CCL89
|
|
EQUAL? PRSO,PLAYER \?CCL89
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,PRSA,PER
|
|
RTRUE
|
|
?CCL89: EQUAL? PRSA,V?DANCE /?PRG101
|
|
EQUAL? PRSA,V?WALK \?CCL93
|
|
EQUAL? PRSO,P?OUT /?PRG101
|
|
ZERO? TAG /?CCL93
|
|
?PRG101: RETURN 2
|
|
?CCL93: EQUAL? PRSA,V?SIGN \?CCL104
|
|
PRINTI "You notice that"
|
|
CALL HE-SHE-IT,PER
|
|
PRINTI " is "
|
|
EQUAL? PER,DEB,DOCTOR \?PRG112
|
|
PRINTI "lef"
|
|
JUMP ?PRG114
|
|
?PRG112: PRINTI "righ"
|
|
?PRG114: PRINTR "t-handed."
|
|
?CCL104: EQUAL? PRSA,V?KISS \?CCL117
|
|
CALL UNSNOOZE,PER
|
|
PRINTR """I really don't think this is the proper time or place."""
|
|
?CCL117: EQUAL? PRSA,V?TAKE \?CCL121
|
|
IN? PRSO,PLAYER \FALSE
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?GIVE,PRSO,PER
|
|
RTRUE
|
|
?CCL121: EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?EXAMINE \?CCL126
|
|
IN? PRSO,PLAYER \FALSE
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?SHOW,PER,PRSO
|
|
RTRUE
|
|
?CCL126: EQUAL? PRSA,V?FORGIVE \?CCL131
|
|
SET 'WINNER,PRSO
|
|
CALL PERFORM,V?SORRY,PER
|
|
RTRUE
|
|
?CCL131: EQUAL? PRSA,V?THROW-AT,V?GIVE \?CCL133
|
|
FSET? PRSI,PERSONBIT \?CCL133
|
|
SET 'WINNER,PRSI
|
|
CALL PERFORM,V?ASK-FOR,PER,PRSO
|
|
RTRUE
|
|
?CCL133: EQUAL? PRSA,V?SGIVE \?CCL137
|
|
FSET? PRSO,PERSONBIT \?CCL137
|
|
SET 'WINNER,PRSO
|
|
CALL PERFORM,V?ASK-FOR,PER,PRSI
|
|
RTRUE
|
|
?CCL137: EQUAL? PRSA,V?HELP \?CCL141
|
|
EQUAL? PRSO,FALSE-VALUE,PLAYER,PLAYER-NAME \?PRG145
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?ASK,PER
|
|
RTRUE
|
|
?PRG145: RETURN 2
|
|
?CCL141: EQUAL? PRSA,V?SSHOW,V?SHOW,V?FIND \?CCL148
|
|
EQUAL? PRSA,V?SHOW \?CND149
|
|
SET 'PRSA,V?SSHOW
|
|
SET 'N,PRSI
|
|
SET 'PRSI,PRSO
|
|
SET 'PRSO,N
|
|
?CND149: IN? PRSO,ROOMS \?CCL153
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?WALK-TO,PRSO
|
|
RTRUE
|
|
?CCL153: IN? PRSO,PER \?CCL155
|
|
CALL ITAKE
|
|
EQUAL? STACK,TRUE-VALUE \TRUE
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
PRINTI " fumbles in"
|
|
CALL HIM-HER-IT,PER,FALSE-VALUE,TRUE-VALUE
|
|
PRINTI " pocket and produces"
|
|
CALL HIM-HER-IT,PRSO
|
|
PRINTR "."
|
|
?CCL155: EQUAL? PRSA,V?FIND \FALSE
|
|
RETURN 2
|
|
?CCL148: EQUAL? PRSA,V?PLAY \?CCL165
|
|
EQUAL? PRSO,PIANO \FALSE
|
|
PRINTI """I'm not very good at this sort of thing, but...""
|
|
"
|
|
RETURN 2
|
|
?CCL165: EQUAL? PRSA,V?TELL \?CCL174
|
|
EQUAL? PRSO,PLAYER-NAME,PLAYER \FALSE
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?ASK,PER
|
|
RTRUE
|
|
?CCL174: EQUAL? PRSA,V?TELL-ABOUT \?CCL179
|
|
FSET? PRSO,PERSONBIT \FALSE
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?ASK-ABOUT,PER,PRSI
|
|
RTRUE
|
|
?CCL179: EQUAL? PRSA,V?WAIT-FOR,V?STOP \?CCL184
|
|
EQUAL? PRSO,ROOMS,PLAYER-NAME /?CCL187
|
|
EQUAL? PRSO,PLAYER,GLOBAL-HERE,HERE \FALSE
|
|
?CCL187: EQUAL? PER,FOLLOWER \?CCL192
|
|
SET 'FOLLOWER,0
|
|
PRINTI """As you wish, "
|
|
CALL PRINT-NAME,FIRST-NAME
|
|
ZERO? STACK /?PRG199
|
|
PRINTC 46
|
|
?PRG199: PRINTR """"
|
|
?CCL192: SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?$CALL,PER
|
|
RTRUE
|
|
?CCL184: EQUAL? PRSA,V?TALK-ABOUT \FALSE
|
|
SET 'WINNER,PLAYER
|
|
CALL PERFORM,V?ASK-ABOUT,PER,PRSO
|
|
RTRUE
|
|
|
|
|
|
.FUNCT EVIDENCE?,OBJ,PER=0
|
|
ZERO? PER /?CCL3
|
|
GETP PER,P?CHARACTER
|
|
EQUAL? VARIATION,STACK \FALSE
|
|
?CCL3: EQUAL? OBJ,LETTER-MAID,PASSAGE,JEWEL /TRUE
|
|
EQUAL? OBJ,LENS,LENS-1,LENS-2 /TRUE
|
|
EQUAL? OBJ,COSTUME,LENS-BOX,EARRING /TRUE
|
|
EQUAL? OBJ,BLOWGUN /TRUE
|
|
ZERO? OBJ /FALSE
|
|
FSET? OBJ,PERSONBIT /FALSE
|
|
FSET? OBJ,RMUNGBIT /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT SETUP-SHOT,PER
|
|
SET 'VILLAIN-KNOWN?,TRUE-VALUE
|
|
MOVE BLOWGUN,PER
|
|
FCLEAR BLOWGUN,NDESCBIT
|
|
FCLEAR BLOWGUN,TAKEBIT
|
|
PUTP PER,P?LINE,2
|
|
PUTP PER,P?LDESC,8
|
|
SET 'AIMED-HERE,HERE
|
|
SET 'SHOOTER,PER
|
|
CALL QUEUE,I-SHOT,CLOCKER-RUNNING
|
|
RSTACK
|
|
|
|
|
|
.FUNCT COMMON-ASK-ABOUT,PER,OBJ
|
|
CALL EVIDENCE?,OBJ,PER
|
|
ZERO? STACK /?CCL3
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
PRINTI " flinches a little before answering.
|
|
"
|
|
?CND1: FSET? OBJ,RMUNGBIT \?CND23
|
|
EQUAL? PRSA,V?SHOW,V?CONFRONT \?CND23
|
|
FSET? OBJ,PERSONBIT /?CND23
|
|
GETP PER,P?CHARACTER
|
|
PUT TOLD-ABOUT-EVID,STACK,TRUE-VALUE
|
|
?CND23: EQUAL? OBJ,SEARCHER \?CCL30
|
|
GETP OBJ,P?LDESC
|
|
EQUAL? STACK,21 \?CCL30
|
|
EQUAL? PER,SEARCHER \?PRG38
|
|
PRINTR """You mean, why am I searching? I'm sure you can guess."""
|
|
?CCL3: CALL EVIDENCE?,OBJ
|
|
ZERO? STACK /?CND1
|
|
ZERO? CONFESSED /?PRG12
|
|
PRINT IM-SHOCKED
|
|
RTRUE
|
|
?PRG12: CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
PRINTI " says, """
|
|
RANDOM 2
|
|
EQUAL? STACK,1 \?PRG19
|
|
PRINTI "Good Lord"
|
|
JUMP ?PRG21
|
|
?PRG19: PRINTI "I say"
|
|
?PRG21: PRINTR "! I think you're onto something here."""
|
|
?PRG38: PRINTI """I imagine that "
|
|
PRINTD OBJ
|
|
PRINTI " is searching because"
|
|
CALL THIS-IS-IT,OBJ
|
|
CALL HE-SHE-IT,OBJ
|
|
PRINTI " got a bright idea. I prefer to let our"
|
|
PRINT FAMOUS-YOUNG-DETECTIVE
|
|
PRINTR " do the work."""
|
|
?CCL30: EQUAL? OBJ,PER \?CCL43
|
|
PRINTR """I have no secrets. Anyone can see what I am."""
|
|
?CCL43: EQUAL? OBJ,PLAYER,PLAYER-NAME \?CCL47
|
|
PRINTI """You're "
|
|
CALL TELL-FULL-NAME
|
|
PRINTI ", the"
|
|
PRINT FAMOUS-YOUNG-DETECTIVE
|
|
PRINTR "."""
|
|
?CCL47: EQUAL? OBJ,BUTLER \?CCL53
|
|
PRINTR """He's served the family all his life."""
|
|
?CCL53: EQUAL? OBJ,LOVER \?CCL57
|
|
PRINTI """Poor thing, her life came to a sad ending."
|
|
EQUAL? PER,DOCTOR \?PRG64
|
|
PRINTI " As did her grandfather, whom I treated at my clinic."
|
|
?PRG64: PRINTR """"
|
|
?CCL57: EQUAL? OBJ,COUSIN,BUST \?CCL67
|
|
PRINTR """He was a bit of a strange bird, was Lionel."""
|
|
?CCL67: EQUAL? OBJ,GHOST-NEW,DANGER,HAUNTING \?CCL72
|
|
PRINTI """I myself haven't seen"
|
|
CALL HIM-HER-IT,GHOST-NEW
|
|
PRINTR "."""
|
|
?CCL72: EQUAL? OBJ,GHOST-OLD \?CCL76
|
|
PRINTI """Oh, she has haunted "
|
|
PRINTD CASTLE
|
|
PRINTI " for centuries -- a lovely phantom in a white gown, with long pale hair. She was said to be the unfaithful wife of an early Lord "
|
|
PRINT TRESYLLIAN
|
|
PRINTR ", who had her walled up alive in the tower."""
|
|
?CCL76: EQUAL? OBJ,MAID \?CCL80
|
|
PRINT NEVER-NOTICED-HER
|
|
RTRUE
|
|
?CCL80: FSET? OBJ,PERSONBIT /FALSE
|
|
GETP PER,P?CHARACTER
|
|
EQUAL? VARIATION,STACK \?CCL86
|
|
FSET? OBJ,RMUNGBIT /?CTR85
|
|
EQUAL? OBJ,BLOWGUN \?CCL86
|
|
?CTR85: PUTP PER,P?LINE,2
|
|
PRINTI """What can I say?"""
|
|
CALL HE-SHE-IT,PER
|
|
PRINTI " shrugs. ""It's a fair cop. You've caught me with damning evidence."
|
|
EQUAL? VARIATION,FRIEND-C,LORD-C /?PRG98
|
|
GETP PER,P?CHARACTER
|
|
ADD 1,STACK
|
|
GET CHAR-ROOM-TABLE,STACK
|
|
EQUAL? HERE,STACK \?PRG98
|
|
CALL FIND-FLAG-HERE,PERSONBIT,PLAYER,PER
|
|
ZERO? STACK /?CND93
|
|
?PRG98: PRINTR """"
|
|
?CND93: IN? BLOWGUN,PER \?PRG105
|
|
PRINTI """ "
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
JUMP ?CND100
|
|
?PRG105: PRINTI " But there's something you don't know yet"
|
|
CALL IAN-CALLS-YOU
|
|
PRINTI ", which may put the matter in a different light.""
|
|
Still smiling,"
|
|
CALL HE-SHE-IT,PER
|
|
PRINTI " puts"
|
|
CALL HIM-HER-IT,PER,FALSE-VALUE,TRUE-VALUE
|
|
PRINTI " hand into"
|
|
CALL PRINTT,HIDING-PLACE
|
|
PRINTI ", and"
|
|
?CND100: LOC BLOWGUN
|
|
EQUAL? STACK,PER,HIDING-PLACE \?PRG121
|
|
SET 'DISCOVERED-HERE,HERE
|
|
CALL SETUP-SHOT,PER
|
|
FSET? BLOWGUN,NDESCBIT /?CCL114
|
|
PRINTI " takes"
|
|
JUMP ?PRG119
|
|
?CCL114: FCLEAR BLOWGUN,NDESCBIT
|
|
PRINTI " suddenly extracts"
|
|
?PRG119: CALL PRINTT,BLOWGUN
|
|
PRINTR " and aims it at you!"
|
|
?PRG121: CALL HIM-HER-IT,PER,FALSE-VALUE,TRUE-VALUE
|
|
PRINTI " jaw drops as"
|
|
CALL HIM-HER-IT,PER,FALSE-VALUE,TRUE-VALUE
|
|
PRINTR " hand comes out, empty."
|
|
?CCL86: EQUAL? OBJ,ACCIDENT \?CCL124
|
|
PRINTI """You'd best ask Jack about that, or "
|
|
PRINTD BUTLER
|
|
PRINTR "."""
|
|
?CCL124: EQUAL? OBJ,BELL \?CCL128
|
|
PRINTR """It's actually a ship's bell off an old British man-o'-war."""
|
|
?CCL128: EQUAL? PER,SEARCHER \?CCL132
|
|
ZERO? LIONEL-SPEAKS-COUNTER \?CCL132
|
|
CALL SHOWING-CLUE?,OBJ
|
|
ZERO? STACK /?CCL132
|
|
EQUAL? PRSA,V?ASK-ABOUT /?CCL132
|
|
CALL QUEUE,I-SEARCH,1
|
|
PRINT THATS-INTERESTING
|
|
RTRUE
|
|
?CCL132: EQUAL? OBJ,CORPSE \?CCL140
|
|
PRINTC 34
|
|
PRINTD CORPSE
|
|
PRINTR " was never recovered from the well. They think it was carried out to sea by an underground tidal stream."""
|
|
?CCL140: EQUAL? OBJ,COSTUME,BLOWGUN,LENS-BOX \?CCL144
|
|
EQUAL? PER,PAINTER,DOCTOR \?PRD148
|
|
GETP PER,P?CHARACTER
|
|
EQUAL? VARIATION,STACK /?CTR143
|
|
?PRD148: EQUAL? PER,DEB \?CCL144
|
|
EQUAL? VARIATION,FRIEND-C \?CCL144
|
|
?CTR143: GETP PER,P?CHARACTER
|
|
ADD 1,STACK
|
|
GET CHAR-ROOM-TABLE,STACK >OBJ
|
|
PRINTD PER
|
|
PRINTI "'s look changes to a puzzled and angry frown. "
|
|
EQUAL? PER,LORD,FRIEND /?PRG165
|
|
PRINTI """You mean you found that "
|
|
EQUAL? HERE,OBJ \?PRG163
|
|
PRINTI "here "
|
|
?PRG163: PRINTI "in my room?"""
|
|
CALL HE-SHE-IT,PER
|
|
PRINTI " gasps. "
|
|
?PRG165: PRINTI """How can I explain it when it doesn't belong to me? If you didn't bring it "
|
|
EQUAL? HERE,OBJ /?PRG171
|
|
PRINTC 116
|
|
?PRG171: PRINTI "here "
|
|
PRINTD PLAYER
|
|
PRINTI ", then someone else planted it, trying to frame me as the maniac who's been posing as "
|
|
PRINTD LOVER
|
|
PRINTR "'s ghost!"""
|
|
?CCL144: EQUAL? OBJ,COSTUME \?CCL174
|
|
GET FOUND-COSTUME,PLAYER-C
|
|
ZERO? STACK /FALSE
|
|
PRINTI """So that's how "
|
|
ZERO? CONFESSED \?PRG185
|
|
PRINTI "somebody"
|
|
JUMP ?PRG187
|
|
?PRG185: PRINTD VILLAIN-PER
|
|
?PRG187: PRINTR " posed as a ghost!"""
|
|
?CCL174: EQUAL? OBJ,DINNER,DINNER-2 \?CCL190
|
|
LESS? PRESENT-TIME,DINNER-TIME \?CCL193
|
|
PRINTI """Tonight's a dinner in honor of "
|
|
EQUAL? PER,BUTLER \?PRG200
|
|
PRINTI "the late Lord "
|
|
?PRG200: PRINTI "Lionel's birthday. In his will, he asked for these particular guests -- except "
|
|
EQUAL? PER,FRIEND \?CCL204
|
|
PRINTI "me"
|
|
JUMP ?PRG207
|
|
?CCL204: PRINTD FRIEND
|
|
?PRG207: PRINTI ", of course. It's at eight o'clock"
|
|
EQUAL? PER,BUTLER /?PRG213
|
|
PRINTI " -- or whenever "
|
|
PRINTD BUTLER
|
|
PRINTI " gets 'round to it"
|
|
?PRG213: PRINTR "."""
|
|
?CCL193: CALL META-LOC,DINNER
|
|
EQUAL? STACK,HERE \?CCL216
|
|
PRINTR """It looks delicious!"""
|
|
?CCL216: GETP PER,P?LDESC
|
|
EQUAL? STACK,10 \?PRG224
|
|
PRINTI """I'm enjoying"
|
|
JUMP ?PRG226
|
|
?PRG224: PRINTI """I enjoyed"
|
|
?PRG226: PRINTI " it immensely."
|
|
ZERO? MISSED-DINNER /?PRG232
|
|
PRINTI " We started without you, as we assumed you were sleuthing."
|
|
?PRG232: PRINTR """"
|
|
?CCL190: EQUAL? OBJ,BRICKS,COFFIN,CRYPT /?PRG239
|
|
EQUAL? OBJ,DUNGEON,IRON-MAIDEN,TOMB /?PRG239
|
|
EQUAL? OBJ,WELL \?CCL235
|
|
?PRG239: PRINT ANCIENT-SECRETS
|
|
CRLF
|
|
RTRUE
|
|
?CCL235: EQUAL? OBJ,JEWEL \?CCL242
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
EQUAL? PER,FRIEND \?CCL247
|
|
FSET? EARRING,LOCKED \?CCL247
|
|
PRINTR " says, ""Oh, thank you for finding it! I've looked everywhere!"""
|
|
?CCL247: CALL META-LOC,JEWEL
|
|
EQUAL? HERE,STACK \?PRG260
|
|
PRINTI " looks at it with interest"
|
|
EQUAL? PER,DEALER \?PRG262
|
|
PRINTI ", putting a monocle in one eye to see better"
|
|
JUMP ?PRG262
|
|
?PRG260: PRINTI " listens to your description of it"
|
|
?PRG262: PRINTI ". But"
|
|
CALL HE-SHE-IT,PER
|
|
PRINTI " says"
|
|
CALL HE-SHE-IT,PER
|
|
PRINTR " can't identify it."
|
|
?CCL242: EQUAL? OBJ,LAMP \?CCL265
|
|
PRINTI """I think "
|
|
PRINTD BUTLER
|
|
PRINTI " keeps"
|
|
CALL IN-CASE-OF-BLACKOUT
|
|
RTRUE
|
|
?CCL265: EQUAL? OBJ,LUGGAGE \?CCL269
|
|
IN? LUGGAGE,BUTLER \?CCL269
|
|
PRINTI """Don't panic."
|
|
CALL BOLITHO-WILL
|
|
PRINTR "."""
|
|
?CCL269: EQUAL? OBJ,MACE \?CCL277
|
|
PRINTI """That is a long story, "
|
|
CALL TITLE-NAME
|
|
ZERO? STACK /?PRG284
|
|
PRINTC 46
|
|
?PRG284: PRINTI " When Lord Lionel was alive, he had a pit bulldog to protect the castle. A right vicious brute it was, too! Several times it attacked the servants, so the master gave out these "
|
|
PRINTD MACE
|
|
PRINTR "s. Just press the button on the side, and it sprays something foul. It always worked a treat on that wretched dog, and I daresay it could stop a ghost just as well."""
|
|
?CCL277: EQUAL? OBJ,NECKLACE-OF-D \?CCL287
|
|
PRINTI """The police returned it to "
|
|
EQUAL? PER,LORD \?PRG295
|
|
PRINTI "me"
|
|
JUMP ?PRG297
|
|
?PRG295: PRINTD LORD
|
|
?PRG297: PRINTR " after the inquest."""
|
|
?CCL287: CALL SECRET-PASSAGE-OR-DOOR?,OBJ
|
|
ZERO? STACK /?CCL300
|
|
CALL TELL-ABOUT-OBJECT,PER,PASSAGE,FOUND-PASSAGES
|
|
RSTACK
|
|
?CCL300: EQUAL? OBJ,SKELETON \?CCL302
|
|
PRINTI """Ugh! Those must be the bones of the "
|
|
PRINTD GHOST-OLD
|
|
PRINTR "!"""
|
|
?CCL302: CALL TREASURE-FOUND?,OBJ,PER
|
|
ZERO? STACK \TRUE
|
|
EQUAL? OBJ,YOUR-ROOM \?CCL308
|
|
PRINTR """It's fortunate that one bedroom was available for you."""
|
|
?CCL308: EQUAL? OBJ,CASTLE /?PRG315
|
|
IN? OBJ,ROOMS \?CCL312
|
|
?PRG315: PRINTI """Oh, it is a lovely piece of real estate, "
|
|
EQUAL? PER,FRIEND \?PRG322
|
|
PRINTI "isn't it"
|
|
JUMP ?PRG324
|
|
?PRG322: PRINTI "what"
|
|
?PRG324: PRINTC 63
|
|
EQUAL? PER,DOCTOR,PAINTER,DEALER \?PRG330
|
|
PRINTI " Almost a shame to admit riffraff on weekends."
|
|
?PRG330: PRINTR """"
|
|
?CCL312: IN? OBJ,PER \FALSE
|
|
PRINTI """I have it right here, "
|
|
CALL TITLE-NAME
|
|
ZERO? STACK /?PRG340
|
|
PRINTC 46
|
|
?PRG340: PRINTR """"
|
|
|
|
|
|
.FUNCT SHOWING-CLUE?,OBJ
|
|
EQUAL? OBJ,CLUE-1,CLUE-2 /TRUE
|
|
EQUAL? OBJ,CLUE-3,CLUE-4 /TRUE
|
|
EQUAL? OBJ,MAGAZINE \FALSE
|
|
EQUAL? VARIATION,PAINTER-C /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT TREASURE-FOUND?,OBJ,PER,X
|
|
EQUAL? OBJ,TREASURE /?CCL3
|
|
EQUAL? OBJ,INKWELL \FALSE
|
|
IN? MOONMIST,INKWELL \FALSE
|
|
?CCL3: FCLEAR OBJ,SECRETBIT
|
|
PRINTI """That must be the "
|
|
PRINTD ARTIFACT
|
|
PRINTC 33
|
|
CALL TELL-STOP-SEARCHING?,PER >X
|
|
PRINTI """
|
|
"
|
|
SET 'PER,FRIEND
|
|
IN? PER,HERE /?CCL14
|
|
SET 'PER,LORD
|
|
IN? PER,HERE \?CND13
|
|
?CCL14: EQUAL? PER,CONFESSED /?CND13
|
|
PUTP PER,P?LINE,0
|
|
CALL THIS-IS-IT,PER
|
|
PRINTI """That's super!"" adds "
|
|
PRINTD PER
|
|
PRINTI ". ""We can't thank you enough!"
|
|
ZERO? X \?PRG23
|
|
CALL TELL-STOP-SEARCHING?,PER >X
|
|
?PRG23: PRINTI """
|
|
"
|
|
?CND13: IN? SEARCHER,HERE \?CND25
|
|
ZERO? X \?CND25
|
|
CALL TELL-STOP-SEARCHING?,SEARCHER,TRUE-VALUE,TRUE-VALUE
|
|
ZERO? STACK /?CND25
|
|
PRINTI """ says "
|
|
PRINTD SEARCHER
|
|
PRINTI ".
|
|
"
|
|
?CND25: ZERO? TREASURE-FOUND \TRUE
|
|
CALL CONGRATS,ARTIFACT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT TELL-STOP-SEARCHING?,PER,COMMA=0,NOSP=0,OBJ
|
|
EQUAL? PER,SEARCHER \FALSE
|
|
GETP PER,P?CHARACTER
|
|
GET GOAL-TABLES,STACK >OBJ
|
|
GET OBJ,GOAL-FUNCTION
|
|
EQUAL? STACK,X-SEARCHES \FALSE
|
|
PUT OBJ,GOAL-FUNCTION,NULL-F
|
|
ZERO? NOSP \?PRG11
|
|
PRINTC 32
|
|
JUMP ?PRG13
|
|
?PRG11: PRINTC 34
|
|
?PRG13: PRINTI "Then that's the end of my searching"
|
|
ZERO? COMMA /?PRG20
|
|
PRINTC 44
|
|
JUMP ?CND15
|
|
?PRG20: PRINTC 46
|
|
?CND15: CALL ZMEMQ,HERE,CHAR-ROOM-TABLE >OBJ
|
|
ZERO? OBJ /?CCL23
|
|
SUB OBJ,1
|
|
GET CHARACTER-TABLE,STACK
|
|
EQUAL? PER,STACK /TRUE
|
|
?CCL23: CALL ESTABLISH-GOAL,PER,SITTING-ROOM
|
|
RTRUE
|
|
|
|
|
|
.FUNCT GOOD-SHOW,PER,OBJ
|
|
EQUAL? PER,GHOST-NEW,CONFESSED /FALSE
|
|
PRINTC 34
|
|
GETP PER,P?CHARACTER
|
|
EQUAL? VARIATION,STACK \?CCL7
|
|
PRINTI "How nice"
|
|
JUMP ?PRG20
|
|
?CCL7: EQUAL? PER,FRIEND \?CCL11
|
|
PRINTI "That's keen"
|
|
JUMP ?PRG20
|
|
?CCL11: RANDOM 2
|
|
EQUAL? STACK,1 \?PRG18
|
|
PRINTI "Well done"
|
|
JUMP ?PRG20
|
|
?PRG18: PRINTI "Good show"
|
|
?PRG20: PRINTI "! You found "
|
|
CALL PRINTA,OBJ
|
|
PRINTC 33
|
|
EQUAL? OBJ,TREASURE \?PRG24
|
|
CALL TELL-STOP-SEARCHING?,PER,TRUE-VALUE
|
|
?PRG24: PRINTI """ says "
|
|
PRINTD PER
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT COMMON-DESC,PER
|
|
PRINTI "He's a "
|
|
EQUAL? PER,DOCTOR \?PRG13
|
|
PRINTI "middle-sized man in his fifties"
|
|
IN? MUSTACHE,DOCTOR \?PRG11
|
|
PRINTI ", with spectacles and a grizzled mustache"
|
|
?PRG11: PRINTR "."
|
|
?PRG13: PRINTI "tall"
|
|
EQUAL? PER,LORD \?CCL17
|
|
PRINTI ", handsome, dark-browed young man"
|
|
GRTR? BED-TIME,PRESENT-TIME \?PRG39
|
|
PRINTI " in dinner jacket and black tie"
|
|
JUMP ?PRG39
|
|
?CCL17: EQUAL? PER,OFFICER \?CCL25
|
|
PRINTI " blond"
|
|
GRTR? BED-TIME,PRESENT-TIME \?PRG39
|
|
PRINTI ", sporting a white dinner jacket and scarlet cummerbund. He moves with the elegant swagger of a Guards officer and young-man-about-Mayfair, both of which he is"
|
|
JUMP ?PRG39
|
|
?CCL25: EQUAL? PER,DEALER \?PRG39
|
|
PRINTI ", foppish art and antiques dealer"
|
|
FSET? PER,MUNGBIT /?PRG39
|
|
PRINTI ". Despite his languid manner, you're aware of his penetrating glance. If you were buying a used car from this man, you'd want to check it out carefully"
|
|
?PRG39: PRINTR "."
|
|
|
|
|
|
.FUNCT COMMON-OTHER,PER,X=0,N
|
|
EQUAL? PRSA,V?ASK /FALSE
|
|
EQUAL? PRSA,V?EXAMINE \?CCL5
|
|
EQUAL? PER,DOCTOR /?CTR7
|
|
EQUAL? PER,LORD,OFFICER,DEALER \?CCL8
|
|
?CTR7: CALL COMMON-DESC,PER
|
|
JUMP ?CND6
|
|
?CCL8: EQUAL? PER,GHOST-NEW /?CND6
|
|
GETP PER,P?TEXT
|
|
PRINT STACK
|
|
CRLF
|
|
?CND6: IN? PER,HERE \?CND14
|
|
FIRST? PER >N \?CND14
|
|
FSET? N,NDESCBIT /?CND14
|
|
CALL CARRY-CHECK,PER
|
|
ZERO? STACK /?CND14
|
|
SET 'X,TRUE-VALUE
|
|
?CND14: FSET? PER,MUNGBIT \?CND21
|
|
ZERO? X /?CND23
|
|
PRINTI "And"
|
|
?CND23: ZERO? X /?PRT27
|
|
PUSH 0
|
|
JUMP ?PRE29
|
|
?PRT27: PUSH 1
|
|
?PRE29: CALL HE-SHE-IT,PER,STACK,STR?1
|
|
PRINTC 32
|
|
GETP PER,P?LDESC
|
|
GET LDESC-STRINGS,STACK
|
|
PRINT STACK
|
|
PRINTC 46
|
|
CRLF
|
|
?CND21: EQUAL? PER,DEALER \?CCL34
|
|
LOC LORD
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \TRUE
|
|
GETP DEALER,P?LDESC
|
|
EQUAL? STACK,2 \TRUE
|
|
GETP LORD,P?LINE
|
|
ZERO? STACK \TRUE
|
|
PRINTI """Montague began appraising the art works in the castle for Uncle Lionel before he died,"" explains "
|
|
PRINTD LORD
|
|
PRINTR ". ""I've asked him to continue and make up a catalog."""
|
|
?CCL34: EQUAL? PER,PAINTER \TRUE
|
|
LOC FRIEND
|
|
EQUAL? STACK,HERE,PSEUDO-OBJECT \?CCL45
|
|
SET 'X,FRIEND
|
|
JUMP ?CND43
|
|
?CCL45: CALL FIND-FLAG-HERE,PERSONBIT,PLAYER,PAINTER >X
|
|
?CND43: ZERO? X /TRUE
|
|
LOC PAINTER
|
|
EQUAL? STACK,DRAWING-ROOM \TRUE
|
|
PRINTI """Vivien painted that portrait of "
|
|
PRINTD LOVER
|
|
PRINTI " Hallam, the girl who drowned in the castle well,"" says "
|
|
PRINTD X
|
|
PRINTI ". She gestures to a framed picture hanging by the "
|
|
PRINTD FIREPLACE
|
|
PRINTR "."
|
|
?CCL5: EQUAL? PRSO,PER \FALSE
|
|
EQUAL? PRSA,V?SHOW \FALSE
|
|
CALL PERFORM,V?ASK-ABOUT,PRSO,PRSI
|
|
RTRUE
|
|
|
|
|
|
.FUNCT UNSNOOZE,PER,NO-TELL?=0,RM,GT,C
|
|
GETP PER,P?LDESC >C
|
|
EQUAL? C,14 \?CCL3
|
|
CALL FIX-MUSTACHE,PER
|
|
GETP PER,P?CHARACTER >C
|
|
GET GOAL-TABLES,C >GT
|
|
GET GT,ATTENTION-SPAN
|
|
PUT GT,ATTENTION,STACK
|
|
PUT GT,GOAL-ENABLE,0
|
|
PUT GT,GOAL-FUNCTION,X-RETIRES
|
|
PUT GT,GOAL-S,TRUE-VALUE
|
|
ADD 1,C
|
|
GET CHAR-ROOM-TABLE,STACK >RM
|
|
IN? PER,RM /?CND4
|
|
CALL ESTABLISH-GOAL,PER,RM
|
|
?CND4: EQUAL? VARIATION,C \?CCL8
|
|
PUTP PER,P?LDESC,4
|
|
JUMP ?CND6
|
|
?CCL8: PUTP PER,P?LDESC,25
|
|
?CND6: FCLEAR PER,MUNGBIT
|
|
CALL META-LOC,PER >RM
|
|
IN? PER,HERE \?CND9
|
|
ZERO? NO-TELL? \?CND9
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
PRINTI " wakes up first. "
|
|
FSET? RM,ONBIT /?CND9
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE
|
|
PRINTI " turns on the light. "
|
|
?CND9: FSET RM,ONBIT
|
|
RTRUE
|
|
?CCL3: EQUAL? C,19 \FALSE
|
|
GETP PER,P?CHARACTER
|
|
GET SHOT,STACK
|
|
ZERO? STACK \FALSE
|
|
CALL FIX-MUSTACHE,PER
|
|
CALL QUEUE,I-COME-TO,0
|
|
CALL I-COME-TO
|
|
RTRUE
|
|
|
|
|
|
.FUNCT FIX-MUSTACHE,PER
|
|
EQUAL? PER,DOCTOR \FALSE
|
|
EQUAL? VARIATION,DOCTOR-C \FALSE
|
|
FCLEAR MUSTACHE,TAKEBIT
|
|
FSET MUSTACHE,TRYTAKEBIT
|
|
RTRUE
|
|
|
|
|
|
.FUNCT OBJECT-PAIR-F,P1,P2,?TMP1
|
|
GETB P-PRSO,P-MATCHLEN
|
|
LESS? 2,STACK \?CCL3
|
|
SET 'CLOCK-WAIT,TRUE-VALUE
|
|
PRINTR "(That's too many things to compare all at once!)"
|
|
?CCL3: GETB P-PRSO,1 >?TMP1
|
|
GETB P-PRSO,2
|
|
CALL PERFORM,PRSA,?TMP1,STACK
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CREW-GLOBAL-F,L
|
|
CALL QUEUED?,I-TOUR
|
|
ZERO? STACK /?CCL3
|
|
EQUAL? PRSA,V?WALK-TO \?CCL3
|
|
GET TOUR-PATH,TOUR-INDEX
|
|
CALL PERFORM,PRSA,STACK
|
|
RTRUE
|
|
?CCL3: CALL ALL-TOGETHER-NOW?
|
|
ZERO? STACK \?CCL7
|
|
SET 'CLOCK-WAIT,TRUE-VALUE
|
|
PRINTI "(The guests aren't all together!)"
|
|
CRLF
|
|
RETURN 2
|
|
?CCL7: EQUAL? PRSA,V?EXAMINE \?CCL13
|
|
PRINTR "There are seven people, not counting you."
|
|
?CCL13: EQUAL? PRSA,V?HELLO \?PRG20
|
|
CALL START-SENTENCE,PRSO
|
|
PRINTR " nods at you."
|
|
?PRG20: PRINTI "You'd better stick to one guest at a time."
|
|
CRLF
|
|
RETURN 2
|
|
|
|
.ENDI
|