sherlock/charles.zap

995 lines
26 KiB
Plaintext

.FUNCT BURN-OUT-MATCH
FCLEAR TH-MATCH,FL-BURNABLE
ICALL2 CLEAR-ALL-FLAGS,TH-MATCH
FSET TH-MATCH,FL-TAKEABLE
FSET TH-MATCH,FL-BROKEN
RTRUE
.FUNCT RT-AC-TH-MATCH,CONTEXT
EQUAL? CONTEXT,K-M-SDESC \?CCL3
FSET? TH-MATCH,FL-BROKEN \?CCL6
PRINTI "burnt match"
RTRUE
?CCL6: PRINTI "match"
RTRUE
?CCL3: EQUAL? CONTEXT,K-M-DESCFCN \?CCL8
FSET? TH-MATCH,FL-BROKEN /FALSE
FSET? TH-MATCH,FL-LIGHTED \FALSE
ICALL2 RT-CTHEO-PRINT,TH-MATCH
PRINTR " is burning."
?CCL8: ZERO? CONTEXT \FALSE
FSET? TH-MATCH,FL-BROKEN \?CCL17
EQUAL? GL-PRSA,V?LAMP-OFF,V?LIGHT,V?STRIKE /?CCL20
EQUAL? GL-PRSA,V?BURN-WITH,V?LIGHT-WITH \FALSE
?CCL20: PRINTR "The match is already burned out."
?CCL17: EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH,V?STRIKE /?PRD26
EQUAL? GL-PRSA,V?LIGHT \?CCL24
?PRD26: EQUAL? GL-PRSO,TH-MATCH \?CCL24
FSET? TH-MATCH,FL-LIGHTED \?CCL31
ICALL1 RT-CTHEO-PRINT
PRINTR " is already lit."
?CCL31: FSET? TH-MATCH,FL-BURNABLE /?CCL33
ICALL1 RT-CTHEO-PRINT
PRINTR " is burned out."
?CCL33: EQUAL? GL-PRSI,TH-HANDS,FALSE-VALUE /?CCL35
FSET? GL-PRSI,FL-LIGHTED \FALSE
FSET? GL-PRSI,FL-BURNABLE \FALSE
?CCL35: FSET TH-MATCH,FL-LIGHTED
CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,2,0
ICALL RT-ALARM-SET-REL,RT-I-MATCH-OUT,STACK
MOVE TH-MATCH,GL-WINNER
ICALL1 RT-CTHEO-PRINT
PRINTR " flares to life."
?CCL24: EQUAL? GL-PRSA,V?LAMP-OFF \FALSE
FSET? TH-MATCH,FL-LIGHTED /?CCL44
ICALL1 RT-CTHEO-PRINT
PRINTR " isn't lit."
?CCL44: FCLEAR TH-MATCH,FL-LIGHTED
ICALL1 BURN-OUT-MATCH
ICALL2 RT-ALARM-CLR,RT-I-MATCH-OUT
ICALL RT-CYOU-MSG,STR?802,STR?803
PRINTR "out the match."
.FUNCT CLEAR-ALL-FLAGS,OBJ,N
SET 'N,1
?PRG1: EQUAL? N,FL-HAS-SDESC,FL-HAS-DESCFCN,FL-NEEDS-IDENTITY /?CND3
EQUAL? N,FL-LOSE-IDENTITY /?CND3
FCLEAR OBJ,N
?CND3: IGRTR? 'N,48 \?PRG1
RTRUE
.FUNCT RT-AC-TH-TORCH,CONTEXT,WHO
EQUAL? CONTEXT,K-M-SDESC \?CCL3
FSET? TH-TORCH,FL-BROKEN \?CCL6
PRINTI "burnt torch"
RTRUE
?CCL6: PRINTI "torch"
RTRUE
?CCL3: EQUAL? CONTEXT,K-M-DESCFCN \?CCL8
FSET? TH-TORCH,FL-BROKEN /FALSE
FSET? TH-TORCH,FL-LIGHTED \FALSE
ICALL2 RT-CTHEO-PRINT,TH-TORCH
PRINTR " is burning."
?CCL8: FSET? TH-TORCH,FL-BROKEN /FALSE
EQUAL? GL-PRSA,V?MELT,V?HEAT,V?LIGHT-WITH /?PRD18
EQUAL? GL-PRSA,V?BURN-WITH \?CCL16
?PRD18: EQUAL? GL-PRSI,TH-TORCH \?CCL16
FSET? TH-TORCH,FL-LIGHTED /?CCL23
ICALL2 RT-CTHEO-PRINT,TH-TORCH
PRINTR " is not lit."
?CCL23: EQUAL? GL-PRSO,TH-TORCH \?CCL25
ICALL1 RT-CTHEO-PRINT
PRINTR " is already lit."
?CCL25: EQUAL? GL-PRSO,TH-WAX-HEAD \?CCL27
ICALL1 RT-CTHEO-PRINT
PRINTI " melts into a pool of wax on the floor. You see a gem glittering in the wax."
CRLF
MOVE TH-WAX-HEAD,GL-PLACE-CUR
MOVE TH-EMERALD,TH-WAX-HEAD
ICALL2 CLEAR-ALL-FLAGS,TH-WAX-HEAD
FSET TH-WAX-HEAD,FL-OPENED
FSET TH-WAX-HEAD,FL-TRANSPARENT
FSET TH-WAX-HEAD,FL-CONTAINER
FSET TH-WAX-HEAD,FL-BROKEN
ICALL2 SET-MASS-TO-ONE,TH-WAX-HEAD
GETPT TH-WAX-HEAD,P?SYNONYM
PUT STACK,0,W?POOL
GETPT TH-WAX-HEAD,P?ADJECTIVE
PUT STACK,0,W?POOL
CALL2 RT-THIS-IS-IT,TH-EMERALD
RSTACK
?CCL27: EQUAL? GL-PRSO,TH-WAX-AX \?CCL29
ICALL1 RT-CTHEO-PRINT
PRINTI " melts into a pool of wax on the floor."
CRLF
MOVE TH-WAX-AX,GL-PLACE-CUR
ICALL2 CLEAR-ALL-FLAGS,TH-WAX-AX
FSET TH-WAX-AX,FL-OPENED
FSET TH-WAX-AX,FL-TRANSPARENT
FSET TH-WAX-AX,FL-CONTAINER
FSET TH-WAX-AX,FL-BROKEN
ICALL2 SET-SIZE-TO-ONE,TH-WAX-AX
ICALL2 SET-CAPACITY-TO-ONE,TH-WAX-AX
ICALL2 SET-MASS-TO-ONE,TH-WAX-AX
GETPT TH-WAX-AX,P?SYNONYM
PUT STACK,0,W?AX
GETPT TH-WAX-AX,P?ADJECTIVE
PUT STACK,0,W?MELTED
RTRUE
?CCL29: FSET? GL-PRSO,FL-BURNABLE /FALSE
ICALL1 RT-CYOU-MSG
PRINTI "cannot "
PRINTB GL-P-PRSA-WORD
PRINTC 32
ICALL1 RT-THEO-PRINT
PRINTI " with "
ICALL1 RT-THEI-PRINT
PRINTR "."
?CCL16: EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH \FALSE
EQUAL? GL-PRSO,TH-TORCH \FALSE
EQUAL? GL-PRSI,TH-TOBACCO,TH-PIPE \?CCL38
FSET? TH-TOBACCO,FL-LIGHTED \?CCL38
ICALL1 RT-CTHEI-PRINT
ICALL2 RT-DONT-DOESNT-MSG,GL-PRSI
PRINTI "put out enough heat to light "
ICALL1 RT-THEO-PRINT
PRINTR "."
?CCL38: FSET? GL-PRSI,FL-BURNABLE /?CCL42
ICALL1 RT-CYOU-MSG
PRINTI "cannot light "
ICALL1 RT-THEO-PRINT
PRINTI " with "
ICALL1 RT-THEI-PRINT
PRINTR "."
?CCL42: FSET? GL-PRSI,FL-LIGHTED /?CCL44
ICALL1 RT-CTHEI-PRINT
ICALL2 RT-ISNT-ARENT-MSG,GL-PRSI
PRINTR "burning."
?CCL44: ICALL1 RT-CTHEO-PRINT
PRINTI " catches fire quickly."
CRLF
FSET TH-TORCH,FL-LIGHTED
CALL RT-DO-CLOCK-SET,GL-TIME-PARM,1,0,0
ICALL RT-ALARM-SET-REL,RT-I-TORCH-OUT,STACK
CALL1 RT-WHO-SAYS? >WHO
EQUAL? WHO,CH-HOLMES \?CND45
CRLF
PRINTI "Holmes looks at you and says, ""An ingenious solution, Watson. My compliments, old chap."""
CRLF
?CND45: CALL2 RT-UPDATE-SCORE,4
RSTACK
.FUNCT RT-LIGHT-PIPE,FIRE
FSET? FIRE,FL-BURNABLE /?CCL3
ICALL1 RT-CYOU-MSG
PRINTI "cannot light "
ICALL1 RT-THEO-PRINT
PRINTI " with "
ICALL1 RT-THEI-PRINT
PRINTR "."
?CCL3: FSET? FIRE,FL-LIGHTED /?CCL5
ICALL2 RT-CTHEO-PRINT,FIRE
PRINTR " is not burning."
?CCL5: FSET? TH-TOBACCO,FL-LIGHTED \?CCL7
ICALL1 RT-CTHEO-PRINT
PRINTR " is already lit."
?CCL7: IN? TH-TOBACCO,TH-PIPE \FALSE
FSET TH-TOBACCO,FL-LIGHTED
CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,15,0
ICALL RT-ALARM-SET-REL,RT-I-PIPE-OUT,STACK
PRINTI "After a few puffs, "
ICALL1 RT-THEO-PRINT
PRINTR " fires right up."
.FUNCT RT-AC-TH-TOBACCO,CONTEXT,I
EQUAL? CONTEXT,K-M-DESCFCN \?CCL3
FSET? TH-TOBACCO,FL-LIGHTED \?CCL6
ICALL2 RT-CTHEO-PRINT,TH-TOBACCO
PRINTR " is burning."
?CCL6: PRINTR "It's Holmes's favorite brand of shag tobacco."
?CCL3: ZERO? GL-NOW-PRSI? \?CND1
SET 'GL-P-IT-OBJECT,TH-TOBACCO
?CND1: EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH \?CCL10
EQUAL? GL-PRSO,TH-TOBACCO \?CCL10
EQUAL? GL-PRSI,FALSE-VALUE,TH-HANDS \?CCL15
SET 'I,TH-MATCH
JUMP ?CND13
?CCL15: SET 'I,GL-PRSI
?CND13: IN? I,GL-WINNER /?CCL18
ICALL RT-CYOU-MSG,STR?228,STR?229
PRINTI "not holding "
ICALL2 RT-A-PRINT,I
PRINTR "."
?CCL18: IN? TH-PIPE,GL-WINNER /?CCL20
ICALL RT-CYOU-MSG,STR?228,STR?229
PRINTI "not holding "
ICALL2 RT-THEO-PRINT,TH-PIPE
PRINTR "."
?CCL20: FSET? TH-TOBACCO,FL-LIGHTED \?CCL22
ICALL1 RT-CTHEO-PRINT
PRINTR " is already lit."
?CCL22: CALL2 RT-LIGHT-PIPE,I
ZERO? STACK \TRUE
ICALL1 RT-CTHEO-PRINT
PRINTC 32
PRINT K-SMOULDERS-MSG
CRLF
RTRUE
?CCL10: EQUAL? GL-PRSA,V?TAKE,V?TOUCH \?CCL26
FSET? TH-TOBACCO,FL-LIGHTED \?CCL26
PRINTR "Yeeeeouch! That's hot!"
?CCL26: EQUAL? GL-PRSA,V?SMOKE \?CCL30
FSET? TH-TOBACCO,FL-LIGHTED \?CCL33
PRINT K-BRAND-MSG
CRLF
RTRUE
?CCL33: ICALL1 RT-CTHEO-PRINT
PRINTR " is not lit."
?CCL30: EQUAL? GL-PRSA,V?SMELL \FALSE
PRINTR "The shag has a strong, but pleasant smell."
.FUNCT RT-AC-TH-PIPE,CONTEXT,I,DEST
EQUAL? CONTEXT,K-M-DESCFCN \?CCL3
FSET? TH-TOBACCO,FL-LIGHTED \?CCL6
IN? TH-TOBACCO,TH-PIPE \?CCL6
PRINTI "Smoke gently wafts from "
ICALL2 RT-THEO-PRINT,TH-PIPE
PRINTR "."
?CCL6: PRINTR "It is an old and oily black clay pipe, the companion of Holmes's deepest meditations."
?CCL3: ZERO? CONTEXT \FALSE
ZERO? GL-NOW-PRSI? \?CCL12
EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH \?CCL15
EQUAL? GL-PRSI,FALSE-VALUE,TH-HANDS \?CCL18
SET 'I,TH-MATCH
JUMP ?CND16
?CCL18: SET 'I,GL-PRSI
?CND16: IN? I,GL-WINNER /?CCL21
ICALL RT-CYOU-MSG,STR?228,STR?229
PRINTI "not holding "
ICALL2 RT-A-PRINT,I
PRINTR "."
?CCL21: IN? TH-PIPE,GL-WINNER /?CCL23
ICALL RT-CYOU-MSG,STR?228,STR?229
PRINTI "not holding "
ICALL2 RT-THEO-PRINT,TH-PIPE
PRINTR "."
?CCL23: FSET? TH-TOBACCO,FL-LIGHTED \?CCL25
ICALL1 RT-CTHEO-PRINT
PRINTR " is already lit."
?CCL25: CALL2 RT-LIGHT-PIPE,I
ZERO? STACK \TRUE
PRINTR "There is nothing in the pipe to light."
?CCL15: EQUAL? GL-PRSA,V?PUT \?CCL29
EQUAL? GL-PRSI,TH-PLAYER-BODY \?CCL29
GET GL-P-NAMW,1
EQUAL? STACK,W?MOUTH \?CCL29
CALL RT-PERFORM,V?SMOKE,TH-PIPE
RSTACK
?CCL29: EQUAL? GL-PRSA,V?SMOKE \?CCL34
FSET? TH-TOBACCO,FL-LIGHTED \?CCL37
PRINT K-BRAND-MSG
CRLF
RTRUE
?CCL37: ICALL1 RT-CTHEO-PRINT
PRINTR " is not lit."
?CCL34: EQUAL? GL-PRSA,V?EMPTY-INTO,V?POUR \FALSE
IN? TH-TOBACCO,TH-PIPE \FALSE
FSET? TH-TOBACCO,FL-LIGHTED \FALSE
EQUAL? GL-PRSA,V?POUR \?CCL45
FCLEAR TH-TOBACCO,FL-LIGHTED
MOVE TH-TOBACCO,GL-PLACE-CUR
ICALL2 RT-CTHEO-PRINT,TH-TOBACCO
PRINTI " falls "
EQUAL? GL-PLACE-CUR,RM-THAMES-ONE,RM-THAMES-TWO,RM-THAMES-THREE /?CTR47
EQUAL? GL-PLACE-CUR,RM-THAMES-FOUR,RM-THAMES-FIVE \?CCL48
?CTR47: REMOVE TH-TOBACCO
PRINTR "into the water."
?CCL48: PRINTI "to "
FSET? GL-PLACE-CUR,FL-INDOORS \?CCL53
ICALL1 TELL-THE-FLOOR
JUMP ?CND51
?CCL53: ICALL1 TELL-THE-GROUND
?CND51: PRINTI ", "
PRINT K-SMOULDERS-MSG
CRLF
RTRUE
?CCL45: EQUAL? GL-PRSA,V?EMPTY-INTO \FALSE
CALL RT-ROOM-IN-ON-MSG?,TH-TOBACCO,GL-PRSI
ZERO? STACK \TRUE
CALL RT-CHECK-MOVE-MSG?,TH-TOBACCO,GL-PRSI
ZERO? STACK \TRUE
FCLEAR TH-TOBACCO,FL-LIGHTED
MOVE TH-TOBACCO,GL-PRSI
ICALL2 RT-CTHEO-PRINT,TH-TOBACCO
PRINTI " falls "
FSET? GL-PRSI,FL-CONTAINER \?CCL63
PRINTI "into"
JUMP ?CND61
?CCL63: PRINTI "onto"
?CND61: PRINTC 32
ICALL1 RT-THEI-PRINT
PRINTI ", "
PRINT K-SMOULDERS-MSG
CRLF
RTRUE
?CCL12: ZERO? GL-NOW-PRSI? /FALSE
EQUAL? GL-PRSA,V?PUT \?CCL68
EQUAL? GL-PRSO,TH-TOBACCO /?CCL68
PRINTI "Putting "
ICALL1 RT-THEO-PRINT
PRINTI " in "
ICALL1 RT-THEI-PRINT
PRINTI " would"
CALL1 RT-WASTE-OF-TIME-MSG
RSTACK
?CCL68: EQUAL? GL-PRSA,V?POUR-FROM \FALSE
EQUAL? GL-PRSO,TH-TOBACCO \FALSE
IN? TH-TOBACCO,TH-PIPE \FALSE
FSET? TH-TOBACCO,FL-LIGHTED \FALSE
FCLEAR TH-TOBACCO,FL-LIGHTED
MOVE TH-TOBACCO,GL-PLACE-CUR
ICALL1 RT-CTHEO-PRINT
PRINTI " falls to "
FSET? GL-PLACE-CUR,FL-INDOORS \?CCL79
ICALL1 TELL-THE-FLOOR
JUMP ?CND77
?CCL79: ICALL1 TELL-THE-GROUND
?CND77: PRINTI ", "
PRINT K-SMOULDERS-MSG
CRLF
RTRUE
.FUNCT RT-AC-TH-MAIL,CONTEXT
EQUAL? CONTEXT,K-M-DESCFCN \?CCL3
FSET? TH-MAIL,FL-LIGHTED \FALSE
ICALL2 RT-CTHEO-PRINT,TH-MAIL
PRINTR " is burning."
?CCL3: ZERO? CONTEXT \FALSE
ZERO? GL-NOW-PRSI? \?CND1
SET 'GL-P-IT-OBJECT,TH-MAIL
?CND1: EQUAL? GL-PRSA,V?READ,V?EXAMINE,V?LOOK-ON /?CTR11
EQUAL? GL-PRSA,V?LOOK-INSIDE,V?OPEN,V?SEARCH /?CTR11
EQUAL? GL-PRSA,V?OPEN-WITH \?CCL12
?CTR11: PRINTR "You should not read other people's mail."
?CCL12: EQUAL? GL-PRSA,V?CLOSE \?CCL17
PRINTR "The mail hasn't been opened."
?CCL17: EQUAL? GL-PRSA,V?TAKE \?CCL19
ZERO? KNIFE-COLD? /?CCL19
SET 'KNIFE-COLD?,FALSE-VALUE
MOVE TH-KNIFE,GL-WINNER
PRINTI "[Taking the knife first]"
ZERO? GL-P-MULT? /?CCL24
PRINTC 32
RFALSE
?CCL24: CRLF
RFALSE
?CCL19: EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH \FALSE
ZERO? GL-NOW-PRSI? \FALSE
FSET? TH-MAIL,FL-LIGHTED \?CCL31
ICALL1 RT-CTHEO-PRINT
PRINTR " is already lit."
?CCL31: FSET? GL-PRSI,FL-BURNABLE /?CCL33
EQUAL? GL-PRSI,TH-PIPE \FALSE
?CCL33: FSET? GL-PRSI,FL-LIGHTED \?PRD39
FSET? GL-PRSI,FL-BURNABLE /?CTR36
?PRD39: EQUAL? GL-PRSI,TH-PIPE \?CCL37
FSET? TH-TOBACCO,FL-LIGHTED \?CCL37
?CTR36: ICALL2 RT-CTHEO-PRINT,TH-MAIL
PRINTI " lights up."
CRLF
FSET TH-MAIL,FL-LIGHTED
CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,3,0
CALL RT-ALARM-SET-REL,RT-I-MAIL-OUT,STACK
RSTACK
?CCL37: ICALL1 RT-CTHEI-PRINT
ICALL2 RT-ISNT-ARENT-MSG,GL-PRSI
PRINTR "burning."
.FUNCT RT-AC-TH-NEWSPAPER,CONTEXT
EQUAL? CONTEXT,K-M-DESCFCN \?CCL3
FSET? TH-NEWSPAPER,FL-LIGHTED \?CCL6
ICALL2 RT-CTHEO-PRINT,TH-NEWSPAPER
PRINTR " is burning."
?CCL6: PRINTR "It's the newspaper that came in your game package."
?CCL3: ZERO? CONTEXT \FALSE
EQUAL? GL-PRSA,V?READ,V?READ-TO,V?SHOW /?CCL10
EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH,V?GIVE /?CCL10
EQUAL? GL-PRSA,V?TELL-ABOUT \FALSE
?CCL10: IN? TH-NEWSPAPER,CH-PLAYER /?CCL15
PRINTR "The newspaper will not leap into your hand by itself."
?CCL15: EQUAL? GL-PRSA,V?READ \?CCL17
CALL1 RT-READ-NEWSPAPER
RSTACK
?CCL17: EQUAL? GL-PRSA,V?READ-TO,V?SHOW,V?GIVE \?PRD21
ZERO? GL-NOW-PRSI? /?CTR18
?PRD21: EQUAL? GL-PRSA,V?TELL-ABOUT \?CCL19
ZERO? GL-NOW-PRSI? /?CCL19
?CTR18: FSET? GL-PRSI,FL-PERSON \FALSE
FSET? TH-NEWSPAPER,FL-ASLEEP /?CCL29
FSET? TH-NEWSPAPER,FL-OPENED \?CND26
?CCL29: ICALL1 RT-READ-NEWSPAPER
CRLF
?CND26: EQUAL? GL-PRSA,V?READ-TO,V?SHOW,V?GIVE \?PRD36
EQUAL? GL-PRSI,CH-HOLMES /?CTR33
?PRD36: EQUAL? GL-PRSA,V?TELL-ABOUT \?CCL34
EQUAL? GL-PRSO,CH-HOLMES \?CCL34
?CTR33: FSET? CH-HOLMES,FL-ASLEEP \FALSE
ICALL1 RT-WAKE-UP-HOLMES
EQUAL? GL-PRSA,V?GIVE \TRUE
MOVE TH-NEWSPAPER,CH-HOLMES
RTRUE
?CCL34: ICALL1 RT-CTHEI-PRINT
ICALL2 RT-DONT-DOESNT-MSG,GL-PRSI
PRINTR "seem to be interested."
?CCL19: EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH \FALSE
ZERO? GL-NOW-PRSI? \FALSE
FSET? TH-NEWSPAPER,FL-LIGHTED \?CCL52
ICALL1 RT-CTHEO-PRINT
PRINTR " is already lit."
?CCL52: FSET? GL-PRSI,FL-BURNABLE /?CCL54
EQUAL? GL-PRSI,TH-PIPE \FALSE
?CCL54: FSET? GL-PRSI,FL-LIGHTED \?PRD60
FSET? GL-PRSI,FL-BURNABLE /?CTR57
?PRD60: EQUAL? GL-PRSI,TH-PIPE \?CCL58
FSET? TH-TOBACCO,FL-LIGHTED \?CCL58
?CTR57: ICALL2 RT-CTHEO-PRINT,TH-NEWSPAPER
PRINTI " lights up."
CRLF
FSET TH-NEWSPAPER,FL-LIGHTED
CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,3,0
ICALL RT-ALARM-SET-REL,RT-I-NEWSPAPER-OUT,STACK
RTRUE
?CCL58: ICALL1 RT-CTHEI-PRINT
ICALL2 RT-ISNT-ARENT-MSG,GL-PRSI
PRINTR "burning."
.FUNCT RT-AC-TH-WESTMINSTER-CLUE,CONTEXT
EQUAL? CONTEXT,K-M-DESCFCN \?CCL3
FSET? TH-MAIL,FL-LIGHTED \FALSE
ICALL2 RT-CTHEO-PRINT,TH-MAIL
PRINTR " is burning."
?CCL3: ZERO? CONTEXT \FALSE
EQUAL? GL-PRSA,V?READ,V?EXAMINE \?CCL10
IN? TH-WESTMINSTER-CLUE,CH-PLAYER /?CCL13
PRINTR "The paper will not leap into your hand by itself."
?CCL13: GETP TH-WESTMINSTER-CLUE,P?FLIPPED
ZERO? STACK \?CCL15
ICALL1 RT-INDENT-PRINT
PRINTI "Mortality, behold and fear!"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "What a change of flesh is here!"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "Think how many royal bones"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "Sleep within this heap of stones:"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "Here they lie, had realms and lands,"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "Who now want strength"
ICALL1 RT-WRAP-PRINT
PRINTI "to stir their hands."
CRLF
CRLF
ICALL1 RT-INDENT-PRINT
PRINT K-ASTERISK-MSG
CRLF
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "For two-score years I reigned alone,"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "A virgin queen on England's throne."
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "My navy caused Armada's shame,"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "And with me died the Tudor name."
CRLF
CRLF
ICALL1 RT-INDENT-PRINT
PRINT K-ASTERISK-MSG
CRLF
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "The apple sorely tempted Eve,"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "And Tell another aimed to cleave."
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "But when one fell, it showed to me,"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "The mighty pull of gravity."
CRLF
CRLF
ICALL1 RT-INDENT-PRINT
PRINT K-ASTERISK-MSG
CRLF
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "My father, it was said, would die,"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "Beneath the Holy City's sky."
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "Jerusalem his body claimed,"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "And it is after him I'm named."
CRLF
CRLF
ICALL1 RT-INDENT-PRINT
PRINT K-ASTERISK-MSG
CRLF
CRLF
ICALL1 RT-INDENT-PRINT
PRINT K-ASTERISK-MSG
CRLF
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "O stately Holmes of England,"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "In Baker Street abide."
CRLF
ICALL1 RT-INDENT-PRINT
PRINTI "For even you must surely fail,"
CRLF
ICALL1 RT-INDENT-PRINT
PRINTR "To save your country's pride."
?CCL15: PRINTR "This side appears to be blank."
?CCL10: EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH \?CCL17
ZERO? GL-NOW-PRSI? \?CCL17
FSET? TH-WESTMINSTER-CLUE,FL-LIGHTED \?CCL22
ICALL1 RT-CTHEO-PRINT
PRINTR " is already lit."
?CCL22: FSET? GL-PRSI,FL-BURNABLE /?CCL24
EQUAL? GL-PRSI,TH-PIPE \FALSE
?CCL24: FSET? GL-PRSI,FL-LIGHTED \?PRD30
FSET? GL-PRSI,FL-BURNABLE /?CTR27
?PRD30: EQUAL? GL-PRSI,TH-PIPE \?CCL28
FSET? TH-TOBACCO,FL-LIGHTED \?CCL28
?CTR27: ICALL2 RT-CTHEO-PRINT,TH-WESTMINSTER-CLUE
PRINTI " lights up."
CRLF
FSET TH-WESTMINSTER-CLUE,FL-LIGHTED
CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,3,0
ICALL RT-ALARM-SET-REL,RT-I-CLUE-OUT,STACK
RTRUE
?CCL28: ICALL1 RT-CTHEI-PRINT
ICALL2 RT-ISNT-ARENT-MSG,GL-PRSI
PRINTR "burning."
?CCL17: EQUAL? GL-PRSA,V?FLIP \?CCL36
IN? TH-WESTMINSTER-CLUE,GL-WINNER /?CCL39
ICALL RT-CYOU-MSG,STR?228,STR?229
PRINTI "not holding "
ICALL2 RT-THEO-PRINT,TH-WESTMINSTER-CLUE
PRINTR "."
?CCL39: GETP TH-WESTMINSTER-CLUE,P?FLIPPED
SUB 1,STACK
PUTP TH-WESTMINSTER-CLUE,P?FLIPPED,STACK
ICALL RT-CYOU-MSG,STR?804,STR?805
ICALL2 RT-THEO-PRINT,TH-WESTMINSTER-CLUE
PRINTR " over."
?CCL36: EQUAL? GL-PRSA,V?LOOK-THRU \FALSE
EQUAL? GL-PRSI,TH-MAGNIFYING-GLASS \FALSE
PRINTR "It's been wiped clean."
.FUNCT RT-AC-TH-WAX-HEAD,CONTEXT
EQUAL? CONTEXT,K-M-SDESC \?CCL3
FSET? TH-WAX-HEAD,FL-BROKEN \?CCL6
PRINTI "wax pool"
RTRUE
?CCL6: PRINTI "wax head"
RTRUE
?CCL3: EQUAL? CONTEXT,K-M-DESCFCN \?CCL8
FSET? TH-WAX-HEAD,FL-BROKEN \FALSE
FIRST? TH-WAX-HEAD /FALSE
PRINTI "Looks like any other "
ICALL2 DPRINT,TH-WAX-HEAD
PRINTR "."
?CCL8: FSET? TH-WAX-HEAD,FL-BROKEN /FALSE
IN? TH-WAX-HEAD,TH-CHARLES-STATUE \?CCL18
EQUAL? GL-PRSA,V?TAKE,V?UNSCREW-FROM \?CCL21
MOVE TH-WAX-HEAD,GL-WINNER
FSET TH-WAX-HEAD,FL-SEEN
FCLEAR TH-WAX-HEAD,FL-NODESC
FCLEAR TH-WAX-HEAD,FL-NOALL
ZERO? GL-P-MULT? /?CCL24
PRINTR "Taken."
?CCL24: ICALL RT-CYOU-MSG,STR?697,STR?698
ICALL2 RT-THEO-PRINT,TH-WAX-HEAD
PRINTR "."
?CCL21: CALL1 RT-TOUCH-VERB?
ZERO? STACK /FALSE
FSET TH-WAX-HEAD,FL-SEEN
ICALL2 RT-CTHEO-PRINT,TH-WAX-HEAD
PRINTI " wobbles slightly."
BTST CH-HOLMES-AUX1,1 /?CND27
PRINTC 32
ICALL2 RT-THEO-PRINT,CH-HOLMES
PRINTI " says, ""Even when he was alive, he didn't have his head screwed on right."""
BOR CH-HOLMES-AUX1,K-HOLMES-HEAD? >CH-HOLMES-AUX1
?CND27: CRLF
RTRUE
?CCL18: EQUAL? GL-PRSA,V?MELT,V?HEAT \?CCL30
ZERO? GL-NOW-PRSI? \?CCL30
FSET? GL-PRSI,FL-BURNABLE \?PRD35
FSET? GL-PRSI,FL-LIGHTED /?CTR29
?PRD35: EQUAL? GL-PRSI,TH-PIPE \?CCL30
FSET? TH-TOBACCO,FL-LIGHTED \?CCL30
?CTR29: ICALL1 RT-CTHEO-PRINT
PRINTI " softens, but "
ICALL1 RT-THEI-PRINT
PRINTR " does not put out enough heat to melt it."
?CCL30: EQUAL? GL-PRSA,V?MUNG,V?KILL,V?OPEN \FALSE
ICALL1 RT-CYOU-MSG
PRINTR "can't break into the head."
.FUNCT DESC-WAX-AX,CONTEXT
EQUAL? CONTEXT,K-M-SDESC \?CCL3
FSET? TH-WAX-AX,FL-BROKEN \?CCL6
PRINTI "melted axe"
RTRUE
?CCL6: PRINTI "axe"
RTRUE
?CCL3: EQUAL? CONTEXT,K-M-DESCFCN \FALSE
FSET? TH-WAX-AX,FL-BROKEN \FALSE
FIRST? TH-WAX-AX /FALSE
PRINTI "Looks like any other "
ICALL2 DPRINT,TH-WAX-AX
PRINTR "."
.FUNCT RT-GUARD-TAKE-ITEM,OBJ1,OBJ2,OBJ3,STR
ICALL2 RT-CTHEO-PRINT,CH-TUSSAUDS-GUARD
PRINTI " says, ""I'm sorry, but "
ICALL2 RT-THEO-PRINT,OBJ1
ZERO? OBJ2 /?CCL3
ZERO? OBJ3 /?CCL3
PRINTI ", "
ICALL2 RT-THEO-PRINT,OBJ2
PRINTI " and "
ICALL2 RT-THEO-PRINT,OBJ3
PRINTI " are"
SET 'STR,STR?806
JUMP ?CND1
?CCL3: ZERO? OBJ2 /?CCL7
PRINTI " and "
ICALL2 RT-THEO-PRINT,OBJ2
PRINTI " are"
SET 'STR,STR?806
JUMP ?CND1
?CCL7: PRINTI " is"
SET 'STR,STR?807
?CND1: PRINTI " not to be removed."" He takes "
PRINT STR
PRINTI " and returns "
PRINT STR
PRINTI " to the proper place."
CRLF
CRLF
RTRUE
.FUNCT RT-GUARD-STOP-ENTRANCE,OBJ,WHO
CALL1 RT-WHO-SAYS? >WHO
ICALL SOUNDS,S-BARK,S-START,8,4
ICALL2 RT-CTHEO-PRINT,CH-MATCH-SNIFFING-DOG
PRINTI " barks loudly and "
ICALL2 RT-THEO-PRINT,CH-TUSSAUDS-GUARD
PRINTI " says, ""Seeing as how it's you, "
EQUAL? WHO,CH-HOLMES \?CCL3
PRINTI "Mr Holmes"
JUMP ?CND1
?CCL3: PRINTI "Doctor Watson"
?CND1: PRINTI ", I don't mind letting you in. But as you know we are very afraid of fire here, so we have trained this dog to detect matches or open flames. I'm afraid I can't allow you"
EQUAL? WHO,CH-HOLMES,CH-WIGGINS \?CND4
PRINTI " or your companion"
?CND4: PRINTI " to enter until "
ICALL2 RT-THEO-PRINT,OBJ
PRINTR " has been discarded."""
.FUNCT RT-EX-RM-EXIT-TUSSAUDS,IN1,IN2,IN3,TORCH
EQUAL? GL-PRSO,P?SOUTH,P?OUT \FALSE
EQUAL? GL-PLACE-CUR,RM-MADAME-TUSSAUDS \FALSE
CALL RT-META-IN?,TH-TORCH,GL-WINNER
ZERO? STACK \?CCL8
CALL RT-META-IN?,TH-TORCH,GL-PUPPY
ZERO? STACK \?CCL8
SET 'IN1,0
JUMP ?CND6
?CCL8: SET 'TORCH,TH-TORCH
SET 'IN1,1
?CND6: CALL RT-META-IN?,TH-WAX-HEAD,GL-WINNER >IN2
ZERO? IN2 \?PEN11
CALL RT-META-IN?,TH-WAX-HEAD,GL-PUPPY >IN2
?PEN11: CALL RT-META-IN?,TH-WAX-AX,GL-WINNER >IN3
ZERO? IN3 \?PEN14
CALL RT-META-IN?,TH-WAX-AX,GL-PUPPY >IN3
?PEN14: ZERO? IN1 /?CCL19
ZERO? IN2 /?CCL19
ZERO? IN3 /?CCL19
ICALL RT-GUARD-TAKE-ITEM,TH-TORCH,TH-WAX-HEAD,TH-WAX-AX
JUMP ?CND17
?CCL19: ZERO? IN1 /?CCL24
ZERO? IN2 /?CCL24
ICALL RT-GUARD-TAKE-ITEM,TH-TORCH,TH-WAX-HEAD
JUMP ?CND17
?CCL24: ZERO? IN1 /?CCL28
ZERO? IN3 /?CCL28
ICALL RT-GUARD-TAKE-ITEM,TH-TORCH,TH-WAX-AX
JUMP ?CND17
?CCL28: ZERO? IN2 /?CCL32
ZERO? IN3 /?CCL32
ICALL RT-GUARD-TAKE-ITEM,TH-WAX-HEAD,TH-WAX-AX
JUMP ?CND17
?CCL32: ZERO? IN1 /?CCL36
ICALL2 RT-GUARD-TAKE-ITEM,TH-TORCH
JUMP ?CND17
?CCL36: ZERO? IN2 /?CCL38
ICALL2 RT-GUARD-TAKE-ITEM,TH-WAX-HEAD
JUMP ?CND17
?CCL38: ZERO? IN3 /?CND17
ICALL2 RT-GUARD-TAKE-ITEM,TH-WAX-AX
?CND17: ZERO? IN1 /?CND40
MOVE TORCH,TH-FAWKES-STATUE
FSET TORCH,FL-NODESC
FSET? TORCH,FL-LIGHTED \?CND40
ICALL2 RT-ALARM-CLR,RT-I-TORCH-OUT
ICALL1 RT-I-TORCH-OUT
FSET TH-TORCH,FL-NODESC
?CND40: ZERO? IN2 /?CND44
MOVE TH-WAX-HEAD,TH-CHARLES-STATUE
FSET TH-WAX-HEAD,FL-NODESC
?CND44: ZERO? IN3 /?CND46
MOVE TH-WAX-AX,TH-CHARLES-STATUE
FSET TH-WAX-AX,FL-NODESC
?CND46: RETURN RM-MARYLEBONE-RD
.FUNCT RT-EX-RM-MATCH-SNIFFING-DOG,OBJ,FLAME?,FIRST,LAMP?,MATCH?
SET 'FIRST,TRUE-VALUE
EQUAL? GL-PRSO,P?NORTH,P?IN \FALSE
EQUAL? GL-PLACE-CUR,RM-MARYLEBONE-RD \FALSE
?PRG6: FIRST? GL-WINNER >OBJ /?PRG9
?PRG9: ZERO? OBJ /?REP10
FSET? OBJ,FL-BURNABLE \?CND11
FSET? OBJ,FL-LIGHTED \?CND11
EQUAL? OBJ,TH-TOBACCO /?CND11
SET 'FLAME?,OBJ
?REP10: ZERO? FLAME? \?REP7
ZERO? FIRST /?REP7
ZERO? GL-PUPPY /?REP7
FIRST? GL-PUPPY >OBJ /?BOGUS25
?BOGUS25: SET 'FIRST,FALSE-VALUE
JUMP ?PRG6
?CND11: NEXT? OBJ >OBJ /?PRG9
JUMP ?PRG9
?REP7: CALL RT-META-IN?,TH-MATCH,CH-PLAYER
ZERO? STACK \?PRD32
CALL RT-META-IN?,TH-MATCH,GL-PUPPY
ZERO? STACK /?PST31
?PRD32: FSET? TH-MATCH,FL-BURNABLE /?PST36
FSET? TH-MATCH,FL-LIGHTED /?PRD38
PUSH 0
JUMP ?PRD39
?PRD38: PUSH 1
?PRD39: SET 'MATCH?,STACK
JUMP ?PEN30
?PST36: SET 'MATCH?,1
JUMP ?PEN30
?PST31: SET 'MATCH?,0
?PEN30: ZERO? MATCH? \?CCL27
CALL RT-META-IN?,TH-LAMP,CH-PLAYER >LAMP?
ZERO? LAMP? \?PEN41
CALL RT-META-IN?,TH-LAMP,GL-PUPPY >LAMP?
?PEN41: ZERO? LAMP? \?CCL27
ZERO? FLAME? /?CND26
?CCL27: ZERO? FLAME? /?CCL46
SET 'OBJ,FLAME?
JUMP ?CND44
?CCL46: ZERO? LAMP? /?CCL48
SET 'OBJ,TH-LAMP
JUMP ?CND44
?CCL48: ZERO? MATCH? \?CCL50
SET 'OBJ,0
JUMP ?CND44
?CCL50: SET 'OBJ,TH-MATCH
?CND44: ICALL2 RT-GUARD-STOP-ENTRANCE,OBJ
RFALSE
?CND26: FSET? TH-WAX-HEAD,FL-BROKEN /?CCL52
FSET? TH-WAX-AX,FL-BROKEN /?CCL52
RETURN RM-MADAME-TUSSAUDS
?CCL52: PRINTI "The guard blocks your path and says, ""Oh no you don't, laddie. When I let you in earlier you made a proper mess of my museum. I won't let you do that again."" After you promise to pay for the damage and plead with him for a few moments, he finally steps aside."
CRLF
CRLF
RETURN RM-MADAME-TUSSAUDS
.FUNCT RT-PUT-OUT,THING
FSET? THING,FL-BURNABLE \FALSE
FSET? THING,FL-LIGHTED \FALSE
EQUAL? THING,TH-MATCH \?CCL7
ICALL2 RT-ALARM-CLR,RT-I-MATCH-OUT
CALL1 RT-I-MATCH-OUT
RSTACK
?CCL7: EQUAL? THING,TH-PIPE \?CCL9
ICALL2 RT-ALARM-CLR,RT-I-PIPE-OUT
CALL1 RT-I-PIPE-OUT
RSTACK
?CCL9: EQUAL? THING,TH-TORCH \?CCL11
ICALL2 RT-ALARM-CLR,RT-I-TORCH-OUT
CALL1 RT-I-TORCH-OUT
RSTACK
?CCL11: EQUAL? THING,TH-NEWSPAPER \?CCL13
ICALL2 RT-ALARM-CLR,RT-I-NEWSPAPER-OUT
CALL1 RT-I-NEWSPAPER-OUT
RSTACK
?CCL13: EQUAL? THING,TH-WESTMINSTER-CLUE \?CCL15
ICALL2 RT-ALARM-CLR,RT-I-CLUE-OUT
CALL1 RT-I-CLUE-OUT
RSTACK
?CCL15: EQUAL? THING,TH-MAIL \?CCL17
ICALL2 RT-ALARM-CLR,RT-I-MAIL-OUT
CALL1 RT-I-MAIL-OUT
RSTACK
?CCL17: EQUAL? THING,TH-MATCHBOOK \?CCL19
ICALL2 RT-ALARM-CLR,RT-I-MATCHBOOK-OUT
CALL1 RT-I-MATCHBOOK-OUT
RSTACK
?CCL19: REMOVE THING
FCLEAR THING,FL-WORN
FCLEAR THING,FL-LIGHTED
FCLEAR THING,FL-BURNABLE
ICALL2 RT-CTHEO-PRINT,THING
PRINTI " burn"
ICALL2 RT-S-NOS-MSG,THING
PRINTR " up and disappears."
.FUNCT RT-I-MATCH-OUT,RESULT
CALL2 RT-VISIBLE?,TH-MATCH
ZERO? STACK /?CND1
CRLF
ICALL2 RT-CTHEO-PRINT,TH-MATCH
PRINTI " flickers and dies."
CRLF
SET 'RESULT,TRUE-VALUE
?CND1: FCLEAR TH-MATCH,FL-LIGHTED
ICALL1 BURN-MATCH-OUT
RETURN RESULT
.FUNCT BURN-MATCH-OUT
FCLEAR TH-MATCH,FL-BURNABLE
FSET TH-MATCH,FL-BROKEN
GETPT TH-MATCH,P?ADJECTIVE
PUT STACK,0,W?BURNT
RTRUE
.FUNCT RT-I-PIPE-OUT,RESULT
CALL2 RT-VISIBLE?,TH-TOBACCO
ZERO? STACK /?CND1
CRLF
ICALL2 RT-CTHEO-PRINT,TH-PIPE
PRINTI " has gone out."
CRLF
?CND1: FCLEAR TH-TOBACCO,FL-LIGHTED
FCLEAR TH-TOBACCO,FL-BURNABLE
REMOVE TH-TOBACCO
RETURN RESULT
.FUNCT RT-I-TORCH-OUT,RESULT
CALL2 RT-VISIBLE?,TH-TORCH
ZERO? STACK /?CND1
CRLF
ICALL2 RT-CTHEO-PRINT,TH-TORCH
PRINTI " sputters and dies."
CRLF
SET 'RESULT,TRUE-VALUE
?CND1: ICALL2 CLEAR-ALL-FLAGS,TH-TORCH
GETPT TH-TORCH,P?ADJECTIVE
PUT STACK,0,W?BURNT
FSET TH-TORCH,FL-TAKEABLE
FSET TH-TORCH,FL-BROKEN
RETURN RESULT
.FUNCT RT-I-NEWSPAPER-OUT,RESULT
CALL2 RT-VISIBLE?,TH-NEWSPAPER
ZERO? STACK /?CND1
CRLF
ICALL2 RT-CTHEO-PRINT,TH-NEWSPAPER
PRINTI " disappears into a cloud of fine ash, which itself disappears."
CRLF
SET 'RESULT,TRUE-VALUE
?CND1: FCLEAR TH-NEWSPAPER,FL-LIGHTED
FCLEAR TH-NEWSPAPER,FL-BURNABLE
REMOVE TH-NEWSPAPER
RETURN RESULT
.FUNCT RT-I-CLUE-OUT,RESULT
CALL2 RT-VISIBLE?,TH-WESTMINSTER-CLUE
ZERO? STACK /?CND1
CRLF
ICALL2 RT-CTHEO-PRINT,TH-WESTMINSTER-CLUE
PRINTI " disappears in a puff of oily black smoke."
CRLF
SET 'RESULT,TRUE-VALUE
?CND1: FCLEAR TH-WESTMINSTER-CLUE,FL-LIGHTED
FCLEAR TH-WESTMINSTER-CLUE,FL-BURNABLE
REMOVE TH-WESTMINSTER-CLUE
RETURN RESULT
.FUNCT RT-I-MAIL-OUT,RESULT
CALL2 RT-VISIBLE?,TH-MAIL
ZERO? STACK /?CND1
CRLF
ICALL2 RT-CTHEO-PRINT,TH-MAIL
PRINTI " disappears in a flash of light."
CRLF
SET 'RESULT,TRUE-VALUE
?CND1: FCLEAR TH-MAIL,FL-LIGHTED
FCLEAR TH-MAIL,FL-BURNABLE
REMOVE TH-MAIL
RETURN RESULT
.FUNCT RT-I-MATCHBOOK-OUT,RESULT
CALL2 RT-VISIBLE?,TH-MATCHBOOK
ZERO? STACK /?CND1
CRLF
ICALL2 RT-CTHEO-PRINT,TH-MATCHBOOK
PRINTI " burns up and disappears."
CRLF
SET 'RESULT,TRUE-VALUE
?CND1: FCLEAR TH-MATCHBOOK,FL-LIGHTED
FCLEAR TH-MATCHBOOK,FL-BURNABLE
REMOVE TH-MATCHBOOK
RETURN RESULT
.FUNCT PRE-LIGHT-WITH
EQUAL? GL-PRSO,TH-MATCH,TH-TOBACCO /FALSE
IN? GL-PRSO,GL-WINNER /FALSE
ICALL1 RT-CYOU-MSG
ICALL RT-WOULD-HAVE-TO-MSG,STR?738,GL-PRSO
PRINTI " to light "
ICALL2 RT-SAY-HIM-HER-THEM-IT-MSG,GL-PRSO
PRINTR "."
.FUNCT RT-GN-WAX,TBL,LEN
PUTP PSEUDO-OBJECT,P?ACTION,RT-DF-LG-WAX-STATUES
SET 'LAST-PSEUDO-LOC,GL-PLACE-CUR
RETURN PSEUDO-OBJECT
.ENDI