cutthroats/wrecks.zap
historicalsource 6af9d8816e Final Revision
2019-04-13 20:21:35 -04:00

1535 lines
37 KiB
Plaintext

.FUNCT UNDERWATER-F,RARG
EQUAL? RARG,M-ENTER \?ELS5
FCLEAR UNDERWATER,TOUCHBIT
IN? SHARK,LOCAL-GLOBALS \?CND6
CALL QUEUED?,I-SHARK
ZERO? STACK \?CND6
DIV OCEAN-BOTTOM,50
SUB STACK,1
RANDOM STACK
CALL QUEUE,I-SHARK,STACK
PUT STACK,0,1
?CND6: MOVE LINE-HACK,UNDERWATER
RFALSE
?ELS5: EQUAL? RARG,M-LOOK \?ELS12
PRINTR "You are in the sea, completely surrounded by water."
?ELS12: EQUAL? RARG,M-BEG \FALSE
EQUAL? LINE-HACK,PRSO,PRSI \?ELS21
CALL TELL-CANT-REACH,STR?338
RSTACK
?ELS21: EQUAL? PRSA,V?WALK \?ELS23
EQUAL? P-WALK-DIR,P?UP,P?DOWN /?ELS23
CALL TELL-NOWHERE
RSTACK
?ELS23: EQUAL? PRSA,V?SWIM,V?DIVE,V?WALK /FALSE
EQUAL? PRSA,V?SAVE,V?EXAMINE,V?LOOK /FALSE
EQUAL? PRSA,V?SCORE,V?QUIT,V?RESTORE /FALSE
EQUAL? PRSA,V?DIAGNOSE,V?FIND,V?TIME /FALSE
EQUAL? PRSA,V?OPEN,V?LAMP-OFF,V?LAMP-ON /FALSE
EQUAL? PRSA,V?READ,V?TAKE,V?CLOSE /FALSE
EQUAL? PRSA,V?INVENTORY,V?WAIT,V?BREATHE /FALSE
EQUAL? PRSA,V?WHAT,V?AGAIN,V?VERSION /FALSE
EQUAL? PRSA,V?RESTART,V?UNSCRIPT,V?SCRIPT /FALSE
EQUAL? PRSA,V?$CALL /FALSE
EQUAL? PRSA,V?THROW,V?DROP \?ELS31
CALL TELL-NO-LITTER
RSTACK
?ELS31: CALL TELL-YOU-CANT,STR?339
RETURN 2
.FUNCT TELL-NOWHERE
PRINTR "That won't get you anywhere."
.FUNCT UNDERWATER-U,PRINT?=1,L
ZERO? PRINT? /FALSE
SUB DEPTH,50 >DEPTH
LOC WEASEL >L
IN? SAFETY-LINE,L /?CND4
IN? TREASURE-CHEST,L /?CND4
IN? EMPTY-CHEST,L /?CND4
FCLEAR LINE-HACK,INVISIBLE
?CND4: ZERO? DEPTH \?ELS13
PRINTI "You get out of the water and reboard your ship..."
CRLF
CRLF
CALL INT,I-AIR-SUPPLY
PUT STACK,0,0
CALL ENABLED?,I-LAST-GASP
ZERO? STACK /?ELS18
CALL INT,I-LAST-GASP
PUT STACK,0,0
JUMP ?CND16
?ELS18: CALL INT,I-MM-COMPRESSOR
PUT STACK,0,0
?CND16: FSET? OCEAN-FLOOR,TOUCHBIT /?THN26
FSET? WRECK-1,TOUCHBIT \?ELS25
?THN26: CALL RATING-UPD,25
IN? SAFETY-LINE,TREASURE-CHEST /?THN33
IN? GLASS-CASE,PLAYER \?ELS32
FSET? STAMPS,RMUNGBIT /?ELS32
?THN33: CALL RATING-UPD,25
LOC WEASEL
IN? TREASURE-CHEST,STACK \?ELS39
CALL TREASURE-CHEST-WIN
JUMP ?CND37
?ELS39: IN? SAFETY-LINE,TREASURE-CHEST \?ELS41
CALL CHEST-PULL-UP
CALL TREASURE-CHEST-WIN
JUMP ?CND37
?ELS41: PRINTI "When your shipmates find that you've recovered these priceless stamps, they congratulate you. "
?CND37: ZERO? WEASEL-BLOWN \?THN51
FSET? ENVELOPE,INVISIBLE \?ELS50
?THN51: PRINTI "Johnny slaps you on the back. ""Good job, matey!"" As you return to the island over the calm, dazzling blue sea, you contemplate your wealth with a touch of sadness. You think of Hevlin and hope his soul is resting a little easier now."
CRLF
CRLF
CALL RATING-UPD,20
CALL V-SCORE
USL
QUIT
RTRUE
?ELS50: PRINTI "Exhilarated but tired, you lie out on the deck. You fall asleep at once, and dream of a tropical paradise. But even as you dream, your throat is cut! And as your life drains away, you realize how foolish it was not to have suspected a traitor!"
CRLF
CALL FINISH
RSTACK
?ELS32: IN? GLASS-CASE,PLAYER \?ELS60
FSET? STAMPS,RMUNGBIT \?ELS60
PRINTI "But their elation turns to disappointment, as they notice that the stamps are waterlogged and, thus, worthless"
CALL LONG-TRIP
RSTACK
?ELS60: LOC WEASEL
IN? EMPTY-CHEST,STACK \?ELS66
CALL EMPTY-CHEST-LOSE
RSTACK
?ELS66: IN? SAFETY-LINE,EMPTY-CHEST \?ELS68
CALL CHEST-PULL-UP
CALL EMPTY-CHEST-LOSE
RSTACK
?ELS68: PRINTI "When your shipmates find out that you haven't found any treasure, Johnny shakes his head. You can't help feeling you've let them, as well as "
CALL DPRINT,GLOBAL-SELF
PRINTI ", down"
CALL LONG-TRIP
RSTACK
?ELS25: ZERO? AT-SEA /?ELS74
GRTR? PRESENT-TIME,720 \?ELS74
PRINTI "Johnny looks downcast when he sees that you empty-handed. ""Let's get back to the Island. Maybe another time..."""
CRLF
CALL FINISH
RSTACK
?ELS74: EQUAL? SHIP-CHOSEN,TRAWLER \?ELS80
FSET OCEAN,VEHBIT
MOVE LINE-HACK,NW-AFT-DECK
RETURN NW-AFT-DECK
?ELS80: FSET OCEAN,VEHBIT
MOVE LINE-HACK,MM-AFT-DECK
RETURN MM-AFT-DECK
?ELS13: PRINTI "You ascend "
EQUAL? HERE,UNDERWATER \?CND87
PRINTI "another "
?CND87: PRINTI "50 feet..."
CRLF
CRLF
ZERO? DOOMED /?ELS98
EQUAL? DEPTH,250 \?ELS98
CALL JIGS-UP,STR?340
RSTACK
?ELS98: RETURN UNDERWATER
.FUNCT CHEST-PULL-UP
LOC WEASEL
EQUAL? STACK,MM-AFT-DECK,NW-AFT-DECK \?ELS3
CALL START-SENTENCE,WEASEL
JUMP ?CND1
?ELS3: CALL START-SENTENCE,JOHNNY
?CND1: PRINTI " pulls on the "
CALL DPRINT,SAFETY-LINE
PRINTI " and drags up the chest. "
RTRUE
.FUNCT EMPTY-CHEST-LOSE
CALL TELL-1ST-CHEST-LINE
PRINTI "disappointment, the contents are nothing more than old Portuguese newspapers"
CALL LONG-TRIP
RSTACK
.FUNCT TELL-1ST-CHEST-LINE
PRINTI "Johnny spends several minutes forcing open the chest. To everyone's "
RTRUE
.FUNCT LONG-TRIP
PRINTI ". It will be a long trip back."
CRLF
CALL FINISH
RSTACK
.FUNCT TREASURE-CHEST-WIN
CALL TELL-1ST-CHEST-LINE
PRINTI "delight, there are hundreds of gold escudos inside. "
RTRUE
.FUNCT UNDERWATER-D,PRINT?=1
ZERO? PRINT? /FALSE
ADD DEPTH,50 >DEPTH
GRTR? DEPTH,300 \?ELS8
FSET? DEEP-SUIT,WORNBIT /?ELS8
CALL JIGS-UP,STR?341
RSTACK
?ELS8: EQUAL? DEPTH,OCEAN-BOTTOM \?ELS12
ZERO? WRECK-CHOSEN /?ELS17
CALL TELL-FLUTTER-TO,STR?342
RETURN WRECK-1
?ELS17: CALL TELL-FLUTTER-TO,STR?343
RETURN OCEAN-FLOOR
?ELS12: PRINTI "You descend another 50 feet..."
CRLF
CRLF
RETURN UNDERWATER
.FUNCT TELL-FLUTTER-TO,STR
PRINTI "You flutter down to "
PRINT STR
PRINTI "..."
CRLF
CRLF
RTRUE
.FUNCT OCEAN-FLOOR-F,RARG=0
EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?WALK \FALSE
EQUAL? P-WALK-DIR,P?UP /FALSE
CALL TELL-NOWHERE
RSTACK
.FUNCT WRECK-1-F,RARG
EQUAL? RARG,M-ENTER \?ELS5
FSET? WRECK-1,TOUCHBIT /?ELS10
FSET LINE-HACK,INVISIBLE
EQUAL? WRECK-CHOSEN,1 \?ELS15
MOVE SQUID,WRECK-12
MOVE IRON-BAR,WRECK-5
EQUAL? WRECK-FOUND,1 \?CND16
MOVE TREASURE-CHEST,WRECK-11
MOVE EMPTY-CHEST,WRECK-9
?CND16: MOVE SKELETON,WRECK-10
MOVE SCABBARD,SKELETON
PUTP WRECK-8,P?VALUE,10
FCLEAR CEILING-HOLE-1,INVISIBLE
FCLEAR FLOOR-HOLE-1,INVISIBLE
MOVE CASK,WRECK-6
MOVE ROPE,WRECK-4
MOVE BROKEN-MAST,WRECK-4
PUTP WRECK-5,P?DESCFCN,80
PUTP WRECK-7,P?DESCFCN,45
PUTP WRECK-8,P?DESCFCN,45
FCLEAR FALLEN-BUNK,INVISIBLE
FCLEAR MAST,INVISIBLE
FCLEAR JAGGED-HOLE,INVISIBLE
RTRUE
?ELS15: EQUAL? WRECK-CHOSEN,2 \FALSE
FCLEAR AIRTIGHT-DOOR,INVISIBLE
FCLEAR AIRTIGHT-DOOR,OPENBIT
FCLEAR LOCKER-DOOR,INVISIBLE
FCLEAR LOCKER-DOOR,OPENBIT
MOVE SAFE,WRECK-8
PUTP SAFE,P?ACTION,SAFE-F
FCLEAR SAFE,NDESCBIT
EQUAL? WRECK-FOUND,2 \?CND21
MOVE GLASS-CASE,SAFE
?CND21: MOVE MINE,WRECK-11
MOVE CLUMP-OF-MINES,WRECK-11
FCLEAR CEILING-HOLE-2,INVISIBLE
FCLEAR FLOOR-HOLE-2,INVISIBLE
PUTP WRECK-6,P?VALUE,25
PUTP WRECK-1,P?DESCFCN,100
PUTP WRECK-2,P?DESCFCN,100
PUTP WRECK-3,P?DESCFCN,100
PUTP WRECK-4,P?DESCFCN,100
PUTP WRECK-5,P?DESCFCN,100
PUTP WRECK-6,P?DESCFCN,100
PUTP WRECK-7,P?DESCFCN,100
PUTP WRECK-8,P?DESCFCN,100
PUTP WRECK-9,P?DESCFCN,100
PUTP WRECK-10,P?DESCFCN,100
PUTP WRECK-11,P?DESCFCN,100
PUTP WRECK-12,P?DESCFCN,100
PUTP WRECK-13,P?DESCFCN,100
RTRUE
?ELS10: EQUAL? WRECK-CHOSEN,2 \FALSE
PUTP FLOOR-HOLE-2,P?SDESC,STR?5
RTRUE
?ELS5: EQUAL? RARG,M-LOOK \FALSE
GET WRECK-1-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
.FUNCT WRECK-1-D,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
ZERO? PRINT? /?CND6
FSET? WEST-LADDER,RMUNGBIT \?ELS12
CALL TELL-GRACEFUL
RETURN WRECK-4
?ELS12: FSET WEST-LADDER,RMUNGBIT
PRINTI "As you put your foot on the top rung, the rotting wood gives way. The other rungs break beneath your weight, and you plummet down to the deck below..."
CRLF
CRLF
?CND6: RETURN WRECK-4
?ELS5: EQUAL? WRECK-CHOSEN,3 \?ELS18
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS18: RETURN WRECK-4
.FUNCT WEST-LADDER-F
EQUAL? PRSA,V?EXAMINE \?ELS5
FSET? WEST-LADDER,RMUNGBIT \?ELS10
EQUAL? HERE,WRECK-1 \?ELS15
PRINTR "All that's left are a couple of pieces that were broken off at the top."
?ELS15: PRINTR "The ladder is nothing more than some broken pieces of wood."
?ELS10: PRINTR "Looks like a ladder."
?ELS5: EQUAL? PRSA,V?TAKE \?ELS27
EQUAL? HERE,WRECK-1 /?THN33
FSET? WEST-LADDER,RMUNGBIT /?ELS32
?THN33: CALL PICK-ONE,YUKS
PRINT STACK
CRLF
RTRUE
?ELS32: PRINTR "None of the pieces looks useful."
?ELS27: EQUAL? PRSA,V?CLIMB-FOO \FALSE
EQUAL? HERE,WRECK-1 \?ELS45
CALL DO-WALK,P?DOWN
JUMP ?CND43
?ELS45: CALL DO-WALK,P?UP
?CND43: SET 'P-IT-OBJECT,WEST-LADDER
RTRUE
.FUNCT WRECK-2-F,RARG
EQUAL? RARG,M-LOOK \FALSE
GET WRECK-2-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
.FUNCT WRECK-3-F,RARG
EQUAL? RARG,M-LOOK \FALSE
GET WRECK-3-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
.FUNCT WRECK-3-D,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
ZERO? PRINT? /?CND6
ZERO? DOOMED /?ELS12
CALL JIGS-UP,STR?353
RETURN WRECK-7
?ELS12: SET 'DOOMED,TRUE-VALUE
CALL TELL-GRACEFUL
?CND6: RETURN WRECK-7
?ELS5: CALL TELL-NO-GO,PRINT?
RFALSE
.FUNCT TELL-GRACEFUL
PRINTI "You sink gracefully down to the next deck..."
CRLF
CRLF
RTRUE
.FUNCT WRECK-4-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
GET WRECK-4-DESCS,WRECK-CHOSEN
PRINT STACK
EQUAL? WRECK-CHOSEN,1 \?CND8
FSET? ROPE,NDESCBIT \?CND8
CALL TELL-WRAPPED,STR?354
?CND8: CRLF
RTRUE
?ELS5: EQUAL? RARG,M-ENTER \?ELS15
EQUAL? WRECK-CHOSEN,2 \?ELS15
PUTP CEILING-HOLE-2,P?SDESC,STR?355
FSET CEILING-HOLE-2,VOWELBIT
PUTP FLOOR-HOLE-2,P?SDESC,STR?356
RFALSE
?ELS15: EQUAL? RARG,M-BEG \FALSE
EQUAL? WRECK-CHOSEN,1 \?ELS24
CALL NOT-THIS-WRECK,BUNKS
RSTACK
?ELS24: EQUAL? WRECK-CHOSEN,2 \FALSE
CALL NOT-THIS-WRECK,PSEUDO-OBJECT
RSTACK
.FUNCT TELL-WRAPPED,STR
PRINTI " A rope is wrapped around "
PRINT STR
PRINTI "."
RTRUE
.FUNCT WRECK-4-N,PRINT?=1
EQUAL? WRECK-CHOSEN,2 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: RETURN WRECK-5
.FUNCT WRECK-4-U,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
ZERO? PRINT? /?ELS10
ZERO? ROPE-HANGING /?ELS14
CALL TELL-ROPE-HIGH
RFALSE
?ELS14: FSET? WEST-LADDER,RMUNGBIT \?ELS17
PRINTI "There's no way to get back up what's left of the ladder."
CRLF
RFALSE
?ELS17: FSET WEST-LADDER,RMUNGBIT
PRINTI "As you start to climb, a rung collapses under your foot. You grab at other rungs but find you are back where you started amidst several pieces of what used to be the ladder."
CRLF
RFALSE
?ELS10: RETURN WRECK-1
?ELS5: IN? GLASS-CASE,PLAYER \?CND28
FSET? STAMPS,RMUNGBIT /?CND28
GRTR? WATER-IN-CASE,0 \?CND28
FSET STAMPS,RMUNGBIT
SET 'WATER-IN-CASE,10
PRINTI "As you go up, the water in the "
CALL DPRINT,GLASS-CASE
PRINTI " sloshes around, ruining the stamps."
CRLF
CRLF
RETURN WRECK-1
?CND28: RETURN WRECK-1
.FUNCT WRECK-4-D,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: RETURN WRECK-9
.FUNCT AIRTIGHT-ROOM?
EQUAL? WRECK-CHOSEN,2 \FALSE
EQUAL? HERE,WRECK-5 \FALSE
ZERO? WRECK-5-FLOODED /TRUE
RFALSE
.FUNCT ROPE-F,RARG=0
EQUAL? RARG,M-OBJDESC \?ELS5
FSET? ROPE,TAKEBIT \?ELS8
PRINTI "A length of rope lies here."
JUMP ?CND6
?ELS8: PRINTI "A rope hangs down here."
?CND6: CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?CUT \?ELS16
EQUAL? PRSI,SWORD \?ELS21
ZERO? ROPE-HANGING /?ELS26
FSET ROPE,TAKEBIT
SET 'ROPE-HANGING,FALSE-VALUE
PRINTR "A three-foot length of rope falls to the deck."
?ELS26: FSET? ROPE,NDESCBIT \?ELS31
IN? PLAYER,CASK \?ELS36
SET 'ROPE-HANGING,TRUE-VALUE
FCLEAR ROPE,NDESCBIT
CALL RATING-UPD,15
PRINTR "The rope falls to within eight feet of the floor."
?ELS36: CALL TELL-ROPE-HIGH
RSTACK
?ELS31: MOVE ROPE,LOCAL-GLOBALS
PRINTR "You chop the rope into many small pieces, which float off on the current and become lost among the debris."
?ELS21: CALL TELL-YOU-CANT,STR?360
RSTACK
?ELS16: ZERO? ROPE-HANGING \?ELS48
EQUAL? PRSA,V?UNTIE,V?MOVE,V?RUB /?THN54
EQUAL? PRSA,V?TAKE,V?CLIMB-FOO \FALSE
?THN54: FSET? ROPE,TAKEBIT /FALSE
CALL TELL-ROPE-HIGH
RSTACK
?ELS48: EQUAL? PRSA,V?TAKE \?ELS64
PRINTR "It's tied securely above."
?ELS64: EQUAL? PRSA,V?CLIMB-FOO \?ELS68
CALL DO-WALK,P?UP
SET 'P-IT-OBJECT,ROPE
RTRUE
?ELS68: EQUAL? PRSA,V?UNTIE \FALSE
CALL TELL-CANT-REACH,STR?361
RSTACK
.FUNCT BROKEN-MAST-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTI "The mast is suspended securely above you."
ZERO? ROPE-HANGING /?ELS10
PRINTI " A rope is hanging from it."
JUMP ?CND8
?ELS10: FSET? ROPE,NDESCBIT \?CND8
CALL TELL-WRAPPED,STR?21
?CND8: CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?UNTIE,V?MOVE,V?RUB /?THN18
EQUAL? PRSA,V?TAKE,V?CLIMB-FOO \FALSE
?THN18: CALL TELL-CANT-REACH,STR?354
RSTACK
.FUNCT WRECK-5-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
EQUAL? WRECK-CHOSEN,2 \?ELS8
PRINTI "This cabin was once a passenger compartment, "
ZERO? WRECK-5-FLOODED /?ELS13
PRINTI "but it is now flooded. There is a passage leading down through the deck, and a door in the aft "
CALL DPRINT,BULKHEADS
PRINTI "."
JUMP ?CND6
?ELS13: PRINTI "although the fragile partitions within have collapsed. The room is filled with air and a glance tells you why: the closed door to aft kept the air and water pressures equalized, stopping the flow of water up through the hole in the deck."
JUMP ?CND6
?ELS8: GET WRECK-5-DESCS,WRECK-CHOSEN
PRINT STACK
?CND6: CRLF
RTRUE
?ELS5: EQUAL? RARG,M-BEG \?ELS26
EQUAL? WRECK-CHOSEN,1 /?ELS31
EQUAL? LG-IRON-BAR,PRSO,PRSI \?ELS31
CALL GLOBAL-NOT-HERE-PRINT,LG-IRON-BAR
RSTACK
?ELS31: EQUAL? WRECK-CHOSEN,1 /FALSE
EQUAL? BARNACLES,PRSO,PRSI \FALSE
CALL GLOBAL-NOT-HERE-PRINT,BARNACLES
RSTACK
?ELS26: EQUAL? RARG,M-ENTER \FALSE
IN? GLASS-CASE,PLAYER \FALSE
ZERO? WRECK-5-FLOODED \FALSE
CALL INT,I-CASE-LEAK
PUT STACK,0,0
IN? HOLE-2,GLASS-CASE \FALSE
IN? PUTTY,GLASS-CASE /FALSE
SET 'WATER-IN-CASE,0
RETURN WATER-IN-CASE
.FUNCT WRECK-5-N,PRINT?=1
EQUAL? WRECK-CHOSEN,2 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: RETURN WRECK-4
.FUNCT WRECK-5-D,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: RETURN WRECK-10
.FUNCT AIRTIGHT-DOOR-F
EQUAL? PRSA,V?OPEN \?ELS5
FSET? AIRTIGHT-DOOR,OPENBIT \?ELS10
CALL TELL-ALREADY,STR?25
RSTACK
?ELS10: FSET AIRTIGHT-DOOR,OPENBIT
CALL TELL-NOW,AIRTIGHT-DOOR,STR?25
ZERO? WRECK-5-FLOODED \TRUE
SET 'WRECK-5-FLOODED,TRUE-VALUE
EQUAL? HERE,WRECK-5 \?ELS18
FSET? DEEP-SUIT,WORNBIT /?ELS21
FSET? MASK,WORNBIT \?THN24
IN? AIR-TANK,PLAYER \?THN24
FSET? WET-SUIT,WORNBIT /?ELS21
?THN24: CALL JIGS-UP,STR?363
RTRUE
?ELS21: PRINTR "Water rushes in through the open door and the hole in the deck, filling the room to above your head, forcing the air out."
?ELS18: PRINTR "Water rushes through the door into the next room."
?ELS5: EQUAL? PRSA,V?CLOSE \FALSE
FSET? AIRTIGHT-DOOR,OPENBIT \?ELS40
FCLEAR AIRTIGHT-DOOR,OPENBIT
CALL TELL-NOW,AIRTIGHT-DOOR,STR?26
RSTACK
?ELS40: CALL TELL-ALREADY,STR?26
RSTACK
.FUNCT IRON-BAR-F
IN? IRON-BAR,FALLEN-BUNK \?ELS5
EQUAL? PRSA,V?EXAMINE \?ELS10
PRINTI "The "
CALL DPRINT,IRON-BAR
PRINTI " is"
PRINT WEDGED-STR
CRLF
RTRUE
?ELS10: EQUAL? PRSA,V?MOVE,V?TAKE \FALSE
PRINTI "It's too tightly"
PRINT WEDGED-STR
CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?TAKE \?ELS18
CALL ITAKE
ZERO? STACK /TRUE
EQUAL? HERE,WRECK-5 \?ELS24
FCLEAR IRON-BAR,NDESCBIT
PRINTI "You take one of the "
CALL DPRINT,IRON-BAR
PRINTR "s."
?ELS24: PRINTI "Taken."
CRLF
RTRUE
?ELS18: EQUAL? PRSA,V?DROP \FALSE
CALL V-DROP
ZERO? STACK /TRUE
EQUAL? HERE,WRECK-5 \TRUE
FSET IRON-BAR,NDESCBIT
RTRUE
.FUNCT LG-IRON-BAR-F
EQUAL? PRSA,V?TAKE \?ELS5
IN? IRON-BAR,HERE \?ELS5
CALL PERFORM,V?TAKE,IRON-BAR
RTRUE
?ELS5: PRINTI "These are a "
CALL DPRINT,LG-IRON-BAR
PRINTR " held firmly together by barnacles."
.FUNCT PLAQUE-PSEUDO,PARG=0
EQUAL? PARG,M-NAME \?ELS5
PUTP PSEUDO-OBJECT,P?SDESC,STR?365
RTRUE
?ELS5: EQUAL? WRECK-CHOSEN,1 \?ELS7
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
PRINTR "Although your knowledge of 17th-century Portuguese is minimal, you can see that the ship is named the Sao Vera, and the plaque is signed by King Alfonso VI."
?ELS7: CALL GLOBAL-NOT-HERE-PRINT,PSEUDO-OBJECT
RSTACK
.FUNCT PARTITIONS-PSEUDO,PARG=0
EQUAL? PARG,M-NAME \?ELS5
PUTP PSEUDO-OBJECT,P?SDESC,STR?366
RTRUE
?ELS5: EQUAL? WRECK-CHOSEN,2 \?ELS7
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "These partitions once separated cabins."
?ELS7: CALL GLOBAL-NOT-HERE-PRINT,PSEUDO-OBJECT
RSTACK
.FUNCT WRECK-6-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
GET WRECK-6-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
?ELS5: EQUAL? RARG,M-ENTER \FALSE
FSET? DEEP-SUIT,WORNBIT /?ELS14
FSET? MASK,WORNBIT \?THN17
IN? AIR-TANK,PLAYER \?THN17
FSET? WET-SUIT,WORNBIT /?ELS14
?THN17: CALL JIGS-UP,WATERY-ENVIRONMENT
RSTACK
?ELS14: CALL COMPILER-SUCKS-EXP-2
ZERO? STACK /FALSE
CALL INT,I-CASE-LEAK
PUT STACK,0,1
RTRUE
.FUNCT COMPILER-SUCKS-EXP-2
FSET? STAMPS,RMUNGBIT /FALSE
IN? GLASS-CASE,PLAYER \FALSE
IN? PUTTY,GLASS-CASE \TRUE
IN? HOLE-1,GLASS-CASE /?THN14
IN? HOLE-2,GLASS-CASE \FALSE
?THN14: ZERO? NO-HOLE-PLUGGED /FALSE
RTRUE
.FUNCT WRECK-6-D,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: ZERO? PRINT? \?ELS12
RETURN WRECK-11
?ELS12: FSET? MINE,RMUNGBIT \?ELS14
FSET? AIR-TANK,WORNBIT /?THN20
IN? AIR-TANK,PLAYER /?ELS19
?THN20: RETURN WRECK-11
?ELS19: CALL TELL-TOO-BIG
RFALSE
?ELS14: PRINTI "As you make your way down, you bump what had to be a floating mine. A second later..."
CRLF
CRLF
CALL BOOM
RSTACK
.FUNCT TELL-SCUBA-STOPS
PRINTR "The scuba tank makes it impossible to fit through the passage."
.FUNCT TELL-CARRY-SCUBA?
IN? AIR-TANK,PLAYER \FALSE
PRINTI "Carrying your tank in front of you, you swim to the next room..."
CRLF
CRLF
RTRUE
.FUNCT WRECK-6-S,PRINT?=1
EQUAL? WRECK-CHOSEN,2 \?ELS5
ZERO? PRINT? \?ELS10
RETURN WRECK-7
?ELS10: FSET? AIR-TANK,WORNBIT \?ELS12
CALL TELL-SCUBA-STOPS
RFALSE
?ELS12: CALL TELL-CARRY-SCUBA?
RETURN WRECK-7
?ELS5: RETURN WRECK-7
.FUNCT CASK-F,RARG=0
EQUAL? RARG,M-BEG \?ELS5
ZERO? ROPE-HANGING /FALSE
EQUAL? PRSA,V?WALK \FALSE
EQUAL? P-WALK-DIR,P?UP \FALSE
IN? CASK,WRECK-4 \FALSE
CALL WEIGHT,PLAYER
GRTR? STACK,22 \?ELS17
CALL TELL-YOU-CANT,STR?371
RSTACK
?ELS17: MOVE PLAYER,WRECK-1
SET 'HERE,WRECK-1
PRINTI "You reach up, grab the rope, and climb..."
CRLF
CRLF
CALL WRECK-1-F,M-ENTER
CALL V-FIRST-LOOK
RTRUE
?ELS5: ZERO? RARG \FALSE
EQUAL? PRSA,V?CLIMB-FOO \?ELS28
CALL PERFORM,V?CLIMB-ON,CASK
RTRUE
?ELS28: EQUAL? PRSA,DRILL \FALSE
PRINTI "There is now a hole in the "
CALL DPRINT,CASK
PRINTI "."
CRLF
CALL ADD-HOLE,CASK
RSTACK
.FUNCT WOOD-PSEUDO,PARG=0
EQUAL? PARG,M-NAME \?ELS5
PUTP PSEUDO-OBJECT,P?SDESC,STR?372
RTRUE
?ELS5: EQUAL? WRECK-CHOSEN,2 \FALSE
CALL GLOBAL-NOT-HERE-PRINT,PSEUDO-OBJECT
RSTACK
.FUNCT OVERTURNED-PSEUDO,PARG=0
EQUAL? PARG,M-NAME \?ELS5
PUTP PSEUDO-OBJECT,P?SDESC,STR?373
RTRUE
?ELS5: EQUAL? WRECK-CHOSEN,1 \?ELS7
CALL GLOBAL-NOT-HERE-PRINT,PSEUDO-OBJECT
RSTACK
?ELS7: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "These are dining tables now scattered in various positions."
.FUNCT WRECK-7-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
EQUAL? WRECK-CHOSEN,1 \?ELS8
PRINTI "This cabin was used for housing the crew. In addition to lining the "
CALL DPRINT,BULKHEADS
PRINTI "s, bunks are strewn about the cabin"
ZERO? BUNKS-MOVED \?ELS13
PRINTI ", blocking a doorway aft. There is"
JUMP ?CND11
?ELS13: PRINTI ". There is a doorway aft, and"
?CND11: PRINTI " an unblocked forward exit."
JUMP ?CND6
?ELS8: GET WRECK-7-DESCS,WRECK-CHOSEN
PRINT STACK
?CND6: CRLF
RTRUE
?ELS5: EQUAL? RARG,M-BEG \FALSE
EQUAL? WRECK-CHOSEN,2 \FALSE
EQUAL? PRSA,V?WEAR \?ELS35
PRINTR "There's not enough room here for you to put that on."
?ELS35: EQUAL? PRSA,V?WALK \?CND33
FSET? DEEP-SUIT,WORNBIT \?CND33
CALL JIGS-UP,STR?374
?CND33: CALL NOT-THIS-WRECK,PSEUDO-OBJECT
RSTACK
.FUNCT WRECK-7-S,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
ZERO? BUNKS-MOVED \?THN11
ZERO? PRINT? \?ELS10
?THN11: RETURN WRECK-8
?ELS10: SET 'P-IT-OBJECT,FALLEN-BUNK
PRINTI "There are bunks in the way."
CRLF
RFALSE
?ELS5: ZERO? PRINT? \?ELS23
RETURN WRECK-8
?ELS23: FSET? AIR-TANK,WORNBIT \?ELS25
CALL TELL-SCUBA-STOPS
RFALSE
?ELS25: CALL TELL-CARRY-SCUBA?
RETURN WRECK-8
.FUNCT WRECK-7-N,PRINT?=1
EQUAL? WRECK-CHOSEN,2 \?ELS5
ZERO? PRINT? \?ELS10
RETURN WRECK-6
?ELS10: FSET? AIR-TANK,WORNBIT \?ELS12
CALL TELL-SCUBA-STOPS
RFALSE
?ELS12: CALL TELL-CARRY-SCUBA?
RETURN WRECK-6
?ELS5: RETURN WRECK-6
.FUNCT WRECK-7-U,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
ZERO? PRINT? /?ELS10
PRINTI "There's no way you can reach that hole."
CRLF
RFALSE
?ELS10: RETURN WRECK-3
?ELS5: CALL TELL-NO-GO,PRINT?
RFALSE
.FUNCT FALLEN-BUNK-F
EQUAL? PRSA,V?PUSH \?ELS5
PRINTR "The bunks move a bit but fall back to where they were."
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
ZERO? BUNKS-MOVED /?ELS14
PRINTI "A "
CALL DPRINT,FALLEN-BUNK
PRINTI " teeters by the passageway."
IN? IRON-BAR,FALLEN-BUNK \?CND18
PRINTI " They are being held up by an "
CALL DPRINT,IRON-BAR
PRINTI "."
?CND18: CRLF
RTRUE
?ELS14: PRINTI "There is a "
CALL DPRINT,FALLEN-BUNK
PRINTR " before the aft doorway."
?ELS9: EQUAL? PRSA,V?SLEEP \?ELS28
CALL TELL-BAD-SHAPE
RSTACK
?ELS28: EQUAL? PRSA,V?MOVE \?ELS30
EQUAL? PRSI,IRON-BAR \?ELS35
ZERO? BUNKS-MOVED /?ELS40
PRINTR "They've already been moved."
?ELS40: SET 'BUNKS-MOVED,TRUE-VALUE
CALL QUEUE,I-PLUMMET,2
PUT STACK,0,1
SET 'CRIMP-CTR,0
PRINTI "Using the "
CALL DPRINT,IRON-BAR
PRINTR ", you move the bunks out of the way."
?ELS35: PRINTI "They're too heavy to move "
ZERO? PRSI /?ELS54
PRINTI "that way"
JUMP ?CND52
?ELS54: PRINTI "by hand"
?CND52: PRINTR "."
?ELS30: EQUAL? PRSA,V?LOOK-BEHIND \?ELS65
EQUAL? HERE,WRECK-7 \?ELS65
ZERO? BUNKS-MOVED \?ELS65
PRINTR "There is a passageway there."
?ELS65: ZERO? BUNKS-MOVED /?ELS71
EQUAL? PRSA,V?PUT-UNDER \?ELS71
EQUAL? PRSO,IRON-BAR \?ELS71
CALL INT,I-PLUMMET
PUT STACK,0,0
MOVE IRON-BAR,FALLEN-BUNK
PUTP WRECK-7,P?DESCFCN,65
PUTP WRECK-8,P?DESCFCN,65
PRINTI "The "
CALL DPRINT,IRON-BAR
PRINTR " is wedging the bunks up."
?ELS71: EQUAL? PRSA,V?LOOK-UNDER \FALSE
IN? IRON-BAR,FALLEN-BUNK \FALSE
PRINTI "The "
CALL DPRINT,IRON-BAR
PRINTI " is there,"
PRINT WEDGED-STR
CRLF
RTRUE
.FUNCT DEBRIS-PSEUDO,PARG=0
EQUAL? PARG,M-NAME \?ELS5
PUTP PSEUDO-OBJECT,P?SDESC,STR?377
RTRUE
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "All sorts of jetsam has collected here, none of it very interesting on its own."
.FUNCT WRECK-8-F,RARG
EQUAL? RARG,M-LOOK \FALSE
GET WRECK-8-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
.FUNCT WRECK-8-D,PRINT?=1
EQUAL? WRECK-CHOSEN,2 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: RETURN WRECK-13
.FUNCT WRECK-8-N,PRINT?=1
EQUAL? WRECK-CHOSEN,2 \?ELS5
ZERO? PRINT? \?ELS10
RETURN WRECK-7
?ELS10: FSET? AIR-TANK,WORNBIT \?ELS12
CALL TELL-SCUBA-STOPS
RFALSE
?ELS12: CALL TELL-CARRY-SCUBA?
RETURN WRECK-7
?ELS5: RETURN WRECK-7
.FUNCT EAST-LADDER-F
EQUAL? PRSA,V?CLIMB-FOO \FALSE
EQUAL? HERE,WRECK-8 \?ELS8
CALL DO-WALK,P?DOWN
JUMP ?CND6
?ELS8: CALL DO-WALK,P?UP
?CND6: SET 'P-IT-OBJECT,EAST-LADDER
RTRUE
.FUNCT SAFE-F
EQUAL? PRSA,V?THROUGH \?ELS5
EQUAL? HERE,WRECK-8 /?ELS5
EQUAL? WRECK-CHOSEN,2 /?ELS5
CALL GLOBAL-NOT-HERE-PRINT,SAFE
RSTACK
?ELS5: EQUAL? PRSA,V?OPEN /?THN10
EQUAL? PRSA,V?DRILL \?ELS9
?THN10: EQUAL? PRSI,DRILL \?ELS16
FSET SAFE,OPENBIT
CALL QUEUE,I-CASE-LEAK,-1
PUT STACK,0,1
PRINTI "As you drill through the lock, the door pops open with a rush of escaping air!"
FIRST? SAFE \?CND19
PRINTI " This reveals "
CALL PRINT-CONTENTS,SAFE
PRINTI "!"
?CND19: CRLF
CALL ADD-HOLE,SAFE
RSTACK
?ELS16: ZERO? PRSI /?ELS27
PRINTI "With "
CALL APRINT,PRSI
PRINTR "??!?"
?ELS27: IN? HOLE-1,SAFE /FALSE
IN? HOLE-2,SAFE /FALSE
PRINTR "It's locked."
?ELS9: EQUAL? PRSA,V?UNLOCK \FALSE
IN? HOLE-1,SAFE /?THN46
IN? HOLE-2,SAFE \?ELS45
?THN46: PRINTR "You've already done it. By brute force."
?ELS45: CALL TELL-DONT-HAVE,STR?381
RSTACK
.FUNCT GLASS-CASE-F
EQUAL? PRSA,V?OPEN \?ELS5
PRINTR "It's sealed shut."
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
PRINTI "The "
CALL DPRINT,GLASS-CASE
PRINTI " has a shelf inside it. A collection of extremely rare "
FSET? STAMPS,RMUNGBIT \?CND12
PRINTI "but soggy "
?CND12: PRINTI "postage stamps sits on the shelf. There is a crack near a bottom corner of the case"
IN? PUTTY,GLASS-CASE \?CND19
PRINTI ", which is sealed with putty"
?CND19: PRINTI "."
IN? HOLE-1,GLASS-CASE /?THN29
IN? HOLE-2,GLASS-CASE \?CND26
?THN29: PRINTI " Near the crack is the hole you drilled"
IN? PUTTY,GLASS-CASE \?CND33
ZERO? NO-HOLE-PLUGGED \?CND33
PRINTI ", which is also filled with putty"
?CND33: PRINTI "."
?CND26: GRTR? WATER-IN-CASE,0 \?CND42
PRINTI " The case has some water in it."
?CND42: CRLF
RTRUE
?ELS9: EQUAL? PRSA,V?TAKE,V?POUR \?ELS52
EQUAL? PRSO,OCEAN /?THN49
?ELS52: EQUAL? PRSA,V?EMPTY \?ELS48
?THN49: ZERO? WATER-IN-CASE \?ELS57
PRINTR "There's no water in the case."
?ELS57: CALL AIRTIGHT-ROOM?
ZERO? STACK \?ELS61
PRINTR "That would be a losing battle."
?ELS61: SET 'WATER-IN-CASE,0
FSET STAMPS,RMUNGBIT
PRINTR "In the process of emptying the case, you manage to get the stamps wet."
?ELS48: EQUAL? PRSA,V?DRILL \?ELS69
IN? PLAYER,WRECK-5 \?ELS72
ZERO? WRECK-5-FLOODED \?ELS72
SET 'WATER-IN-CASE,0
PRINTI "The water pours out of the hole."
CRLF
JUMP ?CND70
?ELS72: SET 'WATER-IN-CASE,10
CALL INT,I-CASE-LEAK
PUT STACK,0,0
FSET STAMPS,RMUNGBIT
PRINTI "Water pours into the case, ruining the stamps."
CRLF
?CND70: CALL ADD-HOLE,GLASS-CASE
RSTACK
?ELS69: EQUAL? PRSA,V?MUNG \FALSE
EQUAL? PRSO,GLASS-CASE \FALSE
PRINTR "That wouldn't be too smart."
.FUNCT STAMPS-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTI "These are rare stamps which include a little-known sheet of ""inverted biplanes,"" full sheets of ""Graf Zeppelins,"" and other rarities. Sold at auction, their value would exceed $50 million"
FSET? STAMPS,RMUNGBIT \?CND8
PRINTI ". Unfortunately, since they're all stuck together and salty, they're not even worth the price of a cup of coffee"
?CND8: PRINTR "."
?ELS5: EQUAL? PRSA,V?COUNT \FALSE
PRINTR "It's hard to tell."
.FUNCT WRECK-9-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
GET WRECK-9-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
?ELS5: EQUAL? RARG,M-ENTER \?ELS9
EQUAL? WRECK-CHOSEN,2 \?ELS9
PUTP CEILING-HOLE-2,P?SDESC,STR?5
FCLEAR CEILING-HOLE-2,VOWELBIT
PUTP FLOOR-HOLE-2,P?SDESC,STR?5
RTRUE
?ELS9: EQUAL? RARG,M-BEG \FALSE
EQUAL? WRECK-CHOSEN,1 \FALSE
CALL NOT-THIS-WRECK,BUNKS
RSTACK
.FUNCT WRECK-9-U,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: RETURN WRECK-4
.FUNCT WRECK-9-W,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
ZERO? PRINT? /FALSE
CALL TELL-CAREFULLY-PICK
RETURN WEST-OF-WRECK-9
?ELS5: CALL TELL-NO-GO,PRINT?
RFALSE
.FUNCT EMPTY-CHEST-F,RARG=0
CALL GENERIC-CHEST-F,EMPTY-CHEST,RARG
RSTACK
.FUNCT GENERIC-CHEST-F,CHEST,RARG
EQUAL? RARG,M-BEG \?ELS5
EQUAL? PRSA,V?WALK \?ELS10
EQUAL? P-WALK-DIR,P?UP \?ELS10
IN? CHEST,WRECK-13 \?ELS10
MOVE PLAYER,WRECK-8
SET 'HERE,WRECK-8
ZERO? CHEST-CLIMB-POINTS /?CND13
CALL RATING-UPD,CHEST-CLIMB-POINTS
SET 'CHEST-CLIMB-POINTS,0
?CND13: PRINTI "You reach the first unbroken rung and climb the ladder..."
CRLF
CRLF
CALL WRECK-8-F,M-ENTER
CALL V-FIRST-LOOK
RTRUE
?ELS10: EQUAL? PRSA,V?WALK \?ELS20
EQUAL? P-WALK-DIR,P?UP /?ELS20
CALL TELL-YOUD-BETTER,STR?384,TRUE-VALUE
RSTACK
?ELS20: EQUAL? PRSA,V?MOVE \FALSE
EQUAL? PRSO,SAFETY-LINE \FALSE
IN? SAFETY-LINE,CHEST \FALSE
CALL JIGS-UP,STR?385
RSTACK
?ELS5: ZERO? RARG \FALSE
EQUAL? PRSA,V?CLIMB-FOO \?ELS33
CALL PERFORM,V?CLIMB-ON,CHEST
RTRUE
?ELS33: EQUAL? PRSA,V?TAKE \?ELS35
PRINTR "It's much too heavy."
?ELS35: EQUAL? PRSA,V?PUSH-TO \?ELS39
IN? SAFETY-LINE,CHEST \?ELS39
EQUAL? P-WALK-DIR,P?EAST \?ELS39
CALL TELL-TOO-SHORT
RSTACK
?ELS39: EQUAL? PRSA,V?TIE \FALSE
EQUAL? PRSO,SAFETY-LINE /?THN49
EQUAL? PRSI,SAFETY-LINE \FALSE
?THN49: IN? SAFETY-LINE,CHEST \?ELS55
CALL TELL-ALREADY,STR?386
RSTACK
?ELS55: MOVE SAFETY-LINE,CHEST
FSET SAFETY-LINE,NDESCBIT
ZERO? CHEST-TIE-POINTS /?CND58
CALL RATING-UPD,CHEST-TIE-POINTS
SET 'CHEST-TIE-POINTS,0
?CND58: CALL INT,I-PENDULUM
PUT STACK,0,0
PRINTR "Tied."
.FUNCT JAGGED-HOLE-F,OUTSIDE?=0
EQUAL? HERE,WEST-OF-WRECK-9,WEST-OF-WRECK-11 \?CND1
SET 'OUTSIDE?,TRUE-VALUE
?CND1: EQUAL? PRSA,V?THROUGH \?ELS8
ZERO? OUTSIDE? /?ELS13
CALL DO-WALK,P?EAST
RSTACK
?ELS13: CALL DO-WALK,P?WEST
RSTACK
?ELS8: EQUAL? PRSA,V?PUSH-THROUGH \?ELS18
EQUAL? PRSI,JAGGED-HOLE \?ELS18
ZERO? OUTSIDE? /?ELS23
SET P-WALK-DIR,P?EAST
JUMP ?CND21
?ELS23: SET P-WALK-DIR,P?WEST
?CND21: CALL PERFORM,V?PUSH-TO,PRSO,INTDIR
RTRUE
?ELS18: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
CALL TELL-YOU-CANT,STR?6
RSTACK
.FUNCT TELL-TOO-SHORT,STR=0
PRINTI "The "
CALL DPRINT,SAFETY-LINE
PRINTI " isn't long enough"
ZERO? STR /?CND3
PRINT STR
?CND3: PRINTR "."
.FUNCT GENERIC-WEST-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
PRINTI "You are on the murky ocean floor, outside the rotted hull of a "
CALL DPRINT,SHIPWRECK
PRINTR ". You can return to the wreck through the hole in the hull to starboard."
?ELS5: EQUAL? RARG,M-BEG \?ELS9
EQUAL? PRSA,V?WALK \?ELS14
EQUAL? P-WALK-DIR,P?EAST,P?IN \?ELS19
IN? SAFETY-LINE,PLAYER \FALSE
CALL TELL-TOO-SHORT,STR?388
RETURN 2
?ELS19: ZERO? P-WALK-DIR /FALSE
CALL LINE-SNAGS
RSTACK
?ELS14: EQUAL? PRSA,V?WAIT-FOR \FALSE
EQUAL? PRSO,SAFETY-LINE \FALSE
CALL QUEUED?,I-PENDULUM
ZERO? STACK /FALSE
IN? SAFETY-LINE,HERE \?ELS39
SET 'CLOCK-WAIT,TRUE-VALUE
PRINTR "It's right here!"
?ELS39: CALL V-WAIT
RSTACK
?ELS9: EQUAL? RARG,M-END \FALSE
IN? SAFETY-LINE,HERE \FALSE
CALL ENABLED?,I-PENDULUM
ZERO? STACK \FALSE
CALL QUEUE,I-PENDULUM,3
PUT STACK,0,1
RTRUE
.FUNCT LINE-SNAGS
CALL JIGS-UP,STR?389
RSTACK
.FUNCT SAFETY-LINE-F,RARG=0,MSTR
EQUAL? RARG,M-OBJDESC \?ELS5
PRINTI "The "
CALL DPRINT,SAFETY-LINE
PRINTR " from the ship is swaying to and fro."
?ELS5: EQUAL? PRSA,V?TAKE \?ELS9
IN? SAFETY-LINE,TREASURE-CHEST /?THN13
IN? SAFETY-LINE,EMPTY-CHEST \?ELS12
?THN13: PRINTR "It's tied to the chest."
?ELS12: IN? SAFETY-LINE,HERE /?ELS18
PRINTR "It's no longer here."
?ELS18: CALL ITAKE
ZERO? STACK /TRUE
CALL INT,I-PENDULUM
PUT STACK,0,0
PRINTR "Taken."
?ELS9: EQUAL? PRSA,V?UNTIE \?ELS26
IN? SAFETY-LINE,TREASURE-CHEST /?THN32
IN? SAFETY-LINE,EMPTY-CHEST \?ELS31
?THN32: CALL META-LOC,SAFETY-LINE
MOVE SAFETY-LINE,STACK
FCLEAR SAFETY-LINE,NDESCBIT
CALL QUEUE,I-PENDULUM,3
PUT STACK,0,1
PRINTR "Untied."
?ELS31: PRINTR "It's not tied to anything!"
?ELS26: EQUAL? PRSA,V?MOVE \?ELS41
PRINTI "The line starts to move upward"
SET 'MSTR,STR?390
IN? SAFETY-LINE,TREASURE-CHEST \?ELS46
LOC WEASEL
MOVE TREASURE-CHEST,STACK
JUMP ?CND44
?ELS46: IN? SAFETY-LINE,EMPTY-CHEST \?ELS48
LOC WEASEL
MOVE EMPTY-CHEST,STACK
JUMP ?CND44
?ELS48: SET 'MSTR,STR?391
CALL INT,I-PENDULUM
PUT STACK,0,0
LOC WEASEL
MOVE SAFETY-LINE,STACK
?CND44: PRINT MSTR
CRLF
RTRUE
?ELS41: EQUAL? PRSA,V?CLIMB-FOO \?ELS54
CALL LINE-SNAGS
RSTACK
?ELS54: EQUAL? PRSA,V?CUT \FALSE
PRINTR "This rope is too strong."
.FUNCT WRECK-10-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
GET WRECK-10-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
?ELS5: EQUAL? RARG,M-ENTER \FALSE
FSET? DEEP-SUIT,WORNBIT /?ELS14
FSET? MASK,WORNBIT \?THN17
IN? AIR-TANK,PLAYER \?THN17
FSET? WET-SUIT,WORNBIT /?ELS14
?THN17: CALL JIGS-UP,WATERY-ENVIRONMENT
RSTACK
?ELS14: CALL COMPILER-SUCKS-EXP-2
ZERO? STACK /FALSE
CALL INT,I-CASE-LEAK
PUT STACK,0,1
RTRUE
.FUNCT WRECK-10-U,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: RETURN WRECK-5
.FUNCT LOCKER-DOOR-F
EQUAL? PRSA,V?OPEN \?ELS5
FSET? LOCKER-DOOR,OPENBIT \?ELS10
CALL TELL-ALREADY,STR?25
RSTACK
?ELS10: FSET LOCKER-DOOR,OPENBIT
CALL TELL-NOW,LOCKER-DOOR,STR?25
RSTACK
?ELS5: EQUAL? PRSA,V?CLOSE \?ELS14
FSET? LOCKER-DOOR,OPENBIT \?ELS19
FCLEAR LOCKER-DOOR,OPENBIT
CALL TELL-NOW,LOCKER-DOOR,STR?26
RSTACK
?ELS19: CALL TELL-ALREADY,STR?26
RSTACK
?ELS14: EQUAL? PRSA,V?READ \?ELS23
CALL FIXED-FONT-ON
PRINTI " ""S.S. LEVIATHAN
STORAGE LOCKER
DANGER: EXPLOSIVES!""
"
CALL FIXED-FONT-OFF
RTRUE
?ELS23: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "The door, which has a sign on it, is "
FSET? LOCKER-DOOR,OPENBIT \?ELS32
PRINTI "open"
JUMP ?CND30
?ELS32: PRINTI "closed"
?CND30: PRINTR "."
.FUNCT SKELETON-F,RARG=0
EQUAL? RARG,M-OBJDESC \?ELS5
PRINTI "Some who went down with the ship were in here, where they are nothing more than "
CALL DPRINT,SKELETON
PRINTR "s."
?ELS5: EQUAL? PRSA,V?KILL \?ELS9
PRINTI "The "
CALL DPRINT,SKELETON
PRINTR "s remain dead."
?ELS9: EQUAL? PRSA,V?TAKE,V?ATTACK,V?MUNG /?THN14
EQUAL? PRSA,V?PUSH \?ELS13
?THN14: PRINTI "One of the "
CALL DPRINT,SKELETON
PRINTR "s falls apart."
?ELS13: EQUAL? PRSA,V?COUNT,V?EXAMINE \FALSE
PRINTI "There are about fifty of them. "
EQUAL? PRSA,V?COUNT \?ELS26
PRINTR "It's hard to tell exactly."
?ELS26: PRINTI "As you look around, you notice that one of the "
CALL DPRINT,SKELETON
PRINTI "s has what looks like a "
CALL DPRINT,SCABBARD
PRINTR " at its hip."
.FUNCT SCABBARD-F,F
EQUAL? PRSA,V?TAKE \?ELS5
PRINTI "The "
CALL DPRINT,SCABBARD
PRINTI " is stuck to the "
CALL DPRINT,SKELETON
PRINTR " by encrusted barnacles."
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
PRINTI "There is very little of the original leather left to this "
CALL DPRINT,SCABBARD
PRINTI ", but barnacles have collected in its place."
FIRST? SCABBARD >F \?CND12
PRINTI " There is "
CALL APRINT,F
PRINTI " in the "
CALL DPRINT,SCABBARD
PRINTI "."
?CND12: CRLF
RTRUE
?ELS9: EQUAL? PRSA,V?OPEN \?ELS18
CALL TELL-ALREADY,STR?25
RSTACK
?ELS18: EQUAL? PRSA,V?CLOSE \?ELS20
PRINTR "It doesn't close."
?ELS20: EQUAL? PRSA,V?CUT \FALSE
CALL TELL-BARNACLES
RSTACK
.FUNCT TELL-BARNACLES
PRINTR "The barnacles are too firmly emplaced."
.FUNCT BARNACLE-PSEUDO,PARG=0
EQUAL? PARG,M-NAME \?ELS5
PUTP PSEUDO-OBJECT,P?SDESC,STR?394
RTRUE
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
PRINTR "The barnacles look very firmly emplaced."
?ELS7: EQUAL? PRSA,V?MOVE,V?CUT,V?TAKE \FALSE
CALL TELL-BARNACLES
RSTACK
.FUNCT WRECK-11-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
GET WRECK-11-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
?ELS5: EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?WALK \FALSE
IN? MINE,MAGNET \FALSE
IN? MAGNET,PLAYER \FALSE
ZERO? MAGNET-ON /FALSE
PRINTI "The mine bumps a "
CALL DPRINT,BULKHEADS
PRINTI "..."
CRLF
CRLF
CALL BOOM
RSTACK
.FUNCT WRECK-11-U,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: ZERO? PRINT? \?ELS12
RETURN WRECK-6
?ELS12: FSET? MINE,RMUNGBIT /?ELS14
PRINTI "As you make your way up, you bump the floating mine. A second later..."
CRLF
CRLF
CALL BOOM
RSTACK
?ELS14: FSET? AIR-TANK,WORNBIT \?ELS18
RETURN WRECK-6
?ELS18: CALL TELL-TOO-BIG
RFALSE
.FUNCT WRECK-11-S,PRINT?=1
EQUAL? WRECK-CHOSEN,2 \?ELS5
CALL TELL-NO-GO,PRINT?
RFALSE
?ELS5: RETURN WRECK-12
.FUNCT TELL-CAREFULLY-PICK
PRINTI "You carefully pick your way through the jagged edge of the hole..."
CRLF
CRLF
RTRUE
.FUNCT WRECK-11-W,PRINT?=1
EQUAL? WRECK-CHOSEN,1 \?ELS5
ZERO? PRINT? /FALSE
CALL TELL-CAREFULLY-PICK
RETURN WEST-OF-WRECK-11
?ELS5: CALL TELL-NO-GO,PRINT?
RFALSE
.FUNCT TREASURE-CHEST-F,RARG=0
CALL GENERIC-CHEST-F,TREASURE-CHEST,RARG
RSTACK
.FUNCT MINE-F
EQUAL? PRSA,V?THROW-OFF,V?THROW,V?TAKE /?THN6
EQUAL? PRSA,V?PUSH,V?MUNG,V?MOVE /?THN6
EQUAL? PRSA,V?PUSH-TO \?ELS5
?THN6: CALL BOOM
RSTACK
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
IN? MINE,MAGNET \?ELS12
ZERO? MAGNET-ON /?ELS12
PRINTI "A single mine is being held by the "
CALL DPRINT,MAGNET
PRINTR " which is safely attached between its spikes."
?ELS12: FSET? MINE,RMUNGBIT \?ELS18
PRINTI "A single mine is floating relatively harmlessly in one corner of the room."
JUMP ?CND10
?ELS18: PRINTI "This mine is blocking the hole that leads to the room above."
?CND10: PRINTI " It has lots of widely-spaced spikes pointing out from it."
IN? MINE,MAGNET \?CND27
PRINTI " You are holding the "
CALL DPRINT,MAGNET
PRINTI " next to it."
?CND27: CRLF
RTRUE
.FUNCT CLUMP-OF-MINES-F,RARG=0
EQUAL? RARG,M-OBJDESC \?ELS5
PRINTI "A number of spherical mines with spikes sticking out of them litter the room. These mines must have once been used to blockade shipping lanes. Most of them are tethered together on the deck, but one is "
IN? MINE,MAGNET \?ELS10
ZERO? MAGNET-ON /?ELS13
PRINTI "being held by the "
JUMP ?CND11
?ELS13: PRINTI "touching your "
?CND11: CALL DPRINT,MAGNET
JUMP ?CND8
?ELS10: FSET? MINE,RMUNGBIT \?ELS24
PRINTI "floating in a corner of the room"
JUMP ?CND8
?ELS24: PRINTI "floating up near the hole in the "
CALL DPRINT,CEILING
?CND8: PRINTR "."
?ELS5: EQUAL? PRSA,V?TAKE \FALSE
CALL BOOM
RSTACK
.FUNCT BOOM
CALL JIGS-UP,STR?398
RSTACK
.FUNCT WRECK-12-F,RARG
EQUAL? RARG,M-LOOK \?ELS5
GET WRECK-12-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
?ELS5: EQUAL? RARG,M-ENTER \FALSE
CALL QUEUE,I-SQUID,2
PUT STACK,0,1
RTRUE
.FUNCT SQUID-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "The squid is huge, its body 20 feet long, and each of its ten arms 35 feet long! It is currently asleep, its arms waving placidly beneath its body."
?ELS5: EQUAL? PRSA,V?ALARM \FALSE
PRINTI "As it awakens, the behemoth turns to you. "
CALL I-SQUID
RSTACK
.FUNCT WRECK-13-F,RARG
EQUAL? RARG,M-LOOK \FALSE
GET WRECK-13-DESCS,WRECK-CHOSEN
PRINT STACK
CRLF
RTRUE
.FUNCT WRECK-13-U,PRINT?=1
ZERO? PRINT? \?ELS5
RETURN WRECK-8
?ELS5: CALL TELL-CANT-REACH,STR?402
RFALSE
.FUNCT NOT-THIS-WRECK,OBJ
EQUAL? PRSO,OBJ /?THN6
EQUAL? PRSI,OBJ \FALSE
?THN6: CALL GLOBAL-NOT-HERE-PRINT,OBJ
RTRUE
.ENDI