mirror of
https://github.com/historicalsource/cutthroats
synced 2024-04-25 21:49:26 +03:00
1535 lines
37 KiB
Plaintext
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
|