1906 lines
52 KiB
Plaintext
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
|