cutthroats/people.zap

1906 lines
52 KiB
Plaintext

.FUNCT TELL-NEVER-KNEW
PRINTR """Never heard of him."""
.FUNCT MCGINTY-F,RARG=0,OBJ,PFLAG=0
EQUAL? RARG,M-OBJDESC \?ELS3
ZERO? MCGINTY-KNOWS /?ELS6
JUMP ?CND4
?ELS6: IN? PASSBOOK,PLAYER \?ELS9
CALL QUEUED?,I-MCGINTY-FOLLOWS
ZERO? STACK \?ELS9
SET 'PFLAG,1
CALL MCGINTY-WILL-FOLLOW
JUMP ?CND4
?ELS9: IN? PASSBOOK,HERE \?CND4
CALL MCGINTY-WILL-FOLLOW
MOVE PASSBOOK,MCGINTY
SET 'PFLAG,2
?CND4: CALL IN-MOTION?,MCGINTY
ZERO? STACK \TRUE
CALL QUEUED?,I-MCGINTY-FOLLOWS
ZERO? STACK /?ELS20
EQUAL? PRSA,V?FOLLOW,V?WALK \?ELS20
LOC PLAYER
IN? MCGINTY,STACK \TRUE
?ELS20: CALL TRAITOR-TIME?
ZERO? STACK \TRUE
FSET? MCGINTY,TOUCHBIT \?ELS22
CALL DPRINT,MCGINTY
PRINTI " is here, "
EQUAL? HERE,OUTFITTERS-HQ \?ELS27
PRINTI "talking with the salesman"
JUMP ?CND25
?ELS27: PRINTI "smoking his cigar"
?CND25: PRINTI "."
JUMP ?CND14
?ELS22: CALL DPRINT,MCGINTY
PRINTI ", a small, nervous man, is "
IN? MCGINTY,MCGINTY-HQ \?ELS42
PRINTI "sitting behind a desk"
JUMP ?CND40
?ELS42: PRINTI "standing nearby"
?CND40: PRINTI ". His lips clamp around a cigar too large for his face."
FSET MCGINTY,TOUCHBIT
?CND14: EQUAL? PFLAG,1 \?ELS53
CALL TELL-EYES-NARROW
JUMP ?CND51
?ELS53: EQUAL? PFLAG,2 \?CND51
CALL TELL-TAKE-PASS,STR?404
?CND51: CRLF
RTRUE
?ELS3: EQUAL? RARG,M-CONT \?CND1
EQUAL? PRSA,V?TAKE \FALSE
FSET? PRSO,TAKEBIT \FALSE
CALL DPRINT,MCGINTY
PRINTR " pulls it back. ""I'm not gonna give that to you!"""
?CND1: EQUAL? WINNER,MCGINTY \?CND67
CALL META-LOC,PLAYER
IN? MCGINTY,STACK /?ELS72
SET 'P-CONT,FALSE-VALUE
CALL TELL-NOT-HERE-TALK
RETURN 2
?ELS72: CALL TRAITOR-TIME?
ZERO? STACK /?CND67
CALL TELL-IN-MEETING
RETURN 2
?CND67: FSET MCGINTY,TOUCHBIT
EQUAL? PRSA,V?FOLLOW \?ELS81
EQUAL? PRSO,MCGINTY /FALSE
?ELS81: EQUAL? PRSA,V?$CALL \?ELS85
CALL TRAITOR-TIME?
ZERO? STACK /?ELS85
CALL TELL-IN-MEETING
RTRUE
?ELS85: EQUAL? PRSA,V?HELLO \?ELS89
SET 'QCONTEXT,MCGINTY
SET 'QCONTEXT-ROOM,HERE
PRINTR """Howdy."""
?ELS89: EQUAL? PRSA,V?GOODBYE \?ELS93
SET 'QCONTEXT,MCGINTY
SET 'QCONTEXT-ROOM,HERE
PRINTR """So long."""
?ELS93: EQUAL? PRSA,V?TAKE \?ELS101
EQUAL? PRSI,MCGINTY /?THN98
?ELS101: EQUAL? PRSA,V?ASK-FOR \?ELS97
EQUAL? PRSO,MCGINTY \?ELS97
?THN98: EQUAL? PRSO,MCGINTY \?ELS106
SET 'OBJ,PRSI
JUMP ?CND104
?ELS106: SET 'OBJ,PRSO
?CND104: IN? OBJ,MCGINTY \?ELS111
PRINTR """I'm not gonna give that to you."""
?ELS111: PRINTR """I don't have that."""
?ELS97: EQUAL? PRSA,V?BUY \?CND79
EQUAL? PRSO,FERRY-TOKEN \?CND79
PRINTR """I don't have one. Try the bank."""
?CND79: EQUAL? PRSA,V?$CALL \?ELS127
EQUAL? WINNER,PLAYER /FALSE
?ELS127: CALL GRAB-ATTENTION,MCGINTY
ZERO? STACK /TRUE
EQUAL? PRSA,V?TELL \?ELS134
EQUAL? PRSO,MCGINTY \?ELS134
EQUAL? PRSI,SAMPLE-TREASURE,GLOBAL-TREASURE \?CND132
CALL TRAITOR-TIME?
ZERO? STACK /?ELS142
CALL JIGS-UP,STR?405
RTRUE
?ELS142: ZERO? MCGINTY-KNOWS /?ELS144
PRINTR """Thanks, but I already know about it."""
?ELS144: IN? SPEAR-CARRIER,HERE /?THN153
IN? JOHNNY,HERE /?THN153
IN? PETE,HERE /?THN153
IN? WEASEL,HERE \?ELS152
?THN153: SET 'MCGINTY-KNOWS,TRUE-VALUE
CALL ZERO-ATTENTION,MCGINTY
GET GOAL-TABLES,MCGINTY-C
PUT STACK,GOAL-ENABLE,TRUE-VALUE
CALL DPRINT,MCGINTY
PRINTI " looks delighted with the information."
IN? MCGINTY,OUTFITTERS-HQ \?ELS159
CALL ESTABLISH-GOAL,MCGINTY,MCGINTY-HQ
IN? JOHNNY,OUTFITTERS-HQ \?ELS162
CALL SAY-MCGINTY-KNOWS
RTRUE
?ELS162: PRINTI " He thanks you."
CALL TELL-NEED-BOAT
RTRUE
?ELS159: CALL ESTABLISH-GOAL,MCGINTY,OUTFITTERS-HQ
CALL ALL-GO-HOME
CALL I-PLOT-NEVER-STARTS
CALL INT,I-SHOVE-OFF
PUT STACK,0,0
PRINTR " ""Excuse me,"" he says. ""I have business to attend to."""
?ELS152: CALL JIGS-UP,STR?406
RTRUE
?ELS134: EQUAL? PRSA,V?SHOW \?ELS174
EQUAL? PRSO,BOOK,NOTE \?ELS174
EQUAL? PRSI,MCGINTY \?ELS174
CALL PERFORM,V?TELL,MCGINTY,GLOBAL-TREASURE
RTRUE
?ELS174: EQUAL? PRSA,V?ASK-ABOUT \?CND132
EQUAL? PRSO,MCGINTY \?CND132
CALL TRAITOR-TIME?
ZERO? STACK /?ELS183
CALL TELL-IN-MEETING
RETURN 2
?ELS183: EQUAL? PRSI,GLOBAL-TREASURE \?ELS187
PRINTI """I'm always looking for "
CALL DPRINT,GLOBAL-TREASURE
PRINTR ","" he says, grinning."
?ELS187: EQUAL? PRSI,SPEAR-CARRIER \?ELS191
PRINTR """He does his job."""
?ELS191: EQUAL? PRSI,PETES-PATCH \?ELS195
PRINTR """All I know is that Pete wears it."""
?ELS195: EQUAL? PRSI,CIGAR \?ELS199
PRINTR """Yeah. That's my cigar."""
?ELS199: EQUAL? PRSI,HEVLIN \?ELS203
CALL TELL-NEVER-KNEW
RTRUE
?ELS203: EQUAL? PRSI,WEASEL,PETE,JOHNNY \?ELS205
PRINTR """He's worked for me. He's all right."""
?ELS205: EQUAL? PRSI,ME \?ELS209
CALL TELL-YOURE-DIVER
RTRUE
?ELS209: EQUAL? PRSI,MCGINTY \?ELS211
CALL TELL-KNOW-ME
RTRUE
?ELS211: EQUAL? PRSI,PARROT \?ELS213
PRINTR """It's the queerest bird I've ever seen."""
?ELS213: EQUAL? PRSI,SALVAGER,TRAWLER \FALSE
PRINTR """She's a nice boat."""
?CND132: EQUAL? WINNER,MCGINTY \FALSE
EQUAL? PRSO,GLOBAL-SELF \?CND227
SET 'PRSO,MCGINTY
?CND227: EQUAL? PRSI,GLOBAL-SELF \?CND230
SET 'PRSI,MCGINTY
?CND230: EQUAL? PRSA,V?TELL \?ELS237
EQUAL? PRSO,ME /FALSE
?ELS237: EQUAL? PRSA,V?$CALL \?ELS241
CALL TELL-SO-WHAT
RSTACK
?ELS241: EQUAL? PRSA,V?LEAVE,V?DISEMBARK,V?WALK \?ELS243
PRINTR """I'll leave when I'm ready."""
?ELS243: EQUAL? PRSA,V?SHOW \?ELS247
IN? PRSO,MCGINTY \?ELS247
EQUAL? PRSI,ME \?ELS247
SET 'WINNER,PLAYER
CALL PERFORM,V?EXAMINE,PRSO
SET 'WINNER,MCGINTY
RETURN WINNER
?ELS247: EQUAL? PRSA,V?MAYBE,V?NO,V?YES /FALSE
EQUAL? PRSA,V?SSHOW,V?FIND,V?WHAT /FALSE
EQUAL? PRSA,V?ALARM /FALSE
PRINTI """I'd rather not."""
CRLF
RETURN 2
.FUNCT ZERO-ATTENTION,PER
GETP PER,P?CHARACTER
GET GOAL-TABLES,STACK
PUT STACK,ATTENTION,0
RTRUE
.FUNCT TELL-SO-WHAT
FSET? PRSO,VICBIT \?ELS5
PRINTR """What about him?"""
?ELS5: CALL V-CALL-LOSE
RSTACK
.FUNCT TELL-TAKE-PASS,STR
PRINT STR
PRINTI " sees the passbook, picks it up, looks at it and then at you."
RTRUE
.FUNCT TRAITOR-TIME?
IN? ID-CARD,WEASEL \FALSE
CALL QUEUED?,I-TRAITOR-MEETING
ZERO? STACK \TRUE
RFALSE
.FUNCT TELL-IN-MEETING
PRINTR "He's too engrossed in his meeting to hear you."
.FUNCT MCGINTY-ERRAND
MOVE PLAYER,WHARF-ROAD-2
MOVE MCGINTY,WHARF-ROAD-2
SET 'HERE,WHARF-ROAD-2
PRINTI """I'm closing to run an errand,"" "
CALL DPRINT,MCGINTY
PRINTI " says, ushering you out..."
CRLF
CRLF
CALL V-FIRST-LOOK
RSTACK
.FUNCT I-MCGINTY,GARG=0,L,DEST,MMG,V=0
LOC MCGINTY >L
ZERO? GARG \?ELS5
GET MOVEMENT-GOALS,MCGINTY-C >MMG
IN? MCGINTY,MCGINTY-HQ \?CND6
IN? PLAYER,MCGINTY-HQ \?CND6
GET MMG,MG-ROOM
EQUAL? STACK,MCGINTY-HQ /?CND6
CALL MCGINTY-ERRAND
SET 'V,TRUE-VALUE
?CND6: EQUAL? L,FERRY-LANDING \?CND11
SET 'MCGINTY-MEETS-WEASEL,FALSE-VALUE
?CND11: CALL IMOVEMENT,MCGINTY,I-MCGINTY
RETURN V
?ELS5: EQUAL? GARG,G-REACHED \?ELS15
EQUAL? L,MCGINTY-HQ \?ELS20
IN? PLAYER,L \?ELS23
CALL JIGS-UP,STR?407
JUMP ?CND21
?ELS23: IN? PLAYER,WHARF-ROAD-2 \?ELS25
EQUAL? LAST-PLAYER-LOC,MCGINTY-HQ \?ELS25
CALL JIGS-UP,STR?408
JUMP ?CND21
?ELS25: IN? ID-CARD,MCGINTY \?ELS29
MOVE ID-CARD,ENVELOPE
FSET ID-CARD,TAKEBIT
FCLEAR ENVELOPE,INVISIBLE
JUMP ?CND21
?ELS29: ZERO? MCGINTY-KNOWS \?CND21
ZERO? MCGINTY-MEETS-WEASEL /?CND21
GET MOVEMENT-GOALS,MCGINTY-C
GET STACK,MG-ROOM
EQUAL? STACK,SHANTY \?CND21
PUT MOVEMENT-GOALS,MCGINTY-C,MCGINTY-MEETS-WEASEL-TABLE
CALL IMOVEMENT,MCGINTY,I-MCGINTY
RFALSE
?CND21: IN? PLAYER,BACK-ALLEY-2 \FALSE
FSET? WINDOW,OPENBIT \FALSE
PRINTI "The window gets slammed shut."
CRLF
FCLEAR BACK-WINDOW,OPENBIT
RTRUE
?ELS20: EQUAL? L,FERRY-LANDING \?ELS44
CALL QUEUE,I-TRAITOR-MEETING,-1
PUT STACK,0,1
IN? PLAYER,L \?CND45
CALL DPRINT,MCGINTY
PRINTI " wanders in, looking preoccupied."
CRLF
SET 'V,TRUE-VALUE
?CND45: IN? WEASEL,L \?CND50
CALL I-TRAITOR-MEETING
RETURN V
?CND50: RETURN V
?ELS44: EQUAL? L,HERE \?ELS54
CALL DPRINT,MCGINTY
PRINTI " wanders in."
IN? PASSBOOK,PLAYER \?ELS59
ZERO? MCGINTY-KNOWS \?ELS59
CALL QUEUED?,I-MCGINTY-FOLLOWS
ZERO? STACK \?ELS59
CALL MCGINTY-WILL-FOLLOW
CALL TELL-EYES-NARROW
JUMP ?CND57
?ELS59: IN? PASSBOOK,L \?CND57
SET 'MCGINTY-MEETS-WEASEL,TRUE-VALUE
?CND57: CRLF
RETURN 2
?ELS54: IN? PASSBOOK,L \FALSE
MOVE PASSBOOK,MCGINTY
SET 'MCGINTY-MEETS-WEASEL,TRUE-VALUE
RFALSE
?ELS15: EQUAL? GARG,G-ENROUTE \FALSE
IN? PLAYER,L \?ELS74
IN? PASSBOOK,PLAYER \?ELS74
ZERO? MCGINTY-KNOWS \?ELS74
CALL QUEUED?,I-MCGINTY-FOLLOWS
ZERO? STACK \?ELS74
CALL MCGINTY-WILL-FOLLOW
CALL TELL-EYES-NARROW,FALSE-VALUE
CRLF
RTRUE
?ELS74: IN? PASSBOOK,L \FALSE
ZERO? MCGINTY-KNOWS \FALSE
CALL META-LOC,PLAYER
IN? MCGINTY,STACK \?ELS85
CALL MCGINTY-WILL-FOLLOW
MOVE PASSBOOK,MCGINTY
CALL TELL-TAKE-PASS,STR?409
CRLF
RTRUE
?ELS85: SET 'MCGINTY-MEETS-WEASEL,TRUE-VALUE
MOVE PASSBOOK,MCGINTY
RFALSE
.FUNCT TELL-EYES-NARROW,SPACE=1
ZERO? ALREADY-FOLLOWED \FALSE
ZERO? SPACE /?CND6
PRINTI " "
?CND6: PRINTI "As he looks at you, he does a double take and stares intently at your possessions."
RTRUE
.FUNCT MCGINTY-WILL-FOLLOW,GT
ZERO? MCGINTY-KNOWS \FALSE
GET GOAL-TABLES,MCGINTY-C >GT
PUT GT,GOAL-ENABLE,FALSE-VALUE
PUT GT,GOAL-F,WRECK-13
PUT GT,ATTENTION,500
CALL INT,I-MCGINTY
PUT STACK,0,0
CALL QUEUE,I-MCGINTY-FOLLOWS,-1
PUT STACK,0,1
RTRUE
.FUNCT I-MCGINTY-FOLLOWS,GT,MCG-LOC
LOC MCGINTY >MCG-LOC
GRTR? PRESENT-TIME,810 \?CND1
ZERO? ALREADY-FOLLOWED \?CND1
CALL INT,I-MCGINTY-FOLLOWS
PUT STACK,0,0
GET GOAL-TABLES,MCGINTY-C >GT
PUT GT,ATTENTION,0
PUT GT,GOAL-ENABLE,TRUE-VALUE
SET 'ALREADY-FOLLOWED,TRUE-VALUE
CALL ESTABLISH-GOAL,MCGINTY,MCGINTY-HQ
RFALSE
?CND1: GET GOAL-TABLES,MCGINTY-C
PUT STACK,ATTENTION,5
EQUAL? HERE,OUTFITTERS-HQ \?ELS10
EQUAL? MCG-LOC,WHARF-ROAD-4 \?ELS10
CALL MOVE-PERSON,MCGINTY,OUTFITTERS-HQ
RSTACK
?ELS10: EQUAL? HERE,MCG-LOC,LAST-PLAYER-LOC /FALSE
EQUAL? MCG-LOC,LAST-PLAYER-LOC /FALSE
CALL META-LOC,LAST-PLAYER-LOC
EQUAL? LAST-PLAYER-LOC,STACK \FALSE
CALL MOVE-PERSON,MCGINTY,LAST-PLAYER-LOC
RSTACK
.FUNCT CIGAR-F
EQUAL? PRSA,V?TAKE \?ELS5
CALL DPRINT,MCGINTY
PRINTR " yanks it back, then tenderly clamps it between his teeth."
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS9
CALL TELL-ALREADY,STR?411
RSTACK
?ELS9: EQUAL? PRSA,V?SMELL \FALSE
PRINTR "The cigar smells like a burning tire."
.FUNCT JOHNNY-F,RARG=0,TREAS,?TMP1
EQUAL? RARG,M-OBJDESC \?ELS3
CALL QUEUED?,I-PENDULUM
ZERO? STACK /?ELS6
CALL INT,I-PENDULUM
GET STACK,C-TICK
EQUAL? STACK,-1 /TRUE
?ELS6: CALL IN-MOTION?,JOHNNY
ZERO? STACK \TRUE
EQUAL? HERE,MM-AFT-DECK,NW-AFT-DECK \?ELS12
ZERO? WEASEL-APPREHENDED /?ELS12
CALL QUEUED?,I-PENDULUM
ZERO? STACK \?ELS12
CALL I-JOHNNY,G-REACHED
RTRUE
?ELS12: FSET? JOHNNY,TOUCHBIT \?ELS16
CALL DPRINT,JOHNNY
PRINTI " is here"
IN? SPEAR-CARRIER,HERE \?CND19
IN? MCGINTY,HERE \?ELS24
PRINTI ", glaring at "
CALL DPRINT,MCGINTY
JUMP ?CND19
?ELS24: LESS? FM-CTR,2 /?THN31
GRTR? FM-CTR,4 \?CND19
?THN31: EQUAL? PRESENT-TIME,704 /?CND19
PRINTI ", chatting with the "
CALL DPRINT,SPEAR-CARRIER
?CND19: PRINTR "."
?ELS16: CALL DPRINT,JOHNNY
PRINTI " is here. Red hair sprouts from his head and from beneath his flannel shirt."
CRLF
FSET JOHNNY,TOUCHBIT
RTRUE
?ELS3: EQUAL? RARG,M-CONT \?CND1
EQUAL? PRSA,V?TAKE \?ELS45
FSET? PRSO,TAKEBIT \?ELS45
PRINTR "Johnny glares down at you. ""Get your hands off of that!"""
?ELS45: EQUAL? KNIFE,PRSO,PRSI \FALSE
EQUAL? PRSA,V?ASK-ABOUT,V?FIND,V?EXAMINE /FALSE
EQUAL? PRSA,V?ASK-CONTEXT-ABOUT /FALSE
PRINTI "Johnny pulls it back. ""I'm not gonna let you give this to "
CALL DPRINT,WEASEL
PRINTR "."""
?CND1: EQUAL? JOHNNY,WINNER \?CND60
CALL META-LOC,JOHNNY >?TMP1
CALL META-LOC,PLAYER
EQUAL? ?TMP1,STACK /?CND60
SET 'P-CONT,FALSE-VALUE
CALL TELL-NOT-HERE-TALK
RETURN 2
?CND60: FSET JOHNNY,TOUCHBIT
EQUAL? PRSA,V?FOLLOW \?ELS69
EQUAL? PRSO,JOHNNY /FALSE
?ELS69: EQUAL? PRSA,V?TELL \?ELS73
ZERO? PRSI /FALSE
?ELS73: ZERO? MCGINTY-KNOWS \?THN78
ZERO? JOHNNY-SILENT /?ELS77
?THN78: CALL DPRINT,JOHNNY
PRINTI " looks right through you."
CRLF
RETURN 2
?ELS77: EQUAL? PRSA,V?GOODBYE,V?HELLO \?ELS85
SET 'QCONTEXT,JOHNNY
SET 'QCONTEXT-ROOM,HERE
PRINTR """Ahoy, matey."""
?ELS85: EQUAL? PRSA,V?BUY \?CND67
EQUAL? PRSO,FERRY-TOKEN \?CND67
PRINTI """Try "
CALL DPRINT,BANK
PRINTR "."""
?CND67: EQUAL? PRSA,V?$CALL \?ELS97
EQUAL? WINNER,PLAYER /FALSE
?ELS97: CALL GRAB-ATTENTION,JOHNNY
ZERO? STACK /TRUE
EQUAL? PRSA,V?SHOW,V?GIVE \?ELS104
EQUAL? PRSO,CHARTS \?ELS104
PRINTR """No thanks. I have my own."""
?ELS104: EQUAL? PRSA,V?SHOW \?ELS114
EQUAL? PRSO,NOTE /?THN111
?ELS114: EQUAL? PRSA,V?ASK-ABOUT \?ELS110
EQUAL? PRSI,NOTE \?ELS110
?THN111: PRINTR """Yeah. I wrote that."""
?ELS110: EQUAL? PRSA,V?GIVE \?ELS120
EQUAL? PRSO,ENVELOPE /?THN123
EQUAL? PRSO,ID-CARD \?ELS120
?THN123: IN? ID-CARD,ENVELOPE /?CND125
CALL TELL-RETURNS,JOHNNY
?CND125: CALL PERFORM,V?SHOW,PRSO,JOHNNY
RTRUE
?ELS120: EQUAL? PRSA,V?SHOW \?ELS129
EQUAL? PRSI,JOHNNY \?ELS129
IN? ID-CARD,ENVELOPE \?ELS134
EQUAL? PRSO,ENVELOPE /?THN137
EQUAL? PRSO,ID-CARD \?ELS134
?THN137: PRINTI "Johnny takes the card and "
CALL DPRINT,ENVELOPE
PRINTI " and studies them. "
ZERO? WEASEL-APPREHENDED /?ELS143
CALL TELL-ALREADY-SHOWN
PRINTI ","" he says, handing the "
CALL DPRINT,ENVELOPE
PRINTI " back."
JUMP ?CND141
?ELS143: ZERO? CLUMSILY-HANDLED /?ELS148
PRINTI """You trying to frame "
CALL DPRINT,WEASEL
PRINTI "?"" He returns the "
CALL DPRINT,ENVELOPE
PRINTI "."
JUMP ?CND141
?ELS148: MOVE ENVELOPE,JOHNNY
PRINTI """So,"" he muses, """
CALL DPRINT,WEASEL
PRINTI " is working with "
CALL DPRINT,MCGINTY
PRINTI ". I'll take care of him."""
SET 'WEASEL-BLOWN,TRUE-VALUE
LOC JOHNNY
IN? WEASEL,STACK \?ELS158
CALL ROUGH-JUSTICE
JUMP ?CND141
?ELS158: IN? WEASEL,FERRY /?THN161
IN? WEASEL,GLOBAL-FERRY \?ELS160
?THN161: CALL ESTABLISH-GOAL,JOHNNY,FERRY-LANDING
JUMP ?CND141
?ELS160: CALL META-LOC,WEASEL
CALL ESTABLISH-GOAL,JOHNNY,STACK
?CND141: CRLF
RTRUE
?ELS134: EQUAL? PRSO,ENVELOPE \?ELS166
ZERO? WEASEL-BLOWN /?ELS169
CALL TELL-ALREADY-SHOWN
JUMP ?CND167
?ELS169: PRINTI """It's empty. It don't mean nothing"
SET 'CLUMSILY-HANDLED,TRUE-VALUE
?CND167: PRINTR "."""
?ELS166: EQUAL? PRSO,ID-CARD \?CND102
ZERO? WEASEL-BLOWN /?ELS181
CALL TELL-ALREADY-SHOWN
JUMP ?CND179
?ELS181: PRINTI """That's "
CALL DPRINT,WEASEL
PRINTI "'s. He'll be glad you found it"
SET 'CLUMSILY-HANDLED,TRUE-VALUE
?CND179: PRINTR "."""
?ELS129: EQUAL? PRSA,V?ASK-ABOUT \?CND102
EQUAL? PRSO,JOHNNY \?CND102
EQUAL? PRSI,SHARK,SAMPLE-TREASURE,GLOBAL-TREASURE \?ELS195
IN? MCGINTY,HERE \?ELS198
CALL MCGINTY-AND-TREASURE,GLOBAL-TREASURE
RTRUE
?ELS198: CALL ENABLED?,I-JOHNNY
ZERO? STACK /?THN201
ZERO? SAMPLE-TREASURE \?ELS200
?THN201: PRINTI "Red scowls. ""What "
CALL DPRINT,GLOBAL-TREASURE
PRINTR "?"""
?ELS200: LESS? SM-CTR,2 \?ELS206
PRINTR """All in good time."""
?ELS206: LESS? TM-CTR,7 /?THN211
IN? WEASEL,HERE /?THN211
IN? PETE,HERE /?THN211
IN? SPEAR-CARRIER,HERE \?ELS210
?THN211: PRINTI """I told you. I found a "
CALL DPRINT,SAMPLE-TREASURE
PRINTR " while I was cleaning a shark."""
?ELS210: EQUAL? PRSI,SHARK \?ELS216
PRINTR """I made that up."""
?ELS216: PRINTR """Hevlin gave it to me."""
?ELS195: EQUAL? PRSI,BOOK \?ELS224
LESS? TM-CTR,7 /FALSE
IN? WEASEL,HERE /FALSE
IN? PETE,HERE /FALSE
IN? SPEAR-CARRIER,HERE /FALSE
PRINTR """That's the one Hevlin gave you."""
?ELS224: EQUAL? PRSI,PETES-PATCH \?ELS235
PRINTR """Pete's worn it a long time."""
?ELS235: EQUAL? PRSI,HEVLIN \?ELS239
PRINTR """He was an old friend of mine."""
?ELS239: EQUAL? PRSI,SPEAR-CARRIER \?ELS243
PRINTR """You know him as well as I do."""
?ELS243: EQUAL? PRSI,ME \?ELS247
CALL TELL-YOURE-DIVER
RTRUE
?ELS247: EQUAL? PRSI,WEASEL \?ELS249
PRINTI """The Weasel? "
ZERO? WEASEL-BLOWN /?ELS254
PRINTI "Lower than a sea slug..."""
JUMP ?CND252
?ELS254: IN? WEASEL,HERE \?ELS259
PRINTI "He's my pal."""
CALL TELL-FERRY-KLUDGE,STR?413
JUMP ?CND252
?ELS259: PRINTI "I wouldn't trust him farther than I could throw a whale! But he's a great one-man crew."""
?CND252: CRLF
RTRUE
?ELS249: EQUAL? PRSI,MCGINTY \?ELS267
IN? MCGINTY,HERE \?ELS270
PRINTC 34
CALL DPRINT,MCGINTY
PRINTR "'s one of my favorite people to work for!"""
?ELS270: PRINTR """That man would sell his mother for a profit!"""
?ELS267: EQUAL? PRSI,PETE \?ELS278
IN? PETE,HERE \?CND279
PRINTI "Johnny leans over and mutters, "
?CND279: PRINTR """Pete's no genius, but he's dependable. He got a bad name 'cause of what happened, him serving his mates rats for mess. But he'll never make that mistake again!"""
?ELS278: EQUAL? PRSI,JOHNNY \?ELS287
CALL TELL-KNOW-ME
RTRUE
?ELS287: EQUAL? PRSI,PARROT \?ELS289
PRINTI """It's what makes "
CALL DPRINT,SHANTY
PRINTR " what it is."""
?ELS289: EQUAL? PRSI,SALVAGER,TRAWLER \?ELS293
PRINTR """It's one of Outfitters' boats."""
?ELS293: EQUAL? PRSI,LINE-HACK \FALSE
PRINT LINE-STR
CRLF
RTRUE
?CND102: EQUAL? WINNER,JOHNNY \FALSE
EQUAL? PRSO,GLOBAL-SELF \?CND307
SET 'PRSO,JOHNNY
?CND307: EQUAL? PRSI,GLOBAL-SELF \?CND310
SET 'PRSI,JOHNNY
?CND310: IN? MCGINTY,HERE \?CND313
EQUAL? PRSO,SAMPLE-TREASURE,GLOBAL-TREASURE \?ELS318
SET 'TREAS,PRSO
JUMP ?CND316
?ELS318: EQUAL? PRSI,GLOBAL-TREASURE,SAMPLE-TREASURE \?CND316
SET 'TREAS,PRSI
?CND316: ZERO? TREAS /?CND313
CALL MCGINTY-AND-TREASURE,TREAS
RTRUE
?CND313: EQUAL? PRSA,V?TELL \?ELS329
EQUAL? PRSO,ME /FALSE
?ELS329: EQUAL? PRSA,V?$CALL \?ELS333
CALL TELL-SO-WHAT
RSTACK
?ELS333: EQUAL? PRSA,V?SHOW \?ELS335
IN? PRSO,JOHNNY \?ELS335
EQUAL? PRSI,ME \?ELS335
SET 'WINNER,PLAYER
CALL PERFORM,V?EXAMINE,PRSO
SET 'WINNER,JOHNNY
RETURN WINNER
?ELS335: EQUAL? PRSA,V?MAYBE,V?NO,V?YES /FALSE
EQUAL? PRSA,V?WHAT,V?LONGITUDE,V?LATITUDE /FALSE
EQUAL? PRSA,V?ALARM,V?SSHOW,V?FIND /FALSE
PRINTI """I'll do what I want."""
CRLF
RETURN 2
.FUNCT MCGINTY-AND-TREASURE,TRE
CALL MCGINTY-WILL-FOLLOW
PRINTI "Johnny looks at "
CALL DPRINT,MCGINTY
PRINTI " and then at you. ""What "
CALL DPRINT,TRE
PRINTR "?"""
.FUNCT TELL-RETURNS,PER
CALL START-SENTENCE,PER
PRINTI " looks at the "
CALL DPRINT,PRSO
PRINTI " and hands it back to you. "
RTRUE
.FUNCT TELL-ALREADY-SHOWN
CALL TELL-YOU-ALREADY,STR?414,TRUE-VALUE,FALSE-VALUE
RSTACK
.FUNCT TELL-YOU-ALREADY,STR,QUOTE?=0,DONE=1
ZERO? QUOTE? /?CND1
PRINTI """"
?CND1: PRINTI "You already "
PRINT STR
ZERO? DONE /FALSE
CRLF
RTRUE
.FUNCT I-JOHNNY,GARG=0,L,JMG,V,?TMP1
LOC JOHNNY >L
ZERO? GARG \?ELS5
ZERO? WEASEL-BLOWN \FALSE
GRTR? FM-CTR,1 \?ELS15
LESS? FM-CTR,5 /?THN12
?ELS15: GRTR? TM-CTR,0 \?CND6
LESS? TM-CTR,8 \?CND6
?THN12: CALL QUEUE,I-JOHNNY,1
PUT STACK,0,1
RFALSE
?CND6: GET MOVEMENT-GOALS,JOHNNY-C >JMG
GET JMG,MG-ROOM
EQUAL? STACK,MM-CAPT-CABIN \?CND18
EQUAL? SHIP-CHOSEN,TRAWLER \?CND18
PUT JMG,MG-ROOM,NW-CAPT-CABIN
?CND18: CALL IMOVEMENT,JOHNNY,I-JOHNNY
RSTACK
?ELS5: EQUAL? GARG,G-REACHED \?ELS24
ZERO? WEASEL-APPREHENDED /?ELS27
EQUAL? L,MM-LOUNGE,NW-LOUNGE \?ELS31
LOC WEASEL
IN? PLAYER,STACK \?CND32
CALL TELL-JOHNNY-DRAGS
?CND32: MOVE WEASEL,L
EQUAL? SHIP-CHOSEN,TRAWLER \?ELS37
CALL ESTABLISH-GOAL,JOHNNY,NW-AFT-DECK
JUMP ?CND35
?ELS37: CALL ESTABLISH-GOAL,JOHNNY,MM-AFT-DECK
?CND35: IN? PLAYER,L \TRUE
PRINTI "Johnny drags "
CALL DPRINT,WEASEL
PRINTR " in, ties him up, and throws him to the floor."
?ELS31: EQUAL? L,MM-AFT-DECK,NW-AFT-DECK \?CND25
CALL QUEUED?,I-PENDULUM
ZERO? STACK \?CND25
IN? PLAYER,L \?CND25
CALL QUEUE,I-PENDULUM,-1
PUT STACK,0,1
FCLEAR LINE-HACK,INVISIBLE
MOVE LINE-HACK,L
PRINTI "Johnny approaches, throws a weighted "
CALL DPRINT,SAFETY-LINE
PRINTI " over the side, and says, "
PRINT LINE-STR
CRLF
RTRUE
?ELS27: ZERO? WEASEL-BLOWN /?ELS55
CALL META-LOC,WEASEL
EQUAL? L,STACK \?ELS59
CALL ROUGH-JUSTICE
JUMP ?CND25
?ELS59: IN? WEASEL,GLOBAL-FERRY /FALSE
IN? WEASEL,FERRY /FALSE
IN? WEASEL,LOCAL-GLOBALS /FALSE
GET GOAL-TABLES,JOHNNY-C
GET STACK,GOAL-F >?TMP1
CALL META-LOC,WEASEL
EQUAL? ?TMP1,STACK /?CND25
CALL META-LOC,WEASEL
CALL ESTABLISH-GOAL,JOHNNY,STACK
RFALSE
?ELS55: EQUAL? L,OUTFITTERS-HQ \?CND25
EQUAL? MEETINGS-COMPLETED,3 \?CND25
CALL QUEUE,I-EQUIP,-1
PUT STACK,0,1
?CND25: EQUAL? L,HERE \FALSE
CALL DPRINT,JOHNNY
PRINTI " appears, striding like a proud lion."
CRLF
CALL QUEUED?,I-THIRD-MEETING
ZERO? STACK /?CND82
CALL I-THIRD-MEETING
?CND82: RETURN 2
?ELS24: EQUAL? GARG,G-ENROUTE \FALSE
ZERO? WEASEL-BLOWN /FALSE
ZERO? WEASEL-APPREHENDED /?ELS99
LOC WEASEL
EQUAL? STACK,MM-LOUNGE,NW-LOUNGE /FALSE
IN? WEASEL,L \?CND106
SET 'V,TRUE-VALUE
?CND106: MOVE WEASEL,L
ZERO? V \?THN114
IN? PLAYER,L \FALSE
?THN114: CALL TELL-JOHNNY-DRAGS
RSTACK
?ELS99: CALL META-LOC,WEASEL
EQUAL? L,STACK \?ELS122
CALL ROUGH-JUSTICE
RSTACK
?ELS122: IN? WEASEL,GLOBAL-FERRY /FALSE
IN? WEASEL,FERRY /FALSE
IN? WEASEL,LOCAL-GLOBALS /FALSE
GET GOAL-TABLES,JOHNNY-C
GET STACK,GOAL-F >?TMP1
CALL META-LOC,WEASEL
EQUAL? ?TMP1,STACK /FALSE
CALL META-LOC,WEASEL
CALL ESTABLISH-GOAL,JOHNNY,STACK
RFALSE
.FUNCT TELL-JOHNNY-DRAGS
PRINTI "Johnny drags "
CALL DPRINT,WEASEL
PRINTR " along with him."
.FUNCT ROUGH-JUSTICE,PRINT?=0
LOC JOHNNY
IN? PLAYER,STACK \?CND1
SET 'PRINT?,TRUE-VALUE
CRLF
PRINTI "Johnny grabs "
CALL DPRINT,WEASEL
PRINTI " and his knife. ""All right, slime. Thought you and "
CALL DPRINT,MCGINTY
PRINTI " could rip us off, huh?"" Before he turns to lead "
CALL DPRINT,WEASEL
PRINTI " away, "
?CND1: ZERO? AT-SEA /?ELS10
SET 'WEASEL-APPREHENDED,TRUE-VALUE
MOVE KNIFE,JOHNNY
LOC LOUNGE-CHAIR
CALL ESTABLISH-GOAL,JOHNNY,STACK
RSTACK
?ELS10: ZERO? PRINT? /?ELS16
PRINTI "Johnny says, ""We'd have to find someone else to crew. I better call it off."" You head for "
CALL DPRINT,SHANTY
PRINTI ", wishing you had more to do today than drink."
CRLF
JUMP ?CND14
?ELS16: CALL TELL-COMES-UP,JOHNNY
PRINTI """I've taken care of "
CALL DPRINT,WEASEL
PRINTI ", but we can't go out without a crew. Maybe next time."""
CRLF
?CND14: CALL FINISH
RSTACK
.FUNCT TELL-COMES-UP,WHO
CALL START-SENTENCE,WHO
PRINTI " comes up to you and says, "
RTRUE
.FUNCT PETE-F,RARG=0,?TMP1
EQUAL? RARG,M-OBJDESC \?ELS3
CALL IN-MOTION?,PETE
ZERO? STACK \TRUE
LOC PETE
EQUAL? STACK,MM-GALLEY,NW-GALLEY \?ELS8
CALL DPRINT,PETE
PRINTR " is watching over his stew."
?ELS8: GRTR? FM-CTR,1 \?ELS16
LESS? FM-CTR,5 /?THN13
?ELS16: EQUAL? PRESENT-TIME,704 \?ELS12
?THN13: CALL DPRINT,PETE
PRINTR " is sitting here, listening intently."
?ELS12: FSET? PETE,TOUCHBIT \?ELS20
CALL DPRINT,PETE
PRINTR " fiddles with his eyepatch, shifting his weight from foot to foot."
?ELS20: PRINTI "A man wearing an eyepatch, black turtleneck, and jeans is standing about. He is known as "
CALL DPRINT,PETE
PRINTI "."
CRLF
FSET PETE,TOUCHBIT
RTRUE
?ELS3: EQUAL? RARG,M-CONT \?CND1
EQUAL? PRSA,V?TAKE \FALSE
FSET? PRSO,TAKEBIT \FALSE
PRINTR "Pete pulls it back. ""That's mine!"""
?CND1: EQUAL? WINNER,PETE \?CND38
CALL META-LOC,PETE >?TMP1
CALL META-LOC,PLAYER
EQUAL? ?TMP1,STACK /?CND38
SET 'P-CONT,FALSE-VALUE
CALL TELL-NOT-HERE-TALK
RETURN 2
?CND38: FSET PETE,TOUCHBIT
EQUAL? PRSA,V?FOLLOW \?ELS47
EQUAL? PRSO,PETE /FALSE
?ELS47: EQUAL? PRSA,V?HELLO \?ELS51
SET 'QCONTEXT,PETE
SET 'QCONTEXT-ROOM,HERE
PRINTR """Hi."""
?ELS51: EQUAL? PRSA,V?GOODBYE \?ELS55
SET 'QCONTEXT,PETE
SET 'QCONTEXT-ROOM,HERE
PRINTR """Bye."""
?ELS55: EQUAL? PRSA,V?SMELL \?ELS59
PRINTR "Phew! Better stay upwind of him."
?ELS59: EQUAL? PRSA,V?BUY \?CND45
EQUAL? PRSO,FERRY-TOKEN \?CND45
PRINTR "Pete checks his pockets, then holds out his empty hands."
?CND45: EQUAL? PRSA,V?$CALL \?ELS71
EQUAL? WINNER,PLAYER /FALSE
?ELS71: CALL GRAB-ATTENTION,PETE
ZERO? STACK /TRUE
EQUAL? PRSA,V?GIVE \?ELS78
EQUAL? PRSO,ENVELOPE /?THN81
EQUAL? PRSO,ID-CARD \?ELS78
?THN81: IN? ID-CARD,ENVELOPE /?CND83
CALL TELL-RETURNS,PETE
?CND83: CALL PERFORM,V?SHOW,PRSO,PETE
RTRUE
?ELS78: EQUAL? PRSA,V?SHOW \?ELS87
EQUAL? PRSI,PETE \?ELS87
IN? ID-CARD,ENVELOPE \?ELS92
EQUAL? PRSO,ENVELOPE /?THN95
EQUAL? PRSO,ID-CARD \?ELS92
?THN95: PRINTI "Pete takes the "
CALL DPRINT,ENVELOPE
PRINTI ", studies it, then returns it. ""Looks like "
CALL DPRINT,WEASEL
PRINTR "'s card to me,"" he says."
?ELS92: EQUAL? PRSO,ENVELOPE \?ELS100
PRINTR """Looks like it's empty."""
?ELS100: EQUAL? PRSO,ID-CARD \?CND76
PRINTI """Looks like "
CALL DPRINT,WEASEL
PRINTR "'s card. Better return it."""
?ELS87: EQUAL? PRSA,V?ASK-ABOUT \?CND76
EQUAL? PRSO,PETE \?CND76
EQUAL? PRSI,GLOBAL-TREASURE \?ELS113
IN? MCGINTY,HERE \?CND114
CALL MCGINTY-WILL-FOLLOW
?CND114: LESS? FM-CTR,3 \?ELS119
PRINTR """I think that's what Johnny wants to talk about."""
?ELS119: GETP HERE,P?LINE
LESS? STACK,TRAWLER-LINE-C \?ELS123
PRINTR """Looks like Johnny found some."""
?ELS123: PRINTR """That's what we're lookin' for."""
?ELS113: EQUAL? PRSI,SAMPLE-TREASURE \?ELS131
IN? SAMPLE-TREASURE,JOHNNY \?ELS131
IN? MCGINTY,HERE \?CND134
CALL MCGINTY-WILL-FOLLOW
?CND134: PRINTR """You saw it. You should know more about it than me."""
?ELS131: EQUAL? PRSI,PETES-PATCH \?ELS140
PRINTR """That's my eyepatch. It covers my bad eye."""
?ELS140: EQUAL? PRSI,STOVE \?ELS144
PRINTI """There's nothing special about the "
CALL DPRINT,STOVE
PRINTR "."""
?ELS144: EQUAL? PRSI,SPEAR-CARRIER \?ELS148
PRINTR """He's a good guy."""
?ELS148: EQUAL? PRSI,JOHNNY \?ELS152
PRINTR "Pete thinks for a second. ""Yeah, Red's a friend of mine."""
?ELS152: EQUAL? PRSI,MCGINTY \?ELS156
PRINTR """I done work for him, but I don't like him."""
?ELS156: EQUAL? PRSI,HEVLIN \?ELS160
CALL TELL-NEVER-KNEW
RTRUE
?ELS160: EQUAL? PRSI,WEASEL \?ELS162
PRINTI "Pete frowns for a moment, then "
IN? WEASEL,HERE \?ELS167
PRINTI "leans over and whispers"
JUMP ?CND165
?ELS167: PRINTI "says"
?CND165: PRINTR ", ""The Weasel's a friend, but I don't trust him. He's awful quick with that knife."""
?ELS162: EQUAL? PRSI,PETE \?ELS177
CALL TELL-KNOW-ME
RTRUE
?ELS177: EQUAL? PRSI,ME \?ELS179
CALL TELL-YOURE-DIVER
RTRUE
?ELS179: EQUAL? PRSI,PARROT \?ELS181
PRINTR """He's weird. He talks funny."""
?ELS181: EQUAL? PRSI,FOOD \?ELS185
GETP HERE,P?LINE
GRTR? STACK,BACK-ALLEY-LINE-C \?ELS185
PRINTR """It's a beef stew. There's nothing wrong with it."""
?ELS185: EQUAL? PRSI,TRAWLER,SALVAGER \FALSE
PRINTR """She's a boat."""
?CND76: EQUAL? WINNER,PETE \FALSE
EQUAL? PRSO,GLOBAL-SELF \?CND201
SET 'PRSO,PETE
?CND201: EQUAL? PRSI,GLOBAL-SELF \?CND204
SET 'PRSI,PETE
?CND204: EQUAL? PRSA,V?TELL \?ELS211
EQUAL? PRSO,ME /FALSE
?ELS211: EQUAL? PRSA,V?$CALL \?ELS215
CALL TELL-SO-WHAT
RSTACK
?ELS215: EQUAL? PRSA,V?SHOW \?ELS217
IN? PRSO,PETE \?ELS217
EQUAL? PRSI,ME \?ELS217
SET 'WINNER,PLAYER
CALL PERFORM,V?EXAMINE,PRSO
SET 'WINNER,PETE
RETURN WINNER
?ELS217: EQUAL? PRSA,V?MAYBE,V?NO,V?YES /FALSE
EQUAL? PRSA,V?WHAT,V?LONGITUDE,V?LATITUDE /FALSE
EQUAL? PRSA,V?ALARM,V?SSHOW,V?FIND /FALSE
PRINTI """I don't think I can do that."""
CRLF
RETURN 2
.FUNCT I-PETE,GARG=0,L,PMG,?TMP1
LOC PETE >L
ZERO? GARG \?ELS5
GRTR? FM-CTR,1 \?CND6
LESS? FM-CTR,5 \?CND6
CALL QUEUE,I-PETE,1
PUT STACK,0,1
RFALSE
?CND6: GET MOVEMENT-GOALS,PETE-C >PMG
GET PMG,MG-ROOM
EQUAL? STACK,MM-GALLEY \?CND11
EQUAL? SHIP-CHOSEN,TRAWLER \?CND11
PUT PMG,MG-ROOM,NW-GALLEY
?CND11: CALL IMOVEMENT,PETE,I-PETE
RSTACK
?ELS5: EQUAL? GARG,G-REACHED \FALSE
EQUAL? L,MM-GALLEY,NW-GALLEY \?CND18
GETP L,P?LINE >?TMP1
CALL META-LOC,PLAYER
GETP STACK,P?LINE
EQUAL? ?TMP1,STACK \?CND18
FSET FOOD,NDESCBIT
MOVE FOOD,STOVE
?CND18: EQUAL? HERE,L \FALSE
CALL DPRINT,PETE
PRINTI " arrives, quickly taking in the situation."
CRLF
RETURN 2
.FUNCT PETES-PATCH-F
EQUAL? PRSA,V?DISEMBARK,V?ASK-FOR,V?LOOK-UNDER /?THN10
EQUAL? PRSA,V?MOVE /?THN10
EQUAL? PRSA,V?TAKE \?ELS5
ZERO? PRSI /?THN10
EQUAL? PRSI,PETE \?ELS5
?THN10: PRINTR "Mind your manners."
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "It's a standard black eyepatch."
.FUNCT WEASEL-F,RARG=0,?TMP1
EQUAL? RARG,M-OBJDESC \?ELS3
IN? ENVELOPE,PLAYER \?ELS6
CALL WEASEL-BEATS-YOU
ZERO? STACK \TRUE
?ELS6: ZERO? WEASEL-APPREHENDED /?ELS10
EQUAL? HERE,MM-LOUNGE,NW-LOUNGE \?ELS14
CALL TELL-TIED
JUMP ?CND12
?ELS14: PRINTI "The Weasel is firmly in Johnny's grasp."
?CND12: CRLF
RTRUE
?ELS10: CALL QUEUED?,I-PENDULUM
ZERO? STACK /?ELS20
CALL INT,I-PENDULUM
GET STACK,C-TICK
EQUAL? STACK,-1 /TRUE
?ELS20: EQUAL? HERE,UPSTAIRS-HALLWAY \?ELS24
CALL QUEUED?,I-WEASEL-TO-BEDROOM
ZERO? STACK /?ELS24
CALL INT,I-WEASEL-TO-BEDROOM
PUT STACK,0,0
PRINTI "The Weasel sees you come up"
CALL TELL-WEASEL-EXCUSE
RTRUE
?ELS24: GRTR? FM-CTR,1 \?ELS34
LESS? FM-CTR,5 /?THN31
?ELS34: EQUAL? PRESENT-TIME,704 \?ELS30
EQUAL? HERE,SHANTY \?ELS30
?THN31: PRINTR "The Weasel is sitting here, eyes darting."
?ELS30: CALL IN-MOTION?,WEASEL
ZERO? STACK \TRUE
CALL TRAITOR-TIME?
ZERO? STACK \TRUE
FSET? WEASEL,TOUCHBIT \?ELS44
LOC WEASEL
EQUAL? STACK,MM-AFT-DECK,NW-AFT-DECK \?ELS47
ZERO? AT-SEA /?ELS47
ZERO? WEASEL-APPREHENDED \?ELS47
CALL QUEUED?,I-PENDULUM
ZERO? STACK \?ELS47
CALL QUEUE,I-PENDULUM,-1
PUT STACK,0,1
CALL TELL-WEASEL-TOSSES
RTRUE
?ELS47: PRINTR "The Weasel is picking his teeth with a nasty knife, looking around furtively."
?ELS44: PRINTI "A short, wiry guy known only as """
CALL DPRINT,WEASEL
PRINTI """ is over in a corner, picking his teeth with a knife."
CRLF
FSET WEASEL,TOUCHBIT
RTRUE
?ELS3: EQUAL? RARG,M-CONT \?CND1
EQUAL? PRSA,V?TAKE \FALSE
FSET? PRSO,TAKEBIT \FALSE
PRINTR "The Weasel glares at you. ""I ain't gonna give that to ya!"""
?CND1: EQUAL? WINNER,WEASEL \?CND69
CALL META-LOC,WEASEL >?TMP1
CALL META-LOC,PLAYER
EQUAL? ?TMP1,STACK /?ELS74
SET 'P-CONT,FALSE-VALUE
CALL TELL-NOT-HERE-TALK
RETURN 2
?ELS74: CALL TRAITOR-TIME?
ZERO? STACK /?CND69
CALL TELL-IN-MEETING
RETURN 2
?CND69: FSET WEASEL,TOUCHBIT
EQUAL? PRSA,V?FOLLOW \?ELS83
EQUAL? PRSO,WEASEL /FALSE
?ELS83: EQUAL? PRSA,V?$CALL \?ELS87
CALL TRAITOR-TIME?
ZERO? STACK /?ELS87
CALL TELL-IN-MEETING
RTRUE
?ELS87: EQUAL? PRSA,V?UNTIE \?ELS91
ZERO? WEASEL-APPREHENDED /?ELS91
EQUAL? HERE,MM-LOUNGE,NW-LOUNGE \?ELS91
CALL JIGS-UP,STR?418
JUMP ?CND81
?ELS91: EQUAL? PRSA,V?SEARCH \?ELS95
ZERO? WEASEL-APPREHENDED /?ELS98
IN? PASSBOOK,WEASEL \?ELS102
MOVE PASSBOOK,PLAYER
PRINTR "You take back your passbook."
?ELS102: PRINTR "Despite his writhing, you search him fruitlessly."
?ELS98: ZERO? WEASEL-PISSED /?ELS110
CALL JIGS-UP,STR?419
RTRUE
?ELS110: SET 'WEASEL-PISSED,TRUE-VALUE
PRINTR "The Weasel shrinks back and says, ""Hey, don't you trust me? I don't gotta take this from you!"""
?ELS95: ZERO? WEASEL-APPREHENDED /?ELS117
EQUAL? PRSA,V?EXAMINE \?ELS121
CALL TELL-TIED
JUMP ?CND119
?ELS121: EQUAL? PRSA,V?TELL,V?ASK-ABOUT \?ELS123
EQUAL? PRSI,WEASEL \?ELS123
EQUAL? PRSO,WEASEL \FALSE
?ELS123: IN? WEASEL,HERE \FALSE
EQUAL? PRSA,V?FIND /FALSE
PRINTI "The Weasel just glares at you."
?CND119: CRLF
EQUAL? PRSA,V?ASK-ABOUT,V?TELL \?CND134
EQUAL? PRSO,WEASEL \?CND134
SET 'QCONTEXT,WEASEL
SET 'QCONTEXT-ROOM,HERE
?CND134: RETURN 2
?ELS117: EQUAL? PRSA,V?HELLO \?ELS142
SET 'QCONTEXT,WEASEL
SET 'QCONTEXT-ROOM,HERE
PRINTR """Yeah. Hi."""
?ELS142: EQUAL? PRSA,V?GOODBYE \?ELS146
SET 'QCONTEXT,WEASEL
SET 'QCONTEXT-ROOM,HERE
PRINTR """Yeah. Bye."""
?ELS146: EQUAL? PRSA,V?ASK-FOR \?ELS154
EQUAL? PRSO,WEASEL /?THN151
?ELS154: EQUAL? PRSA,V?TAKE \?ELS150
EQUAL? PRSI,WEASEL \?ELS150
?THN151: EQUAL? KNIFE,PRSI,PRSO /FALSE
PRINTR """If I got it, I ain't gonna give it to ya."""
?ELS150: EQUAL? PRSA,V?BUY \?CND81
EQUAL? PRSO,FERRY-TOKEN \?CND81
PRINTR """I might need it. Try the bank."""
?CND81: EQUAL? PRSA,V?$CALL \?ELS173
EQUAL? WINNER,PLAYER /FALSE
?ELS173: CALL GRAB-ATTENTION,WEASEL
ZERO? STACK /TRUE
EQUAL? PRSA,V?GIVE \?ELS180
EQUAL? PRSO,ENVELOPE /?THN183
EQUAL? PRSO,ID-CARD \?ELS180
?THN183: CALL PERFORM,V?SHOW,PRSO,WEASEL
RTRUE
?ELS180: EQUAL? PRSA,V?SHOW \?ELS186
EQUAL? PRSI,WEASEL \?ELS186
IN? ID-CARD,ENVELOPE \?ELS191
EQUAL? PRSO,ENVELOPE /?THN194
EQUAL? PRSO,ID-CARD \?ELS191
?THN194: MOVE ENVELOPE,WEASEL
PRINTI "The Weasel takes the "
CALL DPRINT,ENVELOPE
PRINTR ". ""Thanks. I was wonderin' what happened to my card."""
?ELS191: EQUAL? PRSO,ENVELOPE \?ELS199
PRINTR "The Weasel shoves it back at you. ""I dunno nothin' about this. Could be old."""
?ELS199: EQUAL? PRSO,ID-CARD \?CND178
MOVE ID-CARD,WEASEL
PRINTR "The Weasel takes the card. ""Thanks. I'd be in trouble without this."""
?ELS186: EQUAL? PRSA,V?ASK-ABOUT \?CND178
EQUAL? PRSO,WEASEL \?CND178
CALL TRAITOR-TIME?
ZERO? STACK /?ELS212
CALL TELL-IN-MEETING
RETURN 2
?ELS212: EQUAL? PRSI,GLOBAL-TREASURE \?ELS216
IN? MCGINTY,HERE \?ELS219
CALL MCGINTY-WILL-FOLLOW
PRINTI "The Weasel glances at "
CALL DPRINT,MCGINTY
PRINTI " and says, ""What "
CALL DPRINT,GLOBAL-TREASURE
PRINTR "?"""
?ELS219: LESS? FM-CTR,3 \?ELS223
PRINTR """That could be what Johnny wants to talk about."""
?ELS223: PRINTR """I guess that's what we're lookin' for."""
?ELS216: EQUAL? PRSI,KNIFE \?ELS231
PRINTR """Yeah. That's my knife."""
?ELS231: EQUAL? PRSI,HEVLIN \?ELS235
CALL TELL-NEVER-KNEW
RTRUE
?ELS235: EQUAL? PRSI,PETES-PATCH \?ELS237
PRINTR """Pete's worn it as long as I've known him."""
?ELS237: EQUAL? PRSI,TRAWLER,SALVAGER \?ELS241
PRINTR """It's a decent boat."""
?ELS241: EQUAL? PRSI,SPEAR-CARRIER \?ELS245
PRINTR """I guess he's okay."""
?ELS245: EQUAL? PRSI,JOHNNY \?ELS249
PRINTR """Yeah. Red's okay."""
?ELS249: EQUAL? PRSI,ME \?ELS253
CALL TELL-YOURE-DIVER
RTRUE
?ELS253: EQUAL? PRSI,PETE \?ELS255
PRINTR """Pete's a good guy. Just don't eat his chow."""
?ELS255: EQUAL? PRSI,MCGINTY \?ELS259
CALL WEASEL-SHUFFLE
PRINTR """He's all right. I work with him now and then."""
?ELS259: EQUAL? PRSI,WEASEL \?ELS263
CALL TELL-KNOW-ME
RTRUE
?ELS263: EQUAL? PRSI,PARROT \?ELS265
PRINTR """She is one strange bird."""
?ELS265: EQUAL? PRSI,GLOBAL-FERRY,FERRY \?ELS269
CALL WEASEL-SHUFFLE
PRINTR """I use it to go home on the mainland."""
?ELS269: EQUAL? PRSI,LINE-HACK \FALSE
PRINT LINE-STR
CRLF
RTRUE
?CND178: EQUAL? WINNER,WEASEL \FALSE
EQUAL? PRSO,GLOBAL-SELF \?CND283
SET 'PRSO,WEASEL
?CND283: EQUAL? PRSI,GLOBAL-SELF \?CND286
SET 'PRSI,WEASEL
?CND286: EQUAL? PRSA,V?TELL \?ELS293
EQUAL? PRSO,ME /FALSE
?ELS293: EQUAL? PRSA,V?$CALL \?ELS297
CALL TELL-SO-WHAT
RSTACK
?ELS297: EQUAL? PRSA,V?SHOW \?ELS299
IN? PRSO,WEASEL \?ELS299
EQUAL? PRSO,PASSBOOK,ENVELOPE /?ELS299
EQUAL? PRSI,ME \?ELS299
SET 'WINNER,PLAYER
CALL PERFORM,V?EXAMINE,PRSO
SET 'WINNER,WEASEL
RETURN WINNER
?ELS299: EQUAL? FM-CTR,2 \?ELS303
EQUAL? PRSA,V?SIT-ON,V?SIT \?ELS303
PRINTR """Wait a second."""
?ELS303: EQUAL? PRSA,V?MAYBE,V?NO,V?YES /FALSE
EQUAL? PRSA,V?WHAT,V?LONGITUDE,V?LATITUDE /FALSE
EQUAL? PRSA,V?ALARM,V?SSHOW,V?FIND /FALSE
PRINTI """I don't wanna do that."""
CRLF
RETURN 2
.FUNCT WEASEL-SHUFFLE
GRTR? PRESENT-TIME,840 \FALSE
IN? ENVELOPE,LOCAL-GLOBALS /FALSE
PRINTI "The Weasel's eyes dart as he shuffles his feet. "
RTRUE
.FUNCT TELL-TIED
PRINTI "The Weasel is tied up and squirming."
RTRUE
.FUNCT I-WEASEL,GARG=0,L,VAL=0,GT
LOC WEASEL >L
ZERO? GARG \?ELS5
GRTR? FM-CTR,1 \?CND6
LESS? FM-CTR,5 \?CND6
CALL QUEUE,I-JOHNNY,1
PUT STACK,0,1
RFALSE
?CND6: CALL IMOVEMENT,WEASEL,I-WEASEL
RSTACK
?ELS5: EQUAL? GARG,G-REACHED \?ELS12
CALL META-LOC,PLAYER
EQUAL? L,STACK \?ELS15
IN? ENVELOPE,PLAYER \?ELS15
CALL WEASEL-BEATS-YOU
ZERO? STACK \TRUE
?ELS15: EQUAL? L,BANK \?ELS19
IN? PASSBOOK,WEASEL \?ELS19
SET 'PASSBOOK-BALANCE,0
SET 'STUPID-PROBLEM-STRING,STR?291
JUMP ?CND13
?ELS19: EQUAL? L,UPSTAIRS-HALLWAY \?ELS23
IN? PASSBOOK,UPSTAIRS-HALLWAY \?ELS26
GRTR? PASSBOOK-BALANCE,99 \?ELS26
IN? PLAYER,UPSTAIRS-HALLWAY /?ELS26
MOVE PASSBOOK,WEASEL
PUT MOVEMENT-GOALS,WEASEL-C,WEASEL-RETIRES-TABLE
CALL IMOVEMENT,WEASEL,I-WEASEL
JUMP ?CND13
?ELS26: CALL META-LOC,PLAYER
EQUAL? STACK,BEDROOM \?ELS30
FSET? BEDROOM-DOOR,OPENBIT \?ELS33
MOVE WEASEL,BEDROOM
GRTR? PRESENT-TIME,540 \?ELS36
PRINTI "The Weasel comes in, and fear flashes across his face. ""Don't forget to meet Johnny later,"" he says."
CRLF
JUMP ?CND34
?ELS36: PRINTI "You hear something at the door and "
EQUAL? PRSA,V?OPEN \?THN46
EQUAL? PRSO,BEDROOM-DOOR /?CND43
?THN46: PRINTI "turn to "
?CND43: PRINTI "see "
CALL DPRINT,WEASEL
PRINTI " walk in. Fear flashes across his face, but only for an instant. He says, ""Oh, hi. I was just wonderin' if you was comin' to the meeting. Looks like we found the real thing this time."""
CRLF
?CND34: CALL ESTABLISH-GOAL,WEASEL,SHANTY
JUMP ?CND31
?ELS33: CALL QUEUE,I-WEASEL-TO-BEDROOM,2
PUT STACK,0,1
PRINTI "You hear a knock at the door."
CRLF
SET 'P-IT-OBJECT,BEDROOM-DOOR
?CND31: SET 'VAL,M-FATAL
JUMP ?CND13
?ELS30: EQUAL? HERE,UPSTAIRS-HALLWAY \?ELS57
PRINTI "The Weasel gets to the top of the stairs, sees you,"
CALL TELL-WEASEL-EXCUSE
SET 'VAL,M-FATAL
JUMP ?CND13
?ELS57: FSET? BEDROOM-DOOR,OPENBIT \?ELS64
CALL WEASEL-ALONE-IN-BEDROOM
JUMP ?CND13
?ELS64: CALL QUEUE,I-WEASEL-TO-BEDROOM,2
PUT STACK,0,1
JUMP ?CND13
?ELS23: EQUAL? L,HERE \?CND13
PRINTI "The Weasel approaches, glancing around furtively."
CRLF
SET 'VAL,M-FATAL
?CND13: CALL WEASEL-CHECK,ENVELOPE,L
CALL WEASEL-CHECK,ID-CARD,L
RETURN VAL
?ELS12: EQUAL? GARG,G-ENROUTE \FALSE
EQUAL? HERE,UPSTAIRS-HALLWAY \?CND76
ZERO? BEDROOM-MESSAGE /?CND76
SET 'BEDROOM-DOOR-LOCKED,FALSE-VALUE
?CND76: IN? PASSBOOK,L \?CND81
GRTR? PASSBOOK-BALANCE,99 \?CND81
CALL META-LOC,PLAYER
IN? WEASEL,STACK /?CND81
MOVE PASSBOOK,WEASEL
GET GOAL-TABLES,WEASEL-C >GT
GET GT,GOAL-F
EQUAL? STACK,FERRY-LANDING \?CND86
CALL ESTABLISH-GOAL,WEASEL,BACK-ALLEY-5
?CND86: GETP L,P?LINE
LESS? STACK,TRAWLER-LINE-C \?CND81
PUT MOVEMENT-GOALS,WEASEL-C,WEASEL-RETIRES-TABLE
CALL IMOVEMENT,WEASEL,I-WEASEL
?CND81: IN? ENVELOPE,PLAYER \?ELS94
CALL META-LOC,PLAYER
EQUAL? L,STACK \?ELS94
CALL WEASEL-BEATS-YOU
ZERO? STACK \TRUE
?ELS94: CALL WEASEL-CHECK,ENVELOPE,L
CALL WEASEL-CHECK,ID-CARD,L
RSTACK
.FUNCT TELL-WEASEL-PICKUP,STR
PRINTI "The Weasel picks up "
PRINT STR
PRINTR "."
.FUNCT TELL-WEASEL-EXCUSE
CALL ESTABLISH-GOAL,WEASEL,SHANTY
PRINTI " and says, "
GRTR? PRESENT-TIME,540 \?ELS7
PRINTR """Umm, well, better not forget to meet with Johnny."""
?ELS7: PRINTI """Oh. I was just checkin' to see if you're goin' to the meeting at "
CALL DPRINT,SHANTY
PRINTR "."" He looks slightly disappointed."
.FUNCT WEASEL-CHECK,OBJ,L
LOC OBJ
EQUAL? STACK,ENVELOPE,UNDER-BUNK /?ELS9
CALL META-LOC,OBJ
EQUAL? STACK,L \?ELS9
LOC OBJ
FSET? STACK,PERSON \?THN6
?ELS9: CALL REALLY-HERE?,OBJ,L
ZERO? STACK /FALSE
?THN6: MOVE OBJ,WEASEL
CALL META-LOC,PLAYER
EQUAL? L,STACK \FALSE
EQUAL? L,ID-CARD \?ELS19
CALL TELL-WEASEL-PICKUP,STR?420
RSTACK
?ELS19: CALL TELL-WEASEL-PICKUP,STR?421
RSTACK
.FUNCT REALLY-HERE?,OBJ,L,CTR=0
?PRG1: GRTR? CTR,44 /FALSE
GET SHARED-OBJECT-TABLE,CTR
EQUAL? STACK,OBJ \?CND3
ADD CTR,1
GET SHARED-OBJECT-TABLE,STACK
EQUAL? STACK,L \?CND3
ADD CTR,2
GET SHARED-OBJECT-TABLE,STACK
EQUAL? STACK,UNDER-BUNK /?CND3
PUT SHARED-OBJECT-TABLE,CTR,0
ADD CTR,1
PUT SHARED-OBJECT-TABLE,STACK,0
ADD CTR,2
PUT SHARED-OBJECT-TABLE,STACK,0
RTRUE
?CND3: ADD CTR,3 >CTR
JUMP ?PRG1
.FUNCT I-WEASEL-TO-BEDROOM
ZERO? BEDROOM-DOOR-LOCKED /?ELS5
CALL ESTABLISH-GOAL,WEASEL,SHANTY
RFALSE
?ELS5: CALL META-LOC,PLAYER
EQUAL? STACK,BEDROOM \?ELS13
MOVE WEASEL,BEDROOM
PRINTI "The door opens and "
CALL DPRINT,WEASEL
PRINTI " walks in. He sees you and says, ""Oh. Hi. I just wanted to make sure you "
GRTR? PRESENT-TIME,540 \?ELS18
PRINTI "remembered to meet Johnny later."""
JUMP ?CND16
?ELS18: PRINTI "knew about the meetin' at "
CALL DPRINT,SHANTY
PRINTI "."
FSET? NOTE,TOUCHBIT \?ELS27
PRINTI " You got Johnny's note, right?"""
JUMP ?CND16
?ELS27: PRINTI """ He points to the note on the floor. ""You better read this note."""
?CND16: CRLF
CALL ESTABLISH-GOAL,WEASEL,SHANTY
RSTACK
?ELS13: CALL WEASEL-ALONE-IN-BEDROOM
RFALSE
.FUNCT WEASEL-ALONE-IN-BEDROOM,WGT
GET GOAL-TABLES,WEASEL-C >WGT
MOVE WEASEL,BEDROOM
PUT WGT,ATTENTION,5
FSET BUREAU,OPENBIT
CALL META-LOC,PASSBOOK
EQUAL? STACK,BEDROOM \?ELS3
GRTR? PASSBOOK-BALANCE,99 \?ELS3
MOVE PASSBOOK,WEASEL
PUT MOVEMENT-GOALS,WEASEL-C,WEASEL-RETIRES-TABLE
CALL IMOVEMENT,WEASEL,I-WEASEL
JUMP ?CND1
?ELS3: CALL ESTABLISH-GOAL,WEASEL,SHANTY
?CND1: PUT WGT,GOAL-ENABLE,FALSE-VALUE
SET 'BEDROOM-MESSAGE,STR?422
RETURN BEDROOM-MESSAGE
.FUNCT WEASEL-BEATS-YOU
ZERO? WEASEL-APPREHENDED \FALSE
CALL TELL-COMES-UP,WEASEL
CALL JIGS-UP,STR?423
RSTACK
.FUNCT KNIFE-F
EQUAL? PRSA,V?TAKE /?THN6
EQUAL? PRSA,V?ASK-FOR \?ELS5
EQUAL? PRSO,WEASEL \?ELS5
?THN6: IN? KNIFE,WEASEL \FALSE
PRINTR "The Weasel pulls it away. ""Don't mess with my knife,"" he warns, ""or I'll give it to ya in a way ya won't much like."""
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "This knife "
IN? KNIFE,WEASEL \?ELS23
PRINTI "is"
JUMP ?CND21
?ELS23: PRINTI "was"
?CND21: PRINTI " "
CALL DPRINT,WEASEL
PRINTR "'s, and it's razor sharp."
.FUNCT WATCH-F
EQUAL? PRSA,V?EXAMINE,V?READ \?ELS5
PRINTI "Your trusty old wind-up diver's watch is waterproof to 350 fathoms. It currently shows "
CALL WATCH-TIME
PRINTI " a.m. (The AM/PM indicator never did work.)"
ZERO? WATCH-WOUND \?CND10
PRINTI " The sweep hand isn't moving on it."
?CND10: CRLF
RTRUE
?ELS5: EQUAL? PRSA,V?LISTEN \?ELS16
ZERO? WATCH-WOUND /?ELS21
PRINTR "It's ticking."
?ELS21: PRINTI "The "
CALL DPRINT,WATCH
PRINTR " makes no sound. And it's not battery-operated."
?ELS16: EQUAL? PRSA,V?WIND \?ELS30
EQUAL? PRSO,WATCH \?ELS30
SET 'WATCH-WOUND,TRUE-VALUE
CALL QUEUE,I-UNWOUND,1500
PUT STACK,0,1
PRINTR "Okay. You've wound the watch."
?ELS30: EQUAL? PRSA,V?SHAKE \?ELS36
PRINTR "Shaken. It's not self-winding, but it is shock-proof."
?ELS36: EQUAL? PRSA,V?TURN \FALSE
ZERO? PRSI \?ELS45
PRINTR "If you want to set the watch, specify the time to which you want it set."
?ELS45: EQUAL? PRSI,INTNUM \FALSE
GRTR? SET-HR,23 /?THN53
GRTR? SET-MIN,59 \?ELS52
?THN53: PRINTR "Try setting it to a more reasonable time."
?ELS52: GRTR? SET-HR,11 \?CND50
SUB SET-HR,12 >SET-HR
?CND50: SET 'WATCH-SCORE,SET-HR
SET 'WATCH-MOVES,SET-MIN
SET 'SET-MIN,60
CALL TELL-NOW,WATCH,STR?425,FALSE-VALUE
CALL WATCH-TIME
PRINTR "."
.FUNCT WATCH-TIME,HR
ZERO? WATCH-SCORE \?ELS3
SET 'HR,12
JUMP ?CND1
?ELS3: SET 'HR,WATCH-SCORE
?CND1: PRINTN HR
PRINTI ":"
LESS? WATCH-MOVES,10 \?CND8
PRINTI "0"
?CND8: PRINTN WATCH-MOVES
RTRUE
.FUNCT DELIVERY-BOY-F,RARG=0
EQUAL? RARG,M-OBJDESC \?ELS5
CALL IN-MOTION?,DELIVERY-BOY
ZERO? STACK \TRUE
PRINTI "The "
CALL DPRINT,DELIVERY-BOY
PRINTR " is here."
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS16
PRINTI "The "
CALL DPRINT,DELIVERY-BOY
PRINTI " is young. He's pushing a cart which is "
ZERO? DELIVERY-MADE /?ELS21
PRINTI "currently empty"
JUMP ?CND19
?ELS21: PRINTI "loaded with stuff"
?CND19: PRINTR "."
?ELS16: EQUAL? DELIVERY-BOY,WINNER /?THN33
EQUAL? PRSA,V?GOODBYE,V?HELLO /?THN33
EQUAL? PRSA,V?TELL \FALSE
EQUAL? PRSO,DELIVERY-BOY \FALSE
?THN33: SET 'QCONTEXT,DELIVERY-BOY
SET 'QCONTEXT-ROOM,HERE
PRINTI """I can't stop now. I'm working!"""
CRLF
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
RTRUE
.FUNCT I-DELIVERY-BOY,GARG=0,L,DMG,OBJ,DEST,?TMP1
LOC DELIVERY-BOY >L
ZERO? GARG \?ELS5
GET MOVEMENT-GOALS,DELIVERY-BOY-C >DMG
LESS? PRESENT-TIME,485 \?ELS8
JUMP ?CND6
?ELS8: ZERO? AMT-OWED \FALSE
ZERO? JOHNNY-MADE-DEAL /FALSE
GET DMG,MG-ROOM
EQUAL? STACK,MM-LOCKER \?CND6
MOVE DELIVERY-BOY,OUTFITTERS-HQ
EQUAL? SHIP-CHOSEN,TRAWLER \?CND6
PUT DMG,MG-ROOM,NW-LOCKER
?CND6: CALL IMOVEMENT,DELIVERY-BOY,I-DELIVERY-BOY
RSTACK
?ELS5: EQUAL? GARG,G-REACHED \?ELS19
EQUAL? L,OUTFITTERS-HQ \?CND20
MOVE DELIVERY-BOY,LOCAL-GLOBALS
?CND20: EQUAL? L,MM-LOCKER,NW-LOCKER \?ELS27
?PRG28: SUB DT-PTR,2 >DT-PTR
LESS? DT-PTR,0 \?CND30
JUMP ?REP29
?CND30: GET DELIVERY-TABLE,DT-PTR >OBJ
MOVE OBJ,L
EQUAL? OBJ,COMPRESSOR /?CND33
FSET OBJ,TAKEBIT
?CND33: FCLEAR OBJ,TRYTAKEBIT
FCLEAR OBJ,NDESCBIT
JUMP ?PRG28
?REP29: SET 'DELIVERY-MADE,TRUE-VALUE
CALL ESTABLISH-GOAL,DELIVERY-BOY,OUTFITTERS-HQ
EQUAL? L,HERE \FALSE
PRINTI "The "
CALL DPRINT,DELIVERY-BOY
PRINTI " arrives with a cartful of stuff which he unloads."
CRLF
RETURN 2
?ELS27: EQUAL? L,HERE \FALSE
PRINTI "The "
CALL DPRINT,DELIVERY-BOY
PRINTI " walks in."
CRLF
RETURN 2
?ELS19: EQUAL? GARG,G-ENROUTE \FALSE
EQUAL? L,MM-GALLEY,NW-GALLEY \FALSE
ZERO? WATER-DELIVERED \FALSE
SET 'WATER-DELIVERED,TRUE-VALUE
GET GOAL-TABLES,DELIVERY-BOY-C
PUT STACK,ATTENTION,2
GETP L,P?LINE >?TMP1
CALL META-LOC,WINNER
GETP STACK,P?LINE
EQUAL? ?TMP1,STACK \?CND60
MOVE DRINKING-WATER,L
FSET DRINKING-WATER,NDESCBIT
?CND60: IN? PLAYER,L \FALSE
PRINTR "The delivery boy stops to drop off some stuff."
.FUNCT SPEAR-CARRIER-F,CHANGE,COST
EQUAL? PRSA,V?HELLO \?ELS3
SET 'QCONTEXT,SPEAR-CARRIER
SET 'QCONTEXT-ROOM,HERE
PRINTR """Hi there! What can I do for you?"""
?ELS3: EQUAL? PRSA,V?GOODBYE \?ELS7
SET 'QCONTEXT,SPEAR-CARRIER
SET 'QCONTEXT-ROOM,HERE
PRINTR """So long. See you around."""
?ELS7: EQUAL? PRSA,V?ALARM /FALSE
EQUAL? PRSA,V?TIME /?THN14
EQUAL? PRSA,V?WHAT \?ELS13
EQUAL? PRSO,GLOBAL-TIME \?ELS13
?THN14: CALL PERFORM,V?ASK-ABOUT,SPEAR-CARRIER,GLOBAL-TIME
RTRUE
?ELS13: EQUAL? WINNER,SPEAR-CARRIER \?ELS19
EQUAL? PRSO,GLOBAL-SELF \?CND20
SET 'PRSO,SPEAR-CARRIER
?CND20: EQUAL? PRSI,GLOBAL-SELF \?CND23
SET 'PRSI,SPEAR-CARRIER
?CND23: EQUAL? PRSA,V?FIND \?ELS28
EQUAL? PRSO,GLOBAL-BANK \?ELS28
EQUAL? HERE,BANK \?ELS33
PRINTR """This is the bank!"""
?ELS33: SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,SPEAR-CARRIER,GLOBAL-BANK
SET 'WINNER,SPEAR-CARRIER
RTRUE
?ELS28: EQUAL? PRSA,V?$CALL \?ELS39
CALL TELL-SO-WHAT
RTRUE
?ELS39: EQUAL? PRSA,V?WHAT,V?SSHOW,V?SGIVE /FALSE
EQUAL? PRSA,V?NO,V?YES,V?FIND /FALSE
EQUAL? PRSA,V?MAYBE /FALSE
EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT \?ELS45
EQUAL? PRSI,GLOBAL-TIME /FALSE
?ELS45: EQUAL? PRSA,V?GIVE \?ELS49
EQUAL? PRSI,ME \?ELS49
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-FOR,SPEAR-CARRIER,PRSO
SET 'WINNER,SPEAR-CARRIER
RTRUE
?ELS49: EQUAL? PRSA,V?TELL \?ELS53
EQUAL? PRSO,ME \?ELS53
ZERO? PRSI /FALSE
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,SPEAR-CARRIER,PRSI
SET 'WINNER,SPEAR-CARRIER
RTRUE
?ELS53: EQUAL? PRSA,V?HELLO \?ELS63
PRINTR """Hi there! What can I do for you?"""
?ELS63: EQUAL? PRSA,V?GOODBYE \?ELS67
PRINTR """So long. See you around."""
?ELS67: EQUAL? PRSA,V?WITHDRAW \?ELS71
EQUAL? HERE,BANK /FALSE
?ELS71: EQUAL? PRSA,V?SHOW \?ELS75
EQUAL? PRSI,ME \?ELS75
PRINTI """Examine it "
CALL DPRINT,GLOBAL-SELF
PRINTR "."""
?ELS75: PRINTR """I can't do that while I'm on the job."""
?ELS19: EQUAL? PRSA,V?TELL \?ELS85
ZERO? PRSI /FALSE
?ELS85: EQUAL? PRSA,V?BUY \?ELS89
EQUAL? PRSO,FERRY-TOKEN \?ELS89
CALL NO-TOKENS,HERE
RTRUE
?ELS89: EQUAL? PRSA,V?SEARCH \?ELS93
CALL TELL-YOU-CANT,STR?427,FALSE-VALUE
IN? BAR,HERE \?ELS96
CALL DPRINT,BAR
JUMP ?CND94
?ELS96: IN? WINDOW,HERE \?ELS100
CALL DPRINT,WINDOW
JUMP ?CND94
?ELS100: CALL DPRINT,GLOBAL-SURFACE
?CND94: PRINTR "."
?ELS93: EQUAL? PRSA,V?ASK-ABOUT \?CND1
EQUAL? PRSO,SPEAR-CARRIER \?CND1
SET 'QCONTEXT,SPEAR-CARRIER
SET 'QCONTEXT-ROOM,HERE
EQUAL? PRSI,SPEAR-CARRIER \?ELS115
PRINTR """Just another of the people who keep this island running."""
?ELS115: EQUAL? PRSI,ME \?ELS119
CALL TELL-YOURE-DIVER
RTRUE
?ELS119: FSET? PRSI,PERSON \?ELS121
PRINTI """You know "
CALL DPRINT,PRSI
PRINTR "."""
?ELS121: EQUAL? PRSI,GLOBAL-BANK \?ELS125
EQUAL? HERE,BANK \?ELS128
PRINTI """It's the "
CALL DPRINT,BANK
PRINTR ", a savings bank which has served Hardscrabble Island for over forty years."""
?ELS128: PRINTI """It's at the eastern end of the "
CALL DPRINT,SHORE-ROAD-1
PRINTR "."""
?ELS125: EQUAL? PRSI,GLOBAL-MONEY \?ELS136
PRINTR """That's what makes the world go around. Right?"""
?ELS136: EQUAL? PRSI,RIDICULOUS-MONEY-KLUDGE \?ELS140
PRINTR "He smiles. ""Money is our most important product."""
?ELS140: EQUAL? PRSI,PARROT \?ELS144
EQUAL? HERE,SHANTY \?ELS147
PRINTR """Isn't it great? I bought it from a passing sailor some years back. I never did figure out why it has a wooden leg and an eyepatch."""
?ELS147: PRINTI """The one in "
CALL DPRINT,SHANTY
PRINTR "? I can't imagine the island without it!"""
?ELS144: EQUAL? HERE,RED-BOAR-INN \?ELS155
EQUAL? PRSI,HEVLIN \?CND113
PRINTR """He came in here last night looking for you."""
?ELS155: EQUAL? HERE,OUTFITTERS-HQ \?CND1
EQUAL? PRSI,DELIVERY-BOY \?ELS165
PRINTI """"
CALL IN-MOTION?,DELIVERY-BOY
ZERO? STACK \?CND168
PRINTI "He's probably in the back room setting up the next delivery. "
?CND168: PRINTR "He's very conscientious, you know."""
?ELS165: EQUAL? PRSI,PRICE-LIST \?ELS176
PRINTR """It's up to date."""
?ELS176: EQUAL? PRSI,SALVAGER,TRAWLER \?ELS180
PRINTI """She's a great boat. You can read all about her in the "
CALL DPRINT,PRICE-LIST
PRINTR "."""
?ELS180: GETP PRSI,P?NORTH
ZERO? STACK /?CND113
IN? PRSI,ROOMS /?CND113
EQUAL? PRSI,DRINK-OBJECT,FOOD /?CND113
PRINTI """It's a great "
CALL DPRINT,PRSI
PRINTR "."""
?CND113:
?CND1: EQUAL? PRSA,V?WALK \?ELS193
PRINTR "He indicates that he'd rather stay where he is."
?ELS193: EQUAL? HERE,BANK \?ELS197
EQUAL? PRSI,SPEAR-CARRIER \?ELS197
EQUAL? PRSA,V?GIVE \?ELS204
PRINTI "The teller examines the "
EQUAL? PRSO,PASSBOOK \?ELS211
PRINTI "passbook, says"
CALL TELL-OUR-PASSBOOK
PRINTR " If you want to withdraw some money, say so,"" and hands it back to you."
?ELS211: CALL DPRINT,PRSO
PRINTR ", thinks for a moment, and then hands it back to you, pointing out that you have no safe deposit box."
?ELS204: EQUAL? PRSA,V?SHOW \FALSE
EQUAL? PRSO,PASSBOOK \FALSE
PRINTI "The teller says,"
CALL TELL-OUR-PASSBOOK
PRINTR """"
?ELS197: EQUAL? HERE,RED-BOAR-INN \?ELS229
EQUAL? PRSA,V?ASK-FOR \?ELS234
EQUAL? PRSI,GLOBAL-ROOM \?ELS239
PRINTR """We're full. Your current room will have to do."""
?ELS239: EQUAL? PRSI,PSEUDO-OBJECT \FALSE
PRINTR """Nope. No messages."""
?ELS234: EQUAL? PRSA,V?GIVE \FALSE
EQUAL? PRSO,KEY \FALSE
PRINTR "The desk clerk hands you back the key. ""You've paid for another week."""
?ELS229: EQUAL? HERE,BANK \?ELS253
EQUAL? PRSA,V?ASK-FOR \FALSE
EQUAL? PRSI,INTNUM,RIDICULOUS-MONEY-KLUDGE \FALSE
GRTR? PASSBOOK-BALANCE,0 \?ELS265
PRINTR """If you want to make a withdrawal, be specific."""
?ELS265: PRINTR """I'm afraid that the loan officer is out today."""
?ELS253: EQUAL? HERE,OUTFITTERS-HQ \?ELS273
EQUAL? PRSA,V?ASK-FOR \?ELS273
EQUAL? PRSO,SPEAR-CARRIER \?ELS273
GETP PRSO,P?NORTH >COST
GRTR? COST,0 \?ELS280
PRINTR """You want it, you buy it."""
?ELS280: LESS? COST,0 \FALSE
CALL TELL-YOU-ALREADY,STR?428,TRUE-VALUE
RTRUE
?ELS273: EQUAL? HERE,OUTFITTERS-HQ \?ELS286
EQUAL? PRSI,SPEAR-CARRIER \?ELS286
EQUAL? PRSA,V?GIVE \FALSE
EQUAL? PRSO,INTNUM \?ELS296
ZERO? P-DOLLAR-FLAG /?ELS296
FSET? WET-SUIT,WORNBIT /?THN302
FSET? DEEP-SUIT,WORNBIT \?ELS301
?THN302: CALL TELL-YOU-CANT,STR?78
RTRUE
?ELS301: GRTR? P-AMOUNT,POCKET-CHANGE \?ELS305
PRINTR "You haven't got that much."
?ELS305: ZERO? AMT-OWED /?ELS309
LESS? P-AMOUNT,AMT-OWED \?ELS313
SUB AMT-OWED,P-AMOUNT >AMT-OWED
SUB POCKET-CHANGE,P-AMOUNT >POCKET-CHANGE
PRINTI "The salesman takes the money and says, ""You still owe me $"
PRINTN AMT-OWED
PRINTR "."""
?ELS313: GRTR? P-AMOUNT,AMT-OWED \?CND318
SUB P-AMOUNT,AMT-OWED >CHANGE
PRINTI "The salesman takes the money, counts it, and hands you back $"
PRINTN CHANGE
PRINTI ". "
?CND318: SUB POCKET-CHANGE,AMT-OWED >POCKET-CHANGE
SET 'AMT-OWED,0
PRINTR """Thank you very much. Let me know what else you want."""
?ELS309: PRINTR "The salesman hands it back to you. ""If you want to buy anything, please be specific."""
?ELS296: EQUAL? PRSO,GLOBAL-MONEY \?ELS330
SET 'P-AMOUNT,AMT-OWED
SET 'P-DOLLAR-FLAG,TRUE-VALUE
CALL PERFORM,V?GIVE,INTNUM,PRSI
SET 'P-IT-OBJECT,GLOBAL-MONEY
RTRUE
?ELS330: PRINTI "The salesman looks at "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR ", then returns it."
?ELS286: EQUAL? SHANTY,HERE \FALSE
EQUAL? PRSA,V?ASK-FOR \?ELS347
EQUAL? PRSI,DRINKING-WATER /?THN344
?ELS347: EQUAL? PRSA,V?BUY \?ELS343
EQUAL? PRSO,DRINKING-WATER \?ELS343
?THN344: IN? DRINKING-WATER,TABLE-OBJECT \?ELS354
PRINTR """One glass to a customer."""
?ELS354: MOVE DRINKING-WATER,TABLE-OBJECT
FCLEAR DRINKING-WATER,NDESCBIT
PUTP DRINKING-WATER,P?SDESC,STR?429
PRINTR "The bartender puts a glass of water on the table."
?ELS343: EQUAL? PRSA,V?ASK-ABOUT,V?ASK-FOR \FALSE
EQUAL? PRSI,FOOD \?ELS367
PRINTR """It's beef stew today. You can buy it for $5."""
?ELS367: EQUAL? PRSI,DRINK-OBJECT \FALSE
PRINTR """Grog is $2."""
.FUNCT TELL-OUR-PASSBOOK
PRINTI " ""Yes. That's one of our passbooks."
RTRUE
.FUNCT TELL-NOT-HERE-TALK
CALL TELL-YOU-CANT,STR?430
RSTACK
.FUNCT TELL-YOURE-DIVER
PRINTR """You're a diver!"""
.FUNCT TELL-KNOW-ME
PRINTR """You know me."""
.FUNCT HEVLIN-F,OWINNER
EQUAL? PRSA,V?ASK-FOR,V?ASK-CONTEXT-ABOUT,V?ASK-ABOUT /FALSE
EQUAL? PRSA,V?ASK-CONTEXT-FOR /FALSE
EQUAL? PRSA,V?TELL \?ELS5
EQUAL? PRSO,HEVLIN,ME \FALSE
?ELS5: EQUAL? PRSA,V?WHAT \?ELS11
SET 'OWINNER,WINNER
SET 'WINNER,PLAYER
CALL PERFORM,V?ASK-ABOUT,OWINNER,HEVLIN
SET 'WINNER,OWINNER
RTRUE
?ELS11: EQUAL? PRSA,V?FIND \?ELS13
EQUAL? WINNER,JOHNNY /?THN19
EQUAL? WINNER,SPEAR-CARRIER \?ELS18
EQUAL? HERE,RED-BOAR-INN \?ELS18
?THN19: PRINTR """He was killed last night."""
?ELS18: EQUAL? WINNER,PLAYER \?ELS26
CALL TELL-HES-DEAD
RSTACK
?ELS26: CALL TELL-NEVER-KNEW
RSTACK
?ELS13: EQUAL? PRSA,V?PRAY,V?HELP,V?FIND \?ELS30
CALL TELL-HES-DEAD
RETURN 2
?ELS30: CALL GLOBAL-NOT-HERE-PRINT,HEVLIN
RSTACK
.FUNCT TELL-HES-DEAD
PRINTR "Hevlin is dead."
.ENDI