aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhistoricalsource <historicalsoftware@textfiles.com>2019-04-14 00:37:50 -0400
committerhistoricalsource <historicalsoftware@textfiles.com>2019-04-14 00:37:50 -0400
commit54d2e05fccf7614a50184895f72ddcab6e818dd6 (patch)
tree40b762df41f5224b930d381b67970d4ab219582a
downloadplunderedhearts-54d2e05fccf7614a50184895f72ddcab6e818dd6.tar.gz
plunderedhearts-54d2e05fccf7614a50184895f72ddcab6e818dd6.tar.bz2
plunderedhearts-54d2e05fccf7614a50184895f72ddcab6e818dd6.zip
Revision 26 (Original Source)
-rw-r--r--README.md1
-rw-r--r--clothes.zap788
-rw-r--r--clothes.zil1079
-rw-r--r--extras.zap1966
-rw-r--r--extras.zil2303
-rw-r--r--globals.zap1807
-rw-r--r--globals.zil2275
-rw-r--r--hero.zap706
-rw-r--r--hero.zil916
-rw-r--r--island.zap2503
-rw-r--r--island.zil3501
-rw-r--r--misc.zap562
-rw-r--r--misc.zil775
-rw-r--r--parser.zap1871
-rw-r--r--parser.zil1876
-rw-r--r--r1.errors29
-rw-r--r--r1.zap50
-rw-r--r--r1.zil42
-rw-r--r--r1.zipbin0 -> 128962 bytes
-rw-r--r--r1dat.zap13736
-rw-r--r--r1freq.xzap200
-rw-r--r--r1pur.zap8
-rw-r--r--r1str.zap413
-rw-r--r--ship.zap2148
-rw-r--r--ship.zil3017
-rw-r--r--syntax.zil893
-rw-r--r--verbs.zap3441
-rw-r--r--verbs.zil3699
28 files changed, 50605 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..dc6e6a9
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# plunderedhearts
diff --git a/clothes.zap b/clothes.zap
new file mode 100644
index 0000000..79e7008
--- /dev/null
+++ b/clothes.zap
@@ -0,0 +1,788 @@
+
+
+ .FUNCT PILE-OF-CLOTHES-F
+ EQUAL? PRSA,V?PUT-ON,V?EXAMINE,V?TAKE /?CCL3
+ EQUAL? PRSA,V?WEAR \FALSE
+?CCL3: EQUAL? HERE,LANDING,CAPT-QUARTERS \?CCL8
+ CALL CANT-REACH,PRSO
+ RSTACK
+?CCL8: CALL ITAKE,FALSE-VALUE
+ EQUAL? STACK,M-FATAL,FALSE-VALUE /FALSE
+ REMOVE PILE-OF-CLOTHES
+ FSET PILE-OF-CLOTHES,TOUCHBIT
+ MOVE SHIRT,PROTAGONIST
+ MOVE PANTS,PROTAGONIST
+ FCLEAR SHIRT,NDESCBIT
+ FCLEAR PANTS,NDESCBIT
+ FSET SHIRT,TOUCHBIT
+ FSET PANTS,TOUCHBIT
+ INC 'SCORE
+ EQUAL? PRSA,V?EXAMINE \?CCL13
+ PRINTI "To get a better look, y"
+ JUMP ?CND11
+?CCL13: PRINTC 89
+?CND11: PRINTI "ou pick up"
+ CALL TPRINT,PILE-OF-CLOTHES
+ PRINTI ". It separates into a pair of "
+ PRINTD PANTS
+ PRINTI " and"
+ CALL ARPRINT,SHIRT
+ RSTACK
+
+
+ .FUNCT GEN-CLOTHES,?TMP1
+ GET P-NAMW,0 >?TMP1
+ GET P-NAMW,1
+ EQUAL? W?CLOTHES,?TMP1,STACK \?CCL3
+ EQUAL? HERE,SLEEPING-CUPBOARD \?CCL6
+ FSET? SHIRT,TOUCHBIT /?CCL6
+ FSET? PANTS,TOUCHBIT /?CCL6
+ RETURN PILE-OF-CLOTHES
+?CCL6: EQUAL? PRSA,V?TAKE-OFF,V?REMOVE \FALSE
+ CALL PRE-DOFF
+ ZERO? STACK /?CCL14
+ RETURN NOT-HERE-OBJECT
+?CCL14: CALL REMOVE-CLOTHES,TRUE-VALUE
+ RETURN NOT-HERE-OBJECT
+?CCL3: GET P-NAMW,0 >?TMP1
+ GET P-NAMW,1
+ EQUAL? W?DRESS,?TMP1,STACK \FALSE
+ EQUAL? PRSA,V?TAKE-OFF,V?REMOVE \?CCL19
+ CALL PRE-DOFF
+ ZERO? STACK /?CCL22
+ RETURN NOT-HERE-OBJECT
+?CCL22: CALL REMOVE-CLOTHES,TRUE-VALUE
+ RETURN NOT-HERE-OBJECT
+?CCL19: EQUAL? PRSA,V?DROP \FALSE
+ FSET? GOWN,WORNBIT \?CCL27
+ CALL HELD?,DRESS
+ ZERO? STACK /?CCL27
+ PRINTC 91
+ PRINTD DRESS
+ PRINTC 93
+ CRLF
+ RETURN DRESS
+?CCL27: FSET? DRESS,WORNBIT \?CCL31
+ CALL HELD?,GOWN
+ ZERO? STACK /?CCL31
+ PRINTC 91
+ PRINTD GOWN
+ PRINTC 93
+ CRLF
+ RETURN GOWN
+?CCL31: CALL DO-FIRST,STR?296
+ RETURN NOT-HERE-OBJECT
+
+
+ .FUNCT GARMENT-F
+ EQUAL? PRSA,V?EXAMINE \?CCL3
+ EQUAL? PRSO,DRESS \?CCL6
+ ZERO? WET-DRESS /?CCL9
+ CALL WET-DESC,DRESS
+ RTRUE
+?CCL9: PRINTI "It is your favorite old frock, looking rather bedraggled without its hoops"
+ FSET? DRESS,EVERYBIT /?CND10
+ FSET DRESS,EVERYBIT
+ PRINTI ", which you hadn't time to put on during the pirate attack"
+?CND10: PRINTI ". "
+ FSET? DRESS,MUNGBIT \?CCL14
+ PRINTI "There is a tear out of the skirt"
+ JUMP ?CND12
+?CCL14: PRINTI "The worn fabric of the skirt often catches on things, tearing"
+?CND12: PRINT PCR
+ RTRUE
+?CCL6: EQUAL? PRSO,GOWN \?CCL16
+ PRINTI "Of cream silk, heavily embroidered on the stiffened skirt and stomacher,"
+ CALL TPRINT,GOWN
+ PRINTI " is a work of art"
+ PRINT PCR
+ RTRUE
+?CCL16: EQUAL? PRSO,SHIRT \?CCL18
+ CALL CTPRINT,SHIRT
+ PRINTI " is clean and not too big"
+ FSET? SHIRT,MUNGBIT \?CND19
+ PRINT TEAR
+?CND19: PRINT PCR
+ RTRUE
+?CCL18: CALL CTPRINT,PANTS
+ PRINTR " are about your size."
+?CCL3: EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-INSIDE \?CCL22
+ FSET? PRSO,WORNBIT \?CCL22
+ PRINTI "Just"
+ CALL APRINT,CHEMISE
+ PRINTI ", and a couple fleas"
+ PRINT PCR
+ RTRUE
+?CCL22: EQUAL? PRSA,V?WEAR \?CCL26
+ EQUAL? PRSO,GOWN,DRESS \?PRD31
+ FSET? SHIRT,WORNBIT /?CTR28
+ FSET? PANTS,WORNBIT /?CTR28
+?PRD31: EQUAL? PRSO,PANTS,SHIRT \?CCL29
+ FSET? DRESS,WORNBIT /?CTR28
+ FSET? GOWN,WORNBIT \?CCL29
+?CTR28: CALL CTPRINT,PRSO
+ PRINTI " doesn't fit over what you are already wearing"
+ PRINT PCR
+ RTRUE
+?CCL29: ZERO? WET-DRESS /?CCL41
+ EQUAL? PRSO,DRESS \?CCL41
+ PRINTR "The clammy cotton makes it too uncomfortable to wear."
+?CCL41: FSET PRSO,WORNBIT
+ MOVE PRSO,PROTAGONIST
+ EQUAL? PRSO,SHIRT,PANTS \?CND44
+ IN? PILE-OF-CLOTHES,SLEEPING-CUPBOARD \?CND44
+ FSET PILE-OF-CLOTHES,TOUCHBIT
+ REMOVE PILE-OF-CLOTHES
+ INC 'SCORE
+?CND44: EQUAL? PRSO,PANTS \?CCL50
+ PRINTI "You tuck"
+ CALL TPRINT,CHEMISE
+ FSET? SHIRT,WORNBIT \?CND51
+ SET 'BOY-DRESS?,TRUE-VALUE
+ FSET CHEMISE,EVERYBIT
+ PRINTI " and"
+ CALL TPRINT,SHIRT
+?CND51: PRINTI " into the pants. You look a little fat, but now you can move freely"
+ PRINT PCR
+ RTRUE
+?CCL50: EQUAL? PRSO,SHIRT \?CCL54
+ FSET? PANTS,WORNBIT \?CND55
+ FSET CHEMISE,EVERYBIT
+ SET 'BOY-DRESS?,TRUE-VALUE
+?CND55: PRINTI "It fits loosely, masking your figure"
+ PRINT PCR
+ RTRUE
+?CCL54: FSET CHEMISE,EVERYBIT
+ ZERO? GOWN-POINT \?CCL59
+ EQUAL? PRSO,GOWN \?CCL59
+ SET 'GOWN-POINT,TRUE-VALUE
+ INC 'SCORE
+ CALL CTPRINT,GOWN
+ PRINTI " fits perfectly, the creamy silk bringing a glow to your cheeks. You comb your hair with your fingers and bite your lips to make them red"
+ PRINT PCR
+ RTRUE
+?CCL59: PRINTI "You don"
+ CALL TRPRINT,PRSO
+ RSTACK
+?CCL26: EQUAL? PRSA,V?REMOVE,V?TAKE-OFF \?CCL63
+ FSET? PRSO,WORNBIT \?CCL63
+ EQUAL? PRSO,DRESS \?CCL68
+ FCLEAR PRSO,WORNBIT
+ FCLEAR CHEMISE,EVERYBIT
+ PRINTI "You take off"
+ CALL TPRINT,DRESS
+ PRINT PCR
+ RTRUE
+?CCL68: EQUAL? PRSO,PANTS,SHIRT \?CND69
+ SET 'BOY-DRESS?,FALSE-VALUE
+?CND69: FCLEAR PRSO,WORNBIT
+ FCLEAR CHEMISE,EVERYBIT
+ PRINTI "You remove"
+ CALL TPRINT-PRSO
+ PRINTI ", exposing your "
+ EQUAL? PRSO,PANTS \?CCL73
+ PRINTI "ankles"
+ JUMP ?CND71
+?CCL73: EQUAL? PRSO,SHIRT \?CCL75
+ PRINTI "elbows"
+ JUMP ?CND71
+?CCL75: PRINTD CHEMISE
+?CND71: PRINT PCR
+ RTRUE
+?CCL63: EQUAL? PRSA,V?RIP /?CTR76
+ EQUAL? PRSA,V?CUT \?CCL77
+ CALL HELD?,DAGGER
+ ZERO? STACK /?CCL77
+?CTR76: EQUAL? PRSO,DRESS \?CCL84
+ LOC RAG
+ ZERO? STACK \?CCL87
+ MOVE RAG,PROTAGONIST
+ EQUAL? WET-DRESS,WATER \?CCL90
+ SET 'WET-RAG,WATER
+ JUMP ?CND88
+?CCL90: EQUAL? WET-DRESS,RUM \?CCL92
+ SET 'WET-RAG,RUM
+ JUMP ?CND88
+?CCL92: SET 'WET-RAG,FALSE-VALUE
+?CND88: FSET RAG,TOUCHBIT
+ FSET? DRESS,MUNGBIT /?CND93
+ FSET DRESS,MUNGBIT
+?CND93: PRINTI "You "
+ EQUAL? PRSA,V?CUT \?CCL97
+ MOVE DAGGER,PROTAGONIST
+ PRINTI "cut"
+ JUMP ?CND95
+?CCL97: PRINTI "rip"
+?CND95: PRINTI " a large rag out of"
+ CALL TRPRINT,DRESS
+ RSTACK
+?CCL87: CALL HELD?,RAG
+ ZERO? STACK \?CCL99
+ PRINTI "There already is a rag around here somewhere"
+ PRINT PCR
+ RTRUE
+?CCL99: PRINT YOU-HAVE-ALREADY
+ CALL ARPRINT,RAG
+ RSTACK
+?CCL84: EQUAL? PRSO,GOWN \?CCL101
+ CALL CTPRINT,GOWN
+ PRINTI " is too fine to ruin"
+ PRINT PCR
+ RTRUE
+?CCL101: PRINTI "The fabric is too tightly woven"
+ PRINT PCR
+ RTRUE
+?CCL77: EQUAL? PRSA,V?TAKE \FALSE
+ EQUAL? PRSO,PANTS,SHIRT \FALSE
+ IN? PILE-OF-CLOTHES,HERE \FALSE
+ CALL PERFORM,V?TAKE,PILE-OF-CLOTHES
+ RTRUE
+
+
+ .FUNCT RAG-F
+ EQUAL? PRSA,V?SOAK \?CCL3
+ EQUAL? HERE,BY-SHIP,LAGOON,SHALLOWS /?CTR5
+ EQUAL? HERE,BEACH,MAIN-DECK \?CCL6
+?CTR5: CALL DIP-DRESS
+ RSTACK
+?CCL6: CALL PROPOSE
+ RSTACK
+?CCL3: CALL ADJ-USED,A?WET
+ ZERO? STACK /?CCL10
+ ZERO? WET-RAG \?CCL10
+ PRINT YOU-CANT-SEE-ANY
+ PRINTI "wet rag here"
+ PRINT PCR
+ RTRUE
+?CCL10: EQUAL? PRSA,V?EXAMINE \?CCL14
+ ZERO? WET-RAG \?CCL17
+ PRINTI "It is a fairly hefty scrap of fabric"
+ PRINT PCR
+ RTRUE
+?CCL17: CALL WET-DESC,RAG
+ RSTACK
+?CCL14: EQUAL? PRSA,V?RIP \?CCL19
+ CALL WASTES
+ RSTACK
+?CCL19: EQUAL? PRSA,V?TIE \?CCL21
+ PRINTI "It won't stay tied"
+ PRINT PCR
+ RTRUE
+?CCL21: EQUAL? PRSA,V?PUT \?CCL23
+ EQUAL? PRSI,GATE,FENCE \?CCL26
+ CALL WASTES
+ RSTACK
+?CCL26: EQUAL? PRSI,FUSE \FALSE
+ CALL PROPOSE
+ RSTACK
+?CCL23: EQUAL? PRSA,V?THROW \FALSE
+ EQUAL? PRSI,FUSE \FALSE
+ CALL PERFORM,V?THROW-OVER,RAG,FENCE
+ RTRUE
+
+
+ .FUNCT WET-DESC,OBJ
+ PRINTI "The "
+ PRINTD OBJ
+ PRINTI " is soaked and dripping with "
+ EQUAL? OBJ,RAG \?PRD5
+ EQUAL? WET-RAG,RUM /?CTR2
+?PRD5: EQUAL? OBJ,DRESS \?CCL3
+ EQUAL? WET-DRESS,RUM \?CCL3
+?CTR2: PRINTI "rum"
+ JUMP ?CND1
+?CCL3: EQUAL? OBJ,RAG \?PRD12
+ EQUAL? WET-RAG,WATER /?CCL10
+?PRD12: EQUAL? OBJ,DRESS \?CND1
+ EQUAL? WET-DRESS,WATER \?CND1
+?CCL10: PRINTI "water"
+?CND1: PRINT PCR
+ RTRUE
+
+
+ .FUNCT CHEMISE-F
+ EQUAL? PRSA,V?EXAMINE \?CCL3
+ EQUAL? PRSO,CHEMISE \?CCL6
+ FSET? CHEMISE,EVERYBIT \?CCL9
+ PRINTI "It's covered by other clothes"
+ PRINT PCR
+ RTRUE
+?CCL9: CALL CTPRINT,CHEMISE
+ PRINTI ", kneelength and sleeveless, clings damply to your legs and torso"
+ FSET? CHEMISE,MUNGBIT \?CND10
+ PRINT TEAR
+?CND10: PRINT PCR
+ RTRUE
+?CCL6: EQUAL? PRSO,SHOES \FALSE
+ PRINTI "They are dainty yet practical kidskin shoes"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-INSIDE \?CCL15
+ EQUAL? PRSO,CHEMISE \?CCL18
+ PRINTI "Just you and your "
+ PRINTD UNMENTIONABLES
+ PRINT PCR
+ RTRUE
+?CCL18: PRINTI "Your feet are in"
+ CALL TRPRINT,SHOES
+ RSTACK
+?CCL15: EQUAL? PRSA,V?REMOVE,V?TAKE-OFF \?CCL20
+ PRINTI "But"
+ EQUAL? PRSO,SHOES \?CCL23
+ CALL TPRINT-PRSO
+ PRINTI " are so comfortable"
+ JUMP ?CND21
+?CCL23: PRINTI " that wouldn't be decent"
+?CND21: PRINTR "!"
+?CCL20: EQUAL? PRSA,V?CUT,V?RIP \FALSE
+ PRINT YOU-CANT
+ PRINTI "bring yourself to ruin"
+ CALL TRPRINT,CHEMISE
+ RSTACK
+
+
+ .FUNCT GARTER-F
+ EQUAL? PRSA,V?WEAR \?CCL3
+ ZERO? MUZZLED /?CCL6
+ CALL PERFORM,V?TAKE,GARTER
+ RTRUE
+?CCL6: FSET? PANTS,WORNBIT \?CCL8
+ PRINTI "One doesn't wear"
+ CALL APRINT,GARTER
+ PRINTI " over "
+ PRINTD PANTS
+ PRINTR "!"
+?CCL8: FSET GARTER,WORNBIT
+ MOVE GARTER,PROTAGONIST
+ PRINTI "You slide"
+ CALL TPRINT,GARTER
+ PRINTI " up around your thigh"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?TAKE,V?REMOVE \?CCL10
+ ZERO? MUZZLED /?CCL10
+ ZERO? CROC-SLEEP \?CCL15
+ PRINTI "The reptile surges forward as you remove"
+ CALL TPRINT,GARTER
+ CALL JIGS-UP,STR?329
+ RSTACK
+?CCL15: SET 'MUZZLED,FALSE-VALUE
+ FCLEAR GARTER,TRYTAKEBIT
+ FSET GARTER,TAKEBIT
+ MOVE GARTER,PROTAGONIST
+ PRINTR "You slip it off the scaly snout."
+?CCL10: EQUAL? PRSA,V?TAKE \?CCL17
+ FSET? GARTER,TOUCHBIT /?CCL20
+ EQUAL? HERE,KITCHEN \?CCL20
+ CALL ITAKE,FALSE-VALUE
+ EQUAL? STACK,M-FATAL,FALSE-VALUE /?CCL20
+ PRINTI "Taken.
+ Lucy kisses "
+ PRINTD HEAD
+ PRINTI " and returns to the fire, humming"
+ PRINT PCR
+ RTRUE
+?CCL20: IN? GARTER,DAD \FALSE
+ MOVE GARTER,PROTAGONIST
+ PRINTR """Take it, dear,"" Papa says."
+?CCL17: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL27
+ EQUAL? PRSI,GARTER \?CCL27
+ IN? GARTER,PROTAGONIST /?CCL32
+ PRINT YNH
+ CALL TRPRINT,GARTER
+ RSTACK
+?CCL32: EQUAL? P-PRSA-WORD,W?THROW \?CCL34
+ EQUAL? PRSO,STONE \?CCL34
+ CALL PERFORM,V?THROW,STONE,GARTER
+ RTRUE
+?CCL34: EQUAL? PRSO,STONE \?CCL38
+ FSET? GARTER,WORNBIT \?CCL41
+ PRINTI "Not while you're wearing"
+ CALL TRPRINT,GARTER
+ RSTACK
+?CCL41: MOVE STONE,GARTER
+ ZERO? PENULTIM-POINT \?CND42
+ SET 'PENULTIM-POINT,TRUE-VALUE
+ INC 'SCORE
+?CND42: PRINTI "You slip"
+ CALL TPRINT,STONE
+ PRINTI " into"
+ CALL TRPRINT,GARTER
+ RSTACK
+?CCL38: PRINTI "It falls through"
+ CALL TRPRINT,GARTER
+ RSTACK
+?CCL27: EQUAL? PRSA,V?KILL \?CCL45
+ FSET? PRSO,ACTORBIT /?CTR44
+ EQUAL? PRSO,CROC \?CCL45
+?CTR44: CALL PROPOSE
+ RSTACK
+?CCL45: EQUAL? PRSA,V?SHOOT,V?THROW \?CCL51
+ IN? STONE,GARTER \?CCL54
+ ZERO? PRSI \?CCL57
+ CALL PERFORM,V?SHOOT,STONE
+ RTRUE
+?CCL57: CALL WASTES
+ RSTACK
+?CCL54: ZERO? PRSI \?CCL60
+ EQUAL? PRSA,V?THROW \?CCL60
+ MOVE GARTER,HERE
+ PRINTR "Thrown."
+?CCL60: EQUAL? PRSO,STONE \FALSE
+ CALL DO-FIRST,STR?330,GARTER
+ RSTACK
+?CCL51: EQUAL? PRSA,V?SSHOOT \?CCL66
+ EQUAL? PRSO,GARTER \?CCL66
+ CALL HELD?,STONE
+ ZERO? STACK /?CCL66
+ CALL PERFORM,V?SHOOT,PRSI,STONE
+ RTRUE
+?CCL66: EQUAL? PRSA,V?EXAMINE \FALSE
+ CALL CTPRINT,GARTER
+ PRINTI " is "
+ ZERO? MUZZLED /?CCL74
+ PRINTI "stretched taut around the jaws of"
+ CALL TPRINT,CROC
+ PRINT PCR
+ RTRUE
+?CCL74: PRINTI "made of abnormally strong, red, stretchy lace"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT UNMENTIONABLES-F
+ PRINTI "Shh! Why do you think they're called "
+ PRINTD UNMENTIONABLES
+ PRINTR "?"
+
+
+ .FUNCT RETICULE-F
+ EQUAL? PRSA,V?PUT,V?REMOVE,V?DROP /?PRD5
+ EQUAL? PRSA,V?PUT-UNDER,V?PUT-THROUGH,V?PUT-ON /?PRD5
+ EQUAL? PRSA,V?THROW-TO,V?THROW-AT,V?THROW /?PRD5
+ EQUAL? PRSA,V?GIVE \?CCL3
+?PRD5: EQUAL? PRSO,RETICULE \?CCL3
+ PRINTI "A lady is never without her reticule"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?PUT \?CCL11
+ EQUAL? PRSO,RAPIER,COFFER \?CCL11
+ CALL CTPRINT,PRSO
+ PRINTI " won't fit in"
+ CALL TRPRINT,RETICULE
+ RSTACK
+?CCL11: EQUAL? PRSA,V?EXAMINE \FALSE
+ PRINTI "You and Mama made the little drawstring bag a few months before she passed on. It's amazing how much it can hold"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT BANKNOTE-F
+ EQUAL? PRSA,V?EXAMINE \?CCL3
+ PRINTI "This is"
+ CALL TPRINT,BANKNOTE
+ CALL IN-PACKAGE
+ RSTACK
+?CCL3: EQUAL? PRSA,V?POINT,V?WAVE \FALSE
+ IN? BUTLER,HERE \FALSE
+ FSET? BUTLER,DEADBIT /FALSE
+ CALL BRIBE-BUTLER,PRSO
+ RSTACK
+
+
+ .FUNCT SALTS-F,PER=0
+ EQUAL? PRSA,V?SMELL \?CCL3
+ PRINTI "You jerk"
+ CALL TPRINT,SALTS
+ PRINTI " away from your nose after one brief ammoniac whiff. Your burning nostrils make you feel more alert"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?WAVE \?CCL5
+ EQUAL? HERE,DUNGEON \?CCL8
+ FSET? HERO,DEADBIT \?CCL8
+ CALL PERFORM,V?ALARM,HERO,SALTS
+ RTRUE
+?CCL8: CALL PERFORM,V?SMELL,SALTS
+ RTRUE
+?CCL5: EQUAL? PRSA,V?USE \?CCL12
+ ZERO? PRSI \?CCL15
+ CALL FIND-IN,HERE,ACTORBIT,STR?331 >PER
+ ZERO? PER /?CCL18
+ EQUAL? PER,CRULLEY /?CCL18
+ CALL PERFORM,V?ALARM,PER,SALTS
+ RTRUE
+?CCL18: CALL PERFORM,V?SMELL,SALTS
+ RTRUE
+?CCL15: FSET? PRSI,ACTORBIT \?CCL22
+ CALL PERFORM,V?ALARM,PRSI,SALTS
+ RTRUE
+?CCL22: PRINT HUH
+ RTRUE
+?CCL12: EQUAL? PRSA,V?PUT-ON,V?PUT-UNDER \?CCL24
+ FSET? PRSI,ACTORBIT \?CCL24
+ CALL PERFORM,V?ALARM,PRSI,SALTS
+ RTRUE
+?CCL24: EQUAL? PRSA,V?GIVE \?CCL28
+ CALL PERFORM,V?ALARM,PRSI,SALTS
+ RTRUE
+?CCL28: EQUAL? PRSA,V?SGIVE,V?ALARM \?CCL30
+ EQUAL? PRSO,HERO \?CCL33
+ CALL REVIVE-HERO
+ RSTACK
+?CCL33: EQUAL? PRSO,ME \?CCL35
+ CALL PERFORM,V?SMELL,SALTS
+ RTRUE
+?CCL35: EQUAL? PRSO,BUTLER \?CCL37
+ FSET? BUTLER,DEADBIT \?CCL37
+ PRINT YOU-CANT
+ PRINTI "wake him"
+ PRINT PCR
+ RTRUE
+?CCL37: EQUAL? PRSO,CRULLEY \?CCL41
+ FSET? CRULLEY,DEADBIT \?CCL41
+ SET 'AWAITING-REPLY,2
+ CALL QUEUE,I-REPLY,2
+ PRINTR "Are you sure that's really wise?"
+?CCL41: CALL PRONOUN
+ PRINTI " doesn't need reviving"
+ PRINT PCR
+ RTRUE
+?CCL30: EQUAL? PRSA,V?EXAMINE \?CCL45
+ PRINTI "You always carry your "
+ PRINTD SALTS
+ PRINTI ", for emergencies. There is a small tag on one side of them"
+ PRINT PCR
+ RTRUE
+?CCL45: EQUAL? PRSA,V?READ \FALSE
+ PRINTR "It says, ""For cases of vapors, hysteria or collapse, revive persons with the smelling salts."""
+
+
+ .FUNCT REVIVE-HERO
+ FSET? HERO,DEADBIT \?CCL3
+ INC 'SCORE
+ FCLEAR HERO,DEADBIT
+ PRINTI "You wave"
+ CALL TPRINT,SALTS
+ PRINTI " under Nicholas's nose. He stirs, sneezes and looks at you blearily. ""How --?"" he says, bewildered. ""Lafond, did he --?"" He "
+ FSET? CHEMISE,EVERYBIT /?CND4
+ PRINTI "looks at you in growing horror, glancing from your chemise to your face, and "
+?CND4: PRINTI "straightens. ""Darling, you are an angel, to have gone through all this and then rescue me. Your ravisher will not go unpunished."" He squares his shoulders. ""For my brother, his wife, and your honor, I will kill Jean Lafond."""
+ CRLF
+ IN? HERO,MANACLES \?CCL8
+ SET 'AWAITING-REPLY,13
+ CALL QUEUE,I-REPLY,2
+ PRINT INDENT
+ PRINTR "He tugs at his chains with a wry smile. ""But I must get free first. Have you the key?"""
+?CCL8: CALL NICK-RUNS-OFF
+ RSTACK
+?CCL3: PRINTR "Jamison brushes you away, ""Thank you, but I'm not having the vapors."""
+
+
+ .FUNCT BOTTLE-F
+ EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
+ PRINTI "This is a squeezable bottle. You don't need to open or close it"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?TAKE \?CCL5
+ FSET? BOTTLE,TOUCHBIT /?CCL5
+ CALL ITAKE,FALSE-VALUE
+ EQUAL? STACK,M-FATAL,FALSE-VALUE /?CCL5
+ INC 'SCORE
+ PRINTR "Taken."
+?CCL5: EQUAL? PRSA,V?PUT,V?POUR \?CCL10
+ EQUAL? PRSI,BOTTLE \?CCL10
+ CALL PERFORM,V?FILL,BOTTLE,PRSO
+ RTRUE
+?CCL10: EQUAL? PRSA,V?WRING,V?DRINK-FROM \?CCL14
+ EQUAL? PRSO,BOTTLE \?CCL14
+ CALL SQUEEZE-BOTTLE
+ RSTACK
+?CCL14: EQUAL? PRSA,V?WRING,V?POUR-FROM \?CCL18
+ EQUAL? PRSO,LAUD \?CCL18
+ CALL SPECIFY-WHAT,STR?332,LAUD
+ RSTACK
+?CCL18: EQUAL? PRSA,V?DRINK-FROM \?CCL22
+ CALL PERFORM,V?WRING,LAUD,MOUTH
+ RTRUE
+?CCL22: EQUAL? PRSA,V?FILL \?CCL24
+ EQUAL? PRSI,BOTTLE \?CCL27
+ CALL PERFORM,V?POUR,PRSI,PRSO
+ RTRUE
+?CCL27: PRINT YOU-CANT
+ PRINTI "get anything into"
+ CALL TRPRINT,BOTTLE
+ RSTACK
+?CCL24: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL29
+ PRINTI "It's a small leather bottle, with a tiny label on one side"
+ GRTR? LAUD-LEFT,0 \?CND30
+ PRINTI ". It appears to be almost empty"
+?CND30: PRINT PCR
+ RTRUE
+?CCL29: EQUAL? PRSA,V?READ \FALSE
+ PRINTR "The label reads, ""Laudanum drops. Squeeze into a glass of wine to sleep free of pain and mental anguish."""
+
+
+ .FUNCT LAUD-F
+ EQUAL? PRSA,V?WRING,V?PUT,V?POUR /?PRD5
+ EQUAL? PRSA,V?PUT-ON \?CCL3
+?PRD5: EQUAL? PRSO,LAUD \?CCL3
+ CALL SQUEEZE-BOTTLE
+ RSTACK
+?CCL3: EQUAL? PRSA,V?TAKE \?CCL9
+ PRINTI "If you intend to drink"
+ CALL TPRINT,LAUD
+ PRINTR ", say so."
+?CCL9: EQUAL? PRSA,V?DRINK,V?EAT \?CCL11
+ CALL PERFORM,V?WRING,BOTTLE,ME
+ RTRUE
+?CCL11: EQUAL? PRSO,LAUD \?CCL13
+ CALL PERFORM-PRSA,BOTTLE,PRSI
+ RTRUE
+?CCL13: EQUAL? PRSI,LAUD \FALSE
+ CALL PERFORM-PRSA,PRSO,BOTTLE
+ RTRUE
+
+
+ .FUNCT SQUEEZE-BOTTLE
+ EQUAL? PRSI,BOTTLE \?CCL3
+ CALL IMPOSSIBLES
+ RSTACK
+?CCL3: FSET? PRSI,ACTORBIT \?CCL5
+ PRINT POLITE
+ RTRUE
+?CCL5: EQUAL? PRSI,CROC \?CCL7
+ CALL PERFORM,V?PUT,BOTTLE,CROC
+ RTRUE
+?CCL7: LESS? LAUD-LEFT,3 \?CCL9
+ EQUAL? HERE,LAFS-ROOM /?CCL9
+ PRINTR "You stop, deciding you might need some later."
+?CCL9: DEC 'LAUD-LEFT
+ GRTR? LAUD-LEFT,0 \FALSE
+ MOVE BOTTLE,PROTAGONIST
+ EQUAL? PRSI,ME \?CCL16
+ CALL QUEUE,I-SLEEP,2
+ PUTP ME,P?CONTENTS,POISONED
+ PRINT SQUEEZE-DROPS
+ PRINTI "into"
+ CALL TPRINT,MOUTH
+ PRINTC 46
+ JUMP ?CND14
+?CCL16: EQUAL? PRSI,FLAGON \?CCL19
+ PUTP FLAGON,P?CONTENTS,POISONED
+ CALL DOPE-WINE
+ JUMP ?CND14
+?CCL19: EQUAL? PRSI,PORK \?CCL21
+ SET 'PORK-DOPED,TRUE-VALUE
+ PRINT SQUEEZE-DROPS
+ PRINTI "onto"
+ CALL TPRINT,PORK
+ PRINTI ". A patch of salt dissolves as"
+ CALL TPRINT,LAUD
+ PRINTI " absorbs into the meat."
+ JUMP ?CND14
+?CCL21: EQUAL? PRSI,GREEN-GLASS,BLUE-GLASS \?CCL23
+ GETP PRSI,P?CONTENTS
+ ADD STACK,POISONED
+ PUTP PRSI,P?CONTENTS,STACK
+ CALL DOPE-WINE
+ JUMP ?CND14
+?CCL23: PRINT SQUEEZE-DROPS
+ PRINTI "into"
+ CALL TPRINT-PRSI
+ PRINTC 46
+ FSET? PRSI,WEARBIT \?CND14
+ PRINTI " It evaporates quickly."
+?CND14: ZERO? LAUD-LEFT \?CND26
+ PRINTR " From the feel of it, the bottle is now empty."
+?CND26: CRLF
+ RTRUE
+
+
+ .FUNCT DOPE-WINE
+ SET 'USED-LAUD,TRUE-VALUE
+ PRINT SQUEEZE-DROPS
+ PRINTI "into"
+ CALL TPRINT-PRSI
+ PRINTC 46
+ IN? LAFOND,HERE \TRUE
+ PRINTI " You sense Lafond hesitate, then continue primping."
+ RTRUE
+
+
+ .FUNCT JEWEL-F
+ EQUAL? PRSA,V?WEAR /?CTR2
+ EQUAL? PRSA,V?PUT-ON \?CCL3
+ EQUAL? PRSI,ME \?CCL3
+?CTR2: CALL CTPRINT,JEWEL
+ PRINTI " won't stay clasped"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL9
+ PRINTI "All diamonds winking fire, tears of sapphire and crushed rubies in an oval setting, it is a pity that the clasp of"
+ CALL TPRINT,JEWEL
+ PRINTI " has broken. The gold pin at the back swings about uselessly"
+ PRINT PCR
+ RTRUE
+?CCL9: EQUAL? PRSA,V?FIX \FALSE
+ PRINTR "That will have to be done by a goldsmith."
+
+
+ .FUNCT HAT-F,OARG=0
+ ZERO? OARG /?CCL3
+ FSET? HAT,EVERYBIT \FALSE
+ EQUAL? OARG,M-DESC? /TRUE
+ PRINT INDENT
+ PRINTI "An expensive hat is hanging on"
+ CALL APRINT,KNOB
+ PRINTC 46
+ RTRUE
+?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL10
+ CALL NOUN-USED,W?QUILL,HAT
+ ZERO? STACK /?CCL13
+ PRINTR "It's a curling ostrich plume."
+?CCL13: PRINTR "It is a crimson tricorne with a curling ostrich plume stuck in the crown."
+?CCL10: EQUAL? PRSA,V?WEAR,V?TAKE \?CCL15
+ CALL NOUN-USED,W?QUILL,HAT
+ ZERO? STACK /?CCL18
+ CALL CTPRINT,HAT
+ PRINTR " looks so drab without its plume that you cannot bear to."
+?CCL18: FSET? HAT,EVERYBIT \FALSE
+ FCLEAR KNOB,DEADBIT
+ FSET KNOB,EVERYBIT
+ FCLEAR HAT,EVERYBIT
+ MOVE HAT,PROTAGONIST
+ FSET HAT,TOUCHBIT
+ EQUAL? PRSA,V?WEAR \?CND21
+ FSET HAT,WORNBIT
+?CND21: CALL KNOB-CAUSES-TINGLE,STR?333
+ RSTACK
+?CCL15: EQUAL? PRSA,V?TAKE-OFF,V?REMOVE \?CCL24
+ FSET? HAT,WORNBIT \?CCL24
+ FCLEAR HAT,WORNBIT
+ PRINTI "Doffed"
+ PRINT PCR
+ RTRUE
+?CCL24: EQUAL? PRSA,V?PUT-ON \FALSE
+ EQUAL? PRSO,HAT \FALSE
+ EQUAL? PRSI,HEAD,ME \?CCL33
+ CALL PERFORM,V?WEAR,HAT
+ RTRUE
+?CCL33: FSET? PRSI,ACTORBIT \?CCL35
+ FSET? PRSI,DEADBIT \?CCL38
+ PRINTR "It slides off."
+?CCL38: CALL CTPRINT,HAT
+ PRINTI " doesn't go with what "
+ EQUAL? PRSI,LUCY \?CND39
+ PRINTC 115
+?CND39: PRINTR "he's wearing."
+?CCL35: CALL WASTES
+ RSTACK
+
+
+ .FUNCT KNOB-CAUSES-TINGLE,STRING
+ PRINT STRING
+ PRINTI " knob on the wall, a low vibration tingles up your legs from the floor"
+ PRINT PCR
+ RTRUE
+
+ .ENDI
diff --git a/clothes.zil b/clothes.zil
new file mode 100644
index 0000000..cd359f2
--- /dev/null
+++ b/clothes.zil
@@ -0,0 +1,1079 @@
+"CLOTHES for
+ PLUNDERED HEARTS
+ (c) Copyright 1987 Infocom, Inc. All Rights Reserved."
+
+<OBJECT PANTS
+ (IN SLEEPING-CUPBOARD)
+ (DESC "breeches")
+ (SYNONYM BREECHES PANTS CLOTHES BRITCHES)
+ (ADJECTIVE BREEKS)
+ (FLAGS TAKEBIT WEARBIT PLURALBIT ;BURNBIT NDESCBIT)
+ (GENERIC GEN-CLOTHES)
+ (ACTION GARMENT-F)>
+
+<OBJECT SHIRT
+ (IN SLEEPING-CUPBOARD)
+ (DESC "shirt")
+ (SYNONYM SHIRT CLOTHES)
+ (ADJECTIVE WHITE)
+ (FLAGS TAKEBIT WEARBIT ;BURNBIT NDESCBIT)
+ (GENERIC GEN-CLOTHES)
+ (ACTION GARMENT-F)>
+
+<OBJECT PILE-OF-CLOTHES
+ (IN CUPBOARD-OBJECT)
+ (DESC "pile of clothes")
+ (FDESC "Kicked into a far corner is a pile of clothes.")
+ (SYNONYM CLOTHES)
+ (ADJECTIVE PILE)
+ (SIZE 10)
+ (FLAGS TRYTAKEBIT TAKEBIT WEARBIT)
+ (GENERIC GEN-CLOTHES)
+ (ACTION PILE-OF-CLOTHES-F)>
+
+<ROUTINE PILE-OF-CLOTHES-F ()
+ <COND (<VERB? TAKE EXAMINE PUT-ON WEAR>
+ <COND (<EQUAL? ,HERE ,LANDING ,CAPT-QUARTERS>
+ <CANT-REACH ,PRSO>
+ ;<TELL ,YOU-CANT "quite reach them from here." CR>)
+ (<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>
+ <REMOVE ,PILE-OF-CLOTHES>
+ <FSET ,PILE-OF-CLOTHES ,TOUCHBIT>
+ <MOVE ,SHIRT ,PROTAGONIST>
+ <MOVE ,PANTS ,PROTAGONIST>
+ <FCLEAR ,SHIRT ,NDESCBIT>
+ <FCLEAR ,PANTS ,NDESCBIT>
+ <FSET ,SHIRT ,TOUCHBIT>
+ <FSET ,PANTS ,TOUCHBIT>
+ <SETG SCORE <+ ,SCORE 1>>
+ <COND (<VERB? EXAMINE>
+ <TELL "To get a better look, y">)
+ (T
+ <TELL "Y">)>
+ <TELL
+"ou pick up" T ,PILE-OF-CLOTHES ". It separates into a
+pair of " D ,PANTS " and" AR ,SHIRT>)>)>>
+
+<ROUTINE GEN-CLOTHES ()
+ <COND (<EQUAL? ,W?CLOTHES <GET ,P-NAMW 0> <GET ,P-NAMW 1>>
+ <COND (<AND <EQUAL? ,HERE ,SLEEPING-CUPBOARD>
+ <NOT <FSET? ,SHIRT ,TOUCHBIT>>
+ <NOT <FSET? ,PANTS ,TOUCHBIT>>>
+ ,PILE-OF-CLOTHES)
+ (<VERB? REMOVE TAKE-OFF>
+ <COND (<PRE-DOFF>
+ <RETURN ,NOT-HERE-OBJECT>)
+ (T
+ <REMOVE-CLOTHES T>
+ <RETURN ,NOT-HERE-OBJECT>)>
+ ;<COND (<NOT <PRE-DOFF>>
+ <REMOVE-CLOTHES T>
+ <RETURN ,NOT-HERE-OBJECT>)
+ (T
+ <RFALSE>)>)>)
+ (<EQUAL? ,W?DRESS <GET ,P-NAMW 0> <GET ,P-NAMW 1>>
+ <COND (<VERB? REMOVE TAKE-OFF>
+ <COND (<PRE-DOFF>
+ <RETURN ,NOT-HERE-OBJECT>)
+ (T
+ <REMOVE-CLOTHES T>
+ <RETURN ,NOT-HERE-OBJECT>)>
+ ;<COND (<NOT <PRE-DOFF>>
+ <REMOVE-CLOTHES T>
+ <RETURN ,NOT-HERE-OBJECT>)
+ (T
+ <RFALSE>)>)
+ (<VERB? DROP>
+ <COND (<AND <FSET? ,GOWN ,WORNBIT>
+ <HELD? ,DRESS>>
+ <TELL "[" D ,DRESS "]" CR>
+ <RETURN ,DRESS>)
+ (<AND <FSET? ,DRESS ,WORNBIT>
+ <HELD? ,GOWN>>
+ <TELL "[" D ,GOWN "]" CR>
+ <RETURN ,GOWN>)
+ (T
+ <DO-FIRST "remove">
+ <RETURN ,NOT-HERE-OBJECT>)>)
+
+ (T
+ <RFALSE>)>)
+ (T
+ <RFALSE>)>>
+
+<OBJECT DRESS ;"MUNGBIT = rip dress the first time"
+ (IN PROTAGONIST)
+ (DESC "cotton frock")
+ (SYNONYM CLOTHES DRESS FROCK)
+ (ADJECTIVE COTTON)
+ (FLAGS TAKEBIT WEARBIT WORNBIT ;BURNBIT)
+ (SIZE 5)
+ (GENERIC GEN-CLOTHES)
+ (ACTION GARMENT-F)>
+
+<OBJECT GOWN
+ (IN BEDROOM)
+ (DESC "beautiful ball gown")
+ (FDESC "Draped across the bed is a lovely cream colored watered silk
+gown. It looks about your size.")
+ (SYNONYM GOWN DRESS CLOTHES)
+ (ADJECTIVE BALL SILK)
+ (FLAGS TAKEBIT WEARBIT ;BURNBIT)
+ (GENERIC GEN-CLOTHES)
+ (ACTION GARMENT-F)>
+
+<GLOBAL WET-RAG <>>
+<GLOBAL WET-DRESS <>>
+<GLOBAL BOY-DRESS? <>>
+<GLOBAL GOWN-POINT <>>
+
+<ROUTINE GARMENT-F () ;"For all clothes but chemise,shoes,hoops."
+ <COND (<VERB? EXAMINE>
+ <COND (<PRSO? ,DRESS>
+ <COND (,WET-DRESS
+ <WET-DESC ,DRESS>
+ <RTRUE>)
+ (T
+ <TELL
+"It is your favorite old frock, looking rather bedraggled without its hoops">
+ <COND (<NOT <FSET? ,DRESS ,EVERYBIT>>
+ <FSET ,DRESS ,EVERYBIT>
+ <TELL
+", which you hadn't time to put on during the pirate attack">)>
+ <TELL ". ">
+ <COND (<FSET? ,DRESS ,MUNGBIT>
+ <TELL
+"There is a tear out of the skirt">)
+ (T
+ <TELL
+"The worn fabric of the skirt often catches on things, tearing">)>
+ <TELL ,PCR>)>)
+ (<PRSO? ,GOWN>
+ <TELL
+"Of cream silk, heavily embroidered on the stiffened skirt and stomacher,"
+T ,GOWN " is a work of art" ,PCR>)
+ (<PRSO? ,SHIRT>
+ <TELL CTHE ,SHIRT " is clean and not too big">
+ <COND (<FSET? ,SHIRT ,MUNGBIT>
+ <TELL ,TEAR>)>
+ <TELL ,PCR>)
+ (T
+ <TELL CTHE ,PANTS " are about your size." CR>)>)
+ (<AND <VERB? LOOK-INSIDE LOOK-UNDER>
+ <FSET? ,PRSO ,WORNBIT>>
+ <TELL "Just" A ,CHEMISE ", and a couple fleas" ,PCR>)
+ (<VERB? WEAR>
+ <COND (<OR <AND <PRSO? ,DRESS ,GOWN>
+ <OR <FSET? ,SHIRT ,WORNBIT>
+ <FSET? ,PANTS ,WORNBIT>>>
+ <AND <PRSO? ,SHIRT ,PANTS>
+ <OR <FSET? ,DRESS ,WORNBIT>
+ <FSET? ,GOWN ,WORNBIT>>>>
+ <TELL
+CTHE ,PRSO " doesn't fit over what you are already wearing" ,PCR>)
+ (<AND ,WET-DRESS
+ <PRSO? ,DRESS>>
+ <TELL
+"The clammy cotton makes it too uncomfortable to wear." CR>)
+ (T
+ <FSET ,PRSO ,WORNBIT>
+ <MOVE ,PRSO ,PROTAGONIST>
+ <COND (<AND <PRSO? ,PANTS ,SHIRT>
+ <IN? ,PILE-OF-CLOTHES ,SLEEPING-CUPBOARD>>
+ <FSET ,PILE-OF-CLOTHES ,TOUCHBIT>
+ <REMOVE ,PILE-OF-CLOTHES>
+ <SETG SCORE <+ ,SCORE 1>>)>
+ <COND (<PRSO? ,PANTS>
+ <TELL "You tuck" T ,CHEMISE>
+ <COND (<FSET? ,SHIRT ,WORNBIT>
+ <SETG BOY-DRESS? T>
+ <FSET ,CHEMISE ,EVERYBIT>
+ <TELL " and" T ,SHIRT>)>
+ <TELL
+" into the pants. You look a little fat, but now you can move freely" ,PCR>)
+ (<PRSO? ,SHIRT>
+ <COND (<FSET? ,PANTS ,WORNBIT>
+ <FSET ,CHEMISE ,EVERYBIT>
+ <SETG BOY-DRESS? T>)>
+ <TELL
+"It fits loosely, masking your figure" ,PCR>)
+ (T
+ <FSET ,CHEMISE ,EVERYBIT>
+ <COND (<AND <NOT ,GOWN-POINT>
+ <PRSO? ,GOWN>>
+ <SETG GOWN-POINT T>
+ <SETG SCORE <+ ,SCORE 1>>
+ <TELL
+CTHE ,GOWN " fits perfectly, the creamy silk bringing a
+glow to your cheeks. You comb your hair with your fingers and
+bite your lips to make them red" ,PCR>)
+ (T
+ <TELL "You don" TR ,PRSO>)>)>)>)
+ (<AND <VERB? TAKE-OFF REMOVE>
+ <FSET? ,PRSO ,WORNBIT>>
+ <COND ;(<CHECK-STRIP>
+ <RTRUE>)
+ (<EQUAL? ,PRSO ,DRESS>
+ <FCLEAR ,PRSO ,WORNBIT>
+ <FCLEAR ,CHEMISE ,EVERYBIT>
+ <TELL "You take off" T ,DRESS>
+ ;<COND (<FSET? ,HOOPS ,WORNBIT>
+ <TELL
+", but are inclined to giggle at the sight of"
+T ,HOOPS " swinging nakedly over your chemise">)>
+ <TELL ,PCR>)
+ (T
+ <COND (<PRSO? ,SHIRT ,PANTS>
+ <SETG BOY-DRESS? <>>)>
+ <FCLEAR ,PRSO ,WORNBIT>
+ <FCLEAR ,CHEMISE ,EVERYBIT>
+ <TELL
+"You remove" T ,PRSO ", exposing your ">
+ <COND (<PRSO? ,PANTS>
+ <TELL "ankles">)
+ (<PRSO? ,SHIRT>
+ <TELL "elbows">)
+ (T
+ <TELL D ,CHEMISE>)>
+ <TELL ,PCR>)>)
+ (<OR <VERB? RIP>
+ <AND <VERB? CUT>
+ <HELD? ,DAGGER>>>
+ <COND (<PRSO? ,DRESS>
+ <COND (<NOT <LOC ,RAG>>
+
+ ;"returns <> when REMOVEd."
+
+ <MOVE ,RAG ,PROTAGONIST>
+ <COND (<EQUAL? ,WET-DRESS ,WATER>
+ <SETG WET-RAG ,WATER>)
+ (<EQUAL? ,WET-DRESS ,RUM>
+ <SETG WET-RAG ,RUM>)
+ (T
+ <SETG WET-RAG <>>)>
+ <FSET ,RAG ,TOUCHBIT>
+ <COND (<NOT <FSET? ,DRESS ,MUNGBIT>>
+ <FSET ,DRESS ,MUNGBIT>
+
+ ;"Can be ripped automatically now"
+ ;<SETG SCORE <+ ,SCORE 1>>)>
+
+ <TELL "You ">
+ <COND (<VERB? CUT>
+ <MOVE ,DAGGER ,PROTAGONIST>
+ <TELL "cut">)
+ (T
+ <TELL "rip">)>
+ <TELL " a large rag out of" TR ,DRESS>)
+ (<NOT <HELD? ,RAG>>
+ <TELL
+"There already is a rag around here somewhere" ,PCR>)
+ (T
+ <TELL ,YOU-HAVE-ALREADY AR ,RAG>)>)
+ (<PRSO? ,GOWN>
+ <TELL CTHE ,GOWN " is too fine to ruin" ,PCR>)
+ (T
+ <TELL "The fabric is too tightly woven" ,PCR>)>)
+ ;(<old-VERB? RIP CUT>
+ <COND (<PRSO? ,DRESS>
+ <COND (<NOT <LOC ,RAG>>
+
+ ;"returns <> when REMOVEd."
+
+ <MOVE ,RAG ,PROTAGONIST>
+ <COND (<EQUAL? ,WET-DRESS ,WATER>
+ <SETG WET-RAG ,WATER>)
+ (<EQUAL? ,WET-DRESS ,RUM>
+ <SETG WET-RAG ,RUM>)
+ (T
+ <SETG WET-RAG <>>)>
+ <FSET ,RAG ,TOUCHBIT>
+ <COND (<NOT <FSET? ,DRESS ,MUNGBIT>>
+ <FSET ,DRESS ,MUNGBIT>
+ <SETG SCORE <+ ,SCORE 1>>)>
+ <TELL "You ">
+ <COND (<VERB? CUT>
+ <TELL "cut">)
+ (T
+ <TELL "rip">)>
+ <TELL " a large rag out of" TR ,DRESS>)
+ (<NOT <HELD? ,RAG>>
+ <TELL
+"There already is a rag around here somewhere" ,PCR>)
+ (T
+ <TELL ,YOU-HAVE-ALREADY AR ,RAG>)>)
+ (<PRSO? ,GOWN>
+ <TELL CTHE ,GOWN " is too fine to ruin" ,PCR>)
+ (T
+ <TELL "The fabric is too tightly woven" ,PCR>)>)
+ (<AND <VERB? TAKE>
+ <PRSO? ,SHIRT ,PANTS>
+ <IN? ,PILE-OF-CLOTHES ,HERE>>
+ <PERFORM ,V?TAKE ,PILE-OF-CLOTHES>
+ <RTRUE>)>>
+
+<OBJECT RAG
+ (DESC "rag")
+ (SYNONYM RAG CLOTH)
+ (ADJECTIVE WET SCRAP PIECE)
+ (FLAGS TAKEBIT)
+ (ACTION RAG-F)>
+
+<ROUTINE RAG-F ()
+ <COND (<VERB? SOAK>
+ <COND (<EQUAL? ,HERE ,BY-SHIP ,LAGOON ,SHALLOWS
+ ,BEACH ,MAIN-DECK>
+ <DIP-DRESS>)
+ (T
+ <PROPOSE>)>)
+ (<AND <ADJ-USED ,A?WET>
+ <NOT ,WET-RAG>>
+ <TELL ,YOU-CANT-SEE-ANY "wet rag here" ,PCR>)
+ (<VERB? EXAMINE>
+ <COND (<NOT ,WET-RAG>
+ <TELL
+"It is a fairly hefty scrap of fabric" ,PCR>)
+ (T
+ <WET-DESC ,RAG>)>)
+ (<VERB? RIP>
+ <WASTES>)
+ (<VERB? TIE>
+ <TELL "It won't stay tied" ,PCR>)
+ (<VERB? PUT>
+ <COND (<PRSI? ,FENCE ,GATE>
+ <WASTES>)
+ (<PRSI? ,FUSE>
+ <PROPOSE>)>)
+ (<AND <VERB? THROW>
+ <PRSI? ,FUSE>>
+ <PERFORM ,V?THROW-OVER ,RAG ,FENCE>
+ <RTRUE>)>>
+
+; "The rag, or alternately, the dress, is set to SEA if it is dipped in water
+of any kind (easier to type). Then it is described as wet. If the dress is
+wet and THEN the rag is ripped out, the rag will still be wet. You can get as
+many rags as you like, with access to only one at a time. If it works."
+
+<ROUTINE WET-DESC (OBJ)
+ <TELL
+"The " D .OBJ " is soaked and dripping with ">
+ <COND (<OR <AND <EQUAL? .OBJ ,RAG>
+ <EQUAL? ,WET-RAG ,RUM>>
+ <AND <EQUAL? .OBJ ,DRESS>
+ <EQUAL? ,WET-DRESS ,RUM>>>
+ <TELL "rum">)
+ (<OR <AND <EQUAL? .OBJ ,RAG>
+ <EQUAL? ,WET-RAG ,WATER>>
+ <AND <EQUAL? .OBJ ,DRESS>
+ <EQUAL? ,WET-DRESS ,WATER>>>
+ <TELL "water">)>
+ <TELL ,PCR>>
+
+;<OBJECT HOOPS
+ (IN PROTAGONIST)
+ (DESC "your hoops")
+ (SYNONYM HOOPS)
+ (FLAGS TAKEBIT WEARBIT WORNBIT PLURALBIT VOWELBIT NARTICLEBIT)
+ (ACTION HOOPS-F)>
+
+;<GLOBAL HEAVY " heavy and uncomfortable">
+
+;<ROUTINE HOOPS-F ()
+ <COND (<VERB? EXAMINE>
+ <TELL "The whalebone hoops">
+ <COND (<FSET? ,PRSO ,WORNBIT>
+ <TELL "," ,HEAVY ", are tied around your waist">
+ <COND (<FSET? ,DRESS ,WORNBIT>
+ <TELL " under" T ,DRESS>)>)
+ (T
+ <TELL " are" ,HEAVY>)>
+ <TELL ,PCR>)
+ (<AND <VERB? LOOK-INSIDE LOOK-UNDER>
+ <FSET? ,PRSO ,WORNBIT>>
+ <TELL ,YOU-SEE " your stockinged legs, and" TR ,SHOES>)
+ (<VERB? WEAR>
+ <COND ;(<OR <FIND-IN ,HERE ,ACTORBIT "in front of">
+ <EQUAL? ,HERE ,ORCHESTRA ;,SUPPER-ROOM>>
+ <TELL ,POLITE-SOCIETY>)
+ ;(<EQUAL? ,HERE ,ON-LADDER ,RIGGING-ROOM>
+ <TELL ,YOU-CANT "get dressed here!" CR>)
+ (T
+ <FSET ,HOOPS ,WORNBIT>
+ <MOVE ,HOOPS ,PROTAGONIST>
+ <TELL "You tie on" T ,HOOPS>
+ <COND (<FSET? ,PANTS ,WORNBIT>
+ <TELL " over" TR ,PANTS>)
+ (<OR <FSET? ,DRESS ,WORNBIT>
+ <FSET? ,GOWN ,WORNBIT>>
+ <TELL " under your skirts" ,PCR>)
+ (T
+ <TELL " around your waist" ,PCR>)>)>)
+ (<AND <VERB? PUT PUT-THROUGH THROW>
+ <PRSI? ,RETICULE ,WATER-BARREL ,RUM-BARREL ,CASK
+ ,LIB-WINDOW ,HOLE ,GATE ,LEDGE ,WINDOW>>
+ <TELL "Your hoops are too wide to fit into" TR ,PRSI>)
+ (<VERB? UNTIE>
+ <PERFORM ,V?REMOVE ,HOOPS>
+ <RTRUE>)>>
+
+<CONSTANT TEAR ". There is a tear at the bottom">
+
+<OBJECT CHEMISE ;"EVERYBIT = covered by other clothes"
+ (IN PROTAGONIST) ;"MUNGBIT = rag automatically torn from it"
+ (DESC "linen chemise")
+ (SYNONYM CLOTHES CHEMISE SLIP PETTICOAT)
+ (ADJECTIVE LINEN)
+ (FLAGS TAKEBIT WEARBIT WORNBIT EVERYBIT)
+ (GENERIC GEN-CLOTHES)
+ (ACTION CHEMISE-F)>
+
+<OBJECT SHOES
+ (IN PROTAGONIST)
+ (DESC "your kid slippers")
+ (SYNONYM SHOES SLIPPERS)
+ (ADJECTIVE KID)
+ (FLAGS WEARBIT WORNBIT PLURALBIT NARTICLEBIT)
+ (ACTION CHEMISE-F)>
+
+<ROUTINE CHEMISE-F ()
+ <COND (<VERB? EXAMINE>
+ <COND (<PRSO? ,CHEMISE>
+ <COND (<FSET? ,CHEMISE ,EVERYBIT>
+ <TELL "It's covered by other clothes" ,PCR>)
+ (T
+ <TELL
+CTHE ,CHEMISE ", kneelength and sleeveless,
+clings damply to your legs and torso">
+ <COND (<FSET? ,CHEMISE ,MUNGBIT>
+ <TELL ,TEAR>)>
+ <TELL ,PCR>)>)
+ (<PRSO? ,SHOES>
+ <TELL
+"They are dainty yet practical kidskin shoes" ,PCR>)>)
+ (<VERB? LOOK-INSIDE LOOK-UNDER>
+ <COND (<PRSO? ,CHEMISE>
+ <TELL "Just you and your " D ,UNMENTIONABLES ,PCR>)
+ (T
+ <TELL "Your feet are in" TR ,SHOES>)>)
+ (<VERB? TAKE-OFF REMOVE>
+ <TELL "But">
+ <COND (<PRSO? ,SHOES>
+ <TELL T ,PRSO " are so comfortable">)
+ (T <TELL " that wouldn't be decent">)>
+ <TELL "!" CR>)
+ (<VERB? RIP CUT>
+ <TELL ,YOU-CANT "bring yourself to ruin" TR ,CHEMISE>)>>
+
+<GLOBAL PENULTIM-POINT <>>
+
+<OBJECT GARTER
+ (IN LUCY)
+ (DESC "garter")
+ (SYNONYM GARTER SLING SLINGSHOT)
+ (ADJECTIVE RED)
+ (FLAGS TAKEBIT WEARBIT ;BURNBIT INVISIBLE CONTBIT
+ TRANSBIT SEARCHBIT INBIT OPENBIT)
+ (CAPACITY 1)
+ (SIZE 2)
+ (ACTION GARTER-F)>
+
+<ROUTINE GARTER-F ()
+ <COND (<VERB? WEAR>
+ <COND (,MUZZLED
+ <PERFORM ,V?TAKE ,GARTER>
+ <RTRUE>)
+ (<FSET? ,PANTS ,WORNBIT>
+ <TELL
+"One doesn't wear" A ,GARTER " over " D ,PANTS "!" CR>)
+ (T
+ <FSET ,GARTER ,WORNBIT>
+ <MOVE ,GARTER ,PROTAGONIST>
+ <TELL
+"You slide" T ,GARTER " up around your thigh" ,PCR>)>)
+ (<AND <VERB? REMOVE TAKE>
+ ,MUZZLED>
+ <COND (<NOT ,CROC-SLEEP>
+ <TELL
+"The reptile surges forward as you remove" T ,GARTER>
+;<TELL "As you remove" T ,GARTER ", the reptile surges forward.">
+ <JIGS-UP ". You are pulled struggling into the pool.">)
+ (T
+ <SETG MUZZLED <>>
+ <FCLEAR ,GARTER ,TRYTAKEBIT> ;"stop implicit take"
+ <FSET ,GARTER ,TAKEBIT>
+ <MOVE ,GARTER ,PROTAGONIST>
+ <TELL "You slip it off the scaly snout." CR>)>)
+ (<VERB? TAKE>
+ <COND (<AND <NOT <FSET? ,GARTER ,TOUCHBIT>>
+ <EQUAL? ,HERE ,KITCHEN>
+ <NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
+
+ ;"It's poss to finish w/o garter!"
+ ;<SETG SCORE <+ ,SCORE 1>>
+
+ <TELL
+"Taken.|
+ Lucy kisses " D ,HEAD " and returns to the fire, humming" ,PCR>)
+ (<IN? ,GARTER ,DAD>
+ <MOVE ,GARTER ,PROTAGONIST>
+ <TELL "\"Take it, dear,\" Papa says." CR>)
+ (T
+ <RFALSE>)>)
+ (<AND <VERB? PUT PUT-ON>
+ <PRSI? ,GARTER>>
+ <COND (<NOT <IN? ,GARTER ,PROTAGONIST>>
+ <TELL ,YNH TR ,GARTER>)
+ (<AND <EQUAL? ,P-PRSA-WORD ,W?THROW>
+ <PRSO? ,STONE>>
+ <PERFORM ,V?THROW ,STONE ,GARTER>
+ <RTRUE>)
+ (<PRSO? ,STONE>
+ <COND (<FSET? ,GARTER ,WORNBIT>
+ <TELL "Not while you're wearing" TR ,GARTER>)
+ (T
+ <MOVE ,STONE ,GARTER>
+
+ ;"LOAD GUN/PUT STONE IN GARTER"
+ <COND (<NOT ,PENULTIM-POINT>
+ <SETG PENULTIM-POINT T>
+ <SETG SCORE <+ ,SCORE 1>>)>
+ <TELL "You slip" T ,STONE " into" TR ,GARTER>)>)
+ (T
+ <TELL "It falls through" TR ,GARTER>)>)
+ (<AND <VERB? KILL>
+ <OR <FSET? ,PRSO ,ACTORBIT>
+ <PRSO? ,CROC>>>
+ <PROPOSE>)
+ (<VERB? THROW SHOOT>
+ <COND (<IN? ,STONE ,GARTER>
+ <COND (<NOT ,PRSI>
+ <PERFORM ,V?SHOOT ,STONE>
+ <RTRUE>)
+ (T
+ <WASTES>)>)
+ (T
+ <COND (<AND <NOT ,PRSI>
+ <VERB? THROW>>
+ <MOVE ,GARTER ,HERE>
+ <TELL "Thrown." CR>)
+ (<PRSO? ,STONE>
+ <DO-FIRST "put the stone in" ,GARTER>)
+ (T
+ <RFALSE>)>)>)
+ (<AND <VERB? SSHOOT>
+ <PRSO? ,GARTER>
+ <HELD? ,STONE>>
+ <PERFORM ,V?SHOOT ,PRSI ,STONE>
+ <RTRUE>)
+ (<VERB? EXAMINE>
+ <TELL CTHE ,GARTER " is ">
+ <COND (,MUZZLED
+ <TELL
+"stretched taut around the jaws of" T ,CROC ,PCR>)
+ (T
+ <TELL
+"made of abnormally strong, red, stretchy lace" ,PCR>)>)>>
+
+<OBJECT UNMENTIONABLES
+ (IN GLOBAL-OBJECTS)
+ (DESC "unmentionables")
+ (SYNONYM UNMENTIONABLES SMALLS)
+ (FLAGS NARTICLEBIT NDESCBIT)
+ (ACTION UNMENTIONABLES-F)>
+
+<ROUTINE UNMENTIONABLES-F ()
+ <TELL
+"Shh! Why do you think they're called " D ,UNMENTIONABLES "?" CR>>
+
+<OBJECT RETICULE
+ (IN PROTAGONIST)
+ (DESC "your reticule")
+ (SYNONYM RETICULE)
+ (ADJECTIVE YOUR MY)
+ (FLAGS NARTICLEBIT CONTBIT OPENBIT SEARCHBIT ;BURNBIT WEARBIT)
+ (CAPACITY 50)
+ (ACTION RETICULE-F)>
+
+<ROUTINE RETICULE-F ()
+ <COND (<AND <VERB? DROP REMOVE PUT PUT-ON PUT-THROUGH PUT-UNDER
+ THROW THROW-AT THROW-TO GIVE>
+ <PRSO? ,RETICULE>>
+ <TELL "A lady is never without her reticule" ,PCR>)
+ ;(<AND <VERB? KILL>
+ <PRSO? ,CRULLEY>
+ <IN? ,COFFER ,RETICULE>>
+ <PERFORM ,V?KILL ,CRULLEY ,RETICULE>
+ <RTRUE>)
+ (<AND <VERB? PUT>
+ <PRSO? ,COFFER ,RAPIER>>
+ <TELL CTHE ,PRSO " won't fit in" TR ,RETICULE>)
+ (<VERB? EXAMINE>
+ <TELL
+"You and Mama made the little drawstring bag a few months before
+she passed on. It's amazing how much it can hold" ,PCR>)>>
+
+<OBJECT BANKNOTE
+ (IN RETICULE)
+ (DESC "banknote")
+ (SYNONYM MONEY NOTE BANKNOTE)
+ (ADJECTIVE FIFTY GUINEA FRONT BACK)
+ (FLAGS TAKEBIT)
+ (SIZE 1)
+ (ACTION BANKNOTE-F)>
+
+<ROUTINE BANKNOTE-F ()
+ <COND (<VERB? EXAMINE>
+ <TELL "This is" T ,BANKNOTE>
+ <IN-PACKAGE>
+ ;<TELL
+"The banknote pictures a fashionably dressed man, his eyes shadowed by
+the brim of a flamboyant feathered hat. He is standing at ease in front
+of an artist's drapery, holding a book, \"Treatise of Power.\" His other
+hand rests on, or rather, grips a world globe; in fact, his thumb is on
+the tiny golden crescent that represents " D ,ISLAND ". The man's smile
+closely resembles a sneer, and you don't feel quite comfortable in his
+painted gaze. At the base of the painting is a scroll reading
+\"Jean Lafond, King of the Caribbean.\"" CR>
+ ;<TELL "[This will be in the game package.]" CR>)
+ (<AND <VERB? WAVE POINT>
+ <IN? ,BUTLER ,HERE> ;"In case of WAVE MONEY"
+ <NOT <FSET? ,BUTLER ,DEADBIT>>>
+ <BRIBE-BUTLER ,PRSO>)>>
+
+<OBJECT SALTS
+ (IN RETICULE)
+ (DESC "smelling salts")
+ (SYNONYM SALTS CARBONATE TAG)
+ (ADJECTIVE SMELLING AMMONIA)
+ (FLAGS PLURALBIT TAKEBIT)
+ (SIZE 3)
+ (ACTION SALTS-F)>
+
+<ROUTINE SALTS-F ("AUX" (PER <>))
+ <COND (<VERB? SMELL>
+ <TELL
+"You jerk" T ,SALTS " away from your nose after one brief ammoniac whiff.
+Your burning nostrils make you feel more alert" ,PCR>)
+ (<VERB? WAVE>
+ <COND (<AND <EQUAL? ,HERE ,DUNGEON>
+ <FSET? ,HERO ,DEADBIT>>
+ <PERFORM ,V?ALARM ,HERO ,SALTS>
+ <RTRUE>)
+ (T
+ <PERFORM ,V?SMELL ,SALTS>
+ <RTRUE>)>)
+ (<VERB? USE>
+ <COND (<NOT ,PRSI>
+ <COND (<AND <SET PER <FIND-IN ,HERE ,ACTORBIT "on">>
+ <NOT <EQUAL? .PER ,CRULLEY>>>
+ <PERFORM ,V?ALARM .PER ,SALTS>
+ <RTRUE>)
+ (T
+ <PERFORM ,V?SMELL ,SALTS>
+ <RTRUE>)>)
+ (<FSET? ,PRSI ,ACTORBIT>
+ <PERFORM ,V?ALARM ,PRSI ,SALTS>
+ <RTRUE>)
+ (T
+ <TELL ,HUH>)>)
+ (<AND <VERB? PUT-UNDER PUT-ON>
+ <FSET? ,PRSI ,ACTORBIT>>
+ <PERFORM ,V?ALARM ,PRSI ,SALTS>
+ <RTRUE>)
+ (<VERB? GIVE>
+ <PERFORM ,V?ALARM ,PRSI ,SALTS>
+ <RTRUE>)
+ (<VERB? ALARM SGIVE>
+ <COND (<PRSO? ,HERO>
+ <REVIVE-HERO>)
+ (<PRSO? ,ME>
+ <PERFORM ,V?SMELL ,SALTS>
+ <RTRUE>)
+ (<AND <PRSO? ,BUTLER>
+ <FSET? ,BUTLER ,DEADBIT>>
+ <TELL ,YOU-CANT "wake him" ,PCR>)
+ (<AND <PRSO? ,CRULLEY>
+ <FSET? ,CRULLEY ,DEADBIT>>
+ <SETG AWAITING-REPLY 2>
+ <QUEUE I-REPLY 2>
+ <TELL "Are you sure that's really wise?" CR>)
+ (T
+ <PRONOUN>
+ ;<COND (<PRSO? ,LUCY>
+ <TELL "She">)
+ (<FSET? ,PRSO ,ACTORBIT>
+ <TELL "He">)
+ (T
+ <TELL CTHE ,PRSO>)>
+ <TELL " doesn't need reviving" ,PCR>)>)
+ (<VERB? EXAMINE>
+ <TELL
+"You always carry your " D ,SALTS ", for emergencies. There is a small tag
+on one side of them" ,PCR>)
+ (<VERB? READ>
+ <TELL
+"It says, \"For cases of vapors, hysteria or collapse,
+revive persons with the smelling salts.\"" CR>)>>
+
+<ROUTINE REVIVE-HERO ()
+ <COND (<FSET? ,HERO ,DEADBIT>
+ <SETG SCORE <+ ,SCORE 1>>
+ <FCLEAR ,HERO ,DEADBIT>
+ <TELL
+"You wave" T ,SALTS " under Nicholas's nose. He stirs, sneezes and looks
+at you blearily. \"How --?\" he says, bewildered. \"Lafond, did he --?\" He ">
+ <COND (<NOT <FSET? ,CHEMISE ,EVERYBIT>>
+ <TELL
+"looks at you in growing horror,
+glancing from your chemise to your face, and ">)>
+ <TELL
+"straightens. \"Darling, you are an angel, to have gone through all this
+and then rescue me. Your ravisher will not go unpunished.\" He squares
+his shoulders. \"For my brother, his wife, and your honor, I will
+kill Jean Lafond.\"" CR>
+ <COND (<IN? ,HERO ,MANACLES>
+ <SETG AWAITING-REPLY 13>
+ <QUEUE I-REPLY 2>
+ <TELL ,INDENT
+"He tugs at his chains with a wry smile.
+\"But I must get free first. Have you the key?\"" CR>)
+ (T
+ <NICK-RUNS-OFF>)>)
+ (T
+ <TELL
+"Jamison brushes you away, \"Thank you,
+but I'm not having the vapors.\"" CR>)>>
+
+<OBJECT BOTTLE
+ (IN CREWS-QUARTERS)
+ (DESC "leather bottle")
+ (FDESC "A small bottle has been dropped nearby.")
+ (SYNONYM BOTTLE LABEL)
+ (ADJECTIVE BROWN SMALL LEATHER)
+ (FLAGS TAKEBIT CONTBIT ;OPENBIT SEARCHBIT TRANSBIT)
+ (ACTION BOTTLE-F)>
+
+<GLOBAL LAUD-LEFT 5> ;"Now you have five squeezes on the bottle."
+;<GLOBAL BOTTLE-EMPTY "The bottle is empty.|">
+
+<ROUTINE BOTTLE-F ()
+ <COND (<VERB? OPEN CLOSE>
+ <TELL
+"This is a squeezable bottle. You don't need to open or close it" ,PCR>)
+ (<AND <VERB? TAKE>
+ <NOT <FSET? ,BOTTLE ,TOUCHBIT>>
+ <NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
+ <SETG SCORE <+ ,SCORE 1>>
+ <TELL "Taken." CR>)
+ (<AND <VERB? POUR PUT>
+ <PRSI? ,BOTTLE>>
+ <PERFORM ,V?FILL ,BOTTLE ,PRSO>
+ <RTRUE>)
+ (<AND <VERB? DRINK-FROM WRING ;TASTE>
+ <PRSO? ,BOTTLE>>
+ <SQUEEZE-BOTTLE>
+ ;<COND (<NOT ,PRSI>
+ <MOVE ,BOTTLE ,PROTAGONIST>
+ <COND (,LAUD-LEFT
+ <TELL
+"A bubble of " D ,LAUD " forms on the tip of"
+T ,BOTTLE " then slurps back in." CR>)
+ ;(T
+ <TELL ,BOTTLE-EMPTY>)>)
+ (<PRSI? ,BOTTLE>
+ <IMPOSSIBLES>)
+ (<FSET? ,PRSI ,ACTORBIT>
+ <TELL ,POLITE>)
+ (<PRSI? ,CROC>
+ <PERFORM ,V?PUT ,BOTTLE ,CROC>
+ <RTRUE>)
+ (<AND <L? ,LAUD-LEFT 3>
+ <NOT <EQUAL? ,HERE ,LAFS-ROOM>>>
+ <TELL
+"You stop, deciding you might need some later." CR>)
+ (<EQUAL? ,LAUD-LEFT 0>
+ <TELL "There's no " D ,LAUD " left." CR>)
+ (<G? <SETG LAUD-LEFT <- ,LAUD-LEFT 1>> 0>
+ <MOVE ,BOTTLE ,PROTAGONIST>
+ <COND (<PRSI? ,MOUTH ,ME>
+ <QUEUE I-SLEEP 2>
+ <TELL ,SQUEEZE-DROPS "into" T ,MOUTH ".">)
+ (<PRSI? ,FLAGON>
+ <SETG FLAGON-POISONED T>
+;"*********** CUT" <DOPE-WINE>)
+ (<PRSI? ,PORK>
+ <SETG PORK-DOPED T>
+ <TELL ,SQUEEZE-DROPS "onto" T ,PORK
+". A patch of salt dissolves as" T ,LAUD " absorbs into the meat.">)
+ (<PRSI? ,BLUE-GLASS ,GREEN-GLASS>
+ <PUTP ,PRSI ,P?CONTENTS
+ <+ <GETP ,PRSI ,P?CONTENTS> ,POISONED>>
+ <DOPE-WINE>)
+ (T
+ <TELL ,SQUEEZE-DROPS "into" T ,PRSI ".">
+ <COND (<FSET? ,PRSI ,WEARBIT>
+ <TELL " It evaporates quickly.">)>)>
+ <COND (<ZERO? ,LAUD-LEFT>
+ <TELL
+" From the feel of it, the bottle is now empty.">)>
+ <CRLF>
+ <RTRUE>)>)
+ (<AND <VERB? POUR-FROM WRING>
+ <PRSO? ,LAUD>>
+ <SPECIFY-WHAT "put" ,LAUD>
+ ;<TELL
+,YOULL-HAVE-TO "specify what you want to put" T ,LAUD " into" ,PCR>)
+ (<VERB? DRINK-FROM> ;"BOTTLE is prsi"
+ <PERFORM ,V?WRING ,LAUD ,MOUTH>
+ <RTRUE>)
+ (<VERB? FILL>
+ <COND (<PRSI? ,BOTTLE>
+ <PERFORM ,V?POUR ,PRSI ,PRSO>
+ <RTRUE>)
+ (T
+ <TELL ,YOU-CANT "get anything into" TR ,BOTTLE>)>)
+ (<VERB? EXAMINE LOOK-INSIDE>
+ <TELL
+"It's a small leather bottle, with a tiny label on one side">
+ <COND (<G? ,LAUD-LEFT 0>
+ <TELL ". It appears to be almost empty">)>
+ <TELL ,PCR>)
+ (<VERB? READ>
+ <TELL
+"The label reads, \"Laudanum drops. Squeeze into a glass of wine
+to sleep free of pain and mental anguish.\"" CR>)>>
+
+
+<OBJECT LAUD ;"LAUDanum"
+ (IN BOTTLE)
+ (DESC "laudanum")
+ (SYNONYM LAUDANUM LIQUID DRUG DROPS)
+ (ADJECTIVE LAUD)
+ (FLAGS TRYTAKEBIT NDESCBIT)
+ (SIZE 1)
+ (ACTION LAUD-F)>
+
+<ROUTINE LAUD-F ()
+ <COND (<AND <VERB? POUR PUT WRING PUT-ON>
+ <PRSO? ,LAUD>>
+ <SQUEEZE-BOTTLE>)
+ (<VERB? TAKE>
+ <TELL "If you intend to drink" T ,LAUD ", say so." CR>)
+ (<VERB? EAT DRINK ;TASTE>
+ <PERFORM ,V?WRING ,BOTTLE ,ME>
+ <RTRUE>)
+ (<PRSO? ,LAUD>
+ <PERFORM-PRSA ,BOTTLE ,PRSI>
+ <RTRUE>)
+ (<PRSI? ,LAUD>
+ <PERFORM-PRSA ,PRSO ,BOTTLE>
+ <RTRUE>)
+ ;(<VERB? POUR PUT>
+ <PERFORM ,V?POUR ,BOTTLE ,PRSI>
+ <RTRUE>)>>
+
+<ROUTINE SQUEEZE-BOTTLE ()
+ <COND ;(<NOT ,PRSI> ;"checks for LAUD-LEFT in pre-action"
+ <MOVE ,BOTTLE ,PROTAGONIST>
+ <TELL
+"A bubble of " D ,LAUD " forms on the tip of"
+T ,BOTTLE " then slurps back in." CR>)
+ (<PRSI? ,BOTTLE>
+ <IMPOSSIBLES>)
+ (<FSET? ,PRSI ,ACTORBIT>
+ <TELL ,POLITE>)
+ (<PRSI? ,CROC>
+ <PERFORM ,V?PUT ,BOTTLE ,CROC>
+ <RTRUE>)
+ (<AND <L? ,LAUD-LEFT 3>
+ <NOT <EQUAL? ,HERE ,LAFS-ROOM>>>
+ <TELL
+"You stop, deciding you might need some later." CR>)
+ ;(<EQUAL? ,LAUD-LEFT 0> ;"checked in pre-action"
+ <TELL "There's no " D ,LAUD " left." CR>)
+ (<G? <SETG LAUD-LEFT <- ,LAUD-LEFT 1>> 0>
+ <MOVE ,BOTTLE ,PROTAGONIST>
+ <COND (<PRSI? ;,MOUTH ,ME>
+ <COND ;(<QUEUED? ,I-SLEEP> ;"checked in PRE-POUR"
+ <TELL ,YOU-HAVE-ALREADY
+" taken some. Any more might be dangerous!" CR>)
+ (T
+ <QUEUE I-SLEEP 2>
+ <PUTP ,ME ,P?CONTENTS ,POISONED>
+ <TELL ,SQUEEZE-DROPS "into" T ,MOUTH ".">)>)
+ (<PRSI? ,FLAGON>
+ <PUTP ,FLAGON ,P?CONTENTS ,POISONED>
+ <DOPE-WINE>)
+ (<PRSI? ,PORK>
+ <SETG PORK-DOPED T>
+ <TELL ,SQUEEZE-DROPS "onto" T ,PORK
+". A patch of salt dissolves as" T ,LAUD " absorbs into the meat.">)
+ (<PRSI? ,BLUE-GLASS ,GREEN-GLASS>
+ <PUTP ,PRSI ,P?CONTENTS
+ <+ <GETP ,PRSI ,P?CONTENTS> ,POISONED>>
+ <DOPE-WINE>)
+ (T
+ <TELL ,SQUEEZE-DROPS "into" T ,PRSI ".">
+ <COND (<FSET? ,PRSI ,WEARBIT>
+ <TELL " It evaporates quickly.">)>)>
+ <COND (<ZERO? ,LAUD-LEFT>
+ <TELL
+" From the feel of it, the bottle is now empty.">)>
+ <CRLF>
+ <RTRUE>)>>
+
+<ROUTINE DOPE-WINE ()
+ <SETG USED-LAUD T>
+ <TELL ,SQUEEZE-DROPS "into" T ,PRSI ".">
+ <COND (<IN? ,LAFOND ,HERE>
+ <TELL " You sense Lafond hesitate, then continue primping.">)>
+ <RTRUE>>
+
+<GLOBAL SQUEEZE-DROPS "You squeeze three colorless drops ">
+
+<OBJECT JEWEL
+ (DESC "jewelled brooch")
+ (SYNONYM BROOCH PIN CLASP)
+ (ADJECTIVE JEWELLED DIAMOND SAPPHI RUBY)
+ (FLAGS WEARBIT TAKEBIT)
+ (ACTION JEWEL-F)>
+
+<ROUTINE JEWEL-F ()
+ <COND (<OR <VERB? WEAR>
+ <AND <VERB? PUT-ON>
+ <PRSI? ,ME>>>
+ <TELL CTHE ,JEWEL " won't stay clasped" ,PCR>)
+ (<VERB? EXAMINE>
+ <TELL
+"All diamonds winking fire, tears of sapphire and crushed rubies in an oval
+setting, it is a pity that the clasp of" T ,JEWEL " has broken. The gold pin
+at the back swings about uselessly" ,PCR>)
+ (<VERB? FIX>
+ <TELL "That will have to be done by a goldsmith." CR>)
+ ;(<AND <VERB? TAKE WEAR>
+ <FSET? ,MANACLES ,MUNGBIT>>
+ <CANT-REACH ,JEWEL>)>>
+
+<OBJECT HAT
+ (IN LIBRARY) ;"EVERYBIT means it is on the knob."
+ (DESC "hat")
+ (DESCFCN HAT-F)
+ (SYNONYM HAT TRICORNE QUILL)
+ (ADJECTIVE PLUMED WHITE)
+ (FLAGS WEARBIT TAKEBIT SEARCHBIT EVERYBIT)
+ (CAPACITY 2)
+ (ACTION HAT-F)>
+
+<ROUTINE HAT-F ("OPTIONAL" (OARG <>))
+ <COND (.OARG
+ <COND (<FSET? ,HAT ,EVERYBIT>
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <TELL ,INDENT
+"An expensive hat is hanging on" A ,KNOB ".">)
+ (T
+ <RFALSE>)>)
+ (<VERB? EXAMINE>
+ <COND (<NOUN-USED ,W?QUILL ,HAT>
+ <TELL "It's a curling ostrich plume." CR>)
+ (T
+ <TELL
+"It is a crimson tricorne with a
+curling ostrich plume stuck in the crown." CR>)>)
+ (<VERB? TAKE WEAR>
+ <COND (<NOUN-USED ,W?QUILL ,HAT>
+ <TELL
+CTHE ,HAT " looks so drab without its plume that you cannot bear to." CR>)
+ (<FSET? ,HAT ,EVERYBIT>
+ <FCLEAR ,KNOB ,DEADBIT>
+ <FSET ,KNOB ,EVERYBIT>
+ <FCLEAR ,HAT ,EVERYBIT>
+ <MOVE ,HAT ,PROTAGONIST>
+ <FSET ,HAT ,TOUCHBIT>
+ <COND (<VERB? WEAR>
+ <FSET ,HAT ,WORNBIT>)>
+ <KNOB-CAUSES-TINGLE "As you lift the hat from its">)
+ (T
+ <RFALSE>)>)
+ ;(<AND <VERB? PUT>
+ <PRSO? ,QUILL>>
+ <MOVE ,QUILL ,HAT>
+ <TELL
+CTHE ,QUILL " adds just that extra spark of style to" TR ,HAT>)
+ (<AND <VERB? REMOVE TAKE-OFF>
+ <FSET? ,HAT ,WORNBIT>>
+ <FCLEAR ,HAT ,WORNBIT>
+ <TELL "Doffed" ,PCR>)
+ (<AND <VERB? PUT-ON>
+ <PRSO? ,HAT>>
+ <COND (<PRSI? ,ME ,HEAD>
+ <PERFORM ,V?WEAR ,HAT>
+ <RTRUE>)
+ (<FSET? ,PRSI ,ACTORBIT>
+ <COND (<FSET? ,PRSI ,DEADBIT>
+ <TELL "It slides off." CR>)
+ (T
+ <TELL CTHE ,HAT " doesn't go with what ">
+ <COND (<PRSI? ,LUCY>
+ <TELL "s">)>
+ <TELL "he's wearing." CR>)>)
+ (T
+ <WASTES>)>)>>
+
+<ROUTINE KNOB-CAUSES-TINGLE (STRING)
+ <TELL .STRING " knob on the wall, a low vibration tingles up your
+legs from the floor" ,PCR>>
+
+;<OBJECT QUILL
+ (IN HAT)
+ (DESC "feather plume")
+ (SYNONYM FEATHER QUILL PLUME SMOKE)
+ (ADJECTIVE OSTRICH)
+ (FLAGS TAKEBIT NDESCBIT ;BURNBIT)
+ (SIZE 2)
+ (ACTION QUILL-F)>
+
+;<ROUTINE QUILL-F ()
+ <COND (<AND <VERB? TAKE REMOVE>
+ <IN? ,QUILL ,HAT>
+ <NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
+ <TELL CTHE ,HAT " looks quite drab without" TR ,QUILL>)
+ ;(<VERB? WEAR>
+ <TELL
+"Sally Bowes won't be born for 200 years: you'd best wait" ,PCR>)
+ ;(<VERB? BURN>
+ <COND (<NOT <EQUAL? <LOC ,QUILL> ,PROTAGONIST>>
+ <TELL "You'd best be holding it" ,PCR>)
+ (T
+ <FSET ,QUILL ,MUNGBIT>
+ <QUEUE I-QUILL-BURNING 2>
+ <COND (<GLOBAL-IN? ,TORCH ,HERE>
+ <TELL
+"Standing on tiptoe to reach" T ,TORCH ", y">)
+ (<EQUAL? ,HERE ,KITCHEN>
+ <TELL "Y">)
+ (T
+ <CANT-REACH "any fire">
+ <RTRUE>)>
+ <TELL
+"ou set fire to" T ,QUILL ". It shrivels into
+a wallop of dusky, evil-smelling smoke" ,PCR>)>)
+ (<VERB? ALARM>
+ <COND (<PRSO? ,HERO>
+ <COND (<FSET? ,QUILL ,MUNGBIT>
+ <REVIVE-HERO ,QUILL>)
+ (T
+ <TELL
+"You tickle Jamison under his nose with" T ,QUILL ". ">
+ <COND (<FSET? ,HERO ,DEADBIT>
+ <TELL ,DOESNT-RESPOND>)
+ (T
+ <TELL "He sneezes" ,PCR>)>)>)
+ (T
+ <WASTES>)>)>>
+
+;<ROUTINE I-QUILL-BURNING ()
+ <REMOVE ,QUILL>
+ <TELL ,INDENT
+"With a soft curse you let go of" T ,QUILL " as it burns down to your
+fingers. The fine black ashes swirl away" ,PCR>> \ No newline at end of file
diff --git a/extras.zap b/extras.zap
new file mode 100644
index 0000000..5274c46
--- /dev/null
+++ b/extras.zap
@@ -0,0 +1,1966 @@
+
+
+ .FUNCT CRULLEY-F,OARG=0,X
+ ZERO? OARG /?CCL3
+ EQUAL? OARG,M-DESC? /TRUE
+ PRINT INDENT
+ EQUAL? HERE,BEACH \?CCL8
+ PRINTD CRULLEY
+ PRINTI " stands"
+ GRTR? LAFOND-CTR,6 \?CCL11
+ PRINTI ", pistol ready,"
+ PRINT HALFWAY
+ RTRUE
+?CCL11: PRINTI " with the dragoons."
+ RTRUE
+?CCL8: EQUAL? HERE,CABIN \FALSE
+ PRINTD CRULLEY
+ PRINTI " the pirate"
+ FSET? CRULLEY,DEADBIT \?CCL16
+ PRINTI " lies unconscious on the floor."
+ RTRUE
+?CCL16: PRINTI ", hook raised, leering, comes toward you."
+ RTRUE
+?CCL3: EQUAL? CRULLEY,WINNER \?CCL18
+ FSET? CRULLEY,DEADBIT \?CCL21
+ PRINT DOESNT-RESPOND
+ RTRUE
+?CCL21: EQUAL? PRSA,V?TELL-ABOUT \?CCL23
+ EQUAL? PRSO,ME \?CCL23
+ CALL NOUN-USED,W?HOOK,CRULLEY
+ ZERO? STACK /?CCL28
+ PRINTI "He snarls at the memory, ""'Twere bit off by a monster crocodile."""
+ CRLF
+ JUMP ?CND26
+?CCL28: EQUAL? PRSI,LAFOND \?CCL30
+ PRINTI """'E's a hard 'un, who won't take no guff. But 'e pays well"
+ FSET? BEACH,TOUCHBIT /?CND31
+ PRINTI " -- er, so I hear"
+?CND31: PRINTI "."""
+ CRLF
+ JUMP ?CND26
+?CCL30: PRINTD CRULLEY
+ PRINTI " ignores you"
+ PRINT PCR
+?CND26: CALL STOP
+ RSTACK
+?CCL23: EQUAL? PRSA,V?HELLO \?CCL34
+ PRINTR """Har-har."""
+?CCL34: EQUAL? PRSA,V?KISS \?CCL36
+ EQUAL? PRSO,ME \?CCL36
+ PRINTR """Wi' a wannion! I likes me ladies forward!"""
+?CCL36: CALL COM-CHECK,CRULLEY >X
+ ZERO? X /FALSE
+ EQUAL? X,M-FATAL /FALSE
+ RTRUE
+?CCL18: EQUAL? PRSA,V?CUT,V?KILL \?CCL45
+ FSET? CRULLEY,DEADBIT \?CCL48
+ CALL MAN-IS-DOWN
+ RSTACK
+?CCL48: ZERO? PRSI /?CTR49
+ EQUAL? PRSI,HANDS \?CCL50
+?CTR49: EQUAL? P-PRSA-WORD,W?SLAP \?CCL55
+ PRINTI "Slap! The pirate fingers the red welt left by"
+ CALL TPRINT,HANDS
+ PRINTR ", and laughs."
+?CCL55: IN? COFFER,PROTAGONIST \?CCL57
+ ZERO? PRSI \?CCL57
+ CALL PERFORM,V?KILL,CRULLEY,COFFER
+ RTRUE
+?CCL57: IN? RAPIER,PROTAGONIST \?CCL61
+ ZERO? PRSI \?CCL61
+ CALL PERFORM,V?KILL,CRULLEY,RAPIER
+ RTRUE
+?CCL61: CALL CANT-HURT,STR?334
+ RSTACK
+?CCL50: EQUAL? PRSI,COFFER \?CCL65
+ INC 'ATTACK-C
+ SET 'CRULLEY-HIT,TRUE-VALUE
+ PRINTI "With all your strength you whack the pirate"
+ PRINT OVER-HEAD
+ CALL TRPRINT,PRSI
+ MOVE PROTAGONIST,HERE
+ CALL DEQUEUE,I-CRULLEY
+ CALL I-CRULLEY
+ RSTACK
+?CCL65: EQUAL? PRSI,RAPIER \?CCL67
+ FSET? CRULLEY,EVERYBIT \?CCL70
+ FSET? CRULLEY,MUNGBIT \?CCL73
+ PRINT YOU-CANT
+ PRINTI "very well reach"
+ CALL TPRINT,CRULLEY
+ PRINTI " when he's down in"
+ CALL TRPRINT,WELL
+ RSTACK
+?CCL73: CALL DEQUEUE,I-CDUNG
+ INC 'SCORE
+ SET 'CRULLEY-CTR,1
+ CALL QUEUE,I-CCLIMBS-UP,2
+ FSET CRULLEY,MUNGBIT
+ FSET CRULLEY,NDESCBIT
+ MOVE CRULLEY,TRAP
+ REMOVE WHIP
+ PRINTI "You flick"
+ CALL TPRINT,RAPIER
+ PRINTI " across his chest, barely scratching him. He cries, ""Avast me! Pricked by a woman!"" and trips into"
+ CALL TRPRINT,TRAP
+ PRINT INDENT
+ PRINTI "You peer down the hole to find "
+ PRINTD CRULLEY
+ PRINTI " hanging in midair, his hook caught in the rocks a few yards down. He curses and starts to climb up the sheer slimy walls of"
+ CALL TRPRINT,WELL
+ RSTACK
+?CCL70: FSET CRULLEY,EVERYBIT
+ PRINTD CRULLEY
+ PRINTI " seems more amazed than frightened of your attack, guessing correctly that you hardly know the tip from the hilt of"
+ CALL TPRINT,RAPIER
+ PRINTI ". He steps sideways in surprise, so he stands at"
+ PRINT THE-EDGE
+ CALL TRPRINT,TRAP
+ RSTACK
+?CCL67: PRINTI "You slap"
+ CALL TPRINT,CRULLEY
+ PRINT OVER-HEAD
+ CALL TPRINT-PRSI
+ PRINTI ", to no effect"
+ PRINT PCR
+ RTRUE
+?CCL45: EQUAL? PRSA,V?KISS \?CCL75
+ SET 'WINNER,CRULLEY
+ CALL PERFORM,V?KISS,ME
+ SET 'WINNER,PROTAGONIST
+ RTRUE
+?CCL75: EQUAL? PRSA,V?KICK \?CCL77
+ CALL CANT-HURT,STR?335
+ RSTACK
+?CCL77: EQUAL? PRSA,V?PUT-ON,V?PUT,V?THROW /?CTR78
+ EQUAL? PRSA,V?THROW-AT \?CCL79
+?CTR78: FSET? CRULLEY,MUNGBIT \?CCL84
+ EQUAL? PRSO,RAPIER \?CCL87
+ CALL PERFORM,V?PUT,RAPIER,TRAP
+ RTRUE
+?CCL87: EQUAL? PRSO,RETICULE /FALSE
+ REMOVE PRSO
+ PRINTD CRULLEY
+ PRINTI " curses as"
+ CALL TPRINT-PRSO
+ PRINTI " sails past him down into"
+ CALL TRPRINT,WELL
+ RSTACK
+?CCL84: EQUAL? PRSO,COFFER \FALSE
+ CALL PERFORM,V?KILL,CRULLEY,PRSO
+ RSTACK
+?CCL79: EQUAL? PRSA,V?SEARCH \?CCL93
+ FSET? CRULLEY,DEADBIT \?CCL96
+ PRINTR "And dirty your lily hands? Never!"
+?CCL96: FSET? CRULLEY,MUNGBIT \?CCL98
+ CALL CANT-REACH,CRULLEY
+ RSTACK
+?CCL98: PRINTR "You are uncomfortably sure he would love to have you frisk him."
+?CCL93: EQUAL? PRSA,V?GIVE \?CCL100
+ EQUAL? PRSO,BANKNOTE \?CCL100
+ EQUAL? HERE,BEACH /?CCL100
+ PRINTI "He takes it, smiling blackly"
+ PRINT PCR
+ RTRUE
+?CCL100: EQUAL? PRSA,V?EXAMINE \FALSE
+ CALL NOUN-USED,W?HOOK,CRULLEY
+ ZERO? STACK /?CCL108
+ PRINTR "The hook replaces one of his hands."
+?CCL108: PRINTI "The pirate's unsavory face is crisscrossed with scars, and those not from shaving nicks, to judge by his scruffy beard. A hook replaces one of his hands at the end of a torn black sleeve"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT I-CRULLEY
+ PRINT INDENT
+ ZERO? ATTACK-C \?CCL3
+ FSET? CRULLEY,TOUCHBIT /?CCL3
+ CALL QUEUE,I-MEET-HERO,2
+ FSET CRULLEY,TOUCHBIT
+ MOVE CRULLEY,CABIN
+ CALL QUEUE,I-CRULLEY,-1
+ FSET DOOR,MUNGBIT
+ PRINTI "Crash! You whirl around to see"
+ CALL TPRINT,DOOR
+ PRINTI " shatter, kicked by a hulking man, his twisted visage blackened with soot and blood. "
+ JUMP ?CND1
+?CCL3: EQUAL? ATTACK-C,1 \?CND1
+ PRINTI "The pirate stumbles, dizzy. "
+?CND1: EQUAL? ATTACK-C,2 \?CCL9
+ FSET CRULLEY,DEADBIT
+ PRINT STUNNED-THE-SAILOR
+ PRINT PCR
+ JUMP ?CND7
+?CCL9: CALL CRULLEY-SAYS
+?CND7: INC 'CRULLEY-CTR
+ RETURN CRULLEY-CTR
+
+
+ .FUNCT CRULLEY-SAYS
+ PRINTC 34
+ GET MENACES,CRULLEY-CTR
+ PRINT STACK
+ PRINTI ","" "
+ EQUAL? ATTACK-C,1 \?CCL3
+ PRINTI "slurs"
+ JUMP ?CND1
+?CCL3: PRINTI "sniggers"
+?CND1: PRINTI " the pirate"
+ EQUAL? CRULLEY-CTR,1 \?CCL6
+ PRINTI ". His breath is heavy with rum"
+ JUMP ?CND4
+?CCL6: RANDOM 100
+ LESS? 60,STACK /?CND4
+ PRINTI ", advancing toward you"
+?CND4: PRINT PCR
+ RTRUE
+
+
+ .FUNCT I-OVERHEAR-CRULLEY
+ EQUAL? HERE,CREWS-QUARTERS \FALSE
+ SET 'HEARD-CRULLEY,TRUE-VALUE
+ FSET ANCHOR,MUNGBIT
+ FSET LEVER,MUNGBIT
+ CALL QUEUE,I-SEE-CRULLEY-ESCAPE,20
+ CALL QUEUE,I-LOOK-SEA,10
+ PRINT INDENT
+ PRINTI """I gotta let"
+ CALL TPRINT,LAFOND
+ PRINTI " know 'e's comin'."""
+ CALL TPRINT,CRULLEY
+ PRINTI " stands on deck above, talking to himself, his voice floating down through"
+ CALL APRINT,GRATE
+ PRINTI " in"
+ CALL TPRINT,CEILING
+ PRINTI ". ""First, I do in the mates aboard-ship, with this and t'other mischief,"" he grunts, and you hear a snapping noise, like a taut rope being cut. ""Now to warn the boss and collect me pay. Off I go, har."" He dives into"
+ CALL TRPRINT,SEA
+ RSTACK
+
+
+ .FUNCT I-SEE-CRULLEY-ESCAPE
+ CALL SHIP-BOARD,HERE
+ ZERO? STACK /?CCL3
+ CALL INNER-DECK,HERE
+ ZERO? STACK \?CCL3
+ PRINT INDENT
+ PRINTI "Your eyes are drawn to a flicker of light off the sea. Squinting, you see a man swimming to shore, moonlight flashing off his hook."
+ EQUAL? HERE,POOP,QUARTERDECK,MAIN-DECK /?CCL7
+ EQUAL? HERE,FOCSLE \?CND6
+?CCL7: PRINTR " A wisp of breeze brings an odor of onions and rum, and the occasional gargling chuckle, ""...mischief, har...reefs."""
+?CND6: CRLF
+ RTRUE
+?CCL3: CALL QUEUE,I-SEE-CRULLEY-ESCAPE,3
+ RSTACK
+
+
+ .FUNCT I-CDUNG
+ LESS? CRULLEY-CTR,7 \?CCL3
+ PRINT INDENT
+ PRINTD CRULLEY
+ EQUAL? CRULLEY-CTR,1 \?CND4
+ PRINTI " steps leering out of the shadows and"
+?CND4: PRINTI " cracks"
+ CALL TPRINT,WHIP
+ PRINTI " near you, hopping you towards the open "
+ PRINTD TRAP
+ PRINTI ". """
+ ZERO? CRULLEY-HIT /?CCL8
+ EQUAL? CRULLEY-CTR,1 \?CCL8
+ CALL QUEUE,I-REPLY,2
+ SET 'AWAITING-REPLY,17
+ PRINTI "Come to hit me agin, are ye?"
+ JUMP ?CND6
+?CCL8: SET 'AWAITING-REPLY,2
+ CALL QUEUE,I-REPLY,2
+ CALL PICK-ONE,ABUSES
+ PRINT STACK
+?CND6: PRINTC 34
+ CRLF
+ JUMP ?CND1
+?CCL3: PRINT INDENT
+ PRINTD CRULLEY
+ PRINTI " snaps"
+ CALL TPRINT,WHIP
+ PRINTI " around your neck, jerking you sideways and down through"
+ CALL TPRINT,TRAP
+ PRINTC 46
+ CALL JIGS-UP,FALL-TO-BOTTOM
+?CND1: INC 'CRULLEY-CTR
+ RETURN CRULLEY-CTR
+
+
+ .FUNCT I-CCLIMBS-UP
+ CALL QUEUE,I-CCLIMBS-UP,-1
+ INC 'CRULLEY-CTR
+ EQUAL? CRULLEY-CTR,10 \?CCL3
+ SET 'CRULLEY-BACK,TRUE-VALUE
+ FCLEAR CRULLEY,NDESCBIT
+ CALL DEQUEUE,I-CCLIMBS-UP
+ EQUAL? HERE,DUNGEON /?CCL6
+ FCLEAR CRULLEY,MUNGBIT
+ MOVE CRULLEY,DUNGEON
+ RFALSE
+?CCL6: FSET? TRAP,OPENBIT /?CCL8
+ PRINT INDENT
+ PRINTI "Roaring with anger,"
+ CALL TPRINT,CRULLEY
+ PRINTI " slaps"
+ CALL TPRINT,TRAP
+ PRINTI " back on its hinges and"
+ JUMP ?CND4
+?CCL8: PRINT INDENT
+ PRINTD CRULLEY
+?CND4: PRINTI " leaps out of"
+ CALL TPRINT,WELL
+ PRINTI ", seizing you."
+ CALL JIGS-UP,FALL-TO-BOTTOM
+ RSTACK
+?CCL3: RANDOM 100
+ LESS? 50,STACK /FALSE
+ EQUAL? HERE,DUNGEON \FALSE
+ PRINT INDENT
+ PRINTI "Sounds of scraping hook against stone and curses echo out of"
+ CALL TPRINT,WELL
+ FSET? TRAP,OPENBIT /?CND13
+ PRINTI ", muffled by"
+ CALL TPRINT,TRAP
+?CND13: PRINT PCR
+ RTRUE
+
+
+ .FUNCT WHIP-F
+ EQUAL? PRSA,V?TAKE \FALSE
+ PRINTD CRULLEY
+ PRINTI " snaps"
+ CALL TPRINT,WHIP
+ PRINTR " near you. ""Get away wit' ye."""
+
+
+ .FUNCT DAVIS-F
+ EQUAL? PRSA,V?MUNG,V?KICK,V?KILL /?CTR2
+ EQUAL? PRSA,V?KISS \?CCL3
+?CTR2: PRINTD DAVIS
+ PRINTR " dodges."
+?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL7
+ PRINTD DAVIS
+ PRINTR " is ugly with fear."
+?CCL7: EQUAL? DAVIS,WINNER \FALSE
+ CALL FAILS-TO-NOTICE
+ RSTACK
+
+
+ .FUNCT COOKIE-F,OARG=0,X
+ ZERO? OARG /?CCL3
+ EQUAL? OARG,M-DESC? /TRUE
+ PRINT INDENT
+ EQUAL? HERE,GALLEY \?CCL8
+ PRINTI "An entirely bald man sits here, carving into his peg leg"
+ JUMP ?CND6
+?CCL8: ZERO? COOKIE-FIGHTING-CROC /?CCL10
+ PRINTI "The pool is roily with the writhing bodies of"
+ CALL TPRINT,COOKIE
+ PRINTI " and"
+ CALL TPRINT,CROC
+ JUMP ?CND6
+?CCL10: CALL QUEUED?,I-ENDGAME
+ ZERO? STACK /?CCL12
+ EQUAL? HERE,BEACH \?CCL12
+ FSET? COOKIE,DEADBIT \?CCL17
+ PRINTI "Lucy cleans the sand from Quick's quiescent face, as Papa "
+ FSET? LAFOND,DEADBIT \?CCL20
+ PRINTI "sneaks up the cliff stairs"
+ JUMP ?CND6
+?CCL20: PRINTI "stands nearby"
+ IN? GARTER,DAD \?CND6
+ PRINTI ", holding"
+ CALL TPRINT,GARTER
+ JUMP ?CND6
+?CCL17: PRINTD COOKIE
+ PRINTI ", Lucy and your father are moving towards"
+ CALL TPRINT,SKIFF
+ JUMP ?CND6
+?CCL12: PRINTD COOKIE
+ PRINTI " chews anxiously at a cheroot"
+?CND6: PRINTC 46
+ RTRUE
+?CCL3: EQUAL? COOKIE,WINNER \?CCL24
+ FSET? COOKIE,DEADBIT \?CCL27
+ PRINT DOESNT-RESPOND
+ RTRUE
+?CCL27: EQUAL? PRSA,V?READ \?CCL29
+ PRINTR """I can't read! I'm a cook, not a gentleman!"""
+?CCL29: EQUAL? PRSA,V?HELLO \?CCL31
+ PRINTI """Hullo -- boy!"" He winks at you"
+ PRINT PCR
+ RTRUE
+?CCL31: EQUAL? PRSA,V?SAVE-SOMETHING,V?HELP \?CCL33
+ EQUAL? HERE,GALLEY \?CCL36
+ PRINTI """Eh? Don't be panicking. We'll be fine."" He carves a smile into his leg"
+ PRINT PCR
+ RTRUE
+?CCL36: PRINTD COOKIE
+ PRINTR " grumbles, ""What d'ye think I'm trying to do!"""
+?CCL33: EQUAL? PRSA,V?FIX \?CCL38
+ EQUAL? PRSO,DAGGER \?CCL38
+ PRINTR """I never was able to sharpen that dagger."""
+?CCL38: EQUAL? PRSA,V?TELL-ABOUT \?CCL42
+ EQUAL? PRSO,ME \?CCL42
+ EQUAL? PRSI,HERO \?CCL47
+ IN? HERO,MANACLES \?CCL50
+ PRINTI """I'm tryin' to find him!"""
+ CRLF
+ JUMP ?CND45
+?CCL50: PRINTI """The Cap'n? I been with him since the war. Then came Lafond."""
+ CRLF
+ JUMP ?CND45
+?CCL47: EQUAL? PRSI,COOKIE \?CCL52
+ PRINTI """'Rodney Quick's me name, cookin's me game.
+Lost me leg in sixty-eight, 'tis why I bake.
+Losin' me hearin' in every fight, but I've got me sight --
+And come our Good Lord's 1701, I'll lose me life to a ruffian's gun.'
+-- Old dame told me that. Leastways, I've several years left."""
+ CRLF
+ JUMP ?CND45
+?CCL52: EQUAL? PRSI,LAFOND \?CCL54
+ PRINTI """He murdered Cap'n's brother and family these three year'n past. Cap'n's been searching for a time to avenge the dead ones, and now he's found it."""
+ CRLF
+ JUMP ?CND45
+?CCL54: EQUAL? PRSI,CRULLEY \?CCL56
+ PRINTI """Don't trust 'im. Never 'ave."""
+ CRLF
+ JUMP ?CND45
+?CCL56: PRINTD COOKIE
+ PRINTI " cocks an ear, ""Eh, what's that?"""
+ CRLF
+?CND45: CALL STOP
+ RSTACK
+?CCL42: EQUAL? PRSA,V?GIVE \?CCL58
+ EQUAL? PRSO,ME \?CCL58
+ IN? RAPIER,COOKIE \?CCL58
+ CALL PERFORM,V?TAKE,RAPIER
+ RTRUE
+?CCL58: EQUAL? PRSA,V?FOLLOW \?CCL63
+ EQUAL? PRSO,ME \?CCL63
+ PRINTI """Foller you?"
+ EQUAL? HERE,GALLEY /?CND66
+ PRINTI " Anywheres"
+?CND66: PRINTR "!"""
+?CCL63: EQUAL? PRSA,V?TAKE \?CCL69
+ EQUAL? PRSO,PAIR \?CCL69
+ EQUAL? HERE,X-ROOM \?CCL69
+ PRINTR """No, lass. A lady don't use guns, and I've no need for one."""
+?CCL69: CALL COM-CHECK,COOKIE >X
+ ZERO? X /FALSE
+ EQUAL? X,M-FATAL /FALSE
+ RTRUE
+?CCL24: EQUAL? PRSA,V?EXAMINE \?CCL79
+ PRINTD COOKIE
+ PRINTR " is a grizzled old man with a peg-leg."
+?CCL79: EQUAL? PRSA,V?TELL-ABOUT \?CCL81
+ CALL NOUN-USED,W?GUNPOW,SUPPLIES
+ ZERO? STACK /?CCL84
+ PRINTR """Clam chowder? Never make it -- too fancy."""
+?CCL84: EQUAL? PRSI,REEFS \?CCL86
+ PRINTR """We dropped the sea anchor -- no need to fear."""
+?CCL86: EQUAL? PRSI,SUPPLIES \?CCL88
+ PRINTR """Aye, you must mean the supplies in the hold. Yep, that's where we store them."""
+?CCL88: EQUAL? PRSI,FIRE,HOLD \?CCL90
+ PRINTR """Fire for the cold? I think it be too warm..."""
+?CCL90: EQUAL? PRSI,FUSE \?CCL92
+ PRINTR """Lose sommat? I be always losing things. Think there be thieves aboard."""
+?CCL92: EQUAL? PRSI,HERO \FALSE
+ ZERO? COOKIE-FIGHTING-CROC /?CCL97
+ CALL FAILS-TO-NOTICE
+ RSTACK
+?CCL97: CALL HELD?,HERO,DUNGEON
+ ZERO? STACK /?CCL99
+ PRINTI """Well, show me, lass!"" he grumbles"
+ PRINT PCR
+ RTRUE
+?CCL99: PRINTI """He's a fine man, is Cap'n,"" he smiles"
+ PRINT PCR
+ RTRUE
+?CCL81: EQUAL? PRSA,V?KISS \?CCL101
+ PRINTR """Nah, me pretty, ye belong to Cap'n."""
+?CCL101: EQUAL? PRSA,V?GIVE \?CCL103
+ EQUAL? PRSO,BANKNOTE \?CCL103
+ PRINTI """I hain't no need fer that kind of money,"" he waves away your offer"
+ PRINT PCR
+ RTRUE
+?CCL103: EQUAL? PRSA,V?CUT,V?MUNG,V?KILL \FALSE
+ FSET? COOKIE,DEADBIT \?CCL110
+ CALL MAN-IS-DOWN
+ RSTACK
+?CCL110: PRINTR "He holds you off, ""'Ere now, there's no call for that!"""
+
+
+ .FUNCT I-COOKIE,FIRST-MOVE=0
+ ZERO? FIRST-MOVE /?CCL3
+ SET 'COOKIE-LOOKING,FALSE-VALUE
+ SET 'QUESTIONER,COOKIE
+ SET 'AWAITING-REPLY,10
+ CALL QUEUE,I-REPLY,2
+ ZERO? CLOCK-WAIT /?CCL6
+ PUSH 1
+ JUMP ?CND4
+?CCL6: PUSH 2
+?CND4: CALL QUEUE,I-COOKIE,STACK
+ MOVE COOKIE,HERE
+ FSET COOKIE,MUNGBIT
+ SET 'CRULLEY-CTR,0
+ PRINT INDENT
+ PRINTD COOKIE
+ PRINTI " rushes up to you, looking worried. ""Miss, we must find the Cap'n. Have ye any idea where to look?"""
+ CRLF
+ JUMP ?CND1
+?CCL3: IN? COOKIE,HERE /?CCL8
+ CALL DEQUEUE,I-COOKIE
+ JUMP ?CND1
+?CCL8: EQUAL? REACTION,REACTION-POSITIVE /?CTR9
+ EQUAL? PRSA,V?WALK \?CCL10
+?CTR9: PRINT INDENT
+ PRINTD COOKIE
+ PRINTI " grins broadly, ""I knew we could depend on you, lass. Lead on!"""
+ CRLF
+ JUMP ?CND1
+?CCL10: EQUAL? CRULLEY-CTR,2 \?CCL14
+ MOVE COOKIE,LIBRARY
+ EQUAL? REACTION,REACTION-NEGATIVE \?CCL17
+ PRINT INDENT
+ PRINTI """Hell and damnation, I was afraid of that"
+ JUMP ?CND15
+?CCL17: PRINT INDENT
+ PRINTI "He harrumphs. ""So ye do not care fer him after all"
+?CND15: PRINTI "!"" "
+ PRINTD COOKIE
+ PRINTI " orders the men to search, moving off himself.
+"
+ JUMP ?CND1
+?CCL14: SET 'QUESTIONER,COOKIE
+ SET 'AWAITING-REPLY,10
+ CALL QUEUE,I-REPLY,2
+ CALL QUEUE,I-COOKIE,1
+ PRINT INDENT
+ PRINTD COOKIE
+ PRINTI " urges you, ""Think agin. Any idea?"""
+ CRLF
+?CND1: INC 'CRULLEY-CTR
+ RETURN CRULLEY-CTR
+
+
+ .FUNCT CREW-F
+ EQUAL? CREW,WINNER \?CCL3
+ EQUAL? PRSA,V?HELLO \?CCL6
+ PRINTI "He grins at you toothlessly"
+ PRINT PCR
+ JUMP ?CND4
+?CCL6: ZERO? ENDGAME /?CCL8
+ EQUAL? PRSA,V?FIND,V?WHERE \?CCL8
+ EQUAL? PRSO,HERO,COOKIE \?CCL8
+ CALL PERFORM,V?TELL-ABOUT,ME,PRSO
+ RTRUE
+?CCL8: EQUAL? PRSA,V?TELL-ABOUT \?CCL13
+ EQUAL? PRSO,ME \?CCL13
+ ZERO? ENDGAME /?CCL18
+ EQUAL? PRSI,HERO,COOKIE \?CCL18
+ EQUAL? PRSI,COOKIE \?CCL23
+ PRINTI """'E went"
+ JUMP ?CND21
+?CCL23: PRINTI """Cookie be"
+?CND21: PRINTI " a-lookin' for Cap'n."""
+ CRLF
+ JUMP ?CND4
+?CCL18: EQUAL? PRSI,LAFOND \?CCL25
+ PRINTI """'E be an evil man, I do hear."""
+ CRLF
+ JUMP ?CND4
+?CCL25: CALL FAILS-TO-NOTICE
+ JUMP ?CND4
+?CCL13: PRINTI """I'm busy. Do it yerself, boy."" He cuffs you aside."
+ CRLF
+?CND4: CALL STOP
+ RSTACK
+?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
+ PRINTD HERO
+ PRINTI "'s crew are a ragged, toothless bunch, all sporting jagged scars. Despite their abhorrent appearances, they call friendlily to each other"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT LUCY-F,OARG=0
+ ZERO? OARG /?CCL3
+ EQUAL? OARG,M-DESC? /TRUE
+ EQUAL? HERE,KITCHEN \FALSE
+ PRINT INDENT
+ FSET? LUCY,TOUCHBIT \?CCL11
+ PRINTD LUCY
+ JUMP ?CND9
+?CCL11: PRINTI "A blond woman"
+?CND9: CALL RUNNING?,I-LUCY
+ ZERO? STACK /?CCL14
+ PRINTI " stands talking to you"
+ JUMP ?CND12
+?CCL14: PRINTI " huddles alone by the fire, as if cold"
+?CND12: PRINTC 46
+ RTRUE
+?CCL3: EQUAL? LUCY,WINNER \?CCL16
+ EQUAL? PRSA,V?TELL-ABOUT \?CCL19
+ EQUAL? PRSO,ME \?CCL19
+ CALL NOUN-USED,W?LIBRARY,HOUSE
+ ZERO? STACK /?CCL24
+ PRINTI """I ain't allowed in that wing of"
+ CALL TRPRINT,HOUSE
+ JUMP ?CND22
+?CCL24: EQUAL? PRSI,LAFOND \?CCL26
+ PRINTI """He's a regular lout who don't like my cooking."""
+ CRLF
+ JUMP ?CND22
+?CCL26: CALL FAILS-TO-NOTICE
+?CND22: CALL STOP
+ RSTACK
+?CCL19: EQUAL? PRSA,V?HELLO \?CCL28
+ PRINTI "She smiles"
+ PRINT PCR
+ RTRUE
+?CCL28: EQUAL? PRSA,V?KISS \?CCL30
+ EQUAL? PRSO,ME \?CCL30
+ PRINTR """I hardly know you!"" she gasps."
+?CCL30: CALL COM-CHECK,LUCY >OARG
+ ZERO? OARG /FALSE
+ EQUAL? OARG,M-FATAL /FALSE
+ RTRUE
+?CCL16: EQUAL? PRSA,V?TELL-ABOUT \?CCL39
+ EQUAL? PRSI,DAD \?CCL39
+ FSET? DAD,TOUCHBIT \?CCL44
+ PRINTR """Yes, he told me."""
+?CCL44: SET 'AWAITING-REPLY,2
+ CALL QUEUE,I-REPLY,2
+ PRINTR "She yelps, ""Dear Dimsy, how can I save him?"""
+?CCL39: EQUAL? PRSA,V?GIVE \?CCL46
+ EQUAL? PRSO,GARTER \?CCL49
+ FSET? GARTER,INVISIBLE /?CCL49
+ PRINTD LUCY
+ PRINTR " frowns. ""No, you silly boy! Give that to Dimsford!"""
+?CCL49: EQUAL? PRSO,BANKNOTE \FALSE
+ PRINTD LUCY
+ PRINTR " slaps you hard across the face. ""I'm not that sort of girl!"""
+?CCL46: EQUAL? PRSA,V?LISTEN \?CCL55
+ CALL RUNNING?,I-LUCY
+ ZERO? STACK /?CCL58
+ PRINTR "You are listening to her!"
+?CCL58: PRINTI "She talks a lot, but doesn't say much"
+ PRINT PCR
+ RTRUE
+?CCL55: EQUAL? PRSA,V?ASK-FOR \?CCL60
+ EQUAL? PRSI,GARTER \?CCL60
+ CALL PERFORM,V?TAKE,GARTER
+ RTRUE
+?CCL60: EQUAL? PRSA,V?EXAMINE \FALSE
+ PRINTI "Lucy is a very pretty woman, a few years your senior, her yellow hair neatly arranged. She wears a cook's apron"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT I-LUCY
+ FCLEAR GARTER,INVISIBLE
+ CALL THIS-IS-IT,GARTER
+ PRINT INDENT
+ PRINTI """I haven't found Lafond's papers, I'm watched too closely. Tell Dimsford that I -- I'm scared, and I want him to come get me. Give this to him -- he'll recognize it."" Lucy slides"
+ CALL APRINT,GARTER
+ PRINTI " down her leg and holds it out to you"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT I-CATCH-KISS
+ FCLEAR FOREST,EVERYBIT
+ RTRUE
+
+
+ .FUNCT BUTLER-F,OARG=0,CONTENTS=0
+ ZERO? OARG /?CCL3
+ EQUAL? OARG,M-DESC? /TRUE
+ PRINT INDENT
+ CALL CTPRINT,BUTLER
+ FSET? BUTLER,DEADBIT /?CCL8
+ PRINTI " stands near the entrance to "
+ EQUAL? HERE,FOYER \?CCL11
+ PRINTI "the ballroom"
+ JUMP ?CND6
+?CCL11: PRINTI "the hallway"
+ JUMP ?CND6
+?CCL8: PRINTI " lies on the floor, prone and snoring loudly"
+?CND6: PRINTC 46
+ RTRUE
+?CCL3: EQUAL? BUTLER,WINNER \?CCL13
+ FSET? BUTLER,DEADBIT \?CCL16
+ PRINT DOESNT-RESPOND
+ RTRUE
+?CCL16: EQUAL? PRSA,V?HELLO \?CCL18
+ PRINTI "He bows"
+ PRINT PCR
+ RTRUE
+?CCL18: EQUAL? PRSA,V?TAKE \?CCL20
+ EQUAL? PRSO,BLUE-GLASS,BANKNOTE,INVITE /?CTR19
+ EQUAL? PRSO,GREEN-GLASS \?CCL20
+?CTR19: SET 'WINNER,PROTAGONIST
+ CALL PERFORM,V?GIVE,PRSO,BUTLER
+ SET 'WINNER,BUTLER
+ RTRUE
+?CCL20: EQUAL? PRSA,V?TELL-ABOUT \?CCL26
+ EQUAL? PRSO,ME \?CCL26
+ EQUAL? PRSI,LAFOND \?CCL26
+ CALL QUEUED?,I-SUMMONS
+ ZERO? STACK \?CTR31
+ FSET? LDOOR,LOCKEDBIT /?CCL32
+?CTR31: EQUAL? HERE,LAFS-ROOM \?CCL37
+ PRINTR """He's gone for water, Miss."""
+?CCL37: PRINTI """He's awaiting you now, Miss. In his room."""
+ CRLF
+ MOVE LAFOND,LAFS-ROOM
+ RTRUE
+?CCL32: EQUAL? DANCED-WITH,LAFOND \?CCL39
+ PRINTR """He has retired to his room, and requests not to be disturbed."""
+?CCL39: PRINTR """The governor is in the ballroom, Miss."""
+?CCL26: CALL COM-CHECK,BUTLER >OARG
+ ZERO? OARG /FALSE
+ EQUAL? OARG,M-FATAL /FALSE
+ RTRUE
+?CCL13: EQUAL? PRSA,V?EXAMINE \?CCL46
+ CALL CTPRINT,BUTLER
+ PRINTI ", scarred and burly, looks uncomfortable in his formal blacks, as if he'd prefer the rags of a pirate"
+ FSET? BUTLER,DEADBIT \?CND47
+ PRINTI ". He lies snoring on the floor"
+?CND47: PRINT PCR
+ RTRUE
+?CCL46: FSET? BUTLER,DEADBIT \?CCL50
+ EQUAL? PRSA,V?SEARCH \?CCL53
+ PRINT NOTHING-NEW
+ RTRUE
+?CCL53: EQUAL? PRSA,V?HELLO,V?ASK-ABOUT,V?TELL /FALSE
+ PRINT DOESNT-RESPOND
+ RTRUE
+?CCL50: EQUAL? PRSA,V?SHOW,V?GIVE \?CCL57
+ EQUAL? PRSO,BANKNOTE,INVITE \?CCL60
+ CALL BRIBE-BUTLER,PRSO
+ RSTACK
+?CCL60: EQUAL? PRSO,GREEN-GLASS,BLUE-GLASS \FALSE
+ PRINTI "He looks pleased"
+ GETP PRSO,P?CONTENTS
+ EQUAL? STACK,0,POISONED \?CCL65
+ PRINTR ", then disappointed. ""There's no wine in that glass, Ma'am."""
+?CCL65: GETP PRSO,P?CONTENTS
+ EQUAL? STACK,W-P \?CND63
+ SET 'DRUGGEE,BUTLER
+ CALL QUEUE,I-WATCH-SLEEP,2
+?CND63: MOVE PRSO,BUTLER
+ PUTP PRSO,P?CONTENTS,0
+ PRINTI ". ""I am rather parched, Ma'am,"" he says, taking and emptying"
+ CALL TRPRINT,PRSO
+ RSTACK
+?CCL57: EQUAL? P-PRSA-WORD,W?TIP \FALSE
+ CALL HELD?,BANKNOTE
+ ZERO? STACK /?CCL71
+ CALL BRIBE-BUTLER,BANKNOTE
+ RSTACK
+?CCL71: PRINTR "You have nothing to do that with."
+
+
+ .FUNCT I-BUTLER,CALLED-BY-BUTLER-F=0
+ INC 'BUTLER-CTR
+ ZERO? CALLED-BY-BUTLER-F /?CCL3
+ CALL QUEUE,I-BUTLER,2
+ JUMP ?CND1
+?CCL3: CALL QUEUE,I-BUTLER,-1
+?CND1: EQUAL? HERE,FOYER /?CCL6
+ SET 'AWAITING-FAKE-ORPHAN,FALSE-VALUE
+ CALL DEQUEUE,I-BUTLER
+ RFALSE
+?CCL6: FSET? GOWN,WORNBIT \FALSE
+ ZERO? CALLED-BY-BUTLER-F \?CND8
+ PRINT INDENT
+ PRINTC 34
+?CND8: EQUAL? BUTLER-CTR,3 \?CCL13
+ CALL DEQUEUE,I-BUTLER
+ FSET BUTLER,MUNGBIT
+ PRINT YOULL-HAVE-TO
+ PRINTI "hope to be invited to the next party,"" smirks"
+ CALL TPRINT,BUTLER
+ PRINT PUSHING-YOU-OUT
+ CRLF
+ CALL GOTO,MAIN-ENTRANCE
+ RSTACK
+?CCL13: PRINTI "Your invitation, Miss?"" says"
+ CALL TPRINT,BUTLER
+ EQUAL? BUTLER-CTR,4 \?CCL16
+ PRINTI " snapping his fingers"
+ JUMP ?CND14
+?CCL16: PRINTI " bowing"
+?CND14: PRINT PCR
+ RTRUE
+
+
+ .FUNCT BRIBE-BUTLER,GRAFT
+ MOVE GRAFT,BUTLER
+ FSET? BUTLER,INDOORSBIT \?CCL3
+ PRINTI "He takes"
+ CALL TPRINT,GRAFT
+ PRINTI " and bows. ""Thank you, Miss"
+ EQUAL? GRAFT,INVITE \?CND4
+ PRINTI " Davis"
+?CND4: PRINTR "."""
+?CCL3: FSET BUTLER,INDOORSBIT
+ FCLEAR BUTLER,MUNGBIT
+ CALL DEQUEUE,I-BUTLER
+ INC 'SCORE
+ CALL CTPRINT,BUTLER
+ PRINTI " takes"
+ CALL TPRINT,GRAFT
+ EQUAL? GRAFT,BANKNOTE \?CND6
+ PRINTI " and secrets it away"
+?CND6: PRINTI ". ""Enjoy the dance, Miss"
+ EQUAL? GRAFT,INVITE \?CND8
+ PRINTI " Davis"
+?CND8: PRINTR "."""
+
+
+ .FUNCT DANCERS-F
+ EQUAL? DANCERS,WINNER \?CCL3
+ ZERO? ENDGAME /?CCL6
+ CALL CTPRINT,DANCERS
+ PRINTR " looks away, terrified."
+?CCL6: EQUAL? PRSA,V?HELLO \?CCL8
+ PRINTI "A dancer smiles nervously and looks away"
+ PRINT PCR
+ RTRUE
+?CCL8: EQUAL? PRSA,V?TELL-ABOUT \FALSE
+ EQUAL? PRSO,ME \FALSE
+ EQUAL? PRSI,LAFOND \?CCL15
+ PRINTI """He's such a good host! I've never been to such a fine party! I'm so glad he is our governor."" You have never seen anyone so nervous before"
+ PRINT PCR
+ JUMP ?CND13
+?CCL15: PRINTI "Nobody seems inclined to chat with you"
+ PRINT PCR
+?CND13: CALL STOP
+ RSTACK
+?CCL3: EQUAL? PRSA,V?DANCE /?CTR16
+ EQUAL? PRSA,V?ASK-FOR \?CCL17
+ EQUAL? PRSI,BALLROOM \?CCL17
+?CTR16: PRINTR "A man regretfully shakes his head. ""We haven't been introduced by the governor."""
+?CCL17: EQUAL? PRSA,V?ASK-FOR \?CCL23
+ EQUAL? PRSI,BALLROOM \?CCL23
+ CALL PERFORM,V?DANCE,DANCERS
+ RTRUE
+?CCL23: EQUAL? PRSA,V?EXAMINE \FALSE
+ CALL CTPRINT,DANCERS
+ PRINTI "s are dressed in powdered wigs and heavy jewels. All seem paler than fashion and the tropics would decree, and rather nervous"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT DAD-F,OARG=0
+ ZERO? OARG /?CCL3
+ EQUAL? OARG,M-DESC? /TRUE
+ PRINT INDENT
+ PRINTI "Your father calmly stands nearby."
+ RTRUE
+?CCL3: EQUAL? DAD,WINNER \?CCL7
+ EQUAL? PRSA,V?TELL-ABOUT \?CCL10
+ EQUAL? PRSO,ME \?CCL10
+ EQUAL? PRSI,GARTER \?CCL15
+ PRINTI """That belongs to -- a friend."""
+ CRLF
+ JUMP ?CND13
+?CCL15: PRINTI """My dear,"" he says rather impatiently, ""There are people waiting for our help -- I haven't time to answer your questions just now."""
+ CRLF
+?CND13: CALL STOP
+ RSTACK
+?CCL10: EQUAL? PRSA,V?I-LOVE-YOU \?CCL17
+ EQUAL? PRSI,EYES \?CCL20
+ PRINT DAD-KISS
+ RTRUE
+?CCL20: EQUAL? PRSI,HERO \?CCL22
+ PRINTR """I hoped you would,"" he smiles."
+?CCL22: EQUAL? PRSI,LAFOND \?CCL24
+ PRINTR """My poor doomed daughter!"""
+?CCL24: CALL FAILS-TO-NOTICE
+ RSTACK
+?CCL17: EQUAL? PRSA,V?FOLLOW \?CCL26
+ EQUAL? PRSO,ME \?CCL26
+ PRINTR """Lead on, daughter!"""
+?CCL26: EQUAL? PRSA,V?HELLO \?CCL30
+ PRINT DAD-KISS
+ RTRUE
+?CCL30: CALL COM-CHECK,DAD >OARG
+ ZERO? OARG /FALSE
+ EQUAL? OARG,M-FATAL /FALSE
+ RTRUE
+?CCL7: EQUAL? PRSA,V?ASK-FOR \?CCL37
+ EQUAL? PRSI,GARTER \?CCL37
+ CALL PERFORM,V?TAKE,GARTER
+ RTRUE
+?CCL37: EQUAL? PRSA,V?TELL-ABOUT \?CCL41
+ EQUAL? PRSI,LUCY \?CCL44
+ PRINTR "He listens intently, and laughs, ""What a delightful girl she is, to be sure!"""
+?CCL44: EQUAL? PRSI,HERO \FALSE
+ CALL RUNNING?,I-DAD
+ ZERO? STACK /?CCL49
+ CALL DEQUEUE,I-DAD
+ CALL I-DAD,TRUE-VALUE
+ RSTACK
+?CCL49: SET 'AWAITING-REPLY,16
+ CALL QUEUE,I-REPLY,2
+ PRINTI """So you like him?"" he asks, smiling"
+ PRINT PCR
+ RTRUE
+?CCL41: EQUAL? PRSA,V?SHOW,V?GIVE \?CCL51
+ EQUAL? PRSO,BANKNOTE \?CCL54
+ REMOVE BANKNOTE
+ PRINTI """Do not stain yourself with that dirty money,"" he takes"
+ CALL TPRINT,BANKNOTE
+ PRINTI " and rips it up"
+ PRINT PCR
+ RTRUE
+?CCL54: EQUAL? PRSO,GARTER \FALSE
+ PRINTR "He smiles dreamily at a memory."
+?CCL51: EQUAL? PRSA,V?EXAMINE \FALSE
+ PRINTI "Prison has only added a peppery beard to your father's handsome features. His green eyes still twinkle, his wrists still poke bonily out of his shirt cuffs"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT I-DAD,CALLED-BY-DAD-F=0
+ ZERO? CALLED-BY-DAD-F \?CND1
+ PRINT INDENT
+?CND1: PRINTR "You briefly explain the current situation to your father.
+ ""I knew Falcon would do his best to rescue me, once you were safe,"" he responds. ""Now to rescue Lucy -- Nicholas will have told you about her. You get him while I get Lucy, and the four of us will meet down at the beach. Just show me the way out of this maze, and we'll get started."""
+
+
+ .FUNCT LAFOND-F,OARG=0
+ ZERO? OARG /?CCL3
+ EQUAL? OARG,M-DESC? /TRUE
+ PRINT INDENT
+ PRINTD LAFOND
+ FSET? LAFOND,MUNGBIT \?CCL8
+ PRINT LAF-MUNGED
+ RTRUE
+?CCL8: FSET? LAFOND,DEADBIT \?CCL10
+ PRINTI " is slumped in the sand, dead."
+ RTRUE
+?CCL10: EQUAL? HERE,BEACH \?CCL12
+ PRINTI " stands"
+ PRINT HALFWAY
+ RTRUE
+?CCL12: PRINTI " is leering, lip curled."
+ RTRUE
+?CCL3: EQUAL? LAFOND,WINNER \?CCL14
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK \?PRD19
+ CALL RUNNING?,I-ENDGAME
+ ZERO? STACK /?CCL17
+?PRD19: FSET? LAFOND,DEADBIT /?CCL17
+ PRINTR "He ignores you."
+?CCL17: EQUAL? PRSA,V?TELL-ABOUT \?CCL23
+ EQUAL? PRSO,ME \?CCL23
+ EQUAL? PRSI,LRING \?CCL23
+ SET 'WINNER,PROTAGONIST
+ CALL PERFORM,V?TAKE,LRING
+ SET 'WINNER,LAFOND
+ RTRUE
+?CCL23: CALL COM-CHECK,LAFOND >OARG
+ ZERO? OARG /FALSE
+ EQUAL? OARG,M-FATAL /FALSE
+ RTRUE
+?CCL14: EQUAL? PRSA,V?POUR \?CCL33
+ EQUAL? PRSO,WINE \?CCL33
+ FSET? LAFOND,DEADBIT /?CCL33
+ CALL FWTD,SMACK-YOUR-FACE
+ RSTACK
+?CCL33: EQUAL? PRSA,V?DANCE \?CCL38
+ EQUAL? HERE,BALLROOM \?CCL38
+ EQUAL? PARTNER,LAFOND \?CCL43
+ PRINT PACE
+ RTRUE
+?CCL43: CALL RUNNING?,I-LDANCE
+ ZERO? STACK /FALSE
+ PRINTI "You curtsey and walk to"
+ PRINT DANCE-FLOOR
+ PRINT PCR
+ SET 'REACTION,REACTION-POSITIVE
+ RETURN REACTION
+?CCL38: EQUAL? PRSA,V?KICK,V?BITE,V?KILL \?CCL47
+ FSET? LAFOND,MUNGBIT \?CCL50
+ CALL MAN-IS-DOWN
+ RSTACK
+?CCL50: EQUAL? HERE,BALLROOM \?CCL52
+ SET 'AWAITING-REPLY,2
+ CALL QUEUE,I-REPLY,2
+ PRINT LAF-GRABS
+ PRINT THE-BALLROOM
+ PRINTR "whirling blur through your tears as he leads you around the floor. ""Ma petite, a ball is not the right place to kill me. What would my guests think?!"""
+?CCL52: ZERO? KILL-L \?CCL54
+ SET 'KILL-L,TRUE-VALUE
+ PRINT LAF-GRABS
+ PRINTI "Twisting your wrist, pain stabbing down your arm, he forces his mouth on yours, hard, thrusting, cutting your lips. He releases you"
+ ZERO? PRSI /?CND55
+ EQUAL? PRSI,RETICULE /?CND55
+ FSET? PRSI,WORNBIT /?CND55
+ MOVE PRSI,LAFOND
+ PRINTI ", taking"
+ CALL TPRINT-PRSI
+?CND55: PRINTR ". ""Let that be a warning to you, my love."""
+?CCL54: CALL JIGS-UP,STR?336
+ RSTACK
+?CCL47: EQUAL? PRSA,V?TOUCH \?CCL61
+ FSET? LAFOND,DEADBIT /?CCL61
+ PRINTR "He smiles."
+?CCL61: EQUAL? PRSA,V?GIVE \?CCL65
+ EQUAL? PRSO,GREEN-GLASS,BLUE-GLASS \?CCL65
+ IN? BLUE-GLASS,LAFOND /?CTR69
+ IN? GREEN-GLASS,LAFOND \?CCL70
+?CTR69: PRINTR """I already have a glass, thank you."""
+?CCL70: MOVE PRSO,LAFOND
+ PRINTI "He takes"
+ CALL TRPRINT,PRSO
+ RSTACK
+?CCL65: EQUAL? PRSA,V?KISS \?CCL74
+ EQUAL? HERE,LAFS-ROOM \?CCL77
+ GRTR? LAFOND-CTR,HORNY \?CCL80
+ PRINTR "Queasy, you turn up your face to be kissed. His lips are cold, dry."
+?CCL80: PRINTR "He laughs. ""Not yet, petite."""
+?CCL77: PRINTI "You shudder at the thought"
+ PRINT PCR
+ RTRUE
+?CCL74: EQUAL? PRSA,V?EXAMINE \FALSE
+ CALL RUNNING?,I-LSED
+ ZERO? STACK /?CCL85
+ GRTR? LAFOND-CTR,11 \?CCL85
+ PRINTI "You turn away in modesty after a brief glimpse of pasty pink flesh"
+ PRINT PCR
+ RTRUE
+?CCL85: FSET? LAFOND,MUNGBIT \?CCL89
+ PRINTD LAFOND
+ PRINT LAF-MUNGED
+ CRLF
+ RTRUE
+?CCL89: ZERO? ENDGAME \?CTR90
+ CALL RUNNING?,I-LSED
+ ZERO? STACK /?CCL91
+ GRTR? LAFOND-CTR,4 \?CCL91
+?CTR90: PRINTI "Lafond is dressed in a rich brocade robe"
+ PRINT PCR
+ RTRUE
+?CCL91: PRINTI "Wigged in dark brown curls, dressed in velvets and brocade, he is warmly attractive. Until you meet his eyes, stone gray and cold"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT RING-F
+ CALL NOUN-USED,W?LATIN,LRING
+ ZERO? STACK \?CTR2
+ CALL NOUN-USED,W?LATIN,HRING
+ ZERO? STACK \?CTR2
+ EQUAL? PRSA,V?READ \?CCL3
+?CTR2: CALL REPERTOIRE,STR?337
+ RSTACK
+?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL8
+ EQUAL? PRSO,LRING \?CCL11
+ PRINTI "It's an ancient gold band, with"
+ JUMP ?CND9
+?CCL11: PRINTI "Made of copper,"
+ CALL TPRINT,HRING
+ PRINTI " has"
+?CND9: PRINTI " a curious design of gargoyles, curled tongues extended, on its flat face, with ""Sal Sapit Omnia"" engraved at the bottom"
+ PRINT PCR
+ RTRUE
+?CCL8: EQUAL? PRSA,V?TAKE \FALSE
+ EQUAL? PRSO,LRING \?CCL16
+ IN? LRING,LAFOND \?CCL16
+ FSET? LAFOND,MUNGBIT \?CCL21
+ PRINTD LAFOND
+ PRINTI "'s fingers are curled tight in a fist. You cannot get it"
+ PRINT PCR
+ RTRUE
+?CCL21: PRINTR """It is an impressive crest, no? I've thought of making it my own."""
+?CCL16: FSET? HERO,DEADBIT \?CCL24
+ CALL NO-TIME-FOR,STR?338
+ RSTACK
+?CCL24: PRINTD HERO
+ PRINTI " curls his fist around it. ""This is "
+ IN? HRING,HERO \?CND25
+ PRINTI "a copy of "
+?CND25: PRINTR "the family ring lost with my brother."""
+
+
+ .FUNCT GEN-RING
+ RETURN HRING
+
+
+ .FUNCT COM-CHECK,PER
+ EQUAL? PRSA,V?HELP \?CCL3
+ EQUAL? PER,LAFOND \?CCL6
+ PRINTR "He snickers, ""So I shall, petite."""
+?CCL6: EQUAL? PER,CRULLEY \?CCL8
+ PRINTR """An' what'll I get fer it?"" he says, eying your body."
+?CCL8: PRINTR """I'm doing all I can."""
+?CCL3: EQUAL? PRSA,V?KISS \?CCL10
+ EQUAL? PRSO,ME \?CCL10
+ SET 'WINNER,PROTAGONIST
+ CALL PERFORM,V?KISS,PER
+ SET 'WINNER,PER
+ RTRUE
+?CCL10: EQUAL? PRSA,V?WALK \?CCL14
+ PRINTR """After you!"""
+?CCL14: EQUAL? PRSA,V?FOLLOW \?CCL16
+ EQUAL? PRSO,ME \?CCL16
+ PRINTR """Anywhere!"""
+?CCL16: EQUAL? PRSA,V?HELLO \?CCL20
+ PRINTR """Hello!"""
+?CCL20: EQUAL? PRSA,V?WHAT \?CCL22
+ CALL PERFORM,V?TELL-ABOUT,ME,PRSO
+ RTRUE
+?CCL22: EQUAL? PRSA,V?GIVE \?CCL24
+ EQUAL? PRSI,ME \?CCL24
+ SET 'WINNER,PROTAGONIST
+ CALL PERFORM,V?ASK-FOR,PER,PRSO
+ SET 'WINNER,PER
+ RTRUE
+?CCL24: EQUAL? PRSA,V?SGIVE \?CCL28
+ RETURN 8
+?CCL28: EQUAL? PRSA,V?NO,V?YES \?CCL32
+ SET 'WINNER,PROTAGONIST
+ CALL PERFORM-PRSA
+ SET 'WINNER,PER
+ RTRUE
+?CCL32: CALL FAILS-TO-NOTICE
+ EQUAL? PRSA,V?DRINK \?CND33
+ SET 'REACTION,REACTION-NEGATIVE
+?CND33: CALL STOP
+ RTRUE
+
+
+ .FUNCT I-LDANCE
+ EQUAL? HERE,BALLROOM /?CCL3
+ CALL DEQUEUE,I-LDANCE
+ RSTACK
+?CCL3: EQUAL? LAFOND-CTR,1 \?CCL6
+ MOVE LAFOND,HERE
+ CALL QUEUE,I-LDANCE,-1
+ SET 'AWAITING-REPLY,11
+ CALL QUEUE,I-REPLY,2
+ SET 'QUESTIONER,LAFOND
+ SET 'DANCED-WITH,LAFOND
+ PRINT INDENT
+ PRINTI "A fashionably bewigged man stalks up to you and bows deeply. ""Will you dance?"" he asks, with a light French accent. ""Not that you have much choice. If you turn me down,"
+ CALL TPRINT,DAD
+ PRINTI " dies."""
+ CRLF
+ JUMP ?CND4
+?CCL6: EQUAL? LAFOND-CTR,2 \?CCL8
+ EQUAL? REACTION,REACTION-POSITIVE \?CCL11
+ SET 'PARTNER,LAFOND
+ INC 'LAFOND-CTR
+ PRINT INDENT
+ PRINTI """I am, of course, Lafond."" "
+ PRINT LAUGHS
+ JUMP ?CND4
+?CCL11: SET 'QUESTIONER,LAFOND
+ SET 'AWAITING-REPLY,11
+ CALL QUEUE,I-REPLY,2
+ PRINT INDENT
+ PRINTI "The man's smile hardens. ""You have"
+ CALL TPRINT,DAD
+ PRINTI "'s eyes. I am Lafond -- I have recently become intimate with that gentleman."" He slightly stresses the word ""intimate.""
+ ""Now, tell me 'yes.' And remember, I am a man of my word."""
+ CRLF
+ JUMP ?CND4
+?CCL8: EQUAL? LAFOND-CTR,3 \?CCL13
+ EQUAL? REACTION,REACTION-NEGATIVE,REACTION-NEUTRAL \?CCL16
+ CALL DEQUEUE,I-LDANCE
+ CALL QUEUE,I-CKILLS-DAD,2
+ PRINT INDENT
+ PRINTI """A mistake, ma petite."" Lafond gestures to a shadowy figure, who disappears into the east wing. ""Say adieu to your dear Papa."""
+ CRLF
+ JUMP ?CND4
+?CCL16: SET 'PARTNER,LAFOND
+ PRINT LAUGHS
+ JUMP ?CND4
+?CCL13: EQUAL? LAFOND-CTR,4 \?CCL18
+ CALL QUEUE,I-LDANCE,-1
+ PRINT INDENT
+ PRINTI """So you know I am not your father's friend,"" Lafond says, offering a hand for the promenade. ""Unfortunately, you are in my power, "
+ ZERO? HERO-ARRESTED /?CCL21
+ PRINTI "the Falcon is with my dragoons"
+ JUMP ?CND19
+?CCL21: PRINTI "he is in my dungeon"
+?CND19: PRINTI " and I am still King of these waters."" A gold ring flashes on his hand. It seems vaguely familiar"
+ PRINT PCR
+ JUMP ?CND4
+?CCL18: EQUAL? LAFOND-CTR,5 \FALSE
+ FSET? DAD,TOUCHBIT \?CND24
+ ZERO? HERO-ARRESTED \?CND26
+ CALL QUEUE,I-HARRESTED,3
+?CND26: CALL QUEUE,I-SUMMONS,5
+?CND24: INC 'SCORE
+ CALL DEQUEUE,I-LDANCE
+ REMOVE LAFOND
+ SET 'PARTNER,FALSE-VALUE
+ PRINT INDENT
+ PRINTD LAFOND
+ PRINTI "'s eyes rake your body. ""When I am ready,"
+ CALL TPRINT,BUTLER
+ PRINTI " will summon you to sup with me in my room"
+ FSET? DAD,TOUCHBIT /?CND28
+ PRINTI "; it may be some time"
+?CND28: PRINTI ". We will find much in common before dawn, I am sure. Then I may free your "
+ ZERO? HERO-ARRESTED /?CCL32
+ PRINTI "lover"
+ JUMP ?CND30
+?CCL32: PRINTI "father"
+?CND30: PRINTI "."""
+ CALL TPRINT,LAFOND
+ PRINTI " bows as the dance ends, and kisses "
+ PRINTD HANDS
+ PRINTI ". "
+ FSET? DAD,TOUCHBIT /?CND33
+ PRINTI "He cocks his head, curious, ""You have far less spirit than"
+ CALL TPRINT,DAD
+ PRINTI " credited you. He swore you would have him freed in no time at all. A pity, I prefer doyennes with mettle."" "
+?CND33: PRINTI "He moves to speak with"
+ CALL TPRINT,BUTLER
+ PRINTI ", then "
+ CALL QUEUED?,I-SUMMONS
+ ZERO? STACK /?CCL37
+ PRINTI "heads upstairs."
+ JUMP ?CND35
+?CCL37: PRINTI "drifts into the crowd."
+?CND35: CRLF
+?CND4: INC 'LAFOND-CTR
+ RETURN LAFOND-CTR
+
+
+ .FUNCT I-LSED
+ SET 'AWAITING-REPLY,12
+ CALL QUEUE,I-REPLY,1
+ PRINT INDENT
+ EQUAL? LAFOND-CTR,1 \?CCL3
+ MOVE LAFOND,HERE
+ MOVE BLUE-GLASS,PROTAGONIST
+ PUTP BLUE-GLASS,P?CONTENTS,WINED
+ MOVE GREEN-GLASS,LAFOND
+ MOVE FLAGON,TABLE
+ FCLEAR LDOOR,OPENBIT
+ CALL QUEUE,I-WONT-DRINK,1
+ PRINTI """Have some wine."" Lafond pours wine into two glasses, giving a blue one to you. ""Drink this down. We have a long night ahead of us."" He drains his own"
+ PRINT PCR
+ JUMP ?CND1
+?CCL3: EQUAL? LAFOND-CTR,2 \?CCL5
+ MOVE GREEN-GLASS,TABLE
+ MOVE BUTLER,UPPER-HALL-E
+ MOVE HERO,MANACLES
+ FSET HERO,DEADBIT
+ FSET HERO,NDESCBIT
+ FSET TRAP,OPENBIT
+ FCLEAR PORTRAIT,OPENBIT
+ FCLEAR KNOB,EVERYBIT
+ FCLEAR POWER,EVERYBIT
+ MOVE RAPIER,DUNGEON
+ FCLEAR RAPIER,NDESCBIT
+ FCLEAR MANACLES,OPENBIT
+ FSET MANACLES,LOCKEDBIT
+ FSET CRULLEY,NDESCBIT
+ MOVE CRULLEY,DUNGEON
+ MOVE WHIP,CRULLEY
+ CALL QUEUE,I-LSED,-1
+ FCLEAR FLAGON,TRYTAKEBIT
+ SET 'LAFOND-LOOKING,FALSE-VALUE
+ PRINTI "Suddenly, the door slams open. It is Jamison, coatless, sword bared, his shirt ripped. ""Thank God I am not too late. Leave, darling, before I skewer this dog to his bedposts,"" he cries. The scar on his cheek gleams coldly.
+ With a yell,"
+ CALL TPRINT,CRULLEY
+ PRINTI " and"
+ CALL TPRINT,BUTLER
+ PRINTI " jump out of the darkness behind him. Nicholas struggles, but soon lies unconscious on the floor.
+ ""Take him to the dungeon,"" Lafond says, setting down his glass. ""You, butler, stay nearby. I do not wish to be disturbed again.
+ ""Now that we are rid of that intrusion, cherie, I will change into something more comfortable. Pour me more wine."" He crosses to the wardrobe removing his coat and vest, turned slightly away from you"
+ PRINT PCR
+ JUMP ?CND1
+?CCL5: EQUAL? LAFOND-CTR,3 \?CCL7
+ PRINTI """In private, call me Jean, or whatever endearment you choose, once I have approved it."" Lafond is looking into the wardrobe"
+ PRINT PCR
+ JUMP ?CND1
+?CCL7: EQUAL? LAFOND-CTR,4 \?CCL9
+ MOVE TRAY,TABLE
+ CALL CTPRINT,BUTLER
+ PRINTI " enters, laying"
+ CALL APRINT,TRAY
+ PRINTI " of "
+ PRINTD CHICKEN
+ PRINTI " on"
+ CALL TPRINT,TABLE
+ PRINTI ". ""The kitchen wench has gone, your grace. I took the liberty of fetching these myself."" He bows and leaves the room.
+ ""Sprinkle some spices on the fowl, ma petite,"" Lafond says, donning a long brocade robe, his back to you. ""They are hot, but delicious."""
+ CRLF
+ JUMP ?CND1
+?CCL9: EQUAL? LAFOND-CTR,5 \?CCL11
+ PRINTI """Tsk. The cook has gone too far. She shall be 'leaving us' tomorrow."" Lafond adjusts the lace at his neck"
+ PRINT PCR
+ JUMP ?CND1
+?CCL11: EQUAL? LAFOND-CTR,6 \?CCL13
+ SET 'QUESTIONER,LAFOND
+ SET 'LAFOND-LOOKING,TRUE-VALUE
+ PRINTD LAFOND
+ PRINTI " strolls to"
+ LOC GREEN-GLASS
+ EQUAL? STACK,TABLE \?CCL16
+ CALL TPRINT,TABLE
+ JUMP ?CND14
+?CCL16: PRINTI " you,"
+?CND14: PRINTI " smiling slyly"
+ GETP BLUE-GLASS,P?CONTENTS
+ EQUAL? STACK,2,0 /?CCL18
+ GETP GREEN-GLASS,P?CONTENTS
+ EQUAL? STACK,2,0 \?CND17
+?CCL18: PRINTI ". ""But you haven't finished pouring the wine."" He tops off both glasses"
+ GETP BLUE-GLASS,P?CONTENTS
+ EQUAL? STACK,2,0 \?CND21
+ CALL POUR-WINE,BLUE-GLASS,TRUE-VALUE
+?CND21: GETP GREEN-GLASS,P?CONTENTS
+ EQUAL? STACK,2,0 \?CND17
+ CALL POUR-WINE,GREEN-GLASS,TRUE-VALUE
+?CND17: ZERO? USED-LAUD /?CCL27
+ PRINTI ". ""Which glass was mine? I seem to have forgotten."" He points at"
+ CALL TPRINT,GREEN-GLASS
+ PRINTI " and smiles in a way that does not grant you confidence. ""Is this it?"""
+ CRLF
+ JUMP ?CND1
+?CCL27: INC 'LAFOND-CTR
+ PRINTI ".
+ Lafond takes"
+ CALL TPRINT,GREEN-GLASS
+ PRINTI " and salutes you, gulping down the contents"
+ PRINT PCR
+ JUMP ?CND1
+?CCL13: EQUAL? LAFOND-CTR,7 \?CCL29
+ SET 'QUESTIONER,LAFOND
+ PRINTI """Ah yes, of course."" Lafond obligingly takes"
+ ZERO? USED-LAUD /?CND30
+ EQUAL? REACTION,REACTION-POSITIVE \?CCL34
+ CALL SWITCH-GLASSES,GREEN-GLASS
+ JUMP ?CND30
+?CCL34: EQUAL? REACTION,REACTION-NEGATIVE \?CCL36
+ CALL SWITCH-GLASSES,BLUE-GLASS
+ JUMP ?CND30
+?CCL36: GETP BLUE-GLASS,P?CONTENTS
+ GRTR? STACK,WINED \?CCL39
+ GETP GREEN-GLASS,P?CONTENTS
+ EQUAL? STACK,WINED \?CCL39
+ CALL SWITCH-GLASSES,BLUE-GLASS
+ JUMP ?CND37
+?CCL39: CALL SWITCH-GLASSES,GREEN-GLASS
+?CND37: PRINT AFTER-HESITATING
+?CND30: PRINT PCR
+ PRINT INDENT
+ CALL DEQUEUE,I-LSED
+ CALL QUEUE,I-WONT-DRINK,1
+ PRINTI "He inhales deeply of the bouquet of his wine, then turns to you. ""You must think me very naive to fall for such a trick. I saw you pour something into one of these glasses -- although "
+ ZERO? SPICED-WINE /?CCL44
+ PRINTI "you have tried to cover the scent with"
+ CALL TPRINT,SPICES
+ JUMP ?CND42
+?CCL44: PRINTI "I cannot smell it"
+?CND42: PRINTI "."" He switches goblets, setting"
+ CALL TPRINT,YOUR-GLASS
+ PRINTI " into your nerveless grasp and taking up the other, smiling evilly. ""Now you will drink from the cup intended for me."""
+ CRLF
+ JUMP ?CND1
+?CCL29: EQUAL? LAFOND-CTR,8 \?CCL46
+ CALL QUEUE,I-LSED,-1
+ PRINTD LAFOND
+ PRINTI " draws near, whispering indecencies. He caresses your lily white neck, his fingers ice-cold despite the tropic heat"
+ PRINT PCR
+ JUMP ?CND1
+?CCL46: EQUAL? LAFOND-CTR,9 \?CCL48
+ CALL ROB,PROTAGONIST,LAFS-ROOM
+ PRINTD LAFOND
+ PRINTI " slides his hand up your neck and into your hair, letting it fall down your back in thick waves and tresses. He lays everything you carry on the floor"
+ PRINT PCR
+ JUMP ?CND1
+?CCL48: EQUAL? LAFOND-CTR,HORNY \?CCL50
+ PRINTI "One by one Lafond undoes your buttons. He pulls open your "
+ FSET? SHIRT,WORNBIT \?CCL53
+ PRINTI "shirt"
+ JUMP ?CND51
+?CCL53: FSET? GOWN,WORNBIT /?CTR54
+ FSET? DRESS,WORNBIT \?CCL55
+?CTR54: PRINTI "bodice"
+ JUMP ?CND51
+?CCL55: PRINTI "chemise"
+?CND51: CALL REMOVE-CLOTHES
+ FCLEAR CHEMISE,WORNBIT
+ FSET CHEMISE,EVERYBIT
+ FCLEAR SHOES,WORNBIT
+ CALL ROB,PROTAGONIST,LAFS-ROOM
+ MOVE RETICULE,LAFS-ROOM
+ CALL ROB,LAFOND,LAFS-ROOM
+ PRINTI ". Your clothes float to the floor"
+ PRINT PCR
+ JUMP ?CND1
+?CCL50: EQUAL? LAFOND-CTR,11 \?CCL59
+ PRINTD LAFOND
+ PRINTI " runs his fingers down your naked spine, and compliments your body. He removes his dressing gown"
+ PRINT PCR
+ JUMP ?CND1
+?CCL59: EQUAL? LAFOND-CTR,12 \?CCL61
+ PRINTD LAFOND
+ PRINTI " kisses your shoulder, your neck, your ear. ""Close your eyes, if you will,"" he taunts, ""and pretend I am your dearest"
+ CALL TPRINT,HERO
+ PRINTI ". But I am greater than he will ever be."" He kisses you, his lips thin and cold"
+ PRINT PCR
+ JUMP ?CND1
+?CCL61: EQUAL? LAFOND-CTR,13 \?CCL63
+ IN? PROTAGONIST,LAFS-BED \?CCL66
+ SET 'LAFOND-CTR,14
+ CALL I-LSED
+ JUMP ?CND1
+?CCL66: MOVE LAFOND,LAFS-BED
+ MOVE PROTAGONIST,LAFS-BED
+ PRINTD LAFOND
+ PRINTI " leads you over to the bed"
+ PRINT PCR
+ JUMP ?CND1
+?CCL63: EQUAL? LAFOND-CTR,14 \?CND1
+ CALL FWTD,STR?339
+?CND1: INC 'LAFOND-CTR
+ RETURN LAFOND-CTR
+
+
+ .FUNCT SWITCH-GLASSES,GLASS
+ EQUAL? GLASS,GREEN-GLASS \?CCL3
+ SET 'LAF-GLASS,BLUE-GLASS
+ SET 'YOUR-GLASS,GREEN-GLASS
+ JUMP ?CND1
+?CCL3: SET 'LAF-GLASS,GREEN-GLASS
+ SET 'YOUR-GLASS,BLUE-GLASS
+?CND1: MOVE YOUR-GLASS,PROTAGONIST
+ MOVE LAF-GLASS,LAFOND
+ CALL TPRINT,GLASS
+ RSTACK
+
+
+ .FUNCT I-WONT-DRINK,POISON-SCENE=0
+ GRTR? LAFOND-CTR,7 \?CND1
+ SET 'POISON-SCENE,TRUE-VALUE
+?CND1: INC 'ANGER-CTR
+ SET 'QUESTIONER,LAFOND
+ SET 'AWAITING-REPLY,12
+ CALL QUEUE,I-REPLY,2
+ PRINT INDENT
+ EQUAL? REACTION,REACTION-NEGATIVE /?CCL5
+ EQUAL? PRSO,YOUR-GLASS \?PRD9
+ EQUAL? PRSA,V?DRINK-FROM /?CTR4
+?PRD9: EQUAL? PRSO,WINE \?CCL5
+ EQUAL? PRSA,V?DRINK-FROM,V?DRINK,V?EAT /?CTR4
+ EQUAL? PRSA,V?POUR \?CCL5
+ EQUAL? PRSI,ME,MOUTH \?CCL5
+?CTR4: PUTP YOUR-GLASS,P?CONTENTS,0
+ PRINTI """Good girl,"" he says"
+ ZERO? POISON-SCENE /?CCL20
+ PRINTI ". "
+ CALL CALL-IN-BUTLER
+ RSTACK
+?CCL20: PRINTI ", ""Let's see more cooperation of this sort."""
+ CRLF
+ CALL I-LSED
+ RSTACK
+?CCL5: GRTR? ANGER-CTR,2 \?CCL23
+ CALL QUEUE,I-LSED,1
+ ZERO? POISON-SCENE /?CCL26
+ PRINTI "Lafond grows suddenly violent. ""I will not have insubordination. You shall cooperate, minx."" He forces"
+ CALL TPRINT,WINE
+ PRINTI " down your throat"
+ PRINT PCR
+ GETP YOUR-GLASS,P?CONTENTS
+ GRTR? STACK,WINED \?CND27
+ CALL QUEUED?,I-SLEEP
+ ZERO? STACK \?CND27
+ CALL QUEUE,I-SLEEP,2
+?CND27: PUTP YOUR-GLASS,P?CONTENTS,0
+ PRINT INDENT
+ CALL CALL-IN-BUTLER
+ RSTACK
+?CCL26: MOVE YOUR-GLASS,TABLE
+ PUTP YOUR-GLASS,P?CONTENTS,0
+ PRINTI "He angrily takes"
+ CALL TPRINT,YOUR-GLASS
+ PRINTI " and sets it on"
+ CALL TPRINT,TABLE
+ PRINTI ". "
+ CALL CTPRINT,WINE
+ PRINTR " slops a dark stain across the lace. ""Do not try my patience, little one. I have those you love, remember."""
+?CCL23: CALL QUEUE,I-WONT-DRINK,1
+ EQUAL? ANGER-CTR,1 \?CCL33
+ PRINTD LAFOND
+ PRINTI " waits impatiently for you to drink"
+ PRINT PCR
+ RTRUE
+?CCL33: EQUAL? ANGER-CTR,2 \FALSE
+ PRINTI """Drink. We must not waste all night."""
+ CALL TPRINT,LAFOND
+ PRINTI " pushes the glass toward "
+ PRINTD MOUTH
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT CALL-IN-BUTLER
+ GETP LAF-GLASS,P?CONTENTS
+ GRTR? STACK,WINED \?CND1
+ SET 'DRUGGEE,BUTLER
+ CALL QUEUE,I-WATCH-SLEEP,1
+?CND1: PUTP LAF-GLASS,P?CONTENTS,0
+ SET 'LAUD-LEFT,0
+ CALL QUEUE,I-LSED,1
+ CALL META-LOC,BOTTLE
+ EQUAL? STACK,HERE \?CND3
+ REMOVE BOTTLE
+ PRINTI "Lafond takes"
+ CALL TPRINT,BOTTLE
+ PRINTI " and drops it out the window. ""You shall not need this. You may suffer no headaches in my employ."""
+ CRLF
+ PRINT INDENT
+?CND3: PRINTI "He lifts his glass to drink, but stops. ""Your father, for all his idiotic meddling in other people's business, is not a fool. I doubt you are, either."" He calls in"
+ CALL TPRINT,BUTLER
+ PRINTI ", ordering him to empty"
+ CALL TPRINT,LAF-GLASS
+ PRINTI ". The man reports no odd taste and returns to his post"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT I-SUMMONS
+ FCLEAR LDOOR,LOCKEDBIT
+ MOVE LAFOND,LAFS-ROOM
+ EQUAL? HERE,LIBRARY \?CCL3
+ IN? DAD,HERE \?CND4
+ CALL QUEUE,I-SUMMONS,2
+ RTRUE
+?CND4: PRINT INDENT
+ CALL CTPRINT,BUTLER
+ PRINTI " enters the room"
+ FSET? PORTRAIT,OPENBIT \?CCL8
+ PRINTI ", sees the open "
+ PRINTD PORTRAIT
+ PRINTI ", and seizes your arms, pinning them behind your back. "
+ CALL FWTD,SOMETHING-HITS-YOU
+ RSTACK
+?CCL8: REMOVE BUTLER
+ PRINTI ". ""Excuse me for interrupting, Miss, but the master requests your company in his room."" He "
+ FSET? KNOB,EVERYBIT /?CCL10
+ FSET? POWER,EVERYBIT \?CND9
+?CCL10: FCLEAR KNOB,EVERYBIT
+ FCLEAR POWER,EVERYBIT
+ PRINTI "moves around the room, straightening things, then "
+?CND9: PRINTI "guides you back to the foyer. ""The governor's "
+ PRINTD OBJ-QUARTERS
+ PRINTI " are in the east wing."
+ PRINT BUTLER-POINTS
+ CRLF
+ CALL GOTO,FOYER
+ RSTACK
+?CCL3: EQUAL? HERE,BALLROOM,SUPPER-ROOM,ORCHESTRA /?CTR13
+ EQUAL? HERE,HALL-W,FOYER,HALL-E /?CTR13
+ EQUAL? HERE,BEDROOM,GALLERY,X-ROOM /?CTR13
+ EQUAL? HERE,MAIN-ENTRANCE,VERANDA,KITCHEN /?CTR13
+ EQUAL? HERE,STAIRTOP,UPPER-HALL-W,UPPER-HALL-E \?CCL14
+?CTR13: FSET? GOWN,WORNBIT \?CCL22
+ REMOVE BUTLER
+ PRINT INDENT
+ CALL CTPRINT,BUTLER
+ PRINT BUTLER-SUMMONS
+ EQUAL? HERE,UPPER-HALL-E \?CCL25
+ PRINTI "to"
+ CALL TPRINT,LDOOR
+ PRINTI ", unlocks it"
+ JUMP ?CND23
+?CCL25: EQUAL? HERE,STAIRTOP,UPPER-HALL-W,X-ROOM /?CTR26
+ EQUAL? HERE,BEDROOM \?CCL27
+?CTR26: PRINTI "to the east"
+ JUMP ?CND23
+?CCL27: EQUAL? HERE,GALLERY \?CCL31
+ PRINTI "to the north"
+ JUMP ?CND23
+?CCL31: PRINTI "up"
+ CALL TPRINT,STAIRS
+ PRINTC 115
+?CND23: PRINTR ", bows, and leaves."
+?CCL22: FSET FOYER,EVERYBIT
+ PRINT INDENT
+ CALL CTPRINT,BUTLER
+ PRINTI ", who looks like he is seeking someone, grabs your collar, ""Who invited beggars? Get back to the village where you belong."""
+ EQUAL? HERE,MAIN-ENTRANCE /?CCL34
+ PRINTI " He escorts you out of the house"
+ PRINT PCR
+ CRLF
+ CALL GOTO,MAIN-ENTRANCE
+ RSTACK
+?CCL34: CRLF
+ RTRUE
+?CCL14: FSET FOYER,EVERYBIT
+ RTRUE
+
+
+ .FUNCT I-CKILLS-DAD
+ EQUAL? HERE,BALLROOM,FOYER /?CTR2
+ EQUAL? HERE,SUPPER-ROOM,ORCHESTRA \FALSE
+?CTR2: PRINT INDENT
+ PRINTI "You see"
+ CALL TPRINT,CRULLEY
+ PRINTI " come in from the east wing and beckon to Lafond. ""'E's gone"
+ FSET? DAD,TOUCHBIT \?CCL8
+ CALL QUEUE,I-LDANCE,2
+ REMOVE HERO
+ PRINTI "! The cocky crupper 'as disappeared!"" Lafond looks around angrily, eyes narrowed, ""Then get his compatriot. Take Falcon."""
+ CALL TPRINT,CRULLEY
+ PRINTI " runs out the front door, reappearing a moment later with help"
+ PRINT PCR
+ CALL I-HARRESTED,TRUE-VALUE
+ JUMP ?CND1
+?CCL8: CALL H-JIGS-UP,STR?340,TRUE-VALUE
+?CND1: INC 'CRULLEY-CTR
+ RETURN CRULLEY-CTR
+
+
+ .FUNCT I-DUEL
+ CALL CANT-HEAR-DUEL
+ ZERO? STACK /?CCL3
+ LESS? HERO-CTR,16 /?CND1
+?CCL3: LESS? HERO-CTR,12 \?CCL7
+ PRINT INDENT
+ EQUAL? HERE,GALLERY \?CND8
+ PRINTI "Nicholas and Lafond circle each other intently, the one breathing hard, the other casual, sword tips almost touching. Jamison has lost copious amounts of blood and is no match for Lafond, cool and competent."
+ CRLF
+?CND8: CALL PICK-ONE,DUEL-SOUNDS
+ PRINT STACK
+ CRLF
+ JUMP ?CND1
+?CCL7: EQUAL? HERO-CTR,12 \?CCL11
+ PRINT INDENT
+ PRINTI "Someone calls out, ""We've got the Dimsford girl, Governor"" -- lying, of course, since you're obviously free"
+ EQUAL? HERE,GALLERY \?CND12
+ PRINTI ". But Nick glances towards the voice, missteps, and slips in his own blood, falling backwards to the floor, his rapier skittering aside"
+?CND12: PRINT PCR
+ JUMP ?CND1
+?CCL11: EQUAL? HERO-CTR,13 \?CCL15
+ PRINT INDENT
+ EQUAL? HERE,GALLERY \?CCL18
+ PRINTD LAFOND
+ PRINTI " leaps to Jamison's side, placing one heeled boot on the prostrate man's throat, the tip of his sword over Nick's heart. He sneers then, one eyebrow tilted, and moves to plunge in the sword. Nicholas cannot move."
+ JUMP ?CND16
+?CCL18: SET 'HERO-CTR,15
+ PRINTI "One of the duellists falls heavily to the floor, his sword skittering away. All is silence for a moment, broken once by a low chuckle. Then a woman screams, someone gasps, and Jean Lafond's wicked laugh blasts your ears, ""Who else cares to taste my blade?"""
+?CND16: CRLF
+ JUMP ?CND1
+?CCL15: EQUAL? HERO-CTR,14 \?CCL20
+ EQUAL? HERE,GALLERY \?CND1
+ PRINT INDENT
+ PRINTI "The sword plunges down into Jamison's heart, a red stain flowing up to meet it on his breast. Nicholas draws his last breath, his tortured gaze drawn heavenwards, to your face. He reaches for you, his hand dripping his own blood, and breathes your name...
+ Nicholas's hand falls limply to the swelling pool of wine red blood and silence pounds on your ears"
+ PRINT PCR
+ JUMP ?CND1
+?CCL20: EQUAL? HERO-CTR,15 \?CCL24
+ EQUAL? HERE,GALLERY \?CCL27
+ PRINT INDENT
+ PRINTI "Lafond wipes his sword on your lover's inert body, ordering someone to drag away the corpse. Suddenly there are sounds of fighting all about, and you realize dragoons surround the house"
+ PRINT PCR
+ JUMP ?CND1
+?CCL27: PRINTI "Time has stopped. Silence reigns."
+ CRLF
+ JUMP ?CND1
+?CCL24: EQUAL? HERO-CTR,16 \?CND1
+ CALL CANT-HEAR-DUEL
+ ZERO? STACK \?CND29
+ PRINT INDENT
+ PRINTI """Find the girl and bring her to me,"" Lafond orders."
+ CRLF
+?CND29: PRINT INDENT
+ PRINT DRAGOONS-SURROUND
+ CALL FWTD,SOMETHING-HITS-YOU
+?CND1: INC 'HERO-CTR
+ RETURN HERO-CTR
+
+
+ .FUNCT CANT-HEAR-DUEL
+ EQUAL? HERE,UPPER-HALL-E,STAIRTOP,HALL-W /FALSE
+ EQUAL? HERE,FOYER,LIBRARY,HALL-E /FALSE
+ EQUAL? HERE,VERANDA,GALLERY /FALSE
+ RTRUE
+
+
+ .FUNCT PISTOL-F
+ EQUAL? PRSA,V?FILL \?CCL3
+ ZERO? PRSI \?CCL6
+ EQUAL? P-PRSA-WORD,W?LOAD \?CCL6
+ CALL HELD?,POWDER
+ ZERO? STACK /?CCL11
+ CALL PERFORM,V?FILL,PISTOL,POWDER
+ RTRUE
+?CCL11: PRINT YNH
+ PRINTI " any "
+ PRINTD POWDER
+ PRINT PCR
+ RTRUE
+?CCL6: EQUAL? PRSI,POWDER \?CCL13
+ ZERO? PRIMED /?CCL16
+ PRINT YOU-HAVE-ALREADY
+ PRINTI " loaded"
+ CALL TRPRINT,PISTOL
+ RSTACK
+?CCL16: SET 'PRIMED,TRUE-VALUE
+ MOVE HORN,PROTAGONIST
+ ZERO? PENULTIM-POINT \?CND17
+ SET 'PENULTIM-POINT,TRUE-VALUE
+ INC 'SCORE
+?CND17: PRINTI "You pour a lumpy stream of"
+ CALL TPRINT,POWDER
+ PRINTI " mixture into the barrel of"
+ CALL TPRINT,PISTOL
+ PRINTI " tamping it as best you can"
+ PRINT PCR
+ RTRUE
+?CCL13: EQUAL? PRSO,PISTOL \FALSE
+ PRINT YOU-CANT
+ PRINTI "put that into"
+ CALL ARPRINT,PISTOL
+ RSTACK
+?CCL3: EQUAL? PRSA,V?POUR,V?PUT \?CCL22
+ EQUAL? PRSI,PISTOL \?CCL22
+ EQUAL? PRSO,POWDER \?CCL27
+ CALL PERFORM,V?FILL,PISTOL,PRSO
+ RTRUE
+?CCL27: PRINT HUH
+ RTRUE
+?CCL22: EQUAL? PRSA,V?EXAMINE \?CCL29
+ PRINTI "One of"
+ CALL APRINT,PAIR
+ PRINTI ", the gun is "
+ ZERO? PRIMED /?CCL32
+ PRINTR "primed and ready to fire."
+?CCL32: PRINTR "not loaded."
+?CCL29: EQUAL? PRSA,V?KILL \?CCL34
+ CALL PERFORM,V?SHOOT,PRSO,PRSI
+ RTRUE
+?CCL34: EQUAL? PRSA,V?SHOOT \?CCL36
+ ZERO? PRIMED \?CCL39
+ PRINTI "But"
+ CALL TPRINT,PISTOL
+ PRINTR " is not loaded."
+?CCL39: ZERO? PRSI /?CTR40
+ EQUAL? PRSO,AIR \?CCL41
+?CTR40: INC 'SCORE
+ PRINTI "You fire"
+ CALL TPRINT,PISTOL
+ PRINTI " into the air. Startled by the loud report,"
+ CALL TPRINT,CRULLEY
+ PRINTI " jerks his pistol and fires, aiming not at Nicholas, but at you. You hear a distant scream, your own, and watch, as through from afar,"
+ CALL TPRINT,DAD
+ PRINTI " wrestle"
+ CALL TPRINT,CRULLEY
+ PRINTI " to"
+ CALL TPRINT,GROUND
+ PRINTI ". You feel only numbness as loving arms take you up, and Nicholas kisses you into death, his tears damp on your cheek."
+ PRINT YOU-DIED
+ SET 'FINAL-RANK,2
+ CALL FINISH
+ RSTACK
+?CCL41: EQUAL? PRSO,BUSHES,PATROL \?CCL45
+ PRINTR "They are out of range."
+?CCL45: EQUAL? PRSO,CRULLEY \?CCL47
+ INC 'SCORE
+ PRINTI "Trembling, you fire the heavy pistol. You hear its loud report over roaring surf. Crulley staggers, hit, and falls from the cliff. The gun falls from your nerveless hands.
+ Time stops as you and Nicholas gaze at one another, adoring and amazed. Slowly he bows and offers his hand.
+ "
+ PRINT NUTBROWN
+ PRINTI "His eyes, twin seas of blue, devour you with a love deep and true-hearted, and you are pulled into his embrace, your mouth on his, lips parted, thirsting, arching into his kiss..."
+ CRLF
+ CALL FINALE
+ RSTACK
+?CCL47: EQUAL? PRSO,PISTOL \?CCL49
+ CALL IMPOSSIBLES
+ RSTACK
+?CCL49: FSET? PRSO,DEADBIT \?CCL51
+ CALL MAN-IS-DOWN
+ RSTACK
+?CCL51: FSET? PRSO,ACTORBIT \?CCL53
+ PRINTI "You wouldn't kill"
+ CALL TPRINT-PRSO
+ PRINTR "!"
+?CCL53: IN? PRSO,HERE /?CCL55
+ CALL CTPRINT,PISTOL
+ PRINTI " can't fire that far"
+ PRINT PCR
+ RTRUE
+?CCL55: CALL WASTES
+ RSTACK
+?CCL36: EQUAL? PRSO,STONE \FALSE
+ EQUAL? PRSA,V?SSHOOT \FALSE
+ CALL WASTES
+ RSTACK
+
+
+ .FUNCT I-ENDGAME
+ EQUAL? HERE,LAGOON,BY-SHIP \?CND1
+ GRTR? LAFOND-CTR,1 \?CND1
+ SET 'SCORE,25
+ PRINT INDENT
+ PRINTI "You hear distant shots and screams, and gaze back across the restless waves to the massacre on the beach. The sight blurs with your tears of shame, tears for the father and the lover you left behind."
+ CRLF
+ CALL CLEAR-SCREEN,15
+ PRINT INDENT
+ PRINTI "The tale you tell Jamison's crew, of rapine and blood, of your heroic attempt to save their captain, and of your own escape after his death in your arms, is not so far from the truth that you cannot appear sincere. Cannily, you take advantage of their temporary grief, select a private guard, and teach the rest the discipline of the whip."
+ SET 'FINAL-RANK,3
+ LESS? LAFOND-CTR,DEAD \?CND5
+ PRINTI " You have started on the ruthless road to revenge. You intend to meet Lafond again, and that time, you intend to win."
+?CND5: CRLF
+ CALL FINISH
+ RFALSE
+?CND1: PRINT INDENT
+ EQUAL? LAFOND-CTR,1 \?CCL9
+ EQUAL? HERE,BEACH,SHALLOWS,LAGOON /?CCL12
+ CALL FWTD,STR?341
+ JUMP ?CND7
+?CCL12: CALL QUEUE,I-ENDGAME,-1
+ MOVE LAFOND,BEACH
+ FCLEAR LAFOND,MUNGBIT
+ MOVE CRULLEY,BEACH
+ FCLEAR CRULLEY,MUNGBIT
+ PRINTI "A shot rings out over the roar of the surf. Turning, you see that Lafond stands at the top of the cliff, a pistol in each hand. ""Trying to sneak out the back, cowards? You will die like your brother, Falcon. Snivelling for mercy."" He hands one gun to "
+ PRINTD CRULLEY
+ PRINTI ", standing nearby, and levels the other at Jamison"
+ PRINT PCR
+ JUMP ?CND7
+?CCL9: EQUAL? LAFOND-CTR,2 \?CCL14
+ FSET COOKIE,DEADBIT
+ SET 'QUESTIONER,HERO
+ SET 'AWAITING-REPLY,9
+ CALL QUEUE,I-REPLY,2
+ PRINTI "As the gun fires, Cookie throws himself before his captain. He cries out, blood blossoming on his shoulder, and falls face first into the sand. Lucy runs to him.
+ Jamison yells up the cliff, brandishing his sword. ""Fight like a man, Lafond. You have drawn my blood once tonight -- let me draw yours.""
+ Lafond sneers. ""On one condition. If I win, your lady comes to me. You will have no need of her when you are dead.""
+ Nicholas stiffens, glances at the dragoons on the cliff above, and turns slowly to you. He says nothing, his face hard, but his eyes tell you what you want to know. ""Answer, my darling. Yes or no?"""
+ CRLF
+ JUMP ?CND7
+?CCL14: EQUAL? LAFOND-CTR,3,4 \?CCL16
+ SET 'QUESTIONER,HERO
+ SET 'AWAITING-REPLY,9
+ CALL QUEUE,I-REPLY,2
+ CALL AFFIRMATIVE-ANSWER
+ ZERO? STACK \?CTR18
+ EQUAL? PRSA,V?YES \?CCL19
+?CTR18: FSET RAPIER,NDESCBIT
+ FSET LAFOND,NDESCBIT
+ FCLEAR CRULLEY,NDESCBIT
+ MOVE PISTOL,BEACH
+ SET 'LAFOND-CTR,4
+ PRINTI "Nicholas looks determined. ""I accept. So long as my people go free if I win. Order your dragoons to obey us, then."" In answer, Lafond jumps off the cliff like a huge brocaded bat to land in front of"
+ CALL TPRINT,HERO
+ PRINTI ". ""Die then, fool!""
+ "
+ CALL CTPRINT,PISTOL
+ PRINTI ", spinning from Lafond's grip, drops to the sand "
+ EQUAL? HERE,BEACH \?CCL24
+ PRINTI "nearby."
+ CRLF
+ JUMP ?CND7
+?CCL24: PRINTI "of the beach."
+ CRLF
+ JUMP ?CND7
+?CCL19: ZERO? REACTION \?CCL26
+ EQUAL? LAFOND-CTR,3 \?CCL26
+ PRINTI "Lafond calls down to you, ""My pretty doxy, do make up your mind. Yes or no?"""
+ CRLF
+ JUMP ?CND7
+?CCL26: CALL JIGS-UP,STR?342
+ JUMP ?CND7
+?CCL16: EQUAL? LAFOND-CTR,FIGHTING \?CCL30
+ PRINTD LAFOND
+ PRINTI " immediately takes the advantage, forcing Nicholas in a retreat towards the foaming surf. But Nicholas fights hard, jaw set, ignoring his wounds. Lafond finally loses his smile.
+ Behind the duellists, far away atop the cliff, you notice "
+ PRINTD CRULLEY
+ PRINTI " madly reloading the pistol"
+ PRINT PCR
+ JUMP ?CND7
+?CCL30: EQUAL? LAFOND-CTR,6 \?CCL32
+ FCLEAR LAFOND,NDESCBIT
+ REMOVE HRING
+ MOVE LRING,HERO
+ FCLEAR RAPIER,NDESCBIT
+ FSET LAFOND,DEADBIT
+ PRINTI "Suddenly the force of the duel turns, Nicholas advancing against Lafond's retreat. Their blades silently flash in the moonlight. Lafond is pressed back into the shadow of the cliff, sweat beading on his forehead. Abruptly, Jamison leaps forward, metal scrapes, and his rapier licks neatly into Lafond's ribs, like a snake slipping into its burrow. The body of the governor of St. Sinistra convulses, as in amazement, then sags dead on the sword.
+ Nicholas removes"
+ CALL APRINT,LRING
+ PRINTI " from the dead man's finger, throwing his own cheap copy into the surf.
+ Far above him,"
+ CALL TPRINT,CRULLEY
+ PRINTI " moves down the stairs."
+ CRLF
+ JUMP ?CND7
+?CCL32: EQUAL? LAFOND-CTR,DEAD \?CCL34
+ PRINTD CRULLEY
+ PRINTI " is levelling"
+ CALL TPRINT,PISTOL
+ PRINTI ", feet apart, braced by the cliff wall."
+ CRLF
+ JUMP ?CND7
+?CCL34: EQUAL? LAFOND-CTR,8 \?CCL36
+ PRINTD CRULLEY
+ PRINTI " carefully aims"
+ CALL TPRINT,PISTOL
+ PRINTI ", a triumphal grin benighting his face. Nicholas turns and walks smiling towards you, oblivious to his danger"
+ PRINT PCR
+ JUMP ?CND7
+?CCL36: EQUAL? LAFOND-CTR,9 \?CND7
+ CALL JIGS-UP,STR?343
+?CND7: INC 'LAFOND-CTR
+ RETURN LAFOND-CTR
+
+
+ .FUNCT FINALE
+ MOVE HERO,FOCSLE
+ CALL CLEAR-SCREEN,15
+ SET 'VERBOSITY,0
+ CALL GOTO,FOCSLE
+ PRINT INDENT
+ PRINTI "As dawn breaks over the eastern seas, you stand with Nicholas on his ship, looking north. ""I have nothing left in England,"" he says. ""There I am but a destitute gentleman, wanted for piracy. Here -- this isle holds too many memories"
+ FSET? DAD,DEADBIT \?CCL3
+ SET 'FINAL-RANK,1
+ PRINTI " --"" he pauses, gazing into your tear-filled eyes with compassion. """
+ JUMP ?CND1
+?CCL3: SET 'FINAL-RANK,4
+ PRINTI "; your father may have it. "
+?CND1: PRINTI "Mayhap my brother's wife yet lives. I must try to find her, either way."" He takes you into his arms. ""Come with me, my love? To America -- they tell of endless fertile fields and strange beasts in that wild land. It won't be easy, but we will have each other. Together, shall we carve a kingdom blessed with fair children and freedom?""
+ You wrap your arms about his waist and lean into him, and smile at the rising sun"
+ PRINT PCR
+ CALL FINISH
+ RSTACK
+
+
+ .FUNCT PATROL-F
+ EQUAL? PATROL,WINNER \?CCL3
+ PRINTR "A rough voice yells to leave them alone."
+?CCL3: CALL TOUCHING?,PATROL
+ ZERO? STACK /FALSE
+ CALL CANT-REACH,PATROL
+ RSTACK
+
+
+ .FUNCT FAILS-TO-NOTICE
+ EQUAL? WINNER,LUCY \?CCL3
+ PRINTI "Sh"
+ JUMP ?CND1
+?CCL3: PRINTC 72
+?CND1: PRINTI "e fails to notice you've spoken"
+ PRINT PCR
+ RTRUE
+
+ .ENDI
diff --git a/extras.zil b/extras.zil
new file mode 100644
index 0000000..dad4102
--- /dev/null
+++ b/extras.zil
@@ -0,0 +1,2303 @@
+"EXTRAS for
+ PLUNDERED HEARTS
+ (c) Copyright 1987 Infocom, Inc. All Rights Reserved."
+
+
+<OBJECT CRULLEY ;"EVERYBIT = 1/2 fight in dungeon."
+ (DESC "Crulley") ;"DEADBIT = unconscious"
+ (DESCFCN CRULLEY-F) ;"MUNGBIT = down well"
+ (SYNONYM PIRATE CRULLEY HOOK)
+ (ADJECTIVE ANDREW ANDY)
+ (SIZE 10)
+ (FLAGS ACTORBIT NARTICLEBIT OPENBIT CONTBIT TRANSBIT)
+ (GENERIC GEN-PIRATE)
+ (ACTION CRULLEY-F)>
+
+<ROUTINE CRULLEY-F ("OPTIONAL" (OARG <>) "AUX" X)
+ <COND (.OARG
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <TELL ,INDENT>
+ <COND (<EQUAL? ,HERE ,BEACH>
+ <TELL D ,CRULLEY " stands">
+ <COND (<G? ,LAFOND-CTR <- ,DEAD 1>>
+ <TELL ", pistol ready," ,HALFWAY>)
+ (T
+ ;<G? ,LAFOND-CTR 4>
+ <TELL " with the dragoons.">)>)
+
+ ;"Less than 4, in ENDGAME, Crulley handled in LAFOND-F"
+
+ (<EQUAL? ,HERE ,CABIN>
+ <TELL D ,CRULLEY " the pirate">
+ <COND (<FSET? ,CRULLEY ,DEADBIT>
+ <TELL " lies unconscious on the floor.">)
+ (T
+ <TELL ", hook raised, leering, comes toward you.">)>)>)
+ (<EQUAL? ,CRULLEY ,WINNER>
+ <COND (<FSET? ,CRULLEY ,DEADBIT>
+ <TELL ,DOESNT-RESPOND>)
+ (<AND <VERB? TELL-ABOUT>
+ <PRSO? ,ME>>
+ <COND (<NOUN-USED ,W?HOOK ,CRULLEY>
+ <TELL
+"He snarls at the memory, \"'Twere bit off by a monster crocodile.\"" CR>)
+ (<PRSI? ,LAFOND>
+ <TELL
+"\"'E's a hard 'un, who won't take no guff. But 'e pays well">
+ <COND (<NOT <FSET? ,BEACH ,TOUCHBIT>>
+ <TELL " -- er, so I hear">)>
+ <TELL ".\"" CR>)
+ (T
+ <TELL D ,CRULLEY " ignores you" ,PCR>)>
+ <STOP>)
+ (<VERB? HELLO>
+ <TELL "\"Har-har.\"" CR>)
+ (<AND <VERB? KISS>
+ <PRSO? ,ME>>
+ <TELL
+"\"Wi' a wannion! I likes me ladies forward!\"" CR>)
+ (<SET X <COM-CHECK ,CRULLEY>>
+ <COND (<==? .X ,M-FATAL> <RFALSE>)
+ (T <RTRUE>)>)
+ ;(T
+ <TELL D ,CRULLEY
+" cackles, his breath hot and pungent." CR>
+ <STOP>)>)
+ (<VERB? KILL CUT>
+ <COND (<FSET? ,CRULLEY ,DEADBIT>
+ <MAN-IS-DOWN>)
+ (<OR <NOT ,PRSI>
+ <PRSI? ,HANDS>>
+ <COND (<EQUAL? ,P-PRSA-WORD ,W?SLAP>
+ <TELL
+"Slap! The pirate fingers the red welt left by" T ,HANDS ", and laughs." CR>)
+ (<AND <IN? ,COFFER ,PROTAGONIST>
+ <NOT ,PRSI>>
+ <PERFORM ,V?KILL ,CRULLEY ,COFFER>
+ <RTRUE>)
+ (<AND <IN? ,RAPIER ,PROTAGONIST>
+ <NOT ,PRSI>>
+ <PERFORM ,V?KILL ,CRULLEY ,RAPIER>
+ <RTRUE>)
+ (T
+ <CANT-HURT "dainty fists">)>)
+ (<PRSI? ,COFFER>
+ <SETG ATTACK-C <+ ,ATTACK-C 1>>
+ <SETG CRULLEY-HIT T>
+ <TELL
+"With all your strength you whack the pirate" ,OVER-HEAD TR ,PRSI>
+ <MOVE ,PROTAGONIST ,HERE> ;"in case you're in bed"
+ <DEQUEUE I-CRULLEY>
+ <I-CRULLEY>)
+ (<PRSI? ,RAPIER>
+ <COND (<FSET? ,CRULLEY ,EVERYBIT>
+ <COND (<FSET? ,CRULLEY ,MUNGBIT>
+ <TELL
+,YOU-CANT "very well reach" T ,CRULLEY " when he's down in" TR ,WELL>)
+ (T
+ <DEQUEUE I-CDUNG>
+ <SETG SCORE <+ ,SCORE 1>>
+ <SETG CRULLEY-CTR 1>
+ <QUEUE I-CCLIMBS-UP 2>
+ <FSET ,CRULLEY ,MUNGBIT>
+ <FSET ,CRULLEY ,NDESCBIT>
+ <MOVE ,CRULLEY ,TRAP>
+ <REMOVE ,WHIP>
+ <TELL
+"You flick" T ,RAPIER " across his chest, barely scratching him. He cries,
+\"Avast me! Pricked by a woman!\" and trips into" TR ,TRAP
+,INDENT "You peer down the hole to find " D ,CRULLEY " hanging in midair,
+his hook caught in the rocks a few yards down. He curses and starts to
+climb up the sheer slimy walls of" TR ,WELL>)>)
+ (T
+ <FSET ,CRULLEY ,EVERYBIT>
+ <TELL
+D ,CRULLEY " seems more amazed than frightened of your attack, guessing
+correctly that you hardly know the tip from the hilt of" T ,RAPIER
+". He steps sideways in surprise, so he stands at" ,THE-EDGE TR ,TRAP>)>)
+ (T
+ <TELL
+"You slap" T ,CRULLEY ,OVER-HEAD T ,PRSI ", to no effect" ,PCR>)>)
+ (<VERB? KISS>
+ <SETG WINNER ,CRULLEY>
+ <PERFORM ,V?KISS ,ME>
+ <SETG WINNER ,PROTAGONIST>
+ <RTRUE>)
+ (<VERB? KICK>
+ <CANT-HURT "slippered toes">)
+ (<VERB? THROW PUT PUT-ON THROW-AT>
+ <COND (<FSET? ,CRULLEY ,MUNGBIT>
+ <COND (<PRSO? ,RAPIER>
+ <PERFORM ,V?PUT ,RAPIER ,TRAP>
+ <RTRUE>)
+ (<PRSO? ,RETICULE>
+ <RFALSE>)
+ (T
+ <REMOVE ,PRSO>
+ <TELL
+D ,CRULLEY " curses as" T ,PRSO " sails past him down into" TR ,WELL>)>)
+ (<PRSO? ,COFFER>
+ <PERFORM ,V?KILL ,CRULLEY ,PRSO>)
+ (T
+ <RFALSE>)>)
+ ;(<AND <VERB? THROW>
+ <NOT <EQUAL? ,HERE ,DUNGEON>>>
+ <PERFORM ,V?KILL ,CRULLEY ,PRSO>
+ <RTRUE>)
+ (<VERB? SEARCH>
+ <COND (<FSET? ,CRULLEY ,DEADBIT>
+ <TELL "And dirty your lily hands? Never!" CR>)
+ (<FSET? ,CRULLEY ,MUNGBIT>
+ <CANT-REACH ,CRULLEY>)
+ (T
+ <TELL
+"You are uncomfortably sure he would love to have you frisk him." CR>)>)
+ (<AND <VERB? GIVE>
+ <PRSO? ,BANKNOTE>
+ <NOT <EQUAL? ,HERE ,BEACH>>>
+ <TELL "He takes it, smiling blackly" ,PCR>)
+ (<VERB? EXAMINE>
+ <COND (<NOUN-USED ,W?HOOK ,CRULLEY>
+ <TELL "The hook replaces one of his hands." CR>)
+ (T
+ <TELL
+"The pirate's unsavory face is crisscrossed with scars, and those not
+from shaving nicks, to judge by his scruffy beard. A hook
+replaces one of his hands at the end of a torn black sleeve" ,PCR>)>)>>
+
+
+<GLOBAL CRULLEY-CTR 0>
+<GLOBAL CRULLEY-HIT <>>
+<GLOBAL ATTACK-C 0> ;"ATTACK-C, HEARD-CRULLEY, CRULLEY-BACK"
+<GLOBAL HEARD-CRULLEY <>> ;"could, in emergencies, be made into one"
+<GLOBAL CRULLEY-BACK 0> ;"wild-card global, set <> at intervals"
+
+<ROUTINE I-CRULLEY ()
+ <TELL ,INDENT>
+ <COND (<AND <EQUAL? ,ATTACK-C 0>
+ <NOT <FSET? ,CRULLEY ,TOUCHBIT>>>
+ <QUEUE I-MEET-HERO 2>
+ <FSET ,CRULLEY ,TOUCHBIT>
+ <MOVE ,CRULLEY ,CABIN>
+ <QUEUE I-CRULLEY -1>
+ <FSET ,DOOR ,MUNGBIT>
+ <TELL
+"Crash! You whirl around to see" T ,DOOR " shatter,
+kicked by a hulking man, his twisted visage blackened with soot and blood. ">)
+ (<EQUAL? ,ATTACK-C 1>
+ ;<QUEUE I-CRULLEY 1> ;"to fix ZIP20 Warning 15/7"
+ <TELL "The pirate stumbles, dizzy. ">)>
+ <COND (<EQUAL? ,ATTACK-C 2>
+ <FSET ,CRULLEY ,DEADBIT>
+ <TELL ,STUNNED-THE-SAILOR ,PCR>)
+ (T
+ <CRULLEY-SAYS>)>
+ <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+<GLOBAL STUNNED-THE-SAILOR "Stunned, Crulley collapses at your feet,
+his eyes rolling">
+
+<ROUTINE CRULLEY-SAYS ()
+ <TELL "\"" <GET ,MENACES ,CRULLEY-CTR> ",\" ">
+ <COND (<EQUAL? ,ATTACK-C 1>
+ <TELL "slurs">)
+ (T
+ <TELL "sniggers">)>
+ <TELL " the pirate">
+ <COND (<EQUAL? ,CRULLEY-CTR 1>
+ <TELL ". His breath is heavy with rum">)
+ (<PROB 60>
+ <TELL ", advancing toward you">)>
+ <TELL ,PCR>>
+
+<GLOBAL MENACES
+ <TABLE
+ "Me name's Andy Crulley, and ladies learn to love me"
+ "Avast me, but ain't ye a beauty"
+ "They calls me Andy, but I'm really randy">>
+
+;<ROUTINE old-CRULLEY-SAYS ("AUX" STRING)
+ <COND (<EQUAL? ,ATTACK-C 0>
+ <SET STRING "sniggers">)
+ (<EQUAL? ,ATTACK-C 1>
+ <SET STRING "slurs">)
+ ;(T
+ <SET STRING "mumbles">)>
+ <TELL "\"" <GET ,MENACES ,CRULLEY-CTR> ",\" " .STRING " the pirate">
+ ;<PICK-ONE ,MENACES>
+ <COND (<EQUAL? ,ATTACK-C 1>
+ <TELL ". His breath is heavy with rum">)
+ (<PROB 60>
+ <TELL ", advancing toward you">)>
+ <TELL ,PCR>>
+
+<ROUTINE I-OVERHEAR-CRULLEY ()
+ <COND (<EQUAL? ,HERE ,CREWS-QUARTERS>
+ <SETG HEARD-CRULLEY T>
+ <FSET ,ANCHOR ,MUNGBIT>
+ <FSET ,LEVER ,MUNGBIT>
+ <QUEUE I-SEE-CRULLEY-ESCAPE 20>
+ <QUEUE I-LOOK-SEA 10>
+ <TELL ,INDENT
+"\"I gotta let" T ,LAFOND " know 'e's comin'.\"" T ,CRULLEY " stands on deck
+above, talking to himself, his voice floating down through" A ,GRATE " in"
+T ,CEILING ". \"First, I do in the mates aboard-ship, with this and t'other
+mischief,\" he grunts, and you hear a snapping noise, like a taut rope being
+cut. \"Now to warn the boss and collect me pay. Off I go, har.\"
+He dives into" TR ,SEA>)>>
+
+;<ROUTINE old-I-OVERHEAR-CRULLEY ()
+ <COND (<NOT <EQUAL? ,HERE ,CREWS-QUARTERS>>
+ <RFALSE>)>
+ <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>
+ <COND (<EQUAL? ,CRULLEY-CTR 1>
+ <SETG HEARD-CRULLEY T>
+ <QUEUE I-OVERHEAR-CRULLEY 1>
+ <FSET ,ANCHOR ,MUNGBIT>
+ <FSET ,LEVER ,MUNGBIT>
+ <QUEUE I-SEE-CRULLEY-ESCAPE 20>
+ <QUEUE I-LOOK-SEA 10>
+ <TELL ,INDENT
+"\"So now to let" T ,LAFOND " know 'e's comin'.\"" T ,CRULLEY "'s whisper
+floats down through the grate in the ceiling. \"I do in the mates
+aboard-ship, and warn the boss; then we'll see who's doin' the flogging,
+Falcon, on you 'n the old man down in the dungeon.\"" CR>)
+ (<AND <EQUAL? ,CRULLEY-CTR 2>
+ <EQUAL? ,HERE ,CREWS-QUARTERS>>
+ <TELL ,INDENT
+D ,CRULLEY " seems to be alone, muttering to himself. \"" D ,LAFOND
+" pays me more for spying than Falcon pays me to get flogged.\"
+You hear a snapping noise, like a taut rope being cut. \"One last mischief
+to keep 'em busy! And off I go, har.\" He splashes quietly into" TR ,SEA>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE I-SEE-CRULLEY-ESCAPE ()
+ <COND (<AND <SHIP-BOARD ,HERE>
+ <NOT <INNER-DECK ,HERE>>>
+ <TELL ,INDENT
+"Your eyes are drawn to a flicker of light off the sea. Squinting,
+you see a man swimming to shore, moonlight flashing off his hook.">
+ <COND (<EQUAL? ,HERE ,POOP ,QUARTERDECK ,MAIN-DECK ,FOCSLE>
+ <TELL
+" A wisp of breeze brings an odor of onions and rum, and the occasional
+gargling chuckle, \"...mischief, har...reefs.\"">)>
+ <CRLF>)
+ (T
+ <QUEUE I-SEE-CRULLEY-ESCAPE 3>)>>
+
+<ROUTINE I-CDUNG ()
+ <COND (<L? ,CRULLEY-CTR 7>
+ <TELL ,INDENT D ,CRULLEY>
+ <COND (<EQUAL? ,CRULLEY-CTR 1>
+ <TELL " steps leering out of the shadows and">)>
+ <TELL
+" cracks" T ,WHIP " near you, hopping you towards the open " D ,TRAP ". \"">
+ <COND (<AND ,CRULLEY-HIT
+ <EQUAL? ,CRULLEY-CTR 1>>
+ <QUEUE I-REPLY 2>
+ <SETG AWAITING-REPLY 17>
+ <TELL "Come to hit me agin, are ye?">)
+ (T
+ <SETG AWAITING-REPLY 2>
+ <QUEUE I-REPLY 2>
+ <TELL <PICK-ONE ,ABUSES>>)>
+ <TELL "\"" CR>)
+ (T
+ <TELL ,INDENT
+D ,CRULLEY " snaps" T ,WHIP " around your neck,
+jerking you sideways and down through" T ,TRAP ".">
+ <JIGS-UP ,FALL-TO-BOTTOM>)>
+ <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+<GLOBAL ABUSES
+ <LTABLE
+ 0
+ "Would yer like a taste o' water?"
+ "What, afrighted of a lick o' the whip?"
+ "Leave yer honey be, wench. He'll join ye anon."
+ "Ye're a tasty doxy to let slip, but no 'elp fer it.">>
+
+<ROUTINE I-CCLIMBS-UP ()
+ <QUEUE I-CCLIMBS-UP -1>
+ <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>
+ <COND (<EQUAL? ,CRULLEY-CTR 10>
+ <SETG CRULLEY-BACK T>
+ <FCLEAR ,CRULLEY ,NDESCBIT>
+ <DEQUEUE I-CCLIMBS-UP>
+ <COND (<NOT <EQUAL? ,HERE ,DUNGEON>>
+ <FCLEAR ,CRULLEY ,MUNGBIT>
+ <MOVE ,CRULLEY ,DUNGEON>
+ <RFALSE>)
+ (<NOT <FSET? ,TRAP ,OPENBIT>>
+ <TELL ,INDENT
+"Roaring with anger," T ,CRULLEY " slaps" T ,TRAP " back on its hinges and">)
+ (T
+ <TELL ,INDENT D ,CRULLEY>)>
+ <TELL " leaps out of" T ,WELL ", seizing you.">
+ <JIGS-UP ,FALL-TO-BOTTOM>)
+ (<AND <PROB 50>
+ <EQUAL? ,HERE ,DUNGEON>>
+ <TELL ,INDENT
+"Sounds of scraping hook against stone and curses echo out of" T ,WELL>
+ <COND (<NOT <FSET? ,TRAP ,OPENBIT>>
+ <TELL ", muffled by" T ,TRAP>)>
+ <TELL ,PCR>)>>
+
+<OBJECT WHIP
+ (DESC "whip")
+ (SYNONYM WHIP)
+ (FLAGS TRYTAKEBIT)
+ (ACTION WHIP-F)>
+
+<ROUTINE WHIP-F ()
+ <COND (<VERB? TAKE>
+ <TELL
+D ,CRULLEY " snaps" T ,WHIP " near you. \"Get away wit' ye.\"" CR>)>>
+
+<OBJECT DAVIS
+ (IN DEUX-DECK)
+ (DESC "Davis")
+ (LDESC
+"Out of the smoke staggers Davis, tugging a bloodied knife from
+the back of a pirate. Davis's eyes gleam white from a face blackened and
+bloody, his lips dark red as if he has been drinking blood. He turns to
+face you.")
+ (SYNONYM DAVIS)
+ (FLAGS ACTORBIT NARTICLEBIT)
+ (ACTION DAVIS-F)>
+
+<ROUTINE DAVIS-F ()
+ <COND (<VERB? KILL KICK MUNG KISS>
+ <TELL D ,DAVIS " dodges." CR>)
+ (<VERB? EXAMINE>
+ <TELL D ,DAVIS " is ugly with fear." CR>)
+ (<EQUAL? ,DAVIS ,WINNER>
+ <FAILS-TO-NOTICE>)>>
+
+<OBJECT COOKIE ;"MUNGBIT has asked you about hero"
+ (IN GALLEY) ;"DEADBIT in I-ENDGAME -- dead"
+ (DESC "Cookie") ;"EVERYBIT = Cookie searching library"
+ (DESCFCN COOKIE-F)
+ (SYNONYM COOKIE QUICK COOK RODNEY)
+ (ADJECTIVE RODNEY)
+ (SIZE 10)
+ (FLAGS NARTICLEBIT ACTORBIT CONTBIT OPENBIT TRANSBIT SEARCHBIT)
+ (ACTION COOKIE-F)>
+
+<GLOBAL COOKIE-FIGHTING-CROC <>>
+
+<ROUTINE COOKIE-F ("OPTIONAL" (OARG <>) "AUX" X)
+ <COND (.OARG
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <TELL ,INDENT>
+ <COND (<EQUAL? ,HERE ,GALLEY>
+ <TELL
+"An entirely bald man sits here, carving into his peg leg">)
+ (,COOKIE-FIGHTING-CROC
+ <TELL
+"The pool is roily with the writhing bodies of" T ,COOKIE " and" T ,CROC>)
+ (<AND <QUEUED? ,I-ENDGAME>
+ <EQUAL? ,HERE ,BEACH>>
+ <COND (<FSET? ,COOKIE ,DEADBIT>
+ <TELL
+"Lucy cleans the sand from Quick's quiescent face, as Papa ">
+ <COND (<FSET? ,LAFOND ,DEADBIT>
+ <TELL "sneaks up the cliff stairs">)
+ (T
+ <TELL "stands nearby">
+ <COND (<IN? ,GARTER ,DAD>
+ <TELL ", holding" T ,GARTER>)>)>)
+ (T
+ <TELL
+D, COOKIE ", Lucy and your father are moving towards" T ,SKIFF>)>)
+ (T
+ <TELL D ,COOKIE " chews anxiously at a cheroot">)>
+ <TELL ".">)
+ (<EQUAL? ,COOKIE ,WINNER>
+ <COND (<FSET? ,COOKIE ,DEADBIT>
+ <TELL ,DOESNT-RESPOND>)
+ (<VERB? READ>
+ <TELL
+"\"I can't read! I'm a cook, not a gentleman!\"" CR>
+ <RTRUE>)
+ (<VERB? HELLO>
+ <TELL "\"Hullo -- boy!\" He winks at you" ,PCR>)
+ (<VERB? HELP SAVE-SOMETHING>
+ <COND (<EQUAL? ,HERE ,GALLEY>
+ <TELL
+"\"Eh? Don't be panicking. We'll be fine.\"
+He carves a smile into his leg" ,PCR>)
+ (T
+ <TELL
+D ,COOKIE " grumbles, \"What d'ye think I'm trying to do!\"" CR>)>)
+ (<AND <VERB? FIX>
+ <PRSO? ,DAGGER>>
+ <TELL
+"\"I never was able to sharpen that dagger.\"" CR>)
+ (<AND <VERB? TELL-ABOUT>
+ <PRSO? ,ME>>
+ <COND (<PRSI? ,HERO>
+ <COND (<IN? ,HERO ,MANACLES>
+ <TELL "\"I'm tryin' to find him!\"" CR>)
+ (T
+ <TELL
+"\"The Cap'n? I been with him since the war. Then came Lafond.\"" CR>)>)
+ (<PRSI? ,COOKIE>
+ <TELL
+"\"'Rodney Quick's me name, cookin's me game.|
+Lost me leg in sixty-eight, 'tis why I bake.|
+Losin' me hearin' in every fight, but I've got me sight --|
+And come our Good Lord's 1701, I'll lose me life to a ruffian's gun.'|
+-- Old dame told me that. Leastways, I've several years left.\"" CR>)
+ (<PRSI? ,LAFOND>
+ <TELL
+"\"He murdered Cap'n's brother and family these
+three year'n past. Cap'n's been searching for a
+time to avenge the dead ones, and now he's found it.\"" CR>)
+ (<PRSI? ,CRULLEY>
+ <TELL "\"Don't trust 'im. Never 'ave.\"" CR>)
+ (T
+ <TELL
+D ,COOKIE " cocks an ear, \"Eh, what's that?\"" CR>)>
+ <STOP>)
+ (<AND <VERB? GIVE>
+ <PRSO? ME>
+ <IN? ,RAPIER ,COOKIE>>
+ <PERFORM ,V?TAKE ,RAPIER>
+ <RTRUE>)
+ (<AND <VERB? FOLLOW>
+ <PRSO? ,ME>>
+ <TELL "\"Foller you?">
+ <COND (<NOT <EQUAL? ,HERE ,GALLEY>>
+ <TELL " Anywheres">)>
+ <TELL "!\"" CR>)
+ (<AND <VERB? TAKE>
+ <PRSO? ,PAIR>
+ <EQUAL? ,HERE ,X-ROOM>>
+ <TELL
+"\"No, lass. A lady don't use guns, and I've no need for one.\"" CR>)
+ (<SET X <COM-CHECK ,COOKIE>>
+ <COND (<==? .X ,M-FATAL> <RFALSE>)
+ (T <RTRUE>)>)
+ ;(T
+ <FAILS-TO-NOTICE>
+ <STOP>)>)
+ (<VERB? EXAMINE>
+ <TELL
+D ,COOKIE " is a grizzled old man with a peg-leg." CR>
+ ;<COND (<FIRST? ,COOKIE>
+ <TELL " ">
+ <RFALSE>)
+ (T
+ <CRLF>)>)
+ ;(<AND <VERB? ASK-FOR>
+ <PRSO? ,COOKIE>>
+ <COND (<HELD? ,PRSI ,COOKIE>
+ <MOVE ,PRSI ,PROTAGONIST>
+ <TELL "\"Take anything ye like.\"" CR>)
+ (T
+ <TELL "\"I hain't got none o' that!\"" CR>)>)
+ (<VERB? TELL-ABOUT>
+ <COND (<NOUN-USED ,W?GUNPOW ,SUPPLIES>
+ <TELL
+"\"Clam chowder? Never make it -- too fancy.\"" CR>)
+ (<PRSI? ,REEFS>
+ <TELL
+"\"We dropped the sea anchor -- no need to fear.\"" CR>)
+ (<PRSI? ,SUPPLIES>
+ <TELL
+"\"Aye, you must mean the supplies in the hold.
+Yep, that's where we store them.\"" CR>)
+ (<PRSI? ,HOLD ,FIRE>
+ <TELL
+"\"Fire for the cold? I think it be too warm...\"" CR>)
+ (<PRSI? ,FUSE>
+ <TELL
+"\"Lose sommat? I be always losing things.
+Think there be thieves aboard.\"" CR>)
+ (<PRSI? ,HERO>
+ <COND (,COOKIE-FIGHTING-CROC
+ <FAILS-TO-NOTICE>)
+ (<HELD? ,HERO ,DUNGEON> ;<IN? ,HERO ,MANACLES>
+ <TELL
+"\"Well, show me, lass!\" he grumbles" ,PCR>)
+ (T
+ <TELL
+"\"He's a fine man, is Cap'n,\" he smiles" ,PCR>)>)
+ (T
+ <RFALSE>)>)
+ (<VERB? KISS>
+ <TELL "\"Nah, me pretty, ye belong to Cap'n.\"" CR>)
+ (<AND <VERB? GIVE>
+ <PRSO? ,BANKNOTE>>
+ <TELL
+"\"I hain't no need fer that kind of money,\"
+he waves away your offer" ,PCR>)
+ (<VERB? KILL MUNG CUT>
+ <COND (<FSET? ,COOKIE ,DEADBIT>
+ <MAN-IS-DOWN>)
+ (T
+ <TELL
+"He holds you off, \"'Ere now, there's no call for that!\"" CR>)>)>>
+
+;"Crulley-ctr serves for Cookie in this one instance."
+<ROUTINE I-COOKIE ("OPTIONAL" (FIRST-MOVE <>))
+ <COND (.FIRST-MOVE
+ <SETG COOKIE-LOOKING <>>
+ <SETG QUESTIONER ,COOKIE>
+ <SETG AWAITING-REPLY 10>
+ <QUEUE I-REPLY 2>
+ <QUEUE I-COOKIE <COND (,CLOCK-WAIT 1) (T 2)>>
+ <MOVE ,COOKIE ,HERE>
+ <FSET ,COOKIE ,MUNGBIT>
+ <SETG CRULLEY-CTR 0>
+ <TELL ,INDENT
+D ,COOKIE " rushes up to you, looking worried.
+\"Miss, we must find the Cap'n. Have ye any idea where to look?\"" CR>)
+ (<NOT <IN? ,COOKIE ,HERE>>
+ <DEQUEUE I-COOKIE>)
+ (<OR <EQUAL? ,REACTION ,REACTION-POSITIVE>
+ <VERB? WALK>>
+ <TELL ,INDENT D ,COOKIE
+" grins broadly, \"I knew we could depend on you, lass. Lead on!\"" CR>)
+ (<EQUAL? ,CRULLEY-CTR 2> ;"gives you a couple chances"
+ <MOVE ,COOKIE ,LIBRARY> ;" to say no."
+ <COND (<EQUAL? ,REACTION ,REACTION-NEGATIVE>
+ <TELL ,INDENT
+"\"Hell and damnation, I was afraid of that">)
+ (T
+ <TELL ,INDENT
+"He harrumphs. \"So ye do not care fer him after all">)>
+ <TELL
+"!\" " D ,COOKIE " orders the men to search, moving off himself.|">)
+ (T
+ <SETG QUESTIONER ,COOKIE>
+ <SETG AWAITING-REPLY 10>
+ <QUEUE I-REPLY 2>
+ <QUEUE I-COOKIE 1>
+ <TELL ,INDENT D ,COOKIE
+" urges you, \"Think agin. Any idea?\"" CR>)>
+ <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+;<ROUTINE I-MOVE-GROUP ("AUX" GROUP-HERE NEW-HERE)
+ <SET GROUP-HERE <LOC ,COOKIE>>
+ <COND ;(<EQUAL? .GROUP-HERE ,BALLROOM>
+ <FSET ,VER-DOOR ,OPENBIT>
+ <SET NEW-HERE ,VERANDA>)
+ (<EQUAL? .GROUP-HERE ,VERANDA>
+ <SET NEW-HERE ,LAWN>)
+ (<EQUAL? .GROUP-HERE ,LAWN>
+ <SET NEW-HERE ,BEACH>
+ <DEQUEUE I-MOVE-GROUP>)
+ (T
+ <RFALSE>)>
+ <TELL ,INDENT>
+ <COND (<NOT <EQUAL? ,HERE .GROUP-HERE>>
+ <TELL
+"Nicholas calls your name distantly and is shushed, as t">)
+ (T
+ <TELL "T">)>
+ <TELL "he group straggles on towards the beach">
+ <MOVE ,COOKIE .NEW-HERE>
+ <MOVE ,DAD .NEW-HERE>
+ <MOVE ,LUCY .NEW-HERE>
+ <MOVE ,HERO .NEW-HERE>
+ <TELL ,PCR>>
+
+<OBJECT CREW
+ (IN LOCAL-GLOBALS)
+ (DESC "pirate")
+ (SYNONYM SAILOR PIRATE SEAMAN)
+ (SIZE 10)
+ (FLAGS ACTORBIT PLURALBIT ;NARTICLEBIT NDESCBIT)
+ (ACTION CREW-F)>
+
+<ROUTINE CREW-F ()
+ <COND (<EQUAL? ,CREW ,WINNER>
+ <COND (<VERB? HELLO>
+ <TELL "He grins at you toothlessly" ,PCR>)
+ (<AND ,ENDGAME
+ <VERB? WHERE FIND>
+ <PRSO? ,COOKIE ,HERO>>
+ <PERFORM ,V?TELL-ABOUT ,ME ,PRSO>
+ <RTRUE>)
+ (<AND <VERB? TELL-ABOUT>
+ <PRSO? ,ME>>
+ <COND (<AND ,ENDGAME
+ <PRSI? ,COOKIE ,HERO>>
+ <COND (<PRSI? ,COOKIE>
+ <TELL "\"'E went">)
+ (T
+ <TELL "\"Cookie be">)>
+ <TELL " a-lookin' for Cap'n.\"" CR>)
+ (<PRSI? ,LAFOND>
+ <TELL "\"'E be an evil man, I do hear.\"" CR>)
+ (T
+ <FAILS-TO-NOTICE>)>)
+ (T
+ <TELL
+"\"I'm busy. Do it yerself, boy.\" He cuffs you aside." CR>)>
+ <STOP>)
+ (<VERB? EXAMINE>
+ <TELL D ,HERO "'s crew are a ragged, toothless bunch,
+all sporting jagged scars. Despite their abhorrent appearances, they call
+friendlily to each other" ,PCR>)>>
+
+<OBJECT LUCY
+ (IN KITCHEN)
+ (DESC "Lucy")
+ (DESCFCN LUCY-F)
+ (SYNONYM WOMAN COOK LUCY)
+ (ADJECTIVE BLOND)
+ (SIZE 10)
+ (FLAGS ACTORBIT CONTBIT OPENBIT FEMALEBIT NARTICLEBIT)
+ (ACTION LUCY-F)>
+
+<ROUTINE LUCY-F ("OPTIONAL" (OARG <>))
+ <COND (.OARG
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <COND (<EQUAL? ,HERE ,KITCHEN>
+ <TELL ,INDENT>
+ <COND (<FSET? ,LUCY ,TOUCHBIT>
+ <TELL D ,LUCY>)
+ (T
+ <TELL "A blond woman">)>
+ <COND (<RUNNING? ,I-LUCY>
+ <TELL " stands talking to you">)
+ (T
+ <TELL
+" huddles alone by the fire, as if cold">)>
+ <TELL ".">)>)
+ (<EQUAL? ,LUCY ,WINNER>
+ <COND (<AND <VERB? TELL-ABOUT>
+ <PRSO? ,ME>>
+ <COND (<NOUN-USED ,W?LIBRARY ,HOUSE>
+ <TELL
+"\"I ain't allowed in that wing of" TR ,HOUSE>)
+ (<PRSI? ,LAFOND>
+ <TELL
+"\"He's a regular lout who don't like my cooking.\"" CR>)
+ (T
+ <FAILS-TO-NOTICE>)
+ ;(T
+ <TELL "\"Blusteration! I dunno!\"" CR>)>
+ <STOP>)
+ (<VERB? HELLO>
+ <TELL "She smiles" ,PCR>)
+ (<AND <VERB? KISS>
+ <PRSO? ,ME>>
+ <TELL "\"I hardly know you!\" she gasps." CR>)
+ (<SET OARG <COM-CHECK ,LUCY>>
+ <COND (<==? .OARG ,M-FATAL> <RFALSE>)
+ (T <RTRUE>)>)
+ ;(T
+ <FAILS-TO-NOTICE>
+ <STOP>)>)
+ (<AND <VERB? TELL-ABOUT>
+ <PRSI? ,DAD>>
+ <COND (<FSET? ,DAD ,TOUCHBIT>
+ <TELL "\"Yes, he told me.\"" CR>)
+ (T
+ <SETG AWAITING-REPLY 2>
+ <QUEUE I-REPLY 2>
+ <TELL
+"She yelps, \"Dear Dimsy, how can I save him?\"" CR>)>)
+ (<VERB? GIVE>
+ <COND (<AND <PRSO? ,GARTER>
+ <NOT <FSET? ,GARTER ,INVISIBLE>>>
+ <TELL
+ D ,LUCY " frowns. \"No, you silly boy! Give that to Dimsford!\"" CR>)
+ (<PRSO? ,BANKNOTE>
+ <TELL D ,LUCY
+" slaps you hard across the face. \"I'm not that sort of girl!\"" CR>)>)
+ (<VERB? LISTEN>
+ <COND (<RUNNING? ,I-LUCY>
+ <TELL "You are listening to her!" CR>)
+ (T
+ <TELL "She talks a lot, but doesn't say much" ,PCR>)>)
+ (<AND <VERB? ASK-FOR>
+ <PRSI? ,GARTER>>
+ <PERFORM ,V?TAKE ,GARTER>
+ <RTRUE>)
+ (<VERB? EXAMINE>
+ <TELL
+"Lucy is a very pretty woman, a few years your senior,
+her yellow hair neatly arranged. She wears a cook's apron" ,PCR>)>>
+
+<ROUTINE I-LUCY ()
+ <FCLEAR ,GARTER ,INVISIBLE>
+ <THIS-IS-IT ,GARTER>
+ <TELL ,INDENT
+"\"I haven't found Lafond's papers, I'm watched too closely.
+Tell Dimsford that I -- I'm scared, and I want him to come get me. Give this
+to him -- he'll recognize it.\" Lucy slides" A ,GARTER " down her leg and
+holds it out to you" ,PCR>>
+
+<ROUTINE I-CATCH-KISS ()
+ <FCLEAR ,FOREST ,EVERYBIT>>
+
+<OBJECT BUTLER ;"EVERYBIT means the butler is looking for you"
+ (IN FOYER) ;"MUNGBIT -- you didn't give bribe or invite"
+ (DESC "butler") ;"DEADBIT -- need I say anything?"
+ (DESCFCN BUTLER-F) ;"INDOORSBIT -- he's been bribed/invited"
+ (SYNONYM BUTLER)
+ (SIZE 10)
+ (FLAGS ACTORBIT OPENBIT SEARCHBIT)
+ (ACTION BUTLER-F)>
+
+<ROUTINE BUTLER-F ("OPTIONAL" (OARG <>) "AUX" (CONTENTS 0))
+ <COND (.OARG
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <TELL ,INDENT CTHE ,BUTLER>
+ <COND (<NOT <FSET? ,BUTLER ,DEADBIT>>
+ <TELL " stands near the entrance to ">
+ <COND (<EQUAL? ,HERE ,FOYER>
+ <TELL "the ballroom">)
+ ;(<EQUAL? ,HERE ,UPPER-HALL-E>
+ <TELL "Lafond's bedroom">)
+ (T
+ <TELL "the hallway">)>)
+ (T
+ <TELL " lies on the floor, prone and snoring loudly">)>
+ <TELL ".">)
+ (<EQUAL? ,BUTLER ,WINNER>
+ <COND (<FSET? ,BUTLER ,DEADBIT>
+ <TELL ,DOESNT-RESPOND>)
+ (<VERB? HELLO>
+ <TELL "He bows" ,PCR>)
+ (<AND <VERB? TAKE>
+ <PRSO? ,INVITE ,BANKNOTE
+ ,BLUE-GLASS ,GREEN-GLASS>>
+ <SETG WINNER ,PROTAGONIST>
+ <PERFORM ,V?GIVE ,PRSO ,BUTLER>
+ <SETG WINNER ,BUTLER>
+ <RTRUE>)
+ (<AND <VERB? TELL-ABOUT>
+ <PRSO? ,ME>
+ <PRSI? ,LAFOND>>
+ <COND (<OR <QUEUED? ,I-SUMMONS>
+ <NOT <FSET? ,LDOOR ,LOCKEDBIT>>>
+ <COND (<EQUAL? ,HERE ,LAFS-ROOM>
+ <TELL "\"He's gone for water, Miss.\"" CR>)
+ (T
+ <TELL
+"\"He's awaiting you now, Miss. In his room.\"" CR>
+ <MOVE ,LAFOND ,LAFS-ROOM>)>)
+ (<EQUAL? ,DANCED-WITH ,LAFOND>
+ ;<NOT <IN? ,DAD ,CELL-4>>
+ <TELL
+"\"He has retired to his room, and requests not to be disturbed.\"" CR>)
+ (T
+ <TELL
+"\"The governor is in the ballroom, Miss.\"" CR>)>)
+ ;(<IN? ,INVITE ,BUTLER>
+ <TELL CTHE ,BUTLER " affects not to hear you." CR>
+ <STOP>)
+ (<SET OARG <COM-CHECK ,BUTLER>>
+ <COND (<==? .OARG ,M-FATAL> <RFALSE>)
+ (T <RTRUE>)>)
+ ;(T
+ <I-BUTLER T>)>)
+ (<VERB? EXAMINE>
+ <TELL CTHE ,BUTLER
+", scarred and burly, looks uncomfortable in his formal blacks,
+as if he'd prefer the rags of a pirate">
+ <COND (<FSET? ,BUTLER ,DEADBIT>
+ <TELL ". He lies snoring on the floor">)>
+ <TELL ,PCR>)
+ (<FSET? ,BUTLER ,DEADBIT>
+ <COND (<VERB? SEARCH>
+ <TELL ,NOTHING-NEW>)
+ (<NOT <VERB? TELL ASK-ABOUT HELLO>>
+ <TELL ,DOESNT-RESPOND>
+ <RTRUE>)>)
+ (<VERB? GIVE SHOW>
+ <COND (<PRSO? ,INVITE ,BANKNOTE>
+ <BRIBE-BUTLER ,PRSO>)
+ (<PRSO? ,BLUE-GLASS ,GREEN-GLASS>
+ <TELL "He looks pleased">
+ <COND (<EQUAL? <GETP ,PRSO ,P?CONTENTS> 0 ,POISONED>
+ <TELL
+", then disappointed. \"There's no wine in that glass, Ma'am.\"" CR>
+ <RTRUE>)
+ (<EQUAL? <GETP ,PRSO ,P?CONTENTS> ,W-P>
+ <SETG DRUGGEE ,BUTLER>
+ <QUEUE I-WATCH-SLEEP 2>)>
+ <MOVE ,PRSO ,BUTLER>
+ <PUTP ,PRSO ,P?CONTENTS 0>
+ <TELL
+". \"I am rather parched, Ma'am,\" he says, taking and emptying" TR ,PRSO>)
+ (T
+ <RFALSE>)>)
+ (<EQUAL? ,P-PRSA-WORD ,W?TIP>
+ <COND (<HELD? ,BANKNOTE>
+ <BRIBE-BUTLER ,BANKNOTE>)
+ (T
+ <TELL "You have nothing to do that with." CR>)>)>>
+
+<GLOBAL BUTLER-CTR 0>
+
+<ROUTINE I-BUTLER ("OPTIONAL" (CALLED-BY-BUTLER-F <>))
+ <SETG BUTLER-CTR <+ ,BUTLER-CTR 1>>
+ <COND (.CALLED-BY-BUTLER-F
+ <QUEUE I-BUTLER 2>)
+ (T
+ <QUEUE I-BUTLER -1>)>
+ <COND (<NOT <EQUAL? ,HERE ,FOYER>> ;"You can only bother him"
+ <SETG AWAITING-FAKE-ORPHAN <>> ;"X times. And if you enter,"
+ <DEQUEUE I-BUTLER> ;"then leave, dequeue, but N+1"
+ <RFALSE>)
+ (<NOT <FSET? ,GOWN ,WORNBIT>> ;"added so you won't get"
+ <RFALSE>)> ;"Your invite? ... kicks you out"
+ <COND (<NOT .CALLED-BY-BUTLER-F>
+ <TELL ,INDENT>
+ <TELL "\"">)>
+ <COND ;(<FSET? ,BUTLER ,MUNGBIT>
+ <TELL ,NO-LOITERING ,PUSHING-YOU-OUT CR>
+ <GOTO ,MAIN-ENTRANCE>)
+ (T
+ <COND (<EQUAL? ,BUTLER-CTR 3 ;5>
+ <DEQUEUE I-BUTLER>
+ <FSET ,BUTLER ,MUNGBIT>
+ <TELL ,YOULL-HAVE-TO
+"hope to be invited to the next party,\" smirks"
+T ,BUTLER ,PUSHING-YOU-OUT CR>
+ <GOTO ,MAIN-ENTRANCE>)
+ (T
+ <TELL
+"Your invitation, Miss?\" says" T ,BUTLER>
+ <COND (<EQUAL? ,BUTLER-CTR 4>
+ <TELL " snapping his fingers">)
+ (T
+ <TELL " bowing">)>
+ <TELL ,PCR>)>)>>
+
+<ROUTINE BRIBE-BUTLER (GRAFT)
+ <MOVE .GRAFT ,BUTLER>
+ <COND (<FSET? ,BUTLER ,INDOORSBIT> ;"he's been bribed/invite already"
+ <TELL
+"He takes" T .GRAFT " and bows. \"Thank you, Miss">
+ <COND (<EQUAL? .GRAFT ,INVITE>
+ <TELL " Davis">)>
+ <TELL ".\"" CR>)
+ (T
+ <FSET ,BUTLER ,INDOORSBIT>
+ <FCLEAR ,BUTLER ,MUNGBIT> ;"Stop 'No Loitering' interrupt"
+ <DEQUEUE I-BUTLER>
+ <SETG SCORE <+ ,SCORE 1>>
+ <TELL CTHE ,BUTLER " takes" T .GRAFT>
+ <COND (<EQUAL? .GRAFT ,BANKNOTE>
+ <TELL " and secrets it away">)>
+ <TELL ". \"Enjoy the dance, Miss">
+ <COND (<EQUAL? .GRAFT ,INVITE>
+ <TELL " Davis">)>
+ <TELL ".\"" CR>)>>
+
+
+
+<OBJECT DANCERS
+ (IN LOCAL-GLOBALS)
+ (DESC "dancer")
+ ;(DESCFCN DANCERS-F)
+ (SYNONYM WOMAN MEN LADY LADIES)
+ (ADJECTIVE DANCER)
+ (SIZE 10)
+ (FLAGS ACTORBIT)
+ (ACTION DANCERS-F)>
+
+<ROUTINE DANCERS-F ()
+ <COND (<EQUAL? ,DANCERS ,WINNER>
+ <COND (,ENDGAME
+ <TELL CTHE ,DANCERS " looks away, terrified." CR>)
+ (<VERB? HELLO>
+ <TELL
+"A dancer smiles nervously and looks away" ,PCR>)
+ (<AND <VERB? TELL-ABOUT>
+ <PRSO? ,ME>>
+ <COND (<PRSI? ,LAFOND>
+ <TELL
+"\"He's such a good host! I've never been to such a fine party! I'm so glad
+he is our governor.\" You have never seen anyone so nervous before" ,PCR>)
+ (T
+ <TELL
+"Nobody seems inclined to chat with you" ,PCR>)>
+ <STOP>)>)
+ (<OR <VERB? DANCE>
+ <AND <VERB? ASK-FOR>
+ <PRSI? ,BALLROOM>>>
+ <TELL
+"A man regretfully shakes his head.
+\"We haven't been introduced by the governor.\"" CR>)
+ (<AND <VERB? ASK-FOR>
+ <PRSI? ,BALLROOM>>
+ <PERFORM ,V?DANCE ,DANCERS>
+ <RTRUE>)
+ (<VERB? EXAMINE>
+ <TELL
+CTHE ,DANCERS "s are dressed in powdered wigs and heavy jewels.
+All seem paler than fashion and the tropics would decree,
+and rather nervous" ,PCR>)>>
+
+<GLOBAL DAD-KISS "He kisses your forehead.|">
+
+<OBJECT DAD
+ (IN CELL-4)
+ (DESC "your father")
+ (DESCFCN DAD-F)
+ (SYNONYM DAD PAPA FATHER DIMSFORD)
+ (ADJECTIVE ERNEST RYALL MY)
+ (SIZE 10)
+ (FLAGS ACTORBIT NARTICLEBIT CONTBIT OPENBIT NDESCBIT)
+ (ACTION DAD-F)>
+
+<ROUTINE DAD-F ("OPTIONAL" (OARG <>))
+ <COND (.OARG
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <TELL ,INDENT "Your father calmly stands nearby.">)
+ (<EQUAL? ,DAD ,WINNER>
+ <COND ;(<AND <VERB? READ>
+ <PRSO? ,SCRAP-OF-PAPER>>
+ <PERFORM ,V?TELL-ABOUT ,ME ,SCRAP-OF-PAPER>
+ <RTRUE>)
+ (<AND <VERB? TELL-ABOUT>
+ <PRSO? ,ME>>
+ <COND (<PRSI? ,GARTER>
+ <TELL "\"That belongs to -- a friend.\"" CR>)
+ (T
+ <TELL
+"\"My dear,\" he says rather impatiently, \"There are people waiting for our
+help -- I haven't time to answer your questions just now.\"" CR>)>
+ <STOP>)
+ (<VERB? I-LOVE-YOU>
+ <COND (<PRSI? ,EYES>
+ <TELL ,DAD-KISS>)
+ (<PRSI? ,HERO>
+ <TELL "\"I hoped you would,\" he smiles." CR>)
+ (<PRSI? ,LAFOND>
+ <TELL "\"My poor doomed daughter!\"" CR>)
+ (T
+ <FAILS-TO-NOTICE>)>)
+ (<AND <VERB? FOLLOW>
+ <PRSO? ,ME>>
+ <TELL "\"Lead on, daughter!\"" CR>)
+ (<VERB? HELLO>
+ <TELL ,DAD-KISS>)
+ (<SET OARG <COM-CHECK ,DAD>>
+ <COND (<==? .OARG ,M-FATAL> <RFALSE>)
+ (T <RTRUE>)>)
+ ;(T
+ <FAILS-TO-NOTICE>
+ <STOP>)>)
+ (<AND <VERB? ASK-FOR>
+ <PRSI? ,GARTER>>
+ <PERFORM ,V?TAKE ,GARTER>
+ <RTRUE>)
+ (<VERB? TELL-ABOUT>
+ <COND (<PRSI? ,LUCY>
+ <TELL
+"He listens intently, and laughs,
+\"What a delightful girl she is, to be sure!\"" CR>)
+ (<PRSI? ,HERO>
+ <COND (<RUNNING? ,I-DAD>
+ <DEQUEUE I-DAD>
+ <I-DAD T>)
+ (T
+ <SETG AWAITING-REPLY 16>
+ <QUEUE I-REPLY 2>
+ <TELL
+"\"So you like him?\" he asks, smiling" ,PCR>)>)
+ (T
+ <RFALSE>)>)
+ (<VERB? GIVE SHOW>
+ <COND (<PRSO? ,BANKNOTE>
+ <REMOVE ,BANKNOTE>
+ <TELL
+"\"Do not stain yourself with that dirty money,\" he takes"
+T ,BANKNOTE " and rips it up" ,PCR>)
+ (<PRSO? ,GARTER>
+ <TELL "He smiles dreamily at a memory." CR>)
+ (T
+ <RFALSE>)>)
+ (<VERB? EXAMINE>
+ <TELL
+"Prison has only added a peppery beard to your father's handsome features.
+His green eyes still twinkle, his wrists still poke bonily out of his shirt
+cuffs" ,PCR>)>>
+
+<ROUTINE I-DAD ("OPTIONAL" (CALLED-BY-DAD-F <>))
+ <COND (<NOT .CALLED-BY-DAD-F>
+ <TELL ,INDENT>)>
+ <TELL "You briefly explain the current situation to your father.|
+ \"I knew Falcon would do his best to rescue me, once you were safe,\" he
+responds. \"Now to rescue Lucy -- Nicholas will have told you about her.
+You get him while I get Lucy, and the four of us will meet down at the beach.
+Just show me the way out of this maze, and we'll get started.\"" CR>>
+
+<OBJECT LAFOND
+ (IN LAFS-ROOM)
+ (DESC "Lafond")
+ (DESCFCN LAFOND-F)
+ (SYNONYM LAFOND VILLAIN GOVERNOR)
+ (ADJECTIVE JEAN)
+ (SIZE 10)
+ (FLAGS ACTORBIT NARTICLEBIT CONTBIT OPENBIT)
+ (ACTION LAFOND-F)>
+
+<GLOBAL LAF-GRABS "Lafond grabs your hair and pulls your head
+sharply back, clinching your arms to your sides. ">
+
+<GLOBAL KILL-L <>>
+
+<CONSTANT LAF-MUNGED ", his wig awry, sprawls across the parquet floor.">
+
+<ROUTINE LAFOND-F ("OPTIONAL" (OARG <>))
+ <COND (.OARG
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <TELL ,INDENT D ,LAFOND>
+ <COND (<FSET? ,LAFOND ,MUNGBIT>
+ <TELL ,LAF-MUNGED>)
+ (<FSET? ,LAFOND ,DEADBIT>
+ <TELL " is slumped in the sand, dead.">)
+ (<EQUAL? ,HERE ,BEACH>
+ <TELL " stands" ,HALFWAY>)
+
+ ;"Lafond is described in HERO-F during fighting on beach."
+
+ (T
+ <TELL " is leering, lip curled.">)>)
+ (<EQUAL? ,LAFOND ,WINNER>
+ <COND (<AND <OR <RUNNING? ,I-DUEL>
+ <RUNNING? ,I-ENDGAME>>
+ <NOT <FSET? ,LAFOND ,DEADBIT>>>
+ <TELL "He ignores you." CR>)
+ (<AND <VERB? TELL-ABOUT>
+ <PRSO? ,ME>
+ <PRSI? ,LRING>>
+ <SETG WINNER ,PROTAGONIST>
+ <PERFORM ,V?TAKE ,LRING>
+ <SETG WINNER ,LAFOND>
+ <RTRUE>)
+ (<SET OARG <COM-CHECK ,LAFOND>>
+ <COND (<==? .OARG ,M-FATAL> <RFALSE>)
+ (T <RTRUE>)>)
+ ;(T
+ <FAILS-TO-NOTICE>
+ <COND (<VERB? DRINK>
+ <SETG REACTION ,REACTION-NEGATIVE>)>
+ <STOP>)>)
+ (<AND <VERB? POUR>
+ <PRSO? ,WINE>
+ <NOT <FSET? ,LAFOND ,DEADBIT>>>
+ <FWTD ,SMACK-YOUR-FACE>)
+ (<AND <VERB? DANCE>
+ <EQUAL? ,HERE ,BALLROOM>>
+ <COND (<EQUAL? ,PARTNER ,LAFOND>
+ <TELL ,PACE>)
+ (<RUNNING? ,I-LDANCE>
+ <TELL "You curtsey and walk to" ,DANCE-FLOOR ,PCR>
+ <SETG REACTION ,REACTION-POSITIVE>)>)
+ (<VERB? KILL BITE KICK>
+ <COND (<FSET? ,LAFOND ,MUNGBIT>
+ <MAN-IS-DOWN>)
+ (<EQUAL? ,HERE ,BALLROOM>
+ <SETG AWAITING-REPLY 2>
+ <QUEUE I-REPLY 2>
+ <TELL
+,LAF-GRABS ,THE-BALLROOM "whirling blur through your tears as he
+leads you around the floor. \"Ma petite, a ball is not the right
+place to kill me. What would my guests think?!\"" CR>)
+ (<NOT ,KILL-L>
+ <SETG KILL-L T>
+ <TELL ,LAF-GRABS
+"Twisting your wrist, pain stabbing down your arm, he forces his mouth on
+yours, hard, thrusting, cutting your lips. He releases you">
+ <COND (<AND ,PRSI
+ <NOT <PRSI? ,RETICULE>>
+ <NOT <FSET? ,PRSI ,WORNBIT>>>
+ <MOVE ,PRSI ,LAFOND>
+ <TELL ", taking" T ,PRSI>)>
+ <TELL
+". \"Let that be a warning to you, my love.\"" CR>)
+ (T
+ <JIGS-UP
+"Lafond hits you back. The end is not sweet and not fast.">)>)
+ (<AND <VERB? TOUCH>
+ <NOT <FSET? ,LAFOND ,DEADBIT>>>
+ <TELL "He smiles." CR>)
+ (<AND <VERB? GIVE>
+ <PRSO? ,BLUE-GLASS ,GREEN-GLASS>>
+ <COND (<OR <IN? ,BLUE-GLASS ,LAFOND>
+ <IN? ,GREEN-GLASS ,LAFOND>>
+ <TELL "\"I already have a glass, thank you.\"" CR>)
+ (T
+ <MOVE ,PRSO ,LAFOND>
+ <TELL "He takes" TR ,PRSO>)>)
+ (<VERB? KISS>
+ <COND (<EQUAL? ,HERE ,LAFS-ROOM>
+ <COND (<G? ,LAFOND-CTR ,HORNY>
+ <TELL
+"Queasy, you turn up your face to be kissed. His lips are cold, dry." CR>)
+ (T
+ <TELL "He laughs. \"Not yet, petite.\"" CR>)>)
+ (T
+ <TELL "You shudder at the thought" ,PCR>)>)
+ (<VERB? EXAMINE>
+ <COND (<AND <RUNNING? ,I-LSED>
+ <G? ,LAFOND-CTR 11>>
+ <TELL
+"You turn away in modesty after a
+brief glimpse of pasty pink flesh" ,PCR>)
+ (<FSET? ,LAFOND ,MUNGBIT>
+ <TELL D ,LAFOND ,LAF-MUNGED CR>)
+ (<OR ,ENDGAME
+ <AND <RUNNING? ,I-LSED>
+ <G? ,LAFOND-CTR 4>>>
+ <TELL
+"Lafond is dressed in a rich brocade robe" ,PCR>)
+
+ (T
+ <TELL
+"Wigged in dark brown curls, dressed in velvets and brocade,
+he is warmly attractive. Until you meet his eyes,
+stone gray and cold" ,PCR>)>)>>
+
+<OBJECT LRING
+ (IN LAFOND)
+ (DESC "gold ring")
+ (SYNONYM RING LATIN)
+ (ADJECTIVE GOLD)
+ (FLAGS NDESCBIT ;TRYTAKEBIT)
+ (GENERIC GEN-RING)
+ (ACTION RING-F)>
+
+<OBJECT HRING
+ (IN HERO)
+ (DESC "new ring")
+ (SYNONYM RING LATIN)
+ (ADJECTIVE NEW)
+ (FLAGS ;TRYTAKEBIT NDESCBIT)
+ (GENERIC GEN-RING)
+ (ACTION RING-F)>
+
+<ROUTINE RING-F ()
+ <COND (<OR <NOUN-USED ,W?LATIN ,LRING>
+ <NOUN-USED ,W?LATIN ,HRING>
+ <VERB? READ>>
+ <REPERTOIRE "The study of Latin">)
+ (<VERB? EXAMINE>
+ <COND (<PRSO? ,LRING>
+ <TELL "It's an ancient gold band, with">)
+ (T
+ <TELL "Made of copper," T ,HRING " has">)>
+ <TELL
+" a curious design of gargoyles, curled tongues extended, on its flat face,
+with \"Sal Sapit Omnia\" engraved at the bottom" ,PCR>)
+ (<VERB? TAKE>
+ <COND (<AND <PRSO? ,LRING>
+ <IN? ,LRING ,LAFOND>>
+ <COND (<FSET? ,LAFOND ,MUNGBIT>
+ <TELL
+D ,LAFOND "'s fingers are curled tight in a fist. You cannot get it" ,PCR>)
+ (T
+ <TELL
+"\"It is an impressive crest, no? I've
+thought of making it my own.\"" CR>)>)
+ (T
+ <COND (<FSET? ,HERO ,DEADBIT>
+ <NO-TIME-FOR "steal jewelry">
+ ;<TELL "This is no time to be stealing jewelry!" CR>)
+ (T
+ <TELL
+D ,HERO " curls his fist around it. \"This is ">
+ <COND (<IN? ,HRING ,HERO>
+ <TELL "a copy of ">)>
+ <TELL
+"the family ring lost with my brother.\"" CR>)>)>)>>
+
+<ROUTINE GEN-RING ()
+ <RETURN ,HRING>>
+
+<ROUTINE COM-CHECK (PER)
+ <COND (<VERB? HELP>
+ <COND (<EQUAL? .PER ,LAFOND>
+ <TELL
+"He snickers, \"So I shall, petite.\"" CR>)
+ (<EQUAL? .PER ,CRULLEY>
+ <TELL
+"\"An' what'll I get fer it?\" he says, eying your body." CR>)
+ (T
+ <TELL "\"I'm doing all I can.\"" CR>)
+ ;(<EQUAL? ,WINNER ,PROTAGONIST>
+ <PROPOSE>)
+ ;(<OR <FSET? .PER ,MUNGBIT>
+ <FSET? .PER ,DEADBIT>>
+ <TELL
+"This isn't a good time to ask him for help." CR>)>)
+ (<AND <VERB? KISS>
+ <PRSO? ,ME>>
+ <SETG WINNER ,PROTAGONIST>
+ <PERFORM ,V?KISS .PER>
+ <SETG WINNER .PER>
+ <RTRUE>)
+ (<VERB? WALK>
+ <TELL "\"After you!\"" CR>)
+ (<AND <VERB? FOLLOW>
+ <PRSO? ,ME>>
+ <TELL "\"Anywhere!\"" CR>)
+ (<VERB? HELLO>
+ <TELL "\"Hello!\"" CR>)
+ (<VERB? WHAT>
+ <PERFORM ,V?TELL-ABOUT ,ME ,PRSO>
+ <RTRUE>)
+ (<AND <VERB? GIVE>
+ <PRSI? ,ME>>
+ <SETG WINNER ,PROTAGONIST>
+ <PERFORM ,V?ASK-FOR .PER ,PRSO>
+ <SETG WINNER .PER>
+ <RTRUE>)
+ (<VERB? SGIVE>
+ <RFATAL>)
+ (<VERB? YES NO>
+ <SETG WINNER ,PROTAGONIST>
+ <PERFORM-PRSA>
+ <SETG WINNER .PER>
+ <RTRUE>)
+ (T
+ <FAILS-TO-NOTICE>
+ <COND (<VERB? DRINK>
+ <SETG REACTION ,REACTION-NEGATIVE>)>
+ ;<COND (<EQUAL? .PER ,BUTLER>
+ <I-BUTLER T>)
+ (T
+ <FAILS-TO-NOTICE>
+ <COND (<VERB? DRINK>
+ <SETG REACTION ,REACTION-NEGATIVE>)>)>
+ <STOP>
+ <RTRUE>)>>
+
+<GLOBAL LAFOND-CTR 0>
+<GLOBAL HERO-ARRESTED <>> ;"Hero arrested: NO to Lafond, Dad free already"
+
+<ROUTINE I-LDANCE ()
+ <COND (<NOT <EQUAL? ,HERE ,BALLROOM>>
+ <DEQUEUE I-LDANCE>)
+ (T
+ <COND (<EQUAL? ,LAFOND-CTR 1>
+ <MOVE ,LAFOND ,HERE>
+ <QUEUE I-LDANCE -1>
+ <SETG AWAITING-REPLY 11>
+ <QUEUE I-REPLY 2>
+ <SETG QUESTIONER ,LAFOND>
+ <SETG DANCED-WITH ,LAFOND>
+ <TELL ,INDENT
+"A fashionably bewigged man stalks up to you and bows deeply. \"Will you
+dance?\" he asks, with a light French accent. \"Not that you have much
+choice. If you turn me down," T ,DAD " dies.\"" CR>)
+ (<EQUAL? ,LAFOND-CTR 2>
+ <COND (<EQUAL? ,REACTION ,REACTION-POSITIVE>
+ <SETG PARTNER ,LAFOND>
+;"So to skip the next turn" <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>>
+ <TELL
+,INDENT "\"I am, of course, Lafond.\" " ,LAUGHS>)
+ (T
+ <SETG QUESTIONER ,LAFOND>
+ <SETG AWAITING-REPLY 11>
+ <QUEUE I-REPLY 2>
+ <TELL ,INDENT
+"The man's smile hardens. \"You have" T ,DAD "'s eyes. I am Lafond --
+I have recently become intimate with that gentleman.\" He slightly
+stresses the word \"intimate.\"|
+ \"Now, tell me 'yes.' And remember, I am a man of my word.\"" CR>)>)
+ (<EQUAL? ,LAFOND-CTR 3>
+ <COND (<EQUAL? ,REACTION ,REACTION-NEGATIVE
+ ,REACTION-NEUTRAL>
+ <DEQUEUE I-LDANCE>
+ <QUEUE I-CKILLS-DAD 2>
+ <TELL ,INDENT
+"\"A mistake, ma petite.\" Lafond gestures to a
+shadowy figure, who disappears into the east wing.
+\"Say adieu to your dear Papa.\"" CR>)
+ (T
+ <SETG PARTNER ,LAFOND>
+ <TELL ,LAUGHS>)>)
+ (<EQUAL? ,LAFOND-CTR 4>
+ <QUEUE I-LDANCE -1>
+ <TELL ,INDENT
+"\"So you know I am not your father's friend,\" Lafond says, offering a
+hand for the promenade. \"Unfortunately, you are in my power, ">
+ <COND (,HERO-ARRESTED
+ <TELL "the Falcon is with my dragoons">)
+ (T
+ <TELL "he is in my dungeon">)>
+ <TELL
+" and I am still King of these waters.\" A gold ring flashes
+on his hand. It seems vaguely familiar" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 5>
+ <COND (<FSET? ,DAD ,TOUCHBIT>
+ <COND (<NOT ,HERO-ARRESTED>
+ <QUEUE I-HARRESTED 3>)>
+ <QUEUE I-SUMMONS 5>)>
+ <SETG SCORE <+ ,SCORE 1>>
+ <DEQUEUE I-LDANCE>
+ <REMOVE ,LAFOND>
+ <SETG PARTNER <>>
+ <TELL ,INDENT D ,LAFOND
+"'s eyes rake your body. \"When I am ready," T ,BUTLER " will
+summon you to sup with me in my room">
+ <COND (<NOT <FSET? ,DAD ,TOUCHBIT>>
+ <TELL "; it may be some time">)>
+ <TELL
+". We will find much in common before dawn, I am sure. Then I may free your ">
+ <COND (,HERO-ARRESTED
+ <TELL "lover">)
+ (T
+ <TELL "father">)>
+ <TELL
+".\"" T ,LAFOND " bows as the dance ends, and kisses " D ,HANDS ". ">
+ <COND (<NOT <FSET? ,DAD ,TOUCHBIT>>
+ <TELL
+"He cocks his head, curious, \"You have far less spirit than" T ,DAD
+" credited you. He swore you would have him freed in no time at all.
+A pity, I prefer doyennes with mettle.\" ">)>
+ <TELL "He moves to speak with" T ,BUTLER ", then ">
+ <COND (<QUEUED? ,I-SUMMONS>
+ <TELL "heads upstairs.">)
+ (T
+ <TELL "drifts into the crowd.">)>
+ <CRLF>)
+ (T
+ <RFALSE>)>
+ <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>>)>>
+
+<GLOBAL LAFOND-LOOKING T>
+
+<GLOBAL AFTER-HESITATING ", shrugging off your lack of cooperation">
+
+<CONSTANT HORNY 10> ;"Lafond at 11, no, 10 -- he removes your clothes"
+
+;"LSED = Lafond's Seduction"
+<ROUTINE I-LSED ()
+ <SETG AWAITING-REPLY 12>
+ <QUEUE I-REPLY 1>
+ <TELL ,INDENT>
+ <COND (<EQUAL? ,LAFOND-CTR 1>
+ <MOVE ,LAFOND ,HERE>
+ <MOVE ,BLUE-GLASS ,PROTAGONIST>
+ <PUTP ,BLUE-GLASS ,P?CONTENTS ,WINED>
+ <MOVE ,GREEN-GLASS ,LAFOND>
+ <MOVE ,FLAGON ,TABLE>
+ <FCLEAR ,LDOOR ,OPENBIT>
+ <QUEUE I-WONT-DRINK 1>
+ <TELL "\"Have some wine.\" Lafond pours wine into two
+glasses, giving a blue one to you. \"Drink this down. We have a long
+night ahead of us.\" He drains his own" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 2>
+ <MOVE ,GREEN-GLASS ,TABLE>
+ <MOVE ,BUTLER ,UPPER-HALL-E>
+ <MOVE ,HERO ,MANACLES>
+ <FSET ,HERO ,DEADBIT>
+ <FSET ,HERO ,NDESCBIT>
+ <FSET ,TRAP ,OPENBIT>
+ <FCLEAR ,PORTRAIT ,OPENBIT>
+ <FCLEAR ,KNOB ,EVERYBIT>
+ <FCLEAR ,POWER ,EVERYBIT>
+ <MOVE ,RAPIER ,DUNGEON>
+ <FCLEAR ,RAPIER ,NDESCBIT>
+ <FCLEAR ,MANACLES ,OPENBIT>
+ <FSET ,MANACLES ,LOCKEDBIT>
+ <FSET ,CRULLEY ,NDESCBIT>
+ <MOVE ,CRULLEY ,DUNGEON>
+ <MOVE ,WHIP ,CRULLEY>
+ <QUEUE I-LSED -1>
+ <FCLEAR ,FLAGON ,TRYTAKEBIT> ;"so you can take it"
+ <SETG LAFOND-LOOKING <>>
+ <TELL
+"Suddenly, the door slams open. It is Jamison, coatless, sword bared,
+his shirt ripped. \"Thank God I am not too late. Leave, darling,
+before I skewer this dog to his bedposts,\" he cries. The scar on his cheek
+gleams coldly.|
+ With a yell," T ,CRULLEY " and" T ,BUTLER " jump out of the darkness
+behind him. Nicholas struggles, but soon lies unconscious on the floor.|
+ \"Take him to the dungeon,\" Lafond says, setting down his glass. \"You,
+butler, stay nearby. I do not wish to be disturbed again.|
+ \"Now that we are rid of that intrusion, cherie, I will change into
+something more comfortable. Pour me more wine.\" He crosses to the wardrobe
+removing his coat and vest, turned slightly away from you" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 3>
+ <TELL
+"\"In private, call me Jean, or whatever endearment you choose, once
+I have approved it.\" Lafond is looking into the wardrobe" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 4>
+ <MOVE ,TRAY ,TABLE>
+ <TELL CTHE ,BUTLER
+" enters, laying" A ,TRAY " of " D ,CHICKEN " on" T ,TABLE ". \"The kitchen
+wench has gone, your grace. I took the liberty of fetching these myself.\"
+He bows and leaves the room.|
+ \"Sprinkle some spices on the fowl, ma petite,\" Lafond says, donning a
+long brocade robe, his back to you. \"They are hot, but delicious.\"" CR>)
+ (<EQUAL? ,LAFOND-CTR 5>
+ <TELL
+"\"Tsk. The cook has gone too far. She shall be 'leaving us'
+tomorrow.\" Lafond adjusts the lace at his neck" ,PCR>)
+ ;(<EQUAL? ,LAFOND-CTR 6>
+ <TELL D ,LAFOND
+" has stopped talking momentarily.
+His attention seems devoted entirely to preening himself" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 6>
+ <SETG QUESTIONER ,LAFOND>
+ <SETG LAFOND-LOOKING T>
+ <TELL D ,LAFOND " strolls to">
+ <COND (<EQUAL? <LOC ,GREEN-GLASS> ,TABLE>
+ <TELL T ,TABLE>)
+ (T
+ <TELL " you,">)>
+ <TELL " smiling slyly">
+ <COND (<OR <EQUAL? <GETP ,BLUE-GLASS ,P?CONTENTS> 2 0>
+ <EQUAL? <GETP ,GREEN-GLASS ,P?CONTENTS> 2 0>>
+ <TELL
+". \"But you haven't finished pouring the wine.\" He tops off both glasses">
+ <COND (<EQUAL? <GETP ,BLUE-GLASS ,P?CONTENTS> 2 0>
+ <POUR-WINE ,BLUE-GLASS T>
+ ;<PUTP ,BLUE-GLASS ,P?CONTENTS
+ <+ <GETP ,BLUE-GLASS ,P?CONTENTS> 1>>)>
+ <COND (<EQUAL? <GETP ,GREEN-GLASS ,P?CONTENTS> 2 0>
+ <POUR-WINE ,GREEN-GLASS T>
+ ;<PUTP ,GREEN-GLASS ,P?CONTENTS
+ <+ <GETP ,GREEN-GLASS ,P?CONTENTS> 1>>)>)>
+ <COND (,USED-LAUD
+ <TELL
+". \"Which glass was mine? I seem to have forgotten.\" He points at"
+T ,GREEN-GLASS " and smiles in a way that does not grant you confidence.
+\"Is this it?\"" CR>)
+ (T
+ <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>> ;"skip next turn"
+ <TELL ".|
+ Lafond takes" T ,GREEN-GLASS " and salutes you,
+gulping down the contents" ,PCR>)>)
+ (<EQUAL? ,LAFOND-CTR 7>
+ <SETG QUESTIONER ,LAFOND>
+ <TELL "\"Ah yes, of course.\" Lafond obligingly takes">
+ <COND (,USED-LAUD
+ <COND (<EQUAL? ,REACTION ,REACTION-POSITIVE>
+ <SWITCH-GLASSES ,GREEN-GLASS>)
+ (<EQUAL? ,REACTION ,REACTION-NEGATIVE>
+ <SWITCH-GLASSES ,BLUE-GLASS>)
+ (T
+ <COND (<AND <G? <GETP ,BLUE-GLASS ,P?CONTENTS>
+ ,WINED>
+ <EQUAL? <GETP ,GREEN-GLASS ,P?CONTENTS>
+ ,WINED>>
+ <SWITCH-GLASSES ,BLUE-GLASS>)
+ (T
+ <SWITCH-GLASSES ,GREEN-GLASS>)>
+ <TELL ,AFTER-HESITATING>)>)
+ ;(T
+ <COND (<EQUAL? ,REACTION ,REACTION-NEGATIVE>
+ <MOVE ,BLUE-GLASS ,LAFOND>
+ <TELL T ,GREEN-GLASS>)
+ (T
+ <MOVE ,GREEN-GLASS ,LAFOND>
+ <TELL T ,GREEN-GLASS>
+ <COND (<EQUAL? ,REACTION ,REACTION-NEUTRAL>
+ <TELL ,AFTER-HESITATING>)>)>)>
+ <TELL ,PCR ,INDENT>
+ <DEQUEUE I-LSED>
+ <QUEUE I-WONT-DRINK 1>
+ <TELL
+"He inhales deeply of the bouquet of his wine, then turns to you.
+\"You must think me very naive to fall for such a trick. I saw you
+pour something into one of these glasses -- although ">
+ <COND (,SPICED-WINE
+ <TELL
+"you have tried to cover the scent with" T ,SPICES>)
+ (T
+ <TELL "I cannot smell it">)>
+ <TELL ".\" He switches goblets, setting" T ,YOUR-GLASS>
+ <TELL
+" into your nerveless grasp and taking up the other, smiling evilly.
+\"Now you will drink from the cup intended for me.\"" CR>
+ ;<COND (<NOT ,USED-LAUD>
+ <SET-CONTENTS ,LAFOND 0>
+ <TELL "He gulps down" TR ,WINE>)
+ (T
+ <DEQUEUE I-LSED>
+ <QUEUE I-WONT-DRINK 1>
+ <TELL
+"He inhales deeply of the bouquet of his wine, then turns to you.
+\"You must think me very naive to fall for such a trick. I saw you
+pour something -- although I cannot smell it -- into
+one of these glasses.\" He switches goblets, setting">
+ <COND (<HELD? ,BLUE-GLASS>
+ <TELL T ,BLUE-GLASS>)
+ (T
+ <TELL T ,GREEN-GLASS>)>
+ <TELL
+" into your nerveless grasp and taking up the other, smiling evilly.
+\"Now you will drink from the cup intended for me.\"" CR>)>)
+ (<EQUAL? ,LAFOND-CTR 8>
+ <QUEUE I-LSED -1>
+ <TELL D ,LAFOND
+" draws near, whispering indecencies. He caresses your lily white
+neck, his fingers ice-cold despite the tropic heat" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 9>
+ <ROB ,PROTAGONIST ,LAFS-ROOM>
+ ;<COND (<IN? ,HAT ,PROTAGONIST>
+ <MOVE ,HAT ,HERE>
+ <FCLEAR ,HAT ,WORNBIT>)>
+ <TELL D ,LAFOND
+" slides his hand up your neck and into your hair, letting it fall down
+your back in thick waves and tresses. He lays everything you carry on the
+floor" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR ,HORNY>
+ <TELL
+"One by one Lafond undoes your buttons. He pulls open your ">
+ <COND (<FSET? ,SHIRT ,WORNBIT>
+ <TELL "shirt">)
+ (<OR <FSET? ,GOWN ,WORNBIT>
+ <FSET? ,DRESS ,WORNBIT>>
+ <TELL "bodice">)
+ (T
+ <TELL "chemise">)>
+ <REMOVE-CLOTHES>
+ <FCLEAR ,CHEMISE ,WORNBIT>
+ <FSET ,CHEMISE ,EVERYBIT> ;"desc: covered by other clothes"
+ <FCLEAR ,SHOES ,WORNBIT>
+ <ROB ,PROTAGONIST ,LAFS-ROOM> ;"get rid of clothes, shoes"
+ ;<FCLEAR ,RETICULE ,WORNBIT> ;"not needed. no wornbit"
+ <MOVE ,RETICULE ,LAFS-ROOM>
+ <ROB ,LAFOND ,LAFS-ROOM>
+ <TELL ". Your clothes float to the floor" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 11>
+ <TELL D ,LAFOND
+" runs his fingers down your naked spine, and
+compliments your body. He removes his dressing gown" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 12>
+ <TELL D ,LAFOND
+" kisses your shoulder, your neck, your ear. \"Close your eyes, if you
+will,\" he taunts, \"and pretend I am your dearest" T ,HERO ". But I am
+greater than he will ever be.\" He kisses you, his lips thin and cold" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 13>
+ <COND (<IN? ,PROTAGONIST ,LAFS-BED>
+ <SETG LAFOND-CTR 14>
+ <I-LSED>)
+ (T
+ <MOVE ,LAFOND ,LAFS-BED>
+ <MOVE ,PROTAGONIST ,LAFS-BED>
+ <TELL D ,LAFOND " leads you over to the bed" ,PCR>)>)
+ (<EQUAL? ,LAFOND-CTR 14>
+ <FWTD
+"Lafond pulls the sheets up to cover you both, pressing his long flaccid body
+against yours. Waves crash against the base of the cliff.">)>
+ <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>>>
+
+
+;"moves appropriate glass to appropriate character,
+ then TELLS the other one (lies)."
+
+<ROUTINE SWITCH-GLASSES (GLASS)
+ <COND (<EQUAL? .GLASS ,GREEN-GLASS>
+ <SETG LAF-GLASS ,BLUE-GLASS>
+ <SETG YOUR-GLASS ,GREEN-GLASS>)
+ (T
+ <SETG LAF-GLASS ,GREEN-GLASS>
+ <SETG YOUR-GLASS ,BLUE-GLASS>)>
+ <MOVE ,YOUR-GLASS ,PROTAGONIST>
+ <MOVE ,LAF-GLASS ,LAFOND>
+ <TELL T .GLASS>>
+
+;<ROUTINE ;I-WONT-DRINK ("AUX" (POISON-SCENE <>) OTHER-WINE YOUR-WINE)
+ <COND (<G? ,LAFOND-CTR 7>
+ <SET POISON-SCENE T>)>
+ <COND (<HELD? ,BLUE-GLASS>
+ <SET OTHER-WINE ,CONTENTS-GREEN>
+ <SET YOUR-WINE ,CONTENTS-BLUE>)
+ (<HELD? ,GREEN-GLASS>
+ <SET OTHER-WINE ,CONTENTS-BLUE>
+ <SET YOUR-WINE ,CONTENTS-GREEN>)>
+ <SETG ANGER-CTR <+ ,ANGER-CTR 1>>
+ ;<QUEUE I-LSED 1>
+ <TELL ,INDENT>
+ <SETG QUESTIONER ,LAFOND>
+ <SETG AWAITING-REPLY 12>
+ <QUEUE I-REPLY 2>
+ <COND (<EQUAL? ,REACTION ,REACTION-POSITIVE>
+ <SET-CONTENTS ,PROTAGONIST 0>
+ <TELL "\"Good girl,\" he says. ">
+ <COND (.POISON-SCENE
+ <COND (<G? .OTHER-WINE ,WINED>
+ <SETG DRUGGEE ,BUTLER>
+ <QUEUE I-WATCH-SLEEP 1>)>
+ <SET-CONTENTS ,LAFOND 0>
+ <SET LAUD-LEFT 0>
+ <REMOVE ,BOTTLE>
+ <TELL
+"Lafond takes" T ,BOTTLE " and throws it out the window. \"You shall
+need no more of this, my dear. Certainly you will suffer no headaches in
+my employ.\"|
+ He lifts his glass to drink, but stops. \"Your father, for all
+his idiotic meddling in other people's business, is not a fool. I doubt
+you are, either.\" He calls in" T ,BUTLER ", ordering him to empty">
+ <COND (<EQUAL? .OTHER-WINE ,CONTENTS-BLUE>
+ <TELL T ,BLUE-GLASS>)
+ (T
+ <TELL T ,GREEN-GLASS>)>
+ <TELL ".
+The man reports no odd taste and dutifully returns to his post" ,PCR>)
+ (T
+ <TELL
+"\"Let's see more cooperation of this sort.\"" CR>)>)
+ (T
+ <COND (<G? ,ANGER-CTR 2>
+ <COND (.POISON-SCENE
+ <TELL
+"Lafond grows suddenly violent. \"I will not have
+insubordination. You shall cooperate, my pretty miss.\"
+He forces the wine down your throat" ,PCR>
+ <COND (<AND <G? .YOUR-WINE ,WINED>
+ <NOT <QUEUED? ,I-SLEEP>>>
+ <QUEUE I-SLEEP 2>)>
+ <SET-CONTENTS ,PROTAGONIST 0>)
+ (T
+ <MOVE ,BLUE-GLASS ,TABLE>
+ <SETG CONTENTS-BLUE 0>
+ <TELL
+"He angrily takes" T ,BLUE-GLASS " and sets it on" T ,TABLE ", slopping the
+wine in a dark red stain across the lace. \"Do not try my patience, little
+one. I have those you love, remember.\"" CR>)>)
+ (T
+ <DEQUEUE I-LSED> ;"To stop what is queued above"
+ <QUEUE I-WONT-DRINK 1>
+ <COND (<EQUAL? ,ANGER-CTR 1>
+ <TELL
+"Lafond taps his foot impatiently, waiting for you to drink" ,PCR>)
+ (<EQUAL? ,ANGER-CTR 2>
+ <TELL
+"\"Come, milady, drink. We must not waste all night.\"
+Lafond pushes the glass toward " D ,MOUTH ,PCR>)>)>)>>
+
+<ROUTINE I-WONT-DRINK ("AUX" (POISON-SCENE <>))
+ <COND (<G? ,LAFOND-CTR 7>
+ <SET POISON-SCENE T>)>
+ <SETG ANGER-CTR <+ ,ANGER-CTR 1>>
+ ;<QUEUE I-LSED 1>
+ <SETG QUESTIONER ,LAFOND>
+ <SETG AWAITING-REPLY 12>
+ <QUEUE I-REPLY 2>
+ <TELL ,INDENT>
+ <COND (<AND <NOT <EQUAL? ,REACTION ,REACTION-NEGATIVE>>
+ <OR <AND <PRSO? ,YOUR-GLASS>
+ <VERB? DRINK-FROM>>
+ <AND <PRSO? ,WINE>
+ <OR <VERB? EAT DRINK DRINK-FROM>
+ <AND <VERB? POUR>
+ <PRSI? ,MOUTH ,ME>>>>>>
+ <PUTP ,YOUR-GLASS ,P?CONTENTS 0>
+ ;<SET-CONTENTS ,PROTAGONIST 0>
+ <TELL "\"Good girl,\" he says">
+ <COND (.POISON-SCENE
+ <TELL ". ">
+ <CALL-IN-BUTLER>)
+ (T
+ <TELL
+", \"Let's see more cooperation of this sort.\"" CR>
+ <I-LSED>)>)
+ (T
+ <COND (<G? ,ANGER-CTR 2>
+ <QUEUE I-LSED 1>
+ <COND (.POISON-SCENE
+ <TELL
+"Lafond grows suddenly violent. \"I will not have
+insubordination. You shall cooperate, minx.\"
+He forces" T ,WINE " down your throat" ,PCR>
+ <COND (<AND <G? <GETP ,YOUR-GLASS ,P?CONTENTS>
+ ,WINED>
+ <NOT <QUEUED? ,I-SLEEP>>>
+ <QUEUE I-SLEEP 2>)>
+ <PUTP ,YOUR-GLASS ,P?CONTENTS 0>
+ <TELL ,INDENT>
+ <CALL-IN-BUTLER>
+ ;<SET-CONTENTS ,PROTAGONIST 0>)
+ (T
+ <MOVE ,YOUR-GLASS ,TABLE>
+ <PUTP ,YOUR-GLASS ,P?CONTENTS 0>
+ <TELL
+"He angrily takes" T ,YOUR-GLASS " and sets it on" T ,TABLE ". " CTHE ,WINE
+" slops a dark stain across the lace. \"Do not try my patience, little one.
+I have those you love, remember.\"" CR>)>)
+ (T
+ <QUEUE I-WONT-DRINK 1>
+ <COND (<EQUAL? ,ANGER-CTR 1>
+ <TELL D ,LAFOND
+" waits impatiently for you to drink" ,PCR>)
+ (<EQUAL? ,ANGER-CTR 2>
+ <TELL
+"\"Drink. We must not waste all night.\"" T ,LAFOND
+" pushes the glass toward " D ,MOUTH ,PCR>)>)>)>>
+
+<ROUTINE CALL-IN-BUTLER ()
+ <COND (<G? <GETP ,LAF-GLASS ,P?CONTENTS> ,WINED>
+ <SETG DRUGGEE ,BUTLER>
+ <QUEUE I-WATCH-SLEEP 1>)>
+ <PUTP ,LAF-GLASS ,P?CONTENTS 0>
+ ;<SET-CONTENTS ,LAFOND 0>
+ <SET LAUD-LEFT 0>
+ <QUEUE I-LSED 1>
+ <COND (<EQUAL? <META-LOC ,BOTTLE> ,HERE>
+ <REMOVE ,BOTTLE>
+ <TELL
+"Lafond takes" T ,BOTTLE " and drops it out the window. \"You shall not need
+this. You may suffer no headaches in my employ.\"" CR ,INDENT>)>
+ <TELL
+"He lifts his glass to drink, but stops. \"Your father, for all his
+idiotic meddling in other people's business, is not a fool. I doubt you
+are, either.\" He calls in" T ,BUTLER ", ordering him to empty" T ,LAF-GLASS
+". The man reports no odd taste and returns to his post" ,PCR>>
+
+<GLOBAL ANGER-CTR 0>
+
+;<ROUTINE SET-CONTENTS (WHO WHAT)
+ <COND (<IN? ,BLUE-GLASS .WHO>
+ <PUTP ,BLUE-GLASS ,P?CONTENTS .WHAT>
+ ;<SETG CONTENTS-BLUE .WHAT>)
+ (<IN? ,GREEN-GLASS .WHO>
+ <PUTP ,GREEN-GLASS ,P?CONTENTS .WHAT>
+ ;<SETG CONTENTS-GREEN .WHAT>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE I-SUMMONS ()
+ <FCLEAR ,LDOOR ,LOCKEDBIT>
+ <MOVE ,LAFOND ,LAFS-ROOM>
+ <COND (<EQUAL? ,HERE ,LIBRARY>
+ <COND (<IN? ,DAD ,HERE>
+ <QUEUE I-SUMMONS 2>
+ <RTRUE>)>
+ <TELL ,INDENT CTHE ,BUTLER " enters the room">
+ <COND (<FSET? ,PORTRAIT ,OPENBIT>
+ <TELL
+", sees the open " D ,PORTRAIT ", and seizes your arms,
+pinning them behind your back. ">
+ <FWTD ,SOMETHING-HITS-YOU>)
+ (T
+ <REMOVE ,BUTLER>
+ <TELL
+". \"Excuse me for interrupting, Miss, but the master requests your company
+in his room.\" He ">
+ <COND (<OR <FSET? ,KNOB ,EVERYBIT>
+ <FSET? ,POWER ,EVERYBIT>>
+ <FCLEAR ,KNOB ,EVERYBIT>
+ <FCLEAR ,POWER ,EVERYBIT>
+ <TELL
+"moves around the room, straightening things, then ">)>
+ <TELL
+"guides you back to the foyer. \"The governor's "
+D ,OBJ-QUARTERS " are in the east wing." ,BUTLER-POINTS CR>
+ <GOTO ,FOYER>)>)
+ ;(<BELOW-GROUND <LOC ,PROTAGONIST>>
+ <FSET ,LIBRARY ,EVERYBIT>)
+ (<OR <EQUAL? ,HERE ,BALLROOM ,SUPPER-ROOM ,ORCHESTRA>
+ <EQUAL? ,HERE ,HALL-W ,FOYER ,HALL-E>
+ <EQUAL? ,HERE ,BEDROOM ,GALLERY ,X-ROOM>
+ <EQUAL? ,HERE ,MAIN-ENTRANCE ,VERANDA ,KITCHEN>
+ <EQUAL? ,HERE ,STAIRTOP ,UPPER-HALL-W ,UPPER-HALL-E>>
+ <COND (<FSET? ,GOWN ,WORNBIT>
+ <REMOVE ,BUTLER>
+ <TELL ,INDENT CTHE ,BUTLER ,BUTLER-SUMMONS>
+ <COND (<EQUAL? ,HERE ,UPPER-HALL-E>
+ <TELL "to" T ,LDOOR ", unlocks it">)
+ (<EQUAL? ,HERE ,STAIRTOP ,UPPER-HALL-W
+ ,X-ROOM ,BEDROOM>
+ <TELL "to the east">)
+ (<EQUAL? ,HERE ,GALLERY>
+ <TELL "to the north">)
+ (T
+ <TELL "up" T ,STAIRS "s">)>
+ <TELL ", bows, and leaves." CR>)
+ (T
+ <FSET ,FOYER ,EVERYBIT>
+ <TELL ,INDENT CTHE ,BUTLER
+", who looks like he is seeking someone, grabs your collar, \"Who invited
+beggars? Get back to the village where you belong.\"">
+ <COND (<NOT <EQUAL? ,HERE ,MAIN-ENTRANCE>>
+ <TELL
+" He escorts you out of the house" ,PCR CR>
+ <GOTO ,MAIN-ENTRANCE>)
+ (T
+ <CRLF>)>)>)
+ (T
+ <FSET ,FOYER ,EVERYBIT>)>>
+
+<ROUTINE I-CKILLS-DAD ()
+ ;<COND (<IN? ,DAD ,CELL-4>
+ <FSET ,DAD ,DEADBIT>
+ <FSET ,IRON-CELL-DOOR ,OPENBIT>
+ <COND (<NOT <FSET? ,LARGE-KEY ,TOUCHBIT>>
+ <MOVE ,LARGE-KEY ,DUNGEON>
+ <FSET ,LARGE-KEY ,TOUCHBIT>)>
+ <REMOVE ,DAD>)>
+ <COND (<OR <EQUAL? ,HERE ,BALLROOM ,FOYER>
+ <EQUAL? ,HERE ,SUPPER-ROOM ,ORCHESTRA>>
+ <TELL ,INDENT
+"You see" T ,CRULLEY " come in from the east wing and beckon to Lafond.
+\"'E's gone">
+ <COND (<FSET? ,DAD ,TOUCHBIT>
+ <QUEUE I-LDANCE 2>
+ <REMOVE ,HERO>
+ ;<TELL " urgently" ,PCR ,INDENT>
+ <TELL
+"! The cocky crupper 'as disappeared!\" Lafond looks around angrily, eyes
+narrowed, \"Then get his compatriot. Take Falcon.\"" T ,CRULLEY
+" runs out the front door, reappearing a moment later with help" ,PCR>
+ <I-HARRESTED T>)
+ (T
+ <H-JIGS-UP
+". Visiting that Neptune you tol' me about. Gone to sea, poor
+man,\" he laughs, and returns to lurking around the doorway." T>)>)
+ (T
+ <RFALSE>)>
+ <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+;<ROUTINE old-I-CKILLS-DAD ()
+ <COND (<EQUAL? ,CRULLEY-CTR 1>
+ ;<QUEUE I-CKILLS-DAD 2>
+ <COND (<IN? ,DAD ,CELL-4>
+ <FSET ,DAD ,DEADBIT>
+ <FSET ,IRON-CELL-DOOR ,OPENBIT>
+ <COND (<NOT <FSET? ,LARGE-KEY ,TOUCHBIT>>
+ <MOVE ,LARGE-KEY ,DUNGEON>
+ <FSET ,LARGE-KEY ,TOUCHBIT>)>
+ <REMOVE ,DAD>)>)
+ (<EQUAL? ,CRULLEY-CTR 2>
+ <COND (<OR <EQUAL? ,HERE ,BALLROOM ,FOYER>
+ <EQUAL? ,HERE ,SUPPER-ROOM ,ORCHESTRA>>
+ <TELL ,INDENT
+"You see " D ,CRULLEY " come in from the east wing and beckon to" T ,LAFOND>
+ <COND (<FSET? ,DAD ,TOUCHBIT>
+ <QUEUE I-LDANCE 2>
+ <REMOVE ,HERO>
+ <TELL " urgently" ,PCR ,INDENT>
+ <TELL
+"\"'E's gone! The cocky crupper 'as disappeared!\" Lafond looks around
+angrily, eyes narrowed, \"Then get his compatriot. Take Falcon.\"" T ,CRULLEY
+" runs out the front door, reappearing a moment later with help" ,PCR>
+ <I-HARRESTED T>)
+ (T
+ ;<SETG DANCED-WITH ;,BLOWN>
+ <TELL
+". \"'E's gone. Visiting that Neptune you told me about. Gone to sea, poor
+man,\" he laughs, and returns to lurking around the doorway" ,PCR>)>)
+ (T
+ <RFALSE>)>)
+ (T
+ <RFALSE>)>
+ <SETG CRULLEY-CTR <+ ,CRULLEY-CTR 1>>>
+
+;<TELL "Swords clash in anger as the duel rages on" ,PCR>
+
+;<GLOBAL CAN-SEE-DUEL <>>
+;<GLOBAL CAN-HEAR-DUEL <>>
+
+;(<AND <NOT ,CAN-HEAR-DUEL>
+ <NOT ,CAN-SEE-DUEL>>
+ <RFALSE>)
+
+<ROUTINE I-DUEL ()
+ <COND (<AND <CANT-HEAR-DUEL>
+ <L? ,HERO-CTR 16>> T)
+ (<L? ,HERO-CTR 12>
+ <TELL ,INDENT>
+ <COND (<EQUAL? ,HERE ,GALLERY> ;,CAN-SEE-DUEL
+ <TELL
+"Nicholas and Lafond circle each other intently, the one breathing hard, the
+other casual, sword tips almost touching. Jamison has lost copious amounts
+of blood and is no match for Lafond, cool and competent." CR>)>
+ <TELL <PICK-ONE ,DUEL-SOUNDS> CR>)
+ (<EQUAL? ,HERO-CTR 12>
+ <TELL ,INDENT
+"Someone calls out, \"We've got the Dimsford girl, Governor\" -- lying, of
+course, since you're obviously free">
+ <COND (<EQUAL? ,HERE ,GALLERY> ;,CAN-SEE-DUEL
+ <TELL
+". But Nick glances towards the voice, missteps, and slips in his own blood,
+falling backwards to the floor, his rapier skittering aside">)>
+ <TELL ,PCR>)
+ (<EQUAL? ,HERO-CTR 13>
+ <TELL ,INDENT>
+ <COND (<EQUAL? ,HERE ,GALLERY> ;,CAN-SEE-DUEL
+ <TELL D ,LAFOND
+" leaps to Jamison's side, placing one heeled boot on the prostrate man's
+throat, the tip of his sword over Nick's heart. He sneers then, one eyebrow
+tilted, and moves to plunge in the sword. Nicholas cannot move.">)
+ (T
+ <SETG HERO-CTR 15> ;"skip to last move I-DUEL"
+ <TELL
+"One of the duellists falls heavily to the floor, his sword skittering away.
+All is silence for a moment, broken once by a low chuckle. Then a woman
+screams, someone gasps, and Jean Lafond's wicked laugh blasts your ears,
+\"Who else cares to taste my blade?\"">
+ ;<TELL
+"A duellist leaps forward, but no sound of sword scraping sword,
+as the lunge is parried, follows. Instead, one labored breath whispers from
+the ballroom and a body thuds dully the floor. A woman screams then, someone
+faints, and from the frightened silence comes Jean Lafond's wicked laugh,
+\"Who else cares to taste my blade?\"">)>
+ <CRLF>)
+ (<EQUAL? ,HERO-CTR 14>
+ <COND (<EQUAL? ,HERE ,GALLERY> ;,CAN-SEE-DUEL
+ <TELL ,INDENT
+"The sword plunges down into Jamison's heart, a red stain flowing up to meet
+it on his breast. Nicholas draws his last breath, his tortured gaze drawn
+heavenwards, to your face. He reaches for you, his hand dripping his own
+blood, and breathes your name...|
+ Nicholas's hand falls limply to the swelling pool of wine red blood and
+silence pounds on your ears" ,PCR>)>)
+ (<EQUAL? ,HERO-CTR 15>
+ <COND (<EQUAL? ,HERE ,GALLERY> ;,CAN-SEE-DUEL
+ <TELL ,INDENT
+"Lafond wipes his sword on your lover's inert body, ordering someone to drag
+away the corpse. Suddenly there are sounds of fighting all about, and you
+realize dragoons surround the house" ,PCR>)
+ (T
+ <TELL "Time has stopped. Silence reigns." CR>)>)
+ (<EQUAL? ,HERO-CTR 16>
+ <COND (<NOT <CANT-HEAR-DUEL>>
+ ;<OR <EQUAL? ,HERE ,GALLERY ,STAIRTOP ,FOYER>
+ <EQUAL? ,HERE ,SUPPER-ROOM ,VERANDA ,HALL-E>>
+ <TELL ,INDENT
+"\"Find the girl and bring her to me,\" Lafond orders." CR>)>
+ <TELL ,INDENT ,DRAGOONS-SURROUND>
+ <FWTD ,SOMETHING-HITS-YOU>)>
+ <SETG HERO-CTR <+ ,HERO-CTR 1>>>
+
+<GLOBAL DUEL-SOUNDS
+ <LTABLE
+ 0
+ "Swords engage and disengage."
+ "You hear metal scrape metal. A woman gasps."
+ "Lafond's voice is cold, lazy, \"You will die, you know, Jamison.\""
+ "You hear a piece of furniture being knocked over."
+ "\"You must ... pay ... for your actions!\" Nicholas gasps."
+ "Rapiers click and slide. \"Bad parry, Captain,\" Lafond says."
+ "You hear a duellist leap forward, and swords clash, parrying.">>
+
+<ROUTINE CANT-HEAR-DUEL ()
+ <COND (<EQUAL? ,HERE ,UPPER-HALL-E ,STAIRTOP ,HALL-W ,FOYER
+ ,LIBRARY ,HALL-E ,VERANDA ,GALLERY>
+ <RFALSE>)
+ (T
+ <RTRUE>)>>
+
+<CONSTANT DEAD 7> ;"Lafond by 7 -- skewered by Nicholas"
+<CONSTANT FIGHTING 5> ;"Lafond by 5 -- fighting Nicholas"
+
+<OBJECT AIR
+ (IN GLOBAL-OBJECTS)
+ (DESC "air")
+ (SYNONYM AIR)>
+
+<OBJECT PISTOL
+ (DESC "pistol")
+ (SYNONYM PISTOL GUN)
+ (FLAGS TAKEBIT)
+ (SIZE 3)
+ (ACTION PISTOL-F)>
+
+<ROUTINE PISTOL-F ()
+ <COND (<VERB? FILL>
+ <COND (<AND <NOT ,PRSI>
+ <EQUAL? ,P-PRSA-WORD ,W?LOAD>>
+ <COND (<HELD? ,POWDER>
+ <PERFORM ,V?FILL ,PISTOL ,POWDER>
+ <RTRUE>)
+ (T
+ <TELL ,YNH " any " D ,POWDER ,PCR>)>)
+ (<PRSI? ,POWDER>
+ <COND (,PRIMED
+ <TELL ,YOU-HAVE-ALREADY " loaded" TR ,PISTOL>)
+ (T
+ <SETG PRIMED T>
+ <MOVE ,HORN ,PROTAGONIST>
+
+ ;"LOAD GUN/PUT STONE IN GARTER"
+
+ <COND (<NOT ,PENULTIM-POINT>
+ <SETG PENULTIM-POINT T>
+ <SETG SCORE <+ ,SCORE 1>>)>
+ <TELL
+"You pour a lumpy stream of" T ,POWDER " mixture into the barrel of"
+T ,PISTOL " tamping it as best you can" ,PCR>)>)
+ (<PRSO? ,PISTOL>
+ <TELL ,YOU-CANT "put that into" AR ,PISTOL>)
+ (T
+ <RFALSE>)>)
+ (<AND <VERB? PUT POUR>
+ <PRSI? ,PISTOL>>
+ <COND (<PRSO? ,POWDER>
+ <PERFORM ,V?FILL ,PISTOL ,PRSO>
+ <RTRUE>)
+ (T
+ <TELL ,HUH>)>)
+ (<VERB? EXAMINE>
+ <TELL "One of" A ,PAIR ", the gun is ">
+ <COND (,PRIMED
+ <TELL "primed and ready to fire.">)
+ (T
+ <TELL "not loaded.">)>
+ <CRLF>)
+ (<VERB? KILL>
+ <PERFORM ,V?SHOOT ,PRSO ,PRSI>
+ <RTRUE>)
+ (<VERB? SHOOT>
+ <COND (<NOT ,PRIMED>
+ <TELL "But" T ,PISTOL " is not loaded." CR>)
+ ;(<L? ,LAFOND-CTR ,DEAD>
+ <TELL CR "BUG #32 (&c.)" CR>)
+ (<OR <NOT ,PRSI>
+ <PRSO? ,AIR>> ;" FIRE PISTOL/ SHOOT GUN "
+ <SETG SCORE <+ ,SCORE 1>> ;"WIN 3"
+ <TELL
+"You fire" T ,PISTOL " into the air. Startled by the loud report," T ,CRULLEY
+" jerks his pistol and fires, aiming not at Nicholas, but at you. You hear a
+distant scream, your own, and watch, as through from afar," T ,DAD " wrestle"
+T ,CRULLEY " to" T ,GROUND ". You feel only numbness as loving arms take you
+up, and Nicholas kisses you into death, his tears damp on your cheek."
+,YOU-DIED>
+ ;<CLEAR-SCREEN 5>
+ <SETG FINAL-RANK 2>
+ ;<FINISH T>
+ <FINISH>)
+ (<PRSO? ,PATROL ,BUSHES>
+ <TELL "They are out of range." CR>)
+ (<PRSO? ,CRULLEY>
+ <SETG SCORE <+ ,SCORE 1>> ;"WIN 5"
+ <TELL
+"Trembling, you fire the heavy pistol. You hear its loud report over
+roaring surf. Crulley staggers, hit, and falls from the cliff.
+The gun falls from your nerveless hands.|
+ Time stops as you and Nicholas gaze at one another, adoring and amazed.
+Slowly he bows and offers his hand.|
+ " ,NUTBROWN "His eyes, twin seas of blue, devour you with a love
+deep and true-hearted, and you are pulled into his embrace, your mouth
+on his, lips parted, thirsting, arching into his kiss..." CR>
+ <FINALE>)
+ (<PRSO? ,PISTOL>
+ <IMPOSSIBLES>)
+ (<FSET? ,PRSO ,DEADBIT>
+ <MAN-IS-DOWN>)
+ (<FSET? ,PRSO ,ACTORBIT>
+ <TELL "You wouldn't kill" T ,PRSO "!" CR>)
+ (<NOT <IN? ,PRSO ,HERE>>
+ <TELL CTHE ,PISTOL " can't fire that far" ,PCR>)
+ (T
+ <WASTES>)>)
+ (<AND <PRSO? ,STONE>
+ <VERB? SSHOOT>>
+ <WASTES>)
+ ;(<PRSI? ,GUN>
+ <PERFORM ,V?SSHOOT ,GUN ,PRSO>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE I-ENDGAME ()
+ <COND (<AND <EQUAL? ,HERE ,LAGOON ,BY-SHIP>
+ <G? ,LAFOND-CTR 1>>
+ <SETG SCORE 25> ;<+ ,SCORE 1>
+ <TELL ,INDENT
+"You hear distant shots and screams, and gaze back across the restless waves
+to the massacre on the beach. The sight blurs with your tears of
+shame, tears for the father and the lover you left behind." CR>
+ <CLEAR-SCREEN 15>
+ <TELL ,INDENT
+"The tale you tell Jamison's crew, of rapine and blood, of your heroic
+attempt to save their captain, and of your own escape after his death in
+your arms, is not so far from the truth that you cannot appear sincere.
+Cannily, you take advantage of their temporary grief, select a private
+guard, and teach the rest the discipline of the whip.">
+ <SETG FINAL-RANK 3>
+ <COND (<L? ,LAFOND-CTR ,DEAD>
+ ;<NOT <FSET? ,LAFOND ,DEADBIT>>
+ <TELL
+" You have started on the ruthless road to revenge. You intend to meet
+Lafond again, and that time, you intend to win.">)>
+ ;<SETG FINAL-RANK <COND (<FSET? ,LAFOND ,DEADBIT> 3 ;6)
+ (T <TELL
+"You have started on the ruthless road to revenge. You intend to meet
+Lafond again, and next time, you intend to win."> 4 ;1)>>
+ <CRLF>
+ ;<FINISH T>
+ <FINISH>
+ <RFALSE>)>
+ <TELL ,INDENT>
+ <COND (<EQUAL? ,LAFOND-CTR 1>
+ <COND (<NOT <EQUAL? ,HERE ,BEACH ,SHALLOWS ,LAGOON>>
+ <FWTD
+"Dragoons surround you, appearing from nowhere.
+They show you no mercy, though they let you survive.">)
+ (T
+ <QUEUE I-ENDGAME -1>
+ <MOVE ,LAFOND ,BEACH>
+ <FCLEAR ,LAFOND ,MUNGBIT>
+ <MOVE ,CRULLEY ,BEACH>
+ <FCLEAR ,CRULLEY ,MUNGBIT>
+ <TELL
+"A shot rings out over the roar of the surf. Turning, you see that Lafond
+stands at the top of the cliff, a pistol in each hand. \"Trying to sneak
+out the back, cowards? You will die like your brother, Falcon. Snivelling
+for mercy.\" He hands one gun to " D ,CRULLEY ", standing nearby, and levels
+the other at Jamison" ,PCR>)>)
+ (<EQUAL? ,LAFOND-CTR 2>
+ <FSET ,COOKIE ,DEADBIT>
+ <SETG QUESTIONER ,HERO>
+ <SETG AWAITING-REPLY 9>
+ <QUEUE I-REPLY 2>
+ <TELL
+"As the gun fires, Cookie throws himself before his captain. He cries out,
+blood blossoming on his shoulder, and falls face first into the sand.
+Lucy runs to him.|
+ Jamison yells up the cliff, brandishing his sword. \"Fight like a man,
+Lafond. You have drawn my blood once tonight -- let me draw yours.\"|
+ Lafond sneers. \"On one condition. If I win, your lady comes to me.
+You will have no need of her when you are dead.\"|
+ Nicholas stiffens, glances at the dragoons on the cliff above, and turns
+slowly to you. He says nothing, his face hard, but his eyes tell you what
+you want to know. \"Answer, my darling. Yes or no?\"" CR>)
+ (<EQUAL? ,LAFOND-CTR 3 4>
+ <SETG QUESTIONER ,HERO>
+ <SETG AWAITING-REPLY 9>
+ <QUEUE I-REPLY 2>
+ <COND (<OR <AFFIRMATIVE-ANSWER>
+ <VERB? YES>>
+ ;<EQUAL? ,REACTION ,REACTION-POSITIVE>
+ <FSET ,RAPIER ,NDESCBIT>
+ <FSET ,LAFOND ,NDESCBIT>
+ <FCLEAR ,CRULLEY ,NDESCBIT>
+ <MOVE ,PISTOL ,BEACH>
+ ;"then skip to FIGHTING next turn"
+ <SETG LAFOND-CTR <- ,FIGHTING 1>>
+ <TELL
+"Nicholas looks determined. \"I accept. So long as my people go free
+if I win. Order your dragoons to obey us, then.\" In answer, Lafond jumps
+off the cliff like a huge brocaded bat to land in front of" T ,HERO ".
+\"Die then, fool!\"|
+ " CTHE ,PISTOL ", spinning from Lafond's grip, drops to the sand ">
+ <COND (<EQUAL? ,HERE ,BEACH>
+ <TELL "nearby." CR>)
+ (T
+ <TELL "of the beach." CR>)>)
+ (<AND <EQUAL? ,REACTION ,REACTION-NEUTRAL>
+ <EQUAL? ,LAFOND-CTR 3>>
+ <TELL
+"Lafond calls down to you, \"My pretty doxy,
+do make up your mind. Yes or no?\"" CR>)
+ (T
+ <JIGS-UP
+"Lafond cries, \"No deal then. Take them, men!\"
+The dragoons pour down the cliff.">)>)
+ (<EQUAL? ,LAFOND-CTR ,FIGHTING>
+ <TELL
+D ,LAFOND " immediately takes the advantage, forcing Nicholas in a
+retreat towards the foaming surf. But Nicholas fights hard, jaw set, ignoring
+his wounds. Lafond finally loses his smile.|
+ Behind the duellists, far away atop the cliff, you notice "
+D ,CRULLEY " madly reloading the pistol" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR 6>
+ <FCLEAR ,LAFOND ,NDESCBIT>
+ <REMOVE ,HRING>
+ <MOVE ,LRING ,HERO>
+ <FCLEAR ,RAPIER ,NDESCBIT>
+ <FSET ,LAFOND ,DEADBIT>
+ <TELL
+"Suddenly the force of the duel turns, Nicholas advancing against Lafond's
+retreat. Their blades silently flash in the moonlight. Lafond is pressed
+back into the shadow of the cliff, sweat beading on his forehead. Abruptly,
+Jamison leaps forward, metal scrapes, and his rapier licks neatly into
+Lafond's ribs, like a snake slipping into its burrow. The body of the governor
+of St. Sinistra convulses, as in amazement, then sags dead on the sword.|
+ Nicholas removes" A ,LRING " from the dead man's finger, throwing his own
+cheap copy into the surf.|
+ Far above him," T ,CRULLEY " moves down the stairs." CR>)
+ (<EQUAL? ,LAFOND-CTR ,DEAD>
+ <TELL D ,CRULLEY
+" is levelling" T ,PISTOL ", feet apart, braced by the cliff wall." CR>)
+ (<EQUAL? ,LAFOND-CTR <+ ,DEAD 1>>
+ <TELL
+D ,CRULLEY " carefully aims" T ,PISTOL ", a triumphal grin benighting his
+face. Nicholas turns and walks smiling towards you, oblivious to his
+danger" ,PCR>)
+ (<EQUAL? ,LAFOND-CTR <+ ,DEAD 2>>
+ ;<SETG FINAL-RANK 0 ;2>
+ ;<SETG SCORE <+ ,SCORE 1>>
+ <JIGS-UP
+"The pistol fires with a deafening roar, spraying shot into Nicholas.
+Time stops as he falls, reaching for you, your name his last breath.|
+ The battle afterwards is short and bloody. Spurred by grief, you fight
+hard, yet greet benumbing death thankfully.">
+ ;<FINISH T>
+ ;<FINISH>)>
+ <SETG LAFOND-CTR <+ ,LAFOND-CTR 1>>>
+
+;(<EQUAL? ,LAFOND-CTR ,DEAD>
+ <TELL
+"For a moment, all eyes are on you in surprise.
+Crulley lifts the pistol to aim it at Nicholas.">)
+
+<ROUTINE FINALE ()
+ <MOVE ,HERO ,FOCSLE>
+ <CLEAR-SCREEN 15>
+ <SET VERBOSITY 0>
+ <GOTO ,FOCSLE>
+ <TELL ,INDENT
+"As dawn breaks over the eastern seas, you stand with Nicholas on his ship,
+looking north. \"I have nothing left in England,\" he says. \"There I am but a
+destitute gentleman, wanted for piracy. Here -- this isle holds too many
+memories">
+ <COND (<FSET? ,DAD ,DEADBIT>
+ <SETG FINAL-RANK 1 ;4>
+ <TELL
+" --\" he pauses, gazing into your tear-filled eyes with compassion. \"">)
+ (T
+ <SETG FINAL-RANK 4 ;5>
+ <TELL "; your father may have it. ">)>
+ <TELL
+"Mayhap my brother's wife yet lives. I must try to find her, either way.\"
+He takes you into his arms. \"Come with me, my love? To America -- they tell
+of endless fertile fields and strange beasts in that wild land. It won't be
+easy, but we will have each other. Together, shall we carve a kingdom blessed
+with fair children and freedom?\"|
+ You wrap your arms about his waist and lean into him, and smile at the
+rising sun" ,PCR>
+ ;<FINISH T>
+ <FINISH>>
+
+
+<OBJECT PATROL
+ (IN FRONT-DRIVE)
+ (DESC "patrol")
+ (LDESC
+"Dragoons, conversing quietly, patrol the other side of the gate.")
+ (SYNONYM DRAGOO PATROL)
+ (ADJECTIVE DRAGOO)
+ (FLAGS ACTORBIT)
+ (ACTION PATROL-F)>
+
+<ROUTINE PATROL-F ()
+ <COND (<EQUAL? ,PATROL ,WINNER>
+ <TELL "A rough voice yells to leave them alone." CR>)
+ (<TOUCHING? ,PATROL>
+ <CANT-REACH ,PATROL>)>>
+
+
+<ROUTINE FAILS-TO-NOTICE () ;("OPTIONAL" (WOMAN? <>))
+ <COND (<EQUAL? ,WINNER ,LUCY>
+ <TELL "Sh">)
+ (T
+ <TELL "H">)>
+ <TELL "e fails to notice you've spoken" ,PCR>> \ No newline at end of file
diff --git a/globals.zap b/globals.zap
new file mode 100644
index 0000000..ae9de72
--- /dev/null
+++ b/globals.zap
@@ -0,0 +1,1807 @@
+
+
+ .FUNCT INTDIR-F,?TMP1
+ EQUAL? PRSA,V?ROW-TO,V?ROW,V?ROW-DIR \FALSE
+ IN? PROTAGONIST,SKIFF \FALSE
+ EQUAL? P-DIRECTION,P?EAST \?CCL8
+ EQUAL? HERE,BY-SHIP \?CND9
+ PRINTI "That would take you past"
+ CALL TPRINT,SHIP
+ PRINTR " into the open sea!"
+?CND9: SET 'ROWING,ROWEAST
+ PRINT DIPPING-OARS
+ PRINTD SKIFF
+ PRINTI " plows through the lagoon."
+ EQUAL? HERE,SHALLOWS \?CCL13
+ CALL QUEUE,I-CURRENT,-1
+ SET 'ROWING,1
+ MOVE SKIFF,LAGOON
+ CRLF
+ CALL GOTO,SKIFF
+ RSTACK
+?CCL13: ADD SKIFF-LOC,ROWING >?TMP1
+ ADD SHIP-LOC,1
+ EQUAL? ?TMP1,SHIP-LOC,STACK \?CCL15
+ FSET? SHIP,MUNGBIT \?CCL18
+ CALL JIGS-UP,STR?297
+ RSTACK
+?CCL18: PRINTI " You glide into the shadow of"
+ CALL TRPRINT,SHIP
+ CRLF
+ SET 'SKIFF-LOC,SHIP-LOC
+ SET 'ROWING,0
+ MOVE SKIFF,BY-SHIP
+ CALL GOTO,SKIFF
+ RSTACK
+?CCL15: CRLF
+ RTRUE
+?CCL8: EQUAL? P-DIRECTION,P?WEST \?CCL20
+ SET 'ROWING,ROWWEST
+ EQUAL? HERE,SHALLOWS \?CCL23
+ PRINTI "You can row"
+ CALL TPRINT,SKIFF
+ PRINTI " no farther west"
+ PRINT PCR
+ RTRUE
+?CCL23: ADD SKIFF-LOC,ROWING
+ LESS? STACK,2 \?CCL25
+ PRINT DIPPING-OARS
+ PRINTD SKIFF
+ PRINTI " noses into the sand of the shallows. You get out"
+ PRINT PCR
+ CRLF
+ CALL DEQUEUE,I-CURRENT
+ SET 'SKIFF-LOC,1
+ MOVE SKIFF,SHALLOWS
+ CALL GOTO,SHALLOWS
+ RTRUE
+?CCL25: PRINT DIPPING-OARS
+ PRINTD SKIFF
+ PRINTI " shoots over the waves"
+ PRINT PCR
+ EQUAL? HERE,BY-SHIP \TRUE
+ MOVE SKIFF,LAGOON
+ CALL GOTO,SKIFF
+ RTRUE
+?CCL20: EQUAL? P-DIRECTION,P?NORTH,P?NW,P?NE /?CCL29
+ EQUAL? P-DIRECTION,P?SOUTH,P?SW,P?SE \FALSE
+?CCL29: PRINTR "You can barely row back and forth, much less side to side!"
+
+
+ .FUNCT MAN-F,PERSON
+ EQUAL? PRSO,ME \?CCL3
+ EQUAL? PRSA,V?TAKE-WITH \?CCL3
+ CALL RECOGNIZE
+ RSTACK
+?CCL3: CALL NOUN-USED,W?SAILOR,MAN
+ ZERO? STACK /?CCL7
+ EQUAL? PRSA,V?HELLO \?CCL7
+ CALL GLOBAL-IN?,CREW,HERE
+ ZERO? STACK /?CCL12
+ CALL PERFORM,V?HELLO,CREW
+ RTRUE
+?CCL12: PRINTR "Nothing happens here."
+?CCL7: GET P-NAMW,0
+ EQUAL? STACK,W?MAN \?CCL14
+ EQUAL? PRSO,MAN \?CCL14
+ CALL ADJ-USED,A?BEWIGGED
+ ZERO? STACK /?CCL19
+ CALL PERFORM-PRSA,LAFOND,PRSI
+ RSTACK
+?CCL19: CALL NOUN-USED,W?MEN,MAN
+ ZERO? STACK /?CCL21
+ EQUAL? HERE,BALLROOM,ORCHESTRA,SUPPER-ROOM /?CCL21
+ CALL MORE-SPECIFIC
+ RSTACK
+?CCL21: CALL FIND-MAN >PERSON
+ ZERO? PERSON /?CCL25
+ CALL PERFORM-PRSA,PERSON,PRSI
+ RTRUE
+?CCL25: CALL CANT-SEE,MAN
+ RSTACK
+?CCL14: GET P-NAMW,1
+ EQUAL? STACK,W?MAN \FALSE
+ EQUAL? PRSI,MAN \FALSE
+ CALL ADJ-USED,A?BEWIGGED
+ ZERO? STACK /?CCL32
+ CALL PERFORM-PRSA,PRSO,LAFOND
+ RSTACK
+?CCL32: CALL NOUN-USED,W?MEN,MAN
+ ZERO? STACK /?CCL34
+ EQUAL? HERE,BALLROOM,ORCHESTRA,SUPPER-ROOM /?CCL34
+ CALL MORE-SPECIFIC
+ RSTACK
+?CCL34: CALL FIND-MAN >PERSON
+ ZERO? PERSON /?CCL38
+ CALL PERFORM-PRSA,PRSO,PERSON
+ RTRUE
+?CCL38: CALL CANT-SEE,MAN
+ RSTACK
+
+
+ .FUNCT FIND-MAN
+ IN? HERO,HERE \?CCL3
+ RETURN HERO
+?CCL3: IN? LAFOND,HERE \?CCL5
+ RETURN LAFOND
+?CCL5: IN? DAD,HERE \?CCL7
+ RETURN DAD
+?CCL7: IN? CRULLEY,HERE \?CCL9
+ RETURN CRULLEY
+?CCL9: IN? COOKIE,HERE \?CCL11
+ RETURN COOKIE
+?CCL11: IN? BUTLER,HERE \?CCL13
+ RETURN BUTLER
+?CCL13: CALL GLOBAL-IN?,DANCERS,HERE
+ ZERO? STACK /?CCL15
+ RETURN DANCERS
+?CCL15: CALL GLOBAL-IN?,CREW,HERE
+ ZERO? STACK /?CCL17
+ RETURN CREW
+?CCL17: IN? CROC,HERE \FALSE
+ RETURN CROC
+
+
+ .FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ,X=0
+ EQUAL? PRSO,NOT-HERE-OBJECT \?CCL3
+ EQUAL? PRSI,NOT-HERE-OBJECT \?CCL3
+ PRINTR "Those things aren't here!"
+?CCL3: EQUAL? P-XNAM,W?MOUTH,W?EYES \?CCL7
+ EQUAL? P-XADJN,W?LAFOND,FALSE-VALUE \?CCL7
+ EQUAL? PRSO,NOT-HERE-OBJECT \?CCL12
+ SET 'PRSO,LAFOND
+ RFALSE
+?CCL12: SET 'PRSI,LAFOND
+ RFALSE
+?CCL7: EQUAL? P-XADJN,W?POWDER \?CCL14
+ CALL HELD?,HORN
+ ZERO? STACK /?CCL14
+ EQUAL? PRSO,NOT-HERE-OBJECT \?CCL19
+ SET 'PRSO,POWDER
+ JUMP ?CND1
+?CCL19: SET 'PRSI,POWDER
+ JUMP ?CND1
+?CCL14: EQUAL? P-XNAM,W?HANDS,W?HAND /?PRD23
+ EQUAL? P-XNAM,W?FINGER,W?EYE,W?EYES /?PRD23
+ EQUAL? P-XNAM,W?HEAD,W?JAMISON /?PRD23
+ EQUAL? P-XNAM,W?LIP,W?LIPS,W?MOUTH \?CCL21
+?PRD23: EQUAL? P-XADJN,W?NICK,W?NICHOLAS,W?CROC'S /?CTR20
+ EQUAL? P-XADJN,W?DAD,W?FATHER,W?PAPA /?CTR20
+ EQUAL? P-XADJN,W?WOMAN,W?LUCY /?CTR20
+ EQUAL? P-XADJN,W?JEAN,W?LAFOND \?CCL21
+?CTR20: PRINTR "[Sadly, we haven't the space to handle everything. Try to refer only to characters in the story, not individual body parts or possessions. For example, you can EXAMINE PIRATE but you can't EXAMINE PIRATE'S EYEPATCH.]"
+?CCL21: EQUAL? PRSO,NOT-HERE-OBJECT \?CCL33
+ SET 'TBL,P-PRSO
+ JUMP ?CND1
+?CCL33: SET 'TBL,P-PRSI
+ SET 'PRSO?,FALSE-VALUE
+?CND1: ZERO? PRSO? /?CCL36
+ CALL PRSO-MOBY-VERB?
+ ZERO? STACK /?CCL36
+ SET 'X,TRUE-VALUE
+ JUMP ?CND34
+?CCL36: ZERO? PRSO? \?CND34
+ CALL PRSI-MOBY-VERB?
+ ZERO? STACK /?CND34
+ SET 'X,TRUE-VALUE
+?CND34: ZERO? X /?CCL44
+ CALL FIND-NOT-HERE,TBL,PRSO? >OBJ
+ ZERO? OBJ /FALSE
+ EQUAL? OBJ,NOT-HERE-OBJECT \TRUE
+ EQUAL? PRSA,V?FOLLOW,V?WALK-TO \?CCL52
+ CALL V-WALK-AROUND
+ JUMP ?CND42
+?CCL52: CALL MORE-SPECIFIC
+ JUMP ?CND42
+?CCL44: EQUAL? WINNER,PROTAGONIST \?CCL55
+ PRINTI "You"
+ JUMP ?CND53
+?CCL55: FSET? WINNER,DEADBIT \?CCL57
+ PRINT DOESNT-RESPOND
+ RETURN 8
+?CCL57: PRINTI "Looking confused,"
+ CALL TPRINT,WINNER
+ PRINTI " says, ""I"
+?CND53: PRINTI " can't see"
+ CALL ADJNAME?,P-XADJ
+ ZERO? STACK \?CND60
+ CALL NAME?,P-XNAM
+ ZERO? STACK \?CND60
+ PRINTI " any"
+?CND60: CALL NOT-HERE-PRINT,PRSO?
+ PRINTI " here!"
+ EQUAL? WINNER,PROTAGONIST /?CND64
+ PRINTC 34
+?CND64: CRLF
+?CND42: CALL STOP
+ RSTACK
+
+
+ .FUNCT PRSO-MOBY-VERB?
+ EQUAL? PRSA,V?WHAT,V?WHERE,V?SHOOT /TRUE
+ EQUAL? PRSA,V?SSHOOT /TRUE
+ EQUAL? PRSA,V?WALK-TO /TRUE
+ EQUAL? PRSA,V?I-LOVE-YOU /TRUE
+ EQUAL? PRSA,V?FIND,V?FOLLOW,V?SAVE-SOMETHING /TRUE
+ EQUAL? PRSA,V?ANSWER-KLUDGE /TRUE
+ RFALSE
+
+
+ .FUNCT PRSI-MOBY-VERB?
+ EQUAL? PRSA,V?ASK-ABOUT,V?ASK-FOR,V?TELL-ABOUT /TRUE
+ EQUAL? PRSA,V?I-LOVE-YOU /TRUE
+ RFALSE
+
+
+ .FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ
+ CALL MOBY-FIND,TBL >M-F
+ EQUAL? 1,M-F \?CCL3
+ ZERO? PRSO? /?CCL6
+ SET 'PRSO,P-MOBY-FOUND
+ CALL THIS-IS-IT,PRSO
+ RFALSE
+?CCL6: SET 'PRSI,P-MOBY-FOUND
+ RFALSE
+?CCL3: LESS? 1,M-F \?CCL8
+ GETB TBL,1 >OBJ
+ GETP OBJ,P?GENERIC
+ CALL STACK >OBJ
+ ZERO? OBJ /?CCL8
+ EQUAL? OBJ,NOT-HERE-OBJECT /TRUE
+ ZERO? PRSO? /?CCL15
+ SET 'PRSO,OBJ
+ CALL THIS-IS-IT,PRSO
+ RFALSE
+?CCL15: SET 'PRSI,OBJ
+ RFALSE
+?CCL8: RETURN NOT-HERE-OBJECT
+
+
+ .FUNCT NOT-HERE-PRINT,PRSO?,?TMP1
+ ZERO? P-OFLAG /?CCL3
+ ZERO? P-XADJ /?CND4
+ PRINTC 32
+ PRINTB P-XADJN
+?CND4: ZERO? P-XNAM /FALSE
+ PRINTC 32
+ PRINTB P-XNAM
+ RTRUE
+?CCL3: ZERO? PRSO? /?CCL10
+ GET P-ITBL,P-NC1 >?TMP1
+ GET P-ITBL,P-NC1L
+ CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
+ RSTACK
+?CCL10: GET P-ITBL,P-NC2 >?TMP1
+ GET P-ITBL,P-NC2L
+ CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
+ RSTACK
+
+
+ .FUNCT LADDER-F
+ ZERO? LADDER-HANGING \?CCL3
+ CALL CANT-SEE,LADDER
+ RSTACK
+?CCL3: EQUAL? PRSA,V?BOARD,V?CLIMB,V?TAKE \?CCL5
+ LOC PROTAGONIST
+ EQUAL? STACK,CAPT-QUARTERS \?CCL8
+ FSET? LEDGE,MUNGBIT \?CCL11
+ PRINTI "You lean over"
+ CALL TPRINT,LEDGE
+ PRINTI ", but"
+ CALL TPRINT,LADDER
+ PRINTI " is too far out to reach"
+ PRINT PCR
+ RTRUE
+?CCL11: PRINTI "It's on the other side of the window"
+ PRINT PCR
+ RTRUE
+?CCL8: LOC PROTAGONIST
+ EQUAL? STACK,LEDGE \?CCL13
+ PRINTI "You "
+ CALL ANYTHING-HELD
+ ZERO? STACK /?CND14
+ CALL ROB,PROTAGONIST,RETICULE
+ PRINTI "put everything in"
+ CALL TPRINT,RETICULE
+ PRINTI " and "
+?CND14: FSET? POOP,TOUCHBIT \?CCL18
+ PRINTI "hop out, catching the"
+ JUMP ?CND16
+?CCL18: CALL QUEUE,I-LADDER-BLOWS,-1
+ PRINTI "reach out for"
+ CALL TPRINT,LADDER
+ PRINTI " and over-balance, tumbling from your perch. Your hand closes on a slimy hemp rung as you fly out over the waves, clinging tenuously, feet free, to the"
+?CND16: CALL PRSO-PRINT
+ PRINT PCR
+ CRLF
+ CALL GOTO,ON-LADDER
+ RSTACK
+?CCL13: EQUAL? HERE,ON-LADDER \?CCL20
+ EQUAL? PRSA,V?TAKE \?CCL20
+ PRINT HOLDING-IT
+ RTRUE
+?CCL20: LOC PROTAGONIST
+ EQUAL? STACK,SKIFF \?CCL24
+ CALL DEBARK-SKIFF
+ RSTACK
+?CCL24: EQUAL? HERE,POOP \?CCL26
+ PRINTI "If you wish to climb down"
+ CALL TPRINT,LADDER
+ PRINTI ", say so"
+ PRINT PCR
+ RTRUE
+?CCL26: CALL DO-WALK,P?UP
+ RSTACK
+?CCL5: EQUAL? PRSA,V?CUT \?CCL28
+ CALL HELD?,DAGGER
+ ZERO? STACK /?CCL31
+ CALL CTPRINT,DAGGER
+ PRINTI " isn't sharp enough to cut through"
+ CALL TRPRINT,LADDER
+ RSTACK
+?CCL31: CALL PROPOSE
+ RSTACK
+?CCL28: EQUAL? PRSA,V?UNTIE \?CCL33
+ CALL CTPRINT,ROPE
+ PRINTI " is tied in too complex a knot"
+ PRINT PCR
+ RTRUE
+?CCL33: EQUAL? PRSA,V?CLIMB-DOWN \?CCL35
+ EQUAL? HERE,CAPT-QUARTERS \?CCL38
+ CALL DO-FIRST,STR?298,LADDER
+ RSTACK
+?CCL38: CALL DO-WALK,P?DOWN
+ RTRUE
+?CCL35: EQUAL? PRSA,V?EXAMINE \FALSE
+ EQUAL? HERE,CAPT-QUARTERS,ON-LADDER,POOP \FALSE
+ PRINT COMMON-LOOKING
+ PRINTI "rope "
+ PRINTD LADDER
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT I-END-PROLOGUE
+ PRINT INDENT
+ PRINTI "Davis leaps across the deck to your side, ""Free me or she dies!"" he yells, jabbing a knife up to your throat. In one smooth motion,"
+ CALL TPRINT,HERO
+ PRINTI " draws his rapier, pulls you free and stabs. Davis slumps into a bloody heap.
+ Swooning, you fall into the Falcon's arms. You are dimly aware of being carried to the other ship, down a short flight of stairs, and laid gently on a soft bed. When you gather strength to look around, the Falcon has left you in peace.
+ You remain confined to this room, a large cupboard blocking the door. Meals are brought by a peg-legged old man and eaten in silence. Of your handsome rescuer you see nothing. Slowly the days pass.
+"
+ CRLF
+ PRINT HIT-RETURN
+ PRINTI "continue.]"
+ CRLF
+ READ P-INBUF,P-LEXV
+ CALL CLEAR-SCREEN,10
+ CALL GOTO,CAPT-QUARTERS
+ FCLEAR CRULLEY,DEADBIT
+ FCLEAR DOOR,MUNGBIT
+ MOVE HERO,CAPT-QUARTERS
+ FCLEAR HERO,NDESCBIT
+ REMOVE COFFER
+ FSET COFFER,MUNGBIT
+ FCLEAR COFFER,LOCKEDBIT
+ FSET RAPIER,NDESCBIT
+ FCLEAR DOOR,OPENBIT
+ RTRUE
+
+
+ .FUNCT GLOBAL-SLEEP-F
+ EQUAL? PRSA,V?TAKE,V?WALK-TO \FALSE
+ CALL PERFORM,V?SLEEP
+ RTRUE
+
+
+ .FUNCT GROUND-F
+ EQUAL? PRSA,V?EXAMINE \?CCL3
+ EQUAL? HERE,RIGGING-ROOM,CROWS-NEST \?CCL6
+ PRINTI "Looking down at the distant deck is a mistake. Your stomach flips over"
+ JUMP ?CND4
+?CCL6: CALL SHIP-BOARD,HERE
+ ZERO? STACK /?CCL8
+ PRINTI "Well scrubbed and smoothed floorboards make up the deck"
+ JUMP ?CND4
+?CCL8: EQUAL? HERE,BY-SHIP,LAGOON,SHALLOWS \?CCL10
+ PRINTI "A sandy bottom shifts under the waves"
+ JUMP ?CND4
+?CCL10: EQUAL? HERE,CELL-1,CELL-4 \?CCL12
+ PRINTI "Like the walls and ceiling, rock"
+ JUMP ?CND4
+?CCL12: EQUAL? HERE,CELL-2 \?CCL14
+ PRINTI "The floor is ankle deep in mud"
+ JUMP ?CND4
+?CCL14: CALL NOTHING-INTERESTING
+ PRINTI "about "
+ FSET? HERE,INDOORSBIT \?CCL17
+ PRINTI "the floor"
+ JUMP ?CND4
+?CCL17: CALL TPRINT,GROUND
+?CND4: PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?BOARD,V?CLIMB,V?CLIMB-ON \?CCL19
+ CALL WASTES
+ RSTACK
+?CCL19: EQUAL? PRSA,V?LOOK-UNDER \?CCL21
+ CALL IMPOSSIBLES
+ RSTACK
+?CCL21: EQUAL? PRSA,V?LEAVE \?CCL23
+ CALL DO-WALK,P?UP
+ RSTACK
+?CCL23: EQUAL? PRSA,V?WALK-TO \FALSE
+ CALL NOUN-USED,W?DECK,GROUND
+ ZERO? STACK /FALSE
+ EQUAL? HERE,CABIN,LANDING,HOLD /?CTR29
+ EQUAL? HERE,GALLEY \?CCL30
+?CTR29: CALL DO-WALK,P?OUT
+ RSTACK
+?CCL30: EQUAL? HERE,DEUX-DECK,POOP,QUARTERDECK /?CTR33
+ EQUAL? HERE,MAIN-DECK,FOCSLE \?CCL34
+?CTR33: PRINT LOOK-AROUND
+ RTRUE
+?CCL34: EQUAL? HERE,CROWS-NEST,RIGGING-ROOM \?CCL38
+ CALL DO-WALK,P?DOWN
+ RSTACK
+?CCL38: CALL SHIP-BOARD,HERE
+ ZERO? STACK /?CCL40
+ CALL V-WALK-AROUND
+ RSTACK
+?CCL40: CALL WASTES
+ RSTACK
+
+
+ .FUNCT KEY-F
+ EQUAL? PRSA,V?TAKE \FALSE
+ FSET? LARGE-KEY,TRYTAKEBIT \FALSE
+ MOVE LARGE-KEY,PROTAGONIST
+ FCLEAR LARGE-KEY,TRYTAKEBIT
+ INC 'SCORE
+ PRINTR "Taken."
+
+
+ .FUNCT GEN-LOCK
+ FSET? COFFER,NDESCBIT /FALSE
+ RETURN DOOR
+
+
+ .FUNCT DOOR-F
+ EQUAL? HERE,CAPT-QUARTERS \?CCL3
+ CALL PERFORM-PRSA,CURTAIN
+ RTRUE
+?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL5
+ CALL NOUN-USED,W?LOCK,LDOOR
+ ZERO? STACK /?CCL8
+ PRINTI "Ladies do not look through keyholes!"
+ CRLF
+ JUMP ?CND6
+?CCL8: FSET? PRSO,OPENBIT \?CCL10
+ PRINTI "It is open"
+ JUMP ?CND6
+?CCL10: PRINTI "It"
+ PRINT IS-CLOSED
+ EQUAL? HERE,QUARTERDECK \?CCL13
+ PRINTI " and barred"
+ JUMP ?CND6
+?CCL13: FSET? DOOR,MUNGBIT \?CND6
+ PRINTI ". Or, what remains of it is"
+?CND6: CALL THIS-IS-IT,PRSO
+ PRINT PCR
+ RTRUE
+?CCL5: EQUAL? PRSA,V?PICK \?CCL16
+ EQUAL? PRSO,LDOOR \?CCL16
+ PRINTR "The mechanism is too complex to pick."
+?CCL16: EQUAL? PRSA,V?UNLOCK \?CCL20
+ EQUAL? HERE,UPPER-HALL-E \?CCL23
+ PRINTI "Only one man has the key to this room: Jean Lafond"
+ PRINT PCR
+ RTRUE
+?CCL23: EQUAL? HERE,QUARTERDECK \?CCL25
+ CALL PERFORM,V?OPEN,DOOR
+ RTRUE
+?CCL25: EQUAL? PRSO,WOOD-CELL-DOOR \?CCL27
+ PRINTI "But"
+ CALL TPRINT,DOOR
+ PRINTI " isn't locked"
+ PRINT PCR
+ RTRUE
+?CCL27: EQUAL? PRSI,LARGE-KEY \?CCL29
+ EQUAL? PRSO,IRON-CELL-DOOR \?CCL32
+ FCLEAR PRSO,LOCKEDBIT
+ PRINTI "Unlocked"
+ PRINT PCR
+ RTRUE
+?CCL32: PRINTI "That key does not unlock this door"
+ PRINT PCR
+ RTRUE
+?CCL29: PRINTI "You are unable to unlock"
+ CALL TRPRINT,DOOR
+ RSTACK
+?CCL20: EQUAL? PRSA,V?LOCK \?CCL34
+ EQUAL? PRSO,IRON-CELL-DOOR \?CCL37
+ EQUAL? PRSI,LARGE-KEY \?CCL37
+ FSET PRSO,LOCKEDBIT
+ PRINTI "You "
+ FSET? PRSO,OPENBIT \?CND40
+ FCLEAR PRSO,OPENBIT
+ PRINTI "close and "
+?CND40: PRINTI "lock"
+ CALL TRPRINT,DOOR
+ RSTACK
+?CCL37: EQUAL? PRSI,LARGE-KEY \?CCL43
+ PRINTI "That key won't work here"
+ PRINT PCR
+ RTRUE
+?CCL43: EQUAL? PRSO,VER-DOOR \?CCL45
+ PRINT YOU-CANT
+ PRINTI "lock that"
+ PRINT PCR
+ RTRUE
+?CCL45: CALL PROPOSE
+ RSTACK
+?CCL34: EQUAL? PRSA,V?KNOCK \?CCL47
+ EQUAL? HERE,UPPER-HALL-E \?CCL50
+ FSET? LDOOR,LOCKEDBIT /?CCL50
+ IN? LAFOND,LAFS-ROOM \?CCL50
+ PRINTD LAFOND
+ PRINTR " calls, ""Come."""
+?CCL50: PRINTR "Silence answers back."
+?CCL47: EQUAL? PRSA,V?OPEN \FALSE
+ EQUAL? HERE,CABIN \?CCL58
+ PRINTR "It appears to be locked."
+?CCL58: EQUAL? HERE,LANDING \?CCL60
+ CALL CTPRINT,DOOR
+ PRINTI " won't open"
+ PRINT PCR
+ RTRUE
+?CCL60: EQUAL? HERE,QUARTERDECK \?CCL62
+ PRINTI "Someone yells from ahead, ""Cap'n 'll have your hide if you go down there!"" You haven't the strength to lift the bar anyway"
+ PRINT PCR
+ RTRUE
+?CCL62: EQUAL? HERE,VERANDA \FALSE
+ FSET? DOOR,OPENBIT /FALSE
+ PRINT YOU-CANT-SEE-ANY
+ PRINT WAY-TO-DO-THAT
+ RTRUE
+
+
+ .FUNCT CEILING-F
+ EQUAL? PRSA,V?EXAMINE \FALSE
+ EQUAL? HERE,CREWS-QUARTERS \?CCL6
+ PRINT YOU-SEE
+ PRINTI " a sail rippling against the night sky through"
+ CALL TRPRINT,GRATE
+ RSTACK
+?CCL6: FSET? HERE,INDOORSBIT /FALSE
+ CALL CANT-SEE,CEILING
+ RSTACK
+
+
+ .FUNCT WATER-F
+ EQUAL? HERE,LAFS-ROOM,RIGGING-ROOM /?PRD5
+ EQUAL? HERE,BOWSPRIT,CROWS-NEST \?CCL3
+?PRD5: EQUAL? PRSA,V?PUT-ON,V?PUT,V?THROW /?CCL3
+ EQUAL? PRSA,V?ENTER \?CCL10
+ PRINT SUICIDE
+ RTRUE
+?CCL10: CALL CANT-REACH,SEA
+ RSTACK
+?CCL3: CALL GLOBAL-IN?,SEA,HERE
+ ZERO? STACK \?CCL12
+ CALL HELD?,WATER,HERE
+ ZERO? STACK \?CCL12
+ PRINTR "There's no water here."
+?CCL12: EQUAL? PRSA,V?EXAMINE,V?LOOK-UNDER,V?LOOK-INSIDE \?CCL16
+ PRINTI "The water is sparkling clear"
+ PRINT PCR
+ RTRUE
+?CCL16: EQUAL? PRSA,V?REACH-IN \?CCL18
+ PRINTI "Water"
+ PRINT DRIPS-OFF
+ RTRUE
+?CCL18: EQUAL? PRSA,V?DRINK-FROM,V?DRINK \?CCL20
+ EQUAL? PRSO,WATER \?CCL23
+ PRINTI "You take a long draft. It is quite refreshing"
+ PRINT PCR
+ RTRUE
+?CCL23: PRINTI "This water is much too salty to drink"
+ PRINT PCR
+ RTRUE
+?CCL20: EQUAL? PRSA,V?PUT-ON \?CCL25
+ EQUAL? PRSI,SEA \?CCL25
+ CALL PERFORM,V?PUT,PRSO,SEA
+ RTRUE
+?CCL25: EQUAL? PRSA,V?THROW \?CCL29
+ EQUAL? HERE,CAPT-QUARTERS \?CCL32
+ FSET? LEDGE,MUNGBIT /?CCL32
+ PRINTI "But"
+ CALL TPRINT,WINDOW
+ PRINT IS-CLOSED
+ PRINTR "!"
+?CCL32: REMOVE PRSO
+ PRINTI "You toss"
+ CALL TPRINT-PRSO
+ PRINTI " into"
+ CALL TRPRINT,SEA
+ RSTACK
+?CCL29: EQUAL? PRSA,V?SOAK,V?PUT \?CCL36
+ EQUAL? PRSO,LETTER,INVITE \?CCL39
+ REMOVE PRSO
+ PRINTI "It disintegrates quickly into nothing"
+ PRINT PCR
+ RTRUE
+?CCL39: EQUAL? HERE,POOP,QUARTERDECK,FOCSLE /?CTR40
+ EQUAL? HERE,BOWSPRIT,CAPT-QUARTERS \?CCL41
+?CTR40: CALL PERFORM,V?THROW,PRSO,SEA
+ RTRUE
+?CCL41: EQUAL? HERE,MAIN-DECK \?CCL45
+ EQUAL? PRSI,SEA \?CCL48
+ CALL PERFORM,V?THROW,PRSO,SEA
+ RTRUE
+?CCL48: CALL PERFORM,V?PUT,PRSO,WATER-BARREL
+ RTRUE
+?CCL45: EQUAL? HERE,BEACH,SHALLOWS,LAGOON /?CTR49
+ EQUAL? HERE,BY-SHIP \?CCL50
+?CTR49: EQUAL? PRSO,RAG,DRESS \?CCL55
+ CALL DIP-DRESS
+ RSTACK
+?CCL55: PRINTI "You dip"
+ CALL TPRINT-PRSO
+ PRINTI " into the water"
+ PRINT PCR
+ RTRUE
+?CCL50: PRINT YOU-CANT
+ PRINTI "reach any water"
+ PRINT PCR
+ RTRUE
+?CCL36: EQUAL? PRSA,V?SWIM,V?ENTER,V?BOARD \?CCL57
+ EQUAL? HERE,BEACH \?CCL60
+ CALL DO-WALK,P?EAST
+ RSTACK
+?CCL60: CALL V-SWIM
+ RSTACK
+?CCL57: CALL TOUCHING?,SEA
+ ZERO? STACK /FALSE
+ PRINTI "The cool water runs through your fingers"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT SKY-F
+ FSET? HERE,INDOORSBIT \FALSE
+ CALL CANT-SEE,SKY
+ RSTACK
+
+
+ .FUNCT MOON-F
+ FSET? HERE,INDOORSBIT \?CCL3
+ EQUAL? HERE,CREWS-QUARTERS,CAPT-QUARTERS,BEDROOM /?CCL3
+ EQUAL? HERE,LAFS-ROOM /?CCL3
+ EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT /?CCL3
+ PRINT YOU-CANT
+ PRINTI "see the moon from here"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
+ PRINTR "A dusty moonbeam swirls down from the sky."
+
+
+ .FUNCT HANDS-F,ACTOR
+ EQUAL? PRSA,V?APPLAUD \?CCL3
+ SET 'PRSO,FALSE-VALUE
+ CALL V-APPLAUD
+ RSTACK
+?CCL3: EQUAL? PRSA,V?SHAKE \?CCL5
+ CALL FIND-IN,HERE,ACTORBIT,STR?267 >ACTOR
+ ZERO? ACTOR /?CCL8
+ CALL PERFORM,V?SHAKE-WITH,HANDS,ACTOR
+ RTRUE
+?CCL8: PRINTR "Pleased to meet you."
+?CCL5: EQUAL? PRSA,V?CLEAN \?CCL10
+ PRINTR "Done."
+?CCL10: EQUAL? PRSA,V?TAKE-WITH \FALSE
+ EQUAL? PRSI,HANDS \FALSE
+ CALL PERFORM,V?TAKE,PRSO
+ RTRUE
+
+
+ .FUNCT EYES-F
+ EQUAL? PRSA,V?CLOSE \?CCL3
+ PRINTI "You blink"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?OPEN \?CCL5
+ PRINTR "They are open!"
+?CCL5: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE
+ CALL ADJ-USED,A?HIS
+ ZERO? STACK /FALSE
+ IN? HERO,HERE \FALSE
+ GET MANNERISMS,3
+ PRINT STACK
+ CRLF
+ RTRUE
+
+
+ .FUNCT MOUTH-F
+ EQUAL? PRSA,V?OPEN,V?ENTER,V?PUT-ON /?CTR2
+ EQUAL? PRSA,V?EXAMINE,V?POUR,V?WRING /?CTR2
+ EQUAL? PRSA,V?PUT \?CCL3
+?CTR2: CALL ADJ-USED,A?CROC'S
+ ZERO? STACK \?CTR8
+ CALL ADJ-USED,A?CROCOD
+ ZERO? STACK \?CTR8
+ CALL NOUN-USED,W?SNOUT,MOUTH
+ ZERO? STACK /?CCL9
+?CTR8: CALL PERFORM-PRSA,PRSO,CROC
+ RTRUE
+?CCL9: CALL ADJ-USED,A?LAFOND
+ ZERO? STACK /?CCL14
+ CALL PERFORM-PRSA,PRSO,LAFOND
+ RSTACK
+?CCL14: EQUAL? PRSI,MOUTH \FALSE
+ CALL PERFORM,V?EAT,PRSO
+ RTRUE
+?CCL3: EQUAL? PRSA,V?OPEN \FALSE
+ CALL RUNNING?,I-HFOLLY
+ ZERO? STACK /?CCL21
+ PRINTR "Jamison will do that for you."
+?CCL21: PRINTR "You fail to stifle a yawn."
+
+
+ .FUNCT PROTAGONIST-F
+ ZERO? QUESTIONER /FALSE
+ CALL GAME-COMMANDS
+ ZERO? STACK \FALSE
+ EQUAL? PRSA,V?NO /?CTR6
+ CALL NEGATIVE-ANSWER
+ ZERO? STACK /?CCL7
+ EQUAL? QUESTIONER,PRSO,PRSI \?CCL7
+?CTR6: SET 'REACTION,REACTION-NEGATIVE
+ JUMP ?CND3
+?CCL7: EQUAL? PRSA,V?YES /?CTR12
+ CALL AFFIRMATIVE-ANSWER
+ ZERO? STACK /?CCL13
+?CTR12: SET 'REACTION,REACTION-POSITIVE
+ JUMP ?CND3
+?CCL13: SET 'REACTION,REACTION-NEUTRAL
+?CND3: SET 'QUESTIONER,FALSE-VALUE
+ RFALSE
+
+
+ .FUNCT AFFIRMATIVE-ANSWER
+ EQUAL? PRSA,V?CLIMB-ON,V?APPLAUD /TRUE
+ EQUAL? PRSA,V?GIVE,V?FOLLOW,V?DANCE /TRUE
+ EQUAL? PRSA,V?SGIVE /TRUE
+ EQUAL? PRSA,V?CURTSEY,V?KISS,V?HELLO /TRUE
+ EQUAL? PRSA,V?LAUGH /TRUE
+ EQUAL? PRSA,V?MARRY,V?I-LOVE-YOU,V?EMBRACE /TRUE
+ EQUAL? PRSA,V?TOUCH /TRUE
+ EQUAL? PRSA,V?SAVE-SOMETHING,V?WALK-TO,V?THANK /TRUE
+ EQUAL? PRSA,V?SSHOW,V?SHOW /TRUE
+ EQUAL? PRSA,V?MAKE-OUT,V?MAKE-LOVE /TRUE
+ EQUAL? PRSA,V?TELL \FALSE
+ GET P-LEXV,P-CONT
+ CALL YES-WORD,STACK
+ ZERO? STACK /FALSE
+ RTRUE
+
+
+ .FUNCT NEGATIVE-ANSWER
+ EQUAL? PRSA,V?BURN,V?BITE,V?KILL /TRUE
+ EQUAL? PRSA,V?RAPE,V?KICK,V?MUNG /TRUE
+ EQUAL? PRSA,V?YELL,V?SWING,V?SHAKE /TRUE
+ EQUAL? PRSA,V?TELL \FALSE
+ GET P-LEXV,P-CONT
+ CALL NO-WORD,STACK
+ ZERO? STACK /FALSE
+ RTRUE
+
+
+ .FUNCT GAME-COMMANDS
+ EQUAL? PRSA,V?QUIT,V?RESTORE,V?SAVE /TRUE
+ EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?VERBOSE /TRUE
+ EQUAL? PRSA,V?VERSION,V?UNSCRIPT,V?SCRIPT /TRUE
+ EQUAL? PRSA,V?$RECORD,V?$COMMAND,V?$RANDOM /TRUE
+ EQUAL? PRSA,V?$UNRECORD /TRUE
+ EQUAL? PRSA,V?$VERIFY /TRUE
+ EQUAL? PRSA,V?SCORE,V?HELP /TRUE
+ RFALSE
+
+
+ .FUNCT ME-F
+ EQUAL? PRSA,V?TELL \?CCL3
+ PRINTI "You'll end up in Bedlam, talking to "
+ PRINTD ME
+ PRINTI " that way."
+ CRLF
+ CALL STOP
+ RSTACK
+?CCL3: EQUAL? PRSA,V?GIVE \?CCL5
+ EQUAL? PRSI,ME \?CCL5
+ CALL PERFORM,V?TAKE,PRSO
+ RTRUE
+?CCL5: EQUAL? PRSA,V?TAKE-WITH \?CCL9
+ EQUAL? PRSI,MAN \?CCL9
+ CALL RECOGNIZE
+ RSTACK
+?CCL9: EQUAL? PRSA,V?SHOW \?CCL13
+ EQUAL? PRSI,ME \?CCL13
+ CALL PERFORM,V?EXAMINE,PRSO
+ RTRUE
+?CCL13: EQUAL? PRSA,V?MOVE \?CCL17
+ CALL V-WALK-AROUND
+ RSTACK
+?CCL17: EQUAL? PRSA,V?SEARCH \?CCL19
+ CALL V-INVENTORY
+ RTRUE
+?CCL19: EQUAL? PRSA,V?ALARM \?CCL21
+ CALL HELD?,SALTS
+ ZERO? STACK /?CCL21
+ CALL PERFORM,V?SMELL,SALTS
+ RTRUE
+?CCL21: EQUAL? PRSA,V?DRESS \?CCL25
+ CALL PERFORM,V?GET-DRESSED,ROOMS
+ RTRUE
+?CCL25: EQUAL? PRSA,V?EXAMINE \?CCL27
+ CALL RUNNING?,I-LSED
+ ZERO? STACK /?CCL30
+ GRTR? LAFOND-CTR,HORNY \?CCL30
+ CALL V-INVENTORY
+ RSTACK
+?CCL30: PRINTI "You are wearing"
+ ZERO? BOY-DRESS? /?CCL35
+ CALL APRINT,SHIRT
+ PRINTI " and "
+ PRINTD PANTS
+ PRINTR ". Mama herself would think you a plump boy."
+?CCL35: FSET? DRESS,WORNBIT \?CCL37
+ CALL APRINT,DRESS
+ PRINTR ", very pretty, if a tad outmoded for today's fashions."
+?CCL37: FSET? GOWN,WORNBIT \?CCL39
+ CALL APRINT,GOWN
+ PRINTR " of creamy watered silk."
+?CCL39: FSET? SHIRT,WORNBIT \?CCL41
+ CALL APRINT,SHIRT
+ PRINT BROTHEL
+ RTRUE
+?CCL41: FSET? PANTS,WORNBIT \?CCL43
+ CALL APRINT,PANTS
+ PRINT BROTHEL
+ RTRUE
+?CCL43: FSET? CHEMISE,EVERYBIT /FALSE
+ PRINTI " absolutely nothing besides"
+ CALL APRINT,CHEMISE
+ PRINTI ", "
+ PRINTD SHOES
+ PRINTI " and a few layers of "
+ PRINTD UNMENTIONABLES
+ PRINTI ". "
+ PRINT MOTHER
+ RTRUE
+?CCL27: EQUAL? PRSA,V?SHOOT,V?MUNG,V?KILL /?CTR46
+ EQUAL? PRSA,V?SSHOOT \?CCL47
+?CTR46: PRINT SUICIDE
+ RTRUE
+?CCL47: EQUAL? PRSA,V?WHERE,V?FIND \?CCL51
+ PRINTI "You're in"
+ CALL TRPRINT,HERE
+ RSTACK
+?CCL51: EQUAL? PRSA,V?FOLLOW \?CCL53
+ PRINTR "Next time, please specify who you wish to follow."
+?CCL53: EQUAL? PRSA,V?EMBRACE,V?KISS \FALSE
+ PRINTI "Mama warned you of the dangers of onanism"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT GLOBAL-ROOM-F
+ EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE,V?LOOK \?CCL3
+ CALL V-LOOK
+ RSTACK
+?CCL3: EQUAL? PRSA,V?WALK-TO,V?ENTER \?CCL5
+ CALL V-WALK-AROUND
+ RSTACK
+?CCL5: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?CCL7
+ CALL DO-WALK,P?OUT
+ RSTACK
+?CCL7: EQUAL? PRSA,V?SEARCH \?CCL9
+ EQUAL? HERE,CABIN \?CCL12
+ CALL RUNNING?,I-COFFER
+ ZERO? STACK \?CCL12
+ CALL HELD?,COFFER
+ ZERO? STACK \?CCL12
+ CALL PERFORM,V?LOOK-UNDER,CABIN-BED
+ RTRUE
+?CCL12: PRINT NOTHING-NEW
+ RTRUE
+?CCL9: EQUAL? PRSA,V?PUT \FALSE
+ EQUAL? PRSI,GLOBAL-ROOM \FALSE
+ EQUAL? P-PRSA-WORD,W?THROW \?CCL22
+ CALL PERFORM,V?THROW,PRSO
+ RTRUE
+?CCL22: CALL PERFORM,V?DROP,PRSO
+ RTRUE
+
+
+ .FUNCT HOUSE-F
+ EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?CCL3
+ EQUAL? HERE,MAIN-ENTRANCE \?CCL6
+ CALL DO-WALK,P?SOUTH
+ RSTACK
+?CCL6: EQUAL? HERE,TRADE-ENTRANCE \?CCL8
+ CALL DO-WALK,P?EAST
+ RSTACK
+?CCL8: EQUAL? HERE,VERANDA,LAWN \?CCL10
+ CALL DO-WALK,P?NORTH
+ RSTACK
+?CCL10: EQUAL? HERE,BY-HOUSE \?CCL12
+ CALL DO-WALK,P?WEST
+ RSTACK
+?CCL12: PRINT YOU-CANT
+ PRINTR "do that from here."
+?CCL3: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?CCL14
+ EQUAL? HERE,KITCHEN \?CCL17
+ CALL DO-WALK,P?WEST
+ RSTACK
+?CCL17: EQUAL? HERE,FOYER \?CCL19
+ CALL DO-WALK,P?NORTH
+ RSTACK
+?CCL19: EQUAL? HERE,BALLROOM \?CCL21
+ CALL DO-WALK,P?SOUTH
+ RSTACK
+?CCL21: EQUAL? HERE,LIBRARY \?CCL23
+ CALL DO-WALK,P?EAST
+ RSTACK
+?CCL23: EQUAL? HERE,BEDROOM \?CCL25
+ CALL DO-WALK,P?DOWN
+ RSTACK
+?CCL25: PRINT LOOK-AROUND
+ RTRUE
+?CCL14: EQUAL? PRSA,V?LOOK-INSIDE \?CCL27
+ EQUAL? HERE,MAIN-ENTRANCE,TRADE-ENTRANCE,LAWN /?CTR29
+ EQUAL? HERE,BY-HOUSE \?CCL30
+?CTR29: PRINT CANT-FROM-HERE
+ RTRUE
+?CCL30: CALL V-LOOK
+ RSTACK
+?CCL27: EQUAL? PRSA,V?EXAMINE \FALSE
+ EQUAL? HERE,CREWS-QUARTERS \?CCL37
+ PRINTI "Bathed in moonbeams and candlelight, the house squats at the crest of a cliff. The upstairs window is dark"
+ PRINT PCR
+ RTRUE
+?CCL37: CALL SHIP-BOARD,HERE
+ ZERO? STACK /?PRD41
+ CALL INNER-DECK,HERE
+ ZERO? STACK /?CTR38
+?PRD41: EQUAL? HERE,BEACH \?CCL39
+?CTR38: PRINT YOU-CANT
+ PRINTI "make out much of the house from this angle"
+ PRINT PCR
+ RTRUE
+?CCL39: CALL INNER-DECK,HERE
+ ZERO? STACK \?CTR44
+ CALL BELOW-GROUND,HERE
+ ZERO? STACK \?CTR44
+ EQUAL? HERE,FOREST,FOLLY,IN-HEDGE \?CCL45
+?CTR44: PRINT YOU-CANT-SEE-ANY
+ PRINTI "house here"
+ PRINT PCR
+ RTRUE
+?CCL45: EQUAL? HERE,FRONT-DRIVE,MAIN-ENTRANCE,LAWN /?CTR49
+ EQUAL? HERE,TRADE-ENTRANCE,CLEARING,VERANDA \?CCL50
+?CTR49: PRINTI "An entrance to"
+ CALL TPRINT,HOUSE
+ PRINTI " is nearby"
+ PRINT PCR
+ RTRUE
+?CCL50: CALL V-LOOK
+ RSTACK
+
+
+ .FUNCT CLIMBING
+ FSET? DRESS,WORNBIT /?CTR2
+ FSET? GOWN,WORNBIT \?CCL3
+?CTR2: SET 'AWAITING-REPLY,2
+ CALL QUEUE,I-REPLY,2
+ PRINTI "In these clothes? You jest"
+ PRINT PCR
+ RFALSE
+?CCL3: EQUAL? P-WALK-DIR,P?UP \?CCL7
+ EQUAL? HERE,CLEARING \?CCL10
+ PRINTI "You take a firm grasp on a particularly thick tendril, jerk once to secure it, and scamper up the wall like some huge tropical spider. It is easy to climb through the window"
+ PRINT PCR
+ CRLF
+ RETURN BEDROOM
+?CCL10: EQUAL? HERE,CAPT-QUARTERS \?CCL12
+ ZERO? LADDER-HANGING \?CCL15
+ PRINT CANT-GO
+ RFALSE
+?CCL15: FSET? POOP,TOUCHBIT /?CCL17
+ LOC PROTAGONIST
+ EQUAL? STACK,LEDGE \?CCL20
+ CALL DO-FIRST,STR?299,LADDER
+ RFALSE
+?CCL20: CALL DO-FIRST,STR?298,LEDGE
+ RFALSE
+?CCL17: PRINTI "You dash up"
+ CALL TRPRINT,LADDER
+ CRLF
+ RETURN POOP
+?CCL12: EQUAL? HERE,MAIN-DECK,FOCSLE \?CCL22
+ SET 'WHICH-MAST?,HERE
+ LOC DAGGER
+ EQUAL? STACK,PROTAGONIST \?CND23
+ PRINTI "You bite down on"
+ CALL TPRINT,DAGGER
+ PRINTI ", freeing "
+ PRINTD HANDS
+ PRINTI "s to climb. When you stop, you take it back again. "
+?CND23: PRINTI "The wind, a mere breeze on the deck, blows more fiercely"
+ PRINT PCR
+ CRLF
+ RETURN RIGGING-ROOM
+?CCL22: EQUAL? RIGGING-ROOM,HERE \?CCL26
+ EQUAL? WHICH-MAST?,FOCSLE \?CCL29
+ PRINTI "You clamber up"
+ CALL TRPRINT,RIGGING-OBJECT
+ CRLF
+ RETURN CROWS-NEST
+?CCL29: PRINTI "Above you there only appears to be more of the same, except higher, and you can not vouch for the effects on your stomach"
+ PRINT PCR
+ RFALSE
+?CCL26: EQUAL? HERE,ON-LADDER \?CCL31
+ FSET? POOP,TOUCHBIT /?CCL34
+ INC 'UP-CTR
+ EQUAL? UP-CTR,4 /?CCL37
+ PRINTI "You climb up"
+ CALL TPRINT,LADDER
+ EQUAL? UP-CTR,2 \?CND38
+ PRINTI ", passing the halfway point"
+?CND38: PRINT PCR
+ RFALSE
+?CCL37: PRINTI "You heave "
+ PRINTD ME
+ PRINTI " over the stern rail and sink breathless to the deck of"
+ CALL TRPRINT,SHIP
+ CRLF
+ CALL DEQUEUE,I-LADDER-BLOWS
+ RETURN POOP
+?CCL34: PRINTI "You dash up"
+ CALL TRPRINT,LADDER
+ CRLF
+ RETURN POOP
+?CCL31: EQUAL? HERE,BY-SHIP \FALSE
+ CALL DEBARK-SKIFF
+ RFALSE
+?CCL7: EQUAL? P-WALK-DIR,P?DOWN \FALSE
+ EQUAL? HERE,BEDROOM \?CCL46
+ PRINTI "Absently, you slide down"
+ CALL TPRINT,VINE
+ PRINTI ". You're getting quite adept at clambering about"
+ PRINT PCR
+ CRLF
+ RETURN CLEARING
+?CCL46: EQUAL? HERE,CROWS-NEST,RIGGING-ROOM \?CCL48
+ PRINTI "You half-climb, half-fall, down to the deck"
+ PRINT PCR
+ CRLF
+ RETURN WHICH-MAST?
+?CCL48: EQUAL? HERE,POOP \?CCL50
+ PRINTI "You climb down to opposite"
+ CALL TRPRINT,LEDGE
+ CRLF
+ RETURN ON-LADDER
+?CCL50: EQUAL? HERE,ON-LADDER \FALSE
+ ZERO? SKIFF-TIED /?CCL55
+ SET 'SKIFF-TIED,FALSE-VALUE
+ PRINTI "Freeing your feet from the rungs, you slide down the wet rope to the skiff, and quickly untie it from the ship"
+ PRINT PCR
+ CRLF
+ RETURN BY-SHIP
+?CCL55: PRINTI "A watery grave awaits you that way."
+ CRLF
+ RFALSE
+
+
+ .FUNCT FIRE-F
+ EQUAL? PRSA,V?OFF \?CCL3
+ CALL IMPOSSIBLES
+ RSTACK
+?CCL3: EQUAL? PRSA,V?PUT-ON,V?PUT,V?ON /?CTR4
+ EQUAL? PRSA,V?THROW \?CCL5
+?CTR4: CALL PERFORM,V?BURN,PRSO,FIRE
+ RTRUE
+?CCL5: EQUAL? PRSA,V?TELL-ABOUT /FALSE
+ CALL UNIMPORTANT-THING
+ RSTACK
+
+
+ .FUNCT STAIRS-F
+ EQUAL? PRSA,V?CLIMB \?CCL3
+ EQUAL? HERE,MAIN-DECK \?CCL6
+ CALL DO-WALK,P?NORTH
+ RSTACK
+?CCL6: CALL DO-WALK,P?UP
+ RSTACK
+?CCL3: EQUAL? PRSA,V?CLIMB-DOWN \?CCL8
+ CALL DO-WALK,P?DOWN
+ RSTACK
+?CCL8: EQUAL? PRSA,V?THROW \?CCL10
+ EQUAL? PRSI,STAIRS \?CCL10
+ CALL WASTES
+ RSTACK
+?CCL10: EQUAL? PRSA,V?EXAMINE \FALSE
+ EQUAL? HERE,HOLD \?CCL17
+ PRINTI "Steep stairs mount up to"
+ CALL TRPRINT,HATCH
+ RSTACK
+?CCL17: EQUAL? HERE,MAIN-DECK \FALSE
+ FSET? HATCH,OPENBIT \?CCL22
+ PRINT STEEP-STAIRS
+ PRINTI "down from "
+ CALL TPRINT,HATCH
+ PRINTI ". Another leads"
+ JUMP ?CND20
+?CCL22: CALL CTPRINT,STAIRS
+ PRINTI " lead"
+?CND20: PRINTI " to the foredeck"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT BED-F,VARG=0,THIS-BED,?TMP1
+ ZERO? VARG /?CCL3
+ EQUAL? VARG,M-BEG \FALSE
+ EQUAL? PRSA,V?WALK /?CTR5
+ ZERO? PRSO /FALSE
+ EQUAL? PRSA,V?TAKE \FALSE
+ EQUAL? PRSO,LRING,HRING /FALSE
+ IN? PRSO,GLOBAL-OBJECTS /FALSE
+ LOC PROTAGONIST >?TMP1
+ LOC PRSO
+ EQUAL? ?TMP1,STACK /FALSE
+?CTR5: CALL DO-FIRST,STR?300
+ RETURN 8
+?CCL3: EQUAL? PRSA,V?STAND,V?DISEMBARK \?CCL19
+ IN? LAFOND,LAFS-BED \?CCL19
+ PRINTI "Lafond slams you back into the feather mattress"
+ PRINT PCR
+ RTRUE
+?CCL19: EQUAL? PRSA,V?BOARD,V?ENTER \?CCL23
+ LOC PROTAGONIST
+ EQUAL? STACK,LAFS-ROOM \?CCL23
+ IN? LAFOND,HERE \?CCL23
+ PRINTD LAFOND
+ PRINTR " stops you. ""I'll tell you when to do that."""
+?CCL23: EQUAL? PRSA,V?EXAMINE \?CCL28
+ EQUAL? HERE,CABIN \?CCL36
+ SET 'THIS-BED,CABIN-BED
+ JUMP ?CND34
+?CCL36: EQUAL? HERE,CAPT-QUARTERS /?CCL38
+ SET 'THIS-BED,0
+ JUMP ?CND34
+?CCL38: SET 'THIS-BED,CAPT-BED
+?CND34: ZERO? THIS-BED /?CCL31
+ FIRST? THIS-BED /?CCL31
+ PRINTI "Someone appears to have tumbled out of it in a hurry"
+ JUMP ?CND29
+?CCL31: EQUAL? HERE,LAFS-ROOM \?CCL40
+ PRINTI "You gaze at the purple and gold bed, fearing it is your destiny"
+ JUMP ?CND29
+?CCL40: EQUAL? HERE,CELL-1 \FALSE
+ PRINTI "It is an uncomfortable canvas cot, old and torn"
+?CND29: PRINT PCR
+ RTRUE
+?CCL28: EQUAL? PRSA,V?LOOK-UNDER \?CCL44
+ CALL QUEUED?,I-COFFER
+ ZERO? STACK /?CCL47
+ PRINT YOU-SEE
+ CALL APRINT,COFFER
+ PRINTC 32
+ FCLEAR COFFER,NDESCBIT
+ FSET COFFER,TOUCHBIT
+ JUMP ?CND45
+?CCL47: PRINT THERES-NOTHING
+?CND45: PRINTI "under"
+ CALL TRPRINT,PRSO
+ RSTACK
+?CCL44: EQUAL? PRSA,V?PUSH,V?MOVE \?CCL49
+ PRINTI "It is nailed to the floor"
+ PRINT PCR
+ RTRUE
+?CCL49: EQUAL? PRSA,V?PUT-UNDER \FALSE
+ EQUAL? HERE,CAPT-QUARTERS,CABIN \FALSE
+ EQUAL? PRSO,ME \?CCL56
+ CALL PERFORM,V?CRAWL-UNDER,CABIN-BED
+ RTRUE
+?CCL56: EQUAL? PRSO,RETICULE /FALSE
+ PRINTI "You do so, but the ship rolls to one side and"
+ CALL TPRINT-PRSO
+ PRINTI " rolls out"
+ PRINT PCR
+ MOVE PRSO,HERE
+ RTRUE
+
+
+ .FUNCT CURTAIN-F
+ EQUAL? PRSA,V?FIDDLE,V?MOVE,V?OPEN /?CTR2
+ EQUAL? PRSA,V?LOOK-BEHIND \?CCL3
+?CTR2: PRINT PULL-FABRIC
+ PRINTI " Behind it,"
+ CALL APRINT,CUPBOARD-OBJECT
+ PRINTR " mostly blocks the doorway."
+?CCL3: EQUAL? PRSA,V?CLOSE \?CCL7
+ PRINT ALREADY-IS
+ RTRUE
+?CCL7: EQUAL? PRSA,V?WALK-TO,V?WALK \FALSE
+ PRINTI "Please indicate a "
+ PRINTD INTDIR
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT WINDOW-F
+ EQUAL? PRSA,V?OPEN \?CCL3
+ FSET? WINDOW,OPENBIT /?CCL6
+ EQUAL? HERE,CABIN \?CCL9
+ PRINTI "This isn't the opening kind of porthole"
+ PRINT PCR
+ RTRUE
+?CCL9: EQUAL? HERE,CAPT-QUARTERS \?CCL11
+ PRINTI "These windows don't open"
+ PRINT PCR
+ RTRUE
+?CCL11: EQUAL? HERE,LIBRARY,BY-HOUSE \?CCL13
+ CALL OPEN-CLOSE,LIB-WINDOW
+ RSTACK
+?CCL13: PRINTI "That's not necessary"
+ PRINT PCR
+ RTRUE
+?CCL6: PRINTI "It's already open"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?CLOSE \?CCL15
+ EQUAL? HERE,LIBRARY,BY-HOUSE \?CCL18
+ CALL OPEN-CLOSE,LIB-WINDOW
+ RSTACK
+?CCL18: PRINT BEAUTIFUL-NIGHT
+ RTRUE
+?CCL15: EQUAL? PRSA,V?EXAMINE \?CCL20
+ EQUAL? HERE,CABIN \?CCL23
+ PRINTI "Through the porthole you see the bow of the pirate ship bucking in the high seas, lit by the fires burning on deck. It is called the """
+ PRINTD SHIP
+ PRINTI "."" Odd, that was your mother's name"
+ PRINT PCR
+ RTRUE
+?CCL23: EQUAL? HERE,CAPT-QUARTERS \?CCL25
+ CALL PERFORM,V?EXAMINE,LEDGE
+ RTRUE
+?CCL25: EQUAL? HERE,LIBRARY,BY-HOUSE \FALSE
+ PRINT YOU-SEE
+ PRINT DARKNESS
+ CALL TRPRINT,WINDOW
+ RSTACK
+?CCL20: EQUAL? PRSA,V?LOOK-INSIDE \?CCL29
+ EQUAL? CABIN,HERE \?CCL32
+ CALL PERFORM,V?EXAMINE,WINDOW
+ RTRUE
+?CCL32: EQUAL? HERE,CAPT-QUARTERS \?CCL34
+ ZERO? LADDER-HANGING /?CCL37
+ CALL QUEUE,I-SEE-LADDER,2
+ PRINTI "A rope "
+ PRINTD LADDER
+ PRINTI " twists by in the breeze, and the"
+ JUMP ?CND35
+?CCL37: PRINTI "The"
+?CND35: PRINTI " moon beckons across the lagoon to "
+ PRINTD ISLAND
+ ZERO? SKIFF-TIED /?CND38
+ PRINTI ". Moored to the stern is"
+ CALL APRINT,SKIFF
+?CND38: PRINTC 46
+ CALL I-LOOK-SEA,FALSE-VALUE
+ CRLF
+ RTRUE
+?CCL34: EQUAL? HERE,LIBRARY,BY-HOUSE \?CCL41
+ CALL PERFORM,V?EXAMINE,LIB-WINDOW
+ RTRUE
+?CCL41: EQUAL? HERE,BEDROOM \?CCL43
+ PRINTI "It has a lovely view of grey-green palm trees extending for miles"
+ PRINT PCR
+ RTRUE
+?CCL43: PRINT YOU-SEE
+ PRINT DARKNESS
+ CALL TRPRINT,WINDOW
+ RSTACK
+?CCL29: EQUAL? PRSA,V?MUNG \?CCL45
+ ZERO? PRSI \?CCL48
+ CALL PROPOSE
+ RSTACK
+?CCL48: EQUAL? PRSI,COFFER \?CCL50
+ CALL PERFORM,V?PUT-THROUGH,COFFER,WINDOW
+ RTRUE
+?CCL50: EQUAL? HERE,CAPT-QUARTERS \?CCL52
+ PRINT YOULL-HAVE-TO
+ PRINTI "find something else to break"
+ CALL TPRINT,WINDOW
+ PRINTI " with"
+ PRINT PCR
+ RTRUE
+?CCL52: PRINTR "Then again, a lady would just open it."
+?CCL45: EQUAL? PRSA,V?KILL \?CCL54
+ ZERO? PRSI \?CCL57
+ PRINTI "You haven't the strength to damage"
+ CALL TRPRINT,WINDOW
+ RSTACK
+?CCL57: CALL PERFORM,V?MUNG,PRSO,PRSI
+ RTRUE
+?CCL54: EQUAL? PRSA,V?PUT,V?PUT-THROUGH,V?THROW \?CCL59
+ EQUAL? HERE,CABIN \?CCL62
+ EQUAL? PRSA,V?THROW \?CCL65
+ CALL V-THROW
+ RSTACK
+?CCL65: PRINTI "It doesn't fit through the porthole"
+ PRINT PCR
+ RTRUE
+?CCL62: EQUAL? PRSO,COFFER \?CCL67
+ IN? HERO,HERE \?CND68
+ PRINTR "Jamison stops you, ""Nay, lady, glass is expensive."""
+?CND68: REMOVE PRSO
+ FSET LEDGE,MUNGBIT
+ INC 'SCORE
+ PRINTI "You hurl"
+ CALL TPRINT,COFFER
+ PRINTI " through"
+ CALL TPRINT,WINDOW
+ PRINTI ", sending it and a shower of glass into the sea. "
+ CALL CTPRINT,LEDGE
+ PRINTI " now looks deep enough to sit upon"
+ PRINT PCR
+ RTRUE
+?CCL67: FSET? LEDGE,MUNGBIT /?CCL71
+ EQUAL? HERE,CAPT-QUARTERS \?CCL71
+ CALL CTPRINT,WINDOW
+ PRINTI " isn't open"
+ PRINT PCR
+ RTRUE
+?CCL71: EQUAL? PRSO,HANDS \?CCL75
+ PRINT HUH
+ RTRUE
+?CCL75: CALL PUT-OBJ-THRU-WINDOW
+ RSTACK
+?CCL59: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?ENTER /?CCL77
+ EQUAL? PRSA,V?BOARD,V?LEAP-OFF \FALSE
+?CCL77: EQUAL? HERE,CABIN \?CCL82
+ CALL IMPOSSIBLES
+ RSTACK
+?CCL82: LOC PROTAGONIST
+ EQUAL? STACK,CAPT-QUARTERS \?CCL84
+ CALL PERFORM-PRSA,LEDGE
+ RTRUE
+?CCL84: EQUAL? HERE,LIBRARY \?CCL86
+ CALL DO-WALK,P?EAST
+ RSTACK
+?CCL86: EQUAL? HERE,BY-HOUSE \?CCL88
+ CALL DO-WALK,P?WEST
+ RSTACK
+?CCL88: EQUAL? HERE,BEDROOM \?CCL90
+ CALL DO-WALK,P?DOWN
+ RSTACK
+?CCL90: CALL WASTES
+ RSTACK
+
+
+ .FUNCT PUT-OBJ-THRU-WINDOW
+ EQUAL? HERE,CAPT-QUARTERS \?CCL3
+ FSET? LEDGE,MUNGBIT /?CCL3
+ PRINTI "The window isn't open"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSO,RETICULE /FALSE
+ CALL PRONOUN
+ PRINTI " fall"
+ FSET? PRSO,PLURALBIT /?CND8
+ PRINTC 115
+?CND8: EQUAL? HERE,CAPT-QUARTERS \?CCL12
+ REMOVE PRSO
+ PRINTI " into the seas below"
+ JUMP ?CND10
+?CCL12: EQUAL? HERE,BEDROOM \?CCL14
+ MOVE PRSO,CLEARING
+ PRINTI " onto the forest floor"
+ JUMP ?CND10
+?CCL14: EQUAL? HERE,LIBRARY,LAFS-ROOM \?CCL16
+ MOVE PRSO,BY-HOUSE
+ PRINTI " into the darkness of the hedge"
+ JUMP ?CND10
+?CCL16: EQUAL? HERE,BY-HOUSE \?CND10
+ MOVE PRSO,LIBRARY
+ PRINTI " with a thunk over"
+ PRINT THE-EDGE
+ CALL TPRINT,LIB-WINDOW
+?CND10: PRINT PCR
+ RTRUE
+
+
+ .FUNCT OPEN-CLOSE,OBJ,OPETELL=0,CLOSETELL=0
+ EQUAL? PRSA,V?MOVE,V?RAISE,V?OPEN \?CCL3
+ FSET? OBJ,OPENBIT \?CCL6
+ FSET? OBJ,PLURALBIT \?CCL9
+ PRINTI "They are"
+ JUMP ?CND7
+?CCL9: PRINTI "It is"
+?CND7: PRINTR " already open."
+?CCL6: FSET OBJ,OPENBIT
+ FSET OBJ,TOUCHBIT
+ ZERO? OPETELL /?CCL12
+ PRINT OPETELL
+ PRINTR "."
+?CCL12: EQUAL? OBJ,CUPBOARD-OBJECT \?CCL14
+ EQUAL? HERE,SLEEPING-CUPBOARD /?CCL14
+ PRINTI "Opened. "
+ CALL PERFORM,V?LOOK-INSIDE,CUPBOARD-OBJECT
+ RTRUE
+?CCL14: FIRST? OBJ \?CTR17
+ FSET? OBJ,TRANSBIT /?CTR17
+ FSET? OBJ,DOORBIT \?CCL18
+?CTR17: PRINTR "Opened."
+?CCL18: PRINTI "Opening"
+ CALL TPRINT,OBJ
+ PRINTI " reveals"
+ CALL DESCRIBE-NOTHING
+ ZERO? STACK \TRUE
+ PRINTC 46
+ RTRUE
+?CCL3: EQUAL? PRSA,V?CLOSE \FALSE
+ FSET? OBJ,OPENBIT /?CCL28
+ FSET? OBJ,PLURALBIT \?CCL31
+ PRINTI "They are"
+ JUMP ?CND29
+?CCL31: PRINTI "It is"
+?CND29: PRINTI " already closed"
+ PRINT PCR
+ RTRUE
+?CCL28: FCLEAR OBJ,OPENBIT
+ EQUAL? OBJ,MANACLES \?CND32
+ FSET OBJ,LOCKEDBIT
+?CND32: ZERO? CLOSETELL /?CCL36
+ PRINT CLOSETELL
+ PRINTR "."
+?CCL36: PRINTI "Shut."
+ EQUAL? PRSO,CUPBOARD-OBJECT \?CND34
+ EQUAL? SLEEPING-CUPBOARD,HERE \?CND34
+ PRINTR " You imagine Jamison being lulled to sleep by the waves lapping against the ship."
+?CND34: CRLF
+ RTRUE
+
+
+ .FUNCT TREE-F
+ EQUAL? PRSA,V?CLIMB \FALSE
+ PRINTR "The trees are all unclimbable."
+
+
+ .FUNCT TOUCHING?,THING
+ EQUAL? PRSO,THING \?CCL3
+ EQUAL? PRSA,V?ALARM,V?BITE,V?BOARD /TRUE
+ EQUAL? PRSA,V?CLEAN,V?CLIMB-OVER,V?CRAWL-UNDER /TRUE
+ EQUAL? PRSA,V?CLIMB,V?CLIMB-DOWN,V?CLIMB-ON /TRUE
+ EQUAL? PRSA,V?CUT,V?DANCE,V?EMBRACE /TRUE
+ EQUAL? PRSA,V?ENTER,V?FIDDLE /TRUE
+ EQUAL? PRSA,V?KICK,V?KILL,V?KISS /TRUE
+ EQUAL? PRSA,V?KNOCK,V?LOOK-UNDER,V?LOOK-INSIDE /TRUE
+ EQUAL? PRSA,V?MOVE,V?MUNG,V?WRING /TRUE
+ EQUAL? PRSA,V?ON,V?OFF,V?OPEN /TRUE
+ EQUAL? PRSA,V?CLOSE /TRUE
+ EQUAL? PRSA,V?PICK,V?PUSH,V?RAISE /TRUE
+ EQUAL? PRSA,V?SET,V?STAND-ON,V?SWIM /TRUE
+ EQUAL? PRSA,V?TIE /TRUE
+ EQUAL? PRSA,V?THROW,V?RAPE /TRUE
+ EQUAL? PRSA,V?TAKE,V?TOUCH,V?SHAKE /TRUE
+ EQUAL? PRSA,V?UNLOCK,V?LOCK,V?UNTIE /TRUE
+?CCL3: EQUAL? PRSI,THING \FALSE
+ EQUAL? PRSA,V?PUT-ON,V?PUT,V?GIVE /TRUE
+ EQUAL? PRSA,V?PUT-UNDER /TRUE
+ RFALSE
+
+
+ .FUNCT CANT-SEE,OBJ,WRD=0
+ EQUAL? PRSO,OBJ \?CCL3
+ PUSH 0
+ JUMP ?CND1
+?CCL3: PUSH 1
+?CND1: GET P-NAMW,STACK >WRD
+ ZERO? WRD \?CND4
+ EQUAL? PRSO,OBJ \?CCL8
+ PUSH 0
+ JUMP ?CND6
+?CCL8: PUSH 1
+?CND6: GET P-ADJW,STACK >WRD
+?CND4: SET 'P-WON,FALSE-VALUE
+ PRINT YOU-CANT
+ PRINTI "see"
+ ZERO? OBJ /?CND9
+ CALL NAME?,WRD
+ ZERO? STACK \?CND9
+ PRINTI " any"
+?CND9: EQUAL? OBJ,PRSI \?CCL15
+ CALL PRSI-PRINT
+ JUMP ?CND13
+?CCL15: CALL PRSO-PRINT
+?CND13: PRINTI " here."
+ CRLF
+ CALL STOP
+ RSTACK
+
+
+ .FUNCT CANT-VERB-A-PRSO,STRING
+ PRINT YOU-CANT
+ PRINT STRING
+ CALL APRINT,PRSO
+ PRINTR "!"
+
+
+ .FUNCT TELL-HIT-HEAD
+ PRINTI "You knock your brow against"
+ CALL TPRINT-PRSO
+ PRINTR " as you attempt this."
+
+
+ .FUNCT NOUN-USED,TEST-NOUN,OBJ
+ EQUAL? PRSO,OBJ \?CCL3
+ GET P-NAMW,0
+ EQUAL? STACK,TEST-NOUN /TRUE
+?CCL3: EQUAL? PRSI,OBJ \FALSE
+ GET P-NAMW,1
+ EQUAL? STACK,TEST-NOUN /TRUE
+ RFALSE
+
+
+ .FUNCT ADJ-USED,TEST-ADJ,?TMP1
+ GET P-ADJW,0 >?TMP1
+ GET P-ADJW,1
+ EQUAL? TEST-ADJ,?TMP1,STACK /TRUE
+ RFALSE
+
+
+ .FUNCT OFF-VEHICLE?,OBJ
+ EQUAL? OBJ,LEDGE /TRUE
+ EQUAL? OBJ,BENCH /TRUE
+ RFALSE
+
+
+ .FUNCT TELL-OPEN/CLOSED,OBJ,AN?=0
+ FSET? OBJ,OPENBIT \?CCL3
+ ZERO? AN? /?CND4
+ PRINTC 110
+?CND4: PRINTI " open"
+ RTRUE
+?CCL3: PRINTI " closed"
+ RTRUE
+
+
+ .FUNCT WHEE
+ SET 'AWAITING-REPLY,2
+ CALL QUEUE,I-REPLY,2
+ PRINTR "Wasn't that fun?"
+
+
+ .FUNCT IN-PACKAGE
+ PRINTI " that came in your game package.
+"
+ RTRUE
+
+
+ .FUNCT CANT-REACH,OBJ
+ PRINT YOU-CANT
+ PRINTI "reach"
+ CALL TPRINT,OBJ
+ IN? PROTAGONIST,HERE /?CND1
+ PRINTI " from"
+ LOC PROTAGONIST
+ CALL TPRINT,STACK
+?CND1: PRINT PCR
+ RTRUE
+
+
+ .FUNCT DO-FIRST,STRING,OBJ=0
+ PRINT YOULL-HAVE-TO
+ PRINT STRING
+ ZERO? OBJ /?CND1
+ CALL TPRINT,OBJ
+?CND1: PRINTR " first."
+
+
+ .FUNCT NOT-IN
+ PRINTI "But"
+ CALL TPRINT-PRSO
+ PRINTI " isn't "
+ FSET? PRSI,ACTORBIT \?CCL3
+ PRINTI "being held by"
+ JUMP ?CND1
+?CCL3: FSET? PRSI,SURFACEBIT \?CCL5
+ PRINTI "on"
+ JUMP ?CND1
+?CCL5: PRINTI "in"
+?CND1: CALL TRPRINT,PRSI
+ RSTACK
+
+
+ .FUNCT SORE,STRING
+ PRINTI "You begin to get a sore "
+ PRINT STRING
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT CANT-USE-THAT-WAY,STRING
+ PRINTC 91
+ PRINT YOU-CANT
+ PRINTI "use "
+ PRINT STRING
+ PRINTR " that way.]"
+
+
+ .FUNCT RECOGNIZE
+ SET 'P-WON,FALSE-VALUE
+ PRINTI "[That sentence isn't one I recognize.]
+"
+ RTRUE
+
+
+ .FUNCT PRONOUN
+ EQUAL? PRSO,ME \?CCL3
+ PRINTI "You"
+ RTRUE
+?CCL3: FSET? PRSO,PLURALBIT \?CCL5
+ PRINTI "They"
+ RTRUE
+?CCL5: EQUAL? PRSO,LUCY \?CCL7
+ PRINTI "She"
+ RTRUE
+?CCL7: FSET? PRSO,ACTORBIT \?CCL9
+ PRINTI "He"
+ RTRUE
+?CCL9: PRINTI "It"
+ RTRUE
+
+
+ .FUNCT REFERRING,HIM-HER=0
+ PRINTI "I don't see wh"
+ ZERO? HIM-HER /?CCL3
+ PRINTC 111
+ JUMP ?CND1
+?CCL3: PRINTI "at"
+?CND1: PRINTR " you're referring to."
+
+
+ .FUNCT NO-ONE-HERE,STRING
+ PRINTI "There's no one here to "
+ PRINT STRING
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT SEE-MANUAL,STRING
+ PRINTI "[See the instruction manual section entitled ""Communicating With Infocom's Interactive Fiction."" to properly "
+ PRINT STRING
+ PRINTR "]"
+
+
+ .FUNCT UNIMPORTANT-THING
+ PRINTR "You have no need for that, milady."
+
+
+ .FUNCT PROPOSE
+ SET 'AWAITING-REPLY,1
+ CALL QUEUE,I-REPLY,2
+ PRINTR "And how do you propose to do that?"
+
+
+ .FUNCT STOP-QUEUES
+ CALL RUNNING?,I-HDANCE
+ ZERO? STACK /?CCL3
+ SET 'PARTNER,FALSE-VALUE
+ CALL DEQUEUE,I-HDANCE
+ RSTACK
+?CCL3: CALL RUNNING?,I-HFOLLY
+ ZERO? STACK /FALSE
+ CALL DEQUEUE,I-HFOLLY
+ RSTACK
+
+
+ .FUNCT REPERTOIRE,ACT
+ PRINT ACT
+ PRINTR " is not in the repertoire of well-bred young ladies."
+
+
+ .FUNCT MAN-IS-DOWN
+ PRINT THOROUGHLY-UNLADYLIKE
+ PRINTR "hit a man when he's down!"
+
+
+ .FUNCT NO-TIME-FOR,STR
+ PRINTI "This is no time to "
+ PRINT STR
+ PRINTI "!
+"
+ RTRUE
+
+
+ .FUNCT MORE-SPECIFIC
+ PRINT YOULL-HAVE-TO
+ PRINTR "be more specific."
+
+
+ .FUNCT CANT-HURT,STR
+ PRINTI "Your "
+ PRINT STR
+ PRINTI " could not hurt"
+ CALL TRPRINT,CRULLEY
+ RSTACK
+
+
+ .FUNCT SAILOR-DEATH
+ PRINT INDENT
+ PRINTI "A sailor notices "
+ FSET? PANTS,WORNBIT \?CCL3
+ PRINTI "the roundness of your body through the lace of your chemise"
+ JUMP ?CND1
+?CCL3: PRINTI "the ""swish"" of your petticoats"
+?CND1: PRINTI ". ""A woman,"" he gasps, ""free, aboard this ship!"""
+ CRLF
+ CALL JIGS-UP,STR?301
+ RSTACK
+
+
+ .FUNCT LADY-MUST,STRING
+ PRINTI "A lady must obtain her father's permission before "
+ PRINT STRING
+ PRINTR " anyone."
+
+
+ .FUNCT FIGURE-IT-OUT
+ PRINT YOULL-HAVE-TO
+ PRINTI "figure that out "
+ PRINTD ME
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT KICKED-OUT
+ PRINT INDENT
+ EQUAL? HERE,HALL-E \?CCL3
+ PRINTI "A black-garbed "
+ PRINTD BUTLER
+ JUMP ?CND1
+?CCL3: CALL CTPRINT,BUTLER
+?CND1: PRINTI " marches up to you, ""It was made clear at the whippings that villagers are not admitted in this house."" He grasps you by the scruff of the neck and propels you headfirst out the front door"
+ PRINT PCR
+ CRLF
+ CALL GOTO,MAIN-ENTRANCE
+ RSTACK
+
+
+ .FUNCT NICK-RUNS-OFF
+ CALL RUNNING?,I-CCLIMBS-UP
+ ZERO? STACK /?CND1
+ EQUAL? CRULLEY-CTR,10 \?CND1
+ CALL QUEUE,I-CCLIMBS-UP,2
+?CND1: MOVE HERO,GALLERY
+ MOVE LAFOND,GALLERY
+ MOVE DAD,GALLERY
+ MOVE LUCY,GALLERY
+ SET 'HERO-CTR,1
+ CALL QUEUE,I-DUEL,-1
+ FSET RAPIER,NDESCBIT
+ FCLEAR BALLROOM,EVERYBIT
+ PRINT INDENT
+ PRINTI "Nick kisses you briefly, a butterfly touching your lips,"
+ CALL META-LOC,RAPIER
+ EQUAL? STACK,HERE,PASSAGE-4,CELL-4 \?CND5
+ MOVE RAPIER,HERO
+ PRINTI " then seizes his rapier"
+?CND5: PRINTI " and runs off to the north. Cookie calls a breathless ""Hullo, Cap'n"" to him as he races past"
+ PRINT PCR
+ RTRUE
+
+ .ENDI
diff --git a/globals.zil b/globals.zil
new file mode 100644
index 0000000..3e6c661
--- /dev/null
+++ b/globals.zil
@@ -0,0 +1,2275 @@
+"GLOBALS for
+ PLUNDERED HEARTS
+ (c) Copyright 1987 Infocom, Inc. All Rights Reserved."
+
+<DIRECTIONS ;"Do not change the order of the first 8 without consulting MARC!"
+ NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
+
+;<ADJ-SYNONYM LARGE LARGER HUGE HUGER BIG BIGGER GIANT GIGANTIC TREMENDOUS
+ MIGHTY MIGHTIER MASSIVE>
+
+;<ADJ-SYNONYM WIDE BROAD>
+
+;<ADJ-SYNONYM SMALL SMALLER TINY TINIER LITTLE PETITE TEENSY WEENSY>
+
+;<ADJ-SYNONYM MY MINE>
+
+<GLOBAL LIT T>
+
+;<GLOBAL RANK 0>
+
+<GLOBAL MOVES 0>
+
+<GLOBAL SCORE 0>
+
+<GLOBAL HERE:OBJECT FRONTISPIECE ;CABIN>
+
+;"INBIT = set on object/vehicle one gets into."
+<OBJECT GLOBAL-OBJECTS
+ (SYNONYM ZZMGCK) ;"No, this synonym doesn't need to exist... sigh"
+ (DESC "it")
+ (FLAGS INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT OPENBIT SEARCHBIT
+ TRANSBIT WEARBIT WORNBIT MUNGBIT ONBIT LIGHTBIT RLANDBIT
+ VEHBIT INDOORSBIT CONTBIT VOWELBIT LOCKEDBIT NDESCBIT DOORBIT
+ ACTORBIT ;BURNBIT INBIT FEMALEBIT EVERYBIT DEADBIT)>
+
+;<BIT-SYNONYM EVERYBIT ;RESCUEBIT ;TIEDBIT>
+
+<OBJECT LOCAL-GLOBALS
+ (IN GLOBAL-OBJECTS)
+ (DESC "it")
+ (SYNONYM ZZMGCK) ;"Yes, this synonym needs to exist... sigh"
+ ;(DESCFCN 0)
+ ;(GLOBAL GLOBAL-OBJECTS)
+ ;(FDESC "F")
+ ;(LDESC "F")
+ ;(SIZE 0)
+ ;(TEXT "")
+ ;(CAPACITY 0)
+ ;(THINGS <PSEUDO (ZZMGCK ZZMGCK ME-F)>)>
+
+<OBJECT ROOMS
+ (IN TO ROOMS)
+ (DESC "it")>
+
+<GLOBAL DIPPING-OARS
+"You dip the oars and pull them towards you. The ">
+
+<OBJECT INTDIR
+ (IN GLOBAL-OBJECTS)
+ (DESC "direction")
+ (SYNONYM DIRECT)
+ (ADJECTIVE NORTH SOUTH EAST WEST NW NE SW SE)
+ (ACTION INTDIR-F)>
+
+<ROUTINE INTDIR-F ()
+ <COND (<AND <VERB? ROW-DIR ROW ROW-TO>
+ <IN? ,PROTAGONIST ,SKIFF>>
+ <COND (<EQUAL? ,P-DIRECTION ,P?EAST>
+ <COND (<EQUAL? ,HERE ,BY-SHIP>
+ <TELL
+"That would take you past" T ,SHIP " into the open sea!" CR>
+ <RTRUE>)>
+ <SETG ROWING ,ROWEAST>
+ <TELL
+,DIPPING-OARS D ,SKIFF " plows through the lagoon.">
+ <COND (<EQUAL? ,HERE ,SHALLOWS>
+ <QUEUE I-CURRENT -1>
+ <SETG ROWING 1> ;"Kludge for SHALLOWS/EAST"
+ <MOVE ,SKIFF ,LAGOON>
+ <CRLF>
+ <GOTO ,SKIFF>)
+ (<EQUAL? <+ ,SKIFF-LOC ,ROWING>
+ ,SHIP-LOC <+ ,SHIP-LOC 1>>
+ <COND (<FSET? ,SHIP ,MUNGBIT>
+ <JIGS-UP
+" Suddenly, an offshore current pulls you past the reefs into the open sea.
+You haven't the strength to row back.">)
+ (T
+ <TELL
+" You glide into the shadow of" TR ,SHIP CR>
+ <SETG SKIFF-LOC ,SHIP-LOC>
+ <SETG ROWING 0>
+ <MOVE ,SKIFF ,BY-SHIP>
+ <GOTO ,SKIFF>)>)
+ (T
+ <CRLF>)>)
+ (<EQUAL? ,P-DIRECTION ,P?WEST>
+ <SETG ROWING ,ROWWEST>
+ <COND (<EQUAL? ,HERE ,SHALLOWS>
+ <TELL
+"You can row" T ,SKIFF " no farther west" ,PCR>)
+ (<L? <+ ,SKIFF-LOC ,ROWING> 2>
+ <TELL ,DIPPING-OARS D ,SKIFF
+" noses into the sand of the shallows. You get out" ,PCR CR>
+ <DEQUEUE I-CURRENT>
+ <SETG SKIFF-LOC 1>
+ <MOVE ,SKIFF ,SHALLOWS>
+ <GOTO ,SHALLOWS>)
+ (T
+ <TELL
+,DIPPING-OARS D ,SKIFF " shoots over the waves" ,PCR>
+ <COND (<EQUAL? ,HERE ,BY-SHIP>
+ <MOVE ,SKIFF ,LAGOON>
+ <GOTO ,SKIFF>)>)>
+ <RTRUE>)
+ (<OR <EQUAL? ,P-DIRECTION ,P?NORTH ,P?NW ,P?NE>
+ <EQUAL? ,P-DIRECTION ,P?SOUTH ,P?SW ,P?SE>>
+ <TELL
+"You can barely row back and forth, much less side to side!" CR>)>)>>
+
+;<ROUTINE ;INTDIR-F ()
+ <COND (<AND <VERB? ROW-DIR ROW>
+ <IN? ,PROTAGONIST ,SKIFF>>
+ <COND (<EQUAL? ,HERE ,BEACH>
+ <DO-FIRST "launch" ,SKIFF>)
+ (<EQUAL? ,P-DIRECTION ,P?EAST>
+ <COND (<EQUAL? ,HERE ,BY-SHIP>
+ <TELL
+"That would take you past" T ,SHIP " into the open sea!" CR>
+ <RTRUE>)>
+ <SETG ROWING ,ROWEAST>
+ <TELL
+,DIPPING-OARS D ,SKIFF " plows through the lagoon.">
+ <COND (<EQUAL? ,HERE ,SHALLOWS>
+ <QUEUE I-CURRENT 2>
+ <MOVE ,SKIFF ,LAGOON>
+ <SETG ROWING 1>
+ <CRLF> <CRLF>
+ <GOTO ,SKIFF>)
+ (<EQUAL? <+ ,SKIFF-LOC ,ROWING> ,SHIP-LOC>
+ <COND (<FSET? ,SHIP ,MUNGBIT>
+ <JIGS-UP
+"With surprising force the current pulls you past the
+reefs into the open sea. You haven't the strength to row back.">
+ <RTRUE>)>
+ <TELL
+" You glide into the shadow of" TR ,SHIP CR>
+ <MOVE ,SKIFF ,BY-SHIP>
+ <GOTO ,SKIFF>)
+ (T
+ <RTRUE>)>)
+ (<EQUAL? ,P-DIRECTION ,P?WEST>
+ <SETG ROWING ,ROWWEST>
+ <TELL
+,DIPPING-OARS D ,SKIFF " shoots over the lagoon">
+ <COND (<OR <EQUAL? ,HERE ,SHALLOWS>
+ <L? <+ ,SKIFF-LOC ,ROWING> 2>>
+ <TELL
+", ramming into the sand of the beach. You stand up" ,PCR CR>
+ <DEQUEUE I-CURRENT>
+ <SETG ROWING 0>
+ <MOVE ,SKIFF ,BEACH>
+ <GOTO ,BEACH>)
+ (T
+ <TELL ,PCR CR>)>
+ <RTRUE>)
+ (<OR <EQUAL? ,P-DIRECTION ,P?NORTH ,P?NW ,P?NE>
+ <EQUAL? ,P-DIRECTION ,P?SOUTH ,P?SW ,P?SE>>
+ <TELL
+"You can barely row back and forth, much less side to side!" CR>)>)>>
+
+<OBJECT INTNUM
+ (IN GLOBAL-OBJECTS)
+ (DESC "number")
+ (SYNONYM NUMBER)
+ ;(ADJECTIVE WIFE HUSBAND \#) ;"for things like WIFE # 375"
+ ;(ACTION INTNUM-F)>
+
+
+<OBJECT PSEUDO-OBJECT
+ (IN LOCAL-GLOBALS)
+ (DESC "pseudo") ;"DESC must be 6 characters long! --pdl 3/4/86"
+ (ACTION ME-F)>
+
+<OBJECT IT
+ (IN GLOBAL-OBJECTS)
+ (SYNONYM IT THEM)
+ (DESC "it")
+ (FLAGS VOWELBIT NARTICLEBIT TOUCHBIT)>
+
+<OBJECT HIM
+ (IN GLOBAL-OBJECTS)
+ (SYNONYM HIM HIMSELF)
+ (DESC "him")
+ (FLAGS NARTICLEBIT TOUCHBIT)>
+
+<OBJECT HER
+ (IN GLOBAL-OBJECTS)
+ (SYNONYM HER HERSELF)
+ (DESC "her")
+ (FLAGS NARTICLEBIT TOUCHBIT)>
+
+;<OBJECT EACH-OTHER
+ (IN GLOBAL-OBJECTS)
+ (DESC "it")
+ (SYNONYM OTHER ITSELF)
+ (ADJECTIVE EACH)
+ (ACTION EACH-OTHER-F)>
+
+;<ROUTINE EACH-OTHER-F ()
+ <COND (<PRSI? ,EACH-OTHER>
+ <PERFORM-PRSA ,PRSO ,PRSO>
+ <RTRUE>)
+ (<NOT <NOUN-USED ,W?ITSELF ,EACH-OTHER>>
+ <SETG P-WON <>>
+ <COND (<ADJ-USED ,A?EACH>
+ <CANT-USE ,A?EACH T>)
+ (T
+ <CANT-USE ,W?OTHER T>)>
+ <RTRUE>)>>
+
+<OBJECT MAN
+ (IN GLOBAL-OBJECTS)
+ (DESC "man")
+ (SYNONYM MAN MEN YOU SAILOR)
+ (ADJECTIVE SIR BEWIGGED SIRRAH GENTLEMAN)
+ ;(FLAGS ACTORBIT)
+ (ACTION MAN-F)>
+
+<ROUTINE MAN-F ("AUX" PERSON)
+ <COND ;(<VERB? FOLLOW> ;"for YOUNG WOMAN"
+ <COND (<EQUAL? ,FOLLOW-FLAG 4>
+ <TELL ,DONT-WANT-TO>)
+ (<EQUAL? ,FOLLOW-FLAG 5>
+ <DO-WALK ,P?NORTH>)
+ (<EQUAL? ,FOLLOW-FLAG 6>
+ <DO-WALK ,P?EAST>)
+ (T
+ <V-WALK-AROUND>)>)
+ (<AND <PRSO? ,ME>
+ <VERB? TAKE-WITH>>
+ <RECOGNIZE>)
+ (<AND <NOUN-USED ,W?SAILOR ,MAN>
+ <VERB? HELLO>>
+ <COND (<GLOBAL-IN? ,CREW ,HERE>
+ <PERFORM ,V?HELLO ,CREW>
+ <RTRUE>)
+ (T
+ <TELL "Nothing happens here." CR>)>)
+ (<AND <EQUAL? <GET ,P-NAMW 0> ,W?MAN> ;"MAN is the PRSO"
+ <PRSO? ,MAN> ;"in case PRSI is also MAN or WOMAN">
+ <COND (<ADJ-USED ,A?BEWIGGED>
+ <PERFORM-PRSA ,LAFOND ,PRSI>)
+ (<AND <NOUN-USED ,W?MEN ,MAN>
+ <NOT <EQUAL? ,HERE ,BALLROOM
+ ,ORCHESTRA ,SUPPER-ROOM>>>
+ <MORE-SPECIFIC>)
+ (<SET PERSON <FIND-MAN>>
+ <PERFORM-PRSA .PERSON ,PRSI>
+ <RTRUE>)
+ (T
+ <CANT-SEE ,MAN>)>)
+ (<AND <EQUAL? <GET ,P-NAMW 1> ,W?MAN> ;"MAN is the PRSI"
+ <PRSI? ,MAN> ;"in case PRSO is also MAN or WOMAN">
+ <COND (<ADJ-USED ,A?BEWIGGED>
+ <PERFORM-PRSA ,PRSO ,LAFOND>)
+ (<AND <NOUN-USED ,W?MEN ,MAN>
+ <NOT <EQUAL? ,HERE ,BALLROOM
+ ,ORCHESTRA ,SUPPER-ROOM>>>
+ <MORE-SPECIFIC>)
+ (<SET PERSON <FIND-MAN>>
+ <PERFORM-PRSA ,PRSO .PERSON>
+ <RTRUE>)
+ (T
+ <CANT-SEE ,MAN>)>)>>
+
+<ROUTINE FIND-MAN ()
+ <COND (<IN? ,HERO ,HERE>
+ <RETURN ,HERO>)
+ (<IN? ,LAFOND ,HERE>
+ <RETURN ,LAFOND>)
+ (<IN? ,DAD ,HERE>
+ <RETURN ,DAD>)
+ (<IN? ,CRULLEY ,HERE>
+ <RETURN ,CRULLEY>)
+ (<IN? ,COOKIE ,HERE>
+ <RETURN ,COOKIE>)
+ (<IN? ,BUTLER ,HERE>
+ <RETURN ,BUTLER>)
+ (<GLOBAL-IN? ,DANCERS ,HERE>
+ <RETURN ,DANCERS>)
+ (<GLOBAL-IN? ,CREW ,HERE>
+ <RETURN ,CREW>)
+ (<IN? ,CROC ,HERE>
+ <RETURN ,CROC>)
+ (T
+ <RFALSE>)>>
+
+
+<OBJECT NOT-HERE-OBJECT
+ (DESC "it")
+ (FLAGS NARTICLEBIT)
+ (ACTION NOT-HERE-OBJECT-F)>
+
+<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ (X <>))
+ <COND (<AND <PRSO? ,NOT-HERE-OBJECT>
+ <PRSI? ,NOT-HERE-OBJECT>>
+ <TELL "Those things aren't here!" CR>
+ <RTRUE>)
+ (<AND <EQUAL? ,P-XNAM ,W?MOUTH ,W?EYES>
+ <EQUAL? ,P-XADJN ,W?LAFOND <>>>
+ <COND (<PRSO? ,NOT-HERE-OBJECT>
+ <SETG PRSO ,LAFOND>)
+ (T
+ <SETG PRSI ,LAFOND>)>
+ <RFALSE>)
+ (<AND <EQUAL? ,P-XADJN ,W?POWDER>
+ <HELD? ,HORN>>
+ <COND (<PRSO? ,NOT-HERE-OBJECT>
+ <SETG PRSO ,POWDER>)
+ (T
+ <SETG PRSI ,POWDER>)>)
+ ;(<AND <EQUAL? ,P-XNAM ,W?HAND ,W?HANDS>
+ <EQUAL? ,P-XADJN ,W?MITRE ,W?KING\'S>
+ <VERB? SHAKE TAKE>>
+ <PERFORM ,V?SHAKE-WITH ,HANDS ,MITRE>
+ <RTRUE>)
+ (<AND <OR <EQUAL? ,P-XNAM ,W?HANDS ,W?HAND>
+ <EQUAL? ,P-XNAM ,W?FINGER ,W?EYE ,W?EYES>
+ <EQUAL? ,P-XNAM ,W?HEAD ,W?JAMISON>
+ <EQUAL? ,P-XNAM ,W?LIP ,W?LIPS ,W?MOUTH>>
+ <OR <EQUAL? ,P-XADJN ,W?NICK ,W?NICHOLAS ,W?CROC\'S>
+ <EQUAL? ,P-XADJN ,W?DAD ,W?FATHER ,W?PAPA>
+ <EQUAL? ,P-XADJN ,W?WOMAN ,W?LUCY>
+ <EQUAL? ,P-XADJN ,W?JEAN ,W?LAFOND>>>
+ <TELL
+"[Sadly, we haven't the space to handle everything. Try to
+refer only to characters in the story, not individual body parts or
+possessions. For example, you can EXAMINE PIRATE but you can't
+EXAMINE PIRATE'S EYEPATCH.]" CR>
+ <RTRUE>)
+ (<PRSO? ,NOT-HERE-OBJECT>
+ <SET TBL ,P-PRSO>)
+ (T
+ <SET TBL ,P-PRSI>
+ <SET PRSO? <>>)>
+ <COND (<AND .PRSO?
+ <PRSO-MOBY-VERB?>>
+ <SET X T>)
+ (<AND <NOT .PRSO?>
+ <PRSI-MOBY-VERB?>>
+ <SET X T>)>
+ <COND (.X ;"the verb is a moby-find verb"
+ <COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
+ <COND (<NOT <EQUAL? .OBJ ,NOT-HERE-OBJECT>>
+ <RTRUE>)>)
+ (T
+ <RFALSE>)>
+ <COND (<VERB? WALK-TO FOLLOW>
+ <V-WALK-AROUND>)
+ (T
+ <MORE-SPECIFIC>
+ ;<TELL "[" ,YOULL-HAVE-TO "be more specific.]" CR>)>)
+ (T
+ <COND (<EQUAL? ,WINNER ,PROTAGONIST>
+ <TELL "You">)
+ (<FSET? ,WINNER ,DEADBIT>
+ <TELL ,DOESNT-RESPOND>
+ <RFATAL>)
+ (T
+ <TELL "Looking confused," T ,WINNER " says, \"I">)>
+ <TELL " can't see">
+ <COND (<AND <NOT <ADJNAME? ,P-XADJ>> ;"adj.number"
+ <NOT <NAME? ,P-XNAM>>>
+ <TELL " any">)>
+ <NOT-HERE-PRINT .PRSO?>
+ <TELL " here!">
+ <COND (<NOT <EQUAL? ,WINNER ,PROTAGONIST>>
+ <TELL "\"">)>
+ <CRLF>)>
+ <STOP>>
+
+<ROUTINE PRSO-MOBY-VERB? ()
+ <COND (<OR <EQUAL? ,PRSA ,V?WHAT ,V?WHERE ,V?SHOOT ,V?SSHOOT>
+ <EQUAL? ,PRSA ,V?WALK-TO ;,V?MAKE>
+ <EQUAL? ,PRSA ;,V?CALL ;,V?SAY ,V?I-LOVE-YOU>
+ <EQUAL? ,PRSA ,V?FIND ,V?FOLLOW ,V?SAVE-SOMETHING>
+ <EQUAL? ,PRSA ;,V?USE-QUOTES ,V?ANSWER-KLUDGE>>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE PRSI-MOBY-VERB? ()
+ <COND (<EQUAL? ,PRSA ,V?ASK-ABOUT ,V?ASK-FOR
+ ,V?TELL-ABOUT ,V?I-LOVE-YOU>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ)
+;"Protocol: return T if case was handled and msg TELLed, NOT-HERE-OBJECT
+ if 'can't see' msg TELLed, <> if PRSO/PRSI ready to use"
+;"Special-case code goes here. <MOBY-FIND .TBL> returns # of matches. If 1,
+then P-MOBY-FOUND is it. You can treat the 0 and >1 cases alike or differently.
+Always return RFALSE (not handled) if you have resolved the problem."
+ <SET M-F <MOBY-FIND .TBL>>
+ ;<COND (,DEBUG
+ <TELL "[Found " N .M-F " obj]" CR>)>
+ <COND (<EQUAL? 1 .M-F>
+ ;<COND (,DEBUG
+ <TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>
+ <COND (.PRSO?
+ <SETG PRSO ,P-MOBY-FOUND>
+ <THIS-IS-IT ,PRSO>)
+ (T
+ <SETG PRSI ,P-MOBY-FOUND>)>
+ <RFALSE>)
+ (<AND <L? 1 .M-F>
+ <SET OBJ <APPLY <GETP <SET OBJ <GET/B .TBL 1>> ,P?GENERIC>>>>
+;"Protocol: returns .OBJ if that's the one to use
+ ,NOT-HERE-OBJECT if case was handled and msg TELLed
+ <> if WHICH-PRINT should be called"
+ ;<COND (,DEBUG
+ <TELL "[Generic: " D .OBJ "]" CR>)>
+ <COND (<EQUAL? .OBJ ,NOT-HERE-OBJECT>
+ <RTRUE>)
+ (.PRSO?
+ <SETG PRSO .OBJ>
+ <THIS-IS-IT ,PRSO>)
+ (T
+ <SETG PRSI .OBJ>)>
+ <RFALSE>)
+ (T
+ ,NOT-HERE-OBJECT)>>
+
+<ROUTINE NOT-HERE-PRINT (PRSO?)
+ <COND (,P-OFLAG
+ <COND (,P-XADJ
+ <TELL " ">
+ <PRINTB ,P-XADJN>)>
+ <COND (,P-XNAM
+ <TELL " ">
+ <PRINTB ,P-XNAM>)>)
+ (.PRSO?
+ <BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
+ (T
+ <BUFFER-PRINT <GET ,P-ITBL ,P-NC2> <GET ,P-ITBL ,P-NC2L> <>>)>>
+
+<OBJECT LADDER ;"TAKE ROPE = should get ladder."
+ (IN LOCAL-GLOBALS)
+ (DESC "ladder")
+ (SYNONYM LADDER ROPE)
+ (ADJECTIVE ROPE)
+ (FLAGS NDESCBIT TRYTAKEBIT)
+ (ACTION LADDER-F)>
+
+<ROUTINE LADDER-F ()
+ <COND (<NOT ,LADDER-HANGING>
+ <CANT-SEE ,LADDER>)
+ (<VERB? TAKE CLIMB BOARD>
+ <COND (<EQUAL? <LOC ,PROTAGONIST> ,CAPT-QUARTERS>
+ <COND (<FSET? ,LEDGE ,MUNGBIT>
+ <TELL
+"You lean over" T ,LEDGE ", but" T ,LADDER
+" is too far out to reach" ,PCR>)
+ (T
+ <TELL
+"It's on the other side of the window" ,PCR>)>)
+ (<EQUAL? <LOC ,PROTAGONIST> ,LEDGE>
+ <TELL "You ">
+ <COND (<ANYTHING-HELD>
+ <ROB ,PROTAGONIST ,RETICULE>
+ <TELL
+"put everything in" T ,RETICULE " and ">)>
+ <COND (<FSET? ,POOP ,TOUCHBIT>
+ <TELL "hop out, catching the">) ;"TR ,LADDER CR"
+ (T
+ <QUEUE I-LADDER-BLOWS -1>
+ <TELL
+"reach out for" T ,LADDER " and over-balance, tumbling from your perch.
+Your hand closes on a slimy hemp rung as you fly out over the waves, clinging
+tenuously, feet free, to the">)> ;"TR ,LADDER CR"
+ <PRSO-PRINT>
+ <TELL ,PCR CR>
+ <GOTO ,ON-LADDER>)
+ (<AND <EQUAL? ,HERE ,ON-LADDER>
+ <VERB? TAKE>>
+ <TELL ,HOLDING-IT>)
+ (<EQUAL? <LOC ,PROTAGONIST> ,SKIFF>
+ <DEBARK-SKIFF>)
+ (<EQUAL? ,HERE ,POOP>
+ <TELL
+"If you wish to climb down" T ,LADDER ", say so" ,PCR>)
+ (T
+ <DO-WALK ,P?UP>)>)
+ (<VERB? CUT>
+ <COND (<HELD? ,DAGGER>
+ <TELL CTHE ,DAGGER
+" isn't sharp enough to cut through" TR ,LADDER>)
+ (T
+ <PROPOSE>)>)
+ (<VERB? UNTIE>
+ <TELL CTHE ,ROPE " is tied in too complex a knot" ,PCR>)
+ ;(<AND ,END-GAME
+ <EQUAL? ,HERE ,RING ,PLATFORM-1>
+ <NOT <EQUAL? <LOC ,PROTAGONIST> ,STAND>>
+ <NOT <VERB? UNTIE>>>
+ <COND (<TOUCHING? ,LADDER>
+ <DO-WALK ,P?UP>)
+ (<VERB? EXAMINE>
+ <TANGLED-ROPE T>)>)
+ (<VERB? CLIMB-DOWN>
+ <COND ;(<EQUAL? ,HERE ,POOP>
+ <DO-WALK ,P?DOWN>) ;"semi-d out cause of ELSE below"
+ (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <DO-FIRST "get on" ,LADDER>)
+ (T
+ <DO-WALK ,P?DOWN>
+ <RTRUE>)>)
+ (<AND <VERB? EXAMINE>
+ <EQUAL? ,HERE ,CAPT-QUARTERS ,ON-LADDER ,POOP>>
+ <TELL ,COMMON-LOOKING "rope " D ,LADDER ,PCR>)
+ ;(<VERB? CLIMB-UP>
+ <DO-WALK ,P?UP>)>>
+
+<ROUTINE I-END-PROLOGUE ()
+ <TELL ,INDENT
+"Davis leaps across the deck to your side, \"Free me or she dies!\"
+he yells, jabbing a knife up to your throat. In one smooth motion," T, HERO
+" draws his rapier, pulls you free and stabs.
+Davis slumps into a bloody heap.|
+ Swooning, you fall into the Falcon's arms. You are dimly aware of being
+carried to the other ship, down a short flight of stairs, and laid gently
+on a soft bed. When you gather strength to look around, the Falcon has left
+you in peace.|
+ You remain confined to this room, a large cupboard blocking the door.
+Meals are brought by a peg-legged old man and eaten in silence.
+Of your handsome rescuer you see nothing. Slowly the days pass.|">
+ ;<CLEAR-SCREEN 10>
+ <TELL CR ,HIT-RETURN "continue.]" CR>
+ <READ ,P-INBUF ,P-LEXV>
+ <CLEAR-SCREEN 10>
+ <GOTO ,CAPT-QUARTERS>
+ <FCLEAR ,CRULLEY ,DEADBIT>
+ <FCLEAR ,DOOR ,MUNGBIT>
+ <MOVE ,HERO ,CAPT-QUARTERS>
+ <FCLEAR ,HERO ,NDESCBIT>
+ <REMOVE ,COFFER>
+ <FSET ,COFFER ,MUNGBIT>
+ <FCLEAR ,COFFER ,LOCKEDBIT>
+ <FSET ,RAPIER ,NDESCBIT>
+ <FCLEAR ,DOOR ,OPENBIT>
+ ;<DEQUEUE I-MEET-HERO>
+ ;<DEQUEUE I-COFFER>
+ ;<DEQUEUE I-JIGS-UP-SNAFU>>
+
+;<OBJECT LOVE ;"for I LOVE someone -- made a preposition word 7/15/87"
+ (IN GLOBAL-OBJECTS)
+ (DESC "love")
+ (SYNONYM LOVE)
+ (FLAGS NARTICLEBIT)
+ ;(ACTION LOVE-F)>
+
+;<ROUTINE LOVE-F ("AUX" LOVER)
+ <COND (<VERB? MAKE>
+ <COND (<SET LOVER <FIND-IN ,HERE ,ACTORBIT "to">>
+ <PERFORM ,V?FUCK .LOVER>
+ <RTRUE>)
+ (T
+ <TELL "Alone? How odd." CR>)>)>>
+
+<OBJECT GLOBAL-SLEEP
+ (IN GLOBAL-OBJECTS)
+ (DESC "sleep")
+ (SYNONYM SLEEP NAP SNOOZE)
+ (FLAGS NARTICLEBIT)
+ (ACTION GLOBAL-SLEEP-F)>
+
+<ROUTINE GLOBAL-SLEEP-F ()
+ <COND (<VERB? WALK-TO TAKE>
+ <PERFORM ,V?SLEEP>
+ <RTRUE>)
+ ;(<AND <VERB? PUT-TO>
+ <PRSI? ,GLOBAL-SLEEP>>
+ <TELL "A lady is never that boring." CR>)>>
+
+<OBJECT GROUND
+ (IN GLOBAL-OBJECTS)
+ (SYNONYM FLOOR GROUND DECK)
+ (DESC "ground")
+ (ACTION GROUND-F)>
+
+<ROUTINE GROUND-F ()
+ <COND (<VERB? EXAMINE>
+ <COND (<EQUAL? ,HERE ,RIGGING-ROOM ,CROWS-NEST>
+ <TELL
+"Looking down at the distant deck is a mistake. Your stomach flips over">)
+ (<SHIP-BOARD ,HERE>
+ <TELL
+"Well scrubbed and smoothed floorboards make up the deck">)
+ (<EQUAL? ,HERE ,BY-SHIP ,LAGOON ,SHALLOWS>
+ <TELL "A sandy bottom shifts under the waves">)
+ (<EQUAL? ,HERE ,CELL-1 ,CELL-4>
+ <TELL "Like the walls and ceiling, rock">)
+ (<EQUAL? ,HERE ,CELL-2>
+ <TELL "The floor is ankle deep in mud">)
+ (T
+ <NOTHING-INTERESTING>
+ <TELL "about ">
+ <COND (<FSET? ,HERE ,INDOORSBIT>
+ <TELL "the floor">)
+ (T
+ <TELL T ,GROUND>)>)>
+ <TELL ,PCR>)
+ ;(<AND <VERB? TOUCH>
+ <EQUAL? ,HERE ,CELL ,OTHER-CELL>>
+ <PERFORM ,V?EXAMINE ,GROUND>
+ <RTRUE>)
+ (<VERB? ;CLIMB-UP CLIMB-ON CLIMB BOARD>
+ <WASTES>)
+ (<VERB? LOOK-UNDER>
+ <IMPOSSIBLES>)
+ (<VERB? LEAVE>
+ <DO-WALK ,P?UP>)
+ (<AND <VERB? WALK-TO>
+ <NOUN-USED ,W?DECK ,GROUND>>
+ <COND (<EQUAL? ,HERE ,CABIN ,LANDING ,HOLD ,GALLEY>
+ <DO-WALK ,P?OUT>)
+ (<EQUAL? ,HERE ,DEUX-DECK ,POOP ,QUARTERDECK
+ ,MAIN-DECK ,FOCSLE>
+ <TELL ,LOOK-AROUND>)
+ (<EQUAL? ,HERE ,CROWS-NEST ,RIGGING-ROOM>
+ <DO-WALK ,P?DOWN>)
+ (<SHIP-BOARD ,HERE>
+ <V-WALK-AROUND>)
+ (T
+ <WASTES>)>)
+ ;(<AND <VERB? LEAP STAND-ON>
+ <EQUAL? ,HERE ,ROOF>>
+ <PERFORM ,V?LEAP ,ROOMS> ;"V-LEAP handles it"
+ <RTRUE>)>>
+
+<OBJECT LARGE-KEY
+ (IN COT)
+ (DESC "large key")
+ ;(FDESC
+"Lying on the cot, probably fallen out of a pocket, is a large key.")
+ (SYNONYM KEY)
+ (ADJECTIVE LARGE)
+ (FLAGS TAKEBIT TRYTAKEBIT)
+ (SIZE 2)
+ (ACTION KEY-F)>
+
+<ROUTINE KEY-F ()
+ <COND (<AND <VERB? TAKE>
+ ;<NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>
+ <FSET? ,LARGE-KEY ,TRYTAKEBIT>>
+ <MOVE ,LARGE-KEY ,PROTAGONIST>
+ <FCLEAR ,LARGE-KEY ,TRYTAKEBIT>
+ <SETG SCORE <+ ,SCORE 1>>
+ <TELL "Taken." CR>)>>
+
+ ;<GLOBAL CLOSED-DOOR "The door is closed.|">
+
+<ROUTINE GEN-LOCK ()
+ <COND (<NOT <FSET? ,COFFER ,NDESCBIT>>
+ ,DOOR)
+ (T
+ <RFALSE>)>>
+
+<OBJECT DOOR
+ (IN LOCAL-GLOBALS)
+ (DESC "door")
+ (SYNONYM DOOR LOCK)
+ (FLAGS NDESCBIT LOCKEDBIT DOORBIT)
+ (GENERIC GEN-LOCK)
+ (ACTION DOOR-F)>
+
+;"There are several different door-objects, all using DOOR-F as their
+action routine:
+WOOD-CELL-DOOR -- in CELL-2 and adjoining PASSAGE-2. Never locked.
+IRON-CELL-DOOR -- in CELL-4 and its PASSAGE-4 -- needs LARGE-KEY to open.
+VER-DOOR -- in VERANDA and BALLROOM. Needs to be opened from inside.
+LDOOR -- in LAFS-ROOM and UPPER-HALL-E. Un-unlockable.
+DOOR -- in CABIN (Lafond Deux), LANDING, QUARTERDECK (both Helena Louise),
+ and (not) BEDROOM, (not) UPPER-HALL-W (St. Sinistra)."
+
+<ROUTINE DOOR-F ()
+ <COND (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <PERFORM-PRSA ,CURTAIN>
+ <RTRUE>)
+ (<VERB? EXAMINE LOOK-INSIDE>
+ <COND (<NOUN-USED ,W?LOCK ,LDOOR>
+ <TELL "Ladies do not look through keyholes!" CR>)
+ (<FSET? ,PRSO ,OPENBIT>
+ <TELL "It is open">)
+ (T
+ <TELL "It" ,IS-CLOSED>
+ <COND (<EQUAL? ,HERE ,QUARTERDECK>
+ <TELL " and barred">)
+ (<FSET? ,DOOR ,MUNGBIT>
+ <TELL ". Or, what remains of it is">)>)>
+ <THIS-IS-IT ,PRSO>
+ <TELL ,PCR>)
+ (<AND <VERB? PICK>
+ <PRSO? ,LDOOR>>
+ <TELL "The mechanism is too complex to pick." CR>)
+ (<VERB? UNLOCK>
+ <COND (<EQUAL? ,HERE ,UPPER-HALL-E>
+ <TELL
+"Only one man has the key to this room: Jean Lafond" ,PCR>)
+ (<EQUAL? ,HERE ,QUARTERDECK>
+ <PERFORM ,V?OPEN ,DOOR>
+ <RTRUE>)
+ (<PRSO? ,WOOD-CELL-DOOR>
+ <TELL "But" T ,DOOR " isn't locked" ,PCR>)
+ (<PRSI? ,LARGE-KEY>
+ <COND (<EQUAL? ,PRSO ,IRON-CELL-DOOR>
+ <FCLEAR ,PRSO ,LOCKEDBIT>
+ <TELL "Unlocked" ,PCR>)
+ (T
+ <TELL
+"That key does not unlock this door" ,PCR>)>)
+ (T
+ <TELL "You are unable to unlock" TR ,DOOR>)
+ ;(<PRSI? ,BENT-KEY>
+ <TELL
+CTHE ,BENT-KEY " will never fit in any lock again" ,PCR>)>)
+ (<VERB? LOCK>
+ <COND (<AND <PRSO? ,IRON-CELL-DOOR>
+ <PRSI? ,LARGE-KEY>>
+ <FSET ,PRSO ,LOCKEDBIT>
+ <TELL "You ">
+ <COND (<FSET? ,PRSO ,OPENBIT>
+ <FCLEAR ,PRSO ,OPENBIT>
+ <TELL "close and ">)>
+ <TELL "lock" TR ,DOOR>)
+ (<PRSI? ,LARGE-KEY ;,BENT-KEY>
+ <TELL "That key won't work here" ,PCR>)
+ (<PRSO? ,VER-DOOR>
+ <TELL ,YOU-CANT "lock that" ,PCR>)
+ (T
+ <PROPOSE>)>)
+ (<VERB? KNOCK>
+ <COND (<AND <EQUAL? ,HERE ,UPPER-HALL-E>
+ <NOT <FSET? ,LDOOR ,LOCKEDBIT>>
+ <IN? ,LAFOND ,LAFS-ROOM>>
+ <TELL D ,LAFOND " calls, \"Come.\"" CR>)
+ (T
+ <TELL "Silence answers back." CR>)>)
+ (<VERB? OPEN>
+ <COND ;(<PRSO? ,DOOR>
+ <DO-WALK ,P?EAST>)
+ (<EQUAL? ,HERE ,CABIN>
+ <TELL "It appears to be locked." CR>)
+ (<EQUAL? ,HERE ,LANDING>
+ <TELL CTHE ,DOOR " won't open" ,PCR>)
+ (<EQUAL? ,HERE ,QUARTERDECK>
+ <TELL
+"Someone yells from ahead, \"Cap'n 'll have your hide if you go down there!\"
+You haven't the strength to lift the bar anyway" ,PCR>)
+ (<AND <EQUAL? ,HERE ,VERANDA>
+ <NOT <FSET? ,DOOR ,OPENBIT>>>
+ <TELL ,YOU-CANT-SEE-ANY ,WAY-TO-DO-THAT>)
+ (T
+ <RFALSE>)>)>>
+
+<OBJECT WALLS
+ (IN GLOBAL-OBJECTS)
+ (FLAGS NDESCBIT TOUCHBIT)
+ (DESC "wall")
+ (SYNONYM WALL WALLS)
+ ;(ACTION WALLS-F)>
+
+;<ROUTINE WALLS-F ()
+ <COND (<AND <VERB? EXAMINE>
+ <EQUAL? ,HERE ,HOLD>
+ <EQUAL? ,SIDEKICK-EXPLODED 1>>
+ <SPLATTERED-DESC>
+ <CRLF>)>>
+
+<OBJECT CEILING
+ (IN GLOBAL-OBJECTS)
+ (FLAGS NDESCBIT TOUCHBIT)
+ (DESC "ceiling")
+ (SYNONYM CEILIN ROOF)
+ (ADJECTIVE LOW)
+ (ACTION CEILING-F)>
+
+<ROUTINE CEILING-F ()
+ <COND (<VERB? EXAMINE>
+ <COND (<EQUAL? ,HERE ,CREWS-QUARTERS>
+ <TELL ,YOU-SEE
+" a sail rippling against the night sky through" TR ,GRATE>)
+ (<NOT <FSET? ,HERE ,INDOORSBIT>>
+ <CANT-SEE ,CEILING>)
+ (T
+ <RFALSE>)>)
+ ;(<VERB? LOOK-UNDER>
+ <PERFORM ,V?LOOK>
+ <RTRUE>)>>
+
+;<OBJECT ODOR
+ (IN LOCAL-GLOBALS)
+ (DESC "odor")
+ (SYNONYM SMELL ODOR SCENT AROMA)
+ (ADJECTIVE STRONG FAMILIAR FOUL HEADY PLEASANT)
+ (FLAGS VOWELBIT)
+ ;(ACTION ODOR-F)>
+
+
+<OBJECT WATER
+ (IN WATER-BARREL)
+ (DESC "water")
+ (SYNONYM WATER)
+ (ADJECTIVE FRESH)
+ ;(GENERIC GEN-WATER)
+ (FLAGS ;NARTICLEBIT NDESCBIT)
+ (ACTION WATER-F)>
+
+<OBJECT SEA
+ (IN LOCAL-GLOBALS)
+ (DESC "sea")
+ (SYNONYM WATER OCEAN LAGOON SHALLOWS)
+ (ADJECTIVE SEA DARK COLD)
+ ;(FLAGS NARTICLEBIT)
+ ;(GENERIC GEN-WATER)
+ (ACTION WATER-F)>
+
+;<ROUTINE GEN-WATER ()
+ <COND (<EQUAL? ,HERE ,MAIN-DECK>
+ <RETURN ,WATER>)
+ (T
+ <RFALSE>)>>
+
+<GLOBAL DRIPS-OFF " drips off your fingers.|">
+
+<ROUTINE WATER-F ()
+ <COND (<AND <OR <EQUAL? ,HERE ,LAFS-ROOM ,RIGGING-ROOM>
+ <EQUAL? ,HERE ,BOWSPRIT ,CROWS-NEST>>
+ <NOT <VERB? THROW PUT PUT-ON>>>
+ <COND (<VERB? ENTER>
+ <TELL ,SUICIDE>)
+ (T
+ <CANT-REACH ,SEA>)>)
+ (<NOT <OR <GLOBAL-IN? ,SEA ,HERE>
+ <HELD? ,WATER ,HERE>>>
+ <TELL "There's no water here." CR>)
+ (<VERB? LOOK-INSIDE LOOK-UNDER EXAMINE>
+ <TELL "The water is sparkling clear" ,PCR>)
+ (<VERB? REACH-IN>
+ <TELL "Water" ,DRIPS-OFF>)
+ (<VERB? DRINK DRINK-FROM ;TASTE>
+ <COND (<PRSO? ,WATER>
+ <TELL
+"You take a long draft. It is quite refreshing" ,PCR>)
+ (T
+ <TELL "This water is much too salty to drink" ,PCR>)>)
+ (<AND <VERB? PUT-ON>
+ <PRSI? ,SEA>>
+ <PERFORM ,V?PUT ,PRSO ,SEA>
+ <RTRUE>)
+ (<VERB? THROW>
+ <COND (<AND <EQUAL? ,HERE ,CAPT-QUARTERS>
+ <NOT <FSET? ,LEDGE ,MUNGBIT>>>
+ <TELL "But" T ,WINDOW ,IS-CLOSED "!" CR>)
+ (T
+ <REMOVE ,PRSO>
+ <TELL "You toss" T ,PRSO " into" TR ,SEA>)>)
+ (<VERB? PUT SOAK>
+ <COND (<PRSO? ,INVITE ,LETTER>
+ <REMOVE ,PRSO>
+ <TELL
+"It disintegrates quickly into nothing" ,PCR>)
+ (<EQUAL? ,HERE ,POOP ,QUARTERDECK ,FOCSLE
+ ,BOWSPRIT ,CAPT-QUARTERS>
+ <PERFORM ,V?THROW ,PRSO ,SEA>
+ <RTRUE>)
+ (<EQUAL? ,HERE ,MAIN-DECK>
+ <COND (<PRSI? ,SEA>
+ <PERFORM ,V?THROW ,PRSO ,SEA>
+ <RTRUE>)
+ (T
+ <PERFORM ,V?PUT ,PRSO ,WATER-BARREL>
+ <RTRUE>)>)
+ (<EQUAL? ,HERE ,BEACH ,SHALLOWS ,LAGOON ,BY-SHIP>
+ <COND (<PRSO? ,DRESS ,RAG>
+ <DIP-DRESS>)
+ (T
+ <TELL
+"You dip" T ,PRSO " into the water" ,PCR>)>)
+ (T
+ <TELL ,YOU-CANT "reach any water" ,PCR>)>)
+ (<VERB? BOARD ENTER SWIM>
+ <COND (<EQUAL? ,HERE ,BEACH>
+ <DO-WALK ,P?EAST>)
+ (T
+ <V-SWIM>)>)
+ (<TOUCHING? ,SEA>
+ <TELL "The cool water runs through your fingers" ,PCR>)>>
+
+<OBJECT SKY
+ (IN GLOBAL-OBJECTS)
+ (DESC "sky")
+ (SYNONYM SKY)
+ (ACTION SKY-F)>
+
+<ROUTINE SKY-F ()
+ <COND (<FSET? ,HERE ,INDOORSBIT>
+ <CANT-SEE ,SKY>)>>
+
+<OBJECT MOONBEAM
+ (IN GLOBAL-OBJECTS)
+ (DESC "moonbeam")
+ (SYNONYM MOONLIGHT MOONBEAM BEAM LIGHT)
+ (ADJECTIVE MOON)
+ (FLAGS NDESCBIT)
+ (ACTION MOON-F)>
+
+<ROUTINE MOON-F ()
+ <COND (<AND <FSET? ,HERE ,INDOORSBIT>
+ <NOT <EQUAL? ,HERE ,CREWS-QUARTERS ,CAPT-QUARTERS
+ ,BEDROOM ,LAFS-ROOM>>
+ <NOT <VERB? ASK-ABOUT TELL-ABOUT>>>
+ <TELL ,YOU-CANT "see the moon from here" ,PCR>)
+ (<VERB? EXAMINE>
+ <TELL "A dusty moonbeam swirls down from the sky." CR>)>>
+
+<OBJECT HANDS
+ (IN GLOBAL-OBJECTS)
+ (DESC "your hand")
+ (SYNONYM HANDS HAND FINGER NAILS)
+ (ADJECTIVE BARE MY YOUR)
+ (FLAGS NDESCBIT TOUCHBIT NARTICLEBIT BODYBIT)
+ (ACTION HANDS-F)>
+
+<ROUTINE HANDS-F ("AUX" ACTOR)
+ <COND (<VERB? APPLAUD>
+ <SETG PRSO <>>
+ <V-APPLAUD>)
+ (<VERB? SHAKE>
+ <COND ;(<EQUAL? ,HERE ,THRONE-ROOM>
+ <PERFORM ,V?SHAKE-WITH ,HANDS ,MITRE>
+ <RTRUE>)
+ (<SET ACTOR <FIND-IN ,HERE ,ACTORBIT "with">>
+ <PERFORM ,V?SHAKE-WITH ,HANDS .ACTOR>
+ <RTRUE>)
+ (T
+ <TELL "Pleased to meet you." CR>)>)
+ (<VERB? CLEAN>
+ <TELL "Done." CR>)
+ (<AND <VERB? TAKE-WITH>
+ <PRSI? ,HANDS>>
+ <PERFORM ,V?TAKE ,PRSO>
+ <RTRUE>)>>
+
+
+;<ROUTINE ITEMS-CARRIED ("AUX" X (CNT 0))
+ <SET X <FIRST? ,PROTAGONIST>>
+ <REPEAT ()
+ <COND (<NOT .X>
+ <RETURN>)
+ (<AND <NOT <FSET? .X ,WORNBIT>>
+ <NOT <EQUAL? .X ,RETICULE>>>
+ <SET CNT <+ .CNT 1>>)>
+ <SET X <NEXT? .X>>>
+ <RETURN .CNT>>
+
+;<GLOBAL HAND-COVER <>>
+
+<OBJECT HEAD
+ (IN GLOBAL-OBJECTS)
+ (DESC "your head")
+ (SYNONYM HEAD)
+ (ADJECTIVE YOUR MY)
+ (FLAGS NARTICLEBIT BODYBIT)>
+
+
+<OBJECT EYES
+ (IN GLOBAL-OBJECTS)
+ (DESC "your eyes")
+ (SYNONYM EYE EYES)
+ (ADJECTIVE YOUR MY HIS LAFOND)
+ (FLAGS NARTICLEBIT PLURALBIT BODYBIT)
+ (ACTION EYES-F)>
+
+<ROUTINE EYES-F ()
+ <COND (<VERB? CLOSE>
+ <TELL "You blink" ,PCR>)
+ (<VERB? OPEN>
+ <TELL "They are open!" CR>)
+ (<AND <VERB? EXAMINE LOOK-INSIDE>
+ <ADJ-USED ,A?HIS>
+ <IN? ,HERO ,HERE>>
+ <TELL <GET ,MANNERISMS 3> CR>)>>
+
+<OBJECT MOUTH
+ (IN GLOBAL-OBJECTS)
+ (DESC "your mouth")
+ (SYNONYM MOUTH LIP LIPS SNOUT)
+ (ADJECTIVE YOUR MY CROC\'S CROCOD LAFOND)
+ (FLAGS NARTICLEBIT BODYBIT)
+ (ACTION MOUTH-F)>
+
+<ROUTINE MOUTH-F ()
+ <COND (<VERB? PUT-ON ENTER OPEN WRING POUR EXAMINE PUT>
+ <COND (<OR <ADJ-USED ,A?CROC\'S>
+ <ADJ-USED ,A?CROCOD>
+ <NOUN-USED ,W?SNOUT ,MOUTH>>
+ <PERFORM-PRSA ,PRSO ,CROC>
+ <RTRUE>)
+ (<ADJ-USED ,A?LAFOND>
+ <PERFORM-PRSA ,PRSO ,LAFOND>)
+ (<PRSI? ,MOUTH>
+ <PERFORM ,V?EAT ,PRSO>
+ <RTRUE>)
+ (T
+ <RFALSE>)>)
+ (<VERB? OPEN>
+ <COND (<RUNNING? ,I-HFOLLY>
+ <TELL "Jamison will do that for you." CR>)
+ (T
+ <TELL "You fail to stifle a yawn." CR>)>)>>
+
+
+<OBJECT PROTAGONIST
+ (IN CABIN-BED)
+ (SYNONYM PROTAG)
+ (DESC "it")
+ (FLAGS NDESCBIT INVISIBLE ACTORBIT)
+ (ACTION PROTAGONIST-F)>
+
+<GLOBAL REACTION <>>
+<GLOBAL QUESTIONER <>>
+
+<CONSTANT REACTION-NEGATIVE -1>
+<CONSTANT REACTION-NEUTRAL 0>
+<CONSTANT REACTION-POSITIVE 1>
+
+<ROUTINE PROTAGONIST-F ()
+ <COND (,QUESTIONER
+ <COND (<GAME-COMMANDS>
+ <RFALSE>)
+ (<OR <VERB? NO>
+ <AND <NEGATIVE-ANSWER>
+ <EQUAL? ,QUESTIONER ,PRSO ,PRSI>>>
+ <SETG REACTION ,REACTION-NEGATIVE>)
+ (<OR <VERB? YES>
+ <AFFIRMATIVE-ANSWER>>
+ <SETG REACTION ,REACTION-POSITIVE>)
+ (T
+ <SETG REACTION ,REACTION-NEUTRAL>)>
+ ;<TELL
+"[Debug: going thru PROTAG-F. REACTION is " N ,REACTION ".]" CR>
+ <SETG QUESTIONER <>>)>
+ <RFALSE>>
+
+<ROUTINE AFFIRMATIVE-ANSWER ()
+ <COND (<OR <VERB? APPLAUD ;CALL CLIMB-ON>
+ <VERB? DANCE FOLLOW GIVE SGIVE>
+ <VERB? HELLO KISS CURTSEY LAUGH>
+ <VERB? EMBRACE I-LOVE-YOU MARRY TOUCH>
+ <VERB? THANK WALK-TO SAVE-SOMETHING>
+ <VERB? ;SRUB SHOW SSHOW>
+ <VERB? MAKE-LOVE MAKE-OUT ;LOVE>
+ <AND <VERB? TELL ;SAY>
+ <YES-WORD <GET ,P-LEXV ,P-CONT>>>
+ ;<AND <EQUAL? ,QUESTIONER ,PRSO ,PRSI>
+ <VERB? UNTIE>>>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE NEGATIVE-ANSWER ()
+ <COND (<OR <VERB? KILL BITE BURN>
+ <VERB? MUNG KICK RAPE>
+ <VERB? SHAKE SWING YELL>
+ <AND <VERB? TELL ;SAY>
+ <NO-WORD <GET ,P-LEXV ,P-CONT>>>>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE GAME-COMMANDS ()
+ <COND (<OR <VERB? SAVE RESTORE QUIT>
+ <VERB? VERBOSE BRIEF SUPER-BRIEF>
+ ;<VERB? ;DIAGNOSE INVENTORY>
+ <VERB? SCRIPT UNSCRIPT VERSION>
+ <VERB? $RANDOM $COMMAND $RECORD $UNRECORD>
+ <VERB? $VERIFY ;$DEBUG>
+ <VERB? HELP SCORE>>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<OBJECT ME
+ (IN GLOBAL-OBJECTS)
+ (SYNONYM I ME MYSELF SELF)
+ (SIZE 10)
+ (DESC "yourself")
+ (CONTENTS 0)
+ (FLAGS ;ACTORBIT TOUCHBIT NARTICLEBIT BODYBIT)
+ (ACTION ME-F)>
+
+<ROUTINE ME-F ()
+ <COND (<VERB? TELL>
+ <TELL
+"You'll end up in Bedlam, talking to " D ,ME " that way." CR>
+ <STOP>)
+ (<AND <VERB? GIVE>
+ <PRSI? ,ME>>
+ <PERFORM ,V?TAKE ,PRSO>
+ <RTRUE>)
+ (<AND <VERB? TAKE-WITH>
+ <PRSI? ,MAN>>
+ <RECOGNIZE>)
+ (<AND <VERB? SHOW>
+ <PRSI? ,ME>>
+ <PERFORM ,V?EXAMINE ,PRSO>
+ <RTRUE>)
+ (<VERB? MOVE>
+ <V-WALK-AROUND>)
+ (<VERB? SEARCH>
+ <V-INVENTORY>
+ <RTRUE>)
+ (<AND <VERB? ALARM>
+ <HELD? ,SALTS>>
+ <PERFORM ,V?SMELL ,SALTS>
+ <RTRUE>)
+ (<VERB? DRESS>
+ <PERFORM ,V?GET-DRESSED ,ROOMS>
+ <RTRUE>)
+ (<VERB? EXAMINE>
+ <COND (<AND <RUNNING? ,I-LSED>
+ <G? ,LAFOND-CTR ,HORNY>>
+ <V-INVENTORY>
+ ;<TELL "You blush to look at your naked body">)
+ (T
+ <TELL "You are wearing">
+ <COND (,BOY-DRESS?
+ <TELL A ,SHIRT " and " D ,PANTS>
+ <TELL
+". Mama herself would think you a plump boy." CR>
+ ;<COND (<FSET? ,HOOPS ,WORNBIT>
+ <TELL
+" under " D ,HOOPS ". You look rather ridiculous." CR>)
+ (T
+ <TELL
+". Mama herself would think you a plump boy." CR>)>)
+ (<FSET? ,DRESS ,WORNBIT>
+ <TELL
+A ,DRESS ", very pretty, if a tad outmoded for today's fashions." CR>)
+ (<FSET? ,GOWN ,WORNBIT>
+ <TELL A ,GOWN " of creamy watered silk." CR>)
+
+ ;"in a shirt OR pants OR hoops: half-dressed"
+ (<FSET? ,SHIRT ,WORNBIT>
+ <TELL A ,SHIRT ,BROTHEL>)
+ (<FSET? ,PANTS ,WORNBIT>
+ <TELL A ,PANTS ,BROTHEL>)
+ ;(<FSET? ,HOOPS ,WORNBIT>
+ <TELL " " D ,HOOPS ,BROTHEL>)
+ (<NOT <FSET? ,CHEMISE ,EVERYBIT>>
+ <TELL
+" absolutely nothing besides" A ,CHEMISE ", " D ,SHOES
+" and a few layers of " D ,UNMENTIONABLES ". " ,MOTHER>)>)>)
+ (<VERB? KILL MUNG SHOOT SSHOOT>
+ <TELL ,SUICIDE>)
+ (<VERB? FIND WHERE>
+ <TELL "You're in" TR ,HERE>)
+ (<VERB? FOLLOW>
+ <TELL
+"Next time, please specify who you wish to follow." CR>)
+ (<VERB? KISS EMBRACE>
+ <TELL "Mama warned you of the dangers of onanism" ,PCR>)>>
+
+<OBJECT GLOBAL-ROOM
+ (IN GLOBAL-OBJECTS)
+ (DESC "room")
+ (SYNONYM ROOM PLACE LOCATI AREA)
+ (ACTION GLOBAL-ROOM-F)>
+
+<ROUTINE GLOBAL-ROOM-F ()
+ <COND (<VERB? LOOK LOOK-INSIDE EXAMINE>
+ <V-LOOK>)
+ (<VERB? ENTER WALK-TO>
+ <V-WALK-AROUND>)
+ (<VERB? LEAVE EXIT DISEMBARK>
+ <DO-WALK ,P?OUT>)
+ (<VERB? SEARCH>
+ <COND (<AND <EQUAL? ,HERE ,CABIN>
+ <NOT <RUNNING? ,I-COFFER>>
+ <NOT <HELD? ,COFFER>>>
+ <PERFORM ,V?LOOK-UNDER ,CABIN-BED>
+ <RTRUE>)
+ (T
+ <TELL ,NOTHING-NEW>)>)
+ ;(<VERB? WALK-AROUND>
+ <TELL "Walking around here">
+ <HO-HUM>
+ <TELL " To move elsewhere, type the desired " D ,INTDIR ,PCR>)
+ (<AND <VERB? PUT>
+ <PRSI? ,GLOBAL-ROOM>>
+ <COND (<EQUAL? ,P-PRSA-WORD ,W?THROW>
+ <PERFORM ,V?THROW ,PRSO>
+ <RTRUE>)
+ (T
+ <PERFORM ,V?DROP ,PRSO>
+ <RTRUE>)>)>>
+
+<OBJECT HOUSE
+ (IN GLOBAL-OBJECTS)
+ (DESC "mansion")
+ (SYNONYM HOUSE MANSION LIBRARY)
+ (ADJECTIVE HUGE STONE)
+ (ACTION HOUSE-F)>
+
+<ROUTINE HOUSE-F ()
+ <COND (<VERB? ENTER WALK-TO BOARD>
+ <COND (<EQUAL? ,HERE ,MAIN-ENTRANCE>
+ <DO-WALK ,P?SOUTH>)
+ (<EQUAL? ,HERE ,TRADE-ENTRANCE>
+ <DO-WALK ,P?EAST>)
+ (<EQUAL? ,HERE ,VERANDA ,LAWN>
+ <DO-WALK ,P?NORTH>)
+ (<EQUAL? ,HERE ,BY-HOUSE>
+ <DO-WALK ,P?WEST>)
+ (T
+ <TELL ,YOU-CANT "do that from here."
+ CR>)>)
+ (<VERB? EXIT LEAVE DISEMBARK>
+ <COND (<EQUAL? ,HERE ,KITCHEN>
+ <DO-WALK ,P?WEST>)
+ (<EQUAL? ,HERE ,FOYER>
+ <DO-WALK ,P?NORTH>)
+ (<EQUAL? ,HERE ,BALLROOM>
+ <DO-WALK ,P?SOUTH>)
+ (<EQUAL? ,HERE ,LIBRARY>
+ <DO-WALK ,P?EAST>)
+ (<EQUAL? ,HERE ,BEDROOM>
+ <DO-WALK ,P?DOWN>)
+ ;(<OR <EQUAL? ,HERE ,HALL-E ,HALL-W ,LIBRARY>
+ <EQUAL? ,HERE ,UPPER-HALL-W ,UPPER-HALL-E>
+ <EQUAL? ,HERE ,LAFS-ROOM ,GALLERY>>
+ <TELL ,CANT-FROM-HERE>)
+ (T
+ <TELL ,LOOK-AROUND>)>)
+ (<VERB? LOOK-INSIDE>
+ <COND (<EQUAL? ,HERE ,MAIN-ENTRANCE ,TRADE-ENTRANCE
+ ,LAWN ,BY-HOUSE>
+ <TELL ,CANT-FROM-HERE>)
+ (T
+ <V-LOOK>)>)
+ (<VERB? EXAMINE>
+ <COND (<EQUAL? ,HERE ,CREWS-QUARTERS>
+ <TELL
+"Bathed in moonbeams and candlelight, the house squats at the crest
+of a cliff. The upstairs window is dark" ,PCR>)
+ (<OR <AND <SHIP-BOARD ,HERE>
+ <NOT <INNER-DECK ,HERE>>>
+ <EQUAL? ,HERE ,BEACH>>
+
+ <TELL ,YOU-CANT
+"make out much of the house from this angle" ,PCR>)
+ (<OR <INNER-DECK ,HERE>
+ <BELOW-GROUND ,HERE>
+ <EQUAL? ,HERE ,FOREST ,FOLLY ,IN-HEDGE>>
+ <TELL ,YOU-CANT-SEE-ANY "house here" ,PCR>)
+ (<OR <EQUAL? ,HERE ,FRONT-DRIVE ,MAIN-ENTRANCE ,LAWN>
+ <EQUAL? ,HERE ,TRADE-ENTRANCE ,CLEARING ,VERANDA>>
+ <TELL
+"An entrance to" T ,HOUSE " is nearby" ,PCR>)
+ (T
+ <V-LOOK>)>)>>
+
+<ROUTINE CLIMBING ()
+ <COND ;(<FSET? ,HOOPS ,WORNBIT>
+ <TELL ,YOU-CANT
+"get a foothold because the hoops of
+your dress keep pushing away">
+ <COND (<EQUAL? ,HERE ,CLEARING ,BEDROOM>
+ <TELL TR ,VINE>)
+ (<EQUAL? ,HERE ,MAIN-DECK ,FOCSLE
+ ,RIGGING-ROOM ,CROWS-NEST>
+ <TELL TR ,RIGGING-OBJECT>)
+ (T
+ <TELL TR ,LADDER>)>
+ <RFALSE>)
+ (<OR <FSET? ,DRESS ,WORNBIT>
+ <FSET? ,GOWN ,WORNBIT>>
+ <SETG AWAITING-REPLY 2>
+ <QUEUE I-REPLY 2>
+ <TELL "In these clothes? You jest" ,PCR>
+ <RFALSE>)
+ (<EQUAL? ,P-WALK-DIR ,P?UP>
+ <COND (<EQUAL? ,HERE ,CLEARING>
+ <TELL
+"You take a firm grasp on a particularly thick tendril, jerk once to secure
+it, and scamper up the wall like some huge tropical spider. It is easy to
+climb through the window" ,PCR CR>
+ <RETURN ,BEDROOM>)
+ (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <COND (<NOT ,LADDER-HANGING>
+ <TELL ,CANT-GO>
+ <RFALSE>)
+ (<NOT <FSET? ,POOP ,TOUCHBIT>>
+ <COND (<EQUAL? <LOC ,PROTAGONIST> ,LEDGE>
+ <DO-FIRST "be holding" ,LADDER>)
+ (T
+ <DO-FIRST "get on" ,LEDGE>)>
+ <RFALSE>)
+ (T
+ <TELL "You dash up" TR ,LADDER CR>
+ <RETURN ,POOP>)>)
+ (<EQUAL? ,HERE ,MAIN-DECK ,FOCSLE>
+ <SETG WHICH-MAST? ,HERE>
+ <COND (<EQUAL? <LOC ,DAGGER> ,PROTAGONIST>
+ <TELL
+"You bite down on" T ,DAGGER ", freeing " D ,HANDS "s to climb.
+When you stop, you take it back again. ">)>
+ <TELL
+"The wind, a mere breeze on the deck, blows more fiercely" ,PCR CR>
+ <RETURN ,RIGGING-ROOM>)
+ (<EQUAL? ,RIGGING-ROOM ,HERE>
+ <COND (<EQUAL? ,WHICH-MAST? ,FOCSLE>
+ <TELL "You clamber up" TR ,RIGGING-OBJECT CR>
+ <RETURN ,CROWS-NEST>)
+ (T
+ <TELL
+"Above you there only appears to be more of the same, except higher, and
+you can not vouch for the effects on your stomach" ,PCR>
+ <RFALSE>)>)
+ (<EQUAL? ,HERE ,ON-LADDER>
+ <COND (<NOT <FSET? ,POOP ,TOUCHBIT>>
+ <SETG UP-CTR <+ ,UP-CTR 1>>
+ <COND (<NOT <EQUAL? ,UP-CTR 4>>
+ <TELL "You climb up" T ,LADDER>
+ <COND (<EQUAL? ,UP-CTR 2>
+ <TELL ", passing the halfway point">)>
+ <TELL ,PCR>
+ <RFALSE>)
+ (T
+ <TELL
+"You heave " D ,ME " over the stern rail
+and sink breathless to the deck of" TR ,SHIP CR>
+ <DEQUEUE I-LADDER-BLOWS>
+ <RETURN ,POOP>)>)
+ (T
+ <TELL "You dash up" TR ,LADDER CR>
+ <RETURN ,POOP>)>)
+ (<EQUAL? ,HERE ,BY-SHIP>
+ <DEBARK-SKIFF>
+ <RFALSE>)>)
+ (<EQUAL? ,P-WALK-DIR ,P?DOWN>
+ <COND (<EQUAL? ,HERE ,BEDROOM>
+ <TELL
+"Absently, you slide down" T ,VINE ". You're getting quite adept at
+clambering about" ,PCR CR>
+ <RETURN ,CLEARING>)
+ (<EQUAL? ,HERE ,CROWS-NEST ,RIGGING-ROOM>
+ <TELL
+"You half-climb, half-fall, down to the deck" ,PCR CR>
+ <RETURN ,WHICH-MAST?>)
+ (<EQUAL? ,HERE ,POOP>
+ ;<COND (<IN? ,HOOPS ,PROTAGONIST>
+ <TELL
+,YOU-CANT "carry" T ,HOOPS " as you climb!">
+ <RFALSE>)>
+ ;<COND (<ANYTHING-HELD>
+ <ROB ,PROTAGONIST ,HERE>
+ <TELL
+"You drop all you carry on the deck, and">)
+ (T
+ <TELL "You">)>
+ <TELL "You climb down to opposite" TR ,LEDGE CR>
+ <RETURN ,ON-LADDER>)
+ (<EQUAL? ,HERE ,ON-LADDER>
+ <COND (,SKIFF-TIED
+ <SETG SKIFF-TIED <>>
+ <TELL
+"Freeing your feet from the rungs, you slide down
+the wet rope to the skiff, and quickly untie it from the ship" ,PCR CR>
+ <RETURN ,BY-SHIP>)
+ (T
+ <TELL "A watery grave awaits you that way." CR>
+ <RFALSE>)
+ ;(T
+ <TELL
+"Letting loose your grip on your sanity as well
+as on the rope ladder, you plummet into the sea" ,PCR>
+ <COND (,BOY-DRESS?
+ <JIGS-UP
+"Flailing about in the water just tires you.">)
+ (T
+ <JIGS-UP
+"Your skirts, until sodden, hold you above water.
+Then they carry you down into the depths.">)>
+ <RFALSE>)>)>)>>
+
+<OBJECT FIRE
+ (IN LOCAL-GLOBALS)
+ (DESC "fire")
+ (SYNONYM FIRE FIREPIT PIT)
+ (ADJECTIVE WARM SMOKY)
+ (FLAGS ;BURNBIT ONBIT)
+ (ACTION FIRE-F)>
+
+<ROUTINE FIRE-F ()
+ <COND (<VERB? OFF>
+ <IMPOSSIBLES>)
+ (<VERB? ON PUT PUT-ON THROW>
+ <PERFORM ,V?BURN ,PRSO ,FIRE>
+ <RTRUE>
+
+ ;<COND (<PRSO? ,CANDLE>
+ <COND (<FSET? ,CANDLE ,ONBIT>
+ <TELL "The candle is already lit" ,PCR>)
+ (T
+ <FSET ,CANDLE ,ONBIT>
+ <TELL
+"You tip the end of the candle into the heat
+until with a small burst it flames up" ,PCR>)>)>)
+ (<VERB? TELL-ABOUT>
+ <RFALSE>)
+ (T
+ <UNIMPORTANT-THING>)>>
+
+<OBJECT STAIRS
+ (IN LOCAL-GLOBALS)
+ (DESC "stair")
+ (SYNONYM STAIR STAIRS STAIRW STEP)
+ (ADJECTIVE WOOD ROCK WET)
+ (ACTION STAIRS-F)>
+
+<ROUTINE STAIRS-F ()
+ <COND (<VERB? CLIMB ;CLIMB-UP>
+ <COND (<EQUAL? ,HERE ,MAIN-DECK>
+ <DO-WALK ,P?NORTH>)
+ (T
+ <DO-WALK ,P?UP>)>)
+ (<VERB? CLIMB-DOWN>
+ <DO-WALK ,P?DOWN>)
+ (<AND <VERB? THROW>
+ <PRSI? ,STAIRS>>
+ <WASTES>)
+ (<VERB? EXAMINE>
+ <COND (<EQUAL? ,HERE ,HOLD>
+ <TELL "Steep stairs mount up to" TR ,HATCH>)
+ (<EQUAL? ,HERE ,MAIN-DECK>
+ <COND (<FSET? ,HATCH ,OPENBIT>
+ <TELL
+,STEEP-STAIRS "down from " T ,HATCH ". Another leads">)
+ (T
+ <TELL CTHE ,STAIRS " lead">)>
+ <TELL " to the foredeck" ,PCR>)
+ (T <RFALSE>)>)>>
+
+;"LAFS-BED, CAPT-BED, CABIN-BED, COT, GUEST-BED = all use BED-F"
+
+<ROUTINE BED-F ("OPTIONAL" (VARG <>) "AUX" THIS-BED)
+ <COND (.VARG
+ <COND (<AND <EQUAL? .VARG ,M-BEG>
+ <OR <VERB? WALK>
+ <AND ,PRSO
+ <VERB? TAKE>
+ <NOT <PRSO? ,HRING ,LRING>>
+ <NOT <IN? ,PRSO ,GLOBAL-OBJECTS>>
+ <NOT <EQUAL? <LOC ,PROTAGONIST>
+ <LOC ,PRSO>>>>>>
+ <DO-FIRST "stand up">
+ <RFATAL>)
+ (T
+ <RFALSE>)>)
+ (<AND <VERB? DISEMBARK STAND>
+ <IN? ,LAFOND ,LAFS-BED>>
+ <TELL
+"Lafond slams you back into the feather mattress" ,PCR>)
+ (<AND <VERB? ENTER BOARD>
+ <EQUAL? <LOC ,PROTAGONIST> ,LAFS-ROOM>
+ <IN? ,LAFOND ,HERE>>
+ <TELL D ,LAFOND
+" stops you. \"I'll tell you when to do that.\"" CR>)
+ ;(<VERB? MAKE>
+ <V-CLEAN>)
+ (<VERB? EXAMINE>
+ <COND (<AND <SET THIS-BED <COND (<EQUAL? ,HERE ,CABIN>
+ ,CABIN-BED)
+ (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ ,CAPT-BED)>>
+ <NOT <FIRST? .THIS-BED>>>
+ <TELL
+"Someone appears to have tumbled out of it in a hurry">)
+ (<EQUAL? ,HERE ,LAFS-ROOM>
+ <TELL
+"You gaze at the purple and gold bed, fearing it is your destiny">)
+ (<EQUAL? ,HERE ,CELL-1>
+ <TELL
+"It is an uncomfortable canvas cot, old and torn">)
+ (T
+ <RFALSE>)>
+ <TELL ,PCR>)
+ (<VERB? LOOK-UNDER>
+ <COND (<QUEUED? ,I-COFFER> ;"which would only be in CABIN"
+ <TELL ,YOU-SEE A ,COFFER " ">
+ <FCLEAR ,COFFER ,NDESCBIT>
+ <FSET ,COFFER ,TOUCHBIT>)
+ (T <TELL ,THERES-NOTHING>)>
+ <TELL "under" TR ,PRSO>)
+ (<VERB? MOVE PUSH>
+ <TELL "It is nailed to the floor" ,PCR>)
+ (<AND <VERB? PUT-UNDER>
+ <EQUAL? ,HERE ,CAPT-QUARTERS ,CABIN>>
+ <COND (<PRSO? ,ME>
+ <PERFORM ,V?CRAWL-UNDER ,CABIN-BED>
+ <RTRUE>)
+ (<PRSO? ,RETICULE>
+ <RFALSE>
+ ;<PERFORM ,V?DROP ,PRSO>
+ ;<RTRUE>)
+ (T
+ <TELL
+"You do so, but the ship rolls to one side and" T ,PRSO " rolls out" ,PCR>
+ <MOVE ,PRSO ,HERE>)>)>>
+
+
+<OBJECT CURTAIN ;"in CAPT-QUARTERS and LANDING"
+ (IN LOCAL-GLOBALS)
+ (DESC "curtain")
+ (SYNONYM CURTAIN)
+ (FLAGS DOORBIT)
+ (ACTION CURTAIN-F)>
+
+<ROUTINE CURTAIN-F ()
+ <COND (<VERB? OPEN MOVE FIDDLE LOOK-BEHIND>
+ <TELL ,PULL-FABRIC
+" Behind it," A ,CUPBOARD-OBJECT " mostly blocks the doorway." CR>
+ ;<TELL
+"You push" T ,CURTAIN " aside momentarily.
+Behind it," A ,CUPBOARD-OBJECT " mostly blocks the doorway." CR>)
+ (<VERB? CLOSE>
+ <TELL ,ALREADY-IS>)
+ (<VERB? WALK WALK-TO>
+ <TELL "Please indicate a " D ,INTDIR ,PCR>)
+ ;(<VERB? LOOK-BEHIND>
+ <PERFORM ,V?PUSH ,CUPBOARD-OBJECT>
+ <RTRUE>)>>
+
+;"Windows in CABIN, CAPT-QUARTERS, BEDROOM"
+;"LIB-WINDOW in Library and By-house"
+<OBJECT WINDOW
+ (IN LOCAL-GLOBALS)
+ (DESC "window")
+ (SYNONYM GLASS WINDOW PORTHOLE)
+ (ADJECTIVE LARGE GLASS SMALL PANE PANES)
+ (ACTION WINDOW-F)>
+
+<ROUTINE WINDOW-F ()
+ <COND (<VERB? OPEN>
+ <COND (<NOT <FSET? ,WINDOW ,OPENBIT>>
+ <COND (<EQUAL? ,HERE ,CABIN>
+ <TELL
+"This isn't the opening kind of porthole" ,PCR>)
+ (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <TELL "These windows don't open" ,PCR>)
+ (<EQUAL? ,HERE ,LIBRARY ,BY-HOUSE>
+ <OPEN-CLOSE ,LIB-WINDOW>)
+ (T
+ <TELL "That's not necessary" ,PCR>)>)
+ (T
+ <TELL "It's already open" ,PCR>)>)
+ (<VERB? CLOSE>
+ <COND (<EQUAL? ,HERE ,LIBRARY ,BY-HOUSE>
+ <OPEN-CLOSE ,LIB-WINDOW>)
+ (T
+ <TELL ,BEAUTIFUL-NIGHT>)>)
+ (<VERB? EXAMINE>
+ <COND (<EQUAL? ,HERE ,CABIN>
+ <TELL
+"Through the porthole you see the bow of the pirate ship bucking in
+the high seas, lit by the fires burning on deck. It is called the \""
+D ,SHIP ".\" Odd, that was your mother's name" ,PCR>)
+ (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <PERFORM ,V?EXAMINE ,LEDGE>
+ <RTRUE>)
+ (<EQUAL? ,HERE ,LIBRARY ,BY-HOUSE>
+ <TELL ,YOU-SEE ,DARKNESS TR ,WINDOW>)>)
+ (<VERB? LOOK-INSIDE>
+ <COND (<EQUAL? ,CABIN ,HERE>
+ <PERFORM ,V?EXAMINE ,WINDOW>
+ <RTRUE>)
+ (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <COND (,LADDER-HANGING
+ <QUEUE I-SEE-LADDER 2>
+ <TELL
+"A rope " D ,LADDER " twists by in the breeze, and the">)
+ (T
+ <TELL "The">)>
+ <TELL " moon beckons across the lagoon to " D ,ISLAND>
+ <COND (,SKIFF-TIED
+ <TELL ". Moored to the stern is" A ,SKIFF>)>
+ <TELL ".">
+ <I-LOOK-SEA <>>
+ <CRLF>)
+ (<EQUAL? ,HERE ,LIBRARY ,BY-HOUSE>
+ <PERFORM ,V?EXAMINE ,LIB-WINDOW>
+ <RTRUE>)
+ (<EQUAL? ,HERE ,BEDROOM>
+ <TELL
+"It has a lovely view of grey-green palm trees extending for miles" ,PCR>)
+ (T
+ <TELL ,YOU-SEE ,DARKNESS TR ,WINDOW>)>)
+ (<VERB? MUNG>
+ <COND (<NOT ,PRSI>
+ <PROPOSE>)
+ (<PRSI? ,COFFER>
+ <PERFORM ,V?PUT-THROUGH ,COFFER ,WINDOW>
+ <RTRUE>)
+ (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <TELL ,YOULL-HAVE-TO
+"find something else to break" T ,WINDOW " with" ,PCR>)
+ (T
+ <TELL "Then again, a lady would just open it." CR>)>)
+ (<VERB? KILL>
+ <COND (<NOT ,PRSI>
+ <TELL "You haven't the strength to damage" TR ,WINDOW>)
+ (T
+ <PERFORM ,V?MUNG ,PRSO ,PRSI>
+ <RTRUE>)>)
+ (<VERB? THROW PUT-THROUGH PUT>
+ <COND (<EQUAL? ,HERE ,CABIN>
+ <COND (<VERB? THROW>
+ <V-THROW>)
+ (T
+ <TELL
+"It doesn't fit through the porthole" ,PCR>)>)
+ (<PRSO? ,COFFER>
+ <COND (<IN? ,HERO ,HERE>
+ <TELL
+"Jamison stops you, \"Nay, lady, glass is expensive.\"" CR>
+ <RTRUE>)>
+ <REMOVE ,PRSO>
+ <FSET ,LEDGE ,MUNGBIT>
+ <SETG SCORE <+ ,SCORE 1>>
+ <TELL
+"You hurl" T ,COFFER " through" T ,WINDOW ", sending it and a shower of glass
+into the sea. " CTHE ,LEDGE " now looks deep enough to sit upon" ,PCR>)
+ (<AND <NOT <FSET? ,LEDGE ,MUNGBIT>>
+ <EQUAL? ,HERE ,CAPT-QUARTERS>>
+ <TELL CTHE ,WINDOW " isn't open" ,PCR>)
+ (<PRSO? ,HANDS>
+ <TELL ,HUH>)
+ ;(<PRSO? ,HOOPS>
+ <RFALSE>)
+ (T
+ <PUT-OBJ-THRU-WINDOW>)>)
+ (<VERB? ENTER EXIT DISEMBARK LEAP-OFF BOARD>
+ <COND (<EQUAL? ,HERE ,CABIN>
+ <IMPOSSIBLES>)
+ (<EQUAL? <LOC ,PROTAGONIST> ,CAPT-QUARTERS>
+ <PERFORM-PRSA ,LEDGE>
+ <RTRUE>)
+ (<EQUAL? ,HERE ,LIBRARY>
+ <DO-WALK ,P?EAST>)
+ (<EQUAL? ,HERE ,BY-HOUSE>
+ <DO-WALK ,P?WEST>)
+ (<EQUAL? ,HERE ,BEDROOM>
+ <DO-WALK ,P?DOWN>)
+ (T
+ <WASTES>)>)>>
+
+<ROUTINE PUT-OBJ-THRU-WINDOW ()
+ <COND (<AND <EQUAL? ,HERE ,CAPT-QUARTERS>
+ <NOT <FSET? ,LEDGE ,MUNGBIT>>>
+ <TELL "The window isn't open" ,PCR>)
+ (<PRSO? ,RETICULE>
+ <RFALSE>
+ ;<TELL "You daren't drop" TR ,PRSO>)
+ (T
+ <PRONOUN>
+ <TELL " fall">
+ <COND (<NOT <FSET? ,PRSO ,PLURALBIT>>
+ <TELL "s">)>
+ <COND (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <REMOVE ,PRSO>
+ <TELL " into the seas below">)
+ (<EQUAL? ,HERE ,BEDROOM>
+ <MOVE ,PRSO ,CLEARING>
+ <TELL " onto the forest floor">)
+ (<EQUAL? ,HERE ,LIBRARY ,LAFS-ROOM>
+ <MOVE ,PRSO ,BY-HOUSE>
+ <TELL " into the darkness of the hedge">)
+ (<EQUAL? ,HERE ,BY-HOUSE>
+ <MOVE ,PRSO ,LIBRARY>
+ <TELL
+" with a thunk over",THE-EDGE T ,LIB-WINDOW>)>
+ <TELL ,PCR>)>>
+
+
+<ROUTINE OPEN-CLOSE (OBJ "OPTIONAL" (OPETELL <>) (CLOSETELL <>))
+ <COND (<VERB? OPEN RAISE MOVE>
+ <COND (<FSET? .OBJ ,OPENBIT>
+ <COND (<FSET? .OBJ ,PLURALBIT>
+ <TELL "They are">)
+ (T
+ <TELL "It is">)>
+ <TELL " already open.">)
+ (T
+ <FSET .OBJ ,OPENBIT>
+ <FSET .OBJ ,TOUCHBIT>
+ <COND (.OPETELL
+ <TELL .OPETELL ".">)
+ (<AND <EQUAL? .OBJ ,CUPBOARD-OBJECT>
+ <NOT <EQUAL? ,HERE ,SLEEPING-CUPBOARD>>>
+ <TELL "Opened. ">
+ <PERFORM ,V?LOOK-INSIDE ,CUPBOARD-OBJECT>
+ <RTRUE>)
+ (<OR <NOT <FIRST? .OBJ>>
+ <FSET? .OBJ ,TRANSBIT>
+ <FSET? .OBJ ,DOORBIT>>
+ <TELL "Opened.">)
+ (T
+ <TELL "Opening" T .OBJ " reveals">
+ <COND (<NOT <DESCRIBE-NOTHING>>
+ <TELL ".">)>
+ ;<NOW-LIT?>
+ <RTRUE>)>)>
+ ;<COND (<EQUAL? ,SLEEPING-CUPBOARD ,HERE>
+ <TELL " " ,YOU-SEE " better now.">)>
+ <CRLF>)
+ (<VERB? CLOSE>
+ <COND (<NOT <FSET? .OBJ ,OPENBIT>>
+ <COND (<FSET? .OBJ ,PLURALBIT>
+ <TELL "They are">)
+ (T
+ <TELL "It is">)>
+ <TELL " already closed" ,PCR>)
+ (T
+ <FCLEAR .OBJ ,OPENBIT>
+ <COND (<EQUAL? .OBJ ,MANACLES>
+ <FSET .OBJ ,LOCKEDBIT>)>
+ <COND (.CLOSETELL
+ <TELL .CLOSETELL ".">)
+ (T
+ <TELL "Shut.">
+ <COND (<PRSO? ,CUPBOARD-OBJECT>
+ ;<FCLEAR ,SLEEPING-CUPBOARD ,ONBIT>
+ <COND (<EQUAL? ,SLEEPING-CUPBOARD ,HERE>
+ <TELL
+" You imagine Jamison being lulled to sleep by
+the waves lapping against the ship.">)>)
+ ;(T
+ <NOW-DARK?>)>)>
+ <CRLF>)>)
+ ;(T
+ <TELL
+"You are the proud owner of Bug #119. Please report circumstances" ,PCR>)>>
+
+<OBJECT TREE
+ (IN LOCAL-GLOBALS)
+ (DESC "tree")
+ (SYNONYM TREE TREES)
+ (ACTION TREE-F)>
+
+<ROUTINE TREE-F ()
+ <COND (<VERB? CLIMB ;CLIMB-UP>
+ <TELL "The trees are all unclimbable." CR>)>>
+
+<ROUTINE TOUCHING? (THING)
+ <COND (<AND <PRSO? .THING>
+ <OR <EQUAL? ,PRSA ,V?ALARM ,V?BITE ,V?BOARD>
+ <EQUAL? ,PRSA ,V?CLEAN ,V?CLIMB-OVER ,V?CRAWL-UNDER>
+ <EQUAL? ,PRSA ,V?CLIMB ,V?CLIMB-DOWN ,V?CLIMB-ON>
+ <EQUAL? ,PRSA ,V?CUT ,V?DANCE ,V?EMBRACE>
+ <EQUAL? ,PRSA ,V?ENTER ;,V?FEED ,V?FIDDLE>
+ <EQUAL? ,PRSA ,V?KICK ,V?KILL ,V?KISS>
+ <EQUAL? ,PRSA ,V?KNOCK ,V?LOOK-UNDER ,V?LOOK-INSIDE>
+ <EQUAL? ,PRSA ,V?MOVE ,V?MUNG ,V?WRING>
+ <EQUAL? ,PRSA ,V?ON ,V?OFF ,V?OPEN ,V?CLOSE>
+ <EQUAL? ,PRSA ,V?PICK ,V?PUSH ,V?RAISE>
+ <EQUAL? ,PRSA ,V?SET ,V?STAND-ON ,V?SWIM ,V?TIE>
+ <EQUAL? ,PRSA ;,V?TASTE ,V?THROW ,V?RAPE>
+ <EQUAL? ,PRSA ,V?TAKE ,V?TOUCH ,V?SHAKE>
+ <EQUAL? ,PRSA ,V?UNLOCK ,V?LOCK ,V?UNTIE>>>
+ <RTRUE>)
+ (<AND <PRSI? .THING>
+ <VERB? GIVE PUT PUT-ON PUT-UNDER>>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE CANT-SEE (OBJ "AUX" (WRD <>))
+ <SET WRD <GET ,P-NAMW <COND (<PRSO? .OBJ> 0)
+ (T 1)>>>
+ <COND (<NOT .WRD>
+ <SET WRD <GET ,P-ADJW <COND (<PRSO? .OBJ> 0)
+ (T 1)>>>)>
+ <SETG P-WON <>>
+ <TELL ,YOU-CANT>
+ <TELL "see">
+ <COND (<AND .OBJ
+ <NOT <NAME? .WRD>>>
+ <TELL " any">)>
+ <COND ;(<NOT .OBJ>
+ <TELL " " .STRING>)
+ (<EQUAL? .OBJ ,PRSI>
+ <PRSI-PRINT>)
+ (T
+ <PRSO-PRINT>)>
+ <TELL " here." CR>
+ <STOP>>
+
+<ROUTINE CANT-VERB-A-PRSO (STRING)
+ <TELL ,YOU-CANT .STRING A ,PRSO "!" CR>>
+
+<ROUTINE TELL-HIT-HEAD ()
+ <TELL
+"You knock your brow against" T ,PRSO " as you attempt this." CR>>
+
+<ROUTINE NOUN-USED (TEST-NOUN OBJ)
+ <COND (<AND <PRSO? .OBJ>
+ <EQUAL? <GET ,P-NAMW 0> .TEST-NOUN>>
+ <RTRUE>)
+ (<AND <PRSI? .OBJ>
+ <EQUAL? <GET ,P-NAMW 1> .TEST-NOUN>>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE ADJ-USED (TEST-ADJ)
+ <COND (<EQUAL? .TEST-ADJ <GET ,P-ADJW 0> <GET ,P-ADJW 1>>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE OFF-VEHICLE? (OBJ) ;"tells to print GET OFF versus GET OUT OF"
+ <COND (<EQUAL? .OBJ ,LEDGE>
+ <RTRUE>)
+ (<EQUAL? .OBJ ,BENCH>
+ <RTRUE>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE TELL-OPEN/CLOSED (OBJ "OPTIONAL" (AN? <>))
+ <COND (<FSET? .OBJ ,OPENBIT>
+ <COND (.AN?
+ <TELL "n">)>
+ <TELL " open">)
+ (T
+ <TELL " closed">)>>
+
+<ROUTINE WHEE ()
+ <SETG AWAITING-REPLY 2>
+ <QUEUE I-REPLY 2>
+ <TELL "Wasn't that fun?" CR>>
+
+;<ROUTINE IN-YOUR-PACKAGE (STRING)
+ <TELL "This is the " .STRING>
+ <IN-PACKAGE>>
+
+<ROUTINE IN-PACKAGE ()
+ <TELL " that came in your game package.|">>
+
+;<ROUTINE HIS-HER ("OPTIONAL" (CAP-H <>))
+ <COND (.CAP-H
+ <TELL "H">)
+ (T
+ <TELL "h">)>
+ <COND (,MALE
+ <TELL "is">)
+ (T
+ <TELL "er">)>>
+
+;<ROUTINE HER-HIS ("OPTIONAL" (CAP-H <>))
+ <COND (.CAP-H
+ <TELL "H">)
+ (T
+ <TELL "h">)>
+ <COND (,MALE
+ <TELL "er">)
+ (T
+ <TELL "is">)>>
+
+;<ROUTINE HIM-HER ()
+ <COND (<FSET? ,PRSO ,FEMALEBIT>
+ <TELL "her">)
+ (T
+ <TELL "him">)>>
+
+;<ROUTINE HER-HIM ()
+ <COND (,MALE
+ <TELL "her">)
+ (T
+ <TELL "him">)>>
+
+;<ROUTINE HE-SHE ("OPTIONAL" (CAP <>))
+ <COND (,MALE
+ <COND (.CAP
+ <TELL "H">)
+ (T
+ <TELL "h">)>)
+ (T
+ <COND (.CAP
+ <TELL "Sh">)
+ (T
+ <TELL "sh">)>)>
+ <TELL "e">>
+
+;<ROUTINE SHE-HE ("OPTIONAL" (CAP <>))
+ <COND (,MALE
+ <COND (.CAP
+ <TELL "Sh">)
+ (T
+ <TELL "sh">)>)
+ (T
+ <COND (.CAP
+ <TELL "H">)
+ (T
+ <TELL "h">)>)>
+ <TELL "e">>
+
+<ROUTINE CANT-REACH (OBJ)
+ <TELL ,YOU-CANT "reach" T .OBJ>
+ <COND (<NOT <IN? ,PROTAGONIST ,HERE>>
+ <TELL " from" T <LOC ,PROTAGONIST>>)>
+ <TELL ,PCR>>
+
+;<ROUTINE EAGERLY-ACCEPTS ()
+ <MOVE ,PRSO ,PRSI>
+ <TELL "Eagerly," T ,PRSI " accepts" T ,PRSO>>
+
+;<ROUTINE NOT-ON-GROUND (VEHICLE)
+ <TELL "But" T .VEHICLE " isn't on the ground!" CR>>
+
+;<ROUTINE AND-SIDEKICK ("OPTIONAL" (NEW-SIDEKICK-LOC <>))
+ <COND (<VISIBLE? ,SIDEKICK>
+ <COND (.NEW-SIDEKICK-LOC
+ <MOVE ,SIDEKICK .NEW-SIDEKICK-LOC>)>
+ <TELL " and " D ,SIDEKICK>)>>
+
+;<ROUTINE PLAYER-CANT-SEE ()
+ <COND (<NOT ,LIT>
+ <TELL ,TOO-DARK CR>)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE DO-FIRST (STRING "OPTIONAL" (OBJ <>))
+ <TELL ,YOULL-HAVE-TO .STRING>
+ <COND (.OBJ
+ <TPRINT .OBJ>)>
+ <TELL " first." CR>>
+
+<ROUTINE NOT-IN ()
+ <TELL "But" T ,PRSO " isn't ">
+ <COND (<FSET? ,PRSI ,ACTORBIT>
+ <TELL "being held by">)
+ (<FSET? ,PRSI ,SURFACEBIT>
+ <TELL "on">)
+ (T
+ <TELL "in">)>
+ <TELL TR ,PRSI>>
+
+;<ROUTINE NO-LID ()
+ <TELL CTHE ,PRSO " has no lid." CR>>
+
+<ROUTINE SORE (STRING)
+ <TELL "You begin to get a sore " .STRING ,PCR>>
+
+<ROUTINE CANT-USE-THAT-WAY (STRING)
+ <TELL "[" ,YOU-CANT "use " .STRING " that way.]" CR>>
+
+<ROUTINE RECOGNIZE ()
+ <SETG P-WON <>>
+ <TELL "[That sentence isn't one I recognize.]|">>
+
+;<ROUTINE EXPLETIVE ()
+ <TELL " \"Oh ">
+ <COND (<EQUAL? ,NAUGHTY-LEVEL 0>
+ <TELL "shucks">)
+ (<EQUAL? ,NAUGHTY-LEVEL 1>
+ <TELL "damn">)
+ (T
+ <TELL "shit">)>
+ <TELL "! ">>
+
+<ROUTINE PRONOUN ()
+ <COND (<PRSO? ,ME>
+ <TELL "You">)
+ (<FSET? ,PRSO ,PLURALBIT>
+ <TELL "They">)
+ (<PRSO? ,LUCY>
+ <TELL "She">)
+ (<FSET? ,PRSO ,ACTORBIT>
+ <TELL "He">)
+ (T
+ <TELL "It">)>>
+
+
+<ROUTINE REFERRING ("OPTIONAL" (HIM-HER <>))
+ <TELL "I don't see wh">
+ <COND (.HIM-HER
+ <TELL "o">)
+ (T
+ <TELL "at">)>
+ <TELL " you're referring to." CR>>
+
+<ROUTINE NO-ONE-HERE (STRING)
+ <TELL "There's no one here to " .STRING ,PCR>>
+
+<ROUTINE SEE-MANUAL (STRING)
+ <TELL
+"[See the instruction manual section entitled \"Communicating
+With Infocom's Interactive Fiction.\" to properly " .STRING "]" CR>>
+
+<ROUTINE UNIMPORTANT-THING ()
+ <TELL "You have no need for that, milady." CR>
+ ;<TELL "That's not important; leave it alone." CR>>
+
+<ROUTINE PROPOSE ()
+ <SETG AWAITING-REPLY 1>
+ <QUEUE I-REPLY 2>
+ <TELL "And how do you propose to do that?" CR>>
+
+<ROUTINE STOP-QUEUES ()
+ <COND (<RUNNING? ,I-HDANCE>
+ <SETG PARTNER <>>
+ <DEQUEUE I-HDANCE>)
+ (<RUNNING? ,I-HFOLLY>
+ <DEQUEUE I-HFOLLY>)>>
+
+<GLOBAL TANGLED-RIGGING " A tangled mass of rigging hangs down from the mast,
+like many rope ladders woven together.">
+
+<GLOBAL COMMON-LOOKING "Completely common looking ">
+
+<GLOBAL DARKNESS " only darkness beyond">
+
+<GLOBAL DOESNT-RESPOND "He doesn't respond.|">
+
+<GLOBAL IS-CLOSED " is closed">
+
+<GLOBAL STEEP-STAIRS "Steep stairs descend ">
+
+<GLOBAL TINY-GLOW "A tiny glow of fire creeps across a stretch of floor
+-- inside the cage full of ammunition">
+
+<GLOBAL TOO-DARK "It's too dark to see a thing.">
+
+<CONSTANT TOO-DEEP
+"Although the lagoon is warm and clear, it is much too deep.|">
+
+<GLOBAL ISNT-FLUSH " is not flush against the doorsill. ">
+
+<CONSTANT UNLADY "That is thoroughly unladylike behavior.|">
+
+<GLOBAL THOROUGHLY-UNLADYLIKE "It is thoroughly unladylike to ">
+
+<GLOBAL HALFWAY " halfway up the cliff stairs.">
+
+<ROUTINE REPERTOIRE (ACT)
+ <TELL .ACT
+" is not in the repertoire of well-bred young ladies." CR>>
+
+<ROUTINE MAN-IS-DOWN ()
+ <TELL
+,THOROUGHLY-UNLADYLIKE "hit a man when he's down!" CR>>
+
+<GLOBAL YNH "You're not holding">
+
+<CONSTANT PACE "You pace out the steps.|">
+
+<GLOBAL THERES-NOTHING "There's nothing ">
+
+<GLOBAL IT-SEEMS-THAT "It seems that">
+
+<GLOBAL YOU-SEE "You can see">
+
+<GLOBAL YOU-CANT-SEE-ANY "You can't see any ">
+
+<GLOBAL WAY-TO-DO-THAT "way to do that.|">
+
+<GLOBAL YOU-CANT "You can't ">
+
+<GLOBAL YOU-ARENT "You aren't ">
+
+<GLOBAL YOULL-HAVE-TO "You'll have to ">
+
+<GLOBAL YOU-HAVE-ALREADY "You already have">
+
+<ROUTINE NO-TIME-FOR (STR)
+ <TELL "This is no time to " .STR "!|">>
+
+<GLOBAL PULL-FABRIC "You pull the cloth aside momentarily.">
+
+<GLOBAL THE-BACK " only the back of">
+
+<CONSTANT THE-EDGE " the edge of">
+
+<CONSTANT SURPRISE "To your surprise, ">
+
+<GLOBAL THE-BALLROOM "The ballroom is a ">
+
+<GLOBAL YOU-ARE-ALREADY "You're already ">
+
+<ROUTINE MORE-SPECIFIC ()
+ <TELL ,YOULL-HAVE-TO "be more specific." CR>>
+
+<ROUTINE CANT-HURT (STR)
+ <TELL "Your " .STR " could not hurt" TR ,CRULLEY>>
+
+<GLOBAL OVER-HEAD " over the head with">
+
+<CONSTANT DANCE-FLOOR " the dance floor">
+
+<CONSTANT DOESNT-LOOK "It doesn't look like">
+
+<GLOBAL RIEF-DESC "rief descriptions.|">
+
+; "The next four are globals (one routine) for various JIGS-UP"
+
+<GLOBAL SMACK-YOUR-FACE
+" Lafond smacks you hard across the face with the back of his hand,
+\"Fool.\" He casts aside all formalities.">
+
+<GLOBAL FALL-TO-BOTTOM " The fall to the bottom of the well is endless;
+you've lost consciousness by the time the water overtakes you.">
+
+<ROUTINE SAILOR-DEATH ()
+ <TELL ,INDENT "A sailor notices ">
+ <COND (<FSET? ,PANTS ,WORNBIT>
+ <TELL
+"the roundness of your body through the lace of your chemise">)
+ (T
+ <TELL "the \"swish\" of your petticoats">)>
+ <TELL ". \"A woman,\" he gasps, \"free, aboard this ship!\"" CR>
+ <JIGS-UP
+" It's been rather a long time since any of the crew have dealt with the
+fairer sex, and they are a bit rough, despite Rodney Quick's exhortations.">>
+
+<GLOBAL SOMETHING-HITS-YOU "Something cracks over your head,
+knocking you unconscious.|
+ You awaken, cuddled in a huge purple and gold curtained bed, with a
+shocking migraine. The man lying next to you pays no heed to your complaints,
+and commands you in French when you try to defend yourself. He tires of
+you within a few weeks, but lets you work the streets of Santa Ananas.">
+
+<CONSTANT DRAGOONS-SURROUND "Dragoons surround you. ">
+
+;<GLOBAL SPECIFY "specify ">
+
+<ROUTINE LADY-MUST (STRING)
+ <TELL
+"A lady must obtain her father's permission before " .STRING " anyone." CR>>
+
+<ROUTINE FIGURE-IT-OUT ()
+ <TELL ,YOULL-HAVE-TO "figure that out " D, ME ,PCR>>
+
+<GLOBAL SPEECHLESS "You find yourself speechless with dread.|">
+
+<GLOBAL GAME-CAPS "PLUNDERED HEARTS">
+
+<GLOBAL HIT-RETURN "[Press RETURN or ENTER to ">
+
+<GLOBAL POLITE-SOCIETY "That's not done in polite society.|">
+
+<GLOBAL POLITE "That wouldn't be polite.|">
+
+<GLOBAL MOTHER "Mama would have been shocked.|">
+
+<GLOBAL NO-LOITERING "Sorry, no loitering,\" says the butler">
+
+<GLOBAL NO-STRENGTH "You haven't the strength.|">
+
+<GLOBAL PUSHING-YOU-OUT ", pushing you out of the house.|">
+
+<GLOBAL SINEWY-ARM
+"A sinewy arm encircles you, \"Stay, my lady.\"">
+
+<GLOBAL SQUEEZE-THRU " squeeze through the opening between cupboard and
+wall">
+
+<GLOBAL SUICIDE "Suicide is not the answer.|">
+
+<ROUTINE KICKED-OUT ()
+ <TELL ,INDENT>
+ <COND (<EQUAL? ,HERE ,HALL-E>
+ <TELL "A black-garbed " D ,BUTLER>)
+ (T
+ <TELL CTHE ,BUTLER>)>
+ <TELL
+" marches up to you, \"It was made clear at the whippings that villagers
+are not admitted in this house.\" He grasps you by the scruff of the neck
+and propels you headfirst out the front door" ,PCR CR>
+ <GOTO ,MAIN-ENTRANCE>>
+
+<GLOBAL LOOK-AROUND "Look around you.|">
+
+<GLOBAL LAUGHS "He laughs triumphantly and pulls you into the dance.|">
+
+<GLOBAL CANT-FROM-HERE "You can't do that from here.|">
+
+<GLOBAL CANT-GO "You can't go that way.|">
+
+<GLOBAL HOLDING-IT "You're holding it!|">
+
+;<GLOBAL CANT-SMELL "You can't smell any odor here.|">
+
+<ROUTINE NICK-RUNS-OFF ()
+ <COND (<AND <RUNNING? ,I-CCLIMBS-UP>
+ <EQUAL? ,CRULLEY-CTR 10>>
+ <QUEUE I-CCLIMBS-UP 2>)>
+ <MOVE ,HERO ,GALLERY>
+ <MOVE ,LAFOND ,GALLERY>
+ <MOVE ,DAD ,GALLERY>
+ <MOVE ,LUCY ,GALLERY>
+ <SETG HERO-CTR 1>
+ <QUEUE I-DUEL -1>
+ <FSET ,RAPIER ,NDESCBIT>
+ <FCLEAR ,BALLROOM ,EVERYBIT> ;"getting rid of crew"
+ <TELL ,INDENT
+"Nick kisses you briefly, a butterfly touching your lips,">
+ <COND (<EQUAL? <META-LOC ,RAPIER> ,HERE ,PASSAGE-4 ,CELL-4>
+ ;<OR <VISIBLE? ,RAPIER>
+ <IN? ,RAPIER ,PASSAGE-4>
+ <IN? ,RAPIER ,CELL-4>>
+ ;<OR <HELD? ,RAPIER ,HERE>
+ <HELD? ,RAPIER ,PASSAGE-4>
+ <HELD? ,RAPIER ,CELL-4>>
+ <MOVE ,RAPIER ,HERO>
+ <TELL " then seizes his rapier">)>
+ <TELL " and runs off to the north. Cookie calls a
+breathless \"Hullo, Cap'n\" to him as he races past" ,PCR>>
+
+<GLOBAL NOUN-MISSING "[There seems to be a noun missing in that sentence.]|">
+
+;<GLOBAL ONLY-BLACKNESS "You see only blackness.|">
+
+;<GLOBAL SENILITY-STRIKES "You already did that. Senility strikes again!|">
+
+<GLOBAL INDENT " ">
+
+<GLOBAL PCR ".|">
+
+<GLOBAL ELLIPSIS "...||">
+
+<GLOBAL NOTHING-HAPPENS "Nothing happens.|">
+
+;<GLOBAL NOT-ENOUGH "There's not enough liquid to drink.|">
+
+<GLOBAL FAILED "Failed.|">
+
+<GLOBAL OK "Aye-aye.|">
+
+<GLOBAL HUH "Pardon?|">
+
+<GLOBAL ALREADY-IS "It already is.|">
+
+<CONSTANT ALREADY-ARE "They already are.|">
+
+<CONSTANT DO-YOU-WANT " do you want to ">
+
+<GLOBAL BEAUTIFUL-NIGHT "But it's such a beautiful night!|">
+
+<GLOBAL BROTHEL " over your white linen chemise. Mama would say
+you belonged in a brothel.|">
+
+<GLOBAL BUTLER-SUMMONS " walks up to you. \"M. Lafond
+requests your presence in his room immediately, Miss.\" He points ">
+
+<CONSTANT CALLS-AFTER " calls after you.||">
+
+<GLOBAL NOTHING-NEW "This reveals nothing new.|">
+
+<GLOBAL NO-VERB "[There was no verb in that sentence!]|">
+
+;<GLOBAL NOT-APPROPRIATE "This is not the appropriate time or place.|"> \ No newline at end of file
diff --git a/hero.zap b/hero.zap
new file mode 100644
index 0000000..4a2eaa6
--- /dev/null
+++ b/hero.zap
@@ -0,0 +1,706 @@
+
+
+ .FUNCT HERO-F,OARG=0
+ ZERO? OARG /?CCL3
+ EQUAL? OARG,M-DESC? /TRUE
+ EQUAL? HERE,FOLLY /?CND6
+ PRINT INDENT
+?CND6: EQUAL? HERE,CABIN \?CCL10
+ PRINT CTHE-PIRATE-CAPTAIN
+ PRINTI "is studying you"
+ JUMP ?CND8
+?CCL10: EQUAL? HERE,DEUX-DECK \?CCL12
+ PRINT CTHE-PIRATE-CAPTAIN
+ PRINTI "stands protectively a few steps behind you"
+ JUMP ?CND8
+?CCL12: EQUAL? HERE,CAPT-QUARTERS \?CCL14
+ PRINTD HERO
+ PRINTI " is adjusting his clothes"
+ JUMP ?CND8
+?CCL14: CALL RUNNING?,I-DUEL
+ ZERO? STACK /?CCL16
+ PRINTI "Battered and bruised, Nicholas can hardly stand"
+ JUMP ?CND8
+?CCL16: FSET? HERO,DEADBIT \?CCL18
+ PRINT HERO-EYES-CLOSED
+ JUMP ?CND8
+?CCL18: EQUAL? HERE,BEACH \?CCL20
+ PRINTI "Nicholas "
+ FSET? LAFOND,DEADBIT \?CCL23
+ PRINTI "walks toward you, smiling wearily"
+ JUMP ?CND8
+?CCL23: GRTR? LAFOND-CTR,4 \?CCL25
+ PRINTI "and Lafond are fighting"
+ JUMP ?CND8
+?CCL25: PRINTI "stands alone at one edge of the beach"
+ JUMP ?CND8
+?CCL20: CALL QUEUED?,I-ENDGAME
+ ZERO? STACK /?CCL27
+ PRINTI "Nicholas stands, half-supported by Lucy and"
+ CALL TPRINT,DAD
+ JUMP ?CND8
+?CCL27: EQUAL? HERE,BALLROOM \FALSE
+ PRINTI "Nicholas looks quite rakish, in red velvet and white, his rapier flashing in the light of the "
+ PRINTD CHANDELIER
+?CND8: PRINTC 46
+ RTRUE
+?CCL3: EQUAL? HERO,WINNER \?CCL31
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK /?CCL34
+ EQUAL? HERE,GALLERY,STAIRTOP \?CCL34
+ PRINT SPEECHLESS
+ RTRUE
+?CCL34: EQUAL? HERE,BEACH \?CCL38
+ CALL RUNNING?,I-ENDGAME
+ ZERO? STACK /?CCL38
+ FSET? LAFOND,DEADBIT /?CCL43
+ GRTR? LAFOND-CTR,4 \?CCL43
+ PRINT SPEECHLESS
+ RTRUE
+?CCL43: EQUAL? PRSA,V?WALK,V?LOOK-INSIDE,V?HALT /?CTR46
+ EQUAL? PRSA,V?CLIMB-DOWN \?CCL47
+?CTR46: CALL H-JIGS-UP,STR?316
+ RSTACK
+?CCL47: CALL FAILS-TO-NOTICE
+ RSTACK
+?CCL38: FSET? HERO,DEADBIT \?CCL51
+ PRINT DOESNT-RESPOND
+ RTRUE
+?CCL51: EQUAL? PRSA,V?FOLLOW \?CCL53
+ EQUAL? PRSO,ME \?CCL53
+ CALL RUNNING?,I-HDANCE
+ ZERO? STACK /?CCL53
+ FSET? DAD,TOUCHBIT \?CCL53
+ SET 'HDAD-SPEECH,TRUE-VALUE
+ PRINTR """I will follow you anywhere you please, but first I must kill Lafond."""
+?CCL53: EQUAL? PRSA,V?I-LOVE-YOU \?CCL59
+ EQUAL? PRSO,HERO,MAN \?CCL62
+ PRINTR "He smiles at you warmly, his eyes full of passion."
+?CCL62: EQUAL? PRSO,LAFOND \?CCL64
+ CALL RUNNING?,I-HFOLLY
+ ZERO? STACK \?CTR66
+ CALL RUNNING?,I-HDANCE
+ ZERO? STACK /?CCL67
+?CTR66: REMOVE HERO
+ CALL STOP-QUEUES
+ PRINTR "He looks at you in disgust and walks away."
+?CCL67: PRINTR """Don't jest,"" he says."
+?CCL64: PRINTR "He isn't all that interested."
+?CCL59: EQUAL? PRSA,V?LEAVE \?CCL71
+ FSET? BEACH,TOUCHBIT \?CCL74
+ SET 'AWAITING-REPLY,4
+ CALL QUEUE,I-REPLY,2
+ PRINTR "He catches your arm, ""Nay, can you mean that?"""
+?CCL74: PRINTR """I have business to attend to here, and have no intention of leaving."""
+?CCL71: EQUAL? PRSA,V?READ \?CCL76
+ EQUAL? PRSO,LETTER \?CCL76
+ CALL PERFORM,V?TELL-ABOUT,ME,LETTER
+ RTRUE
+?CCL76: EQUAL? PRSA,V?TELL-ABOUT \?CCL80
+ EQUAL? PRSO,ME \?CCL80
+ EQUAL? PRSI,LETTER \?CCL85
+ PRINTI """Your father wrote it for you."""
+ CRLF
+ JUMP ?CND83
+?CCL85: EQUAL? PRSI,HRING \?CCL87
+ SET 'WINNER,PROTAGONIST
+ CALL PERFORM,V?TAKE,HRING
+ RTRUE
+?CCL87: EQUAL? PRSI,LAFOND \?CCL89
+ PRINTI """I abhor the fiend."" He clenches a fist."
+ CRLF
+ JUMP ?CND83
+?CCL89: EQUAL? PRSI,DAD \?CCL91
+ CALL RUNNING?,I-HDANCE
+ ZERO? STACK /?CCL94
+ SET 'HDAD-SPEECH,TRUE-VALUE
+ GET HERO-SPEECHES,0
+ PRINT STACK
+ PRINT PCR
+ JUMP ?CND83
+?CCL94: CALL RUNNING?,I-HFOLLY
+ ZERO? STACK /?CCL96
+ PRINTI """Let's not discuss"
+ CALL TPRINT,DAD
+ PRINTI " just now,"" he says, kissing your neck"
+ PRINT PCR
+ JUMP ?CND83
+?CCL96: PRINTI """I admire and respect your father greatly."""
+ CRLF
+ JUMP ?CND83
+?CCL91: CALL FAILS-TO-NOTICE
+?CND83: CALL STOP
+ RSTACK
+?CCL80: EQUAL? PRSA,V?TAKE \?CCL98
+ EQUAL? PRSO,FLOWER \?CCL98
+ SET 'WINNER,PROTAGONIST
+ CALL PERFORM,V?GIVE,FLOWER,HERO
+ SET 'WINNER,HERO
+ RTRUE
+?CCL98: CALL COM-CHECK,HERO >OARG
+ ZERO? OARG /FALSE
+ EQUAL? OARG,M-FATAL /FALSE
+ RTRUE
+?CCL31: EQUAL? PRSA,V?EXAMINE \?CCL107
+ FSET? HERO,DEADBIT \?CCL110
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK /?CCL113
+ PRINTR "He lies in a pool of blood."
+?CCL113: PRINT HERO-EYES-CLOSED
+ RTRUE
+?CCL110: EQUAL? HERE,CAPT-QUARTERS,BALLROOM,FOLLY \?CCL115
+ ZERO? ENDGAME \?CCL115
+ PRINTI "Jamison is finely dressed, in red velvet coat and full breeches, with a long gold embroidered vest and waterfalls of white lace at his neck, wrists and boottops. His rapier is bedecked with a fringed gold ribbon. He wears no wig, his unpowdered hair tied neatly at the back of his neck"
+ PRINT PCR
+ RTRUE
+?CCL115: PRINTI "Jamison carries an aura of power unusual in men so slim and tall, the strength of a willow in his hard seaworn body, straight shouldered and resilient. "
+ PRINT NUTBROWN
+ PRINTI "A jagged scar etches one cheek, harsh against the warmth of his limpid blue eyes"
+ PRINT PCR
+ RTRUE
+?CCL107: EQUAL? PRSA,V?ROLL,V?SAVE-SOMETHING \?CCL119
+ CALL RUNNING?,I-ENDGAME
+ ZERO? STACK /?CCL119
+ SET 'WINNER,HERO
+ CALL PERFORM,V?HALT,ROOMS
+ SET 'WINNER,PROTAGONIST
+ RTRUE
+?CCL119: FSET? HERO,DEADBIT \?CCL123
+ EQUAL? PRSA,V?GIVE \?CCL126
+ EQUAL? PRSO,SALTS \?CCL126
+ CALL REVIVE-HERO
+ RSTACK
+?CCL126: EQUAL? PRSA,V?THROW-AT,V?PUT-ON,V?BLOW \?CCL130
+ EQUAL? PRSO,SPICES \?CCL130
+ PRINTR "He sneezes involuntarily, unconscious."
+?CCL130: EQUAL? PRSA,V?MUNG,V?KICK,V?KILL \?CCL134
+ CALL MAN-IS-DOWN
+ RSTACK
+?CCL134: EQUAL? PRSA,V?MOVE \?CCL136
+ PRINTR "He's too heavy."
+?CCL136: EQUAL? PRSA,V?EMBRACE,V?KISS \?CCL138
+ PRINTI "You press your lips to his cold mouth. "
+ PRINT DOESNT-RESPOND
+ RTRUE
+?CCL138: EQUAL? PRSA,V?ASK-ABOUT,V?TELL-ABOUT,V?TELL \?PRD142
+ EQUAL? PRSO,HERO \?CTR139
+?PRD142: CALL TOUCHING?,HERO
+ ZERO? STACK /FALSE
+?CTR139: PRINT DOESNT-RESPOND
+ RTRUE
+?CCL123: EQUAL? PRSA,V?GIVE \?CCL146
+ EQUAL? PRSO,SALTS \?CCL149
+ CALL REVIVE-HERO
+ RSTACK
+?CCL149: EQUAL? PRSO,BANKNOTE \?CCL151
+ PRINTD HERO
+ PRINTI " returns"
+ CALL TPRINT,BANKNOTE
+ PRINTI " to you"
+ PRINT PCR
+ RTRUE
+?CCL151: EQUAL? PRSO,FLOWER \?CCL153
+ PRINTR "He prevents you, smiling. ""It looks much too pretty against your hair. Keep it."""
+?CCL153: EQUAL? PRSO,COFFER \FALSE
+ CALL FAILS-TO-NOTICE
+ RSTACK
+?CCL146: EQUAL? PRSA,V?ALARM \?CCL157
+ EQUAL? PRSI,SALTS /?CCL160
+ PRINT YOU-CANT
+ PRINTR "revive him with that!"
+?CCL160: CALL HELD?,SALTS
+ ZERO? STACK /?CCL162
+ CALL REVIVE-HERO
+ RSTACK
+?CCL162: PRINTD HERO
+ PRINTI " is not asleep"
+ PRINT PCR
+ RTRUE
+?CCL157: EQUAL? PRSA,V?UNTIE \?CCL164
+ EQUAL? P-PRSA-WORD,W?FREE \?CCL164
+ IN? HERO,MANACLES \?CCL169
+ SET 'AWAITING-REPLY,2
+ CALL QUEUE,I-REPLY,2
+ PRINTR "You have the key, maybe?"
+?CCL169: PRINTI "Jamison is free enough as it is"
+ PRINT PCR
+ RTRUE
+?CCL164: EQUAL? PRSA,V?MUNG,V?KICK,V?KILL \?CCL171
+ PRINTI """Please, I'm not trying to hurt you,"""
+ EQUAL? HERE,CABIN \?CCL174
+ PRINTI " the stranger"
+ JUMP ?CND172
+?CCL174: CALL TPRINT,HERO
+?CND172: PRINTI " says, casually deflecting the blow"
+ PRINT PCR
+ RTRUE
+?CCL171: EQUAL? PRSA,V?KISS \?CCL176
+ EQUAL? WINNER,PROTAGONIST \?CCL176
+ EQUAL? HERE,CABIN,DEUX-DECK \?CCL181
+ PRINTR "You are not so pert as to kiss a stranger, and a pirate, at that!"
+?CCL181: CALL SHIP-BOARD,HERE
+ ZERO? STACK /?CCL183
+ PRINTI "That thought has occurred to you before, but now does not seem appropriate"
+ PRINT PCR
+ RTRUE
+?CCL183: EQUAL? HERE,FOLLY \?CCL185
+ SET 'REACTION,REACTION-POSITIVE
+ PRINTI "You lean into his arms, face lifted"
+ PRINT PCR
+ RTRUE
+?CCL185: CALL RUNNING?,I-DUEL
+ ZERO? STACK \?CTR186
+ CALL RUNNING?,I-ENDGAME
+ ZERO? STACK /?CCL187
+?CTR186: PRINTI "You would only distract"
+ CALL TRPRINT,HERO
+ RSTACK
+?CCL187: CALL RUNNING?,I-HDANCE
+ ZERO? STACK /?CCL191
+ PRINTI "In view of all"
+ CALL TPRINT,DANCERS
+ PRINTI "s, you exchange only a peck on the cheek"
+ PRINT PCR
+ RTRUE
+?CCL191: PRINTI "He kisses you back"
+ PRINT PCR
+ RTRUE
+?CCL176: EQUAL? PRSA,V?TELL-ABOUT \?CCL193
+ CALL NOUN-USED,W?LIBRARY,HOUSE
+ ZERO? STACK \?CTR195
+ CALL NOUN-USED,W?CELL,CELL-4
+ ZERO? STACK \?CTR195
+ EQUAL? PRSI,DUNGEON,PORTRAIT \?CCL196
+?CTR195: PRINTR "He nods. ""That area is guarded well."""
+?CCL196: EQUAL? PRSI,DAD \?CCL201
+ IN? DAD,CELL-4 \?CCL204
+ PRINTR "He smiles fondly at your reminiscing. ""I never knew my father -- he died when I was a boy."""
+?CCL204: SET 'HDAD-SPEECH,TRUE-VALUE
+ PRINTR """Such bravery joined with such beauty!"""
+?CCL201: EQUAL? PRSI,CRULLEY \FALSE
+ FSET? BEACH,TOUCHBIT \FALSE
+ PRINTR """Crulley?! God's blood!"""
+?CCL193: EQUAL? PRSA,V?TOUCH,V?EMBRACE \?CCL210
+ EQUAL? HERE,FOLLY \?CCL210
+ CALL PERFORM,V?KISS,HERO
+ RTRUE
+?CCL210: EQUAL? PRSA,V?DANCE \?CCL214
+ EQUAL? HERE,BALLROOM \?CCL217
+ EQUAL? PARTNER,HERO \?CCL217
+ PRINT PACE
+ RTRUE
+?CCL217: CALL RUNNING?,I-HDANCE
+ ZERO? STACK /FALSE
+ MOVE PROTAGONIST,BALLROOM
+ MOVE HERO,BALLROOM
+ SET 'PARTNER,HERO
+ PRINTI "You whirl back out to"
+ PRINT DANCE-FLOOR
+ PRINT PCR
+ RTRUE
+?CCL214: EQUAL? PRSA,V?SHOW \FALSE
+ EQUAL? PRSO,JEWEL \FALSE
+ IN? HERO,MANACLES \FALSE
+ PRINTR "Nick smiles dazzlingly, ""Of course! Now pick the locks."""
+
+
+ .FUNCT GEN-PIRATE
+ ZERO? ENDGAME /?CCL3
+ EQUAL? HERE,BALLROOM \?CCL3
+ RETURN CREW
+?CCL3: FSET? CAPT-QUARTERS,TOUCHBIT \FALSE
+ RETURN CRULLEY
+
+
+ .FUNCT I-MEET-HERO
+ SET 'AWAITING-REPLY,5
+ CALL QUEUE,I-REPLY,1
+ SET 'QUESTIONER,HERO
+ PRINT INDENT
+ EQUAL? HERO-CTR,1 \?CCL3
+ MOVE HERO,HERE
+ CALL QUEUE,I-MEET-HERO,-1
+ LESS? ATTACK-C,2 \?CCL6
+ CALL DEQUEUE,I-CRULLEY
+ FSET CRULLEY,DEADBIT
+ PRINTD CRULLEY
+ PRINTI " drags you, despite your resistance, to"
+ LOC PROTAGONIST
+ EQUAL? STACK,CABIN-BED \?CCL9
+ MOVE PROTAGONIST,HERE
+ PRINTI " your feet"
+ JUMP ?CND7
+?CCL9: PRINTI "wards him"
+?CND7: PRINTI ". Then suddenly he grunts, stiffens and slumps into your arms. "
+ PRINT STUNNED-THE-SAILOR
+ PRINTI ".
+ A tall form blocks the shattered door, one fist still raised from striking your attacker"
+ JUMP ?CND4
+?CCL6: CALL CTPRINT,DOOR
+ PRINTI " creaks slightly as a tall form bends through its smashed remains. ""You seem to have this situation well in hand,"" timbers a well-bred voice"
+?CND4: PRINTI ". You catch a glimpse of the hard masculinity of his broad shoulders, the implied power in the scar that etches the stranger's jaw, and feel tremors course through your veins. Then you realize how ragged are his shirt, patched breeches and high boots. Intuitively, you understand -- he is the dreaded Falcon, scourge of the sea! Alas, your fate is sealed. Resigned, you meet his sea-blue eyes."
+ CRLF
+ JUMP ?CND1
+?CCL3: EQUAL? HERO-CTR,2 \?CCL11
+ MOVE LETTER,PROTAGONIST
+ CALL THIS-IS-IT,LETTER
+ PRINT SURPRISE
+ PRINTI "the stranger bows. ""Well met, my lady."" His accent is cultured, his smile vibrant. ""I am Captain Nicholas Jamison, known in these waters as 'The Falcon'. Your father has sent me."" He chuckles at your glare of distrust. ""Yes, you are like your sire. You needn't believe me untried -- I carry this."" He hands you"
+ CALL ARPRINT,LETTER
+ JUMP ?CND1
+?CCL11: EQUAL? HERO-CTR,3 \?CCL13
+ FSET DOOR,OPENBIT
+ PRINT CTHE-PIRATE-CAPTAIN
+ PRINTI "glances around the empty room, then notices the coffer"
+ IN? COFFER,PROTAGONIST \?CND14
+ PRINTI " in your arms"
+?CND14: MOVE COFFER,HERO
+ PRINTI ". ""Davis's safety box -- my men were hoping I'd find it."" He takes it and nudges the unconscious man on the floor, ""I wonder how "
+ PRINTD CRULLEY
+ PRINTI " knew you were here? Just his bad luck? He'll be flogged when he wakes.""
+ The pirate bows. ""My lady, may I offer my protection and my ship until your father is free?"""
+ CRLF
+ JUMP ?CND1
+?CCL13: EQUAL? HERO-CTR,4,5 \?CND1
+ EQUAL? HERO-CTR,4 \?CCL19
+ ZERO? REACTION \?CCL19
+ SET 'QUESTIONER,HERO
+ PRINTI """We haven't time to waste. Will you come willingly or not?"" says"
+ CALL TRPRINT,HERO
+ JUMP ?CND1
+?CCL19: CALL DEQUEUE,I-MEET-HERO
+ CALL DEQUEUE,I-PIRATE-ATTACK
+ EQUAL? REACTION,REACTION-POSITIVE \?CCL24
+ PRINTI "He chuckles. ""Brave lady, to trust a stranger -- and a pirate. Who knows, perhaps I forged your father's signature? Keep by my side as we go to my ship -- few sailors respect a lady's dignity."" He helps you through"
+ CALL TRPRINT,DOOR
+ CRLF
+ JUMP ?CND22
+?CCL24: PRINTI "He sighs, ""You share"
+ CALL TPRINT,DAD
+ PRINTI "'s stubborn streak. I wished not to do this."" He leaps to your side, hauling you up onto his shoulder, and carries you out of the room."
+ CALL TPRINT,HERO
+ PRINTI " sets you on your feet again on the horror of the deck"
+ PRINT PCR
+ CRLF
+?CND22: FSET HERO,NDESCBIT
+ MOVE HERO,DEUX-DECK
+ CALL GOTO,DEUX-DECK
+?CND1: INC 'HERO-CTR
+ RETURN HERO-CTR
+
+
+ .FUNCT I-HSHIP
+ PRINT INDENT
+ GET HERO-SHIP-SPEECHES,HERO-CTR
+ PRINT STACK
+ CRLF
+ EQUAL? HERO-CTR,2 \?CCL3
+ REMOVE HERO
+ CALL QUEUE,I-HSECOND-BYE,8
+ JUMP ?CND1
+?CCL3: CALL QUEUE,I-HSHIP,1
+?CND1: INC 'HERO-CTR
+ RETURN HERO-CTR
+
+
+ .FUNCT I-HSECOND-BYE
+ CALL RUNNING?,I-OVERHEAR-CRULLEY
+ ZERO? STACK \?CTR2
+ EQUAL? HERE,SLEEPING-CUPBOARD \?CCL3
+?CTR2: CALL QUEUE,I-HSECOND-BYE,2
+ RSTACK
+?CCL3: MOVE JEWEL,PROTAGONIST
+ PRINT INDENT
+ PRINTI "You hear"
+ EQUAL? HERE,CAPT-QUARTERS \?CCL8
+ CALL TPRINT,CUPBOARD-OBJECT
+ PRINTI " scrape"
+ JUMP ?CND6
+?CCL8: EQUAL? HERE,LANDING \?CCL10
+ CALL TPRINT,DOOR
+ PRINTI " being unbarred"
+ JUMP ?CND6
+?CCL10: PRINTI " a footstep"
+?CND6: PRINTI ", "
+ FSET? CHEMISE,EVERYBIT /?CCL13
+ PRINTI "turn, and cover "
+ PRINTD ME
+ PRINTI " as best you can with what you are holding, for Jamison stands there, his eyes burning through your lightweight chemise. He chuckles, ""I am not sorry in the least that I surprised you."
+ JUMP ?CND11
+?CCL13: ZERO? BOY-DRESS? /?CCL15
+ PRINTI "and"
+ CALL TPRINT,HERO
+ PRINTI "'s startled laugh. ""For a moment I thought you were Matthew, the boy who used to sleep in the cupboard. He ran off last port."
+ JUMP ?CND11
+?CCL15: PRINTI "and turn to see"
+ CALL TPRINT,HERO
+ PRINTI ". ""Hello!"
+?CND11: EQUAL? HERE,CAPT-QUARTERS /?CND16
+ PRINTI " How did you escape? Don't stutter, I won't lock you up again -- you are safe as long as you remain below-decks."
+?CND16: PRINTI " I came down to give you this -- my allotment from"
+ CALL TPRINT,COFFER
+ PRINTI "."" He nods at the box in his arms.
+ Jamison starts to pin"
+ CALL APRINT,JEWEL
+ PRINTI " on your clothes, but, ""Devil take it, the clasp is broken. I'll have it repaired."" He folds the pretty thing into "
+ PRINTD HANDS
+ PRINTI ". ""And I meant to reassure you that if the men suddenly abandon ship, they are off to help me. Rodney will stay behind with you."" He "
+ EQUAL? HERE,CAPT-QUARTERS \?CCL20
+ MOVE COFFER,HERE
+ PRINTI "drops"
+ CALL TPRINT,COFFER
+ PRINTI " on the floor, smiling in farewell,"
+ JUMP ?CND18
+?CCL20: MOVE COFFER,PROTAGONIST
+ PRINTI "hands"
+ CALL TPRINT,COFFER
+ PRINTI " to you. ""Please return this to my quarters for me, will you?"""
+?CND18: PRINTI " and walks swiftly "
+ EQUAL? HERE,LANDING \?CCL23
+ PRINTI "up the stairs to the deck, barring the door a moment later"
+ JUMP ?CND21
+?CCL23: PRINTI "away"
+?CND21: PRINT PCR
+ CALL QUEUE,I-SMELL-SMOKE,3
+ CALL QUEUE,I-HERO-TO-ISLAND,5
+ RETURN 8
+
+
+ .FUNCT I-HDANCE
+ EQUAL? HERO-CTR,1 \?CCL3
+ EQUAL? BALLROOM,HERE \?CCL3
+ MOVE HERO,HERE
+ SET 'LAFOND-CTR,1
+ CALL QUEUE,I-LDANCE,7
+ SET 'PARTNER,HERO
+ SET 'QUESTIONER,HERO
+ SET 'AWAITING-REPLY,14
+ CALL QUEUE,I-REPLY,2
+ SET 'DANCED-WITH,HERO
+ PRINT INDENT
+ PRINTD HERO
+ PRINTI " moves up to you, saying, ""May I have this dance?"" He doesn't await an answer, sweeping you out onto"
+ PRINT DANCE-FLOOR
+ PRINT PCR
+ JUMP ?CND1
+?CCL3: EQUAL? HERO-CTR,2 \?CCL7
+ SET 'QUESTIONER,HERO
+ ZERO? MET-ALREADY \?CCL10
+ SET 'MET-ALREADY,TRUE-VALUE
+ PRINT INDENT
+ PRINTC 34
+ PRINT FIRST-SIGHTING
+ PRINTI "smiles suddenly. ""Why should I complain? You are quite safe, since no one expects you here. And you are looking lovely."""
+ CRLF
+ JUMP ?CND8
+?CCL10: CALL HERO-TALKS
+?CND8: EQUAL? HERE,BALLROOM \?CND1
+ PRINT INDENT
+ PRINTI "The steps of the dance separate you a moment, as you twirl around and curtsey to another dancer. You glide back into the captain's arms"
+ PRINT PCR
+ JUMP ?CND1
+?CCL7: EQUAL? HERO-CTR,3 \?CCL14
+ SET 'QUESTIONER,HERO
+ CALL HERO-TALKS
+ EQUAL? HERE,BALLROOM \?CND1
+ PRINT INDENT
+ PRINTI "Your hands linked tightly with his and held high over "
+ PRINTD HEAD
+ PRINTI "s, a line of dancers files between you and Jamison"
+ PRINT PCR
+ JUMP ?CND1
+?CCL14: EQUAL? HERO-CTR,4 \?CCL18
+ SET 'QUESTIONER,HERO
+ CALL HERO-TALKS
+ EQUAL? HERE,BALLROOM \?CND1
+ PRINT INDENT
+ PRINTI "Together you whirl around the ballroom, his arm snug around your waist, leading you gracefully, masterfully.
+ Nicholas's grip tenses as he nods to a bewigged man staring at you. You turn, and the man moves on"
+ PRINT PCR
+ JUMP ?CND1
+?CCL18: EQUAL? HERO-CTR,5 \FALSE
+ REMOVE HERO
+ SET 'PARTNER,FALSE-VALUE
+ CALL DEQUEUE,I-HDANCE
+ CALL HERO-TALKS
+ PRINT INDENT
+ PRINTI "The music ends with a flourish"
+ EQUAL? HERE,BALLROOM \?CCL25
+ PRINTI " and you pirouette once more before curtseying to Jamison. As you move"
+ JUMP ?CND23
+?CCL25: PRINTI ". As he guides you back"
+?CND23: PRINTI " to the side of"
+ PRINT DANCE-FLOOR
+ PRINTI ", Nick adds, ""We should separate -- I'm sure I am being watched. You would be safer aboard"
+ CALL TPRINT,SHIP
+ PRINTI ". If you slip out the veranda doors, no one will notice you leaving."" He touches "
+ PRINTD HANDS
+ PRINTI " and dissolves into the crowd"
+ PRINT PCR
+ EQUAL? HERE,BALLROOM /?CND1
+ CALL GOTO,BALLROOM
+?CND1: INC 'HERO-CTR
+ RETURN HERO-CTR
+
+
+ .FUNCT I-HARRESTED,FROM-LDANCE=0
+ SET 'HERO-ARRESTED,TRUE-VALUE
+ PRINT INDENT
+ PRINTI "There is a commotion from the west. A woman screams and a man yells, ""Stop, Pirate!"" "
+ ZERO? FROM-LDANCE \?CCL3
+ EQUAL? HERE,FOYER /?CCL3
+ CALL HELD?,HAT
+ ZERO? STACK /?CND6
+ FCLEAR HAT,WORNBIT
+ MOVE HAT,LIBRARY
+?CND6: PRINTI "You run to the foyer in time to see two dragoons dragging out the battered frame of"
+ CALL TPRINT,HERO
+ JUMP ?CND1
+?CCL3: PRINTI "and Jamison is dragged out of the ballroom by two burly dragoons"
+?CND1: PRINT PCR
+ PRINTI " An officer quiets the guests, ""This is the buccaneer who has been pirating our ships. He had the audacity to come here tonight intending to assassinate our dear governor. Do not worry, ladies, he was arrogant enough to come alone."" The officer marches after his men. "
+ CALL CTPRINT,DANCERS
+ PRINTI "s return to their banal conversations"
+ PRINT PCR
+ ZERO? FROM-LDANCE \?CCL10
+ CRLF
+ CALL GOTO,FOYER
+ RSTACK
+?CCL10: CALL QUEUE,I-LDANCE,1
+ SET 'PARTNER,LAFOND
+ PRINT INDENT
+ PRINTI "Only the painful grip"
+ CALL TPRINT,LAFOND
+ PRINTR " has on your arm prevents you from swooning away. ""Ah, so that's the way of it,"" he purrs, noticing your sudden pallor. ""All the better for me."" He pulls you unresisting into a dance."
+
+
+ .FUNCT I-HFOLLY,CALLED-BY-HERO-F=0
+ EQUAL? HERE,FOLLY \FALSE
+ SET 'QUESTIONER,HERO
+ ZERO? CALLED-BY-HERO-F \?CND4
+ PRINT INDENT
+?CND4: EQUAL? HERO-CTR,1 \?CCL8
+ CALL QUEUE,I-HFOLLY,-1
+ MOVE HERO,FOLLY
+ PRINTD HERO
+ PRINTI " enters"
+ CALL TPRINT,FOLLY-OBJECT
+ PRINTI ", stooping to avoid the flowers dangling over the door. ""I thought I heard someone."
+ ZERO? MET-ALREADY \?CCL11
+ SET 'MET-ALREADY,TRUE-VALUE
+ PRINTC 32
+ PRINT FIRST-SIGHTING
+ JUMP ?CND9
+?CCL11: PRINTI """ Jamison "
+?CND9: PRINTI "sighs. ""What an astonishing girl you are, my dear. "
+ FSET? CHEMISE,EVERYBIT /?CCL14
+ PRINTI "If --"""
+ PRINT EYES-RAKE
+ PRINTI ", ""somewhat underdressed"
+ JUMP ?CND12
+?CCL14: ZERO? BOY-DRESS? /?CCL16
+ PRINTI "And so ingeniously dressed"
+ JUMP ?CND12
+?CCL16: PRINTI "And looking more lovely than ever"
+?CND12: PRINTI "."" He plucks"
+ CALL APRINT,FLOWER
+ PRINTI " from the tangle above the door, and sets it in your hair. ""The beauty of this blossom is nothing to yours."""
+ CRLF
+ MOVE FLOWER,PROTAGONIST
+ FCLEAR FLOWER,NDESCBIT
+ FSET FLOWER,TAKEBIT
+ JUMP ?CND1
+?CCL8: EQUAL? REACTION,REACTION-NEGATIVE /?PRD20
+ EQUAL? HERO-CTR,6 \?CCL18
+?PRD20: IN? HERO,HERE \?CCL18
+ CALL DEQUEUE,I-HFOLLY
+ SET 'QUESTIONER,FALSE-VALUE
+ REMOVE HERO
+ PRINTI "Jamison backs away from you, smiling wistfully"
+ PRINTC 46
+ PRINT HERO-LEAVES-FOLLY
+ JUMP ?CND1
+?CCL18: EQUAL? HERO-CTR,2 \?CCL24
+ PRINTI "Catching his breath, Jamison pulls you against him, his hands circling your waist"
+ IN? FLOWER,PROTAGONIST \?CND25
+ PRINTI ", crushing"
+ CALL TPRINT,FLOWER
+ PRINTI " between you"
+?CND25: PRINTI ". ""Darling,"" he whispers, leaning over you, ""oh, my angel ..."""
+ CRLF
+ JUMP ?CND1
+?CCL24: EQUAL? HERO-CTR,3 \?CCL28
+ SET 'AWAITING-REPLY,15
+ CALL QUEUE,I-REPLY,2
+ PRINTI """My lovely,"" Jamison says huskily. His eyes burn intently, their blue like the sea on a summer day. A shiver of warmth flows through you, and you tremble at his touch. The pirate's hands, warm and exciting, caress you, searing through the thin linen of your chemise. His lips near yours, his breath softly scented. ""May I kiss you?"""
+ CRLF
+ JUMP ?CND1
+?CCL28: EQUAL? HERO-CTR,4 \?CCL30
+ PRINTI "Tender is his kiss, soft his lips as his body presses hard against you. You drown in the tide of your passion, swept like the sea against the rocks of the shore."
+ CRLF
+ JUMP ?CND1
+?CCL30: EQUAL? HERO-CTR,5 \?CND1
+ REMOVE HERO
+ PRINTI "With a pent-up sigh, Nicholas forces himself away from you. ""Now is not the time or the place to advance my suit,"" he says, wistfully. ""But the night is still young and you are so beautiful! I must be gone, lest I lose my soul in you."""
+ PRINT HERO-LEAVES-FOLLY
+?CND1: INC 'HERO-CTR
+ RETURN HERO-CTR
+
+
+ .FUNCT HERO-TALKS
+ PRINT INDENT
+ RANDOM 100
+ LESS? 65,STACK /?CCL3
+ LESS? WHAT-HERO-SAYS,3 \?CCL3
+ ZERO? WHAT-HERO-SAYS \?CCL8
+ ZERO? HDAD-SPEECH /?CCL8
+ CALL PICK-ONE,MANNERISMS
+ PRINT STACK
+ PRINT PCR
+ RTRUE
+?CCL8: GET HERO-SPEECHES,WHAT-HERO-SAYS
+ PRINT STACK
+ PRINT PCR
+ INC 'WHAT-HERO-SAYS
+ RETURN WHAT-HERO-SAYS
+?CCL3: CALL PICK-ONE,MANNERISMS
+ PRINT STACK
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT RAPIER-F,OARG=0
+ ZERO? OARG /?CCL3
+ EQUAL? HERE,DUNGEON \FALSE
+ EQUAL? OARG,M-DESC? /TRUE
+ PRINT INDENT
+ PRINTI "A rapier lies in the half-dark of a corner."
+ RTRUE
+?CCL3: EQUAL? PRSA,V?TAKE \?CCL10
+ FSET? HERO,DEADBIT /?CCL13
+ IN? HERO,HERE \?CCL13
+ PRINTR "Jamison prevents you, ""This is not a weapon for ladies."""
+?CCL13: EQUAL? HERE,DUNGEON \?CCL17
+ IN? CRULLEY,DUNGEON \?CCL17
+ FSET? RAPIER,TOUCHBIT /?CCL17
+ CALL ITAKE,FALSE-VALUE
+ EQUAL? STACK,M-FATAL,FALSE-VALUE /?CCL17
+ PRINTI "Taken. "
+ PRINTD CRULLEY
+ PRINTR " snorts, ""Be careful, you might hurt yer dearie."""
+?CCL17: IN? RAPIER,COOKIE \FALSE
+ PRINTD COOKIE
+ PRINTR " objects. ""It ain't fer a lady."""
+?CCL10: EQUAL? PRSA,V?PUT-THROUGH,V?PUT,V?THROW \?CCL25
+ EQUAL? PRSI,TRAP /?CTR24
+ EQUAL? PRSI,CRULLEY \?CCL25
+ FSET? CRULLEY,MUNGBIT \?CCL25
+?CTR24: PRINTR "But you might need it later!"
+?CCL25: EQUAL? PRSA,V?EXAMINE \FALSE
+ PRINTI "Jamison's rapier is a dangerous looking sword with a narrow pointed blade"
+ EQUAL? HERE,CABIN,DEUX-DECK /?CND34
+ PRINTI ". It is decorated with a big floppy ribbon"
+?CND34: PRINT PCR
+ RTRUE
+
+ .ENDI
diff --git a/hero.zil b/hero.zil
new file mode 100644
index 0000000..e9ac16d
--- /dev/null
+++ b/hero.zil
@@ -0,0 +1,916 @@
+"HERO for
+ PLUNDERED HEARTS
+ (c) Copyright 1987 Infocom, Inc. All Rights Reserved."
+
+
+<OBJECT HERO ;"MUNGBIT: unconscious."
+ (IN CAPT-QUARTERS)
+ (DESC "Captain Jamison")
+ (DESCFCN HERO-F)
+ (SYNONYM HERO PIRATE JAMISON CAPTAIN)
+ (ADJECTIVE NICHOLAS NICK CAPTAIN FALCON)
+ (SIZE 10)
+ (FLAGS ACTORBIT NARTICLEBIT CONTBIT OPENBIT SEARCHBIT)
+ (GENERIC GEN-PIRATE)
+ (ACTION HERO-F)>
+
+<GLOBAL HERO-CTR 1>
+
+<GLOBAL HDAD-SPEECH <>> ;"You've told him about freeing Dad,"
+ ;"(which you can do by NICK, FOLLOW ME - dance)"
+ ;"OR he's answered your question about Dad."
+ ;"(To prevent his dance speech happening twice)"
+
+<ROUTINE HERO-F ("OPTIONAL" (OARG <>))
+ <COND (.OARG
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <COND (<NOT <EQUAL? ,HERE ,FOLLY>>
+ <TELL ,INDENT>)> ;"To prevent indent in folly"
+ <COND (<EQUAL? ,HERE ,CABIN>
+ <TELL ,CTHE-PIRATE-CAPTAIN "is studying you">)
+ (<EQUAL? ,HERE ,DEUX-DECK>
+ <TELL ,CTHE-PIRATE-CAPTAIN
+"stands protectively a few steps behind you">)
+ (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <TELL D ,HERO " is adjusting his clothes">)
+ (<RUNNING? ,I-DUEL>
+ <TELL
+"Battered and bruised, Nicholas can hardly stand">)
+ ;(<IN? ,HERO ,MANACLES>
+ <RTRUE>) ;"TOLD in MANACLES-DESC"
+ (<FSET? ,HERO ,DEADBIT>
+ <TELL ,HERO-EYES-CLOSED>)
+ (<EQUAL? ,HERE ,BEACH>
+ <TELL "Nicholas ">
+ <COND (<FSET? ,LAFOND ,DEADBIT>
+ <TELL "walks toward you, smiling wearily">)
+ (<G? ,LAFOND-CTR <- ,FIGHTING 1>>
+ <TELL "and Lafond are fighting">)
+ (T
+ <TELL
+"stands alone at one edge of the beach">)>)
+ (<QUEUED? ,I-ENDGAME>
+ <TELL
+"Nicholas stands, half-supported by Lucy and" T ,DAD>)
+ (<EQUAL? ,HERE ,BALLROOM>
+ <TELL
+"Nicholas looks quite rakish, in red velvet and white,
+his rapier flashing in the light of the " D ,CHANDELIER>)
+ (T
+ <RFALSE>)>
+ <TELL ".">)
+ (<EQUAL? ,HERO ,WINNER>
+ <COND (<AND <RUNNING? ,I-DUEL>
+ <EQUAL? ,HERE ,GALLERY ,STAIRTOP>>
+ <TELL ,SPEECHLESS>)
+ (<AND <EQUAL? ,HERE ,BEACH>
+ <RUNNING? ,I-ENDGAME>>
+ <COND (<AND <NOT <FSET? ,LAFOND ,DEADBIT>>
+ <G? ,LAFOND-CTR <- ,FIGHTING 1>>>
+ <TELL ,SPEECHLESS>)
+ (<VERB? HALT LOOK-INSIDE WALK CLIMB-DOWN>
+ <H-JIGS-UP
+"Nicholas stops at your cry, and turns, curious, to face Crulley
+just as the pistol sprays shot into his chest.">)
+ (T
+ <FAILS-TO-NOTICE>)>)
+ (<FSET? ,HERO ,DEADBIT>
+ <TELL ,DOESNT-RESPOND>)
+ (<AND <VERB? FOLLOW>
+ <PRSO? ,ME>
+ <RUNNING? ,I-HDANCE> ;"Dad told you to"
+ <FSET? ,DAD ,TOUCHBIT>> ;" fetch Nick"
+ <SETG HDAD-SPEECH T>
+ <TELL
+"\"I will follow you anywhere you please,
+but first I must kill Lafond.\"" CR>)
+ (<VERB? I-LOVE-YOU>
+ <COND (<PRSO? ,MAN ,HERO>
+ <TELL
+"He smiles at you warmly, his eyes full of passion." CR>)
+ (<PRSO? ,LAFOND>
+ <COND (<OR <RUNNING? ,I-HFOLLY>
+ <RUNNING? ,I-HDANCE>>
+ <REMOVE ,HERO>
+ <STOP-QUEUES>
+ <TELL
+"He looks at you in disgust and walks away." CR>)
+ (T
+ <TELL "\"Don't jest,\" he says." CR>)>)
+ (T
+ <TELL "He isn't all that interested." CR>)>)
+ (<VERB? LEAVE>
+ <COND (<FSET? ,BEACH ,TOUCHBIT>
+ <SETG AWAITING-REPLY 4>
+ <QUEUE I-REPLY 2>
+ <TELL
+"He catches your arm, \"Nay, can you mean that?\"" CR>)
+ (T
+ <TELL
+"\"I have business to attend to here,
+and have no intention of leaving.\"" CR>)>
+ <RTRUE>)
+ (<AND <VERB? READ>
+ <PRSO? ,LETTER>>
+ <PERFORM ,V?TELL-ABOUT ,ME ,LETTER>
+ <RTRUE>)
+ (<AND <VERB? TELL-ABOUT>
+ <PRSO? ,ME>>
+ <COND (<PRSI? ,LETTER>
+ <TELL "\"Your father wrote it for you.\"" CR>)
+ (<PRSI? ,HRING>
+ <SETG WINNER ,PROTAGONIST>
+ <PERFORM ,V?TAKE ,HRING>
+ <RTRUE>)
+ (<PRSI? ,LAFOND>
+ <TELL
+"\"I abhor the fiend.\" He clenches a fist." CR>)
+ (<PRSI? ,DAD>
+ <COND (<RUNNING? ,I-HDANCE>
+ <SETG HDAD-SPEECH T>
+ <TELL <GET ,HERO-SPEECHES 0> ,PCR>)
+ (<RUNNING? ,I-HFOLLY>
+ <TELL
+"\"Let's not discuss" T ,DAD " just now,\"
+he says, kissing your neck" ,PCR>)
+ (T
+ <TELL
+"\"I admire and respect your father greatly.\"" CR>)>)
+ (T
+ <FAILS-TO-NOTICE>)>
+ <STOP>)
+
+ ;(<AND <VERB? RAISE>
+ <PRSO? ,ME>
+ <EQUAL? <LOC ,PROTAGONIST> ,TREE-HOLE ,CLOSET>>
+ <SETG WINNER ,PROTAGONIST>
+ <PERFORM ,V?CLIMB-ON ,SIDEKICK>
+ <SETG WINNER ,SIDEKICK>
+ <RTRUE>)
+ (<AND <VERB? TAKE>
+ <PRSO? ,FLOWER>>
+ <SETG WINNER ,PROTAGONIST>
+ <PERFORM ,V?GIVE ,FLOWER ,HERO>
+ <SET WINNER ,HERO>
+ <RTRUE>)
+ (<SET OARG <COM-CHECK ,HERO>>
+ <COND (<==? .OARG ,M-FATAL>
+ <RFALSE>)
+ (T
+ <RTRUE>)>)
+ ;(T
+ <FAILS-TO-NOTICE>
+ <STOP>)>)
+ (<VERB? EXAMINE>
+ <COND (<FSET? ,HERO ,DEADBIT>
+ <COND (<RUNNING? ,I-DUEL>
+ <TELL "He lies in a pool of blood." CR>)
+ (T
+ <TELL ,HERO-EYES-CLOSED>)>)
+ (<AND <EQUAL? ,HERE ,CAPT-QUARTERS ,BALLROOM ,FOLLY>
+ <NOT ,ENDGAME>>
+ <TELL
+"Jamison is finely dressed, in red velvet coat and full breeches, with a
+long gold embroidered vest and waterfalls of white lace at his neck, wrists
+and boottops. His rapier is bedecked with a fringed gold ribbon. He wears no
+wig, his unpowdered hair tied neatly at the back of his neck" ,PCR>)
+ (T
+ <TELL
+"Jamison carries an aura of power unusual in men so slim and tall,
+the strength of a willow in his hard seaworn body, straight shouldered and
+resilient. " ,NUTBROWN "A jagged scar etches one cheek, harsh against
+the warmth of his limpid blue eyes" ,PCR>)>)
+ (<AND <VERB? SAVE-SOMETHING ROLL>
+ <RUNNING? ,I-ENDGAME>>
+ <SETG WINNER ,HERO>
+ <PERFORM ,V?HALT ,ROOMS>
+ <SETG WINNER ,PROTAGONIST>
+ <RTRUE>)
+ (<FSET? ,HERO ,DEADBIT>
+ <COND (<AND <VERB? GIVE>
+ <PRSO? ,SALTS>>
+ <REVIVE-HERO>)
+ (<AND <VERB? BLOW PUT-ON THROW-AT>
+ <PRSO? ,SPICES>>
+ <TELL "He sneezes involuntarily, unconscious." CR>)
+ (<VERB? KILL KICK MUNG>
+ <MAN-IS-DOWN>)
+ (<VERB? MOVE>
+ <TELL "He's too heavy." CR>)
+ (<VERB? KISS EMBRACE>
+ <TELL
+"You press your lips to his cold mouth. " ,DOESNT-RESPOND>)
+ (<OR <AND <VERB? TELL TELL-ABOUT ASK-ABOUT>
+ <NOT <PRSO? ,HERO>>>
+ <TOUCHING? ,HERO>>
+ <TELL ,DOESNT-RESPOND>)
+ (T
+ <RFALSE>)>)
+ (<VERB? GIVE>
+ <COND (<PRSO? ,SALTS>
+ <REVIVE-HERO>)
+ (<PRSO? ,BANKNOTE>
+ <TELL D ,HERO " returns" T ,BANKNOTE " to you" ,PCR>)
+ (<PRSO? ,FLOWER>
+ <TELL
+"He prevents you, smiling. \"It looks much
+too pretty against your hair. Keep it.\"" CR>)
+ (<PRSO? ,COFFER>
+ <FAILS-TO-NOTICE>)
+ (T
+ <RFALSE>)>)
+ (<VERB? ALARM>
+ <COND ;(<NOT ,PRSI>
+ <PROPOSE>)
+ (<NOT <PRSI? SALTS>>
+ <TELL ,YOU-CANT "revive him with that!" CR>)
+ (<HELD? ,SALTS>
+ <REVIVE-HERO>)
+ ;(<HELD? ,QUILL>
+ <PERFORM ,V?ALARM ,HERO ,QUILL>
+ <RTRUE>)
+ (T
+ <TELL D ,HERO " is not asleep" ,PCR>)>)
+ (<AND <VERB? UNTIE>
+ <EQUAL? ,P-PRSA-WORD ,W?FREE>>
+ <COND (<IN? ,HERO ,MANACLES>
+ <SETG AWAITING-REPLY 2>
+ <QUEUE I-REPLY 2>
+ <TELL "You have the key, maybe?" CR>)
+ (T
+ <TELL "Jamison is free enough as it is" ,PCR>)>)
+ (<VERB? KILL KICK MUNG>
+ <TELL "\"Please, I'm not trying to hurt you,\"">
+ <COND (<EQUAL? ,HERE ,CABIN>
+ <TELL " the stranger">)
+ (T
+ <TELL T ,HERO>)>
+ <TELL " says, casually deflecting the blow" ,PCR>)
+ (<AND <VERB? KISS>
+ <EQUAL? ,WINNER ,PROTAGONIST>>
+ <COND (<EQUAL? ,HERE ,CABIN ,DEUX-DECK>
+ <TELL
+"You are not so pert as to kiss a stranger, and a pirate, at that!">
+ <CRLF>)
+ (<SHIP-BOARD ,HERE>
+ <TELL
+"That thought has occurred to you before,
+but now does not seem appropriate" ,PCR>)
+ (<EQUAL? ,HERE ,FOLLY>
+ <SETG REACTION ,REACTION-POSITIVE>
+ <TELL "You lean into his arms, face lifted" ,PCR>)
+ (<OR <RUNNING? ,I-DUEL>
+ <RUNNING? ,I-ENDGAME>>
+ <TELL "You would only distract" TR ,HERO>)
+ (<RUNNING? ,I-HDANCE>
+ <TELL
+"In view of all" T ,DANCERS "s, you exchange
+only a peck on the cheek" ,PCR>)
+ (T
+ <TELL "He kisses you back" ,PCR>)>)
+ (<VERB? TELL-ABOUT>
+ <COND ;(<EQUAL? ,WINNER ,PROTAGONIST>
+ <TELL ,DOESNT-RESPOND>)
+ (<OR <NOUN-USED ,W?LIBRARY ,HOUSE>
+ <NOUN-USED ,W?CELL ,CELL-4>
+ <PRSI? ,PORTRAIT ,DUNGEON>>
+ <TELL "He nods. \"That area is guarded well.\"" CR>)
+ (<PRSI? ,DAD>
+ <COND (<IN? ,DAD ,CELL-4>
+ <TELL
+"He smiles fondly at your reminiscing.
+\"I never knew my father -- he died when I was a boy.\"" CR>)
+ (T
+ <SET HDAD-SPEECH T>
+ <TELL
+"\"Such bravery joined with such beauty!\"" CR>)>)
+ (<AND <PRSI? ,CRULLEY>
+ <FSET? ,BEACH ,TOUCHBIT>>
+ <TELL "\"Crulley?! God's blood!\"" CR>)
+ (T
+ <RFALSE>)>)
+ (<AND <VERB? EMBRACE TOUCH>
+ <EQUAL? ,HERE ,FOLLY>>
+ <PERFORM ,V?KISS ,HERO>
+ <RTRUE>)
+ ;(<AND <VERB? WALK FOLLOW>
+ <EQUAL? ,HERE ,CABIN>
+ <IN? ,HERO ,HERE>>
+ <TELL D ,HERO " guides you through" TR ,DOOR CR>
+ <GOTO ,DEUX-DECK>)
+ (<VERB? DANCE>
+ <COND (<AND <EQUAL? ,HERE ,BALLROOM>
+ <EQUAL? ,PARTNER ,HERO>>
+ <TELL ,PACE>)
+ (<RUNNING? ,I-HDANCE>
+ <MOVE ,PROTAGONIST ,BALLROOM>
+ <MOVE ,HERO ,BALLROOM>
+ <SETG PARTNER ,HERO>
+ <TELL "You whirl back out to" ,DANCE-FLOOR ,PCR>)
+ (T
+ <RFALSE>)>)
+ (<AND <VERB? SHOW>
+ <PRSO? ,JEWEL>
+ <IN? ,HERO ,MANACLES>>
+ <TELL
+"Nick smiles dazzlingly, \"Of course! Now pick the locks.\"" CR>)>>
+
+<GLOBAL NUTBROWN
+"Chestnut hair, tousled by the wind, frames the tanned oval of his face. ">
+
+<ROUTINE GEN-PIRATE ()
+ <COND (<AND ,ENDGAME
+ <EQUAL? ,HERE ,BALLROOM>>
+ ,CREW)
+ (<FSET? ,CAPT-QUARTERS ,TOUCHBIT>
+ ,CRULLEY)
+ (T
+ <RFALSE>)>>
+
+
+;<GLOBAL HEROS-NAME " Captain Nicholas Brent Charles Lancelot Richard
+Blaise Peaceable Jamison -- a mouthful, so my friends call me Nick">
+
+<GLOBAL CTHE-PIRATE-CAPTAIN "The pirate captain ">
+
+<GLOBAL HERO-EYES-CLOSED
+"Eyes closed, his skin with the pallor of death, Nick looks entirely spent.|">
+
+;"1st meeting with hero in Cabin, (14-11-86)"
+<ROUTINE I-MEET-HERO ()
+ <SETG AWAITING-REPLY 5>
+ <QUEUE I-REPLY 1>
+ <SETG QUESTIONER ,HERO>
+ <TELL ,INDENT>
+ <COND (<EQUAL? ,HERO-CTR 1>
+ <MOVE ,HERO ,HERE>
+ <QUEUE I-MEET-HERO -1>
+ <COND (<L? ,ATTACK-C 2>
+ <DEQUEUE I-CRULLEY>
+ <FSET ,CRULLEY ,DEADBIT>
+ <TELL
+D ,CRULLEY " drags you, despite your resistance, to">
+ <COND (<EQUAL? <LOC ,PROTAGONIST> ,CABIN-BED>
+ <MOVE ,PROTAGONIST ,HERE>
+ <TELL " your feet">)
+ (T
+ <TELL "wards him">)>
+ <TELL
+". Then suddenly he grunts, stiffens and slumps into your arms. "
+,STUNNED-THE-SAILOR ".|
+ A tall form blocks the shattered door, one fist still raised from
+striking your attacker">)
+ (T
+ <TELL CTHE ,DOOR " creaks slightly as a tall
+form bends through its smashed remains. \"You seem to have this situation
+well in hand,\" timbers a well-bred voice">)>
+ <TELL
+". You catch a glimpse of the hard masculinity of his broad shoulders,
+the implied power in the scar that etches the stranger's jaw,
+and feel tremors course through your veins. Then you realize how ragged are
+his shirt, patched breeches and high boots. Intuitively, you understand -- he
+is the dreaded Falcon, scourge of the sea! Alas, your fate is sealed.
+Resigned, you meet his sea-blue eyes." CR>)
+
+;[Under the impact of his gaze, the hard masculinity
+of his broad shoulders, the implied power in the scar that etches his
+jaw, you discover yourself blind to the dangers of this infamous pirate,
+aware only of the tremors that course your veins, of that flutter deep
+in your stomach as he draws near you. In this most unlikely of places,
+you have met the man you have been waiting for all these years.]
+
+ (<EQUAL? ,HERO-CTR 2>
+ <MOVE ,LETTER ,PROTAGONIST>
+ <THIS-IS-IT ,LETTER>
+ <TELL ,SURPRISE
+"the stranger bows. \"Well met, my lady.\" His accent
+is cultured, his smile vibrant. \"I am Captain Nicholas Jamison, known
+in these waters as 'The Falcon'. Your father has sent me.\" He chuckles
+at your glare of distrust. \"Yes, you are like your sire. You needn't
+believe me untried -- I carry this.\" He hands you" AR ,LETTER>
+ ;<TELL
+"To your surprise, the stranger bows. \"My lady, thank God I have found you.\"
+His accent is cultured, his smile vibrant. \"I am Captain Nicholas Jamison,
+known in these waters as 'The Falcon'. Your father sent me.\" He chuckles
+at your glare of distrust. \"Yes, you are like your sire. You needn't believe
+me untried -- I carry this.\" He hands you" AR ,LETTER>)
+ (<EQUAL? ,HERO-CTR 3>
+ <FSET ,DOOR ,OPENBIT>
+ <TELL ,CTHE-PIRATE-CAPTAIN
+"glances around the empty room, then notices the coffer">
+ <COND ;(<IN? ,COFFER ,RETICULE>
+ <TELL ", outlined in" T ,RETICULE>)
+ (<IN? ,COFFER ,PROTAGONIST>
+ <TELL " in your arms">)>
+ <MOVE ,COFFER ,HERO>
+ <TELL
+". \"Davis's safety box -- my men were hoping I'd
+find it.\" He takes it and nudges the unconscious man on the floor, \"I
+wonder how " D ,CRULLEY " knew you were here? Just his bad luck? He'll
+be flogged when he wakes.\"|
+ The pirate bows. \"My lady, may I offer my protection and my
+ship until your father is free?\"" CR>)
+ (<EQUAL? ,HERO-CTR 4 5>
+ <COND (<AND <EQUAL? ,HERO-CTR 4>
+ <EQUAL? ,REACTION ,REACTION-NEUTRAL>>
+ <SETG QUESTIONER ,HERO>
+ <TELL
+"\"We haven't time to waste. Will you come willingly or not?\"
+says" TR ,HERO>)
+ (T
+ <DEQUEUE I-MEET-HERO>
+ <DEQUEUE I-PIRATE-ATTACK>
+ <COND (<EQUAL? ,REACTION ,REACTION-POSITIVE>
+ <TELL
+"He chuckles. \"Brave lady, to trust a stranger -- and a pirate.
+Who knows, perhaps I forged your father's signature? Keep by my
+side as we go to my ship -- few sailors respect a lady's dignity.\"
+He helps you through" TR ,DOOR CR>)
+ (T
+ <TELL "He sighs, \"You share" T ,DAD "'s
+stubborn streak. I wished not to do this.\" He leaps to your side,
+hauling you up onto his shoulder, and carries you out of the room." T
+,HERO " sets you on your feet again on the horror of the deck" ,PCR CR>)>
+ <FSET ,HERO ,NDESCBIT>
+ <MOVE ,HERO ,DEUX-DECK>
+ <GOTO ,DEUX-DECK>)>)>
+ <SETG HERO-CTR <+ ,HERO-CTR 1>>>
+
+
+;"2nd meeting, in his quarters. Covers three turns."
+<ROUTINE I-HSHIP ()
+ <TELL ,INDENT <GET ,HERO-SHIP-SPEECHES ,HERO-CTR> CR>
+ <COND (<EQUAL? ,HERO-CTR 2>
+ <REMOVE ,HERO>
+ <QUEUE I-HSECOND-BYE 8>)
+ (T
+ <QUEUE I-HSHIP 1>)>
+ <SETG HERO-CTR <+ ,HERO-CTR 1>>>
+
+<GLOBAL HERO-SHIP-SPEECHES
+ <TABLE
+ "\"We have anchored off St. Sinistra,\" says Captain Jamison,
+\"and I must look like a guest at Lafond's dance tonight. I will find and
+free your father, and then finally wreak my revenge on Lafond.\" He half
+draws his rapier from its scabbard."
+ "\"I am sorry you have been confined down here, but I don't trust my
+lonely crew with such beauty. Crulley isn't the only man aboard with
+few principles.\" He smiles at you, eyes lingering, and takes your hand. You
+feel your color rising. \"If anything goes wrong, turn to Cookie. He is quite
+deaf, but capable. He'll see you through.\""
+ "His look darkens. \"You should know why I hate Lafond:
+Some years ago, as my brother and his bride sailed to a new life in
+Virginia, pirates struck. Their ship was boarded, looted and burned, the
+women taken, never to be seen again. A sailor, the one survivor, watched
+as a man of Lafond's description shot my brother in the back as he tried
+to save the women. Lafond has now bought respectability, but he shall
+never buy peace.\" Jamison straightens resolutely, bows, and departs.">>
+
+;<ROUTINE I-HSHIP ()
+ <COND (<EQUAL? ,HERO-CTR 1>
+ <QUEUE I-HSHIP 1>
+ <TELL ,INDENT
+"\"We have anchored off " D ,ISLAND ",\" says " D ,HERO ", \"and I am
+inviting myself to the ball at Lafond's mansion tonight. I hope to find and
+rescue your father, and then to wreak final revenge against Lafond.\" He
+half draws his rapier from its scabbard" ,PCR>)
+ (<EQUAL? ,HERO-CTR 2>
+ <QUEUE I-HSHIP 1>
+ <TELL ,INDENT
+"\"I am sorry you have been confined down here, but I don't trust my
+lonely crew with such beauty. " D ,CRULLEY " isn't the only man aboard with
+few principles.\" He smiles at you, eyes lingering, \"Perhaps I just wanted
+to keep the sight of you to myself.\"|
+ He takes " D ,HANDS ". \"I should return in a few hours with your
+father. If all should not go well, turn to Rodney --" T ,COOKIE ", as he is
+known to the men. He is gruff, but trustworthy. He'll see you through.\"" CR>)
+ (<EQUAL? ,HERO-CTR 3>
+ <REMOVE ,HERO>
+ <QUEUE I-HSECOND-BYE 8>
+ <TELL ,INDENT
+"Jamison bows and deftly twists " D ,HANDS " so his lips brush hotly
+against the inside of your wrist. As he leaves, he pushes" A ,CUPBOARD-OBJECT
+" up against the doorway, one corner jutting somewhat through
+the curtain. You hear a soft, \"Fare thee well,\" and he climbs the
+steps to the quarterdeck" ,PCR>)
+ (T
+ <RFALSE>)>
+ <SETG HERO-CTR <+ ,HERO-CTR 1>>>
+
+<ROUTINE I-HSECOND-BYE ()
+ <COND (<OR <RUNNING? ,I-OVERHEAR-CRULLEY>
+ <EQUAL? ,HERE ,SLEEPING-CUPBOARD>>
+ <QUEUE I-HSECOND-BYE 2>)
+ (T
+ <MOVE ,JEWEL ,PROTAGONIST>
+ <TELL ,INDENT "You hear">
+ <COND (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <TELL T ,CUPBOARD-OBJECT " scrape">)
+ (<EQUAL? ,HERE ,LANDING>
+ <TELL T ,DOOR " being unbarred">)
+ (T
+ <TELL " a footstep">)>
+ <TELL ", ">
+ <COND (<NOT <FSET? ,CHEMISE ,EVERYBIT>>
+ <TELL
+"turn, and cover " D ,ME " as best you can with what you are holding,
+for Jamison stands there, his eyes burning through your lightweight chemise.
+He chuckles, \"I am not sorry in the least that I surprised you.">)
+ (,BOY-DRESS?
+ <TELL
+"and" T ,HERO "'s startled laugh. \"For a moment I thought you were Matthew,
+the boy who used to sleep in the cupboard. He ran off last port.">)
+ (T
+ <TELL
+"and turn to see" T ,HERO ". \"Hello!">)>
+ <COND (<NOT <EQUAL? ,HERE ,CAPT-QUARTERS>>
+ <TELL
+" How did you escape? Don't stutter, I won't lock you up again -- you are
+safe as long as you remain below-decks.">)>
+ <TELL
+" I came down to give you this -- my allotment from" T ,COFFER ".\" He nods
+at the box in his arms.|
+ Jamison starts to pin" A ,JEWEL " on your clothes, but, \"Devil take it,
+the clasp is broken. I'll have it repaired.\" He folds the pretty thing into "
+D ,HANDS ". \"And I meant to reassure you that if the men suddenly abandon
+ship, they are off to help me. Rodney will stay behind with you.\" He ">
+
+ ;[He takes a white card from" T ,COFFER "]
+
+ <COND (<EQUAL? ,HERE ,CAPT-QUARTERS>
+ <MOVE ,COFFER ,HERE>
+ <TELL
+"drops" T ,COFFER " on the floor, smiling in farewell,">)
+ (T
+ <MOVE ,COFFER ,PROTAGONIST>
+ <TELL
+"hands" T ,COFFER " to you. \"Please return
+this to my quarters for me, will you?\"">)>
+ <TELL " and walks swiftly ">
+ <COND (<EQUAL? ,HERE ,LANDING>
+ <TELL
+"up the stairs to the deck, barring the door a moment later">)
+ (T
+ <TELL "away">)>
+ <TELL ,PCR>
+ <QUEUE I-SMELL-SMOKE 3>
+ <QUEUE I-HERO-TO-ISLAND 5>
+ <RFATAL>)>>
+
+<GLOBAL PARTNER <>>
+
+<ROUTINE I-HDANCE ()
+ <COND (<AND <EQUAL? ,HERO-CTR 1>
+ <EQUAL? ,BALLROOM ,HERE>>
+ <MOVE ,HERO ,HERE>
+ <SETG LAFOND-CTR 1>
+ <QUEUE I-LDANCE 7>
+ <SETG PARTNER ,HERO>
+ <SETG QUESTIONER ,HERO>
+ <SETG AWAITING-REPLY 14>
+ <QUEUE I-REPLY 2>
+ <SETG DANCED-WITH ,HERO>
+ <TELL
+,INDENT D ,HERO " moves up to you, saying, \"May I have this dance?\"
+He doesn't await an answer, sweeping you out onto" ,DANCE-FLOOR ,PCR>)
+ (<EQUAL? ,HERO-CTR 2>
+ <SETG QUESTIONER ,HERO>
+ <COND (<NOT ,MET-ALREADY>
+ <SETG MET-ALREADY T>
+ <TELL ,INDENT "\"" ,FIRST-SIGHTING
+"smiles suddenly. \"Why should I complain? You are quite safe, since
+no one expects you here. And you are looking lovely.\"" CR>)
+ (T
+ <HERO-TALKS>)>
+ <COND (<EQUAL? ,HERE ,BALLROOM>
+ <TELL ,INDENT
+"The steps of the dance separate you a moment, as you twirl around and
+curtsey to another dancer. You glide back into the captain's arms" ,PCR>)>)
+ (<EQUAL? ,HERO-CTR 3>
+ <SETG QUESTIONER ,HERO>
+ <HERO-TALKS>
+ <COND (<EQUAL? ,HERE ,BALLROOM>
+ <TELL ,INDENT
+"Your hands linked tightly with his and held high over " D ,HEAD "s, a
+line of dancers files between you and Jamison" ,PCR>)>)
+ (<EQUAL? ,HERO-CTR 4>
+ <SETG QUESTIONER ,HERO>
+ <HERO-TALKS>
+ <COND (<EQUAL? ,HERE ,BALLROOM>
+ <TELL ,INDENT
+"Together you whirl around the ballroom, his arm snug around your waist,
+leading you gracefully, masterfully.|
+ Nicholas's grip tenses as he nods to a bewigged man staring at you.
+You turn, and the man moves on" ,PCR>)>)
+ (<EQUAL? ,HERO-CTR 5>
+ <REMOVE ,HERO>
+ <SETG PARTNER <>>
+ <DEQUEUE I-HDANCE>
+ <HERO-TALKS>
+ <TELL ,INDENT
+"The music ends with a flourish">
+ <COND (<EQUAL? ,HERE ,BALLROOM>
+ <TELL
+" and you pirouette once more before curtseying to Jamison. As you move">)
+ (T
+ <TELL ". As he guides you back">)>
+ <TELL " to the side of" ,DANCE-FLOOR ", Nick adds, \"We
+should separate -- I'm sure I am being watched. You would be safer
+aboard" T ,SHIP ". If you slip out the veranda doors, no one will notice
+you leaving.\" He touches " D ,HANDS " and dissolves into the crowd" ,PCR>
+ <COND (<NOT <EQUAL? ,HERE ,BALLROOM>>
+ <GOTO ,BALLROOM>)>)
+ (T
+ <RFALSE>)>
+ <SETG HERO-CTR <+ ,HERO-CTR 1>>>
+
+<ROUTINE I-HARRESTED ("OPTIONAL" (FROM-LDANCE <>))
+ <SETG HERO-ARRESTED T>
+ <TELL ,INDENT
+"There is a commotion from the west. A woman screams and a man yells,
+\"Stop, Pirate!\" ">
+ <COND (<AND <NOT .FROM-LDANCE>
+ <NOT <EQUAL? ,HERE ,FOYER>>>
+ <COND (<HELD? ,HAT>
+ <FCLEAR ,HAT ,WORNBIT>
+ <MOVE ,HAT ,LIBRARY>)>
+ <TELL
+"You run to the foyer in time to see two dragoons dragging out
+the battered frame of" T ,HERO>)
+ (T
+ <TELL
+"and Jamison is dragged out of the ballroom by two burly dragoons">)>
+ <TELL ,PCR
+" An officer quiets the guests, \"This is the buccaneer who has been
+pirating our ships. He had the audacity to come here tonight intending
+to assassinate our dear governor. Do not worry, ladies, he was arrogant
+enough to come alone.\" The officer marches after his men. "
+CTHE ,DANCERS "s return to their banal conversations" ,PCR>
+ <COND (<NOT .FROM-LDANCE>
+ <CRLF>
+ <GOTO ,FOYER>)
+ (T
+ <QUEUE I-LDANCE 1>
+ <SETG PARTNER ,LAFOND>
+ <TELL ,INDENT
+"Only the painful grip" T ,LAFOND " has on your arm prevents you from
+swooning away. \"Ah, so that's the way of it,\" he purrs, noticing your
+sudden pallor. \"All the better for me.\" He pulls you unresisting into
+a dance." CR>)>>
+
+<GLOBAL MET-ALREADY <>> ;"gets set by first meeting on land."
+
+<GLOBAL FIRST-SIGHTING "What the devil are you doing here!
+Lafond is a dangerous man to play with!\" Jamison ">
+
+<GLOBAL HERO-LEAVES-FOLLY
+" With an engaging smile he bows and leaves the folly.|">
+
+<ROUTINE I-HFOLLY ("OPTIONAL" (CALLED-BY-HERO-F <>))
+ <COND (<NOT <EQUAL? ,HERE ,FOLLY>>
+ <RFALSE>)
+ (T
+ <SETG QUESTIONER ,HERO>
+ <COND (<NOT .CALLED-BY-HERO-F>
+ <TELL ,INDENT>)>
+ <COND (<EQUAL? ,HERO-CTR 1>
+ <QUEUE I-HFOLLY -1>
+ <MOVE ,HERO ,FOLLY>
+ <TELL D ,HERO
+" enters" T ,FOLLY-OBJECT ", stooping to avoid the flowers dangling over
+the door. \"I thought I heard someone.">
+ <COND (<NOT ,MET-ALREADY>
+ <SETG MET-ALREADY T>
+ <TELL " " ,FIRST-SIGHTING>)
+ (T
+ <TELL "\" Jamison ">)>
+ <TELL
+"sighs. \"What an astonishing girl you are, my dear. ">
+ <COND (<NOT <FSET? ,CHEMISE ,EVERYBIT>>
+ <TELL
+"If --\"" ,EYES-RAKE ", \"somewhat underdressed">)
+ (,BOY-DRESS?
+ <TELL "And so ingeniously dressed">)
+ (T
+ <TELL "And looking more lovely than ever">)>
+ <TELL
+".\" He plucks" A ,FLOWER " from the tangle above the door, and sets it
+in your hair. \"The beauty of this blossom is nothing to yours.\"" CR>
+ <MOVE ,FLOWER ,PROTAGONIST>
+ <FCLEAR ,FLOWER ,NDESCBIT>
+ <FSET ,FLOWER ,TAKEBIT>)
+ (<AND <OR <EQUAL? ,REACTION ,REACTION-NEGATIVE>
+ <EQUAL? ,HERO-CTR 6>>
+ <IN? ,HERO ,HERE>>
+ <DEQUEUE I-HFOLLY>
+ <SETG QUESTIONER <>>
+ <REMOVE ,HERO>
+ <TELL
+"Jamison backs away from you, smiling wistfully">
+ <TELL "." ,HERO-LEAVES-FOLLY>)
+ (<EQUAL? ,HERO-CTR 2>
+ <TELL
+"Catching his breath, Jamison pulls you against
+him, his hands circling your waist">
+ <COND (<IN? ,FLOWER ,PROTAGONIST>
+ <TELL
+", crushing" T ,FLOWER " between you">)>
+ <TELL
+". \"Darling,\" he whispers, leaning over you, \"oh, my angel ...\"" CR>)
+ (<EQUAL? ,HERO-CTR 3>
+ <SETG AWAITING-REPLY 15>
+ <QUEUE I-REPLY 2>
+ <TELL
+"\"My lovely,\" Jamison says huskily. His eyes burn intently, their blue
+like the sea on a summer day. A shiver of warmth flows through you, and
+you tremble at his touch. The pirate's hands, warm and exciting, caress
+you, searing through the thin linen of your chemise. His lips
+near yours, his breath softly scented. \"May I kiss you?\"" CR>
+ ;<COND (,BOY-DRESS?
+ <TELL "inside the loose shirt">)
+ (<OR <FSET? ,GOWN ,WORNBIT>
+ <FSET? ,DRESS ,WORNBIT>>
+ <TELL "into your bodice">)
+ (T
+ <TELL "up">)>)
+ (<EQUAL? ,HERO-CTR 4>
+ <TELL
+"Tender is his kiss, soft his lips as his body presses hard against you.
+You drown in the tide of your passion, swept like the sea against the rocks
+of the shore." CR>)
+ (<EQUAL? ,HERO-CTR 5>
+ <REMOVE ,HERO>
+ ;<SETG QUESTIONER <>>
+ ;<DEQUEUE I-HFOLLY>
+ <TELL
+"With a pent-up sigh, Nicholas forces himself away from you. \"Now is not the
+time or the place to advance my suit,\" he says, wistfully. \"But the night
+is still young and you are so beautiful! I must be gone, lest I lose my soul
+in you.\"" ,HERO-LEAVES-FOLLY>)>)>
+ <SETG HERO-CTR <+ ,HERO-CTR 1>>>
+
+;<ROUTINE I-HFOLLY ("OPTIONAL" (CALLED-BY-HERO-F <>))
+ <COND (<NOT <EQUAL? ,HERE ,FOLLY>>
+ <RFALSE>)
+ (T
+ <SETG QUESTIONER ,HERO>
+ <COND (<NOT .CALLED-BY-HERO-F>
+ <TELL ,INDENT>)>
+ <COND (<EQUAL? ,HERO-CTR 1>
+ <QUEUE I-HFOLLY -1>
+ <MOVE ,HERO ,FOLLY>
+ <TELL D ,HERO
+" enters the folly, stooping to avoid the flowers dangling over the door.
+\"I thought I heard someone.">
+ <COND (<NOT ,MET-ALREADY>
+ <SETG MET-ALREADY T>
+ <TELL " "
+,FIRST-SIGHTING " Jamison sighs. \"What an astonishing girl you are, my dear.
+And ">
+ <COND (,BOY-DRESS?
+ <TELL "rather ingeniously dressed, too">)
+ (<FSET? ,GOWN ,WORNBIT>
+ <TELL "looking more lovely than ever">)
+ (<NOT <FSET? ,CHEMISE ,EVERYBIT>>
+ <TELL
+"--\"" ,EYES-RAKE ", \"ahem, somewhat underdressed">)
+ (T
+ <TELL "that is that">)>
+ <TELL ".\" " <PICK-ONE ,MANNERISMS> ,PCR>)
+ (T
+ <MOVE ,FLOWER ,PROTAGONIST>
+ <FCLEAR ,FLOWER ,NDESCBIT>
+ <FSET ,FLOWER ,TAKEBIT>
+ <TELL
+"\" He plucks" A ,FLOWER " from the tangle above the door, and sets it in your
+hair. \"The beauty of this " D ,FLOWER " is nothing to yours.\"" CR>)>)
+ (<EQUAL? ,REACTION ,REACTION-NEGATIVE>
+ <TELL
+"Jamison backs away from you, smiling wistfully">
+ <COND (<EQUAL? ,HERO-CTR 5>
+ <REMOVE ,HERO>
+ <TELL "." ,HERO-LEAVES-FOLLY>)
+ (T
+ <TELL ,PCR>)>)
+ (<EQUAL? ,HERO-CTR 2>
+ <TELL
+"Catching his breath, Jamison pulls you against
+him, his hands circling your waist">
+ <COND (<IN? ,FLOWER ,PROTAGONIST>
+ <TELL
+", crushing" T ,FLOWER " between you">)>
+ <TELL
+". \"Darling,\" he whispers, leaning over you, \"oh, my angel ...\"" CR>)
+ (<EQUAL? ,HERO-CTR 3>
+ <SETG AWAITING-REPLY 15>
+ <QUEUE I-REPLY 2>
+ <TELL
+"\"My lovely,\" Jamison says huskily. His eyes burn intently, their blue
+like the sea on a summer day. A shiver of warmth flows through you, and
+you tremble at his touch. The pirate's hands, warm and exciting, caress
+you, searing through the thin linen of your chemise. His lips
+near yours, his breath softly scented. \"May I kiss you?\"" CR>
+ ;<COND (,BOY-DRESS?
+ <TELL "inside the loose shirt">)
+ (<OR <FSET? ,GOWN ,WORNBIT>
+ <FSET? ,DRESS ,WORNBIT>>
+ <TELL "into your bodice">)
+ (T
+ <TELL "up">)>)
+ (<EQUAL? ,HERO-CTR 4>
+ <TELL
+"Tender is his kiss, soft his lips, yet his body presses hard against you.
+You drown in the tide of your passion, swept like the sea against the rocks
+of the shore." CR>)
+ (<EQUAL? ,HERO-CTR 5>
+ <REMOVE ,HERO>
+ <SETG QUESTIONER <>>
+ <DEQUEUE I-HFOLLY>
+ <TELL
+"With a pent-up sigh, Nicholas forces himself away from you. \"Now is not the
+time or the place to advance my suit,\" he says, wistfully. \"But the night
+is still young and you are so beautiful! I must be gone, lest I lose my soul
+in you.\"" ,HERO-LEAVES-FOLLY>)>)>
+ <SETG HERO-CTR <+ ,HERO-CTR 1>>>
+
+<ROUTINE HERO-TALKS ()
+ <TELL ,INDENT>
+ <COND (<AND <PROB 65>
+ <L? ,WHAT-HERO-SAYS 3>>
+ <COND (<AND <EQUAL? ,WHAT-HERO-SAYS 0>
+ ,HDAD-SPEECH>
+ <TELL <PICK-ONE ,MANNERISMS> ,PCR>)
+ (T
+ <TELL <GET ,HERO-SPEECHES ,WHAT-HERO-SAYS> ,PCR>
+ <SETG WHAT-HERO-SAYS <+ ,WHAT-HERO-SAYS 1>>)>)
+ (T
+ <TELL <PICK-ONE ,MANNERISMS> ,PCR>)>>
+
+<GLOBAL WHAT-HERO-SAYS 0>
+
+<GLOBAL HERO-SPEECHES
+ <TABLE
+ "\"I haven't found your father. We've long suspected a passage
+under the library, but I cannot find an entrance,\" says Jamison"
+ "\"If there is any trouble, and I am unable to help -- a signal from
+an upstairs seaward window will bring my men. They can be here in moments,\"
+the Captain says"
+ "\"I wish you would call me 'Nicholas' -- I feel I know you much
+better than our brief acquaintance would allow.\" He presses your hand">>
+
+<GLOBAL MANNERISMS
+ <LTABLE
+ 0
+ "Jamison touches your hair softly"
+ "Jamison grins down at you, a dazzling white smile"
+ "The blue of the captain's eyes seems to deepen, looking at you"
+ "His eyes twinkle, like moonlight on the sea"
+ "Nicholas's hands are smooth and cool">>
+
+<OBJECT RAPIER
+ (IN HERO)
+ (DESC "rapier")
+ (DESCFCN RAPIER-F)
+ (SYNONYM SWORD RAPIER)
+ (ADJECTIVE SHARP)
+ (FLAGS TRYTAKEBIT TAKEBIT)
+ (ACTION RAPIER-F)>
+
+<ROUTINE RAPIER-F ("OPTIONAL" (OARG <>))
+ <COND (.OARG
+ <COND (<EQUAL? ,HERE ,DUNGEON>
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <TELL ,INDENT
+"A rapier lies in the half-dark of a corner.">)
+ (T
+ <RFALSE>)>)
+ (<VERB? TAKE>
+ <COND (<AND <NOT <FSET? ,HERO ,DEADBIT>>
+ <IN? ,HERO ,HERE>>
+ <TELL
+"Jamison prevents you, \"This is not a weapon for ladies.\"" CR>)
+ (<AND <EQUAL? ,HERE ,DUNGEON>
+ <IN? ,CRULLEY ,DUNGEON>
+ <NOT <FSET? ,RAPIER ,TOUCHBIT>>
+ <NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>>
+ <TELL "Taken. "
+D ,CRULLEY " snorts, \"Be careful, you might hurt yer dearie.\"" CR>)
+ (<IN? ,RAPIER ,COOKIE>
+ <TELL D ,COOKIE
+" objects. \"It ain't fer a lady.\"" CR>)>)
+ (<AND <VERB? THROW PUT PUT-THROUGH>
+ <OR <PRSI? ,TRAP>
+ <AND <PRSI? ,CRULLEY>
+ <FSET? ,CRULLEY ,MUNGBIT>>>>
+ <TELL "But you might need it later!" CR>)
+ (<VERB? EXAMINE>
+ <TELL
+"Jamison's rapier is a dangerous looking sword with a narrow pointed blade">
+ <COND (<NOT <EQUAL? ,HERE ,CABIN ,DEUX-DECK>>
+ <TELL ". It is decorated with a big floppy ribbon">)>
+ <TELL ,PCR>)>>
+
+
+
diff --git a/island.zap b/island.zap
new file mode 100644
index 0000000..fb9d852
--- /dev/null
+++ b/island.zap
@@ -0,0 +1,2503 @@
+
+
+ .FUNCT ISLAND-F
+ EQUAL? PRSA,V?EXAMINE \FALSE
+ EQUAL? HERE,LIBRARY \?CCL6
+ CALL PERFORM,V?EXAMINE,GLOBE
+ RSTACK
+?CCL6: CALL INNER-DECK,HERE
+ ZERO? STACK /?CCL8
+ PRINT YOU-CANT
+ PRINTI "see it from here"
+ PRINT PCR
+ RTRUE
+?CCL8: CALL SHIP-BOARD,HERE
+ ZERO? STACK \?CTR9
+ EQUAL? HERE,SHALLOWS,LAGOON,BY-SHIP /?CTR9
+ EQUAL? HERE,ON-LADDER \?CCL10
+?CTR9: PRINTI "St. Sinistra is blessed with lush tropical beauty, jungle besieging the mansion atop the southern cliffs"
+ PRINT PCR
+ RTRUE
+?CCL10: CALL PERFORM,V?LOOK
+ RTRUE
+
+
+ .FUNCT BELOW-GROUND,RM
+ EQUAL? RM,STAIRWELL,BOTTOM-STAIRS /TRUE
+ EQUAL? RM,ANTEROOM,DUNGEON /TRUE
+ EQUAL? RM,PASSAGE-1,PASSAGE-2,PASSAGE-4 /TRUE
+ EQUAL? RM,CELL-1,CELL-2,CELL-4 /TRUE
+ RFALSE
+
+
+ .FUNCT BEACH-F,RARG
+ EQUAL? RARG,M-LOOK \?CCL3
+ PRINTI "This is a tiny beach, at the base of vine-covered cliffs. To the east,"
+ FSET? SHIP,MUNGBIT \?CCL6
+ PRINTI " across the debris-ridden lagoon, black reefs speckle the blue endless sea"
+ JUMP ?CND4
+?CCL6: CALL TPRINT,SHIP
+ PRINTI " floats serenely on the lagoon"
+?CND4: ZERO? ENDGAME /?CND7
+ PRINTI ". Halfway out to the ship is a skiff crowded with men; another skiff sits on the sand"
+?CND7: PRINT PCR
+ PRINT INDENT
+ PRINTI "Immediately north of you, a rocky staircase is hewn into the cliff. "
+ CALL RUNNING?,I-ENDGAME
+ ZERO? STACK /TRUE
+ PRINTI "A sizable number of dragoons huddle at the top."
+ RTRUE
+?CCL3: EQUAL? RARG,M-END \?CCL13
+ ZERO? ENDGAME /?CCL13
+ FSET? STONE,TOUCHBIT /?CCL13
+ CALL QUEUED?,I-ENDGAME
+ ZERO? STACK /?CCL13
+ MOVE STONE,BEACH
+ FSET STONE,TOUCHBIT
+ PRINT INDENT
+ PRINTI "You splash into the rising surf and pain needles up your leg. Blood swirls out from your shoe in the shallow water, flowing over a small pointed stone"
+ PRINT PCR
+ RTRUE
+?CCL13: EQUAL? RARG,M-BEG \?CCL19
+ EQUAL? PRSA,V?ENTER \?CCL19
+ EQUAL? PRSO,SHALLOWS \?CCL19
+ CALL DO-WALK,P?EAST
+ RTRUE
+?CCL19: EQUAL? RARG,M-ENTER \FALSE
+ IN? COOKIE,LAWN \FALSE
+ PRINTR """I know 'e ain't down there!"" Cookie cries."
+
+
+ .FUNCT BEACH-EXIT
+ CALL RUNNING?,I-ENDGAME
+ ZERO? STACK /?CCL3
+ PRINTI "You would be safer aboard"
+ CALL TRPRINT,SHIP
+ RFALSE
+?CCL3: RETURN LAWN
+
+
+ .FUNCT P-SKIFF-F
+ EQUAL? HERE,BEACH \?CCL3
+ CALL CTPRINT,SKIFF
+ PRINTI " is out of reach. Wade into the shallows"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? HERE,ON-LADDER \FALSE
+ ZERO? SKIFF-TIED \?CCL8
+ PRINT YOU-CANT-SEE-ANY
+ PRINTD SKIFF
+ PRINTI " here."
+ CRLF
+ RETURN 8
+?CCL8: EQUAL? PRSA,V?BOARD,V?ENTER \FALSE
+ CALL DO-WALK,P?DOWN
+ RSTACK
+
+
+ .FUNCT LAWN-F,RARG
+ EQUAL? RARG,M-LOOK \?CCL3
+ PRINTI "Jungle looms around this clipped lawn, a path meandering westward into the dense undergrowth. To the east is a folly entangled in blooming jasmine. The way to the beach is obscure, but visible to the southeast. Behind the folly a thorny hedge blocks the cliff view of the sea."
+ ZERO? ENDGAME \TRUE
+ CRLF
+ PRINT INDENT
+ PRINTI "Music and voices float from the veranda to the north."
+ RTRUE
+?CCL3: EQUAL? RARG,M-END \FALSE
+ FSET? HERE,ACTORBIT /?CCL11
+ FSET HERE,ACTORBIT
+ PRINT INDENT
+ PRINTR "Two men stand whispering in the shadows. You catch an occasional word, ""Davis dead... girl... Falcon on Sinistra."" The men separate, the well-dressed one going into the ballroom as the other slinks into the bushes. You see his face. Crulley!"
+?CCL11: ZERO? COOKIE-LOOKING /TRUE
+ CALL I-COOKIE,TRUE-VALUE
+ RSTACK
+
+
+ .FUNCT GEN-FLOWER
+ EQUAL? HERE,FOLLY \FALSE
+ RETURN FLOWER
+
+
+ .FUNCT FLOWER-F
+ EQUAL? PRSA,V?PICK,V?TAKE \?CCL3
+ FSET? FLOWER,TAKEBIT /?CCL3
+ PRINTI "You can't bear to pick"
+ CALL TRPRINT,FLOWER
+ RSTACK
+?CCL3: EQUAL? PRSA,V?SMELL \FALSE
+ PRINTI "Ah, jasmine! Mama grew this in her garden"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT FOLLY-F,RARG
+ EQUAL? RARG,M-ENTER \FALSE
+ FSET? FOLLY,TOUCHBIT /FALSE
+ FSET? LAFS-ROOM,TOUCHBIT /FALSE
+ IN? DAD,CELL-4 \FALSE
+ SET 'HERO-CTR,1
+ CALL QUEUE,I-HFOLLY,2
+ RSTACK
+
+
+ .FUNCT FOLLY-OBJ-F
+ EQUAL? PRSA,V?ENTER \?CCL3
+ EQUAL? HERE,IN-HEDGE \?CCL6
+ CALL DO-WALK,P?WEST
+ RSTACK
+?CCL6: EQUAL? HERE,LAWN \?CCL8
+ CALL DO-WALK,P?EAST
+ RSTACK
+?CCL8: PRINT LOOK-AROUND
+ RTRUE
+?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
+ EQUAL? HERE,IN-HEDGE \?CCL13
+ CALL CTPRINT,FOLLY-OBJECT
+ PRINTI " is invisible beyond the leaves to the west"
+ PRINT PCR
+ RTRUE
+?CCL13: EQUAL? HERE,FOLLY \?CCL15
+ CALL V-LOOK
+ RTRUE
+?CCL15: CALL CTPRINT,FOLLY-OBJECT
+ PRINTI " is obscured by tangled vines"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT SLAT-F
+ EQUAL? PRSA,V?TAKE \?CCL3
+ ZERO? SLAT-OPEN \?CCL3
+ PRINTI "Only the bottom of the slat is loose. The rest is tightly woven into the frame of the folly"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?REMOVE,V?UNTIE \?CCL7
+ CALL IMPOSSIBLES
+ RSTACK
+?CCL7: EQUAL? PRSA,V?PUSH,V?FIDDLE,V?MOVE \?CCL9
+ ZERO? SLAT-OPEN /?CCL12
+ PRINT YOU-HAVE-ALREADY
+ PRINTR " done that."
+?CCL12: SET 'SLAT-OPEN,TRUE-VALUE
+ FCLEAR HOLE,INVISIBLE
+ FSET SLAT,NDESCBIT
+ PRINTI "You twist aside the "
+ PRINTD SLAT
+ PRINTI ", wedging the end into the woven wall. The remaining hole, just above the bench, looks big enough to snake "
+ PRINTD ME
+ PRINTI " through"
+ PRINT PCR
+ RTRUE
+?CCL9: EQUAL? PRSA,V?EXAMINE \FALSE
+ PRINTI "The bamboo slat at the back of the folly "
+ FSET? SLAT,NDESCBIT \?CCL17
+ PRINTI "has been pulled aside, making a hole in the wall"
+ PRINT PCR
+ RTRUE
+?CCL17: PRINTI "appears to be loose"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT HOLE-F
+ EQUAL? PRSA,V?ENTER \?CCL3
+ CALL DO-WALK,P?EAST
+ RSTACK
+?CCL3: EQUAL? PRSA,V?PUT,V?PUT-THROUGH,V?THROW \?CCL5
+ EQUAL? PRSO,HANDS \?CCL8
+ PRINT HUH
+ RTRUE
+?CCL8: EQUAL? PRSO,RETICULE /FALSE
+ CALL PRONOUN
+ PRINTI " fall"
+ FSET? PRSO,PLURALBIT /?CND11
+ PRINTC 115
+?CND11: PRINTI " through the hole"
+ MOVE PRSO,IN-HEDGE
+ PRINT PCR
+ RTRUE
+?CCL5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
+ PRINT YOU-SEE
+ PRINTI " a few leaves near to you, more fading into green obscurity"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT FOLLY-EXIT
+ ZERO? SLAT-OPEN /?CCL3
+ FSET? GOWN,WORNBIT /?CTR5
+ RETURN IN-HEDGE
+?CTR5: PRINTI "You might rip"
+ CALL TRPRINT,GOWN
+ RFALSE
+?CCL3: PRINT CANT-GO
+ RETURN FALSE
+
+
+ .FUNCT BY-HOUSE-F,RARG
+ EQUAL? RARG,M-LOOK \FALSE
+ PRINTI "You crouch in"
+ CALL TPRINT,HEDGE
+ PRINTI " by the house, twigs poking into you, the cliff crumbling away to the east. "
+ CALL CTPRINT,HEDGE
+ PRINTI " seems less dense to the south. A"
+ CALL TELL-OPEN/CLOSED,LIB-WINDOW,TRUE-VALUE
+ PRINTI " window is directly west of you."
+ RTRUE
+
+
+ .FUNCT VERANDA-F,RARG
+ EQUAL? RARG,M-LOOK \?CCL3
+ PRINTI "Steps lead south from this white marble veranda to a clipped lawn. To the north"
+ CALL QUEUED?,I-ENDGAME
+ ZERO? STACK /?CCL6
+ PRINTI " the wreckage left by the duel is visible in the ballroom."
+ RTRUE
+?CCL6: FSET? VER-DOOR,OPENBIT /?CND4
+ PRINTI ", beyond a closed glass door,"
+?CND4: ZERO? ENDGAME /?CCL10
+ PRINTI " is"
+ JUMP ?CND8
+?CCL10: PRINTI " a line of people blocks your view of"
+?CND8: PRINTI " the ballroom."
+ RTRUE
+?CCL3: EQUAL? RARG,M-END \FALSE
+ ZERO? COOKIE-LOOKING /FALSE
+ CALL I-COOKIE,TRUE-VALUE
+ RSTACK
+
+
+ .FUNCT AROUND-HOUSE
+ PRINTI "The gravel path is just wide enough for a cart to pass. It bends around the west wing of the house, leading you to"
+ PRINT ELLIPSIS
+ EQUAL? HERE,MAIN-ENTRANCE /?CTR2
+ RETURN MAIN-ENTRANCE
+?CTR2: RETURN TRADE-ENTRANCE
+
+
+ .FUNCT FOREST-F,RARG
+ EQUAL? RARG,M-END \FALSE
+ FSET? FOREST,EVERYBIT \FALSE
+ CALL DEQUEUE,I-CATCH-KISS
+ FCLEAR FOREST,EVERYBIT
+ PRINT INDENT
+ PRINTI "Two whispered voices come from the path ahead, one reassuring, the other desperate -- they sound like"
+ CALL TPRINT,DAD
+ PRINTR " and Lucy. Peering over a bush, you see the couple share a fond embrace before they meander off into the jungle."
+
+
+ .FUNCT CLEARING-F,RARG
+ EQUAL? RARG,M-BEG \FALSE
+ EQUAL? PRSO,WINDOW /?CCL3
+ EQUAL? PRSI,WINDOW \FALSE
+?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL10
+ PRINT YOU-SEE
+ PRINTR " only an embossed ceiling."
+?CCL10: EQUAL? PRSA,V?ENTER \?CCL12
+ CALL DO-WALK,P?UP
+ RTRUE
+?CCL12: CALL CANT-REACH,WINDOW
+ RSTACK
+
+
+ .FUNCT VINE-F
+ EQUAL? HERE,BEACH \?CCL3
+ EQUAL? PRSA,V?EXAMINE /?CCL3
+ CALL CANT-REACH,VINE
+ RSTACK
+?CCL3: EQUAL? PRSA,V?TAKE \?CCL7
+ PRINTI "You tug, but are unable to get any substantial length of vine"
+ PRINT PCR
+ RTRUE
+?CCL7: EQUAL? PRSA,V?CLIMB \?CCL9
+ EQUAL? HERE,CLEARING \?CCL9
+ CALL DO-WALK,P?UP
+ RTRUE
+?CCL9: EQUAL? PRSA,V?CLIMB-DOWN,V?CLIMB \FALSE
+ EQUAL? HERE,BEDROOM \FALSE
+ CALL DO-WALK,P?DOWN
+ RTRUE
+
+
+ .FUNCT KITCHEN-F,RARG
+ EQUAL? RARG,M-END \FALSE
+ IN? LUCY,KITCHEN \FALSE
+ ZERO? BOY-DRESS? /?CCL8
+ FSET? LUCY,TOUCHBIT /FALSE
+ FSET LUCY,TOUCHBIT
+ CALL QUEUE,I-LUCY,2
+ PRINT INDENT
+ PRINTR "The woman smiles uncertainly, then rushes over. ""Are you come from the village, boy? Dost know Lord Dimsford?"" She sighs at your surprise. ""So he sent you -- I am his Lucy. It's been so long since I've seen him. Lafond caught me eavesdropping and now I can't leave the grounds."""
+?CCL8: FSET? GOWN,WORNBIT \?CCL13
+ PRINT INDENT
+ PRINTI """Milady,"" exclaims the woman. ""Lafond's guests are wisest not to stray. Maybe you should stay at the ball."" You find "
+ PRINTD ME
+ PRINTI " ushered into a hallway"
+ PRINT PCR
+ CRLF
+ CALL GOTO,HALL-W
+ RSTACK
+?CCL13: PRINT INDENT
+ PRINTI "The woman shrieks, pushing you out the door. ""Has not the governor made clear his position on light-skirts? Out, slattern, before I report you!"" Her voice drops to a whisper, ""Sorry, but it's not safe around here. Stay in the village."" You find yourself outside"
+ PRINT PCR
+ CRLF
+ CALL GOTO,TRADE-ENTRANCE
+ RSTACK
+
+
+ .FUNCT KITCHEN-EXIT
+ CALL META-LOC,GARTER
+ EQUAL? STACK,HERE \?CCL3
+ CALL HELD?,GARTER
+ ZERO? STACK \?CCL3
+ IN? LUCY,HERE \?CCL3
+ IN? DAD,HERE /?CCL3
+ REMOVE GARTER
+ CALL DEQUEUE,I-LUCY
+ PRINTI "Lucy spits at you, ""Yes, desert a helpless woman. Tell Lafond I'm a spy. Dimsford will avenge me, runt!"" She comes after you with a rolling pin, pushing you out the door"
+ PRINT PCR
+ CRLF
+ RETURN TRADE-ENTRANCE
+?CCL3: IN? LUCY,HERE \?CND8
+ IN? DAD,HERE /?CND8
+ FSET? GARTER,TOUCHBIT \?CND8
+ PRINTI """Don't forget -- tell Dimsford,"""
+ CALL TPRINT,LUCY
+ PRINT CALLS-AFTER
+?CND8: EQUAL? P-WALK-DIR,P?SOUTH /?CTR14
+ RETURN TRADE-ENTRANCE
+?CTR14: RETURN HALL-W
+
+
+ .FUNCT BALLROOM-ENTRANCE
+ EQUAL? HERE,VERANDA \?CCL3
+ FSET? VER-DOOR,OPENBIT /?CCL3
+ CALL CTPRINT,DOOR
+ PRINT IS-CLOSED
+ PRINT PCR
+ RFALSE
+?CCL3: ZERO? ENDGAME /?CCL7
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK /?CCL10
+ PRINT YOU-CANT
+ PRINTI "force "
+ PRINTD ME
+ PRINTI " between the amazed spectators of the duel"
+ PRINT PCR
+ RETURN FALSE
+?CCL10: RETURN BALLROOM
+?CCL7: FSET? GOWN,WORNBIT /?CCL12
+ PRINTI "Though you glimpse whirling bodies beyond, the spectators fail to admit such a "
+ ZERO? BOY-DRESS? /?CCL15
+ PRINTI "grubby youth"
+ JUMP ?CND13
+?CCL15: PRINTI "poorly dressed female"
+?CND13: PRINTI ".
+"
+ RETURN FALSE
+?CCL12: PRINTI "The sea of spectators parts to admit you, murmuring approval"
+ PRINT PCR
+ CRLF
+ RETURN BALLROOM
+
+
+ .FUNCT FOYER-F,RARG
+ EQUAL? RARG,M-END \?CCL3
+ FSET? BUTLER,DEADBIT /?CCL6
+ IN? BUTLER,HERE \?CCL6
+ FSET? GOWN,WORNBIT \?CCL11
+ FSET? FOYER,EVERYBIT \?CCL14
+ FCLEAR FOYER,EVERYBIT
+ REMOVE BUTLER
+ PRINT INDENT
+ PRINTI """Miss, the master has been expecting you, up in his room. I did look for you."" "
+ CALL CTPRINT,BUTLER
+ PRINTR " bows and leaves."
+?CCL14: FSET? BUTLER,MUNGBIT \FALSE
+ PRINT INDENT
+ PRINTC 34
+ PRINT NO-LOITERING
+ PRINT PUSHING-YOU-OUT
+ CRLF
+ CALL GOTO,MAIN-ENTRANCE
+ RSTACK
+?CCL11: ZERO? BOY-DRESS? /?CCL18
+ CALL KICKED-OUT
+ RSTACK
+?CCL18: PRINT INDENT
+ PRINTI """You may not ply your wares here, Paphian. Leave before I have you thrown off the cliff!"" You contemplate this pleasant prospect as you are tossed onto the gravel drive."
+ CRLF
+ CRLF
+ CALL GOTO,MAIN-ENTRANCE
+ RSTACK
+?CCL6: ZERO? COOKIE-LOOKING /TRUE
+ CALL I-COOKIE,TRUE-VALUE
+ RSTACK
+?CCL3: EQUAL? RARG,M-ENTER \FALSE
+ FSET? BUTLER,DEADBIT /FALSE
+ FSET? BUTLER,INDOORSBIT /FALSE
+ CALL QUEUE,I-BUTLER,3
+ RSTACK
+
+
+ .FUNCT FOYER-EXIT
+ FSET? BUTLER,INDOORSBIT \?CCL3
+ EQUAL? P-WALK-DIR,P?SOUTH \?CCL6
+ CALL BALLROOM-ENTRANCE
+ RSTACK
+?CCL6: EQUAL? P-WALK-DIR,P?WEST \?CCL8
+ RETURN HALL-W
+?CCL8: EQUAL? P-WALK-DIR,P?UP \?CCL10
+ RETURN STAIRTOP
+?CCL10: EQUAL? P-WALK-DIR,P?EAST,P?UP \FALSE
+ IN? BUTLER,HERE /?CTR14
+ RETURN HALL-E
+?CTR14: PRINTI """No, ma'am, that way's private."" The butler stops you"
+ PRINT PCR
+ RFALSE
+?CCL3: CALL RUNNING?,I-BUTLER
+ ZERO? STACK /?CCL17
+ CALL QUEUE,I-BUTLER,2
+ PRINTI """Excuse me!"" The "
+ PRINTD BUTLER
+ PRINTI " pushes you back. ""Your invitation, please!"""
+ CRLF
+ RFALSE
+?CCL17: CALL QUEUE,I-BUTLER,2
+ SET 'AWAITING-FAKE-ORPHAN,TRUE-VALUE
+ PRINTI "The butler prevents you. ""Miss... your invitation?"""
+ CRLF
+ RFALSE
+
+
+ .FUNCT BALLROOM-F,RARG=0
+ EQUAL? RARG,M-LOOK \?CCL3
+ ZERO? ENDGAME /?CCL6
+ CALL QUEUED?,I-ENDGAME
+ ZERO? STACK /?CCL9
+ CALL CTPRINT,DANCERS
+ PRINTI "s stare amazed at Lafond's limp body, some disbelieving, some hopeful, all stock still. The pirates have fled to the darkness of the lawn"
+ JUMP ?CND4
+?CCL9: PRINTI "All is chaos, screaming women fainting on terrified men. Several of Jamison's scruffiest men round the dancers into a huddle in the center of"
+ PRINT DANCE-FLOOR
+ JUMP ?CND4
+?CCL6: PRINTI "Lafond's party is well attended: you can hardly move for the crush. However, the room is oddly silent, no talk interrupting the musical efforts of"
+ CALL TPRINT,MUSICIANS
+ PRINTI " to the west. Despite the heat, no one ventures south to the veranda, nor through the opening east. The foyer is north of you"
+?CND4: PRINTC 46
+ RTRUE
+?CCL3: EQUAL? RARG,M-ENTER \?CCL11
+ FSET? HERE,TOUCHBIT /?CCL14
+ SET 'HERO-CTR,1
+ CALL QUEUE,I-HDANCE,-1
+ RSTACK
+?CCL14: ZERO? PARTNER \FALSE
+ EQUAL? DANCED-WITH,HERO \FALSE
+ ZERO? ENDGAME \FALSE
+ SET 'LAFOND-CTR,1
+ CALL QUEUE,I-LDANCE,1
+ RFALSE
+?CCL11: EQUAL? RARG,M-BEG \?CCL21
+ EQUAL? CREW,PRSO,PRSI \?CCL24
+ CALL NOUN-USED,W?MAN,CREW
+ ZERO? STACK \?CCL24
+ EQUAL? PRSA,V?ASK-ABOUT /?CCL24
+ EQUAL? PRSO,LAFOND,HERO /?CCL24
+ FSET? BALLROOM,EVERYBIT /?CCL24
+ PRINT YOU-CANT-SEE-ANY
+ PRINTI "of Jamison's crew here"
+ PRINT PCR
+ CALL STOP
+ RSTACK
+?CCL24: EQUAL? PRSA,V?ASK-FOR \?CCL31
+ IN? PRSO,HERE \?CCL31
+ EQUAL? PRSI,BALLROOM \?CCL31
+ CALL PERFORM,V?DANCE,PRSO
+ RTRUE
+?CCL31: EQUAL? PRSA,V?PUT \?CCL36
+ EQUAL? PRSI,BALLROOM \?CCL36
+ CALL PERFORM,V?DROP,PRSO
+ RTRUE
+?CCL36: EQUAL? PARTNER,HERO,LAFOND \FALSE
+ CALL TOUCHING?,VER-DOOR
+ ZERO? STACK /FALSE
+ PRINTD PARTNER
+ PRINTR " sweeps you past."
+?CCL21: EQUAL? RARG,M-END \FALSE
+ ZERO? COOKIE-LOOKING /FALSE
+ CALL I-COOKIE,TRUE-VALUE
+ RSTACK
+
+
+ .FUNCT BALLROOM-EXIT
+ EQUAL? PARTNER,HERO \?CCL3
+ PRINTI """Would you rather not dance? "
+ EQUAL? P-WALK-DIR,P?SOUTH \?CCL6
+ PRINTI "Apparently the guests have orders not to go outside."" Instead"
+ CALL TPRINT,HERO
+ PRINTI " whirls and twirls you towards"
+ CALL TRPRINT,MUSICIANS
+ CRLF
+ RETURN ORCHESTRA
+?CCL6: EQUAL? P-WALK-DIR,P?EAST \?CCL8
+ PRINTI "Hungry?"" He guides you into the supper room, then tsks in dismay. ""They've cleared the food away already!"""
+ CRLF
+ CRLF
+ RETURN SUPPER-ROOM
+?CCL8: EQUAL? P-WALK-DIR,P?WEST \?CCL10
+ PRINTI "Let's listen to the music while we talk."" He walks you towards"
+ CALL TRPRINT,MUSICIANS
+ CRLF
+ RETURN ORCHESTRA
+?CCL10: PRINTI "It wouldn't be wise to put ourselves into the butler's sight, though."" He escorts you into the supper-room instead"
+ PRINT PCR
+ CRLF
+ RETURN SUPPER-ROOM
+?CCL3: CALL QUEUED?,I-CKILLS-DAD
+ ZERO? STACK /?CCL12
+ PRINTD LAFOND
+ PRINTI " stops you. ""Stay until we hear the sad news."""
+ CRLF
+ RFALSE
+?CCL12: EQUAL? LAFOND,PARTNER \?CCL14
+ PRINTI """How dare you walk away!"" Lafond grips your arm, so you may not leave the floor"
+ PRINT PCR
+ RFALSE
+?CCL14: CALL RUNNING?,I-LDANCE
+ ZERO? STACK /?CND1
+ LOC LAFOND
+ EQUAL? STACK,HERE \?CND1
+ SET 'QUESTIONER,LAFOND
+ PRINTI """Your answer, cherie?"" His twists your wrist mercilessly"
+ PRINT PCR
+ RFALSE
+?CND1: EQUAL? P-WALK-DIR,P?NORTH \?CCL20
+ RETURN FOYER
+?CCL20: EQUAL? P-WALK-DIR,P?SOUTH \?CCL22
+ FSET? VER-DOOR,OPENBIT \?CCL25
+ RETURN VERANDA
+?CCL25: CALL CTPRINT,DOOR
+ PRINT IS-CLOSED
+ PRINT PCR
+ RFALSE
+?CCL22: EQUAL? P-WALK-DIR,P?WEST \?CCL27
+ RETURN ORCHESTRA
+?CCL27: EQUAL? P-WALK-DIR,P?EAST \FALSE
+ RETURN SUPPER-ROOM
+
+
+ .FUNCT MUSICIANS-F
+ EQUAL? PRSA,V?LISTEN,V?EXAMINE \?CCL3
+ ZERO? ENDGAME /?CCL6
+ PRINTI "The musicians are with"
+ CALL TPRINT,DANCERS
+ PRINTR "s in the ballroom."
+?CCL6: PRINTR "The small band is made up of a virginal, bass and treble viols, and several recorders. They are playing ""I Want to Kiss Your Hand,"" by J.S. Beatle."
+?CCL3: CALL UNIMPORTANT-THING
+ CALL STOP
+ RSTACK
+
+
+ .FUNCT ORCHESTRA-F,RARG
+ EQUAL? RARG,M-LOOK \?CCL3
+ ZERO? ENDGAME /?CCL6
+ CALL QUEUED?,I-ENDGAME
+ ZERO? STACK \?CCL6
+ PRINTI "This end of the ballroom is empty of people."
+ RTRUE
+?CCL6: PRINTI "A few older women and young girls sit near the small orchestra assembled at this end of the ballroom."
+ RTRUE
+?CCL3: EQUAL? RARG,M-END \FALSE
+ ZERO? COOKIE-LOOKING /FALSE
+ CALL I-COOKIE,TRUE-VALUE
+ RSTACK
+
+
+ .FUNCT SUPPER-ROOM-F,RARG
+ EQUAL? RARG,M-ENTER \?CCL3
+ MOVE LONG-TABLE,HERE
+ RTRUE
+?CCL3: EQUAL? RARG,M-END \FALSE
+ ZERO? COOKIE-LOOKING /FALSE
+ CALL I-COOKIE,TRUE-VALUE
+ RSTACK
+
+
+ .FUNCT UNDER-TABLE
+ PRINTI "You scuttle underneath"
+ CALL TRPRINT,LONG-TABLE
+ CRLF
+ EQUAL? HERE,HALL-E /?CTR2
+ RETURN HALL-E
+?CTR2: RETURN SUPPER-ROOM
+
+
+ .FUNCT HALL-E-F,RARG
+ EQUAL? RARG,M-END \?CCL3
+ FSET? BUTLER,DEADBIT /?CCL3
+ IN? BUTLER,FOYER \?CCL3
+ FSET? GOWN,WORNBIT /?CCL9
+ CALL KICKED-OUT
+ RSTACK
+?CCL9: FSET? BUTLER,INDOORSBIT /FALSE
+ PRINT INDENT
+ PRINTI "A "
+ PRINTD BUTLER
+ PRINTI " takes your arm, pulling you into the foyer. ""I have not seen your "
+ PRINTD INVITE
+ PRINTI ", Miss."""
+ CRLF
+ CRLF
+ CALL GOTO,FOYER
+ RSTACK
+?CCL3: EQUAL? RARG,M-ENTER \FALSE
+ MOVE LONG-TABLE,HALL-E
+ RTRUE
+
+
+ .FUNCT LIBRARY-F,RARG
+ EQUAL? RARG,M-LOOK \?CCL3
+ PRINTI "Everything in this private office is larger than life. A huge "
+ PRINTD PORTRAIT
+ FSET? PORTRAIT,OPENBIT \?CND4
+ PRINTI ", slightly awry from the wall,"
+?CND4: PRINTI " decorates the north side, and black drapes mask the east wall. Bookshelves tower over a cherry desk, and a massive wooden globe squats in a corner."
+ ZERO? ENDGAME \?CND6
+ PRINTI " Music wafts distantly from the ballroom across the hall to the south."
+?CND6: FSET? KNOB,DEADBIT /TRUE
+ CRLF
+ PRINT INDENT
+ PRINTI "A knob juts out of the wall."
+ RTRUE
+?CCL3: EQUAL? RARG,M-ENTER \?CCL12
+ IN? COOKIE,HERE \?CCL12
+ FSET? COOKIE,EVERYBIT /?CCL12
+ FSET COOKIE,EVERYBIT
+ PRINT SURPRISE
+ PRINTD COOKIE
+ PRINTI " is here, studying the walls. ""Cap'n said somethin' about a secret door, mebbe."""
+ CRLF
+ CRLF
+ RTRUE
+?CCL12: EQUAL? RARG,M-END \FALSE
+ IN? DAD,HERE \?CCL20
+ EQUAL? DANCED-WITH,LAFOND \?CND21
+ ZERO? HERO-ARRESTED \?CND21
+ CALL QUEUE,I-HARRESTED,2
+?CND21: CALL QUEUE,I-CATCH-KISS,25
+ FSET FOREST,EVERYBIT
+ FSET LIB-WINDOW,OPENBIT
+ SET 'SLAT-OPEN,TRUE-VALUE
+ FCLEAR HOLE,INVISIBLE
+ FSET SLAT,NDESCBIT
+ REMOVE DAD
+ REMOVE LUCY
+ PRINT INDENT
+ PRINTI """A "
+ PRINTD WINDOW
+ PRINTI "!"" your father exclaims. ""I shall creep out to the kitchen. Get the Falcon."" He climbs out"
+ CALL TRPRINT,WINDOW
+ RSTACK
+?CCL20: IN? COOKIE,HERE \FALSE
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK /FALSE
+ MOVE COOKIE,GALLERY
+ REMOVE CREW
+ PRINT INDENT
+ PRINTD COOKIE
+ PRINTI " cocks his head. ""What is that noise? Is Cap'n duelling Lafond? There's no chance he could win as beaten as he is!"" Cookie races out towards the ballroom"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT PORTRAIT-EXIT
+ FSET? PORTRAIT,MUNGBIT /?CCL3
+ PRINT CANT-GO
+ RFALSE
+?CCL3: FSET? PORTRAIT,OPENBIT /?CCL5
+ CALL CTPRINT,PORTRAIT
+ PRINT IS-CLOSED
+ PRINT PCR
+ RFALSE
+?CCL5: CALL HELD?,HAT
+ ZERO? STACK /?CND6
+ CALL SAFETY-SAKE
+ PRINT INDENT
+?CND6: PRINTI "You move beyond"
+ CALL TPRINT,PORTRAIT
+ PRINTI " into the "
+ EQUAL? HERE,STAIRWELL \?CCL10
+ PRINTI "library"
+ PRINT PCR
+ CRLF
+ RETURN LIBRARY
+?CCL10: EQUAL? HERE,LIBRARY \FALSE
+ PRINTI "flickering torchlight"
+ PRINT PCR
+ CRLF
+ RETURN STAIRWELL
+
+
+ .FUNCT DRAPES-F
+ EQUAL? PRSA,V?LOOK-BEHIND \?CCL3
+ EQUAL? HERE,LAFS-ROOM \?CCL6
+ PRINT THERES-NOTHING
+ PRINTI "interesting behind"
+ CALL TRPRINT,DRAPES
+ RSTACK
+?CCL6: PRINTI "In the dark behind"
+ CALL TPRINT,DRAPES
+ PRINTI " is"
+ CALL ARPRINT,WINDOW
+ RSTACK
+?CCL3: EQUAL? PRSA,V?MOVE,V?PUSH,V?OPEN \?CCL8
+ PRINT PULL-FABRIC
+ CRLF
+ RTRUE
+?CCL8: EQUAL? PRSA,V?CLOSE \?CCL10
+ EQUAL? HERE,LIBRARY \?CCL13
+ PRINT ALREADY-ARE
+ RTRUE
+?CCL13: PRINT BEAUTIFUL-NIGHT
+ RTRUE
+?CCL10: EQUAL? PRSA,V?EXAMINE \FALSE
+ EQUAL? HERE,LIBRARY \?CCL18
+ PRINTI "Dark drapes cover an entire wall of the room"
+ PRINT PCR
+ RTRUE
+?CCL18: PRINTI "The purple hangings are densely embroidered with gold"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT TORCH-F
+ EQUAL? PRSA,V?EXAMINE \?CCL3
+ CALL CTPRINT,TORCH
+ PRINTR " is flickering madly in the breeze."
+?CCL3: EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL5
+ FSET? PRSI,BURNBIT \?CCL5
+ PRINTR "Mama disapproved of pyromaniacs."
+?CCL5: CALL TOUCHING?,TORCH
+ ZERO? STACK /FALSE
+ PRINT YOU-CANT
+ PRINTI "reach"
+ CALL TPRINT,TORCH
+ PRINTR ". Ladies don't carry them anyway."
+
+
+ .FUNCT PORTRAIT-F
+ EQUAL? PRSA,V?EXAMINE \?CCL3
+ EQUAL? HERE,LIBRARY \?CCL6
+ FSET? PORTRAIT,OPENBIT \?CCL9
+ PRINTI "Cool air seeps out from"
+ CALL TRPRINT,PORTRAIT
+ RSTACK
+?CCL9: CALL CTPRINT,PORTRAIT
+ PRINTI " seems familiar, and you realize it is exactly the picture on the front of"
+ CALL TPRINT,BANKNOTE
+ CALL TPRINT,LAFOND
+ PRINTR " sent you, same clothes, same surroundings, same pose."
+?CCL6: PRINT YOU-SEE
+ PRINT THE-BACK
+ CALL TRPRINT,PORTRAIT
+ RSTACK
+?CCL3: EQUAL? PRSA,V?LOOK-BEHIND \?CCL11
+ FSET? PORTRAIT,OPENBIT \?CCL14
+ CALL PERFORM,V?EXAMINE,PORTRAIT
+ RTRUE
+?CCL14: CALL CTPRINT,PORTRAIT
+ PRINTI " is firmly fastened to the wall"
+ PRINT PCR
+ RTRUE
+?CCL11: EQUAL? PRSA,V?WALK,V?HIDE,V?ENTER \?CCL16
+ FSET? PORTRAIT,MUNGBIT /?CCL19
+ PRINTI "This is a "
+ PRINTD PORTRAIT
+ PRINTI ", not a looking glass"
+ PRINT PCR
+ RTRUE
+?CCL19: CALL DO-WALK,P?IN
+ RSTACK
+?CCL16: EQUAL? PRSA,V?OPEN \?CCL21
+ FSET? PORTRAIT,OPENBIT \?CCL24
+ PRINT ALREADY-IS
+ RTRUE
+?CCL24: FSET? PORTRAIT,MUNGBIT \?CCL26
+ FSET PORTRAIT,OPENBIT
+ EQUAL? HERE,LIBRARY \?CCL29
+ PRINTI "Quickly you pull the book, joggle"
+ CALL TPRINT,KNOB
+ PRINTI " and touch"
+ CALL TPRINT,GLOBE
+ PRINTI ", and"
+ CALL TPRINT,PORTRAIT
+ PRINTI " pops open."
+ IN? COOKIE,HERE \?CND30
+ PRINT COOKIE-HARRUMPHS
+?CND30: CRLF
+ RTRUE
+?CCL29: PRINTI "You push outwards on the wall, opening"
+ CALL TRPRINT,PORTRAIT
+ RSTACK
+?CCL26: PRINTI "Open a "
+ PRINTD PORTRAIT
+ PRINTR "?!"
+?CCL21: EQUAL? PRSA,V?CLOSE \FALSE
+ FSET? PORTRAIT,MUNGBIT /?CCL36
+ PRINT HUH
+ RTRUE
+?CCL36: FSET? PORTRAIT,OPENBIT \FALSE
+ FCLEAR PORTRAIT,OPENBIT
+ FCLEAR POWER,EVERYBIT
+ FCLEAR KNOB,EVERYBIT
+ CALL CTPRINT,PORTRAIT
+ PRINTR " swings shut with a tiny snap."
+
+
+ .FUNCT GLOBE-F
+ EQUAL? PRSA,V?PUSH,V?TOUCH /?CTR2
+ EQUAL? PRSA,V?PUT-ON \?CCL3
+ EQUAL? PRSO,HANDS \?CCL3
+?CTR2: PRINTI "You press the "
+ CALL NOUN-USED,W?SINISTRA,GLOBE
+ ZERO? STACK \?CTR9
+ CALL NOUN-USED,W?ISLAND,GLOBE
+ ZERO? STACK \?CTR9
+ CALL ADJ-USED,A?ST
+ ZERO? STACK /?CCL10
+?CTR9: PRINTI "painted island, and it sinks into the wooden sea."
+ FSET? KNOB,EVERYBIT \?CND8
+ FSET? POWER,EVERYBIT \?CND8
+ FSET? PORTRAIT,OPENBIT /?CND8
+ FSET PORTRAIT,OPENBIT
+ FSET? PORTRAIT,MUNGBIT /?CND19
+ FSET PORTRAIT,MUNGBIT
+ INC 'SCORE
+?CND19: PRINTI " You hear a whirr and a click and"
+ CALL TPRINT,PORTRAIT
+ PRINTI " pops open. A draft of sea-scented air flows in from behind it."
+ IN? COOKIE,HERE \?CND8
+ PRINT COOKIE-HARRUMPHS
+?CND8: CRLF
+ RTRUE
+?CCL10: PRINTR "globe at random."
+?CCL3: EQUAL? PRSA,V?SET,V?TAKE \?CCL24
+ CALL CTPRINT,GLOBE
+ PRINTR " is solidly fastened to the floor."
+?CCL24: EQUAL? PRSA,V?FIND \?CCL26
+ EQUAL? PRSI,GLOBE \?CCL26
+ CALL NOUN-USED,W?SINISTRA,GLOBE
+ ZERO? STACK \?CTR25
+ CALL NOUN-USED,W?ISLAND,GLOBE
+ ZERO? STACK \?CTR25
+ CALL ADJ-USED,A?ST
+ ZERO? STACK /?CCL26
+?CTR25: PRINTR "It is in the West Indies, surrounded by blue."
+?CCL26: EQUAL? PRSA,V?EXAMINE \FALSE
+ CALL NOUN-USED,W?SINISTRA,GLOBE
+ ZERO? STACK \?CTR36
+ CALL NOUN-USED,W?ISLAND,GLOBE
+ ZERO? STACK \?CTR36
+ CALL ADJ-USED,A?ST
+ ZERO? STACK /?CCL37
+?CTR36: PRINTI "A tiny replica of "
+ PRINTD ISLAND
+ PRINTI " is painted on"
+ CALL TPRINT,GLOBE
+ PRINTI " in greater detail than any other country, showing even the road from Santa Ananas to Lafond's mansion"
+ PRINT PCR
+ RTRUE
+?CCL37: PRINTI "The massive wooden globe, painted in greens and blues and white, describes the world as presently known"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT BOOKS-GLOBAL-F
+ EQUAL? PRSA,V?TAKE,V?READ,V?LOOK-INSIDE /?CTR2
+ EQUAL? PRSA,V?OPEN \?CCL3
+?CTR2: PRINTI "You pick one at random. You always preferred horses to reading, so you put it back"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?SEARCH,V?EXAMINE \?CCL7
+ PRINTI "Most of the books appear unread, their pages uncut, the spines not yet creased. All except one, ""Treatise of Power"" by Sir Michael Villiers"
+ PRINT PCR
+ RTRUE
+?CCL7: EQUAL? PRSA,V?PUSH,V?MOVE \FALSE
+ PRINT HUH
+ RTRUE
+
+
+ .FUNCT BOOKCASE-F
+ EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?EXAMINE \?CCL3
+ CALL PERFORM,V?EXAMINE,BOOKS-GLOBAL
+ RTRUE
+?CCL3: EQUAL? PRSA,V?SET,V?PUSH,V?MOVE \?CCL5
+ SET 'AWAITING-REPLY,3
+ CALL QUEUE,I-REPLY,2
+ PRINTI "Why tamper with a "
+ PRINTD BOOKCASE
+ PRINTR "? Searching for a secret door or some such?"
+?CCL5: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
+ CALL WASTES
+ RSTACK
+
+
+ .FUNCT POWER-F
+ EQUAL? PRSA,V?OPEN,V?TAKE,V?READ /?CTR2
+ EQUAL? PRSA,V?FIDDLE,V?MOVE \?CCL3
+?CTR2: PRINTI "You half tip"
+ CALL TPRINT,POWER
+ PRINTI " out of the shelf when it snaps surprisingly back into place"
+ FSET? POWER,MUNGBIT /?CND6
+ FSET POWER,MUNGBIT
+ INC 'SCORE
+?CND6: FSET? POWER,EVERYBIT /?CND8
+ FSET POWER,EVERYBIT
+ PRINTI ". There is a mysterious scraping sound from inside the wall"
+?CND8: PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE
+ PRINTR "You gaze at ""Treatise of Power"" without taking it. It seems to be the only book that has been read in the library, the leather creased and dull with use."
+
+
+ .FUNCT GENERIC-BOOK,X,Y
+ EQUAL? HERE,LIBRARY \FALSE
+ RETURN BOOKS-GLOBAL
+
+
+ .FUNCT KNOB-F
+ EQUAL? PRSA,V?SET,V?MOVE,V?PUSH /?CTR2
+ EQUAL? PRSA,V?FIDDLE,V?LOWER \?CCL3
+?CTR2: FSET? KNOB,EVERYBIT \?CCL8
+ CALL HACK-HACK,STR?261
+ RSTACK
+?CCL8: FSET KNOB,EVERYBIT
+ CALL KNOB-CAUSES-TINGLE,STR?317
+ RSTACK
+?CCL3: EQUAL? PRSA,V?PUT,V?PUT-ON \?CCL10
+ EQUAL? PRSO,HAT \?CCL10
+ FSET? KNOB,DEADBIT \?CCL15
+ PRINT ALREADY-IS
+ RTRUE
+?CCL15: CALL HELD?,HAT
+ ZERO? STACK \?CCL17
+ PRINT YNH
+ CALL TRPRINT,HAT
+ RSTACK
+?CCL17: FSET HAT,EVERYBIT
+ FSET KNOB,DEADBIT
+ MOVE HAT,LIBRARY
+ PRINTI "You prop"
+ CALL TPRINT,HAT
+ PRINTI " back on"
+ CALL TRPRINT,KNOB
+ RSTACK
+?CCL10: EQUAL? PRSA,V?EXAMINE \FALSE
+ FSET? KNOB,DEADBIT \FALSE
+ CALL CTPRINT,HAT
+ PRINTI " is on"
+ CALL TRPRINT,KNOB
+ RSTACK
+
+
+ .FUNCT STAIRTOP-F,RARG
+ EQUAL? RARG,M-LOOK \FALSE
+ PRINTI "The east-west hallway opens here to curve into a grand staircase sweeping down to the foyer."
+ RTRUE
+
+
+ .FUNCT DIVAN-F
+ EQUAL? PRSA,V?EXAMINE \?CCL3
+ PRINTI "Backless, upholstered in Oriental silk,"
+ CALL TPRINT,DIVAN
+ PRINTI " looks exotic and comfortable"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?ENTER,V?CLIMB-ON,V?BOARD \?CCL5
+ PRINTR "You haven't time to relax now."
+?CCL5: CALL UNIMPORTANT-THING
+ RSTACK
+
+
+ .FUNCT PAIR-F
+ CALL TOUCHING?,PAIR
+ ZERO? STACK /FALSE
+ PRINT YOU-CANT
+ PRINTI "reach them. Ladies don't carry "
+ PRINTD PISTOL
+ PRINTR "s, anyway."
+
+
+ .FUNCT LAFS-ROOM-F,RARG,THING
+ EQUAL? RARG,M-BEG \?CCL3
+ ZERO? LAFOND-LOOKING /?CCL3
+ GRTR? LAFOND-CTR,9 \?CCL8
+ EQUAL? PRSO,SPICES,PINCH /?CCL8
+ EQUAL? PRSA,V?WEAR,V?TAKE \?CCL8
+ EQUAL? PRSA,V?WEAR,V?TAKE \TRUE
+ PRINTD LAFOND
+ PRINTI " stops you"
+ PRINT PCR
+ RTRUE
+?CCL8: EQUAL? PRSI,LAUD,BOTTLE /?CTR14
+ EQUAL? PRSO,LAUD,BOTTLE \?CCL15
+?CTR14: SET 'THING,BOTTLE
+ JUMP ?CND6
+?CCL15: EQUAL? PRSA,V?POINT,V?WAVE,V?PUT \FALSE
+ EQUAL? MIRROR,PRSO,PRSI \?CCL22
+ SET 'THING,MIRROR
+ JUMP ?CND6
+?CCL22: EQUAL? TRAY,PRSO,PRSI \FALSE
+ SET 'THING,TRAY
+?CND6: REMOVE THING
+ PRINTI "Lafond bounds to your side, grabbing"
+ CALL TPRINT,THING
+ PRINTI " out of "
+ PRINTD HANDS
+ PRINTI " before you can use it. ""What have we here? Trying to "
+ EQUAL? THING,BOTTLE \?CCL27
+ PRINTI "poison "
+ PRINTD ME
+ PRINTI "? Or me?"
+ JUMP ?CND25
+?CCL27: EQUAL? THING,MIRROR,TRAY \?CND25
+ PRINTI "signal for help? You are beyond help."
+?CND25: PRINTI """ He throws it out"
+ CALL TRPRINT,SHUTTERS
+ RSTACK
+?CCL3: EQUAL? RARG,M-ENTER \?CCL30
+ FSET? LAFS-ROOM,TOUCHBIT /?CCL30
+ FSET LAFS-ROOM,TOUCHBIT
+ INC 'SCORE
+ SET 'LAFOND-CTR,1
+ CALL QUEUE,I-LSED,1
+ PRINTI """Welcome, ma petite"
+ FSET? GOWN,WORNBIT /?CND33
+ PRINTI " -- but where is your "
+ PRINTD GOWN
+ PRINTI "? Ah, chacun a son gout"
+?CND33: PRINTI "."" Lafond bows you in"
+ PRINT PCR
+ CRLF
+ RTRUE
+?CCL30: EQUAL? RARG,M-LOOK \FALSE
+ PRINTD LAFOND
+ PRINTI "'s bedroom shows all the outpourings of his megalomania. Royal hues of purple and gold weigh down the hangings on the bed and the eastward window, as if trying to smother the moonbeam shining in."
+ RTRUE
+
+
+ .FUNCT LAFS-EXIT
+ ZERO? LAFOND-LOOKING /?CCL3
+ PRINTI "Lafond whirls you around. ""My pretty, you came here freely, but you may not leave freely."""
+ CRLF
+ RFALSE
+?CCL3: IN? BUTLER,HERE \?CCL5
+ FSET? BUTLER,DEADBIT /?CCL5
+ CALL CTPRINT,BUTLER
+ PRINTI " stops you easily"
+ PRINT PCR
+ RFALSE
+?CCL5: PRINTI "You "
+ FSET? LDOOR,OPENBIT /?CND8
+ FSET LDOOR,OPENBIT
+ PRINTI "open the door and "
+?CND8: FSET? BUTLER,DEADBIT \?CCL12
+ LOC LAFOND
+ EQUAL? STACK,HERE /?CCL12
+ PRINTI "creep over the prostrate butler"
+ PRINT PCR
+ CRLF
+ RETURN UPPER-HALL-E
+?CCL12: PRINTI "run out -- into"
+ CALL TPRINT,BUTLER
+ PRINTI "'s barrel chest and leering grin. You return to the bedroom"
+ IN? LAFOND,HERE \?CCL17
+ PRINTC 46
+ CALL TPRINT,LAFOND
+ PRINTI " acts as if nothing has happened"
+ PRINT PCR
+ RFALSE
+?CCL17: MOVE BUTLER,LAFS-ROOM
+ PRINTC 44
+ CALL TPRINT,BUTLER
+ PRINTI " following. ""The governor said you were not to leave this room."""
+ CRLF
+ RFALSE
+
+
+ .FUNCT SHUTTERS-F
+ EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?ENTER /?CTR2
+ EQUAL? PRSA,V?BOARD,V?LEAP-OFF \?CCL3
+?CTR2: PRINTR "One look at the sheer drop, from sill to hedge to jagged rocks far below, is enough to dissuade you."
+?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL7
+ PRINTI "The full moon is high in the night sky. Some distance out from the shallow curve of the island, "
+ FSET? SHIP,MUNGBIT \?CCL10
+ PRINTI "black reefs catch the full force of the sea"
+ JUMP ?CND8
+?CCL10: PRINTI "you see the slow swelling of sails, grey turning black turning grey, on"
+ CALL TPRINT,SHIP
+?CND8: PRINTR "."
+?CCL7: EQUAL? PRSA,V?EXAMINE \?CCL12
+ PRINTI "Old fashioned wooden "
+ PRINTD SHUTTERS
+ PRINTI ", not glass, fill"
+ CALL TPRINT,WINDOW
+ PRINTI " frame. A dusty "
+ PRINTD MOONBEAM
+ PRINTI " swirls in, setting alight threads of gold embroidered in"
+ CALL TRPRINT,DRAPES
+ RSTACK
+?CCL12: EQUAL? PRSA,V?SPOINT \?CCL14
+ EQUAL? PRSO,SHIP \?CCL14
+ CALL PROPOSE
+ RSTACK
+?CCL14: EQUAL? PRSA,V?CLOSE \?CCL18
+ PRINT BEAUTIFUL-NIGHT
+ RTRUE
+?CCL18: EQUAL? PRSA,V?PUT-THROUGH \FALSE
+ EQUAL? PRSO,HANDS \?CCL23
+ PRINT HUH
+ RTRUE
+?CCL23: EQUAL? PRSO,GREEN-GLASS,BLUE-GLASS,FLAGON \?CCL25
+ IN? LAFOND,HERE \?CCL25
+ PRINTD LAFOND
+ PRINTR " stops you."
+?CCL25: CALL PUT-OBJ-THRU-WINDOW
+ RSTACK
+
+
+ .FUNCT GEN-SPICES
+ CALL HELD?,PINCH
+ ZERO? STACK /?CCL3
+ RETURN PINCH
+?CCL3: RETURN SPICES
+
+
+ .FUNCT SPICES-F
+ EQUAL? PRSA,V?TAKE \?CCL3
+ IN? PINCH,PROTAGONIST \?CCL6
+ PRINT YOU-HAVE-ALREADY
+ CALL ARPRINT,PINCH
+ RSTACK
+?CCL6: MOVE PINCH,PROTAGONIST
+ FSET PINCH,TOUCHBIT
+ SET 'HOLDING-PINCH,TRUE-VALUE
+ CALL QUEUE,I-SPICE-DROP,3
+ PRINTI "You take"
+ CALL APRINT,PINCH
+ PRINTI " between your thumb and forefinger"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL8
+ IN? PINCH,PROTAGONIST \?CCL11
+ PRINTI "You are holding"
+ CALL APRINT,PINCH
+ PRINTI ". "
+ CALL HELD?,TRAY,HERE
+ ZERO? STACK /?CND12
+ LOC SPICES
+ EQUAL? STACK,WELL \?CND12
+ PRINTI "More is in"
+ CALL TPRINT,WELL
+ PRINTI " of"
+ CALL TRPRINT,TRAY
+?CND12: CRLF
+ RTRUE
+?CCL11: CALL PERFORM,V?EXAMINE,WELL
+ RTRUE
+?CCL8: EQUAL? PRSA,V?EAT \?CCL17
+ MOVE PINCH,SPICES
+ PRINTI "Your eyes start to water"
+ PRINT PCR
+ RTRUE
+?CCL17: EQUAL? PRSA,V?SMELL \?CCL19
+ MOVE PINCH,SPICES
+ PRINTI "You take a sharp sniff of"
+ CALL TPRINT,SPICES
+ PRINTI " and sneeze, until "
+ PRINTD EYES
+ PRINTI " fill with tears"
+ PRINT PCR
+ RTRUE
+?CCL19: EQUAL? PRSA,V?THROW \?CCL21
+ ZERO? PRSI /?CCL21
+ EQUAL? PRSI,SPICES /?CCL21
+ CALL PERFORM,V?THROW-AT,PRSO,PRSI
+ RTRUE
+?CCL21: EQUAL? PRSA,V?THROW-AT,V?PUT-ON,V?BLOW \FALSE
+ IN? PINCH,PROTAGONIST \?CCL29
+ EQUAL? PRSI,BUTLER \?CCL32
+ FSET? BUTLER,DEADBIT /?CCL32
+ PRINTI "You try to get close enough to"
+ CALL TPRINT,BUTLER
+ PRINTR ", but he backs off. ""That wouldn't be seemly, Miss."""
+?CCL32: EQUAL? PRSI,ME \?CCL36
+ CALL IMPOSSIBLES
+ RTRUE
+?CCL36: EQUAL? PRSI,DAD,COOKIE,LUCY \?CCL38
+ PRINT UNLADY
+ RTRUE
+?CCL38: EQUAL? PRSI,CRULLEY \?CND30
+ LOC CRULLEY
+ EQUAL? STACK,DUNGEON \?CND30
+ PRINTD CRULLEY
+ PRINTR " snaps the whip at your elbow. ""Keep away from me!"""
+?CND30: PRINTI "You blow"
+ CALL TPRINT,SPICES
+ PRINTI " off your fingertips"
+ MOVE PINCH,SPICES
+ ZERO? PRSI /?CTR43
+ FSET? PRSI,DEADBIT \?CCL44
+?CTR43: PRINT PCR
+ RTRUE
+?CCL44: EQUAL? PRSI,LAFOND \?CCL48
+ EQUAL? HERE,LAFS-ROOM \?CCL48
+ INC 'SCORE
+ MOVE PINCH,SPICES
+ REMOVE LAFOND
+ SET 'LAFOND-LOOKING,FALSE-VALUE
+ CALL DEQUEUE,I-LSED
+ CALL DEQUEUE,I-WONT-DRINK
+ CALL QUEUE,I-LRETURNS,15
+ FSET LDOOR,OPENBIT
+ REMOVE LAF-GLASS
+ PRINTI ", directly into Lafond's face. He sneezes, his eyes watering from the heat of the peppers. Reaching blindly for some wine, he instead upsets the table, shattering a glass. Lafond stumbles cursing out of the room, in search of relief"
+ GRTR? LAFOND-CTR,HORNY \?CND51
+ MOVE PROTAGONIST,HERE
+ MOVE RETICULE,PROTAGONIST
+ MOVE CHEMISE,PROTAGONIST
+ FCLEAR CHEMISE,EVERYBIT
+ FSET CHEMISE,WORNBIT
+ MOVE SHOES,PROTAGONIST
+ FSET SHOES,WORNBIT
+ PRINTI ". You stand up, quickly pulling on"
+ CALL TPRINT,CHEMISE
+?CND51: PRINT PCR
+ RTRUE
+?CCL48: PRINTI " at"
+ CALL TPRINT-PRSI
+ PRINTI ". "
+ PRINT NOTHING-HAPPENS
+ RTRUE
+?CCL29: PRINT YNH
+ PRINTI " any "
+ PRINTD SPICES
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT I-LRETURNS
+ EQUAL? HERE,UPPER-HALL-E,LAFS-ROOM /?PRD5
+ FSET? SHIP,MUNGBIT \FALSE
+?PRD5: IN? COOKIE,HERE /FALSE
+ CALL JIGS-UP,STR?318
+ RSTACK
+
+
+ .FUNCT I-SPICE-DROP
+ IN? PINCH,PROTAGONIST \FALSE
+ MOVE PINCH,SPICES
+ PRINT INDENT
+ PRINTI "The spices dribble out from between your fingers"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT TRAY-F
+ EQUAL? PRSA,V?EXAMINE \?CCL3
+ PRINTI "Cabbage leaves are etched onto the mirror-bright "
+ PRINTD TRAY
+ PRINTI ", forming a well in the center where the metallic stalks meet."
+ LOC CHICKEN
+ EQUAL? STACK,TRAY \?CCL6
+ PRINTI " Some "
+ PRINTD CHICKEN
+ PRINTI " is heaped around the dry spices filling"
+ CALL TRPRINT,WELL
+ RSTACK
+?CCL6: CRLF
+ RTRUE
+?CCL3: EQUAL? PRSA,V?POINT,V?PUT \?CCL8
+ EQUAL? PRSI,MOONBEAM,SHUTTERS,SHIP \?CCL8
+ CALL SIGNAL-SHIP,TRAY
+ RSTACK
+?CCL8: EQUAL? PRSA,V?EMPTY \?CCL12
+ PRINTI "You have no other way of carrying"
+ CALL TRPRINT,CHICKEN
+ RSTACK
+?CCL12: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
+ EQUAL? PRSI,TRAY \FALSE
+ PRINTI "Because of the metal work, nothing sits flat on"
+ CALL TRPRINT,TRAY
+ RSTACK
+
+
+ .FUNCT WELL-F
+ EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL3
+ IN? SPICES,WELL \?CCL6
+ CALL CTPRINT,WELL
+ PRINTI " in"
+ CALL TPRINT,TRAY
+ PRINTI " is filled with a mixture of salt and other spices, predominantly red and black pepper"
+ PRINT PCR
+ RTRUE
+?CCL6: PRINTR "It is empty."
+?CCL3: EQUAL? PRSA,V?TAKE \FALSE
+ CALL CTPRINT,WELL
+ PRINTR " is part of the tray!"
+
+
+ .FUNCT CHICKEN-F
+ EQUAL? PRSA,V?TAKE,V?EAT \?CCL3
+ PRINTI "You sprinkle some "
+ PRINTD SPICES
+ PRINTI " on a wing and nibble at it. The peppery heat hits you like a wave, leaving you gasping, eyes watering"
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
+ IN? CHICKEN,TRAY \?CCL8
+ CALL PERFORM,V?EXAMINE,TRAY
+ RTRUE
+?CCL8: CALL CTPRINT,CHICKEN
+ PRINTI " looks tasty"
+ PRINT PCR
+ RTRUE
+?CCL5: EQUAL? PRSA,V?PUT-ON \?CCL10
+ EQUAL? PRSO,PINCH,SPICES \?CCL10
+ CALL PERFORM,V?EAT,CHICKEN
+ RTRUE
+?CCL10: EQUAL? PRSA,V?PUT \FALSE
+ EQUAL? PRSO,CHICKEN \FALSE
+ CALL PERFORM,V?EAT,CHICKEN
+ RTRUE
+
+
+ .FUNCT FLAGON-F
+ EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE,V?SHAKE \?CCL3
+ PRINTR "Some wine sloshes around inside."
+?CCL3: EQUAL? PRSA,V?TAKE \?CCL5
+ FSET? FLAGON,TRYTAKEBIT \?CCL5
+ PRINTI "Lafond takes it from you, setting it on"
+ CALL TRPRINT,TABLE
+ RSTACK
+?CCL5: EQUAL? PRSA,V?DROP \?CCL9
+ EQUAL? HERE,LAFS-ROOM \?CCL9
+ MOVE FLAGON,TABLE
+ PRINTI "You set"
+ CALL TPRINT,FLAGON
+ PRINTI " on"
+ CALL TRPRINT,TABLE
+ RSTACK
+?CCL9: EQUAL? PRSA,V?THROW,V?EMPTY \?CCL13
+ EQUAL? HERE,LAFS-ROOM \?CCL13
+ IN? LAFOND,HERE \?CCL13
+ CALL FWTD,SMACK-YOUR-FACE
+ RSTACK
+?CCL13: EQUAL? PRSA,V?DRINK-FROM \FALSE
+ PRINT UNLADY
+ RTRUE
+
+
+ .FUNCT WINE-F
+ EQUAL? PRSA,V?GIVE,V?DRINK,V?EAT /?CTR2
+ EQUAL? PRSA,V?SHOW \?CCL3
+?CTR2: CALL HELD?,BLUE-GLASS
+ ZERO? STACK /?CCL8
+ CALL IMBIBE-WINE,BLUE-GLASS
+ RSTACK
+?CCL8: CALL HELD?,GREEN-GLASS
+ ZERO? STACK /?CCL10
+ CALL IMBIBE-WINE,GREEN-GLASS
+ RSTACK
+?CCL10: PRINT YNH
+ PRINTR " a goblet of wine!"
+?CCL3: EQUAL? PRSO,WINE \?CCL12
+ EQUAL? PRSA,V?POUR \?CCL12
+ ZERO? PRSI \?CCL17
+ EQUAL? P-PRSA-WORD,W?SPILL \?CCL20
+ EQUAL? HERE,LAFS-ROOM \?CCL20
+ IN? LAFOND,HERE \?CCL20
+ CALL FWTD,SMACK-YOUR-FACE
+ RSTACK
+?CCL20: CALL SPECIFY-WHAT,STR?277,PRSO
+ RSTACK
+?CCL17: EQUAL? PRSI,FLAGON \?CCL25
+ PRINTI "It's not sanitary to pour wine back into"
+ CALL TRPRINT,FLAGON
+ RSTACK
+?CCL25: EQUAL? PRSI,GREEN-GLASS,BLUE-GLASS \?CCL27
+ GETP PRSI,P?CONTENTS
+ EQUAL? STACK,WINED,W-P \?CCL30
+ PRINTR "It is already full!"
+?CCL30: CALL POUR-WINE,PRSI
+ RSTACK
+?CCL27: PRINT POLITE-SOCIETY
+ RTRUE
+?CCL12: EQUAL? PRSA,V?WRING,V?POUR-FROM \?CCL32
+ EQUAL? PRSO,WINE \?CCL32
+ CALL SPECIFY-WHAT,STR?277,PRSO
+ RSTACK
+?CCL32: EQUAL? PRSA,V?THROW,V?DROP \FALSE
+ EQUAL? HERE,LAFS-ROOM \?CCL39
+ IN? LAFOND,HERE \?CCL39
+ CALL LAFS-DROP
+ RSTACK
+?CCL39: CALL HELD?,BLUE-GLASS
+ ZERO? STACK /?CCL43
+ GETP BLUE-GLASS,P?CONTENTS
+ GRTR? STACK,0 \?CCL43
+ CALL PERFORM,V?DROP,BLUE-GLASS
+ RTRUE
+?CCL43: CALL HELD?,GREEN-GLASS
+ ZERO? STACK /?CCL47
+ GETP GREEN-GLASS,P?CONTENTS
+ GRTR? STACK,0 \?CCL47
+ CALL PERFORM,V?DROP,GREEN-GLASS
+ RTRUE
+?CCL47: PRINT YNH
+ PRINTR " any wine!"
+
+
+ .FUNCT IMBIBE-WINE,VESSEL
+ GETP VESSEL,P?CONTENTS
+ EQUAL? STACK,0,POISONED \?CCL3
+ PRINTI "There is no wine in"
+ CALL TRPRINT,VESSEL
+ RTRUE
+?CCL3: EQUAL? PRSA,V?SHOW,V?GIVE \?CCL5
+ CALL PERFORM,V?GIVE,VESSEL,PRSI
+ RTRUE
+?CCL5: GETP VESSEL,P?CONTENTS
+ EQUAL? STACK,W-P \?CND1
+ CALL QUEUED?,I-SLEEP
+ ZERO? STACK \?CND1
+ CALL QUEUE,I-SLEEP,2
+?CND1: SET 'REACTION,REACTION-POSITIVE
+ PUTP VESSEL,P?CONTENTS,0
+ PRINTI "You empty"
+ CALL TPRINT,VESSEL
+ PRINTI " of wine"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT POUR-WINE,VESSEL,LAFOND-POURS=0
+ GETP FLAGON,P?CONTENTS
+ EQUAL? STACK,POISONED \?CCL3
+ PUTP VESSEL,P?CONTENTS,W-P
+ JUMP ?CND1
+?CCL3: GETP VESSEL,P?CONTENTS
+ ADD STACK,1
+ PUTP VESSEL,P?CONTENTS,STACK
+?CND1: ZERO? LAFOND-POURS \TRUE
+ PRINTI "You fill"
+ CALL TPRINT,VESSEL
+ PRINTI " with wine"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT I-WATCH-SLEEP
+ ZERO? DRUGGEE /FALSE
+ EQUAL? DRUGGEE,BUTLER \?CCL5
+ EQUAL? WATCH-CTR,2 \?CCL5
+ INC 'SCORE
+ FSET BUTLER,DEADBIT
+ IN? BUTLER,HERE /?CCL10
+ PRINT INDENT
+ PRINTI "You hear a ""thump-phoosh,"" like someone slumping against a wall"
+ PRINT PCR
+ JUMP ?CND8
+?CCL10: EQUAL? HERE,LAFS-ROOM \?CND8
+ CALL HELD?,BOTTLE,HERE
+ ZERO? STACK /?CND12
+ REMOVE BOTTLE
+ PRINT INDENT
+ PRINTI "With a grunt of anger, the butler realizes he has been drugged. He grabs"
+ CALL TPRINT,BOTTLE
+ PRINTI " and throws it out"
+ CALL TRPRINT,SHUTTERS
+?CND12: PRINT INDENT
+ CALL CTPRINT,DRUGGEE
+ GET WATCHING-SLEEPY,WATCH-CTR
+ PRINT STACK
+ PRINT PCR
+?CND8: SET 'DRUGGEE,FALSE-VALUE
+ RTRUE
+?CCL5: IN? DRUGGEE,HERE \?CND1
+ PRINT INDENT
+ CALL CTPRINT,DRUGGEE
+ GET WATCHING-SLEEPY,WATCH-CTR
+ PRINT STACK
+ PRINT PCR
+?CND1: CALL QUEUE,I-WATCH-SLEEP,1
+ INC 'WATCH-CTR
+ RETURN WATCH-CTR
+
+
+ .FUNCT I-CROC-SLEEPS
+ EQUAL? HERE,ANTEROOM \?CND1
+ PRINT INDENT
+ PRINTI "Without warning,"
+ CALL TPRINT,CROC
+ PRINTI " relaxes, eyes closed, asleep."
+ CRLF
+?CND1: INC 'SCORE
+ SET 'CROC-SLEEP,TRUE-VALUE
+ SET 'MOUTH-SHUT,TRUE-VALUE
+ RFALSE
+
+
+ .FUNCT I-SLEEP
+ PRINT INDENT
+ INC 'SLEEP-CTR
+ GET GETTING-SLEEPY,SLEEP-CTR
+ PRINT STACK
+ CRLF
+ LESS? SLEEP-CTR,4 \?CCL3
+ CALL QUEUE,I-SLEEP,2
+ RSTACK
+?CCL3: EQUAL? SLEEP-CTR,4 \FALSE
+ PRINT INDENT
+ EQUAL? HERE,ON-LADDER,RIGGING-ROOM \?CCL8
+ CALL JIGS-UP,STR?319
+ RSTACK
+?CCL8: CALL SHIP-BOARD,HERE
+ ZERO? STACK /?CCL10
+ CALL QUEUED?,I-LOOK-SEA
+ ZERO? STACK \?CTR9
+ CALL QUEUED?,I-SHIP-EXPLODES
+ ZERO? STACK /?CCL10
+?CTR9: CALL JIGS-UP,STR?320
+ RSTACK
+?CCL10: PRINTI "You wake at sunrise"
+ FSET? LAFS-ROOM,TOUCHBIT /?CND15
+ PRINTI ", too late to save your father or his friend Jamison"
+?CND15: CALL FWTD,STR?321
+ RSTACK
+
+
+ .FUNCT GLASS-F
+ EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL3
+ CALL CTPRINT,PRSO
+ GETP PRSO,P?CONTENTS
+ GET GLASS-DESC,STACK
+ PRINT STACK
+ PRINT PCR
+ RTRUE
+?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL5
+ CALL IMPOSSIBLES
+ RSTACK
+?CCL5: EQUAL? PRSA,V?DRINK-FROM \?CCL7
+ ZERO? PRSI /?CCL10
+ CALL IMBIBE-WINE,PRSI
+ RSTACK
+?CCL10: CALL IMBIBE-WINE,PRSO
+ RSTACK
+?CCL7: EQUAL? PRSA,V?FILL \?CCL12
+ CALL PERFORM,V?POUR,WINE,PRSO
+ RTRUE
+?CCL12: EQUAL? PRSA,V?DROP \?CCL14
+ EQUAL? HERE,LAFS-ROOM \?CCL14
+ MOVE PRSO,TABLE
+ PRINTI "You set"
+ CALL TPRINT-PRSO
+ PRINTI " on"
+ CALL TRPRINT,TABLE
+ RSTACK
+?CCL14: EQUAL? PRSA,V?THROW-AT,V?MUNG,V?THROW \?CCL18
+ CALL LAFS-DROP
+ RSTACK
+?CCL18: EQUAL? PRSA,V?TAKE \FALSE
+ EQUAL? PRSO,LAUD \?CCL23
+ CALL IMPOSSIBLES
+ RSTACK
+?CCL23: EQUAL? PRSO,GREEN-GLASS \?CCL25
+ LESS? LAFOND-CTR,3 \?CCL25
+ EQUAL? HERE,LAFS-ROOM \?CCL25
+ PRINTD LAFOND
+ PRINTR " stops you. ""That is mine."""
+?CCL25: CALL HELD?,BLUE-GLASS
+ ZERO? STACK \?CTR29
+ CALL HELD?,GREEN-GLASS
+ ZERO? STACK /FALSE
+?CTR29: PRINT YOU-HAVE-ALREADY
+ PRINTI " a goblet"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT LAFS-DROP
+ EQUAL? PRSO,BLUE-GLASS,GREEN-GLASS \?CCL3
+ REMOVE PRSO
+ PUTP PRSO,P?CONTENTS,0
+ PRINTI "The delicate glass of"
+ CALL TPRINT-PRSO
+ PRINTI " shatters into pieces."
+ CRLF
+ JUMP ?CND1
+?CCL3: EQUAL? PRSO,WINE \?CCL5
+ PRINTI "You dash"
+ CALL TPRINT,WINE
+ PRINTI " into Lafond's face."
+ CRLF
+ JUMP ?CND1
+?CCL5: CALL WASTES
+?CND1: EQUAL? HERE,LAFS-ROOM \TRUE
+ IN? LAFOND,HERE \TRUE
+ CALL FWTD,SMACK-YOUR-FACE
+ RSTACK
+
+
+ .FUNCT GALLERY-F,RARG,GUY=0
+ EQUAL? RARG,M-BEG \?CCL3
+ SET 'GUY,HERO
+ CALL TOUCHING?,GUY
+ ZERO? STACK \?CTR5
+ SET 'GUY,LAFOND
+ CALL TOUCHING?,GUY
+ ZERO? STACK \?CTR5
+ SET 'GUY,DAD
+ CALL TOUCHING?,GUY
+ ZERO? STACK \?CTR5
+ SET 'GUY,LUCY
+ CALL TOUCHING?,GUY
+ ZERO? STACK \?CTR5
+ SET 'GUY,COOKIE
+ CALL TOUCHING?,GUY
+ ZERO? STACK \?CTR5
+ SET 'GUY,RAPIER
+ CALL TOUCHING?,GUY
+ ZERO? STACK /?CCL6
+?CTR5: CALL CANT-REACH,GUY
+ RSTACK
+?CCL6: EQUAL? PRSA,V?THROW-AT \?CCL14
+ PRINTR "You missed."
+?CCL14: EQUAL? PRSO,GALLERY \?CCL16
+ EQUAL? PRSA,V?LOOK,V?EXAMINE \?CCL16
+ CALL V-LOOK
+ RSTACK
+?CCL16: EQUAL? PRSO,BALLROOM \?CCL20
+ EQUAL? PRSA,V?EXAMINE \?CCL23
+ CALL V-LOOK
+ RSTACK
+?CCL23: EQUAL? PRSA,V?LEAP,V?ENTER \FALSE
+ CALL PERFORM,V?SWING,ROPE
+ RTRUE
+?CCL20: EQUAL? PRSA,V?LEAP-OFF \?CCL27
+ CALL PERFORM,V?SWING,ROPE
+ RTRUE
+?CCL27: EQUAL? PRSA,V?SWING \?CCL29
+ EQUAL? PRSO,ROOMS \?CCL29
+ CALL PERFORM,V?SWING,ROPE
+ RTRUE
+?CCL29: EQUAL? PRSA,V?TELL-ABOUT,V?TELL,V?ASK-ABOUT \FALSE
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK /FALSE
+ PRINTI "No one is listening to you."
+ CRLF
+ CALL STOP
+ RTRUE
+?CCL3: EQUAL? RARG,M-ENTER \?CCL37
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK /?CCL37
+ FSET HERO,NDESCBIT
+ FSET LAFOND,NDESCBIT
+ FSET COOKIE,NDESCBIT
+ RTRUE
+?CCL37: EQUAL? RARG,M-LOOK \FALSE
+ PRINTI "You are on a wide balcony overlooking the ballroom. A hallway lies to the north.
+ Down on"
+ PRINT DANCE-FLOOR
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK /?CCL44
+ CALL TPRINT,DANCERS
+ PRINTI "s are pressed in a wide circle around Nicholas and Lafond. Cookie stands anxiously in the door to the veranda, near"
+ CALL TPRINT,DAD
+ PRINTI " and Lucy"
+ JUMP ?CND42
+?CCL44: FSET? BALLROOM,EVERYBIT \?CCL46
+ PRINTI " a small number of Jamison's scruffiest men are corralling"
+ CALL TPRINT,DANCERS
+ PRINTI " into a screaming huddle in the center of the room"
+ JUMP ?CND42
+?CCL46: PRINTI " you see myriad colors as the guests weave the intricate steps of their dances"
+?CND42: PRINTC 46
+ RTRUE
+
+
+ .FUNCT ROPE-F,OARG=0
+ ZERO? OARG /?CCL3
+ EQUAL? OARG,M-DESC? /TRUE
+ PRINT INDENT
+ CALL DESC-ROPE
+ RSTACK
+?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL7
+ CALL DESC-ROPE
+ RSTACK
+?CCL7: EQUAL? PRSA,V?CLIMB-ON,V?CLIMB-DOWN,V?SWING \?CCL9
+ FSET? ROPE,EVERYBIT \?CCL12
+ CALL CTPRINT,ROPE
+ PRINTI " is looped over the railing -- you'd hang "
+ PRINTD ME
+ PRINT PCR
+ RTRUE
+?CCL12: IN? COOKIE,HERE \?CCL14
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK \?CCL14
+ PRINTD COOKIE
+ PRINTR " grabs hold of you, ""Ye lost yer mind, lass!"""
+?CCL14: PRINTI """Aaieeee!"" The cry comes uncalled to your lips as you swoop down from the balcony"
+ ZERO? BOY-DRESS? \?CND17
+ PRINTI ", petticoats flying,"
+?CND17: PRINTI " on the end of"
+ CALL TRPRINT,ROPE
+ PRINT INDENT
+ CALL RUNNING?,I-DUEL
+ ZERO? STACK /?CCL21
+ LESS? HERO-CTR,15 \?CCL24
+ CALL DEQUEUE,I-DUEL
+ FCLEAR RAPIER,NDESCBIT
+ MOVE HERO,BEACH
+ FCLEAR HERO,NDESCBIT
+ MOVE LAFOND,BALLROOM
+ FCLEAR LAFOND,NDESCBIT
+ MOVE DAD,BEACH
+ MOVE LUCY,BEACH
+ MOVE COOKIE,BEACH
+ FCLEAR COOKIE,NDESCBIT
+ FCLEAR BALLROOM,EVERYBIT
+ FSET VER-DOOR,OPENBIT
+ FSET LAFOND,MUNGBIT
+ INC 'SCORE
+ IN? BLUE-GLASS,PROTAGONIST \?CCL27
+ REMOVE BLUE-GLASS
+ JUMP ?CND25
+?CCL27: IN? GREEN-GLASS,PROTAGONIST \?CND25
+ REMOVE GREEN-GLASS
+?CND25: IN? PINCH,PROTAGONIST \?CND29
+ MOVE PINCH,SPICES
+?CND29: CALL ROB,PROTAGONIST,BALLROOM
+ SET 'LAFOND-CTR,1
+ CALL QUEUE,I-ENDGAME,6
+ PRINTI "Your timing is perfect: you slam into Lafond just as he steps into his lunge. His rapier stabs wildly, piercing Nicholas's shoulder, missing his heart. You and Lafond roll into a snowball of "
+ ZERO? BOY-DRESS? \?CCL33
+ PRINTI "petticoats"
+ JUMP ?CND31
+?CCL33: PRINTI "breeches"
+?CND31: PRINTI " and brocade, dropping everything between you."
+ CALL CLEAR-SCREEN,15
+ PRINT INDENT
+ PRINTI "Nicholas shouts, from far away, ""Let me go! Let me deliver Lafond to a 'better' world.""
+ ""A gentleman can't kill an unconscious man!"" That is Papa's voice. ""And you're in no shape to continue, Nicholas. Rodney -- help my daughter. I'll take Nick.""
+ Cookie leans over you. ""We must get back to the ship, Miss. Dragoons surround the house."" Nicholas, injured but still arguing, is already on the veranda, half-forced, half-supported by your father, shadowed by Lucy. Cookie helps you to your feet and rushes after them, expecting you to follow. Lafond lies nearby, apparently unconscious"
+ PRINT PCR
+ CRLF
+ CALL GOTO,BALLROOM
+ RSTACK
+?CCL24: CALL JIGS-UP,STR?322
+ RSTACK
+?CCL21: FSET? BALLROOM,EVERYBIT \?CCL35
+ CALL JIGS-UP,STR?323
+ RSTACK
+?CCL35: CALL FWTD,STR?324
+ RSTACK
+?CCL9: EQUAL? PRSA,V?TIE \?CCL37
+ EQUAL? PRSI,RAILING \?CCL37
+ FSET? ROPE,EVERYBIT \?CCL42
+ PRINT ALREADY-IS
+ RTRUE
+?CCL42: FSET ROPE,EVERYBIT
+ PRINTR "Tied."
+?CCL37: EQUAL? PRSA,V?REMOVE,V?UNTIE \?CCL44
+ FSET? ROPE,EVERYBIT \?CCL47
+ FCLEAR ROPE,EVERYBIT
+ PRINTI "Untied. "
+ CALL CTPRINT,CHANDELIER
+ PRINTR " swings slightly, dribs of hot wax spilling to the floor."
+?CCL47: CALL WASTES
+ RSTACK
+?CCL44: EQUAL? PRSA,V?TAKE \?CCL49
+ FSET? ROPE,EVERYBIT \?CCL52
+ CALL DO-FIRST,STR?325
+ RSTACK
+?CCL52: FSET? ROPE,DEADBIT \?CCL54
+ CALL CANT-REACH,ROPE
+ RSTACK
+?CCL54: PRINTI "Pray describe what you intend to do with"
+ CALL TRPRINT,ROPE
+ RSTACK
+?CCL49: EQUAL? PRSA,V?FIDDLE,V?RAISE,V?MOVE \FALSE
+ CALL CTPRINT,CHANDELIER
+ PRINTI " swings, but is too heavy for you to pull up"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT DESC-ROPE
+ PRINTI "A "
+ PRINTD CHANDELIER
+ PRINTI " is held above"
+ PRINT DANCE-FLOOR
+ PRINTI " by a rope and pulley system, so that the servants can lower it to light and snuff its candles. Several feet of "
+ PRINTD ROPE
+ PRINTI " hang down from the pulley, the "
+ FSET? ROPE,EVERYBIT \?CCL3
+ PRINTI "excess tied around"
+ JUMP ?CND1
+?CCL3: PRINTI "end resting on"
+?CND1: CALL TPRINT,RAILING
+ PRINTC 46
+ EQUAL? PRSA,V?EXAMINE \TRUE
+ CRLF
+ RTRUE
+
+
+ .FUNCT CHAND-F
+ EQUAL? PRSA,V?OFF \?CCL3
+ CALL CANT-REACH,CHANDELIER
+ RSTACK
+?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
+ PRINTI "Held in place by a rope running through a pulley,"
+ CALL TPRINT,CHANDELIER
+ PRINTI " gently swings its one hundred candles over"
+ PRINT DANCE-FLOOR
+ PRINT PCR
+ RTRUE
+?CCL5: EQUAL? PRSA,V?SWING,V?UNTIE \FALSE
+ CALL PERFORM-PRSA,ROPE
+ RSTACK
+
+
+ .FUNCT CRACK-F
+ EQUAL? PRSA,V?LOOK-INSIDE \?CCL3
+ CALL PERFORM,V?EXAMINE,SHIP
+ RTRUE
+?CCL3: EQUAL? PRSA,V?BOARD,V?CLIMB-ON,V?ENTER \FALSE
+ CALL CTPRINT,CRACK
+ PRINTR " is too narrow."
+
+
+ .FUNCT HORN-F
+ EQUAL? PRSA,V?EMPTY \?CCL3
+ PRINTR "You start to empty it, but reconsider."
+?CCL3: EQUAL? PRSA,V?EMPTY-FROM \?CCL5
+ EQUAL? PRSI,HORN \?CCL5
+ CALL PERFORM,V?EMPTY,HORN
+ RTRUE
+?CCL5: EQUAL? PRSA,V?TAKE \?CCL9
+ CALL ITAKE,FALSE-VALUE
+ EQUAL? STACK,M-FATAL,FALSE-VALUE /?CCL9
+ FSET? HORN,TOUCHBIT /?CCL9
+ FCLEAR POWDER,INVISIBLE
+ PRINTR "Taken."
+?CCL9: EQUAL? PRSA,V?FILL \?CCL14
+ EQUAL? PRSO,HORN \?CCL14
+ CALL CANT-VERB-A-PRSO,STR?326
+ RSTACK
+?CCL14: EQUAL? PRSA,V?PUT,V?POUR \?CCL18
+ EQUAL? PRSI,HORN \?CCL18
+ CALL PERFORM,V?FILL,PRSI,PRSO
+ RTRUE
+?CCL18: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL22
+ PRINT YOU-CANT-SEE-ANY
+ PRINT WAY-TO-DO-THAT
+ RTRUE
+?CCL22: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL24
+ PRINTI "Almost triangular, with a little spout on top,"
+ CALL TPRINT,HORN
+ PRINTI " is similar to the one your father used to carry when hunting. It is filled with a mixture of "
+ PRINTD POWDER
+ PRINTI " and shot"
+ PRINT PCR
+ RTRUE
+?CCL24: EQUAL? PRSA,V?TAKE \FALSE
+ CALL NOUN-USED,W?POWDER,HORN
+ ZERO? STACK /FALSE
+ CALL HELD?,HORN
+ ZERO? STACK /FALSE
+ PRINTI "You pour out some "
+ PRINTD POWDER
+ PRINTR ". It blows away."
+
+
+ .FUNCT ANTEROOM-F,RARG
+ EQUAL? RARG,M-LOOK \?CCL3
+ PRINTI "Two exits lead from this cavernous room, north and south. The walls drip with wet, forming a huge pool on the floor."
+ RTRUE
+?CCL3: EQUAL? RARG,M-END \FALSE
+ ZERO? CROC-FREE \?CCL8
+ IN? DAD,HERE \?CCL8
+ PRINT INDENT
+ PRINTI "Your father stops, smiling at"
+ CALL TPRINT,CROC
+ PRINTI ", ""Hello, chum, how are you?"" He bends over the creature, and "
+ ZERO? MUZZLED /?CCL13
+ SET 'AWAITING-REPLY,6
+ CALL QUEUE,I-REPLY,2
+ MOVE GARTER,DAD
+ FCLEAR GARTER,NDESCBIT
+ PRINTI "laughs. ""That's my Lucy! Never one to shirk belling the cat. What a woman! Have you been to the kitchen, dear?"" He slips off"
+ CALL TPRINT,GARTER
+ PRINTI " and"
+ JUMP ?CND11
+?CCL13: ZERO? CROC-SLEEP /?CND11
+ PRINTI "scratches its bumpy snout, muttering, ""Never seen you sleep like this before."" It stirs to life as "
+ PRINTD DAD
+?CND11: PRINTI " walks over to you by the north entrance. The reptile"
+ ZERO? CROC-SLEEP /?CND15
+ PRINTI ", waking,"
+?CND15: SET 'CROC-FREE,TRUE-VALUE
+ SET 'MOUTH-SHUT,FALSE-VALUE
+ SET 'MUZZLED,FALSE-VALUE
+ SET 'CROC-SLEEP,FALSE-VALUE
+ FCLEAR GARTER,TRYTAKEBIT
+ FSET GARTER,TAKEBIT
+ PRINTR " lunges after him, choking on its chain."
+?CCL8: ZERO? COOKIE-FIGHTING-CROC \FALSE
+ IN? COOKIE,HERE \FALSE
+ SET 'COOKIE-FIGHTING-CROC,TRUE-VALUE
+ FSET CROC,NDESCBIT
+ PRINT INDENT
+ PRINTI "Cookie rushes at"
+ CALL TPRINT,CROC
+ PRINTI ", crying, ""I'll take care of this monster, sweetheart. You run by and do what you must do."" He dives headlong into"
+ CALL TPRINT,POOL
+ IN? RAPIER,COOKIE \?CND21
+ MOVE RAPIER,HERE
+ PRINTI ", throwing free"
+ CALL TPRINT,RAPIER
+?CND21: PRINT PCR
+ RTRUE
+
+
+ .FUNCT CROC-EXIT
+ ZERO? COOKIE-FIGHTING-CROC /?CCL3
+ CALL DUNGEON-ENTRANCE
+ RSTACK
+?CCL3: ZERO? MUZZLED \?CTR4
+ ZERO? CROC-SLEEP /?CCL5
+?CTR4: PRINTI "You edge past the reptile"
+ PRINT PCR
+ CRLF
+ RETURN DUNGEON
+?CCL5: CALL RUNNING?,I-CROC-OPENS-MOUTH
+ ZERO? STACK /?CND8
+ CALL DEQUEUE,I-CROC-OPENS-MOUTH
+?CND8: CALL CTPRINT,CROC
+ PRINTI " roars at you. You retreat to the north entrance and the monster stills, waiting, chops open, almost smiling"
+ PRINT PCR
+ RFALSE
+
+
+ .FUNCT DUNGEON-ENTRANCE
+ ZERO? COOKIE-FIGHTING-CROC \?CCL2
+ RETURN DUNGEON
+?CCL2: FCLEAR DUNGEON,TOUCHBIT
+ SET 'VERBOSITY,1
+ FSET? CRULLEY,MUNGBIT /?CND1
+ ZERO? CRULLEY-BACK \?CND1
+ SET 'CRULLEY-CTR,1
+ CALL QUEUE,I-CDUNG,-1
+ PRINTI "A whip cracks "
+ ZERO? WHIPPING-SPEECH /?CCL9
+ SET 'WHIPPING-SPEECH,FALSE-VALUE
+ PRINTI "the air. ""Flogs me, will ye, Cap'n? Taste it "
+ PRINTD ME
+ PRINTI ", har."" Jamison groans, half conscious"
+ JUMP ?CND7
+?CCL9: PRINTI "against flesh"
+?CND7: PRINTI ". You rush in"
+ PRINT PCR
+ CRLF
+?CND1: RETURN DUNGEON
+
+
+ .FUNCT CROC-F,OARG=0
+ ZERO? OARG /?CCL3
+ EQUAL? OARG,M-DESC? /TRUE
+ FSET? CROC,TOUCHBIT \?CCL8
+ PRINT INDENT
+ CALL CTPRINT,CROC
+ JUMP ?CND6
+?CCL8: FSET CROC,TOUCHBIT
+ PRINT INDENT
+ PRINTI "A "
+ PRINTD CROC
+?CND6: PRINTI " lies half in the pool, "
+ ZERO? CROC-SLEEP /?CND9
+ PRINTI "sleeping."
+ RTRUE
+?CND9: PRINTI "gazing at you,"
+ ZERO? MUZZLED /?CCL13
+ CALL APRINT,GARTER
+ PRINTI " around its snout."
+ RTRUE
+?CCL13: ZERO? MOUTH-SHUT /?CCL15
+ PRINTI " mouth closed."
+ RTRUE
+?CCL15: PRINTI " with baleful eyes, jaws wide open. Dagger-sharp teeth glint in"
+ CALL TPRINT,TORCH
+ PRINTI "light."
+ RTRUE
+?CCL3: EQUAL? PRSA,V?PUT-ON \?CCL17
+ EQUAL? PRSO,GARTER \?CCL17
+ ZERO? CROC-FREE /?CCL22
+ REMOVE PRSO
+ PRINT CROC-LUNGES
+ PRINTI "Screaming, you dash back, dropping"
+ CALL TPRINT,GARTER
+ PRINTI " into"
+ CALL TRPRINT,POOL
+ RSTACK
+?CCL22: ZERO? MOUTH-SHUT /?CCL24
+ MOVE GARTER,CROC
+ FSET GARTER,NDESCBIT
+ SET 'MUZZLED,TRUE-VALUE
+ FSET GARTER,TRYTAKEBIT
+ FCLEAR GARTER,TAKEBIT
+ ZERO? CROC-SLEEP \?CCL27
+ CALL QUEUED?,I-CROC-SLEEPS
+ ZERO? STACK \?CND28
+ INC 'SCORE
+?CND28: PRINTI "With great daring and greater speed, you slip"
+ CALL TPRINT,GARTER
+ PRINTI " around"
+ CALL TPRINT,CROC
+ PRINTI "'s snout. "
+ CALL CTPRINT,CROC
+ PRINTR " thrashes about, unable to remove it."
+?CCL27: CALL CTPRINT,GARTER
+ PRINTI " fits on its snout like a ring on a wedding finger"
+ PRINT PCR
+ RTRUE
+?CCL24: CALL CTPRINT,GARTER
+ PRINTI " won't fit around that open maw"
+ PRINT PCR
+ RTRUE
+?CCL17: ZERO? CROC-SLEEP /?CCL31
+ EQUAL? PRSA,V?ALARM \?CCL31
+ PRINTR "That is the last thing you want to do!"
+?CCL31: EQUAL? PRSA,V?EMBRACE,V?KISS \?CCL35
+ PRINTR "The very thought makes you shiver."
+?CCL35: EQUAL? PRSA,V?TOUCH,V?PUT-ON,V?PUT /?CTR36
+ EQUAL? PRSA,V?ENTER \?CCL37
+?CTR36: PRINTI "It would be safer to stay distant and throw things at"
+ CALL TRPRINT,CROC
+ RSTACK
+?CCL37: CALL NOUN-USED,W?MOUTH,CROC
+ ZERO? STACK /?CCL41
+ GET P-ADJW,0
+ ZERO? STACK \?CCL41
+ GET P-ADJW,1
+ ZERO? STACK /FALSE
+?CCL41: EQUAL? PRSA,V?MUZZLE \?CCL46
+ EQUAL? PRSI,GARTER \?CCL46
+ CALL PERFORM,V?PUT-ON,GARTER,CROC
+ RTRUE
+?CCL46: EQUAL? PRSA,V?THROW-TO,V?GIVE,V?THROW /?CTR49
+ EQUAL? PRSA,V?THROW-AT \?CCL50
+?CTR49: ZERO? COOKIE-FIGHTING-CROC /?CCL55
+ CALL CTPRINT,CROC
+ PRINTR " is too busy fighting Cookie to notice."
+?CCL55: EQUAL? PRSO,BOTTLE \?CCL57
+ PRINTR "You might need that later."
+?CCL57: EQUAL? PRSO,RETICULE /FALSE
+ ZERO? CROC-SLEEP /?CCL61
+ EQUAL? PRSO,SALTS \?CCL64
+ EQUAL? PRSA,V?GIVE \?CCL64
+ CALL PERFORM,V?ALARM,CROC,SALTS
+ RTRUE
+?CCL64: PRINTI "But"
+ CALL TPRINT,CROC
+ PRINTR " is asleep."
+?CCL61: EQUAL? PRSO,PINCH,SPICES \?CCL68
+ IN? PINCH,PROTAGONIST \?CCL68
+ MOVE PINCH,SPICES
+ CALL CTPRINT,CROC
+ PRINTI " blinks its eyes once, but takes no other notice of"
+ CALL TRPRINT,SPICES
+ RSTACK
+?CCL68: ZERO? CROC-FREE /?CCL72
+ REMOVE PRSO
+ PRINT CROC-LUNGES
+ CALL CTPRINT,PRSO
+ PRINTI " drops ignored into"
+ CALL TRPRINT,POOL
+ RTRUE
+?CCL72: ZERO? MUZZLED /?CCL74
+ CALL CTPRINT,CROC
+ PRINTI " is helpless! "
+ PRINT MOTHER
+ RTRUE
+?CCL74: REMOVE PRSO
+ SET 'MOUTH-SHUT,TRUE-VALUE
+ CALL QUEUE,I-CROC-OPENS-MOUTH,2
+ CALL CTPRINT,CROC
+ PRINTI " snaps its jaws shut as"
+ CALL TPRINT-PRSO
+ EQUAL? PRSO,SALTS \?CCL77
+ PRINTI " bounce"
+ PRINTI " off its hide, sinking into"
+ CALL TRPRINT,POOL
+ RSTACK
+?CCL77: PRINTI " disappear"
+ EQUAL? PRSO,PANTS /?CND78
+ PRINTC 115
+?CND78: PRINTI " into"
+ EQUAL? PRSO,PORK \?CCL82
+ ZERO? PORK-DOPED /?CND83
+ CALL QUEUE,I-CROC-SLEEPS,3
+?CND83: PRINTR " its maw."
+?CCL82: CALL TRPRINT,POOL
+ RSTACK
+?CCL50: EQUAL? PRSA,V?LEAP \?CCL86
+ PRINTR "You can't jump that far."
+?CCL86: EQUAL? PRSA,V?THROW-AT,V?STHROW,V?SGIVE \?CCL88
+ CALL PERFORM,V?THROW-TO,PRSI,CROC
+ RTRUE
+?CCL88: EQUAL? PRSA,V?EXAMINE \?CCL90
+ ZERO? COOKIE-FIGHTING-CROC /?CCL93
+ CALL CTPRINT,POOL
+ PRINTI " boils with the bodies of"
+ CALL TPRINT,CROC
+ PRINTI " and"
+ CALL TRPRINT,COOKIE
+ RSTACK
+?CCL93: ZERO? MUZZLED /?CCL95
+ CALL CTPRINT,CROC
+ PRINTI "'s snout is pinned closed by"
+ CALL APRINT,GARTER
+ ZERO? CROC-SLEEP /?CND96
+ PRINT SNORTS-IN-SLEEP
+?CND96: PRINT PCR
+ RTRUE
+?CCL95: ZERO? MOUTH-SHUT /?CCL99
+ PRINTI "Two gleaming teeth poke out of"
+ CALL TPRINT,CROC
+ PRINTI "'s closed mouth"
+ ZERO? CROC-SLEEP /?CND100
+ PRINT SNORTS-IN-SLEEP
+?CND100: PRINT PCR
+ RTRUE
+?CCL99: CALL CTPRINT,CROC
+ PRINTI " smiles at you invitingly, white teeth shining in"
+ CALL TPRINT,TORCH
+ PRINTR "light."
+?CCL90: EQUAL? PRSA,V?KICK,V?MUNG,V?KILL \FALSE
+ ZERO? COOKIE-FIGHTING-CROC /?CCL106
+ PRINTD COOKIE
+ PRINTI " is seeing to"
+ CALL TRPRINT,CROC
+ RSTACK
+?CCL106: ZERO? CROC-SLEEP /?CCL108
+ PRINTI "Harm a sleeping animal! "
+ PRINT MOTHER
+ RTRUE
+?CCL108: ZERO? MUZZLED /?CCL110
+ PRINTI "The tear welling up in"
+ CALL TPRINT,CROC
+ PRINTI "'s eye is rather poignant. You can't bear to hurt the beast in this state"
+ PRINT PCR
+ RTRUE
+?CCL110: PRINTI "You have no wish to get any closer to"
+ CALL TRPRINT,CROC
+ RSTACK
+
+
+ .FUNCT I-CROC-OPENS-MOUTH
+ ZERO? MUZZLED \FALSE
+ IN? CROC,HERE \FALSE
+ SET 'MOUTH-SHUT,FALSE-VALUE
+ PRINT INDENT
+ PRINTI "With an inaudible creak,"
+ CALL TPRINT,CROC
+ PRINTI "'s mouth opens again"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT POOL-F
+ EQUAL? PRSA,V?SWIM,V?CRAWL-UNDER,V?ENTER \?CCL3
+ PRINTI "You splash around at the outskirts of"
+ CALL TRPRINT,POOL
+ RSTACK
+?CCL3: EQUAL? PRSA,V?THROW-AT,V?THROW-TO,V?THROW \?CCL5
+ EQUAL? PRSO,PORK \?CCL8
+ ZERO? MOUTH-SHUT \?CCL8
+ ZERO? CROC-SLEEP \?CCL8
+ PRINTI "With a terrific splash,"
+ CALL TPRINT,CROC
+ PRINTI " throws itself after"
+ CALL TPRINT-PRSO
+ PRINTI ". "
+ CALL PERFORM,V?THROW,PORK,CROC
+ RTRUE
+?CCL8: EQUAL? PRSO,BOTTLE \?CCL13
+ CALL PERFORM,V?THROW,BOTTLE,CROC
+ RTRUE
+?CCL13: REMOVE PRSO
+ CALL CTPRINT,PRSO
+ PRINTI " splashes into"
+ CALL TRPRINT,POOL
+ RSTACK
+?CCL5: EQUAL? PRSA,V?LOOK-INSIDE \?CCL15
+ PRINTI "It's too murky to see anything"
+ PRINT PCR
+ RTRUE
+?CCL15: EQUAL? PRSA,V?PUT \?CCL17
+ REMOVE PRSO
+ CALL CTPRINT,PRSO
+ PRINTR " sinks from sight."
+?CCL17: EQUAL? PRSA,V?DRINK-FROM,V?DRINK \FALSE
+ PRINTR "Yechh!"
+
+
+ .FUNCT DUNGEON-F,RARG
+ EQUAL? RARG,M-LOOK \?CCL3
+ PRINTI "You sense, rather than see, the rusty skeletons of old cages and torture devices that line the walls of this cavernous room. One flaming torch, high on a wall, casts mad licks of light into the darkness. Passages lead north and west. Set deep in the rocky floor is a"
+ CALL TELL-OPEN/CLOSED,TRAP,TRUE-VALUE
+ PRINTC 32
+ PRINTD TRAP
+ PRINT PCR
+ PRINT INDENT
+ CALL DESC-MANACLES
+ RSTACK
+?CCL3: EQUAL? RARG,M-BEG \?CCL5
+ ZERO? ENDGAME /?CCL5
+ IN? CRULLEY,HERE \?CCL5
+ FSET? CRULLEY,MUNGBIT /?CCL5
+ EQUAL? HERO,PRSO,PRSI \?PRD14
+ CALL AFFIRMATIVE-ANSWER
+ ZERO? STACK \?CTR11
+?PRD14: CALL TOUCHING?,HERO
+ ZERO? STACK \?CTR11
+ CALL TOUCHING?,MANACLES
+ ZERO? STACK /?CCL12
+?CTR11: PRINTD CRULLEY
+ PRINTR " growls, ""Keep away from 'im."""
+?CCL12: CALL TOUCHING?,TRAP
+ ZERO? STACK /FALSE
+ EQUAL? PRSA,V?BOARD,V?ENTER /FALSE
+ PRINTD CRULLEY
+ PRINTR " barks, ""Leave that alone."""
+?CCL5: EQUAL? RARG,M-END \FALSE
+ ZERO? CRULLEY-BACK /FALSE
+ PRINT INDENT
+ PRINTD CRULLEY
+ PRINTI " jumps out of the shadows at you."
+ CALL JIGS-UP,FALL-TO-BOTTOM
+ RSTACK
+
+
+ .FUNCT DUNGEON-EXIT
+ CALL RUNNING?,I-CDUNG
+ ZERO? STACK /?CND1
+ CALL DEQUEUE,I-CDUNG
+ FCLEAR CRULLEY,EVERYBIT
+ PRINTI """Come back 'ere, wench!"""
+ CALL TPRINT,CRULLEY
+ PRINT CALLS-AFTER
+?CND1: EQUAL? P-WALK-DIR,P?WEST \?CCL5
+ RETURN PASSAGE-4
+?CCL5: EQUAL? P-WALK-DIR,P?NORTH \FALSE
+ RETURN ANTEROOM
+
+
+ .FUNCT MANACLES-F
+ EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL3
+ CALL DESC-MANACLES
+ RSTACK
+?CCL3: EQUAL? PRSA,V?CLOSE \?CCL5
+ ZERO? PRSI /?CCL8
+ CALL PERFORM,V?PUT-ON,MANACLES,PRSI
+ RTRUE
+?CCL8: CALL OPEN-CLOSE,PRSO,FALSE-VALUE,STR?327
+ RSTACK
+?CCL5: EQUAL? PRSA,V?OPEN \?CCL10
+ FSET? MANACLES,OPENBIT \?CCL13
+ PRINTR "They are already open!"
+?CCL13: EQUAL? PRSI,JEWEL \?CCL15
+ CALL PROPOSE
+ RSTACK
+?CCL15: PRINTI "It isn't that easy"
+ PRINT PCR
+ RTRUE
+?CCL10: EQUAL? PRSA,V?UNLOCK,V?PICK \?CCL17
+ EQUAL? PRSI,JEWEL \?CCL17
+ PRINTI "You twist the pin of"
+ CALL TPRINT,JEWEL
+ PRINTI " in the "
+ IN? HERO,MANACLES \?CCL22
+ MOVE HERO,HERE
+ INC 'SCORE
+ FSET MANACLES,OPENBIT
+ PRINTI "locks, quickly freeing Nicholas. "
+ FSET? HERO,DEADBIT \?CCL25
+ PRINTI "He falls in a faint at your feet"
+ PRINT PCR
+ RTRUE
+?CCL25: CRLF
+ CALL NICK-RUNS-OFF
+ RSTACK
+?CCL22: FSET MANACLES,OPENBIT
+ FCLEAR MANACLES,LOCKEDBIT
+ PRINTI "manacles until they pop open"
+ PRINT PCR
+ RTRUE
+?CCL17: EQUAL? PRSA,V?UNLOCK \?CCL27
+ PRINTI "That key is much too large to fit in"
+ CALL TRPRINT,MANACLES
+ RSTACK
+?CCL27: EQUAL? PRSA,V?WEAR,V?REACH-IN \?CCL29
+ CALL PERFORM,V?PUT-ON,MANACLES,ME
+ RTRUE
+?CCL29: EQUAL? PRSA,V?PUT \?CCL31
+ EQUAL? PRSO,ME \?CCL34
+ CALL PERFORM,V?PUT-ON,MANACLES,ME
+ RTRUE
+?CCL34: EQUAL? PRSO,LARGE-KEY \?CCL36
+ CALL PERFORM,V?UNLOCK,MANACLES
+ RTRUE
+?CCL36: MOVE PRSO,HERE
+ CALL CTPRINT,PRSO
+ PRINTR " drops to the floor."
+?CCL31: EQUAL? PRSA,V?WEAR,V?PUT-ON /?CCL38
+ EQUAL? PRSA,V?TIE \FALSE
+ EQUAL? P-PRSA-WORD,W?FASTEN,W?SECURE,W?ATTACH \FALSE
+?CCL38: EQUAL? PRSI,ME \?CCL45
+ PRINTI "Mama would not have praised your intelligence"
+ PRINT PCR
+ RTRUE
+?CCL45: EQUAL? PRSI,DAD \?CCL47
+ SET 'AWAITING-REPLY,1
+ CALL QUEUE,I-REPLY,2
+ PRINTR "He wanders off before you can get them on him. ""Oh dear, you have learned atrocious manners these last few year in London!"""
+?CCL47: EQUAL? PRSI,HERO \?CCL49
+ PRINT YOU-CANT
+ PRINTR "lift him high enough."
+?CCL49: PRINT YOU-CANT
+ PRINTI "put that in "
+ PRINTD MANACLES
+ PRINTR "!"
+
+
+ .FUNCT DESC-MANACLES
+ IN? HERO,MANACLES \?CCL3
+ PRINTI "Nicholas is spread-eagled against the wall, shackled in the "
+ PRINTD MANACLES
+ PRINTC 46
+ JUMP ?CND1
+?CCL3: IN? PROTAGONIST,MANACLES \?CCL5
+ PRINTI "You lean against the wall, one arm raised above "
+ PRINTD HEAD
+ PRINTI ", cuffed in a manacle."
+ JUMP ?CND1
+?CCL5: PRINTI "A "
+ PRINTD MANACLES
+ PRINTI " hangs from iron chains attached high on the wall."
+?CND1: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \TRUE
+ CRLF
+ RTRUE
+
+
+ .FUNCT GEN-WELL
+ EQUAL? HERE,DUNGEON \FALSE
+ RETURN TRAP
+
+
+ .FUNCT TRAP-F
+ EQUAL? PRSA,V?MOVE,V?RAISE,V?OPEN /?CTR2
+ EQUAL? PRSA,V?LOWER,V?CLOSE \?CCL3
+?CTR2: CALL OPEN-CLOSE,TRAP,STR?328,FALSE-VALUE
+ RSTACK
+?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?LOOK-UNDER \?CCL7
+ FSET? TRAP,OPENBIT \?CCL10
+ IN? CRULLEY,TRAP \?CCL13
+ PRINTD CRULLEY
+ PRINTR " is slowly climbing up the well."
+?CCL13: PRINTI "You smell salt water and mold, but you can see nothing"
+ PRINT PCR
+ RTRUE
+?CCL10: PRINTI "It"
+ PRINT IS-CLOSED
+ PRINT PCR
+ RTRUE
+?CCL7: EQUAL? PRSA,V?STAND-ON,V?BOARD,V?ENTER \?CCL15
+ FSET? TRAP,OPENBIT \?CCL18
+ PRINTI "You start to climb down the well, but lose your footing on the slimy rock."
+ FSET? CRULLEY,MUNGBIT \?CND16
+ PRINTI " At least you take"
+ CALL TPRINT,CRULLEY
+ PRINTI " with you as you fall."
+ JUMP ?CND16
+?CCL18: PRINTI "As you stand on"
+ CALL TPRINT,TRAP
+ PRINTI ", the rotted wood tears away."
+?CND16: CALL JIGS-UP,FALL-TO-BOTTOM
+ RSTACK
+?CCL15: EQUAL? PRSA,V?PUT-ON \?CCL22
+ FSET? TRAP,OPENBIT \?CCL22
+ CALL PERFORM,V?THROW,PRSO,TRAP
+ RTRUE
+?CCL22: EQUAL? PRSA,V?PUT-THROUGH,V?PUT,V?THROW /?CCL26
+ EQUAL? PRSA,V?THROW-AT \FALSE
+?CCL26: EQUAL? PRSO,RAPIER \?CCL31
+ PRINTD HERO
+ PRINTR " would not thank you for doing that."
+?CCL31: EQUAL? PRSO,RETICULE /FALSE
+ FSET? CRULLEY,MUNGBIT \?CCL35
+ CALL PERFORM,V?THROW,PRSO,CRULLEY
+ RTRUE
+?CCL35: REMOVE PRSO
+ PRINTI "You drop"
+ CALL TPRINT-PRSO
+ PRINTI " into the well. Several seconds later you hear a tiny splash"
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT CELL-4-F,RARG
+ EQUAL? RARG,M-END \?CCL3
+ FSET? DAD,TOUCHBIT /?CCL3
+ FSET DAD,TOUCHBIT
+ FCLEAR DAD,NDESCBIT
+ INC 'SCORE
+ EQUAL? DANCED-WITH,LAFOND \?CND6
+ CALL QUEUE,I-SUMMONS,15
+?CND6: CALL QUEUE,I-DAD,2
+ PRINT INDENT
+ PRINTI "As you enter, a tall bony man moves out of the darkness. ""Papa,"" you cry, rushing into his arms.
+ ""Why, hullo, my dear."" He hugs you tightly. ""Nick certainly took his time about fetching you."
+ ZERO? BOY-DRESS? \?CCL9
+ FSET? CHEMISE,EVERYBIT /?CND8
+?CCL9: PRINTI """ He squints in horror at your clothes. ""I have always found the London fashions quite abominable."
+ FSET? CHEMISE,EVERYBIT /?CND8
+ SET 'AWAITING-REPLY,2
+ CALL QUEUE,I-REPLY,2
+ PRINTI " Aren't you a trifle cold?"
+?CND8: PRINTR """"
+?CCL3: ZERO? RARG \FALSE
+ RFALSE
+
+
+ .FUNCT CELL-OBJ-F
+ EQUAL? PRSA,V?BOARD,V?ENTER \?CCL3
+ EQUAL? HERE,CELL-1,CELL-2,CELL-4 \?CCL6
+ PRINT LOOK-AROUND
+ RTRUE
+?CCL6: EQUAL? HERE,PASSAGE-1,PASSAGE-2 \?CCL8
+ CALL DO-WALK,P?EAST
+ RSTACK
+?CCL8: EQUAL? HERE,PASSAGE-4 \FALSE
+ CALL DO-WALK,P?NORTH
+ RSTACK
+?CCL3: EQUAL? PRSA,V?EXAMINE,V?LOOK \FALSE
+ EQUAL? HERE,CELL-1,CELL-2,CELL-4 \?CCL15
+ CALL V-LOOK
+ RSTACK
+?CCL15: PRINTI "You would do better to enter it"
+ PRINT PCR
+ RTRUE
+
+ .ENDI
diff --git a/island.zil b/island.zil
new file mode 100644
index 0000000..202bf15
--- /dev/null
+++ b/island.zil
@@ -0,0 +1,3501 @@
+"ISLAND for
+ PLUNDERED HEARTS
+ (c) Copyright 1987 Infocom, Inc. All Rights Reserved."
+
+<OBJECT ISLAND
+ (IN GLOBAL-OBJECTS)
+ (DESC "St. Sinistra")
+ (SYNONYM ISLAND SINISTRA CLIFF BEACH)
+ (ADJECTIVE ST)
+ (FLAGS NARTICLEBIT)
+ (ACTION ISLAND-F)>
+
+<ROUTINE ISLAND-F ()
+ <COND (<VERB? EXAMINE>
+ <COND (<EQUAL? ,HERE ,LIBRARY>
+ <PERFORM ,V?EXAMINE ,GLOBE>)
+ (<INNER-DECK ,HERE>
+ <TELL ,YOU-CANT "see it from here" ,PCR>)
+ (<OR <SHIP-BOARD ,HERE>
+ <EQUAL? ,HERE ,SHALLOWS
+ ,LAGOON ,BY-SHIP ,ON-LADDER>>
+ <TELL
+"St. Sinistra is blessed with lush tropical beauty,
+jungle besieging the mansion atop the southern cliffs" ,PCR>)
+ (T
+ <PERFORM ,V?LOOK>
+ <RTRUE>)>)>>
+
+<ROUTINE BELOW-GROUND (RM)
+ <COND (<OR <EQUAL? .RM ,STAIRWELL ,BOTTOM-STAIRS>
+ <EQUAL? .RM ,ANTEROOM ,DUNGEON>
+ <EQUAL? .RM ,PASSAGE-1 ,PASSAGE-2 ,PASSAGE-4>
+ <EQUAL? .RM ,CELL-1 ,CELL-2 ,CELL-4>>
+ <RTRUE>)
+ (T <RFALSE>)>>
+
+<OBJECT BUSHES
+ (IN BEACH)
+ (DESC "bushes")
+ (SYNONYM BUSHES DRAGOO SOLDIERS)
+ (FLAGS PLURALBIT NDESCBIT)>
+
+<ROOM BEACH
+ (IN ROOMS)
+ (DESC "Beach")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (UP PER BEACH-EXIT)
+ (NORTH PER BEACH-EXIT)
+ (NW PER BEACH-EXIT)
+ (EAST TO SHALLOWS)
+ (GLOBAL STAIRS SEA VINE PSEUD-SKIFF DEBRIS)
+ (ACTION BEACH-F)>
+
+<ROUTINE BEACH-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"This is a tiny beach, at the base of vine-covered cliffs.
+To the east,">
+ <COND (<FSET? ,SHIP ,MUNGBIT>
+ <TELL
+" across the debris-ridden lagoon, black
+reefs speckle the blue endless sea">)
+ (T
+ <TELL T ,SHIP " floats serenely on the lagoon">)>
+ <COND (,ENDGAME
+ <TELL
+". Halfway out to the ship is a skiff crowded
+with men; another skiff sits on the sand">)>
+ <TELL ,PCR ,INDENT
+"Immediately north of you, a rocky staircase is hewn into the cliff. ">
+ <COND (<RUNNING? ,I-ENDGAME>
+ <TELL
+"A sizable number of dragoons huddle at the top.">)
+ (T
+ <RTRUE>)>
+ ;<COND (,ENDGAME
+ <TELL
+" The wind has picked up, pushing the surf farther up the beach.">)
+ >)
+ (<AND <EQUAL? .RARG ,M-END>
+ ,ENDGAME
+ <NOT <FSET? ,STONE ,TOUCHBIT>>
+ <QUEUED? ,I-ENDGAME>>
+ <MOVE ,STONE ,BEACH>
+ <FSET ,STONE ,TOUCHBIT>
+ <TELL ,INDENT
+"You splash into the rising surf and pain needles up your leg. Blood swirls
+out from your shoe in the shallow water, flowing over a small pointed stone"
+,PCR>)
+ (<AND <EQUAL? .RARG ,M-BEG>
+ <VERB? ENTER>
+ <PRSO? ,SHALLOWS>>
+ <DO-WALK ,P?EAST>
+ <RTRUE>)
+ (<AND <EQUAL? .RARG ,M-ENTER>
+ <IN? ,COOKIE ,LAWN>>
+ <TELL "\"I know 'e ain't down there!\" Cookie cries." CR>)>>
+
+<ROUTINE BEACH-EXIT ()
+ <COND (<RUNNING? ,I-ENDGAME>
+ <TELL "You would be safer aboard" TR ,SHIP>
+ <RFALSE>)
+ (T
+ <RETURN ,LAWN>)>>
+
+<OBJECT PSEUD-SKIFF
+ (IN LOCAL-GLOBALS)
+ (DESC "skiff")
+ (SYNONYM SKIFF BOAT)
+ (FLAGS NDESCBIT)
+ (ACTION P-SKIFF-F)>
+
+<ROUTINE P-SKIFF-F ()
+ <COND (<EQUAL? ,HERE ,BEACH>
+ <TELL
+CTHE ,SKIFF " is out of reach. Wade into the shallows" ,PCR>)
+ (<EQUAL? ,HERE ,ON-LADDER>
+ <COND (<NOT ,SKIFF-TIED>
+ <TELL ,YOU-CANT-SEE-ANY D ,SKIFF " here." CR>
+ <RFATAL>)
+ (<VERB? ENTER BOARD>
+ <DO-WALK ,P?DOWN>)
+ (T
+ <RFALSE>)>)>>
+
+<ROOM LAWN
+ (IN ROOMS)
+ (DESC "Lawn")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (WEST TO FOREST)
+ (NORTH TO VERANDA)
+ (UP TO VERANDA)
+ (IN TO FOLLY)
+ (EAST TO FOLLY)
+ (DOWN TO BEACH)
+ (SE TO BEACH)
+ (SOUTH TO BEACH)
+ (GLOBAL VEROBJ FOLLY-OBJECT HEDGE)
+ (ACTION LAWN-F)>
+
+<ROUTINE LAWN-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"Jungle looms around this clipped lawn, a path meandering westward into the
+dense undergrowth. To the east is a folly entangled in blooming jasmine.
+The way to the beach is obscure, but visible to the southeast.
+Behind the folly a thorny hedge blocks the cliff view of the sea.">
+ <COND (<NOT ,ENDGAME>
+ <TELL CR ,INDENT
+"Music and voices float from the veranda to the north.">)
+ (T
+ <RTRUE>)>)
+ (<EQUAL? .RARG ,M-END>
+ <COND (<NOT <FSET? ,HERE ,ACTORBIT>>
+ <FSET ,HERE ,ACTORBIT>
+ <TELL ,INDENT
+"Two men stand whispering in the shadows. You catch an occasional word,
+\"Davis dead... girl... Falcon on Sinistra.\" The men separate, the
+well-dressed one going into the ballroom as the other slinks into the bushes.
+You see his face. Crulley!" CR>)
+ (,COOKIE-LOOKING
+ <I-COOKIE T>)
+ (T
+ <RTRUE>)>)>>
+
+<ROUTINE GEN-FLOWER ()
+ <COND (<EQUAL? ,HERE ,FOLLY>
+ ,FLOWER)>>
+
+<OBJECT FLOWER
+ (IN FOLLY)
+ (DESC "flower")
+ (SYNONYM FLOWER JASMINE)
+ (ADJECTIVE LOVELY)
+ (FLAGS NDESCBIT)
+ (GENERIC GEN-FLOWER)
+ (ACTION FLOWER-F)>
+
+<ROUTINE FLOWER-F ()
+ <COND (<AND <VERB? TAKE PICK>
+ <NOT <FSET? ,FLOWER ,TAKEBIT>>>
+ <TELL "You can't bear to pick" TR ,FLOWER>)
+ (<VERB? SMELL>
+ <TELL "Ah, jasmine! Mama grew this in her garden" ,PCR>)>>
+
+
+<ROOM FOLLY
+ (IN ROOMS)
+ (DESC "Folly")
+ (LDESC
+"Perfumed by the heady odor of the night-blooming jasmine
+entwined in the bamboo latticework, this folly is a cool, dark haven.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT INDOORSBIT)
+ (SYNONYM FOLLY)
+ (EAST PER FOLLY-EXIT)
+ (IN PER FOLLY-EXIT)
+ (WEST TO LAWN)
+ (OUT TO LAWN)
+ (GLOBAL FOLLY-OBJECT)
+ (ACTION FOLLY-F)>
+
+<ROUTINE FOLLY-F (RARG)
+ <COND (<AND <EQUAL? .RARG ,M-ENTER>
+ <NOT <FSET? ,FOLLY ,TOUCHBIT>>
+ <NOT <FSET? ,LAFS-ROOM ,TOUCHBIT>>
+ <IN? ,DAD ,CELL-4>>
+ <SETG HERO-CTR 1>
+ <QUEUE I-HFOLLY 2>)>>
+
+<OBJECT FOLLY-OBJECT
+ (IN LOCAL-GLOBALS)
+ (DESC "folly")
+ (SYNONYM FOLLY GAZEBO JASMINE)
+ (GENERIC GEN-FLOWER)
+ (FLAGS NDESCBIT)
+ (ACTION FOLLY-OBJ-F)>
+
+<ROUTINE FOLLY-OBJ-F ()
+ <COND (<VERB? ENTER>
+ <COND (<EQUAL? ,HERE ,IN-HEDGE>
+ <DO-WALK ,P?WEST>)
+ (<EQUAL? ,HERE ,LAWN>
+ <DO-WALK ,P?EAST>)
+ (T
+ <TELL ,LOOK-AROUND>)>)
+ (<VERB? EXAMINE>
+ <COND (<EQUAL? ,HERE ,IN-HEDGE>
+ <TELL
+CTHE ,FOLLY-OBJECT " is invisible beyond the leaves to the west" ,PCR>)
+ (<EQUAL? ,HERE ,FOLLY>
+ <V-LOOK>
+ <RTRUE>)
+ (T
+ <TELL
+CTHE ,FOLLY-OBJECT " is obscured by tangled vines" ,PCR>)>)>>
+
+<OBJECT BENCH
+ (IN FOLLY)
+ (DESC "bench")
+ (LDESC "A bench is built into the wall, circling the folly.")
+ (SYNONYM BENCH)
+ (FLAGS CONTBIT SURFACEBIT VEHBIT SEARCHBIT OPENBIT)>
+
+<GLOBAL SLAT-OPEN <>>
+
+<OBJECT SLAT
+ (IN FOLLY)
+ (DESC "loose slat")
+ (LDESC "One bamboo slat at the back seems to be loose.")
+ (SYNONYM SLAT) ;"HOLE"
+ (ADJECTIVE BAMBOO LOOSE)
+ (FLAGS TRYTAKEBIT)
+ (ACTION SLAT-F)>
+
+<ROUTINE SLAT-F ()
+ <COND (<AND <VERB? TAKE>
+ <NOT ,SLAT-OPEN>>
+ <TELL
+"Only the bottom of the slat is loose. The rest is
+tightly woven into the frame of the folly" ,PCR>)
+ (<VERB? UNTIE REMOVE>
+ <IMPOSSIBLES>)
+ (<VERB? MOVE FIDDLE PUSH>
+ <COND (,SLAT-OPEN
+ <TELL ,YOU-HAVE-ALREADY " done that." CR>)
+ (T
+ <SETG SLAT-OPEN T>
+ <FCLEAR ,HOLE ,INVISIBLE>
+ <FSET ,SLAT ,NDESCBIT>
+ <TELL
+"You twist aside the " D ,SLAT ", wedging the
+end into the woven wall. The remaining hole, just above the
+bench, looks big enough to snake " D ,ME " through" ,PCR>)>)
+ (<VERB? EXAMINE>
+ <TELL "The bamboo slat at the back of the folly ">
+ <COND (<FSET? ,SLAT ,NDESCBIT>
+ <TELL
+"has been pulled aside, making a hole in the wall" ,PCR>)
+ (T
+ <TELL "appears to be loose" ,PCR>)>)>>
+
+<OBJECT HOLE
+ (IN FOLLY)
+ (DESC "hole")
+ (SYNONYM HOLE)
+ (FLAGS INVISIBLE OPENBIT)
+ (ACTION HOLE-F)>
+
+<ROUTINE HOLE-F ()
+ <COND (<VERB? ENTER>
+ <DO-WALK ,P?EAST>)
+ (<VERB? THROW PUT-THROUGH PUT>
+ <COND (<PRSO? ,HANDS>
+ <TELL ,HUH>)
+ (<PRSO? ,RETICULE>
+ <RFALSE>)
+ ;(<PRSO? ,HOOPS>
+ <RFALSE>)
+ (T
+ <PRONOUN>
+ <TELL " fall">
+ <COND (<NOT <FSET? ,PRSO ,PLURALBIT>>
+ <TELL "s">)>
+ <TELL " through the hole">
+ <MOVE ,PRSO ,IN-HEDGE>
+ <TELL ,PCR>)>)
+ (<VERB? LOOK-INSIDE>
+ <TELL ,YOU-SEE
+" a few leaves near to you, more fading into green obscurity" ,PCR>)>>
+
+<ROUTINE FOLLY-EXIT ()
+ <COND (,SLAT-OPEN
+ <COND (<FSET? ,GOWN ,WORNBIT>
+ <TELL "You might rip" TR ,GOWN>
+ <RFALSE>)
+ (T
+ ;<COND ;(<IN? ,HOOPS ,PROTAGONIST>
+ <MOVE ,HOOPS ,FOLLY>
+ <TELL
+"The hoops won't fit through" T ,HOLE ", so you ">
+ <COND (<FSET? ,HOOPS ,WORNBIT>
+ <FCLEAR ,HOOPS ,WORNBIT>
+ <TELL "remove them, and ">)>
+ <TELL
+"leave them on the floor of" T ,FOLLY-OBJECT ", crawling through" ,PCR CR>)>
+ ;<COND (<EQUAL? <LOC ,HERO> ,FOLLY>
+ <REMOVE ,HERO>)>
+ <RETURN ,IN-HEDGE>)>)
+ (T
+ <TELL ,CANT-GO>
+ <RETURN ,FALSE>)>>
+
+<ROOM IN-HEDGE
+ (IN ROOMS)
+ (DESC "In the Hedge")
+ (LDESC
+"You crouch in the green rustlings of the hedge. Not far east, wind keens up
+the cliff, high above swells breaking against a rocky shore. You know the
+folly is somewhere to the west. North, the hedge is somewhat less dense.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (NORTH TO BY-HOUSE)
+ (SOUTH
+"You might fight your way a few feet into the thorns
+but you'd only tear your clothes.")
+ (WEST TO FOLLY IF SLAT-OPEN
+ ELSE "You can't see any way to get past into the folly.")
+ (EAST "Death lies that way, my lady.")
+ (GLOBAL FOLLY-OBJECT HEDGE)>
+
+<ROOM BY-HOUSE
+ (IN ROOMS)
+ (DESC "By the House")
+ (SOUTH TO IN-HEDGE)
+ (NORTH
+"You might fight your way a few feet into the thorns
+but you'd only tear your clothes.")
+ ;(WEST PER LWINDOW-EXIT)
+ (WEST TO LIBRARY IF LIB-WINDOW IS OPEN)
+ (EAST "Death lies that way, my lady.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (GLOBAL LIB-WINDOW HEDGE)
+ (ACTION BY-HOUSE-F)>
+
+<ROUTINE BY-HOUSE-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"You crouch in" T ,HEDGE " by the house, twigs poking into you, the cliff
+crumbling away to the east. " CTHE ,HEDGE " seems less dense to the south. A">
+ <TELL-OPEN/CLOSED ,LIB-WINDOW T>
+ <TELL " window is directly west of you.">)>>
+
+<OBJECT LIB-WINDOW ;"in BY-HOUSE and LIBRARY"
+ (IN LOCAL-GLOBALS)
+ (DESC "window")
+ (SYNONYM GLASS WINDOW)
+ (ADJECTIVE LARGE GLASS SMALL PANE PANES)
+ (ACTION WINDOW-F)>
+
+<OBJECT VER-DOOR
+ (IN LOCAL-GLOBALS)
+ (DESC "french door")
+ (SYNONYM DOOR DOORS)
+ (FLAGS NDESCBIT DOORBIT)
+ (ACTION DOOR-F)>
+
+<ROOM VERANDA
+ (IN ROOMS)
+ (DESC "Veranda")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (NORTH PER BALLROOM-ENTRANCE)
+ (DOWN TO LAWN)
+ (SOUTH TO LAWN)
+ (EAST "The steps lead south.")
+ (WEST "The steps lead south.")
+ (GLOBAL STAIRS VEROBJ VER-DOOR)
+ (ACTION VERANDA-F)>
+
+<ROUTINE VERANDA-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"Steps lead south from this white marble veranda to a clipped lawn.
+To the north">
+ <COND (<QUEUED? ,I-ENDGAME>
+ <TELL
+" the wreckage left by the duel is visible in the ballroom.">
+ <RTRUE>)
+ (<NOT <FSET? ,VER-DOOR ,OPENBIT>>
+ <TELL ", beyond a closed glass door,">)>
+ <COND (,ENDGAME
+ <TELL " is">)
+ (T
+ <TELL " a line of people blocks your view of">)>
+ <TELL " the ballroom.">)
+ (<AND <EQUAL? .RARG ,M-END>
+ ,COOKIE-LOOKING>
+ <I-COOKIE T>)>>
+
+<OBJECT VEROBJ ;"VERANDA-OBJECT"
+ (IN LOCAL-GLOBALS)
+ (DESC "veranda")
+ (SYNONYM VERANDA PORCH)
+ (FLAGS NDESCBIT)>
+
+<ROOM TRADE-ENTRANCE
+ (IN ROOMS)
+ (DESC "Trade Entrance")
+ (LDESC
+"You are on a well-trampled lawn at the side of the house, one low doorway
+leading in to the east. Gravelled paths lead north and south into the
+undergrowth.")
+ ;("Obviously this is where carts from the village unload supplies into
+the kitchen, through a low doorway to the east.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (SOUTH TO FOREST)
+ (NORTH PER AROUND-HOUSE)
+ (IN TO KITCHEN)
+ (EAST TO KITCHEN)
+ (WEST "The undergrowth is much too thick to enter.")>
+
+<ROUTINE AROUND-HOUSE ()
+ <TELL "The gravel path is just wide enough for a cart to pass.
+It bends around the west wing of the house, leading you to" ,ELLIPSIS>
+ <COND (<EQUAL? ,HERE ,MAIN-ENTRANCE>
+ <RETURN ,TRADE-ENTRANCE>)
+ (T
+ <RETURN ,MAIN-ENTRANCE>)>>
+
+<ROOM FOREST
+ (IN ROOMS)
+ (DESC "Forest")
+ (LDESC "Buried in the subtropical undergrowth, you lose all
+sense of being on someone's private estate; jungle seems to extend for
+miles on all sides of you. A footworn path curves from east to north here,
+and the vegetation lessens to the northeast.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (NORTH TO TRADE-ENTRANCE)
+ (NE TO CLEARING)
+ (EAST TO LAWN)
+ (ACTION FOREST-F)>
+
+<ROUTINE FOREST-F (RARG)
+ <COND (<AND <EQUAL? .RARG ,M-END>
+ <FSET? ,FOREST ,EVERYBIT>>
+ <DEQUEUE I-CATCH-KISS>
+ <FCLEAR ,FOREST ,EVERYBIT>
+ <TELL ,INDENT
+"Two whispered voices come from the path ahead, one reassuring, the other
+desperate -- they sound like" T ,DAD " and Lucy. Peering over a bush, you see
+the couple share a fond embrace before they meander off into the jungle." CR>)>>
+
+<ROOM CLEARING
+ (IN ROOMS)
+ (DESC "Clearing")
+ (LDESC
+"You are in a small clearing under the western side of the house.
+Heavy vines creep up the wall past a second floor window, open
+to the night air. Southwest is an opening in the bushes.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ ;(UP PER CLIMBING-VINE)
+ (UP PER CLIMBING)
+ (EAST "The west wall of the house is that way.")
+ (OUT TO FOREST)
+ (SW TO FOREST)
+ (WEST TO FOREST)
+ (GLOBAL WINDOW TREE VINE)
+ (ACTION CLEARING-F)>
+
+<ROUTINE CLEARING-F (RARG)
+ <COND (<AND <EQUAL? .RARG ,M-BEG>
+ <OR <PRSO? ,WINDOW>
+ <PRSI? ,WINDOW>>>
+ <COND (<VERB? EXAMINE LOOK-INSIDE>
+ <TELL ,YOU-SEE " only an embossed ceiling." CR>)
+ (<VERB? ENTER>
+ <DO-WALK ,P?UP>
+ <RTRUE>)
+ (T
+ <CANT-REACH ,WINDOW>)>)>>
+
+<OBJECT VINE
+ (IN LOCAL-GLOBALS)
+ (DESC "vine")
+ (SYNONYM VINE VINES)
+ (ADJECTIVE HEAVY)
+ (FLAGS PLURALBIT NDESCBIT TRYTAKEBIT)
+ (ACTION VINE-F)>
+
+<ROUTINE VINE-F ()
+ <COND (<AND <EQUAL? ,HERE ,BEACH>
+ <NOT <VERB? EXAMINE>>>
+ <CANT-REACH ,VINE>)
+ (<VERB? TAKE>
+ <TELL
+"You tug, but are unable to get any substantial length of vine" ,PCR>)
+ ;(<AND <VERB? CUT>
+ <HELD? ,DAGGER>>
+ <TELL "The vines are too fibrous to admit cutting" ,PCR>)
+ (<AND <VERB? CLIMB ;CLIMB-UP>
+ <EQUAL? ,HERE ,CLEARING>>
+ <DO-WALK ,P?UP>
+ <RTRUE>)
+ (<AND <VERB? CLIMB CLIMB-DOWN>
+ <EQUAL? ,HERE ,BEDROOM>>
+ <DO-WALK ,P?DOWN>
+ <RTRUE>)>>
+
+;<ROUTINE ;CLIMBING-VINE ()
+ <COND (,BOY-DRESS?
+ <COND (<EQUAL? ,HERE ,CLEARING>
+ <TELL "You take a firm grasp on a particularly
+thick tendril, jerk once to secure it, and scamper up the wall like some
+huge tropical spider. It is easy to climb into the window" ,PCR CR>
+ <RETURN ,BEDROOM>)
+ (T
+ <TELL "Almost without thinking you slide down the
+jasmine vine. You're getting quite adept at clambering about in boy's
+clothes" ,PCR>
+ <RETURN ,CLEARING>)>)
+ (T
+ <TELL "In these clothes? You jest" ,PCR>
+ <RFALSE>)>>
+
+<ROOM MAIN-ENTRANCE
+ (IN ROOMS)
+ (DESC "Main Entrance")
+ (LDESC
+"The front door stands open to the south, light splayed out onto a drive
+stretching north into the jungle. A path leads around the western wing of
+the house; jutting out from the east wing is a tall hedge.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (SOUTH TO FOYER)
+ (IN TO FOYER)
+ (EAST
+"A tall hedge prevents you from going around the east wing of the house.")
+ (WEST PER AROUND-HOUSE)
+ (NORTH TO FRONT-DRIVE)
+ (GLOBAL HEDGE)>
+
+<ROOM FRONT-DRIVE
+ (IN ROOMS)
+ (DESC "Front Drive")
+ (LDESC
+"A rutted drive runs north-south here, from a high spiked gate through the
+jungle to Lafond's mansion. You hide in the bushes nearby.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (NORTH "Dragoons guard the gate.")
+ (SOUTH TO MAIN-ENTRANCE)
+ (EAST "The underbrush is much too thick to enter.")
+ (WEST "The underbrush is much too thick to enter.")
+ ;(ACTION FRONT-DRIVE-F)>
+
+;<ROUTINE FRONT-DRIVE-F (RARG)
+ <COND (<EQUAL? .RARG ,M-ENTER>
+ <QUEUE I-PATROL -1>)
+ (<AND <EQUAL? .RARG ,M-BEG>
+ <VERB? YELL>>
+ <SETG PATROL-CTR 4>
+ <DEQUEUE I-PATROL>
+ <I-PATROL T>)>>
+
+<OBJECT HEDGE
+ (IN LOCAL-GLOBALS)
+ (DESC "hedge")
+ (SYNONYM HEDGE)>
+
+<OBJECT FRONT-GATE
+ (IN FRONT-DRIVE)
+ (DESC "gate")
+ (SYNONYM GATE FENCE)
+ (FLAGS NDESCBIT DOORBIT LOCKEDBIT)>
+
+;<GLOBAL PATROL-CTR 0>
+
+;<ROUTINE I-PATROL ("OPTIONAL" (CALLED-BY-PATROL-F <>))
+ <COND (<NOT <EQUAL? ,HERE ,FRONT-DRIVE>>
+ <DEQUEUE I-PATROL>
+ <RFALSE>)>
+ <COND (<NOT .CALLED-BY-PATROL-F>
+ <TELL ,INDENT>)>
+ <COND (<EQUAL? ,PATROL-CTR 4>
+ <TELL
+"\"Ho, who goes there?\" a dragoon calls, turning towards you. ">
+ <COND (,BOY-DRESS?
+ <FWTD
+"\"A boy -- out after curfew? I wonder what Lafond will say about this.\"
+They rush through the gate, grabbing you to throw you off the grounds.
+Unfortunately, in that close contact, they discover your gender.">)
+ (<FSET? ,GOWN ,WORNBIT>
+ <TELL
+"\"Miss,\" he bows respectfully, \"Governor Lafond would prefer it if you
+remained indoors. It is not safe to be out alone in the night.\" He comes
+through the gate and ushers you into the front door" ,PCR CR>
+ <GOTO ,FOYER>)
+ (T
+ <JIGS-UP
+"\"Lafond does not tolerate beggars!\" They throw you off the cliff.">)>
+ <RTRUE>)
+ (T
+ <TELL
+"Joking quietly among themselves, a small patrol paces back and forth on the
+other side of the gate. The dragoons have not yet noticed you, hiding in the
+darkness of the bushes." CR>)>
+ <SETG PATROL-CTR <+ ,PATROL-CTR 1>>>
+
+;<ROOM ROAD
+ (IN ROOMS)
+ (DESC "Village Road")
+ (LDESC "A rutted, overgrown dirt road leads north, the only route to
+the village. Far south of you, dragoons pace in front of a high spiked gate.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT)
+ (NORTH
+"You can barely walk on your sore ankle, and have no wish to crawl.")
+ (EAST "The underbrush is much too thick to enter.")
+ (WEST "The underbrush is much too thick to enter.")
+ (SOUTH "The dragoons are unlikely to be sympathetic.")>
+
+<ROOM KITCHEN
+ (IN ROOMS)
+ (DESC "Kitchen")
+ (LDESC
+"A firepit in the floor smokes badly, fogging up the depths of this large
+kitchen, somehow not escaping through either the south or west doors.")
+ ;(SYNONYM KITCHEN)
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT INDOORSBIT)
+ (SOUTH PER KITCHEN-EXIT)
+ (WEST PER KITCHEN-EXIT)
+ (GLOBAL FIRE)
+ (ACTION KITCHEN-F)>
+
+;"IF LUCY IS THERE: Can't enter kitchen except as boy."
+<ROUTINE KITCHEN-F (RARG)
+ <COND (<AND <EQUAL? .RARG ,M-END>
+ <IN? ,LUCY ,KITCHEN>>
+ <COND (,BOY-DRESS?
+ <COND (<NOT <FSET? ,LUCY ,TOUCHBIT>>
+ <FSET ,LUCY ,TOUCHBIT>
+ <QUEUE I-LUCY 2>
+ <TELL ,INDENT
+"The woman smiles uncertainly, then rushes over. \"Are you come from the
+village, boy? Dost know Lord Dimsford?\" She sighs at your surprise.
+\"So he sent you -- I am his Lucy. It's been so long since I've seen him.
+Lafond caught me eavesdropping and now I can't leave the grounds.\"" CR>)>)
+ (<FSET? ,GOWN ,WORNBIT>
+ <TELL ,INDENT
+"\"Milady,\" exclaims the woman. \"Lafond's guests are wisest not to stray.
+Maybe you should stay at the ball.\" You find " D ,ME " ushered into
+a hallway" ,PCR CR>
+ <GOTO ,HALL-W>)
+ (T
+ <TELL ,INDENT
+"The woman shrieks, pushing you out the door. \"Has not the governor made
+clear his position on light-skirts? Out, slattern, before I report you!\"
+Her voice drops to a whisper, \"Sorry, but it's not safe around here.
+Stay in the village.\" You find yourself outside" ,PCR CR>
+ <GOTO ,TRADE-ENTRANCE>)>)>>
+
+<ROUTINE KITCHEN-EXIT ()
+ <COND (<AND <EQUAL? <META-LOC ,GARTER> ,HERE>
+ <NOT <HELD? ,GARTER>>
+ <IN? ,LUCY ,HERE>
+ <NOT <IN? ,DAD ,HERE>>>
+ <REMOVE ,GARTER>
+ ;<REMOVE ,LUCY>
+ <DEQUEUE I-LUCY>
+ <TELL
+"Lucy spits at you, \"Yes, desert a helpless woman. Tell Lafond
+I'm a spy. Dimsford will avenge me, runt!\" She comes after you
+with a rolling pin, pushing you out the door" ,PCR CR>
+ <RETURN ,TRADE-ENTRANCE>)
+ (T
+ <COND (<AND <IN? ,LUCY ,HERE>
+ <NOT <IN? ,DAD ,HERE>>
+ <FSET? ,GARTER ,TOUCHBIT>>
+ <TELL
+"\"Don't forget -- tell Dimsford,\"" T ,LUCY ,CALLS-AFTER>)>
+ <COND (<EQUAL? ,P-WALK-DIR ,P?SOUTH>
+ <RETURN ,HALL-W>)
+ (T
+ <RETURN ,TRADE-ENTRANCE>)>)>>
+
+<ROOM HALL-W
+ (IN ROOMS)
+ (DESC "Hall")
+ (LDESC
+"No expense has been spared to make this long dim hallway anything but a
+servant's corridor. The foyer is east, a kitchen north of you."
+;"Music drifts into this narrow hallway through the south wall
+and from a brightly lit area to the east. The kitchen is north of you.")
+ (FLAGS ONBIT INDOORSBIT RLANDBIT NARTICLEBIT)
+ (GLOBAL DOOR)
+ (EAST TO FOYER)
+ (NORTH TO KITCHEN)>
+
+<ROUTINE BALLROOM-ENTRANCE ()
+ <COND (<AND <EQUAL? ,HERE ,VERANDA>
+ <NOT <FSET? ,VER-DOOR ,OPENBIT>>>
+ <TELL CTHE ,DOOR ,IS-CLOSED ,PCR>
+ <RFALSE>)
+ (,ENDGAME
+ <COND (<RUNNING? ,I-DUEL>
+ <TELL ,YOU-CANT
+"force " D ,ME " between the amazed spectators of the duel" ,PCR>
+ <RETURN ,FALSE>)
+ (T
+ <RETURN ,BALLROOM>)>)
+ (<NOT <FSET? ,GOWN ,WORNBIT>>
+ <TELL
+"Though you glimpse whirling bodies beyond,
+the spectators fail to admit such a ">
+ <COND (,BOY-DRESS?
+ <TELL "grubby youth">)
+ (T
+ <TELL "poorly dressed female">)>
+ <TELL ".|">
+ <RETURN ,FALSE>)
+ (T
+ ;<COND (<AND <HELD? ,HAT>
+ <NOT <EQUAL? ,HERE ,FOYER>>>
+ <WEARING-HAT>)>
+ <TELL
+"The sea of spectators parts to admit you, murmuring approval" ,PCR CR>
+ <RETURN ,BALLROOM>)>>
+
+;<CONSTANT FOLDS " in the folds of your skirts">
+
+;<ROUTINE WEARING-HAT ()
+ <FCLEAR ,HAT ,WORNBIT>
+ <TELL "Remembering Lafond's hat, you ">
+ <COND (<FSET? ,HAT ,WORNBIT>
+ <TELL "whip it off" T ,HEAD " and">)>
+ <TELL "hide it" ,FOLDS ". ">>
+
+<ROOM FOYER ;"EVERYBIT: the butler missed you in I-SUMMONS"
+ (IN ROOMS)
+ (DESC "Foyer")
+ (LDESC "A grandiose staircase splits and twists up to the next
+floor here, framing the entrance south to the ballroom. Long hallways
+lead east and west; cool night air drifts in through the front door,
+north of you.")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT INDOORSBIT)
+ (SOUTH PER FOYER-EXIT)
+ (NORTH TO MAIN-ENTRANCE)
+ (WEST PER FOYER-EXIT)
+ (EAST PER FOYER-EXIT)
+ (UP PER FOYER-EXIT)
+ (ACTION FOYER-F)>
+
+<GLOBAL BUTLER-POINTS "\" The butler points up the stairs.|">
+
+<ROUTINE FOYER-F (RARG)
+ <COND (<EQUAL? .RARG ,M-END>
+ <COND (<AND <NOT <FSET? ,BUTLER ,DEADBIT>>
+ <IN? ,BUTLER ,HERE>>
+ <COND (<FSET? ,GOWN ,WORNBIT>
+ <COND (<FSET? ,FOYER ,EVERYBIT>
+ <FCLEAR ,FOYER ,EVERYBIT>
+ <REMOVE ,BUTLER>
+ <TELL ,INDENT
+"\"Miss, the master has been expecting you, up in his room.
+I did look for you.\" " CTHE ,BUTLER " bows and leaves." CR>)
+ (<FSET? ,BUTLER ,MUNGBIT>
+ <TELL
+,INDENT "\"" ,NO-LOITERING ,PUSHING-YOU-OUT CR>
+ <GOTO ,MAIN-ENTRANCE>)
+ (T
+ <RFALSE>)>)
+ (,BOY-DRESS?
+ <KICKED-OUT>)
+ (T
+ ;<OR <FSET? ,DRESS ,WORNBIT>
+ <NOT <FSET? ,CHEMISE ,EVERYBIT>>>
+ <TELL ,INDENT
+"\"You may not ply your wares here, Paphian. Leave before I have you
+thrown off the cliff!\" You contemplate this pleasant prospect as you
+are tossed onto the gravel drive." CR CR>
+ <GOTO ,MAIN-ENTRANCE>)>)
+ (,COOKIE-LOOKING
+ <I-COOKIE T>)
+ (T
+ <RTRUE>)>)
+ ;(<AND <EQUAL? .RARG ,M-BEG>
+ <NOT <FSET? ,BUTLER ,DEADBIT>>
+ <VERB? WEAR>
+ <PRSO? ,HAT>>
+ <TELL "That mayn't be wise." CR>)
+ (<AND <EQUAL? .RARG ,M-ENTER>
+ <NOT <FSET? ,BUTLER ,DEADBIT>>
+ <NOT <FSET? ,BUTLER ,INDOORSBIT>>>
+ <QUEUE I-BUTLER 3>)>>
+
+<ROUTINE FOYER-EXIT ()
+ <COND (<FSET? ,BUTLER ,INDOORSBIT>
+ <COND (<EQUAL? ,P-WALK-DIR ,P?SOUTH>
+ <BALLROOM-ENTRANCE>)
+ (<EQUAL? ,P-WALK-DIR ,P?WEST>
+ <RETURN ,HALL-W>)
+ (<EQUAL? ,P-WALK-DIR ,P?UP>
+ <RETURN ,STAIRTOP>)
+ (<EQUAL? ,P-WALK-DIR ,P?EAST ,P?UP>
+ <COND (<IN? ,BUTLER ,HERE>
+ <TELL
+"\"No, ma'am, that way's private.\" The butler stops you" ,PCR>
+ <RFALSE>)
+ (T
+ <RETURN ,HALL-E>)>)>)
+ (<RUNNING? ,I-BUTLER>
+ <QUEUE I-BUTLER 2>
+ <TELL
+"\"Excuse me!\" The " D ,BUTLER " pushes you
+back. \"Your invitation, please!\"" CR>
+ <RFALSE>)
+ (T
+ <QUEUE I-BUTLER 2>
+ <SETG AWAITING-FAKE-ORPHAN T>
+ <TELL
+"The butler prevents you. \"Miss... your invitation?\"" CR>
+ <RFALSE>)>>
+
+
+<ROOM BALLROOM ;"EVERYBIT = crew is rounding up dancers"
+ (IN ROOMS)
+ (DESC "Ballroom")
+ (SYNONYM FLOOR DANCE BALLRO)
+ (ADJECTIVE DANCE)
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT INDOORSBIT)
+ (NORTH PER BALLROOM-EXIT)
+ (SOUTH PER BALLROOM-EXIT)
+ (WEST PER BALLROOM-EXIT)
+ (EAST PER BALLROOM-EXIT)
+ (GLOBAL CHANDELIER VER-DOOR CREW DANCERS)
+ (ACTION BALLROOM-F)>
+
+<GLOBAL DANCED-WITH <>> ;"Keeps track of your dances, with Nick, with Lafond"
+
+<ROUTINE BALLROOM-F ("OPTIONAL" (RARG <>))
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <COND (,ENDGAME
+ <COND (<QUEUED? ,I-ENDGAME>
+ <TELL
+CTHE ,DANCERS "s stare amazed at Lafond's limp body,
+some disbelieving, some hopeful, all stock still.
+The pirates have fled to the darkness of the lawn">)
+ (T
+ <TELL
+"All is chaos, screaming women fainting on terrified men.
+Several of Jamison's scruffiest men round the dancers
+into a huddle in the center of" ,DANCE-FLOOR>)>)
+ (T
+ <TELL
+"Lafond's party is well attended: you can hardly move for the crush.
+However, the room is oddly silent, no talk interrupting the musical
+efforts of" T ,MUSICIANS " to the west. Despite the heat, no one ventures
+south to the veranda, nor through the opening east.
+The foyer is north of you">)>
+ <TELL ".">)
+ (<EQUAL? .RARG ,M-ENTER>
+ <COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
+ <SETG HERO-CTR 1>
+ <QUEUE I-HDANCE -1>)
+ (<AND <NOT ,PARTNER>
+ <EQUAL? ,DANCED-WITH ,HERO>
+ <NOT ,ENDGAME>>
+ <SETG LAFOND-CTR 1>
+ <QUEUE I-LDANCE 1>
+ <RFALSE>)
+ (T
+ <RFALSE>)>)
+ (<EQUAL? .RARG ,M-BEG>
+ <COND (<AND <EQUAL? ,CREW ,PRSO ,PRSI>
+ <NOT <NOUN-USED ,W?MAN ,CREW>>
+ <NOT <VERB? ASK-ABOUT>>
+ <NOT <PRSO? ,HERO ,LAFOND>>
+ <NOT <FSET? ,BALLROOM ,EVERYBIT>>>
+ <TELL ,YOU-CANT-SEE-ANY "of Jamison's crew here" ,PCR>
+ <STOP>)
+ (<AND <VERB? ASK-FOR>
+ <IN? ,PRSO ,HERE>
+ <PRSI? ,BALLROOM>>
+ <PERFORM ,V?DANCE ,PRSO>
+ <RTRUE>)
+ (<AND <VERB? PUT>
+ <PRSI? ,BALLROOM>>
+ <PERFORM ,V?DROP ,PRSO>
+ <RTRUE>)
+ (<AND <EQUAL? ,PARTNER ,HERO ,LAFOND>
+ <TOUCHING? ,VER-DOOR>>
+ <TELL D ,PARTNER " sweeps you past." CR>)
+ (T
+ <RFALSE>)>)
+ (<AND <EQUAL? .RARG ,M-END>
+ ,COOKIE-LOOKING>
+ <I-COOKIE T>)>>
+
+<ROUTINE BALLROOM-EXIT ()
+ <COND (<EQUAL? ,PARTNER ,HERO>
+ <TELL "\"Would you rather not dance? ">
+ <COND (<EQUAL? ,P-WALK-DIR ,P?SOUTH>
+ <TELL
+"Apparently the guests have orders not to go outside.\" Instead" T ,HERO
+" whirls and twirls you towards" TR ,MUSICIANS CR>
+ <RETURN ,ORCHESTRA>)
+ (<EQUAL? ,P-WALK-DIR ,P?EAST>
+ <TELL
+"Hungry?\" He guides you into the supper room, then tsks in dismay.
+\"They've cleared the food away already!\"" CR CR>
+ <RETURN ,SUPPER-ROOM>)
+ (<EQUAL? ,P-WALK-DIR ,P?WEST>
+ <TELL
+"Let's listen to the music while we talk.\" He walks
+you towards" TR ,MUSICIANS CR>
+ <RETURN ,ORCHESTRA>)
+ (T
+ <TELL
+"It wouldn't be wise to put ourselves into the butler's sight, though.\"
+He escorts you into the supper-room instead" ,PCR CR>
+ <RETURN ,SUPPER-ROOM>)>)
+ (<QUEUED? ,I-CKILLS-DAD>
+ <TELL D ,LAFOND
+" stops you. \"Stay until we hear the sad news.\"" CR>
+ <RFALSE>)
+ (<EQUAL? ,LAFOND ,PARTNER>
+ ;<SETG PARTNER <>>
+ ;<SETG DANCED-WITH ,BLOWN>
+ ;<DEQUEUE I-SUMMONS>
+ ;<REMOVE ,LAFOND>
+ <TELL
+"\"How dare you walk away!\" Lafond grips your arm,
+so you may not leave the floor" ,PCR>
+ <RFALSE>)
+ (<AND <RUNNING? ,I-LDANCE>
+ <EQUAL? <LOC ,LAFOND> ,HERE>
+ ;<NOT <EQUAL? ,PARTNER ,LAFOND>>>
+ <SETG QUESTIONER ,LAFOND>
+ <TELL
+"\"Your answer, cherie?\" His twists your wrist mercilessly" ,PCR>
+ <RFALSE>)>
+ <COND (<EQUAL? ,P-WALK-DIR ,P?NORTH>
+ <RETURN ,FOYER>)
+ (<EQUAL? ,P-WALK-DIR ,P?SOUTH>
+ <COND (<FSET? ,VER-DOOR ,OPENBIT>
+ <RETURN ,VERANDA>)
+ (T
+ <TELL CTHE ,DOOR ,IS-CLOSED ,PCR>
+ <RFALSE>)>)
+ (<EQUAL? ,P-WALK-DIR ,P?WEST>
+ <RETURN ,ORCHESTRA>)
+ (<EQUAL? ,P-WALK-DIR ,P?EAST>
+ <RETURN ,SUPPER-ROOM>)>>
+
+<OBJECT MUSICIANS
+ (IN LOCAL-GLOBALS)
+ (DESC "musicians")
+ (SYNONYM MUSICIANS ORCHESTRA)
+ (FLAGS ACTORBIT)
+ (ACTION MUSICIANS-F)>
+
+<ROUTINE MUSICIANS-F ()
+ <COND (<VERB? EXAMINE LISTEN>
+ <COND (,ENDGAME
+ <TELL
+"The musicians are with" T ,DANCERS "s in the ballroom." CR>)
+ (T
+ <TELL "The small band is made up of a virginal,
+bass and treble viols, and several recorders. They are playing \"I Want
+to Kiss Your Hand,\" by J.S. Beatle." CR>)>)
+ (T
+ <UNIMPORTANT-THING>
+ <STOP>)>>
+
+<ROOM ORCHESTRA
+ (IN ROOMS)
+ (DESC "Orchestra")
+ (FLAGS ONBIT RLANDBIT NARTICLEBIT INDOORSBIT)
+ (EAST TO BALLROOM)
+ (SOUTH "The windows overlooking the veranda do not open.")
+ (GLOBAL WINDOW DANCERS MUSICIANS)
+ (ACTION ORCHESTRA-F)>
+
+<ROUTINE ORCHESTRA-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <COND (<AND ,ENDGAME
+ <NOT <QUEUED? ,I-ENDGAME>>>
+ <TELL "This end of the ballroom is empty of people.">)
+ (T
+ <TELL
+"A few older women and young girls sit near the small orchestra
+assembled at this end of the ballroom.">)>)
+ (<AND <EQUAL? .RARG ,M-END>
+ ,COOKIE-LOOKING>
+ <I-COOKIE T>)>>
+
+<ROOM SUPPER-ROOM
+ (IN ROOMS)
+ (DESC "Supper Room")
+ (LDESC
+"One long table set across the north entrance indicates that
+supper was served here earlier. West of you is the ballroom.")
+ (FLAGS INDOORSBIT ONBIT RLANDBIT NARTICLEBIT)
+ (NORTH PER UNDER-TABLE)
+ (WEST PER BALLROOM-ENTRANCE)
+ (SOUTH "The windows overlooking the veranda do not open.")
+ (GLOBAL LONG-TABLE WINDOW)
+ (ACTION SUPPER-ROOM-F)>
+
+<ROUTINE SUPPER-ROOM-F (RARG)
+ <COND (<EQUAL? .RARG ,M-ENTER>
+ <MOVE ,LONG-TABLE ,HERE>)
+ (<AND <EQUAL? .RARG ,M-END>
+ ,COOKIE-LOOKING>
+ <I-COOKIE T>)>>
+
+<ROUTINE UNDER-TABLE ()
+ <TELL
+"You scuttle underneath" TR ,LONG-TABLE CR>
+ <COND (<EQUAL? ,HERE ,HALL-E>
+ <RETURN ,SUPPER-ROOM>)
+ (T
+ <RETURN ,HALL-E>)>>
+
+<OBJECT LONG-TABLE
+ (DESC "long table")
+ (SYNONYM TABLE)
+ (ADJECTIVE LONG)
+ (CAPACITY 50)
+ (FLAGS SURFACEBIT CONTBIT SEARCHBIT OPENBIT NDESCBIT)
+ ;(ACTION LONG-TABLE-F)>
+
+;<ROUTINE LONG-TABLE-F ()
+ <COND (<>)>>
+
+<ROOM HALL-E
+ (IN ROOMS)
+ (DESC "East Hallway")
+ (LDESC
+"The carpeted hallway turns from west to north here, extending into the
+east wing. A long table blocks the way south.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (NORTH TO LIBRARY)
+ (SOUTH PER UNDER-TABLE)
+ (WEST TO FOYER)
+ (GLOBAL LONG-TABLE)
+ (ACTION HALL-E-F)>
+
+<ROUTINE HALL-E-F (RARG)
+ <COND (<AND <EQUAL? .RARG ,M-END>
+ <NOT <FSET? ,BUTLER ,DEADBIT>>
+ <IN? ,BUTLER ,FOYER>>
+ <COND (<NOT <FSET? ,GOWN ,WORNBIT>>
+ <KICKED-OUT>)
+ (<NOT <FSET? ,BUTLER ,INDOORSBIT>>
+ <TELL ,INDENT
+"A " D ,BUTLER " takes your arm, pulling you
+into the foyer. \"I have not seen your " D ,INVITE ", Miss.\"" CR CR>
+ <GOTO ,FOYER>)
+ (T
+ <RFALSE>)>)
+ (<EQUAL? .RARG ,M-ENTER>
+ <MOVE ,LONG-TABLE ,HALL-E>)>>
+
+
+<ROOM LIBRARY ;"EVERYBIT = Butler has seen open portrait."
+ (IN ROOMS)
+ (DESC "Library")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (SYNONYM LIBRARY)
+ ;(EAST PER LWINDOW-EXIT)
+ (EAST TO BY-HOUSE IF LIB-WINDOW IS OPEN)
+ (SOUTH TO HALL-E)
+ (IN PER PORTRAIT-EXIT)
+ (NORTH PER PORTRAIT-EXIT)
+ (GLOBAL PORTRAIT WINDOW DESK DRAPES)
+ (ACTION LIBRARY-F)>
+
+<ROUTINE LIBRARY-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"Everything in this private office is larger than life. A huge " D ,PORTRAIT>
+ <COND (<FSET? ,PORTRAIT ,OPENBIT>
+ <TELL ", slightly awry from the wall,">)>
+ <TELL
+" decorates the north side, and black drapes mask the east wall. Bookshelves
+tower over a cherry desk, and a massive wooden globe squats in a corner.">
+ <COND (<NOT ,ENDGAME>
+ <TELL
+" Music wafts distantly from the ballroom across the hall to the south.">)>
+ <COND (<NOT <FSET? ,KNOB ,DEADBIT>>
+ <TELL CR ,INDENT "A knob juts out of the wall.">)
+ (T
+ <RTRUE>)>)
+ (<AND <EQUAL? .RARG ,M-ENTER>
+ <IN? ,COOKIE ,HERE>
+ <NOT <FSET? ,COOKIE ,EVERYBIT>>>
+ <FSET ,COOKIE ,EVERYBIT>
+ <TELL
+,SURPRISE D ,COOKIE " is here, studying the walls.
+\"Cap'n said somethin' about a secret door, mebbe.\"" CR CR>)
+ (<EQUAL? .RARG ,M-END>
+ <COND ;(<AND <FSET? ,LIBRARY ,EVERYBIT> ;"can't get anymore"
+ <NOT <FSET? ,BUTLER ,DEADBIT>>>
+ <TELL
+"The butler stands nearby, \"I've been waiting for you">
+ <COND (<EQUAL? <LOC ,DAD> ,HERE>
+ <TELL " and the old man">)>
+ <TELL ", ">
+ <COND (,BOY-DRESS?
+ <TELL "brat">)
+ (<FSET? ,GOWN ,WORNBIT>
+ <TELL "trollop">)
+ (T
+ <TELL "wench">)>
+ <TELL "!\" ">
+ <FWTD ,SOMETHING-HITS-YOU>)
+ (<IN? ,DAD ,HERE>
+ <COND (<AND <EQUAL? ,DANCED-WITH ,LAFOND>
+ <NOT ,HERO-ARRESTED>>
+ <QUEUE I-HARRESTED 2>)>
+ <QUEUE I-CATCH-KISS 25>
+ <FSET ,FOREST ,EVERYBIT>
+ <FSET ,LIB-WINDOW ,OPENBIT>
+ <SETG SLAT-OPEN T>
+ <FCLEAR ,HOLE ,INVISIBLE>
+ <FSET ,SLAT ,NDESCBIT>
+ <REMOVE ,DAD>
+ <REMOVE ,LUCY>
+ <TELL ,INDENT
+"\"A " D ,WINDOW "!\" your father exclaims. \"I shall creep out to the
+kitchen. Get the Falcon.\" He climbs out" TR ,WINDOW>)
+ (<AND <IN? ,COOKIE ,HERE>
+ <RUNNING? ,I-DUEL>>
+ <MOVE ,COOKIE ,GALLERY>
+ <REMOVE ,CREW> ;"get them out of ballroom"
+ <TELL ,INDENT
+D ,COOKIE " cocks his head. \"What is that noise? Is Cap'n duelling
+Lafond? There's no chance he could win as beaten as he is!\" Cookie races
+out towards the ballroom" ,PCR>)
+ (T
+ <RFALSE>)>)>>
+
+;<ROUTINE LWINDOW-EXIT ()
+ <COND (<NOT <FSET? ,LIB-WINDOW ,OPENBIT>>
+ <TELL CTHE ,WINDOW ,IS-CLOSED ,PCR>
+ <RETURN ,FALSE>)
+ (T
+ ;<COND (<HELD? ,HAT>
+ <MOVE ,HAT ,LIBRARY>
+ <FCLEAR ,HAT ,WORNBIT>
+ <FSET ,HAT ,EVERYBIT>
+ <FCLEAR ,KNOB ,EVERYBIT>
+ <FSET ,KNOB ,DEADBIT>
+ <TELL
+"For safety's sake, you leave" T ,HAT " on its knob.
+Best not to show that you've been wandering" ,PCR CR>)>
+ <COND (<EQUAL? ,P-DIRECTION ,P?EAST>
+ <RETURN ,BY-HOUSE>)
+ (T
+ <RETURN ,LIBRARY>)>)>>
+
+<ROUTINE PORTRAIT-EXIT () ; "EXIT-FCN"
+ <COND (<NOT <FSET? ,PORTRAIT ,MUNGBIT>>
+ <TELL ,CANT-GO>
+ <RFALSE>)
+ (<NOT <FSET? ,PORTRAIT ,OPENBIT>>
+ <TELL CTHE ,PORTRAIT ,IS-CLOSED ,PCR>
+ <RFALSE>)
+ (T
+ <COND (<HELD? ,HAT>
+ <SAFETY-SAKE>
+ <TELL ,INDENT>)>
+ <TELL "You move beyond" T ,PORTRAIT " into the ">
+ <COND (<EQUAL? ,HERE ,STAIRWELL>
+ <TELL "library" ,PCR CR>
+ ;<COND (<HELD? ,CANDLE>
+ <MOVE ,CANDLE ,STAIRWELL>
+ <TELL
+"deposit the candle back in its sconce and move">)>
+ <RETURN ,LIBRARY>)
+ (<EQUAL? ,HERE ,LIBRARY>
+ <TELL "flickering torchlight" ,PCR CR>
+ <RETURN ,STAIRWELL>)>)>>
+
+<OBJECT DRAPES
+ (IN LOCAL-GLOBALS)
+ (DESC "drapes")
+ (SYNONYM DRAPES CURTAIN)
+ (ADJECTIVE BLACK VELVET PURPLE GOLD)
+ (FLAGS PLURALBIT NDESCBIT DOORBIT BURNBIT)
+ (ACTION DRAPES-F)>
+
+<ROUTINE DRAPES-F ()
+ <COND (<VERB? LOOK-BEHIND>
+ <COND (<EQUAL? ,HERE ,LAFS-ROOM>
+ <TELL ,THERES-NOTHING "interesting behind" TR ,DRAPES>)
+ (T
+ <TELL "In the dark behind" T ,DRAPES " is" AR ,WINDOW>)>)
+ (<VERB? OPEN PUSH MOVE>
+ <TELL ,PULL-FABRIC CR>
+ ;<TELL "You pull" T ,DRAPES " aside momentarily" ,PCR>)
+ (<VERB? CLOSE>
+ <COND (<EQUAL? ,HERE ,LIBRARY>
+ <TELL ,ALREADY-ARE>)
+ (T
+ <TELL ,BEAUTIFUL-NIGHT>)>)
+ (<VERB? EXAMINE>
+ <COND (<EQUAL? ,HERE ,LIBRARY>
+ <TELL
+"Dark drapes cover an entire wall of the room" ,PCR>)
+ (T
+ <TELL
+"The purple hangings are densely embroidered with gold" ,PCR>)>)>>
+
+;<OBJECT CANDLE
+ (IN STAIRWELL)
+ (DESC "candle")
+ (FDESC "A candle burns brightly from a sconce on the wall.")
+ (SYNONYM CANDLE)
+ (ADJECTIVE BURNING)
+ (FLAGS TAKEBIT ONBIT LIGHTBIT)
+ (ACTION CANDLE-F)>
+
+;<ROUTINE CANDLE-F ()
+ <COND (<AND <VERB? ON BURN>
+ <PRSO? ,CANDLE>>
+ <COND (<NOT ,PRSI>
+ <COND ;(<FSET? ,MATCH ,ONBIT>
+ <TELL "[with the match]" CR>
+ <PERFORM ,V?ON ,CANDLE ,MATCH>
+ <RTRUE>)
+ (<IN? ,FIRE ,HERE>
+ <TELL "[in the fire]" CR>
+ <PERFORM ,V?ON ,CANDLE ,FIRE>
+ <RTRUE>)
+ (T
+ <TELL
+"Please say what to light it with." CR>)>)
+ ;(<AND <EQUAL? ,PRSI ,MATCH>
+ <FSET? ,MATCH ,ONBIT>>
+ <TELL "The candle is ">
+ <COND (<FSET? ,CANDLE ,ONBIT>
+ <TELL "already ">)
+ (T
+ <FSET ,CANDLE ,ONBIT>)>
+ <TELL "lit" ,PCR>)
+ (T
+ <TELL
+,YOULL-HAVE-TO "light it with something that's burning, you know." CR>)>)
+ (<AND <VERB? OFF>
+ <PRSO? ,CANDLE>>
+ <COND (<FSET? ,CANDLE ,ONBIT>
+ <TELL "The flame is extinguished.">
+ <FCLEAR ,CANDLE ,ONBIT>
+ <SETG LIT <LIT? ,HERE>>
+ <COND (<NOT ,LIT>
+ <TELL " It's rather dark in here...">)>
+ <CRLF>
+ <RTRUE>)
+ (T <TELL "But" T ,CANDLE " isn't lit!" CR>)>)
+ (<AND <VERB? PUT WAVE POINT>
+ <PRSI? ,SHIP ,SHUTTERS>
+ <EQUAL? ,HERE ,LAFS-ROOM>>
+ <COND (<AND <FSET? ,CANDLE ,ONBIT>
+ <FSET? ,SHUTTERS ,OPENBIT>>
+ <FCLEAR ,CANDLE ,ONBIT>
+ <TELL
+"As you hold the candle up to the window a puff of breeze blows it out" ,PCR>)
+ (T
+ <TELL "You wave" T ,CANDLE>
+ <COND (<FSET? ,SHUTTERS ,OPENBIT>
+ <TELL " in the open window" ,PCR>)
+ (T
+ <TELL
+" behind the closed " D ,SHUTTERS ,PCR>)>)>)
+ (<VERB? EXAMINE>
+ <TELL "The candle is ">
+ <COND (<FSET? ,CANDLE ,ONBIT>
+ <TELL "burning.">)
+ (T <TELL "out.">)>
+ <CRLF>)>>
+
+<OBJECT TORCH
+ (IN LOCAL-GLOBALS)
+ (DESC "torch")
+ (SYNONYM TORCH FLAME)
+ (ADJECTIVE BURNING)
+ (FLAGS TRYTAKEBIT ONBIT LIGHTBIT)
+ (ACTION TORCH-F)>
+
+<ROUTINE TORCH-F ()
+ <COND (<VERB? EXAMINE>
+ <TELL CTHE ,TORCH " is flickering madly in the breeze." CR>)
+ (<AND <VERB? PUT PUT-ON>
+ <FSET? ,PRSI ,BURNBIT>>
+ <TELL "Mama disapproved of pyromaniacs." CR>)
+ (<TOUCHING? ,TORCH>
+ <TELL
+,YOU-CANT "reach" T ,TORCH ". Ladies don't carry them anyway." CR>
+ ;<CANT-REACH ,TORCH>)>>
+
+<GLOBAL COOKIE-HARRUMPHS " Cookie harrumphs, surprised.">
+
+<OBJECT PORTRAIT ;"MUNGBIT = Portrait has been opened once."
+ (IN LOCAL-GLOBALS)
+ (DESC "portrait")
+ (SYNONYM PORTRAIT PICTUR PAINTING DOOR)
+ (ADJECTIVE OPENING SECRET)
+ (FLAGS NDESCBIT DOORBIT)
+ (ACTION PORTRAIT-F)>
+
+<ROUTINE PORTRAIT-F ()
+ <COND (<VERB? EXAMINE>
+ <COND (<EQUAL? ,HERE ,LIBRARY>
+ <COND (<FSET? ,PORTRAIT ,OPENBIT>
+ <TELL "Cool air seeps out from" TR ,PORTRAIT>)
+ (T
+ <TELL
+CTHE ,PORTRAIT " seems familiar, and you realize it is exactly the
+picture on the front of" T ,BANKNOTE T ,LAFOND " sent you, same clothes,
+same surroundings, same pose." CR>)>)
+ (T
+ <TELL ,YOU-SEE ,THE-BACK TR ,PORTRAIT>)>)
+ (<VERB? LOOK-BEHIND>
+ <COND (<FSET? ,PORTRAIT ,OPENBIT>
+ <PERFORM ,V?EXAMINE ,PORTRAIT>
+ <RTRUE>)
+ (T
+ <TELL
+CTHE ,PORTRAIT " is firmly fastened to the wall" ,PCR>)>)
+ ;(<VERB? READ>
+ <TELL
+"The scroll in the " D ,PORTRAIT " reads, \"Jean Lafond, King
+of the West Indies.\"" CR>)
+ (<VERB? ENTER HIDE WALK>
+ <COND (<NOT <FSET? ,PORTRAIT ,MUNGBIT>>
+ <TELL
+"This is a " D ,PORTRAIT ", not a looking glass" ,PCR>)
+ (T
+ <DO-WALK ,P?IN>)>)
+ (<VERB? OPEN>
+ <COND (<FSET? ,PORTRAIT ,OPENBIT>
+ <TELL ,ALREADY-IS>)
+ (<FSET? ,PORTRAIT ,MUNGBIT>
+ <FSET ,PORTRAIT ,OPENBIT>
+ <COND (<EQUAL? ,HERE ,LIBRARY>
+ <TELL
+"Quickly you pull the book, joggle" T ,KNOB
+" and touch" T ,GLOBE ", and" T ,PORTRAIT " pops open.">
+ <COND (<IN? ,COOKIE ,HERE>
+ <TELL ,COOKIE-HARRUMPHS>)>
+ <CRLF>)
+ (T
+ <TELL
+"You push outwards on the wall, opening" TR ,PORTRAIT>)>)
+ (T
+ <TELL "Open a " D ,PORTRAIT "?!" CR>)>)
+ (<VERB? CLOSE>
+ <COND (<NOT <FSET? ,PORTRAIT ,MUNGBIT>>
+ <TELL ,HUH>)
+ (<FSET? ,PORTRAIT ,OPENBIT>
+ <FCLEAR ,PORTRAIT ,OPENBIT>
+ <FCLEAR ,POWER ,EVERYBIT>
+ <FCLEAR ,KNOB ,EVERYBIT>
+ <TELL
+CTHE ,PORTRAIT " swings shut with a tiny snap." CR>)>)>>
+
+<OBJECT GLOBE
+ (IN LIBRARY)
+ (DESC "globe")
+ (SYNONYM GLOBE SINISTRA ISLAND)
+ (ADJECTIVE WORLD ST WOODEN)
+ (FLAGS TRYTAKEBIT NDESCBIT)
+ (ACTION GLOBE-F)>
+
+<ROUTINE GLOBE-F ()
+ <COND (<OR <VERB? TOUCH PUSH>
+ <AND <VERB? PUT-ON>
+ <PRSO? ,HANDS>>>
+ <TELL "You press the ">
+ <COND (<OR <NOUN-USED ,W?SINISTRA ,GLOBE>
+ <NOUN-USED ,W?ISLAND ,GLOBE>
+ <ADJ-USED ,A?ST>>
+ <TELL
+"painted island, and it sinks into the wooden sea.">
+ <COND (<AND <FSET? ,KNOB ,EVERYBIT>
+ <FSET? ,POWER ,EVERYBIT>
+ <NOT <FSET? ,PORTRAIT ,OPENBIT>>>
+ <FSET ,PORTRAIT ,OPENBIT>
+ <COND (<NOT <FSET? ,PORTRAIT ,MUNGBIT>>
+ <FSET ,PORTRAIT ,MUNGBIT>
+ <SETG SCORE <+ ,SCORE 1>>)>
+ <TELL
+" You hear a whirr and a click and" T ,PORTRAIT " pops open. A draft of
+sea-scented air flows in from behind it.">
+ <COND (<IN? ,COOKIE ,HERE>
+ <TELL ,COOKIE-HARRUMPHS>)>)>)
+ (T
+ <TELL "globe at random.">)>
+ <CRLF>)
+ (<VERB? TAKE SET>
+ <TELL CTHE ,GLOBE " is solidly fastened to the floor." CR>)
+ (<AND <VERB? FIND>
+ <PRSI? ,GLOBE>
+ <OR <NOUN-USED ,W?SINISTRA ,GLOBE>
+ <NOUN-USED ,W?ISLAND ,GLOBE>
+ <ADJ-USED ,A?ST>>>
+ <TELL "It is in the West Indies, surrounded by blue." CR>)
+ (<VERB? EXAMINE>
+ <COND (<OR <NOUN-USED ,W?SINISTRA ,GLOBE>
+ <NOUN-USED ,W?ISLAND ,GLOBE>
+ <ADJ-USED ,A?ST>>
+ <TELL
+"A tiny replica of " D ,ISLAND " is painted on" T ,GLOBE " in greater detail
+than any other country, showing even the road from Santa Ananas to Lafond's
+mansion" ,PCR>)
+ (T
+ <TELL
+"The massive wooden globe, painted in greens and blues and white,
+describes the world as presently known" ,PCR>)>)>>
+
+<OBJECT BOOKS-GLOBAL
+ (IN LIBRARY)
+ (DESC "books")
+ (SYNONYM BOOK BOOKS)
+ (GENERIC GENERIC-BOOK)
+ (FLAGS TRYTAKEBIT NDESCBIT PLURALBIT)
+ (ACTION BOOKS-GLOBAL-F)>
+
+<ROUTINE BOOKS-GLOBAL-F ()
+ <COND (<VERB? LOOK-INSIDE READ TAKE OPEN>
+ <TELL
+"You pick one at random. You always preferred horses to
+reading, so you put it back" ,PCR>)
+ (<VERB? EXAMINE SEARCH>
+ <TELL
+"Most of the books appear unread, their pages uncut, the spines not yet
+creased. All except one, \"Treatise of Power\" by Sir Michael Villiers" ,PCR>)
+ (<VERB? MOVE PUSH>
+ <TELL ,HUH>)>>
+
+<OBJECT BOOKCASE
+ (IN LIBRARY)
+ (DESC "bookcase")
+ (SYNONYM BOOKCASE BOOKSHELF SHELF SHELVES)
+ (ADJECTIVE BOOK CASE)
+ (FLAGS NDESCBIT CONTBIT OPENBIT SEARCHBIT)
+ (CAPACITY 99)
+ (ACTION BOOKCASE-F)>
+
+<ROUTINE BOOKCASE-F ()
+ <COND (<VERB? EXAMINE LOOK-INSIDE SEARCH>
+ <PERFORM ,V?EXAMINE ,BOOKS-GLOBAL>
+ <RTRUE>)
+ (<VERB? MOVE PUSH SET>
+ <SETG AWAITING-REPLY 3>
+ <QUEUE I-REPLY 2>
+ <TELL
+"Why tamper with a " D ,BOOKCASE "? Searching for a
+secret door or some such?" CR>)
+ (<VERB? OPEN CLOSE>
+ <WASTES>)>>
+
+<OBJECT POWER ;"EVERYBIT = Book is queued to open portrait."
+ (IN BOOKCASE) ;"MUNGBIT = point given for this move."
+ (DESC "book")
+ (SYNONYM BOOK POWER)
+ (ADJECTIVE TREATISE WELL-READ)
+ (FLAGS NDESCBIT TRYTAKEBIT)
+ (GENERIC GENERIC-BOOK)
+ (ACTION POWER-F)>
+
+<ROUTINE POWER-F ()
+ <COND (<VERB? READ TAKE OPEN MOVE FIDDLE>
+ <TELL
+"You half tip" T ,POWER " out of the shelf when
+it snaps surprisingly back into place">
+ <COND (<NOT <FSET? ,POWER ,MUNGBIT>>
+ <FSET ,POWER ,MUNGBIT>
+ <SETG SCORE <+ ,SCORE 1>>)>
+ <COND (<NOT <FSET? ,POWER ,EVERYBIT>>
+ <FSET ,POWER ,EVERYBIT>
+ <TELL
+". There is a mysterious scraping sound from inside the wall">)>
+ <TELL ,PCR>)
+ (<VERB? EXAMINE>
+ <TELL
+"You gaze at \"Treatise of Power\" without taking it.
+It seems to be the only book that has been read in the library,
+the leather creased and dull with use." CR>)>>
+
+
+<ROUTINE GENERIC-BOOK (X "OPTIONAL" Y)
+ <COND (<EQUAL? ,HERE ,LIBRARY>
+ ,BOOKS-GLOBAL)>>
+
+<OBJECT KNOB ;"EVERYBIT = knob is queued to open portrait."
+ (IN LIBRARY) ;"DEADBIT = knob unseeable/NDESCBIT by another name"
+ (DESC "knob")
+ (SYNONYM KNOB)
+ (FLAGS NDESCBIT SURFACEBIT CONTBIT ;OPENBIT SEARCHBIT DEADBIT)
+ (ACTION KNOB-F)>
+
+<ROUTINE KNOB-F ()
+ <COND (<VERB? PUSH MOVE SET LOWER FIDDLE>
+ <COND (<FSET? ,KNOB ,EVERYBIT>
+ <HACK-HACK "Fiddling with">)
+ (T
+ <FSET ,KNOB ,EVERYBIT>
+ <KNOB-CAUSES-TINGLE "As you fiddle with the">)>)
+ (<AND <VERB? PUT-ON PUT>
+ <PRSO? ,HAT>>
+ <COND (<FSET? ,KNOB ,DEADBIT>
+ <TELL ,ALREADY-IS>)
+ (<NOT <HELD? ,HAT>>
+ <TELL ,YNH TR ,HAT>)
+ (T
+ <FSET ,HAT ,EVERYBIT>
+ <FSET ,KNOB ,DEADBIT>
+ <MOVE ,HAT ,LIBRARY>
+ <TELL "You prop" T ,HAT " back on" TR ,KNOB>)>)
+ (<AND <VERB? EXAMINE>
+ <FSET? ,KNOB ,DEADBIT>>
+ <TELL CTHE ,HAT " is on" TR ,KNOB>)>>
+
+<ROOM BEDROOM
+ (IN ROOMS)
+ (DESC "Bedroom")
+ (LDESC
+"Lit only with moonlight through the open window, tonight this room
+is serving as a ladies' dressing room. An exit lies to the north.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ ;(DOWN PER CLIMBING-VINE)
+ (DOWN PER CLIMBING)
+ (NORTH TO UPPER-HALL-W)
+ (GLOBAL WINDOW VINE)>
+
+<OBJECT GUEST-BED
+ (IN BEDROOM)
+ (DESC "bed")
+ (SYNONYM BED)
+ (FLAGS VEHBIT NDESCBIT CONTBIT SEARCHBIT SURFACEBIT OPENBIT)
+ (CAPACITY 100)
+ (ACTION BED-F)>
+
+<ROOM UPPER-HALL-W
+ (IN ROOMS)
+ (DESC "Upstairs Hall")
+ (LDESC "You stand in a carpeted hallway, leading east
+to a stair landing. Rooms lie north and south of you.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (NORTH TO X-ROOM)
+ (EAST TO STAIRTOP)
+ (SOUTH TO BEDROOM)>
+
+<ROOM STAIRTOP
+ (IN ROOMS)
+ (DESC "Stair Landing")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (DOWN TO FOYER)
+ (WEST TO UPPER-HALL-W)
+ (EAST TO UPPER-HALL-E)
+ (GLOBAL CHANDELIER RAILING)
+ (ACTION STAIRTOP-F)>
+
+<ROUTINE STAIRTOP-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"The east-west hallway opens here to curve into a grand staircase sweeping
+down to the foyer.">)>>
+
+;<ROUTINE old-STAIRTOP-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"The east-west hallway opens here to curve into a grand staircase sweeping
+down to the foyer. A railing to the south overlooks the ballroom.">
+ <DANCEFLOOR-DESC>)>>
+
+<ROOM X-ROOM
+ (IN ROOMS)
+ (DESC "Parlour")
+ (LDESC
+"This room is exotically furnished with a Turkey divan and chairs.
+The exit is south.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (SOUTH TO UPPER-HALL-W)>
+
+<OBJECT DIVAN
+ (IN X-ROOM)
+ (DESC "divan")
+ (SYNONYM COUCH DIVAN)
+ (ADJECTIVE TURKEY)
+ (FLAGS NDESCBIT CONTBIT SEARCHBIT SURFACEBIT)
+ (ACTION DIVAN-F)>
+
+<ROUTINE DIVAN-F ()
+ <COND (<VERB? EXAMINE>
+ <TELL
+"Backless, upholstered in Oriental silk,"
+T ,DIVAN " looks exotic and comfortable" ,PCR>)
+ (<VERB? BOARD CLIMB-ON ENTER>
+ <TELL "You haven't time to relax now." CR>)
+ (T
+ <UNIMPORTANT-THING>)
+ ;(<VERB? LOOK-INSIDE>
+ <CANT-VERB-A-PRSO "look inside">
+ ;<TELL ,YOU-CANT "look inside" AR ,DIVAN>)>>
+
+<OBJECT PAIR
+ (IN X-ROOM)
+ (DESC "pair of duelling pistols")
+ (LDESC "A pair of duelling pistols is mounted high on one wall.")
+ (SYNONYM PISTOL GUN)
+ (ADJECTIVE DUELLI)
+ (FLAGS PLURALBIT)
+ (ACTION PAIR-F)>
+
+<ROUTINE PAIR-F ()
+ <COND (<TOUCHING? ,PAIR>
+ <TELL ,YOU-CANT
+"reach them. Ladies don't carry " D ,PISTOL "s, anyway." CR>)>>
+
+<ROOM UPPER-HALL-E
+ (IN ROOMS)
+ (DESC "Upstairs Hall")
+ (LDESC "You stand in a carpeted hallway, leading west
+to a stair landing. To the north is an ornately carved door. From the
+south comes the impression of light and air.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (SOUTH TO GALLERY)
+ (NORTH TO LAFS-ROOM IF LDOOR IS OPEN)
+ (WEST TO STAIRTOP)
+ (GLOBAL LDOOR)>
+
+<OBJECT LDOOR
+ (IN LOCAL-GLOBALS)
+ (DESC "ornate door")
+ (SYNONYM DOOR LOCK)
+ (ADJECTIVE ORNATE)
+ (FLAGS NDESCBIT LOCKEDBIT DOORBIT)
+ (ACTION DOOR-F)>
+
+<ROOM LAFS-ROOM
+ (IN ROOMS)
+ (DESC "Lafond's Bedroom")
+ (FLAGS NARTICLEBIT ONBIT RLANDBIT INDOORSBIT)
+ (SOUTH PER LAFS-EXIT)
+ (GLOBAL LDOOR TABLE DRAPES SEA)
+ (ACTION LAFS-ROOM-F)>
+
+<ROUTINE LAFS-ROOM-F (RARG "AUX" THING)
+ <COND (<AND <EQUAL? .RARG ,M-BEG>
+ ,LAFOND-LOOKING>
+ <COND (<AND <G? ,LAFOND-CTR <- ,HORNY 1>> ;"(9)"
+ <NOT <PRSO? ,PINCH ,SPICES>>
+ <VERB? TAKE WEAR ;DROP>>
+ <COND (<VERB? TAKE WEAR>
+ <TELL D ,LAFOND " stops you" ,PCR>)
+ ;(<VERB? DROP>
+ <TELL ,THERES-NOTHING "to drop!" CR>
+ <STOP>)>
+ <RTRUE>)
+ (<OR <PRSI? ,BOTTLE ,LAUD>
+ <PRSO? ,BOTTLE ,LAUD>>
+ <SET THING ,BOTTLE>)
+ (<VERB? PUT WAVE POINT>
+ <COND (<EQUAL? ,MIRROR ,PRSO ,PRSI>
+ <SET THING ,MIRROR>)
+ (<EQUAL? ,TRAY ,PRSO ,PRSI>
+ <SET THING ,TRAY>)
+ (T
+ <RFALSE>)>)
+ (T
+ <RFALSE>)>
+ <REMOVE .THING>
+ <TELL
+"Lafond bounds to your side, grabbing" T .THING " out of " D ,HANDS " before
+you can use it. \"What have we here? Trying to ">
+ <COND (<EQUAL? .THING ,BOTTLE>
+ <TELL "poison " D ,ME "? Or me?">)
+ (<EQUAL? .THING ,MIRROR ,TRAY>
+ <TELL "signal for help? You are beyond help.">)>
+ <TELL "\" He throws it out" TR ,SHUTTERS>)
+ (<AND <EQUAL? .RARG ,M-ENTER>
+ <NOT <FSET? ,LAFS-ROOM ,TOUCHBIT>>>
+ <FSET ,LAFS-ROOM ,TOUCHBIT>
+ <SETG SCORE <+ ,SCORE 1>>
+ <SETG LAFOND-CTR 1>
+ <QUEUE I-LSED 1>
+ <TELL "\"Welcome, ma petite">
+ <COND (<NOT <FSET? ,GOWN ,WORNBIT>>
+ <TELL
+" -- but where is your " D ,GOWN "? Ah, chacun a son gout">)>
+ <TELL ".\" Lafond bows you in" ,PCR CR>)
+ (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+D ,LAFOND "'s bedroom shows all the outpourings of his megalomania. Royal
+hues of purple and gold weigh down the hangings on the bed and the eastward
+window, as if trying to smother the moonbeam shining in.">)>>
+
+<OBJECT CHAIR
+ (IN LAFS-ROOM)
+ (DESC "chair")
+ (SYNONYM CHAIR)
+ (FLAGS NDESCBIT VEHBIT CONTBIT SEARCHBIT SURFACEBIT OPENBIT)>
+
+<ROUTINE LAFS-EXIT ()
+ <COND (,LAFOND-LOOKING
+ <TELL
+"Lafond whirls you around. \"My pretty, you came here freely,
+but you may not leave freely.\"" CR>
+ <RFALSE>)
+ (<AND <IN? ,BUTLER ,HERE>
+ <NOT <FSET? ,BUTLER ,DEADBIT>>>
+ <TELL CTHE ,BUTLER " stops you easily" ,PCR>
+ <RFALSE>)
+ (T
+ <TELL "You ">
+ <COND (<NOT <FSET? ,LDOOR ,OPENBIT>>
+ <FSET ,LDOOR ,OPENBIT>
+ <TELL "open the door and ">)>
+ <COND (<AND <FSET? ,BUTLER ,DEADBIT>
+ <NOT <EQUAL? <LOC ,LAFOND> ,HERE>>>
+ <TELL "creep over the prostrate butler" ,PCR CR>
+ <RETURN ,UPPER-HALL-E>)
+ (T
+ <TELL
+"run out -- into" T ,BUTLER "'s barrel chest and leering grin.
+You return to the bedroom">
+ <COND (<IN? ,LAFOND ,HERE>
+ <TELL
+"." T ,LAFOND " acts as if nothing has happened" ,PCR>)
+ (T
+ <MOVE ,BUTLER ,LAFS-ROOM>
+ <TELL
+"," T ,BUTLER " following. \"The governor said you
+were not to leave this room.\"" CR>)>
+ <RFALSE>)>)>>
+
+<OBJECT LAFS-BED
+ (IN LAFS-ROOM)
+ (DESC "bed")
+ (SYNONYM BED)
+ (FLAGS VEHBIT CONTBIT SEARCHBIT SURFACEBIT OPENBIT NDESCBIT)
+ (CAPACITY 100)
+ (ACTION BED-F)>
+
+;<GLOBAL LAF-WINDOW-SEEN <>>
+
+;<GLOBAL LAFOND-SEES-WINDOW "Lafond joins you at the window. \"Is it not
+a beautiful view? I could not bear to glass it over
+-- hurricanes are a natural occurence in this kingdom, and as king, I
+must learn to conquer them.\"">
+
+<OBJECT SHUTTERS
+ (IN LAFS-ROOM)
+ (DESC "shutters")
+ (SYNONYM SHUTTERS SILL WINDOW)
+ (ADJECTIVE WOODEN)
+ (FLAGS NDESCBIT DOORBIT PLURALBIT OPENBIT)
+ (ACTION SHUTTERS-F)>
+
+<ROUTINE SHUTTERS-F ()
+ <COND (<VERB? ENTER EXIT DISEMBARK LEAP-OFF BOARD>
+ <TELL
+"One look at the sheer drop, from sill to hedge to
+jagged rocks far below, is enough to dissuade you." CR>)
+ (<VERB? LOOK-INSIDE>
+ <TELL
+"The full moon is high in the night sky.
+Some distance out from the shallow curve of the island, ">
+ <COND ;(<G? ,SHIP-LOC 8>
+ <TELL
+"a black empty hulk rests near black, sharp silhouetted reefs">)
+ (<FSET? ,SHIP ,MUNGBIT>
+ <TELL
+"black reefs catch the full force of the sea">)
+ (T
+ <TELL
+"you see the slow swelling of sails,
+grey turning black turning grey, on" T ,SHIP>)>
+ <TELL ".">
+ ;<COND (<AND <IN? ,LAFOND ,HERE>
+ <NOT ,LAF-WINDOW-SEEN>>
+ <SETG LAF-WINDOW-SEEN T>
+ <TELL CR ,INDENT ,LAFOND-SEES-WINDOW>)>
+ <CRLF>)
+ (<VERB? EXAMINE>
+ <TELL
+"Old fashioned wooden " D ,SHUTTERS ", not glass, fill" T ,WINDOW " frame.
+A dusty " D ,MOONBEAM " swirls in, setting alight threads of gold embroidered
+in" TR ,DRAPES>
+ ;<COND (<FSET? ,SHUTTERS ,OPENBIT>
+ <TELL
+"A dusty " D ,MOONBEAM " swirls through" T ,SHUTTERS ", setting alight
+threads of gold embroidered in" TR ,DRAPES>)
+ (T
+ <TELL CTHE ,SHUTTERS " are closed" ,PCR>)>
+ ;<COND (<AND <IN? ,LAFOND ,HERE>
+ <NOT ,LAF-WINDOW-SEEN>>
+ <SETG LAF-WINDOW-SEEN T>
+ <TELL ,INDENT ,LAFOND-SEES-WINDOW CR>)
+ (T
+ <RTRUE>)>)
+ (<AND <VERB? SPOINT>
+ <PRSO? ,SHIP>>
+ <PROPOSE>)
+ (<VERB? CLOSE>
+ <TELL ,BEAUTIFUL-NIGHT>)
+ (<VERB? PUT-THROUGH>
+ <COND (<PRSO? ,HANDS>
+ <TELL ,HUH>)
+ (<AND <PRSO? ,FLAGON ,BLUE-GLASS ,GREEN-GLASS>
+ <IN? ,LAFOND ,HERE>>
+ <TELL D ,LAFOND " stops you." CR>)
+ (T
+ <PUT-OBJ-THRU-WINDOW>)>)
+ ;(<VERB? OPEN CLOSE>
+ <OPEN-CLOSE ,SHUTTERS <> "You close the shutters, blocking
+out the night, moonlight, and fresh air. The room gets darker and closer">)>>
+
+<OBJECT TABLE
+ (IN LAFS-ROOM)
+ (DESC "table")
+ (LDESC
+"A lace-covered table crouches beside a wing-backed chair in one corner.")
+ (SYNONYM TABLE)
+ (ADJECTIVE LACE-COVERED LACE COVERED WOODEN)
+ (FLAGS OPENBIT SURFACEBIT CONTBIT SEARCHBIT)
+ (CAPACITY 14)
+ ;(ACTION TABLE-F)>
+
+;<ROUTINE TABLE-F ("OPTIONAL" (OARG <>)) T>
+
+<GLOBAL HOLDING-PINCH <>>
+
+<OBJECT PINCH
+ (IN SPICES)
+ (DESC "pinch of spices")
+ (SYNONYM PINCH SPICE SPICES PEPPER)
+ (FLAGS TRYTAKEBIT TAKEBIT)
+ (GENERIC GEN-SPICES)
+ (SIZE 1)
+ (ACTION SPICES-F)>
+
+<ROUTINE GEN-SPICES ()
+ <COND (<HELD? ,PINCH>
+ <RETURN ,PINCH>)
+ (T
+ <RETURN ,SPICES>)>>
+
+<OBJECT SPICES
+ (IN WELL)
+ (DESC "spices")
+ (SYNONYM SPICE SPICES PEPPER)
+ (ADJECTIVE PINCH)
+ (FLAGS TAKEBIT NDESCBIT PLURALBIT ;NARTICLEBIT)
+ (GENERIC GEN-SPICES)
+ (SIZE 2)
+ (ACTION SPICES-F)>
+
+<ROUTINE SPICES-F ()
+ <COND (<VERB? TAKE>
+ <COND (<IN? ,PINCH ,PROTAGONIST>
+ <TELL ,YOU-HAVE-ALREADY AR ,PINCH>)
+ (T
+ <MOVE ,PINCH ,PROTAGONIST>
+ <FSET ,PINCH ,TOUCHBIT>
+ <SETG HOLDING-PINCH T>
+ <QUEUE I-SPICE-DROP 3>
+ <TELL
+"You take" A ,PINCH " between your thumb and forefinger" ,PCR>)>)
+ (<VERB? EXAMINE>
+ <COND (<IN? ,PINCH ,PROTAGONIST>
+ <TELL
+"You are holding" A ,PINCH ". ">
+ <COND (<AND <HELD? ,TRAY ,HERE>
+ <EQUAL? <LOC ,SPICES> ,WELL>>
+ <TELL "More is in" T ,WELL " of" TR ,TRAY>)>
+ <CRLF>)
+ (T
+ <PERFORM ,V?EXAMINE ,WELL>
+ <RTRUE>)>)
+ (<VERB? EAT>
+ <MOVE ,PINCH ,SPICES>
+ <TELL "Your eyes start to water" ,PCR>)
+ (<VERB? SMELL>
+ <MOVE ,PINCH ,SPICES>
+ <TELL
+"You take a sharp sniff of" T ,SPICES " and sneeze, until "
+D ,EYES " fill with tears" ,PCR>)
+ ;(<AND <VERB? PUT PUT-ON>
+ <PRSI? ,LAFOND>
+ <NOT <FSET? ,LAFOND ,DEADBIT>>>
+ <TELL "He brushes himself off" ,PCR>)
+ (<AND <VERB? THROW>
+ ,PRSI
+ <NOT <PRSI? ,SPICES>>>
+ <PERFORM ,V?THROW-AT ,PRSO ,PRSI>
+ <RTRUE>)
+ (<VERB? BLOW PUT-ON THROW-AT>
+ <COND (<IN? ,PINCH ,PROTAGONIST>
+ <COND (<AND <PRSI? ,BUTLER>
+ ;<EQUAL? <LOC ,BUTLER> ,HERE>
+ <NOT <FSET? ,BUTLER ,DEADBIT>>>
+ <TELL
+"You try to get close enough to" T ,BUTLER ", but
+he backs off. \"That wouldn't be seemly, Miss.\"" CR>
+ <RTRUE>)
+ (<PRSI? ,ME>
+ <IMPOSSIBLES>
+ <RTRUE>)
+ (<PRSI? ,LUCY ,COOKIE ,DAD>
+ <TELL ,UNLADY>
+ <RTRUE>)
+ (<AND <PRSI? ,CRULLEY>
+ <EQUAL? <LOC ,CRULLEY> ,DUNGEON>>
+ <TELL
+D ,CRULLEY " snaps the whip at your elbow. \"Keep away from me!\"" CR>
+ <RTRUE>)>
+ <TELL
+"You blow" T ,SPICES " off your fingertips">
+ <MOVE ,PINCH ,SPICES>
+ <COND (<OR <NOT ,PRSI>
+ <FSET? ,PRSI ,DEADBIT>>
+ <TELL ,PCR>)
+ (<AND <EQUAL? ,PRSI ,LAFOND>
+ <EQUAL? ,HERE ,LAFS-ROOM>
+ ;<IN? ,LAFOND ,HERE>>
+ <SETG SCORE <+ ,SCORE 1>>
+ <MOVE ,PINCH ,SPICES>
+ <REMOVE ,LAFOND>
+ <SET LAFOND-LOOKING <>>
+ <DEQUEUE I-LSED>
+ <DEQUEUE I-WONT-DRINK>
+ <QUEUE I-LRETURNS 15>
+ <FSET ,LDOOR ,OPENBIT>
+ <REMOVE ,LAF-GLASS>
+ ;<COND (<HELD? ,BLUE-GLASS>
+ <REMOVE ,GREEN-GLASS>)
+ (T
+ <REMOVE ,BLUE-GLASS>)>
+ <TELL
+", directly into Lafond's face. He sneezes, his eyes watering from the heat
+of the peppers. Reaching blindly for some wine, he instead upsets the table,
+shattering a glass. Lafond stumbles cursing out of the room, in search of
+relief">
+ <COND (<G? ,LAFOND-CTR ,HORNY>
+ <MOVE ,PROTAGONIST ,HERE>
+ <MOVE ,RETICULE ,PROTAGONIST>
+ <MOVE ,CHEMISE ,PROTAGONIST>
+ <FCLEAR ,CHEMISE ,EVERYBIT>
+ <FSET ,CHEMISE ,WORNBIT>
+ <MOVE ,SHOES ,PROTAGONIST>
+ <FSET ,SHOES ,WORNBIT>
+ <TELL
+". You stand up, quickly pulling on" T ,CHEMISE>)>
+ <TELL ,PCR>)
+ (T
+ <TELL " at" T ,PRSI ". " ,NOTHING-HAPPENS>)>)
+ (T
+ <TELL ,YNH " any " D ,SPICES ,PCR>)>)>>
+
+<ROUTINE I-LRETURNS ()
+ <COND (<AND <OR <EQUAL? ,HERE ,UPPER-HALL-E ,LAFS-ROOM>
+ <FSET? ,SHIP ,MUNGBIT>>
+ <NOT <IN? ,COOKIE ,HERE>>>
+ <JIGS-UP
+" Roaring anger and revenge, Lafond runs in, pouncing upon you.
+Your death, when it comes, is wished for.">)
+ (T
+ <RFALSE>)>>
+
+<ROUTINE I-SPICE-DROP ()
+ <COND (<IN? ,PINCH ,PROTAGONIST>
+ <MOVE ,PINCH ,SPICES>
+ <TELL ,INDENT
+"The spices dribble out from between your fingers" ,PCR>)
+ (T
+ <RFALSE>)>>
+
+<OBJECT TRAY
+ (DESC "silver tray")
+ (SYNONYM TRAY)
+ (FLAGS TAKEBIT OPENBIT SURFACEBIT SEARCHBIT TRANSBIT)
+ (ACTION TRAY-F)>
+
+<ROUTINE TRAY-F ()
+ <COND (<VERB? EXAMINE>
+ <TELL
+"Cabbage leaves are etched onto the mirror-bright " D ,TRAY ", forming
+a well in the center where the metallic stalks meet.">
+ <COND (<EQUAL? <LOC ,CHICKEN> ,TRAY>
+ <TELL
+" Some " D ,CHICKEN " is heaped around the dry spices filling" TR ,WELL>)
+ (T
+ <CRLF>)>)
+ (<AND <VERB? PUT POINT>
+ <PRSI? ,SHIP ,SHUTTERS ,MOONBEAM>>
+ <SIGNAL-SHIP ,TRAY>)
+ (<VERB? EMPTY>
+ <TELL "You have no other way of carrying" TR ,CHICKEN>)
+ (<AND <VERB? PUT PUT-ON>
+ <PRSI? ,TRAY>>
+ <TELL
+"Because of the metal work, nothing sits flat on" TR ,TRAY>)>>
+
+<OBJECT WELL
+ (IN TRAY)
+ (DESC "well")
+ (SYNONYM WELL)
+ (ADJECTIVE SPICE SILVER)
+ (GENERIC GEN-WELL)
+ (FLAGS OPENBIT NDESCBIT CONTBIT SEARCHBIT)
+ (ACTION WELL-F)>
+
+<ROUTINE WELL-F ()
+ <COND (<VERB? EXAMINE LOOK-INSIDE>
+ <COND (<IN? ,SPICES ,WELL>
+ <TELL
+CTHE ,WELL " in" T ,TRAY " is filled with a mixture of
+salt and other spices, predominantly red and black pepper" ,PCR>)
+ (T
+ <TELL "It is empty." CR>)>)
+ (<VERB? TAKE>
+ <TELL CTHE ,WELL " is part of the tray!" CR>)>>
+
+<OBJECT CHICKEN
+ (IN TRAY)
+ (DESC "cold chicken")
+ (SYNONYM FOOD CHICKEN VIANDS FOWL)
+ (ADJECTIVE COLD PIECES)
+ (FLAGS TRYTAKEBIT)
+ (SIZE 3)
+ (ACTION CHICKEN-F)>
+
+<ROUTINE CHICKEN-F ()
+ <COND (<VERB? EAT TAKE>
+ <TELL
+"You sprinkle some " D ,SPICES " on a wing and nibble at it. The peppery heat
+hits you like a wave, leaving you gasping, eyes watering" ,PCR>)
+ (<VERB? EXAMINE>
+ <COND (<IN? ,CHICKEN ,TRAY>
+ ;<TELL
+"Mounds of " D ,CHICKEN " are heaped upon" TR ,TRAY>
+ <PERFORM ,V?EXAMINE ,TRAY>
+ <RTRUE>)
+ (T
+ <TELL CTHE ,CHICKEN " looks tasty" ,PCR>)>)
+ (<AND <VERB? PUT-ON>
+ <PRSO? ,SPICES ,PINCH>>
+ <PERFORM ,V?EAT ,CHICKEN>
+ <RTRUE>)
+ (<AND <VERB? PUT>
+ <PRSO? ,CHICKEN>>
+ <PERFORM ,V?EAT ,CHICKEN>
+ <RTRUE>)>>
+
+<OBJECT FLAGON
+ (IN TABLE)
+ (DESC "flagon")
+ (SYNONYM FLAGON)
+ ;(ADJECTIVE SILVER)
+ (FLAGS TRYTAKEBIT TAKEBIT CONTBIT SEARCHBIT OPENBIT)
+ (CONTENTS 1)
+ (SIZE 3)
+ (ACTION FLAGON-F)>
+
+<ROUTINE FLAGON-F () ;"Formerly CANTEEN-FCN"
+ <COND (<VERB? SHAKE LOOK-INSIDE EXAMINE>
+ <TELL "Some wine sloshes around inside." CR>
+ ;<COND (<AND <IN? ,WINE ,FLAGON>
+ <G? ,WINE-LEFT 0>>
+ <TELL "Some wine sloshes around inside." CR>)
+ (T
+ <TELL CTHE ,FLAGON " is empty." CR>)>)
+ (<AND <VERB? TAKE>
+ <FSET? ,FLAGON ,TRYTAKEBIT>>
+ <TELL
+"Lafond takes it from you, setting it on" TR ,TABLE>)
+ (<AND <VERB? DROP>
+ <EQUAL? ,HERE ,LAFS-ROOM>>
+ <MOVE ,FLAGON ,TABLE>
+ <TELL "You set" T ,FLAGON " on" TR ,TABLE>)
+ (<AND <VERB? EMPTY THROW>
+ <EQUAL? ,HERE ,LAFS-ROOM>
+ <IN? ,LAFOND ,HERE>>
+ <FWTD ,SMACK-YOUR-FACE>)
+ (<VERB? DRINK-FROM>
+ ;<SETG AWAITING-REPLY 2>
+ ;<QUEUE I-REPLY 2>
+ <TELL ,UNLADY>)>>
+
+<OBJECT WINE
+ (IN FLAGON)
+ (DESC "quantity of wine")
+ (SYNONYM WINE)
+ (FLAGS TRYTAKEBIT NDESCBIT)
+ (SIZE 1)
+ (ACTION WINE-F)>
+
+;<GLOBAL WINE-LEFT 10>
+
+<ROUTINE WINE-F ()
+ <COND (<VERB? EAT DRINK GIVE SHOW>
+ <COND (<HELD? ,BLUE-GLASS>
+ <IMBIBE-WINE ,BLUE-GLASS>)
+ (<HELD? ,GREEN-GLASS>
+ <IMBIBE-WINE ,GREEN-GLASS>)
+ (T
+ <TELL ,YNH " a goblet of wine!" CR>)>)
+ (<AND <PRSO? ,WINE>
+ <VERB? POUR>>
+ <COND ;(<L? ,WINE-LEFT 1>
+ <TELL "There's no wine left" ,PCR>)
+ (<NOT ,PRSI>
+ <COND (<AND <EQUAL? ,P-PRSA-WORD ,W?SPILL>
+ <EQUAL? ,HERE ,LAFS-ROOM>
+ <IN? ,LAFOND ,HERE>>
+ <FWTD ,SMACK-YOUR-FACE>)
+ (T
+ <SPECIFY-WHAT "pour" ,PRSO>)>)
+ (<PRSI? ,FLAGON>
+ <TELL
+"It's not sanitary to pour wine back into" TR ,FLAGON>)
+ (<PRSI? ,BLUE-GLASS ,GREEN-GLASS>
+ <COND (<EQUAL? <GETP ,PRSI ,P?CONTENTS>
+ ,WINED ,W-P>
+ <TELL "It is already full!" CR>
+ <RTRUE>)
+ (T
+ <POUR-WINE ,PRSI>)>)
+ (T
+ <TELL ,POLITE-SOCIETY>)>)
+ (<AND <VERB? POUR-FROM WRING>
+ <PRSO? ,WINE>>
+ <SPECIFY-WHAT "pour" ,PRSO>)
+ (<VERB? DROP THROW>
+ <COND (<AND <EQUAL? ,HERE ,LAFS-ROOM>
+ <IN? ,LAFOND ,HERE>>
+ <LAFS-DROP>)
+ (<AND <HELD? ,BLUE-GLASS>
+ <G? <GETP ,BLUE-GLASS ,P?CONTENTS> 0>>
+ <PERFORM ,V?DROP ,BLUE-GLASS>
+ <RTRUE>)
+ (<AND <HELD? ,GREEN-GLASS>
+ <G? <GETP ,GREEN-GLASS ,P?CONTENTS> 0>>
+ <PERFORM ,V?DROP ,GREEN-GLASS>
+ <RTRUE>)
+ (T
+ <TELL ,YNH " any wine!" CR>)>)>>
+
+<ROUTINE IMBIBE-WINE (VESSEL)
+ <COND (<EQUAL? <GETP .VESSEL ,P?CONTENTS> 0 ,POISONED>
+ <TELL "There is no wine in" TR .VESSEL>
+ <RTRUE>)
+ (<VERB? GIVE SHOW>
+ <PERFORM ,V?GIVE .VESSEL ,PRSI>
+ <RTRUE>)
+ (<AND <EQUAL? <GETP .VESSEL ,P?CONTENTS> ,W-P>
+ <NOT <QUEUED? ,I-SLEEP>>>
+ <QUEUE I-SLEEP 2>)>
+ <SETG REACTION ,REACTION-POSITIVE>
+ <PUTP .VESSEL ,P?CONTENTS 0>
+ <TELL "You empty" T .VESSEL " of wine" ,PCR>>
+
+<ROUTINE POUR-WINE (VESSEL "OPTIONAL" (LAFOND-POURS <>))
+ <COND (<EQUAL? <GETP ,FLAGON ,P?CONTENTS> ,POISONED>
+ <PUTP .VESSEL ,P?CONTENTS ,W-P>)
+ (T
+ <PUTP .VESSEL ,P?CONTENTS <+ <GETP .VESSEL ,P?CONTENTS> 1>>)>
+ <COND (<NOT .LAFOND-POURS>
+ <TELL "You fill" T .VESSEL " with wine" ,PCR>)
+ (T
+ <RTRUE>)>>
+
+
+<GLOBAL DRUGGEE <>> ;"set to person who gets drugged"
+<GLOBAL SLEEP-CTR 0> ;"following you falling asleep"
+<GLOBAL WATCH-CTR 0> ;"watching someone else fall asleep"
+
+<ROUTINE I-WATCH-SLEEP ()
+ <COND (<NOT ,DRUGGEE>
+ <RFALSE>)
+ (<AND <EQUAL? ,DRUGGEE ,BUTLER>
+ <EQUAL? ,WATCH-CTR 2>>
+ <SETG SCORE <+ ,SCORE 1>>
+ <FSET ,BUTLER ,DEADBIT>
+ <COND (<NOT <IN? ,BUTLER ,HERE>>
+ <TELL ,INDENT
+"You hear a \"thump-phoosh,\" like someone slumping against a wall" ,PCR>)
+ (<EQUAL? ,HERE ,LAFS-ROOM>
+ <COND (<HELD? ,BOTTLE ,HERE>
+ <REMOVE ,BOTTLE>
+ <TELL ,INDENT
+"With a grunt of anger, the butler realizes he has been drugged.
+He grabs" T ,BOTTLE " and throws it out" TR ,SHUTTERS>)>
+ <TELL ,INDENT CTHE ,DRUGGEE
+ <GET ,WATCHING-SLEEPY ,WATCH-CTR> ,PCR>)>
+ <SETG DRUGGEE <>>
+ <RTRUE>)
+ (<IN? ,DRUGGEE ,HERE>
+ <TELL ,INDENT CTHE ,DRUGGEE
+ <GET ,WATCHING-SLEEPY ,WATCH-CTR> ,PCR>)>
+ <QUEUE I-WATCH-SLEEP 1>
+ <SETG WATCH-CTR <+ ,WATCH-CTR 1>>>
+
+<ROUTINE I-CROC-SLEEPS ()
+ <COND (<EQUAL? ,HERE ,ANTEROOM>
+ <TELL
+,INDENT "Without warning," T ,CROC " relaxes, eyes closed, asleep." CR>)>
+ <SETG SCORE <+ ,SCORE 1>>
+ <SETG CROC-SLEEP T>
+ <SETG MOUTH-SHUT T>
+ <RFALSE>>
+
+<GLOBAL WATCHING-SLEEPY
+ <TABLE
+ " seems to be having some problems stifling a yawn"
+ "'s eyes are getting heavier"
+ " collapses, head back, snoring loudly">>
+
+<ROUTINE I-SLEEP ()
+ <TELL ,INDENT <GET ,GETTING-SLEEPY
+ <SETG SLEEP-CTR <+ ,SLEEP-CTR 1>>> CR>
+ <COND (<L? ,SLEEP-CTR 4>
+ <QUEUE I-SLEEP 2>)
+ (<EQUAL? ,SLEEP-CTR 4>
+ <TELL ,INDENT>
+ <COND (<EQUAL? ,HERE ,ON-LADDER ,RIGGING-ROOM>
+ <JIGS-UP
+"Too drugged to keep your grip on the ropes, you slip into the sea.">)
+ (<AND <SHIP-BOARD ,HERE>
+ <OR <QUEUED? ,I-LOOK-SEA>
+ <QUEUED? ,I-SHIP-EXPLODES>>>
+ <JIGS-UP
+"You awake too late to save the ship -- or rather, you never wake at all.">)
+ (T
+ <TELL "You wake at sunrise">
+ <COND (<NOT <FSET? ,LAFS-ROOM ,TOUCHBIT>>
+ <TELL
+", too late to save your father or his friend Jamison">)>
+ <FWTD
+". The governor of St. Sinistra provides you with food and shelter;
+at least, until he grows tired of your body and your presence.">)>)
+ (T
+ <RFALSE>)>>
+
+<GLOBAL GETTING-SLEEPY
+ <TABLE
+ 0
+ "Your face convulses in a prodigious yawn."
+ "You stare into space for a long, thoughtless moment. It seems
+very hard to think, you think, but you aren't sure."
+ "Your eyes are extraordinarily dry. You blink to moisten them,
+and snort awake a minute later, drool dripping down your chin."
+ "Sleep overtakes you and you slump into unconsiousness.">>
+
+<GLOBAL USED-LAUD <>>
+;<GLOBAL FLAGON-POISONED <>>
+
+<CONSTANT WINED 1>
+<CONSTANT POISONED 2>
+<CONSTANT W-P 3>
+
+<GLOBAL LAF-GLASS GREEN-GLASS>
+<GLOBAL YOUR-GLASS BLUE-GLASS>
+
+<GLOBAL SPICED-WINE <>>
+
+<OBJECT BLUE-GLASS
+ (IN TABLE)
+ (DESC "blue goblet")
+ (SYNONYM CUP GLASS GOBLET)
+ (ADJECTIVE BLUE MY)
+ (CONTENTS 0)
+ (FLAGS TAKEBIT CONTBIT OPENBIT)
+ (SIZE 2)
+ (CAPACITY 2)
+ (ACTION GLASS-F)>
+
+<OBJECT GREEN-GLASS
+ (IN TABLE)
+ (DESC "green goblet")
+ (SYNONYM CUP GLASS GOBLET)
+ (ADJECTIVE GREEN HIS)
+ (CONTENTS 0)
+ (FLAGS TAKEBIT CONTBIT OPENBIT)
+ (SIZE 2)
+ (CAPACITY 2)
+ (ACTION GLASS-F)>
+
+<ROUTINE GLASS-F ()
+ <COND (<VERB? EXAMINE LOOK-INSIDE>
+ <TELL
+CTHE ,PRSO <GET ,GLASS-DESC <GETP ,PRSO ,P?CONTENTS>> ,PCR>)
+ (<VERB? OPEN CLOSE>
+ <IMPOSSIBLES>)
+ (<VERB? DRINK-FROM>
+ <COND (,PRSI
+ <IMBIBE-WINE ,PRSI>)
+ (T
+ <IMBIBE-WINE ,PRSO>)>)
+ (<VERB? FILL>
+ <PERFORM ,V?POUR ,WINE ,PRSO>
+ <RTRUE>)
+ (<AND <VERB? DROP>
+ <EQUAL? ,HERE ,LAFS-ROOM>>
+ <MOVE ,PRSO ,TABLE>
+ <TELL "You set" T ,PRSO " on" TR ,TABLE>)
+ (<VERB? THROW MUNG THROW-AT>
+ <LAFS-DROP>)
+ (<VERB? TAKE>
+ <COND (<PRSO? ,LAUD>
+ <IMPOSSIBLES>)
+ (<AND <PRSO? ,GREEN-GLASS>
+ <L? ,LAFOND-CTR 3>
+ <EQUAL? ,HERE ,LAFS-ROOM>>
+ <TELL D ,LAFOND " stops you. \"That is mine.\"" CR>)
+ (<OR <HELD? ,BLUE-GLASS>
+ <HELD? ,GREEN-GLASS>>
+ <TELL ,YOU-HAVE-ALREADY " a goblet" ,PCR>)
+ (T <RFALSE>)>)>>
+
+<GLOBAL GLASS-DESC
+ <TABLE
+ " is ornate and expensive"
+ " is brimming with wine"
+ " has a small pool of liquid at the bottom"
+ " is brimming with wine">>
+
+<ROUTINE LAFS-DROP ()
+ <COND (<PRSO? ,GREEN-GLASS ,BLUE-GLASS>
+ <REMOVE ,PRSO>
+ <PUTP ,PRSO ,P?CONTENTS 0>
+ <TELL
+"The delicate glass of" T ,PRSO " shatters into pieces." CR>)
+ (<PRSO? ,WINE>
+ <TELL "You dash" T ,WINE " into Lafond's face." CR>)
+ (T
+ <WASTES>)>
+ <COND (<AND <EQUAL? ,HERE ,LAFS-ROOM>
+ <IN? ,LAFOND ,HERE>>
+ <FWTD ,SMACK-YOUR-FACE>)
+ (T
+ <RTRUE>)>>
+
+<ROOM GALLERY
+ (IN ROOMS)
+ (DESC "Gallery")
+ ;(SYNONYM BALCONY GALLERY)
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (NORTH TO UPPER-HALL-E)
+ (GLOBAL CHANDELIER RAILING)
+ (ACTION GALLERY-F)>
+
+<ROUTINE GALLERY-F (RARG "AUX" (GUY <>))
+ <COND (<EQUAL? .RARG ,M-BEG>
+ <COND (<OR <TOUCHING? <SET GUY ,HERO>>
+ <TOUCHING? <SET GUY ,LAFOND>>
+ <TOUCHING? <SET GUY ,DAD>>
+ <TOUCHING? <SET GUY ,LUCY>>
+ <TOUCHING? <SET GUY ,COOKIE>>
+ <TOUCHING? <SET GUY ,RAPIER>>>
+ ;<OR <TOUCHING? ,HERO>
+ <TOUCHING? ,LAFOND>
+ <TOUCHING? ,DAD>
+ <TOUCHING? ,LUCY>
+ <TOUCHING? ,COOKIE>
+ <TOUCHING? ,RAPIER>>
+ <CANT-REACH .GUY>)
+ (<VERB? THROW-AT>
+ <TELL "You missed." CR>)
+ (<AND <PRSO? ,GALLERY>
+ <VERB? EXAMINE LOOK>>
+ <V-LOOK>)
+ (<PRSO? ,BALLROOM>
+ <COND (<VERB? EXAMINE>
+ <V-LOOK>)
+ (<VERB? ENTER LEAP>
+ <PERFORM ,V?SWING ,ROPE>
+ <RTRUE>)
+ (T
+ <RFALSE>)>)
+ (<VERB? LEAP-OFF>
+ <PERFORM ,V?SWING ,ROPE>
+ <RTRUE>)
+ (<AND <VERB? SWING>
+ <PRSO? ,ROOMS>>
+ <PERFORM ,V?SWING ,ROPE>
+ <RTRUE>)
+ (<AND <VERB? ASK-ABOUT TELL TELL-ABOUT>
+ <RUNNING? ,I-DUEL>>
+ <TELL "No one is listening to you." CR>
+ <STOP>
+ <RTRUE>
+ ;<RFATAL>)
+ (T
+ <RFALSE>)>)
+ (<AND <EQUAL? .RARG ,M-ENTER>
+ <RUNNING? ,I-DUEL>>
+ <FSET ,HERO ,NDESCBIT>
+ <FSET ,LAFOND ,NDESCBIT>
+ <FSET ,COOKIE ,NDESCBIT>)
+ (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"You are on a wide balcony overlooking the ballroom.
+A hallway lies to the north.|
+ Down on" ,DANCE-FLOOR>
+ <COND (<RUNNING? ,I-DUEL>
+ <TELL T ,DANCERS "s are pressed in a wide circle
+around Nicholas and Lafond. Cookie stands anxiously in the door to
+the veranda, near" T ,DAD " and Lucy">)
+ (<FSET? ,BALLROOM ,EVERYBIT>
+ <TELL
+" a small number of Jamison's scruffiest men are corralling" T ,DANCERS
+" into a screaming huddle in the center of the room">)
+ (T
+ <TELL
+" you see myriad colors as the guests weave
+the intricate steps of their dances">)>
+ <TELL ".">
+ ;<DANCEFLOOR-DESC>)>>
+
+;"Used by the Gallery and Stairtop."
+
+;<ROUTINE old-DANCEFLOOR-DESC ()
+ <TELL CR ,INDENT "Down on the dance floor">
+ <COND (<RUNNING? ,I-DUEL>
+ <TELL T ,DANCERS "s are pressed in a wide circle
+around Nicholas and Lafond. Cookie stands anxiously in the door to
+the veranda, near" T ,DAD " and Lucy">)
+ (<FSET? ,BALLROOM ,EVERYBIT>
+ <TELL
+" a small number of Jamison's scruffiest men are corralling" T ,DANCERS
+" into a screaming huddle in the center of the room">)
+ (T
+ <TELL
+" you see myriad colors as the guests weave
+the intricate steps of their dances">)>
+ <TELL ".">>
+
+<OBJECT RAILING
+ (IN LOCAL-GLOBALS)
+ (DESC "railing")
+ (SYNONYM RAILING)>
+
+
+<OBJECT ROPE
+ (IN GALLERY) ;"EVERYBIT = rope is tied"
+ (DESC "rope") ;"MUNGBIT = tried to cut it once"
+ (DESCFCN ROPE-F)
+ (SYNONYM ROPE)
+ (ADJECTIVE HEAVY)
+ (FLAGS TRYTAKEBIT EVERYBIT BURNBIT)
+ (ACTION ROPE-F)>
+
+<ROUTINE ROPE-F ("OPTIONAL" (OARG <>))
+ <COND (.OARG
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <TELL ,INDENT>
+ <DESC-ROPE>)
+ (<VERB? EXAMINE>
+ <DESC-ROPE>)
+ (<VERB? SWING CLIMB-DOWN CLIMB-ON>
+ <COND (<FSET? ,ROPE ,EVERYBIT>
+ <TELL CTHE ,ROPE
+" is looped over the railing -- you'd hang " D ,ME ,PCR>)
+ (<AND <IN? ,COOKIE ,HERE>
+ <NOT <RUNNING? ,I-DUEL>>>
+ <TELL
+D ,COOKIE " grabs hold of you, \"Ye lost yer mind, lass!\"" CR>)
+ (T
+ <TELL
+"\"Aaieeee!\" The cry comes uncalled to your lips
+as you swoop down from the balcony">
+ <COND (<NOT ,BOY-DRESS?>
+ <TELL ", petticoats flying,">)>
+ <TELL " on the end of" TR ,ROPE ,INDENT>
+ <COND (<RUNNING? ,I-DUEL>
+ <COND (<L? ,HERO-CTR 15>
+ <DEQUEUE I-DUEL>
+ <FCLEAR ,RAPIER ,NDESCBIT>
+ <MOVE ,HERO ,BEACH>
+ <FCLEAR ,HERO ,NDESCBIT>
+ <MOVE ,LAFOND ,BALLROOM>
+ <FCLEAR ,LAFOND ,NDESCBIT>
+ <MOVE ,DAD ,BEACH>
+ <MOVE ,LUCY ,BEACH>
+ <MOVE ,COOKIE ,BEACH>
+ <FCLEAR ,COOKIE ,NDESCBIT>
+ <FCLEAR ,BALLROOM ,EVERYBIT>
+ <FSET ,VER-DOOR ,OPENBIT>
+ <FSET ,LAFOND ,MUNGBIT>
+ <SETG SCORE <+ ,SCORE 1>>
+ <COND (<IN? ,BLUE-GLASS ,PROTAGONIST>
+ <REMOVE ,BLUE-GLASS>)
+ (<IN? ,GREEN-GLASS ,PROTAGONIST>
+ <REMOVE ,GREEN-GLASS>)>
+ <COND (<IN? ,PINCH ,PROTAGONIST>
+ <MOVE ,PINCH ,SPICES>)>
+ <ROB ,PROTAGONIST ,BALLROOM>
+ <SETG LAFOND-CTR 1>
+ <QUEUE I-ENDGAME 6>
+ <TELL
+"Your timing is perfect: you slam into Lafond just as he steps into his
+lunge. His rapier stabs wildly, piercing Nicholas's shoulder, missing his
+heart. You and Lafond roll into a snowball of ">
+ <COND (<NOT ,BOY-DRESS?>
+ <TELL "petticoats">)
+ (T
+ <TELL "breeches">)>
+ <TELL
+" and brocade, dropping everything between you.">
+ <CLEAR-SCREEN 15>
+ ;<QUEUE I-MOVE-GROUP -1>
+ <TELL ,INDENT
+"Nicholas shouts, from far away, \"Let me go! Let me deliver Lafond
+to a 'better' world.\"|
+ \"A gentleman can't kill an unconscious man!\" That is Papa's voice.
+\"And you're in no shape to continue, Nicholas. Rodney -- help my daughter.
+I'll take Nick.\"|
+ Cookie leans over you. \"We must get back to the ship, Miss. Dragoons
+surround the house.\" Nicholas, injured but still arguing, is already on the
+veranda, half-forced, half-supported by your father, shadowed by Lucy.
+Cookie helps you to your feet and rushes after them, expecting you to
+follow. Lafond lies nearby, apparently unconscious" ,PCR CR>
+ ;<TELL ,INDENT
+"Cookie shakes you awake, \"We must speed away, Miss. Dragoons are surrounding
+the house.\" Nicholas, supported by your father and Lucy, is already on the
+veranda. Cookie helps you to your feet and rushes after them, expecting you
+to follow. Lafond lies nearby, apparently unconscious" ,PCR CR>
+ <GOTO ,BALLROOM>)
+ (T
+ ;<CRLF>
+ <JIGS-UP
+"Startled, Lafond raises his sword and you fly onto
+the blade. You fall over your lover's body and expire, your
+lips on his in a kiss outlasting death.">)>)
+ (<FSET? ,BALLROOM ,EVERYBIT>
+ <JIGS-UP
+"You sweep down into the ballroom, felling dancer and pirate alike.
+Unfortunately, one of Jamison's crew, mistaking your shortcut for an
+attack, greets you with a sharpened dagger.">)
+ (T
+ ;<CRLF>
+ <FWTD
+"Other cries rise to match yours as you sweep down the center of the
+ballroom in an avalanche of dancers, knocking yourself unconscious
+against the far wall. You awaken the next morning, in the village,
+embarrassed and alone.">)>)>)
+ ;(<VERB? CUT>
+ <COND (<AND <EQUAL? ,PRSI ,ROOMS>
+ <HELD? ,DAGGER>>
+ <TELL "[with the dagger]" CR>
+ <PERFORM ,V?CUT ,ROPE ,DAGGER>
+ <RTRUE>)
+ (<PRSI? ,DAGGER>
+ <TELL
+CTHE ,DAGGER " is too dull to cut through" TR ,ROPE>
+ ;<COND (<FSET? ,ROPE ,EVERYBIT>
+ <COND (<NOT <FSET? ,ROPE ,MUNGBIT>>
+ <FSET ,ROPE ,MUNGBIT>
+ <TELL
+"The dagger is very dull, so you saw away
+at" T ,ROPE ". It frays a bit, after a time" ,PCR>)
+ (T
+ <FCLEAR ,ROPE ,TAKEBIT>
+ <FSET ,ROPE ,DEADBIT>
+ <FCLEAR ,ROPE ,EVERYBIT>
+ <FSET ,ROPE ,NDESCBIT>
+ <CHANDELIER-DROPS "cut">
+ <TELL ,INDENT
+"The rest of the rope comes unknotted and
+slips off the railing into the crowd below" ,PCR>)>)
+ (<FSET? ,ROPE ,DEADBIT>
+ <TELL
+"What little rope remains is swinging from the
+pulley on the ceiling over the ballroom, and out of reach" ,PCR>)>)>)
+ (<AND <VERB? TIE>
+ <PRSI? ,RAILING>>
+ <COND (<FSET? ,ROPE ,EVERYBIT>
+ <TELL ,ALREADY-IS>)
+ (T
+ <FSET ,ROPE ,EVERYBIT>
+ <TELL "Tied." CR>)>)
+ (<VERB? UNTIE REMOVE>
+ <COND (<FSET? ,ROPE ,EVERYBIT>
+ <FCLEAR ,ROPE ,EVERYBIT>
+ <TELL
+"Untied. " CTHE ,CHANDELIER " swings slightly,
+dribs of hot wax spilling to the floor." CR>
+ ;<CHANDELIER-DROPS>
+ ;<TELL ,INDENT
+"A knot blocks the rest of the rope from passing through the pulley" ,PCR>)
+ (T
+ <WASTES>)>)
+ (<VERB? TAKE>
+ <COND (<FSET? ,ROPE ,EVERYBIT>
+ <DO-FIRST "untie it">)
+ (<FSET? ,ROPE ,DEADBIT>
+ <CANT-REACH ,ROPE>)
+ (T
+ <TELL
+"Pray describe what you intend to do with" TR ,ROPE>
+ ;<TELL
+"If you want to pull on the rope, just say so. If you want to swing on the
+rope, just say so. If you want to turn the rope into a cobra, just say so
+(but it won't work)" ,PCR>)>)
+ (<VERB? MOVE RAISE FIDDLE>
+ <TELL
+CTHE ,CHANDELIER " swings, but is too heavy for you to pull up" ,PCR>)>>
+
+<ROUTINE DESC-ROPE ()
+ <TELL
+"A " D ,CHANDELIER " is held above" ,DANCE-FLOOR " by a rope and pulley
+system, so that the servants can lower it to light and snuff its candles.
+Several feet of " D ,ROPE " hang down from the pulley, the ">
+ <COND (<FSET? ,ROPE ,EVERYBIT>
+ <TELL "excess tied around">)
+ (T
+ <TELL "end resting on">)>
+ <TELL T ,RAILING ".">
+ <COND (<VERB? EXAMINE>
+ <CRLF>)
+ (T
+ <RTRUE>)>>
+
+<OBJECT CHANDELIER
+ (IN LOCAL-GLOBALS)
+ (DESC "chandelier")
+ (SYNONYM CHANDELIER PULLEY CANDLE)
+ (FLAGS LIGHTBIT ONBIT)
+ (ACTION CHAND-F)>
+
+<ROUTINE CHAND-F ()
+ <COND (<VERB? OFF>
+ <CANT-REACH ,CHANDELIER>)
+ (<VERB? EXAMINE>
+ <TELL
+"Held in place by a rope running through a pulley," T ,CHANDELIER
+" gently swings its one hundred candles over" ,DANCE-FLOOR ,PCR>)
+ (<VERB? UNTIE SWING>
+ <PERFORM-PRSA ,ROPE>)>>
+
+;<ROUTINE CHANDELIER-DROPS ()
+ <TELL "You untie" T ,ROPE ". A loud squeal erupts from
+the pulley above" T ,CHANDELIER " as the huge ring of candles plummets down,
+whipping" T ,ROPE " up after. Suddenly the whole contraption jerks to a stop,
+and" T ,CHANDELIER " swings, spilling hot wax, about ten feet above the floor
+of the ballroom.">
+ <COND (<FSET? ,BALLROOM ,EVERYBIT>
+ <TELL " In the general melee below, no one notices" ,PCR>
+ <RTRUE>)>
+ <CRLF>
+ <COND (<NOT <RUNNING? ,I-DUEL>>
+ <TELL ,INDENT
+CTHE ,DANCERS "s try to stampede out of the way, a woman starts to scream,
+a man curses loudly, once">
+ <COND (<AND <NOT <QUEUED? ,I-SUMMONS>>
+ <NOT <FSET? ,LDOOR ,LOCKEDBIT>>>
+ <TELL
+". Then a bewigged man appears in a doorway, surveying the crowd, and
+immediately everything returns to normal, silent but for the music and
+the frightened hush of" T ,DANCERS "s spinning over the floor">)>
+ <TELL ,PCR>)
+ (<L? ,HERO-CTR 15>
+ <TELL ,INDENT
+"Neither duellist, concentrating on his opponent, takes any notice." CR>)
+ (T
+ <RTRUE>)>>
+
+<ROOM STAIRWELL
+ (IN ROOMS)
+ (DESC "Stairwell")
+ (LDESC
+"Cool salt air, blowing past a torch on a spiral staircase below you,
+ruffles your hair and circles south into the library.")
+ (FLAGS RLANDBIT INDOORSBIT ONBIT NARTICLEBIT)
+ (OUT PER PORTRAIT-EXIT)
+ (SOUTH PER PORTRAIT-EXIT)
+ (DOWN TO BOTTOM-STAIRS)
+ (GLOBAL STAIRS PORTRAIT TORCH)
+ ;(ACTION STAIRWELL-F)>
+
+;<ROUTINE STAIRWELL-F (RARG)
+ <COND (<AND <EQUAL? .RARG ,M-ENTER>
+ <FSET? ,DAD ,DEADBIT>
+ <QUEUED? I-CKILLS-DAD>>
+ <JIGS-UP
+" Just inside the portrait stands Crulley, knife at
+the ready. You don't even have time to scream.">)>>
+
+<ROOM BOTTOM-STAIRS
+ (IN ROOMS)
+ (DESC "Bottom of Stairwell")
+ (LDESC
+"Flickering torchlight lights the bottom of a spiral staircase. A
+draft blows from the east; a passage leads south.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (UP TO STAIRWELL)
+ (EAST TO PASSAGE-1)
+ (SOUTH TO ANTEROOM)
+ (GLOBAL STAIRS TORCH)>
+
+<ROOM PASSAGE-1
+ (IN ROOMS)
+ (DESC "North Passage")
+ (LDESC
+"A strong wet breeze blows from a low doorway to the east. A circle of
+light leads west. The passageway continues south.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (EAST TO CELL-1)
+ (WEST TO BOTTOM-STAIRS)
+ (SOUTH TO PASSAGE-2)
+ (GLOBAL CELL-OBJ)>
+
+<OBJECT COT
+ (IN CELL-1)
+ (DESC "cot")
+ (LDESC "A canvas cot is shoved against a wall.")
+ (SYNONYM COT BED)
+ (ADJECTIVE CANVAS)
+ (FLAGS VEHBIT CONTBIT SEARCHBIT SURFACEBIT OPENBIT TRANSBIT)
+ (CAPACITY 20)
+ (ACTION BED-F)>
+
+<OBJECT CRACK
+ (IN CELL-1)
+ (DESC "crack")
+ (SYNONYM CRACK)
+ (FLAGS NDESCBIT)
+ (ACTION CRACK-F)>
+
+<ROUTINE CRACK-F ()
+ <COND (<VERB? LOOK-INSIDE>
+ <PERFORM ,V?EXAMINE ,SHIP>
+ <RTRUE>)
+ (<VERB? ENTER CLIMB-ON BOARD>
+ <TELL CTHE ,CRACK " is too narrow." CR>)>>
+
+<ROOM CELL-1
+ (IN ROOMS)
+ (DESC "Guard's Bunkroom")
+ (LDESC
+"Once a cell, now, with the door missing, made into a guard's bunkroom,
+this room is distinctly uncomfortable. Gasps of air are forced through a
+crack in the seaward wall of the room. The way out is west of you.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (WEST TO PASSAGE-1)
+ (GLOBAL CELL-OBJ)>
+
+<GLOBAL PRIMED <>>
+
+<OBJECT HORN
+ (IN CELL-1)
+ (DESC "powder horn")
+ (FDESC "A powder horn hangs on a long strap from the wall.")
+ (SYNONYM HORN STRAP)
+ (ADJECTIVE POWDER)
+ (FLAGS TAKEBIT CONTBIT OPENBIT SEARCHBIT)
+ (ACTION HORN-F)>
+
+<ROUTINE HORN-F ()
+ <COND (<VERB? EMPTY>
+ <TELL "You start to empty it, but reconsider." CR>)
+ (<AND <VERB? EMPTY-FROM>
+ <PRSI? ,HORN>>
+ <PERFORM ,V?EMPTY ,HORN>
+ <RTRUE>)
+ (<AND <VERB? TAKE>
+ <NOT <EQUAL? <ITAKE <>> ,M-FATAL <>>>
+ <NOT <FSET? ,HORN ,TOUCHBIT>>>
+ <FCLEAR ,POWDER ,INVISIBLE>
+ <TELL "Taken." CR>)
+ (<AND <VERB? FILL>
+ <PRSO? ,HORN>>
+ <CANT-VERB-A-PRSO "put anything into">
+ ;<TELL ,YOU-CANT "put anything into" TR ,HORN>
+ ;<COND (<PRSI? ,HORN>
+ <PERFORM ,V?POUR ,PRSI ,PRSO>
+ <RTRUE>)
+ (T
+ <TELL ,YOU-CANT "put anything into" TR ,HORN>)>)
+ (<AND <VERB? POUR PUT>
+ <PRSI? ,HORN>>
+ <PERFORM ,V?FILL ,PRSI ,PRSO>
+ <RTRUE>)
+ (<VERB? OPEN CLOSE>
+ <TELL ,YOU-CANT-SEE-ANY ,WAY-TO-DO-THAT>)
+ (<VERB? EXAMINE LOOK-INSIDE>
+ <TELL
+"Almost triangular, with a little spout on top," T ,HORN
+" is similar to the one your father used to carry when hunting.
+It is filled with a mixture of " D ,POWDER " and shot" ,PCR>)
+ (<AND <VERB? TAKE>
+ <NOUN-USED ,W?POWDER ,HORN>
+ <HELD? ,HORN>>
+ <TELL
+"You pour out some " D ,POWDER ". It blows away." CR>)>>
+
+<OBJECT POWDER
+ (IN HORN)
+ (DESC "gunpowder")
+ (SYNONYM POWDER GUNPOW SHOT)
+ (FLAGS NARTICLEBIT NDESCBIT)>
+
+<ROOM PASSAGE-2
+ (IN ROOMS)
+ (DESC "South Passage")
+ (LDESC
+"You are at the far end of a dank passageway heading north.
+A wooden door leads east.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (NORTH TO PASSAGE-1)
+ (EAST TO CELL-2 IF WOOD-CELL-DOOR IS OPEN)
+ (GLOBAL WOOD-CELL-DOOR CELL-OBJ)>
+
+<OBJECT WOOD-CELL-DOOR
+ (IN LOCAL-GLOBALS)
+ (DESC "wooden door")
+ (SYNONYM DOOR)
+ (ADJECTIVE WOOD WOODEN)
+ (FLAGS NDESCBIT DOORBIT)
+ (ACTION DOOR-F)>
+
+; "Mud is splashed ankle deep, filling a deep pit in the floor."
+
+<ROOM CELL-2
+ (IN ROOMS)
+ (DESC "Cell")
+ (LDESC
+"This tiny cell is airless and shivering cold, entirely empty of
+anything but darkness. A wooden door leads west.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (WEST TO PASSAGE-2 IF WOOD-CELL-DOOR IS OPEN)
+ (GLOBAL WOOD-CELL-DOOR CELL-OBJ)>
+
+;<OBJECT MUDPIT
+ (IN CELL-2)
+ (DESC "muddy pit")
+ (SYNONYM PIT HOLE)
+ (ADJECTIVE MUD MUDDY)
+ (FLAGS NDESCBIT)
+ (ACTION MUDPIT-F)>
+
+;<ROUTINE MUDPIT-F ()
+ <COND (<VERB? ENTER BOARD>
+ <TELL "You'd get far too dirty" ,PCR>)
+ (T
+ <UNIMPORTANT-THING>)>>
+
+<ROOM ANTEROOM
+ (IN ROOMS)
+ (DESC "Anteroom")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (NORTH TO BOTTOM-STAIRS)
+ (SOUTH PER CROC-EXIT)
+ (GLOBAL CHAIN)
+ (ACTION ANTEROOM-F)>
+
+<ROUTINE ANTEROOM-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"Two exits lead from this cavernous room, north and south.
+The walls drip with wet, forming a huge pool on the floor.">)
+ (<EQUAL? .RARG ,M-END>
+ <COND (<AND <NOT ,CROC-FREE>
+ <IN? ,DAD ,HERE>>
+ <TELL ,INDENT
+"Your father stops, smiling at" T ,CROC
+", \"Hello, chum, how are you?\" He bends over the creature, and ">
+ <COND (,MUZZLED
+ <SETG AWAITING-REPLY 6>
+ <QUEUE I-REPLY 2>
+ <MOVE ,GARTER ,DAD>
+ <FCLEAR ,GARTER ,NDESCBIT>
+ <TELL
+"laughs. \"That's my Lucy! Never one to shirk belling the cat. What a
+woman! Have you been to the kitchen, dear?\" He slips off" T ,GARTER " and">)
+ (,CROC-SLEEP
+ <TELL
+"scratches its bumpy snout, muttering, \"Never seen you
+sleep like this before.\" It stirs to life as " D ,DAD>)>
+ <TELL
+" walks over to you by the north entrance. The reptile">
+ <COND (,CROC-SLEEP
+ <TELL ", waking,">)> ;"in MUZZLED case"
+ <SETG CROC-FREE T>
+ <SETG MOUTH-SHUT <>>
+ <SETG MUZZLED <>>
+ <SETG CROC-SLEEP <>>
+ <FCLEAR ,GARTER ,TRYTAKEBIT> ;"stop implicit take"
+ <FSET ,GARTER ,TAKEBIT>
+ <TELL " lunges after him, choking on its chain." CR>)
+ (<AND <NOT ,COOKIE-FIGHTING-CROC>
+ <IN? ,COOKIE ,HERE>>
+ <SETG COOKIE-FIGHTING-CROC T>
+ <FSET ,CROC ,NDESCBIT>
+ <TELL ,INDENT
+"Cookie rushes at" T ,CROC ", crying, \"I'll take care of this monster,
+sweetheart. You run by and do what you must do.\" He dives headlong into"
+T ,POOL>
+ <COND (<IN? ,RAPIER ,COOKIE>
+ <MOVE ,RAPIER ,HERE>
+ <TELL ", throwing free" T ,RAPIER>)>
+ <TELL ,PCR>)>)>>
+
+<GLOBAL WHIPPING-SPEECH T>
+
+<ROUTINE CROC-EXIT ()
+ <COND (,COOKIE-FIGHTING-CROC
+ <DUNGEON-ENTRANCE>)
+ (<OR ,MUZZLED
+ ,CROC-SLEEP>
+ <TELL "You edge past the reptile" ,PCR CR>
+ <RETURN ,DUNGEON>)
+ (T
+ <COND (<RUNNING? ,I-CROC-OPENS-MOUTH>
+ <DEQUEUE I-CROC-OPENS-MOUTH>)>
+ <TELL
+CTHE ,CROC " roars at you. You retreat to the north entrance
+and the monster stills, waiting, chops open, almost smiling" ,PCR>
+ <RFALSE>)>>
+
+<ROUTINE DUNGEON-ENTRANCE () ;"EXIT-FCN"
+ <COND (,COOKIE-FIGHTING-CROC
+ <FCLEAR ,DUNGEON ,TOUCHBIT> ;"So there's a new room desc."
+ <SETG VERBOSITY 1>
+ <COND (<AND <NOT <FSET? ,CRULLEY ,MUNGBIT>>
+ <NOT ,CRULLEY-BACK>> ;"before he goes down or"
+ <SETG CRULLEY-CTR 1> ;"comes back up well"
+ <QUEUE I-CDUNG -1>
+ <TELL "A whip cracks ">
+ <COND (,WHIPPING-SPEECH
+ <SETG WHIPPING-SPEECH <>>
+ <TELL
+"the air. \"Flogs me, will ye, Cap'n? Taste it "
+D ,ME ", har.\" Jamison groans, half conscious">)
+ (T
+ <TELL "against flesh">)>
+ <TELL ". You rush in" ,PCR CR>)>)>
+ <RETURN ,DUNGEON>>
+
+
+<GLOBAL MUZZLED <>>
+<GLOBAL MOUTH-SHUT <>>
+<GLOBAL CROC-FREE <>> ;"<> until Dad takes either the garter or wakes it"
+<GLOBAL CROC-SLEEP <>>
+
+<GLOBAL CROC-LUNGES
+"The monster lunges at you, chain rattling, roaring and angry. ">
+
+<GLOBAL SNORTS-IN-SLEEP ". The monster snorts in its sleep">
+
+<OBJECT CROC
+ (IN ANTEROOM)
+ (DESC "crocodile")
+ (DESCFCN CROC-F)
+ (SYNONYM CROC CROCOD LEBS MOUTH)
+ (ADJECTIVE CROC\'S JAWS REPTILE GATOR)
+ (FLAGS CONTBIT OPENBIT ACTORBIT ;TRANSBIT SEARCHBIT)
+ (ACTION CROC-F)>
+
+<ROUTINE CROC-F ("OPTIONAL" (OARG <>))
+ <COND (.OARG
+ <COND (<EQUAL? .OARG ,M-DESC?>
+ <RTRUE>)>
+ <COND (<FSET? ,CROC ,TOUCHBIT>
+ <TELL ,INDENT CTHE ,CROC>)
+ (T
+ <FSET ,CROC ,TOUCHBIT>
+ <TELL ,INDENT "A " D ,CROC>)>
+ <TELL " lies half in the pool, ">
+ <COND (,CROC-SLEEP
+ <TELL "sleeping.">
+ <RTRUE>)>
+ <TELL "gazing at you,">
+ <COND (,MUZZLED
+ <TELL A ,GARTER " around its snout.">)
+ (,MOUTH-SHUT
+ <TELL " mouth closed.">)
+ (T
+ <TELL
+" with baleful eyes, jaws wide open.
+Dagger-sharp teeth glint in" T ,TORCH "light.">)>)
+ (<AND <VERB? PUT-ON>
+ <PRSO? ,GARTER>>
+ <COND (,CROC-FREE
+ <REMOVE ,PRSO>
+ <TELL ,CROC-LUNGES
+"Screaming, you dash back, dropping" T ,GARTER " into" TR ,POOL>)
+ (,MOUTH-SHUT
+ <MOVE ,GARTER ,CROC>
+ <FSET ,GARTER ,NDESCBIT>
+ <SETG MUZZLED T>
+ <FSET ,GARTER ,TRYTAKEBIT> ;"stop implicit take"
+ <FCLEAR ,GARTER ,TAKEBIT>
+ <COND (<NOT ,CROC-SLEEP>
+ <COND (<NOT <QUEUED? ,I-CROC-SLEEPS>>
+ <SETG SCORE <+ ,SCORE 1>>)>
+ <TELL
+"With great daring and greater speed, you slip" T ,GARTER " around" T ,CROC
+"'s snout. " CTHE ,CROC " thrashes about, unable to remove it." CR>)
+ (T
+ <TELL
+CTHE ,GARTER " fits on its snout like a ring on a wedding finger" ,PCR>)>)
+ (T
+ <TELL
+CTHE ,GARTER " won't fit around that open maw" ,PCR>)>)
+ (<AND ,CROC-SLEEP
+ <VERB? ALARM>>
+ <TELL "That is the last thing you want to do!" CR>)
+ (<VERB? KISS EMBRACE>
+ <TELL "The very thought makes you shiver." CR>)
+ (<VERB? PUT PUT-ON TOUCH ENTER>
+ <TELL
+"It would be safer to stay distant and throw things at" TR ,CROC>)
+ (<AND <NOUN-USED ,W?MOUTH ,CROC>
+ <ZERO? <GET ,P-ADJW 0>>
+ <ZERO? <GET ,P-ADJW 1>>>
+ <RFALSE>) ;"OPEN/L AT/etc. MOUTH"
+ (<AND <VERB? MUZZLE>
+ <PRSI? ,GARTER>>
+ <PERFORM ,V?PUT-ON ,GARTER ,CROC>
+ <RTRUE>)
+ (<VERB? THROW GIVE THROW-TO THROW-AT>
+ <COND (,COOKIE-FIGHTING-CROC
+ <TELL
+CTHE ,CROC " is too busy fighting Cookie to notice." CR>)
+ (<PRSO? ,BOTTLE>
+ <TELL "You might need that later." CR>)
+ (<PRSO? ,RETICULE>
+ <RFALSE>)
+ (,CROC-SLEEP
+ <COND (<AND <PRSO? ,SALTS>
+ <VERB? GIVE>>
+ <PERFORM ,V?ALARM ,CROC ,SALTS>
+ <RTRUE>)
+ (T
+ <TELL "But" T ,CROC " is asleep." CR>)>)
+ (<AND <PRSO? ,SPICES ,PINCH>
+ <IN? ,PINCH ,PROTAGONIST>>
+ <MOVE ,PINCH ,SPICES>
+ <TELL
+CTHE ,CROC " blinks its eyes once, but takes no other notice of" TR ,SPICES>)
+ (,CROC-FREE
+ <REMOVE ,PRSO>
+ <TELL
+,CROC-LUNGES CTHE ,PRSO " drops ignored into" TR ,POOL>
+ <RTRUE>)
+ (,MUZZLED
+ <TELL CTHE ,CROC " is helpless! " ,MOTHER>)
+ (T
+ <REMOVE ,PRSO>
+ <SETG MOUTH-SHUT T>
+ <QUEUE I-CROC-OPENS-MOUTH 2>
+ <TELL CTHE ,CROC " snaps its jaws shut as" T ,PRSO>
+ <COND (<PRSO? ,SALTS ;,HOOPS ;,DAGGER>
+ <TELL " bounce">
+ ;<COND (<PRSO? ,DAGGER>
+ <TELL "s">)>
+ <TELL " off its hide, sinking into" TR ,POOL>)
+ (T
+ <TELL " disappear">
+ <COND (<NOT <PRSO? ,PANTS>>
+ <TELL "s">)>
+ <TELL " into">
+ <COND (<PRSO? ,PORK>
+ <COND (,PORK-DOPED
+ <QUEUE I-CROC-SLEEPS 3>)>
+ <TELL " its maw." CR>)
+ (T
+ <TELL TR ,POOL>)>)>)>)
+ (<VERB? LEAP>
+ <TELL "You can't jump that far." CR>)
+ (<VERB? SGIVE STHROW THROW-AT>
+ <PERFORM ,V?THROW-TO ,PRSI ,CROC>
+ <RTRUE>)
+ (<VERB? EXAMINE>
+ <COND (,COOKIE-FIGHTING-CROC
+ <TELL CTHE ,POOL
+" boils with the bodies of" T ,CROC " and" TR ,COOKIE>)
+ (,MUZZLED
+ <TELL CTHE ,CROC
+"'s snout is pinned closed by" A ,GARTER>
+ <COND (,CROC-SLEEP
+ <TELL ,SNORTS-IN-SLEEP>)>
+ <TELL ,PCR>)
+ (,MOUTH-SHUT
+ <TELL
+"Two gleaming teeth poke out of" T ,CROC "'s closed mouth">
+ <COND (,CROC-SLEEP
+ <TELL ,SNORTS-IN-SLEEP>)>
+ <TELL ,PCR>)
+ (T
+ <TELL
+CTHE ,CROC " smiles at you invitingly, white
+teeth shining in" T ,TORCH "light." CR>)>)
+ (<VERB? KILL MUNG KICK>
+ <COND (,COOKIE-FIGHTING-CROC
+ <TELL D ,COOKIE " is seeing to" TR ,CROC>)
+ (,CROC-SLEEP
+ <TELL "Harm a sleeping animal! " ,MOTHER>)
+ (,MUZZLED
+ <TELL
+"The tear welling up in" T ,CROC "'s eye is rather poignant.
+You can't bear to hurt the beast in this state" ,PCR>)
+ (T
+ <TELL "You have no wish to get any closer to" TR ,CROC>
+ ;<TELL
+"While the sight of " D ,CROC " teeth and " D ,CROC " tonsils at the back
+of a " D ,CROC "'s open maw may not deter you, the thought of spending the
+rest of your life in one-armed dresses does. You daren't go near the
+open-mouthed reptile" ,PCR>)>)>>
+
+<ROUTINE I-CROC-OPENS-MOUTH ()
+ <COND (<AND <NOT ,MUZZLED>
+ <IN? ,CROC ,HERE>>
+ <SETG MOUTH-SHUT <>>
+ <TELL ,INDENT
+"With an inaudible creak," T ,CROC "'s mouth opens again" ,PCR>)
+ (T
+ <RFALSE>)>>
+
+<OBJECT POOL
+ (IN ANTEROOM)
+ (DESC "pool")
+ (SYNONYM POOL WATER)
+ (ADJECTIVE BLACK)
+ (FLAGS NDESCBIT)
+ (ACTION POOL-F)>
+
+<ROUTINE POOL-F ()
+ <COND (<VERB? ENTER CRAWL-UNDER SWIM>
+ <TELL
+"You splash around at the outskirts of" TR ,POOL>)
+ (<VERB? THROW THROW-TO THROW-AT>
+ <COND (<AND <PRSO? ,PORK>
+ <NOT ,MOUTH-SHUT>
+ <NOT ,CROC-SLEEP>>
+ <TELL
+"With a terrific splash," T ,CROC " throws itself after" T ,PRSO ". ">
+ <PERFORM ,V?THROW ,PORK ,CROC>
+ <RTRUE>)
+ (<PRSO? ,BOTTLE>
+ <PERFORM ,V?THROW ,BOTTLE ,CROC>
+ <RTRUE>)
+ (T
+ <REMOVE ,PRSO>
+ <TELL CTHE ,PRSO " splashes into" TR ,POOL>)>)
+ (<VERB? LOOK-INSIDE>
+ <TELL "It's too murky to see anything" ,PCR>)
+ (<VERB? PUT>
+ <REMOVE ,PRSO>
+ <TELL CTHE ,PRSO " sinks from sight." CR>)
+ (<VERB? DRINK DRINK-FROM>
+ <TELL "Yechh!" CR>)>>
+
+<ROOM DUNGEON
+ (IN ROOMS)
+ (DESC "Dungeon")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (SYNONYM DUNGEON)
+ (GLOBAL TORCH)
+ (WEST PER DUNGEON-EXIT)
+ (NORTH PER DUNGEON-EXIT)
+ (ACTION DUNGEON-F)>
+
+<ROUTINE DUNGEON-F (RARG)
+ <COND (<EQUAL? .RARG ,M-LOOK>
+ <TELL
+"You sense, rather than see, the rusty skeletons of old cages and torture
+devices that line the walls of this cavernous room. One flaming torch,
+high on a wall, casts mad licks of light into the darkness. Passages lead
+north and west. Set deep in the rocky floor is a">
+ <TELL-OPEN/CLOSED ,TRAP T>
+ <TELL " " D ,TRAP ,PCR ,INDENT>
+ ;<COND (<FSET? ,DAD ,DEADBIT>
+ <TELL " with signs of a struggle around it">)>
+ ;<TELL ,PCR ,INDENT>
+ <DESC-MANACLES>)
+ (<AND <EQUAL? .RARG ,M-BEG>
+ ,ENDGAME
+ <IN? ,CRULLEY ,HERE>
+ <NOT <FSET? ,CRULLEY ,MUNGBIT>>>
+ <COND (<OR <AND <EQUAL? ,HERO ,PRSO ,PRSI>
+ <AFFIRMATIVE-ANSWER>>
+ <TOUCHING? ,HERO>
+ <TOUCHING? ,MANACLES>
+ ;<VERB? PUT>>
+ <TELL
+D ,CRULLEY " growls, \"Keep away from 'im.\"" CR>)
+ (<AND <TOUCHING? ,TRAP>
+ <NOT <VERB? ENTER BOARD>>>
+ ;<AND <VERB? CLOSE>
+ <PRSO? ,TRAP>>
+ <TELL D ,CRULLEY " barks, \"Leave that alone.\"" CR>)
+ (T
+ <RFALSE>)>)
+ (<EQUAL? .RARG ,M-END>
+ <COND (,CRULLEY-BACK
+ <TELL
+,INDENT D ,CRULLEY " jumps out of the shadows at you.">
+ <JIGS-UP ,FALL-TO-BOTTOM>)
+ (T
+ <RFALSE>)>)>>
+
+<ROUTINE DUNGEON-EXIT ()
+ <COND (<RUNNING? ,I-CDUNG>
+ <DEQUEUE I-CDUNG>
+ <FCLEAR ,CRULLEY ,EVERYBIT>
+ <TELL
+"\"Come back 'ere, wench!\"" T ,CRULLEY ,CALLS-AFTER>)>
+ <COND (<EQUAL? ,P-WALK-DIR ,P?WEST>
+ <RETURN ,PASSAGE-4>)
+ (<EQUAL? ,P-WALK-DIR ,P?NORTH>
+ <RETURN ,ANTEROOM>)>
+ ;<COND (<FSET? ,MANACLES ,MUNGBIT>
+ <TELL
+"You are brought up short by" T ,MANACLES " locked on your wrists" ,PCR>
+ <RFALSE>)
+ (T
+ <COND (<RUNNING? ,I-CDUNG>
+ <DEQUEUE I-CDUNG>
+ <TELL
+"\"Come back 'ere, wench!\"" T ,CRULLEY ,CALLS-AFTER>)>
+ <COND (<EQUAL? ,P-WALK-DIR ,P?WEST>
+ <RETURN ,PASSAGE-4>)
+ (<EQUAL? ,P-WALK-DIR ,P?NORTH>
+ <RETURN ,ANTEROOM>)>)>>
+
+<OBJECT MANACLES ;"MUNGBIT -- they're locked on you."
+ (IN DUNGEON)
+ (DESC "pair of manacles")
+ (SYNONYM MANACLE CHAINS LOCK CHAIN)
+ (ADJECTIVE IRON PAIR LOCKS FETTER)
+ (FLAGS CONTBIT OPENBIT PLURALBIT TRANSBIT WEARBIT NDESCBIT SEARCHBIT)
+ (ACTION MANACLES-F)>
+
+<ROUTINE MANACLES-F ()
+ <COND (<VERB? EXAMINE LOOK-INSIDE>
+ <DESC-MANACLES>)
+ (<VERB? CLOSE>
+ <COND (,PRSI
+ <PERFORM ,V?PUT-ON ,MANACLES ,PRSI>
+ <RTRUE>)
+ (T
+ <OPEN-CLOSE ,PRSO <> "They clamp shut">)>)
+ (<VERB? OPEN>
+ <COND ;(<AND <EQUAL? ,P-PRSA-WORD ,W?PRY>
+ <NOT ,PRSI>>
+ <TELL ,YOULL-HAVE-TO "specify how" ,PCR>)
+ (<FSET? ,MANACLES ,OPENBIT>
+ <TELL "They are already open!" CR>)
+ (<PRSI? ,JEWEL>
+ <PROPOSE>)
+ (T
+ <TELL "It isn't that easy" ,PCR>)>)
+ (<AND <VERB? PICK UNLOCK>
+ <PRSI? ,JEWEL>>
+ <TELL "You twist the pin of" T ,JEWEL " in the ">
+ <COND ;(<FSET? ,MANACLES ,MUNGBIT>
+ <MOVE ,JEWEL ,HERE>
+ <QUEUE I-JIGS-UP-MANACLES 3>
+ <TELL
+"As you scratch in one cuff with the pin of" T ,JEWEL ", it slips from
+your fingers and skitters just out of reach" ,PCR>)
+ (<IN? ,HERO ,MANACLES>
+ <MOVE ,HERO ,HERE>
+ <SETG SCORE <+ ,SCORE 1>>
+ <FSET ,MANACLES ,OPENBIT>
+ <TELL "locks, quickly freeing Nicholas. ">
+ <COND (<FSET? ,HERO ,DEADBIT>
+ <TELL "He falls in a faint at your feet" ,PCR>)
+ (T
+ <CRLF>
+ <NICK-RUNS-OFF>)>)
+ (T
+ <FSET ,MANACLES ,OPENBIT>
+ <FCLEAR ,MANACLES ,LOCKEDBIT>
+ <TELL "manacles until they pop open" ,PCR>)>)
+ (<VERB? UNLOCK>
+ <TELL "That key is much too large to fit in" TR ,MANACLES>
+ ;<COND (<PRSI? ,LARGE-KEY>
+ <TELL "large">)
+ ;(<PRSI? ,BENT-KEY>
+ <TELL "crooked">)>
+ ;<TELL " to fit in" TR ,MANACLES>)
+ (<VERB? REACH-IN WEAR>
+ <PERFORM ,V?PUT-ON ,MANACLES ,ME>
+ <RTRUE>)
+ (<VERB? PUT>
+ <COND (<PRSO? ,ME>
+ <PERFORM ,V?PUT-ON ,MANACLES ,ME>
+ <RTRUE>)
+ (<PRSO? ;,BENT-KEY ,LARGE-KEY>
+ <PERFORM ,V?UNLOCK ,MANACLES>
+ <RTRUE>)
+ (T
+ <MOVE ,PRSO ,HERE>
+ <TELL CTHE ,PRSO " drops to the floor." CR>)>)
+ (<OR <VERB? PUT-ON WEAR>
+ <AND <VERB? TIE>
+ <EQUAL? ,P-PRSA-WORD ,W?FASTEN ,W?SECURE ,W?ATTACH>>>
+ <COND (<PRSI? ,ME>
+ <TELL
+"Mama would not have praised your intelligence" ,PCR>)
+ ;(<PRSI? ,ME>
+ <FCLEAR ,MANACLES ,OPENBIT>
+ <FSET ,MANACLES ,MUNGBIT>
+ <QUEUE I-JIGS-UP-MANACLES 10>
+ <TELL
+"You snap the cuffs onto your wrists.
+Mama would not have praised your intelligence" ,PCR>)
+ (<PRSI? ,DAD>
+ <SETG AWAITING-REPLY 1>
+ <QUEUE I-REPLY 2>
+ <TELL
+"He wanders off before you can get them on him. \"Oh dear, you have learned
+atrocious manners these last few year in London!\"" CR>)
+ (<PRSI? ,HERO>
+ <TELL ,YOU-CANT "lift him high enough." CR>)
+ (T
+ <TELL ,YOU-CANT "put that in " D ,MANACLES "!" CR>)>)>>
+
+;<ROUTINE I-JIGS-UP-MANACLES ()
+ <JIGS-UP
+"When, some hours later, dragoons drag in the battered body of Jamison, you
+are unable to help either him or yourself. Crulley quite enjoys the sight
+of you pinned to the wall.">>
+
+<ROUTINE DESC-MANACLES ()
+ <COND (<IN? ,HERO ,MANACLES>
+ <TELL
+"Nicholas is spread-eagled against
+the wall, shackled in the " D ,MANACLES ".">)
+ (<IN? ,PROTAGONIST ,MANACLES>
+ <TELL
+"You lean against the wall, one arm
+raised above " D ,HEAD ", cuffed in a manacle.">)
+ (T
+ <TELL
+"A " D ,MANACLES " hangs from iron chains attached high on the wall.">)>
+ <COND (<VERB? EXAMINE LOOK-INSIDE>
+ <CRLF>)
+ (T
+ <RTRUE>)>>
+
+<ROUTINE GEN-WELL ()
+ <COND (<EQUAL? ,HERE ,DUNGEON>
+ ,TRAP)>>
+
+<OBJECT TRAP
+ (IN DUNGEON)
+ (DESC "trapdoor")
+ (SYNONYM DOOR WELL TRAPDO)
+ (ADJECTIVE TRAP)
+ (GENERIC GEN-WELL)
+ (FLAGS DOORBIT NDESCBIT VEHBIT CONTBIT SEARCHBIT TRANSBIT)
+ (ACTION TRAP-F)>
+
+<ROUTINE TRAP-F ()
+ <COND (<OR <VERB? OPEN RAISE MOVE>
+ <VERB? CLOSE LOWER>>
+ <OPEN-CLOSE ,TRAP
+"The door creaks open to reveal a black well, water hushing deep within" <>>)
+ (<VERB? LOOK-UNDER LOOK-INSIDE>
+ <COND (<FSET? ,TRAP ,OPENBIT>
+ <COND (<IN? ,CRULLEY ,TRAP>
+ <TELL
+D ,CRULLEY " is slowly climbing up the well." CR>)
+ (T
+ <TELL
+"You smell salt water and mold, but you can see nothing" ,PCR>)>)
+ (T <TELL "It" ,IS-CLOSED ,PCR>)>)
+ (<VERB? ENTER BOARD STAND-ON>
+ <COND (<FSET? ,TRAP ,OPENBIT>
+ <TELL
+"You start to climb down the well,
+but lose your footing on the slimy rock.">
+ <COND (<FSET? ,CRULLEY ,MUNGBIT>
+ <TELL
+" At least you take" T ,CRULLEY " with you as you fall.">)>)
+ (T
+ <TELL
+"As you stand on" T ,TRAP ", the rotted wood tears away.">)>
+ <JIGS-UP ,FALL-TO-BOTTOM>)
+ (<AND <VERB? PUT-ON>
+ <FSET? ,TRAP ,OPENBIT>>
+ <PERFORM ,V?THROW ,PRSO ,TRAP>
+ <RTRUE>)
+ (<VERB? THROW PUT PUT-THROUGH THROW-AT>
+ <COND (<PRSO? ,RAPIER>
+ <TELL
+D ,HERO " would not thank you for doing that." CR>)
+ (<PRSO? ,RETICULE>
+ <RFALSE>)
+ (<FSET? ,CRULLEY ,MUNGBIT>
+ <PERFORM ,V?THROW ,PRSO ,CRULLEY>
+ <RTRUE>)
+ (T
+ <REMOVE ,PRSO>
+ <TELL
+"You drop" T ,PRSO " into the well.
+Several seconds later you hear a tiny splash" ,PCR>)>)>>
+
+<ROOM PASSAGE-4
+ (IN ROOMS)
+ (DESC "Corner")
+ (LDESC
+"This short passage turns from east to north to
+stop abruptly at an iron door.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (NORTH TO CELL-4 IF IRON-CELL-DOOR IS OPEN)
+ (EAST PER DUNGEON-ENTRANCE)
+ (GLOBAL IRON-CELL-DOOR CELL-OBJ)
+ ;(ACTION PASSAGE-4-F)>
+
+<OBJECT IRON-CELL-DOOR
+ (IN LOCAL-GLOBALS)
+ (DESC "iron door")
+ (SYNONYM DOOR)
+ (ADJECTIVE IRON CELL)
+ (FLAGS NDESCBIT DOORBIT LOCKEDBIT)
+ (ACTION DOOR-F)>
+
+<ROOM CELL-4
+ (IN ROOMS)
+ (DESC "Cell")
+ (LDESC
+"Hewn from dense rock, the cell is a stagnant burrow. Except for the tiniest
+glow of light from the torch two rooms away, it is pitch black.")
+ (FLAGS ONBIT RLANDBIT INDOORSBIT NARTICLEBIT)
+ (SOUTH TO PASSAGE-4 IF IRON-CELL-DOOR IS OPEN)
+ (GLOBAL IRON-CELL-DOOR CELL-OBJ)
+ (ACTION CELL-4-F)>
+
+<ROUTINE CELL-4-F (RARG)
+ <COND (<AND <EQUAL? .RARG ,M-END>
+ <NOT <FSET? ,DAD ,TOUCHBIT>>>
+ <FSET ,DAD ,TOUCHBIT>
+ <FCLEAR ,DAD ,NDESCBIT>
+ <SETG SCORE <+ ,SCORE 1>>
+ <COND (<EQUAL? ,DANCED-WITH ,LAFOND>
+ <QUEUE I-SUMMONS 15>)>
+ <QUEUE I-DAD 2>
+ <TELL ,INDENT
+"As you enter, a tall bony man moves out of the darkness. \"Papa,\" you cry,
+rushing into his arms.|
+ \"Why, hullo, my dear.\" He hugs you tightly. \"Nick certainly took his
+time about fetching you.">
+ <COND (<OR ,BOY-DRESS?
+ <NOT <FSET? ,CHEMISE ,EVERYBIT>>>
+ <TELL
+"\" He squints in horror at your clothes.
+\"I have always found the London fashions quite abominable.">
+ <COND (<NOT <FSET? ,CHEMISE ,EVERYBIT>>
+ <SETG AWAITING-REPLY 2>
+ <QUEUE I-REPLY 2>
+ <TELL " Aren't you a trifle cold?">)>)>
+ <TELL "\"" CR>)
+ (.RARG
+ <RFALSE>)>>
+
+<OBJECT CELL-OBJ
+ (IN LOCAL-GLOBALS)
+ (DESC "cell")
+ (SYNONYM CELL)
+ (ACTION CELL-OBJ-F)>
+
+<ROUTINE CELL-OBJ-F ()
+ <COND (<VERB? ENTER BOARD>
+ <COND (<EQUAL? ,HERE ,CELL-1 ,CELL-2 ,CELL-4>
+ <TELL ,LOOK-AROUND>)
+ (<EQUAL? ,HERE ,PASSAGE-1 ,PASSAGE-2>
+ <DO-WALK ,P?EAST>)
+ (<EQUAL? ,HERE ,PASSAGE-4>
+ <DO-WALK ,P?NORTH>)>)
+ (<VERB? LOOK EXAMINE>
+ <COND (<EQUAL? ,HERE ,CELL-1 ,CELL-2 ,CELL-4>
+ <V-LOOK>)
+ (T
+ <TELL "You would do better to enter it" ,PCR>)>)>>
diff --git a/misc.zap b/misc.zap
new file mode 100644
index 0000000..19f69f6
--- /dev/null
+++ b/misc.zap
@@ -0,0 +1,562 @@
+
+
+ .FUNCT PICK-ONE,TBL,LENGTH,CNT,RND,MSG,RFROB
+ GET TBL,0 >LENGTH
+ GET TBL,1 >CNT
+ DEC 'LENGTH
+ ADD TBL,2 >TBL
+ MUL CNT,2
+ ADD TBL,STACK >RFROB
+ SUB LENGTH,CNT
+ RANDOM STACK >RND
+ GET RFROB,RND >MSG
+ GET RFROB,1
+ PUT RFROB,RND,STACK
+ PUT RFROB,1,MSG
+ INC 'CNT
+ EQUAL? CNT,LENGTH \?CND1
+ SET 'CNT,0
+?CND1: PUT TBL,0,CNT
+ RETURN MSG
+
+
+ .FUNCT APRINT,OBJ
+ FSET? OBJ,NARTICLEBIT /?CTR2
+ EQUAL? OBJ,PANTS,RUM,SALTS \?CCL3
+?CTR2: PRINTC 32
+ JUMP ?CND1
+?CCL3: FSET? OBJ,VOWELBIT \?CCL7
+ PRINTI " an "
+ JUMP ?CND1
+?CCL7: PRINTI " a "
+?CND1: PRINTD OBJ
+ RTRUE
+
+
+ .FUNCT TPRINT,OBJ
+ FSET? OBJ,NARTICLEBIT \?CCL3
+ PRINTC 32
+ JUMP ?CND1
+?CCL3: PRINTI " the "
+?CND1: PRINTD OBJ
+ RTRUE
+
+
+ .FUNCT CTPRINT,OBJ
+ PRINTI "The "
+ PRINTD OBJ
+ RTRUE
+
+
+ .FUNCT TPRINT-PRSO
+ CALL TPRINT,PRSO
+ RSTACK
+
+
+ .FUNCT TPRINT-PRSI
+ CALL TPRINT,PRSI
+ RSTACK
+
+
+ .FUNCT ARPRINT,OBJ
+ CALL APRINT,OBJ
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT TRPRINT,OBJ
+ CALL TPRINT,OBJ
+ PRINT PCR
+ RTRUE
+
+
+ .FUNCT GO
+START::
+
+?FCN: PRINTI ">SHOOT THE PIRATE
+Trembling, you fire the heavy arquebus. You hear its loud report over the roaring wind, yet the dark figure still approaches. The gun falls from your nerveless hands.
+ ""You won't kill me,"" he says, stepping over the weapon. ""Not when I am the only protection you have from Jean Lafond.""
+ "
+ PRINT NUTBROWN
+ PRINTI "Lips curving,"
+ PRINT EYES-RAKE
+ PRINTI ". You are intensely aware of the strength of his hard seaworn body, of the deep sea blue of his eyes. And then his mouth is on yours, lips parted, demanding, and you arch into his kiss...
+ He presses you against him, head bent. ""But who, my dear,"" he whispers into your hair, ""will protect you from me?""
+"
+ CRLF
+ PRINT HIT-RETURN
+ PRINTI "begin.]"
+ CRLF
+ READ P-INBUF,P-LEXV
+ USL
+ CALL CLEAR-SCREEN,11
+ SET 'HERE,CABIN
+ USL
+ CALL V-VERSION
+ CRLF
+ PRINTI "LATE ONE SPRING NIGHT IN THE WEST INDIES...
+
+ A crash overhead! Pirates are boarding the Lafond Deux! The first mate hurries you into Captain Davis's cabin.
+ ""Good, you brought the girl,"" Davis smirks. ""She'll keep the pirates busy. She was only a tool of Lafond's, anyway. Let me just find that cof--"" A man on deck screams in agony and Davis starts. ""Let's go."" The captain thrusts you on the bed and walks out, locking the door.
+ His laugh echoes. ""Best get comfortable, girl. You're likely to be there for the rest of your life."""
+ CRLF
+ CRLF
+ CALL V-LOOK
+ CALL MAIN-LOOP
+ JUMP ?FCN
+
+
+ .FUNCT CLEAR-SCREEN,CNT=24
+?PRG1: CRLF
+ DEC 'CNT
+ ZERO? CNT \?PRG1
+ RTRUE
+
+
+ .FUNCT MAIN-LOOP,TRASH
+?PRG1: CALL MAIN-LOOP-1 >TRASH
+ JUMP ?PRG1
+
+
+ .FUNCT MAIN-LOOP-1,ICNT,OCNT,NUM,CNT=0,OBJ=0,TBL,V,PTBL=1,OBJ1,TMP,ONUM,?TMP1
+ CALL PARSER >P-WON
+ ZERO? P-WON /?CCL3
+ GETB P-PRSI,P-MATCHLEN >ICNT
+ GETB P-PRSO,P-MATCHLEN >OCNT
+ ZERO? P-IT-OBJECT /?CND4
+ CALL ACCESSIBLE?,P-IT-OBJECT
+ ZERO? STACK /?CND4
+ SET 'TMP,FALSE-VALUE
+?PRG8: IGRTR? 'CNT,ICNT /?REP9
+ GETB P-PRSI,CNT
+ EQUAL? STACK,IT \?PRG8
+ CALL TOO-DARK-FOR-IT?
+ ZERO? STACK \TRUE
+ PUTB P-PRSI,CNT,P-IT-OBJECT
+ SET 'TMP,TRUE-VALUE
+?REP9: ZERO? TMP \?CND17
+ SET 'CNT,0
+?PRG19: IGRTR? 'CNT,OCNT /?CND17
+ GETB P-PRSO,CNT
+ EQUAL? STACK,IT \?PRG19
+ CALL TOO-DARK-FOR-IT?
+ ZERO? STACK \TRUE
+ PUTB P-PRSO,CNT,P-IT-OBJECT
+?CND17: SET 'CNT,0
+?CND4: GETB P-SYNTAX,P-SBITS
+ BAND STACK,P-SONUMS >ONUM
+ ZERO? OCNT /?CTR29
+ ZERO? ICNT \?CCL30
+ EQUAL? ONUM,2 \?CCL30
+?CTR29: SET 'NUM,0
+ JUMP ?CND28
+?CCL30: GRTR? OCNT,1 \?CCL36
+ SET 'TBL,P-PRSO
+ ZERO? ICNT \?CCL39
+ SET 'OBJ,FALSE-VALUE
+ JUMP ?CND37
+?CCL39: GETB P-PRSI,1 >OBJ
+?CND37: SET 'NUM,OCNT
+ JUMP ?CND28
+?CCL36: GRTR? ICNT,1 \?CCL41
+ SET 'PTBL,FALSE-VALUE
+ SET 'TBL,P-PRSI
+ GETB P-PRSO,1 >OBJ
+ SET 'NUM,ICNT
+ JUMP ?CND28
+?CCL41: SET 'NUM,1
+?CND28: ZERO? OBJ \?CND42
+ EQUAL? ICNT,1 \?CND42
+ GETB P-PRSI,1 >OBJ
+?CND42: EQUAL? PRSA,V?WALK \?CCL48
+ CALL PERFORM-PRSA,PRSO >V
+ JUMP ?CND46
+?CCL48: ZERO? NUM \?CCL50
+ GETB P-SYNTAX,P-SBITS
+ BAND STACK,P-SONUMS
+ ZERO? STACK \?CCL53
+ CALL PERFORM-PRSA >V
+ SET 'PRSO,FALSE-VALUE
+ JUMP ?CND46
+?CCL53: PRINTI "There isn't anything to "
+ GET P-ITBL,P-VERBN >TMP
+ EQUAL? PRSA,V?TELL \?CCL56
+ PRINTI "talk to"
+ JUMP ?CND54
+?CCL56: ZERO? P-OFLAG \?CTR57
+ ZERO? P-MERGED /?CCL58
+?CTR57: GET TMP,0
+ PRINTB STACK
+ JUMP ?CND54
+?CCL58: GETB TMP,2 >?TMP1
+ GETB TMP,3
+ CALL WORD-PRINT,?TMP1,STACK
+?CND54: PRINTC 33
+ CRLF
+ SET 'V,FALSE-VALUE
+ CALL STOP
+ JUMP ?CND46
+?CCL50: SET 'P-NOT-HERE,0
+ SET 'P-MULT,FALSE-VALUE
+ GRTR? NUM,1 \?CND61
+ SET 'P-MULT,TRUE-VALUE
+?CND61: SET 'TMP,FALSE-VALUE
+?PRG63: IGRTR? 'CNT,NUM \?CCL67
+ GRTR? P-NOT-HERE,0 \?CCL70
+ PRINTI "[The "
+ EQUAL? P-NOT-HERE,NUM /?CND71
+ PRINTI "other "
+?CND71: PRINTI "object"
+ EQUAL? P-NOT-HERE,1 /?CND73
+ PRINTC 115
+?CND73: PRINTI " that you mentioned "
+ EQUAL? P-NOT-HERE,1 /?CCL77
+ PRINTI "are"
+ JUMP ?CND75
+?CCL77: PRINTI "is"
+?CND75: PRINTI "n't here.]"
+ CRLF
+ JUMP ?CND46
+?CCL70: ZERO? TMP \?CND46
+ CALL REFERRING
+ JUMP ?CND46
+?CCL67: ZERO? PTBL /?CCL81
+ GETB P-PRSO,CNT >OBJ1
+ JUMP ?CND79
+?CCL81: GETB P-PRSI,CNT >OBJ1
+?CND79: ZERO? PTBL /?CCL84
+ SET 'PRSO,OBJ1
+ JUMP ?CND82
+?CCL84: SET 'PRSO,OBJ
+?CND82: ZERO? PTBL /?CCL87
+ SET 'PRSI,OBJ
+ JUMP ?CND85
+?CCL87: SET 'PRSI,OBJ1
+?CND85: GRTR? NUM,1 /?CCL89
+ GET P-ITBL,P-NC1
+ GET STACK,0
+ EQUAL? STACK,W?ALL,W?EVERYT \?CND88
+?CCL89: CALL DONT-ALL,OBJ1
+ ZERO? STACK \?PRG63
+ EQUAL? OBJ1,IT \?CCL97
+ PRINTD P-IT-OBJECT
+ JUMP ?CND95
+?CCL97: EQUAL? OBJ1,HIM \?CCL99
+ PRINTD P-HIM-OBJECT
+ JUMP ?CND95
+?CCL99: EQUAL? OBJ1,HER \?CCL101
+ PRINTD P-HER-OBJECT
+ JUMP ?CND95
+?CCL101: PRINTD OBJ1
+?CND95: PRINTI ": "
+?CND88: SET 'TMP,TRUE-VALUE
+ CALL PERFORM-PRSA,PRSO,PRSI >V
+ EQUAL? V,M-FATAL \?PRG63
+?CND46: EQUAL? V,M-FATAL \?CND104
+ SET 'P-CONT,FALSE-VALUE
+?CND104: CALL CLOCKER-VERB?
+ ZERO? STACK /?CND1
+ EQUAL? PRSA,V?TELL /?CND1
+ ZERO? P-WON /?CND1
+ GETP HERE,P?ACTION
+ CALL STACK,M-END >V
+ JUMP ?CND1
+?CCL3: SET 'P-CONT,FALSE-VALUE
+?CND1: ZERO? P-WON /FALSE
+ CALL CLOCKER-VERB?
+ ZERO? STACK /?CND114
+ CALL CLOCKER >V
+?CND114: SET 'PRSA,FALSE-VALUE
+ SET 'PRSO,FALSE-VALUE
+ SET 'PRSI,FALSE-VALUE
+ RETURN PRSI
+
+
+ .FUNCT TOO-DARK-FOR-IT?
+ ZERO? LIT \FALSE
+ CALL HELD?,P-IT-OBJECT,WINNER
+ ZERO? STACK \FALSE
+ IN? WINNER,P-IT-OBJECT /FALSE
+ PRINT TOO-DARK
+ CRLF
+ RTRUE
+
+
+ .FUNCT DONT-ALL,OBJ1,L
+ LOC OBJ1 >L
+ EQUAL? OBJ1,NOT-HERE-OBJECT \?CCL3
+ INC 'P-NOT-HERE
+ RTRUE
+?CCL3: EQUAL? PRSA,V?TAKE \?CCL5
+ ZERO? PRSI /?CCL5
+ IN? PRSO,PRSI \TRUE
+?CCL5: CALL ACCESSIBLE?,OBJ1
+ ZERO? STACK /TRUE
+ EQUAL? P-GETFLAGS,P-ALL \FALSE
+ ZERO? PRSI /?CCL15
+ EQUAL? PRSO,PRSI /TRUE
+?CCL15: EQUAL? PRSA,V?TAKE \?CCL19
+ FSET? OBJ1,TAKEBIT /?CCL22
+ FSET? OBJ1,TRYTAKEBIT \TRUE
+?CCL22: EQUAL? L,WINNER,HERE,PRSI /?CCL26
+ LOC WINNER
+ EQUAL? L,STACK /?CCL26
+ FSET? L,SURFACEBIT \TRUE
+ FSET? L,TAKEBIT /TRUE
+ RFALSE
+?CCL26: EQUAL? OBJ1,BOOKS-GLOBAL,POWER /TRUE
+ ZERO? PRSI \FALSE
+ CALL HELD?,PRSO
+ ZERO? STACK /FALSE
+ RTRUE
+?CCL19: EQUAL? PRSA,V?PUT-ON,V?PUT,V?DROP /?PRD43
+ EQUAL? PRSA,V?SGIVE,V?GIVE \?CCL41
+?PRD43: IN? OBJ1,WINNER \TRUE
+?CCL41: EQUAL? PRSA,V?PUT-ON,V?PUT \FALSE
+ IN? PRSO,WINNER /FALSE
+ CALL HELD?,PRSO,PRSI
+ ZERO? STACK \TRUE
+ RFALSE
+
+
+ .FUNCT CLOCKER-VERB?
+ EQUAL? PRSA,V?$RECORD,V?HELP,V?VERSION /FALSE
+ EQUAL? PRSA,V?$RANDOM,V?$COMMAND,V?$UNRECORD /FALSE
+ EQUAL? PRSA,V?RESTART,V?RESTORE,V?SAVE /FALSE
+ EQUAL? PRSA,V?UNSCRIPT,V?SCRIPT,V?QUIT /FALSE
+ EQUAL? PRSA,V?VERBOSE,V?SUPER-BRIEF,V?BRIEF /FALSE
+ EQUAL? PRSA,V?SCORE /FALSE
+ RTRUE
+
+
+ .FUNCT FAKE-ORPHAN,IT-WAS-USED=0,TMP,?TMP1
+ CALL ORPHAN,P-SYNTAX,FALSE-VALUE
+ GET P-OTBL,P-VERBN >TMP
+ PRINTI "[Be specific: Wh"
+ ZERO? IT-WAS-USED /?CCL3
+ PRINTI "at object"
+ JUMP ?CND1
+?CCL3: PRINTC 111
+?CND1: PRINT DO-YOU-WANT
+ ZERO? TMP \?CCL6
+ PRINTI "tell"
+ JUMP ?CND4
+?CCL6: GETB P-VTBL,2
+ ZERO? STACK \?CCL8
+ GET TMP,0
+ PRINTB STACK
+ JUMP ?CND4
+?CCL8: GETB TMP,2 >?TMP1
+ GETB TMP,3
+ CALL WORD-PRINT,?TMP1,STACK
+ PUTB P-VTBL,2,0
+?CND4: SET 'P-OFLAG,TRUE-VALUE
+ SET 'P-WON,FALSE-VALUE
+ GETB P-SYNTAX,P-SPREP1
+ CALL PREP-PRINT,STACK
+ PRINTR "?]"
+
+
+ .FUNCT PERFORM-PRSA,O=0,I=0
+ CALL PERFORM,PRSA,O,I
+ RTRUE
+
+
+ .FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
+ SET 'OA,PRSA
+ SET 'OO,PRSO
+ SET 'OI,PRSI
+ SET 'PRSA,A
+ EQUAL? IT,O,I \?CND1
+ EQUAL? A,V?WALK /?CND1
+ CALL VISIBLE?,P-IT-OBJECT
+ ZERO? STACK /?CCL7
+ EQUAL? IT,O \?CCL10
+ SET 'O,P-IT-OBJECT
+ JUMP ?CND1
+?CCL10: SET 'I,P-IT-OBJECT
+?CND1: EQUAL? HIM,O,I \?CND16
+ EQUAL? A,V?WALK /?CND16
+ CALL VISIBLE?,P-HIM-OBJECT
+ ZERO? STACK /?CCL22
+ EQUAL? HIM,O \?CCL25
+ SET 'O,P-HIM-OBJECT
+ JUMP ?CND16
+?CCL7: ZERO? I \?CCL13
+ CALL FAKE-ORPHAN,TRUE-VALUE
+ RETURN 8
+?CCL13: CALL REFERRING
+ RETURN 8
+?CCL25: SET 'I,P-HIM-OBJECT
+?CND16: EQUAL? HER,O,I \?CND31
+ EQUAL? A,V?WALK /?CND31
+ CALL VISIBLE?,P-HER-OBJECT
+ ZERO? STACK /?CCL37
+ EQUAL? HER,O \?CCL40
+ SET 'O,P-HER-OBJECT
+ JUMP ?CND31
+?CCL22: ZERO? I \?CCL28
+ CALL FAKE-ORPHAN
+ RETURN 8
+?CCL28: CALL REFERRING,TRUE-VALUE
+ RETURN 8
+?CCL40: SET 'I,P-HER-OBJECT
+?CND31: SET 'PRSO,O
+ SET 'PRSI,I
+ EQUAL? A,V?WALK /?CCL48
+ EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CCL48
+ CALL D-APPLY,STR?232,NOT-HERE-OBJECT-F >V
+ ZERO? V /?CCL48
+ SET 'P-WON,FALSE-VALUE
+ JUMP ?CND46
+?CCL37: ZERO? I \?CCL43
+ CALL FAKE-ORPHAN
+ RETURN 8
+?CCL43: CALL REFERRING,TRUE-VALUE
+ RETURN 8
+?CCL48: SET 'O,PRSO
+ SET 'I,PRSI
+ CALL THIS-IS-IT,PRSI
+ CALL THIS-IS-IT,PRSO
+ GETP WINNER,P?ACTION
+ CALL D-APPLY,STR?233,STACK >V
+ ZERO? V \?CND46
+ LOC WINNER
+ GETP STACK,P?ACTION
+ CALL D-APPLY,STR?234,STACK,M-BEG >V
+ ZERO? V \?CND46
+ GET PREACTIONS,A
+ CALL D-APPLY,STR?235,STACK >V
+ ZERO? V \?CND46
+ ZERO? I /?CCL60
+ GETP I,P?ACTION
+ CALL D-APPLY,STR?236,STACK >V
+ ZERO? V \?CND46
+?CCL60: ZERO? O /?CCL64
+ EQUAL? A,V?WALK /?CCL64
+ GETP O,P?ACTION
+ CALL D-APPLY,STR?237,STACK >V
+ ZERO? V \?CND46
+?CCL64: GET ACTIONS,A
+ CALL D-APPLY,FALSE-VALUE,STACK >V
+ ZERO? V /?CND46
+?CND46: SET 'PRSA,OA
+ SET 'PRSO,OO
+ SET 'PRSI,OI
+ RETURN V
+
+
+ .FUNCT D-APPLY,STR,FCN,FOO=0,RES
+ ZERO? FCN /FALSE
+ ZERO? FOO /?CCL6
+ CALL FCN,FOO >RES
+ RETURN RES
+?CCL6: CALL FCN >RES
+ RETURN RES
+
+
+ .FUNCT DEQUEUE,RTN
+ CALL QUEUED?,RTN >RTN
+ ZERO? RTN /FALSE
+ PUT RTN,C-RTN,0
+ RTRUE
+
+
+ .FUNCT QUEUED?,RTN,C,E
+ ADD C-TABLE,C-TABLELEN >E
+ ADD C-TABLE,C-INTS >C
+?PRG1: EQUAL? C,E /FALSE
+ GET C,C-RTN
+ EQUAL? STACK,RTN \?CND3
+ GET C,C-TICK
+ ZERO? STACK /FALSE
+ RETURN C
+?CND3: ADD C,C-INTLEN >C
+ JUMP ?PRG1
+
+
+ .FUNCT RUNNING?,RTN,C
+ CALL QUEUED?,RTN >C
+ ZERO? C /FALSE
+ GET C,C-TICK
+ GRTR? STACK,1 \TRUE
+ RFALSE
+
+
+ .FUNCT QUEUE,RTN,TICK,C,E,INT=0
+ ADD C-TABLE,C-TABLELEN >E
+ ADD C-TABLE,C-INTS >C
+?PRG1: EQUAL? C,E \?CCL5
+ ZERO? INT /?CCL8
+ SET 'C,INT
+ JUMP ?CND6
+?CCL8: LESS? C-INTS,C-INTLEN \?CND9
+ PRINTI "**Too many ints!**"
+ CRLF
+?CND9: SUB C-INTS,C-INTLEN >C-INTS
+ LESS? C-INTS,C-MAXINTS \?CND11
+ SET 'C-MAXINTS,C-INTS
+?CND11: ADD C-TABLE,C-INTS >INT
+?CND6: PUT INT,C-RTN,RTN
+ JUMP ?REP2
+?CCL5: GET C,C-RTN
+ EQUAL? STACK,RTN \?CCL14
+ SET 'INT,C
+?REP2: ZERO? CLOCK-HAND /?CND16
+ GRTR? INT,CLOCK-HAND \?CND16
+ ADD TICK,3
+ SUB 0,STACK >TICK
+?CND16: PUT INT,C-TICK,TICK
+ RETURN INT
+?CCL14: GET C,C-RTN
+ ZERO? STACK \?CND3
+ SET 'INT,C
+?CND3: ADD C,C-INTLEN >C
+ JUMP ?PRG1
+
+
+ .FUNCT CLOCKER,E,TICK,RTN,FLG=0,Q?=0,OWINNER
+ ZERO? CLOCK-WAIT /?CND1
+ SET 'CLOCK-WAIT,FALSE-VALUE
+ RFALSE
+?CND1: ADD C-TABLE,C-INTS >CLOCK-HAND
+ ADD C-TABLE,C-TABLELEN >E
+ SET 'OWINNER,WINNER
+ SET 'WINNER,PROTAGONIST
+?PRG3: EQUAL? CLOCK-HAND,E \?CCL7
+ SET 'CLOCK-HAND,E
+ INC 'MOVES
+ SET 'WINNER,OWINNER
+ RETURN FLG
+?CCL7: GET CLOCK-HAND,C-RTN
+ ZERO? STACK /?CND5
+ GET CLOCK-HAND,C-TICK >TICK
+ LESS? TICK,-1 \?CCL11
+ SUB 0,TICK
+ SUB STACK,3
+ PUT CLOCK-HAND,C-TICK,STACK
+ SET 'Q?,CLOCK-HAND
+ JUMP ?CND5
+?CCL11: ZERO? TICK /?CND5
+ GRTR? TICK,0 \?CND13
+ DEC 'TICK
+ PUT CLOCK-HAND,C-TICK,TICK
+?CND13: ZERO? TICK /?CND15
+ SET 'Q?,CLOCK-HAND
+?CND15: GRTR? TICK,0 /?CND5
+ GET CLOCK-HAND,C-RTN >RTN
+ ZERO? TICK \?CND19
+ PUT CLOCK-HAND,C-RTN,0
+?CND19: CALL RTN
+ ZERO? STACK /?CND21
+ SET 'FLG,TRUE-VALUE
+?CND21: ZERO? Q? \?CND5
+ GET CLOCK-HAND,C-RTN
+ ZERO? STACK /?CND5
+ SET 'Q?,TRUE-VALUE
+?CND5: ADD CLOCK-HAND,C-INTLEN >CLOCK-HAND
+ ZERO? Q? \?PRG3
+ ADD C-INTS,C-INTLEN >C-INTS
+ JUMP ?PRG3
+
+ .ENDI
diff --git a/misc.zil b/misc.zil
new file mode 100644
index 0000000..5d81ae7
--- /dev/null
+++ b/misc.zil
@@ -0,0 +1,775 @@
+"MISC for
+ PLUNDERED HEARTS
+ (c) Copyright 1987 Infocom, Inc. All Rights Reserved."
+
+;"macros"
+
+<TELL-TOKENS (CRLF CR) <CRLF>
+ D * <PRINTD .X>
+ A * <APRINT .X>
+ T ,PRSO <TPRINT-PRSO>
+ T ,PRSI <TPRINT-PRSI>
+ T * <TPRINT .X>
+ AR * <ARPRINT .X>
+ TR * <TRPRINT .X>
+ N * <PRINTN .X>
+ C * <PRINTC .X>
+ CTHE * <CTPRINT .X>>
+
+<DEFMAC VERB? ("ARGS" ATMS)
+ <MULTIFROB PRSA .ATMS>>
+
+<DEFMAC PRSO? ("ARGS" ATMS)
+ <MULTIFROB PRSO .ATMS>>
+
+<DEFMAC PRSI? ("ARGS" ATMS)
+ <MULTIFROB PRSI .ATMS>>
+
+<DEFMAC ROOM? ("ARGS" ATMS)
+ <MULTIFROB HERE .ATMS>>
+
+<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM)
+ <REPEAT ()
+ <COND (<EMPTY? .ATMS>
+ <RETURN!- <COND (<LENGTH? .OO 1> <ERROR .X>)
+ (<LENGTH? .OO 2> <NTH .OO 2>)
+ (ELSE <CHTYPE .OO FORM>)>>)>
+ <REPEAT ()
+ <COND (<EMPTY? .ATMS> <RETURN!->)>
+ <SET ATM <NTH .ATMS 1>>
+ <SET L
+ (<COND (<TYPE? .ATM ATOM>
+ <CHTYPE <COND (<==? .X PRSA>
+ <PARSE
+ <STRING "V?"
+ <SPNAME .ATM>>>)
+ (ELSE .ATM)> GVAL>)
+ (ELSE .ATM)>
+ !.L)>
+ <SET ATMS <REST .ATMS>>
+ <COND (<==? <LENGTH .L> 3> <RETURN!->)>>
+ <SET O <REST <PUTREST .O
+ (<FORM EQUAL? <CHTYPE .X GVAL> !.L>)>>>
+ <SET L ()>>>
+
+<DEFMAC BSET ('OBJ "ARGS" BITS)
+ <MULTIBITS FSET .OBJ .BITS>>
+
+<DEFMAC BCLEAR ('OBJ "ARGS" BITS)
+ <MULTIBITS FCLEAR .OBJ .BITS>>
+
+<DEFMAC BSET? ('OBJ "ARGS" BITS)
+ <MULTIBITS FSET? .OBJ .BITS>>
+
+<DEFINE MULTIBITS (X OBJ ATMS "AUX" (O ()) ATM)
+ <REPEAT ()
+ <COND (<EMPTY? .ATMS>
+ <RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
+ (<EQUAL? .X FSET?> <FORM OR !.O>)
+ (ELSE <FORM PROG () !.O>)>>)>
+ <SET ATM <NTH .ATMS 1>>
+ <SET ATMS <REST .ATMS>>
+ <SET O
+ (<FORM .X
+ .OBJ
+ <COND (<TYPE? .ATM FORM> .ATM)
+ (ELSE <FORM GVAL .ATM>)>>
+ !.O)>>>
+
+<DEFMAC RFATAL ()
+ '<PROG () <PUSH 8> <RSTACK>>>
+
+<DEFMAC PROB ('BASE?)
+ <FORM NOT <FORM L? .BASE? '<RANDOM 100>>>>
+
+<DEFMAC GET/B ('TBL 'PTR)
+ <COND ;(<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
+ <FORM GET .TBL .PTR>)
+ (T <FORM GETB .TBL .PTR>)>>
+
+<DEFMAC PUT/B ('TBL 'PTR 'OBJ)
+ <COND ;(<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
+ <FORM PUT .TBL .PTR .OBJ>)
+ (T <FORM PUTB .TBL .PTR .OBJ>)>>
+
+<DEFMAC ZMEMQ/B ('OBJ 'TBL)
+ <COND ;(<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
+ <FORM ZMEMQ .OBJ .TBL>)
+ (T <FORM ZMEMQB .OBJ .TBL>)>>
+
+;<ROUTINE ;PICK-ONE (FROB)
+ <GET .FROB <RANDOM <GET .FROB 0>>>>
+
+;"this new PICK-ONE won't begin repeating any of the items in the table until
+ they've all been used."
+<ROUTINE PICK-ONE (TBL "AUX" LENGTH CNT RND MSG RFROB)
+ <SET LENGTH <GET .TBL 0>>
+ <SET CNT <GET .TBL 1>>
+ <SET LENGTH <- .LENGTH 1>>
+ <SET TBL <REST .TBL 2>>
+ <SET RFROB <REST .TBL <* .CNT 2>>>
+ <SET RND <RANDOM <- .LENGTH .CNT>>>
+ <SET MSG <GET .RFROB .RND>>
+ <PUT .RFROB .RND <GET .RFROB 1>>
+ <PUT .RFROB 1 .MSG>
+ <SET CNT <+ .CNT 1>>
+ <COND (<==? .CNT .LENGTH>
+ <SET CNT 0>)>
+ <PUT .TBL 0 .CNT>
+ .MSG>
+
+;<ROUTINE DPRINT (OBJ)
+ <COND ;(<EQUAL? .OBJ ,SULTANS-WIFE>
+ <TELL "Sultan">
+ <COND (,MALE
+ <TELL "'s wife #">)
+ (T
+ <TELL "ess' husband #">)>
+ <PRINTN ,CHOICE-NUMBER>)
+ ;(<FSET? .OBJ ,UNTEEDBIT>
+ <TELL <GETP .OBJ ,P?NO-T-DESC>>)
+ (<GETP .OBJ ,P?SDESC>
+ <TELL <GETP .OBJ ,P?SDESC>>)
+ (T
+ <PRINTD .OBJ>)>>
+
+;<ROUTINE DPRINT-SIDEKICK ()
+ <DPRINT ,SIDEKICK>>
+
+<ROUTINE APRINT (OBJ)
+ <COND (<OR <FSET? .OBJ ,NARTICLEBIT>
+ <EQUAL? .OBJ ,PANTS ,RUM ,SALTS>>
+ <TELL " ">)
+ (<FSET? .OBJ ,VOWELBIT>
+ <TELL " an ">)
+ (T
+ <TELL " a ">)>
+ <PRINTD .OBJ>>
+
+<ROUTINE TPRINT (OBJ)
+ <COND (<FSET? .OBJ ,NARTICLEBIT>
+ <TELL " ">)
+ (T
+ <TELL " the ">)>
+ <PRINTD .OBJ>>
+
+<ROUTINE CTPRINT (OBJ)
+ <TELL "The ">
+ <PRINTD .OBJ>>
+
+<ROUTINE TPRINT-PRSO ()
+ <TPRINT ,PRSO>>
+
+<ROUTINE TPRINT-PRSI ()
+ <TPRINT ,PRSI>>
+
+<ROUTINE ARPRINT (OBJ)
+ <APRINT .OBJ>
+ <TELL ,PCR>>
+
+<ROUTINE TRPRINT (OBJ)
+ <TPRINT .OBJ>
+ <TELL ,PCR>>
+
+<DEFINE PSEUDO ("TUPLE" V)
+ <MAPF ,PLTABLE
+ <FUNCTION (OBJ)
+ <COND (<N==? <LENGTH .OBJ> 3>
+ <ERROR BAD-THING .OBJ>)>
+ <MAPRET <COND (<NTH .OBJ 2>
+ <VOC <SPNAME <NTH .OBJ 2>> NOUN>)>
+ <COND (<NTH .OBJ 1>
+ <VOC <SPNAME <NTH .OBJ 1>> ADJECTIVE>)>
+ <3 .OBJ>>>
+ .V>>
+
+;"MAIN-LOOP and associated routines"
+
+<CONSTANT M-BEG 1>
+<CONSTANT M-ENTER 2>
+<CONSTANT M-LOOK 3>
+<CONSTANT M-FLASH 4>
+<CONSTANT M-OBJDESC 5>
+<CONSTANT M-END 6>
+;<CONSTANT M-SMELL 7>
+<CONSTANT M-FATAL 8>
+<CONSTANT M-DESC? 9>
+<CONSTANT M-EXDESC 10>
+
+<ROOM FRONTISPIECE
+ (IN ROOMS)
+ ;(DESC "THE CARIBBEAN, 16--")
+ ;(DESC ">SHOOT THE PIRATE")
+ (DESC "Plundered Hearts")
+ (NW "You can't go that way.")
+ (SW "You can't go that way.")
+ (SYNONYM ZZMGCK) ;"No, this synonym doesn't need to exist... sigh">
+
+<GLOBAL EYES-RAKE " his eyes rake over your inadequately dressed body, the
+damp chemise clinging to your legs and heaving bosom, your gleaming hair">
+
+<ZSTART GO> ;"else, ZIL gets confused between verb-word GO and routine GO"
+
+<ROUTINE GO () ;"NOTE: this routine CANNOT have any local variables"
+ ;<SETG HERE ,FRONTISPIECE>
+ <TELL
+">SHOOT THE PIRATE|
+Trembling, you fire the heavy arquebus. You hear its loud report over the
+roaring wind, yet the dark figure still approaches. The gun falls from your
+nerveless hands.|
+ \"You won't kill me,\" he says, stepping over the weapon. \"Not when I am
+the only protection you have from Jean Lafond.\"|
+ " ,NUTBROWN "Lips curving," ,EYES-RAKE ". You are intensely aware of the
+strength of his hard seaworn body, of the deep sea blue of his eyes. And
+then his mouth is on yours, lips parted, demanding, and you arch into his
+kiss...|
+ He presses you against him, head bent. \"But who, my dear,\" he whispers
+into your hair, \"will protect you from me?\"|">
+ ;<CLEAR-SCREEN 5>
+ <TELL CR ,HIT-RETURN "begin.]" CR>
+ <READ ,P-INBUF ,P-LEXV>
+ <USL>
+ <CLEAR-SCREEN 11>
+ ;<SETG WINNER ,PROTAGONIST>
+ <SETG HERE ,CABIN>
+ ;<MOVE ,PROTAGONIST ,CABIN-BED>
+ <USL>
+ <V-VERSION>
+ <CRLF>
+ <TELL "LATE ONE SPRING NIGHT IN THE WEST INDIES...||
+ A crash overhead! Pirates are boarding the Lafond Deux!
+The first mate hurries you into Captain Davis's cabin.|
+ \"Good, you brought the girl,\" Davis smirks. \"She'll keep the
+pirates busy. She was only a tool of Lafond's, anyway. Let me just find
+that cof--\" A man on deck screams in agony and Davis starts. \"Let's
+go.\" The captain thrusts you on the bed and walks out, locking the door.|
+ His laugh echoes. \"Best get comfortable, girl. You're likely to be
+there for the rest of your life.\"" CR CR>
+ <V-LOOK>
+ ;<QUEUE I-PIRATE-ATTACK -1>
+ ;<QUEUE I-COFFER 5>
+ ;<QUEUE I-CRULLEY 9>
+ ;<QUEUE I-JIGS-UP-SNAFU 25>
+ <MAIN-LOOP>
+ <AGAIN>>
+
+<ROUTINE CLEAR-SCREEN ("OPTIONAL" (CNT 24))
+ <REPEAT ()
+ <CRLF>
+ <SET CNT <- .CNT 1>>
+ <COND (<0? .CNT>
+ <RETURN>)>>>
+
+<ROUTINE MAIN-LOOP ("AUX" TRASH)
+ <REPEAT ()
+ <SET TRASH <MAIN-LOOP-1>>>>
+
+<ROUTINE MAIN-LOOP-1 ("AUX" ICNT OCNT NUM (CNT 0) (OBJ <>) TBL
+ V (PTBL T) OBJ1 TMP ONUM)
+ <COND (<SETG P-WON <PARSER>>
+ <SET ICNT <GET/B ,P-PRSI ,P-MATCHLEN>>
+ <SET OCNT <GET/B ,P-PRSO ,P-MATCHLEN>>
+ <COND (<AND ,P-IT-OBJECT
+ <ACCESSIBLE? ,P-IT-OBJECT>>
+ <SET TMP <>>
+ <REPEAT ()
+ <COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
+ <RETURN>)
+ (T
+ <COND (<EQUAL? <GET/B ,P-PRSI .CNT> ,IT>
+ <COND (<TOO-DARK-FOR-IT?> <RTRUE>)>
+ <PUT/B ,P-PRSI .CNT ,P-IT-OBJECT>
+ <SET TMP T>
+ <RETURN>)>)>>
+ <COND (<NOT .TMP>
+ <SET CNT 0>
+ <REPEAT ()
+ <COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
+ <RETURN>)
+ (T
+ <COND (<EQUAL? <GET/B ,P-PRSO .CNT> ,IT>
+ <COND (<TOO-DARK-FOR-IT?> <RTRUE>)>
+ <PUT/B ,P-PRSO .CNT ,P-IT-OBJECT>
+ <RETURN>)>)>>)>
+ <SET CNT 0>)>
+ <SET ONUM <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
+ <SET NUM
+ <COND (<OR <ZERO? .OCNT>
+ <AND <ZERO? .ICNT>
+ <EQUAL? .ONUM 2>>>
+ 0)
+ (<G? .OCNT 1>
+ <SET TBL ,P-PRSO>
+ <COND (<ZERO? .ICNT> <SET OBJ <>>)
+ (T <SET OBJ <GET/B ,P-PRSI 1>>)>
+ .OCNT)
+ (<G? .ICNT 1>
+ <SET PTBL <>>
+ <SET TBL ,P-PRSI>
+ <SET OBJ <GET/B ,P-PRSO 1>>
+ .ICNT)
+ (T 1)>>
+ ;<SET NUM <COND (<0? .OCNT>
+ .OCNT)
+ (<G? .OCNT 1>
+ <SET TBL ,P-PRSO>
+ <COND (<0? .ICNT>
+ <SET OBJ <>>)
+ (T
+ <SET OBJ <GET/B ,P-PRSI 1>>)>
+ .OCNT)
+ (<G? .ICNT 1>
+ <SET PTBL <>>
+ <SET TBL ,P-PRSI>
+ <SET OBJ <GET/B ,P-PRSO 1>>
+ .ICNT)
+ (T
+ 1 ;.ICNT)>>
+ <COND (<AND <NOT .OBJ>
+ <1? .ICNT>>
+ <SET OBJ <GET/B ,P-PRSI 1>>)>
+ <COND (<EQUAL? ,PRSA ,V?WALK>
+ <SET V <PERFORM-PRSA ,PRSO>>)
+ (<0? .NUM>
+ <COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
+ <SET V <PERFORM-PRSA>>
+ <SETG PRSO <>>)
+ ;(<NOT ,LIT>
+ <TELL ,TOO-DARK CR>
+ <STOP>)
+ (T
+ <TELL "There isn't anything to ">
+ <SET TMP <GET ,P-ITBL ,P-VERBN>>
+ <COND (<VERB? TELL>
+ <TELL "talk to">)
+ (<OR ,P-OFLAG ,P-MERGED>
+ <PRINTB <GET .TMP 0>>)
+ (T
+ <WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>)>
+ <TELL "!" CR>
+ <SET V <>>
+ <STOP>)>)
+ (T
+ <SETG P-NOT-HERE 0>
+ <SETG P-MULT <>>
+ <COND (<G? .NUM 1>
+ <SETG P-MULT T>)>
+ <SET TMP <>>
+ <REPEAT ()
+ <COND (<G? <SET CNT <+ .CNT 1>> .NUM>
+ <COND (<G? ,P-NOT-HERE 0>
+ <TELL "[The ">
+ <COND (<NOT <EQUAL? ,P-NOT-HERE .NUM>>
+ <TELL "other ">)>
+ <TELL "object">
+ <COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
+ <TELL "s">)>
+ <TELL " that you mentioned ">
+ <COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
+ <TELL "are">)
+ (T
+ <TELL "is">)>
+ <TELL "n't here.]" CR>)
+ (<NOT .TMP>
+ <REFERRING>)>
+ <RETURN>)
+ (T
+ <COND (.PTBL
+ <SET OBJ1 <GET/B ,P-PRSO .CNT>>)
+ (T
+ <SET OBJ1 <GET/B ,P-PRSI .CNT>>)>
+ <SETG PRSO <COND (.PTBL
+ .OBJ1)
+ (T
+ .OBJ)>>
+ <SETG PRSI <COND (.PTBL
+ .OBJ)
+ (T
+ .OBJ1)>>
+ <COND (<OR <G? .NUM 1>
+ <EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0>
+ ,W?ALL
+ ,W?EVERYT>>
+ <COND (<DONT-ALL .OBJ1>
+ <AGAIN>)
+ (T
+ <COND (<EQUAL? .OBJ1 ,IT>
+ <TELL D ,P-IT-OBJECT>)
+ (<EQUAL? .OBJ1 ,HIM>
+ <TELL D ,P-HIM-OBJECT>)
+ (<EQUAL? .OBJ1 ,HER>
+ <TELL D ,P-HER-OBJECT>)
+ (T
+ <TELL D .OBJ1>)>
+ <TELL ": ">)>)>
+ <SET TMP T>
+ <SET V <PERFORM-PRSA ,PRSO ,PRSI>>
+ <COND (<EQUAL? .V ,M-FATAL>
+ <RETURN>)>)>>)>
+ <COND (<EQUAL? .V ,M-FATAL>
+ <SETG P-CONT <>>)>
+ <COND (<AND <CLOCKER-VERB?>
+ <NOT <VERB? TELL>>
+ ,P-WON ;"fake YOU CANT SEE responses set P-WON to false">
+ <SET V <APPLY <GETP ,HERE ,P?ACTION> ,M-END>>)>)
+ (T
+ <SETG P-CONT <>>)>
+ <COND (,P-WON
+ <COND (<CLOCKER-VERB?>
+ <SET V <CLOCKER>>)>
+ <SETG PRSA <>>
+ <SETG PRSO <>>
+ <SETG PRSI <>>)>
+ ;<COND (<AND ,AWAITING-FAKE-ORPHAN
+ <NOT ,P-OFLAG>>
+ <ORPHAN-VERB>)>>
+
+<ROUTINE TOO-DARK-FOR-IT? ()
+ <COND (<AND <NOT ,LIT>
+ <NOT <HELD? ,P-IT-OBJECT ,WINNER>>
+ <NOT <IN? ,WINNER ,P-IT-OBJECT>>>
+ <TELL ,TOO-DARK CR>
+ <RTRUE>)>>
+
+<ROUTINE DONT-ALL (OBJ1 "AUX" (L <LOC .OBJ1>))
+ ;"RFALSE if OBJ1 should be included in the ALL, otherwise RTRUE"
+ <COND (<EQUAL? .OBJ1 ,NOT-HERE-OBJECT>
+ <SETG P-NOT-HERE <+ ,P-NOT-HERE 1>>
+ <RTRUE>)