?PRG1: PRINTI "Would you like to restart the game from the beginning, restore a saved game position, or end this session of the game? (Type RESTART, RESTORE, or QUIT): >"
READ P-INBUF,P-LEXV
GET P-LEXV,1
EQUAL? STACK,W?RESTART \?ELS7
RESTART
CALL TELL-FAILED
JUMP ?PRG1
?ELS7: GET P-LEXV,1
EQUAL? STACK,W?RESTORE \?ELS9
RESTORE \?ELS12
CALL TELL-OKAY
JUMP ?PRG1
?ELS12: CALL TELL-FAILED
JUMP ?PRG1
?ELS9: GET P-LEXV,1
EQUAL? STACK,W?QUIT,W?Q \?PRG1
QUIT
JUMP ?PRG1
.FUNCT V-QUIT,ASK?=1,SCOR
CALL V-SCORE
ZERO? ASK? /?ELS9
PRINTI "Do you wish to leave the game? (Y is affirmative): "
PRINTI "open, but you can't tell what's beyond it"
JUMP ?CND8
?ELS10: PRINTI "closed"
?CND8: PRINTR "."
?ELS5: FSET? PRSO,CONTBIT \?ELS20
FSET? PRSO,VICBIT \?ELS25
CALL TELL-NOTHING,STR?103
ZERO? REACH? /?ELS28
PRINTI "felt"
JUMP ?CND26
?ELS28: PRINTI "seen"
?CND26: PRINTR "."
?ELS25: CALL SEE-INSIDE?,PRSO
ZERO? STACK /?ELS39
FIRST? PRSO \?ELS44
CALL PRINT-CONT,PRSO
ZERO? STACK \TRUE
?ELS44: FSET? PRSO,WORNBIT \?ELS48
PRINTR "You're wearing it."
?ELS48: FSET? PRSO,SURFACEBIT \?ELS52
IN? WINNER,PRSO \?ELS57
PRINTR "You're on it!"
?ELS57: CALL TELL-NOTHING,STR?104
CALL DPRINT,PRSO
PRINTR "."
?ELS52: PRINTI "The "
CALL DPRINT,PRSO
PRINTR " is empty."
?ELS39: CALL TELL-CLOSED,PRSO,FALSE-VALUE
RSTACK
?ELS20: PRINTR "I don't know how to do that."
.FUNCT SEE-INSIDE?,OBJ
FSET? OBJ,INVISIBLE /FALSE
FSET? OBJ,OPENBIT /TRUE
FSET? OBJ,TRANSBIT /TRUE
RFALSE
.FUNCT PRE-BURN
ZERO? PRSI \?ELS5
PRINTR "Huh?"
?ELS5: PRINTI "With "
CALL APRINT,PRSI
PRINTR "??!?"
.FUNCT V-BURN
CALL TELL-NO-NO
RSTACK
.FUNCT PRE-TURN
EQUAL? PRSO,NOT-HERE-OBJECT /FALSE
EQUAL? PRSO,PSEUDO-OBJECT \?ELS7
EQUAL? HERE,MM-WHEELHOUSE,NW-WHEELHOUSE /FALSE
?ELS7: FSET? PRSO,TURNBIT /?ELS11
CALL TELL-WHY-BOTHER
RSTACK
?ELS11: ZERO? PRSI /FALSE
EQUAL? PRSI,INTDIR \FALSE
CALL TELL-YOU-CANT,STR?105
RSTACK
.FUNCT V-TURN
CALL TELL-NO-EFFECT
RSTACK
.FUNCT TELL-NO-EFFECT
PRINTR "This has no effect."
.FUNCT V-PUMP
PRINTR "I really don't see how."
.FUNCT V-INFLATE
CALL TELL-HOW-THAT,STR?106
RSTACK
.FUNCT V-DEFLATE
PRINTR "Come on, now!"
.FUNCT V-LOCK
PRINTR "It doesn't seem to work."
.FUNCT V-PICK
CALL TELL-YOU-CANT,STR?107
RSTACK
.FUNCT PRE-UNLOCK
EQUAL? PRSO,SAFE /FALSE
ZERO? PRSI \FALSE
IN? KEY,PLAYER \FALSE
SET 'PRSI,KEY
PRINTI "(with the room key)"
CRLF
RFALSE
.FUNCT V-UNLOCK
FSET? PRSO,DOORBIT \?ELS5
PRINTR "It's not locked."
?ELS5: CALL V-LOCK
RSTACK
.FUNCT V-CUT
ZERO? PRSI \?ELS5
PRINTR "Huh?"
?ELS5: FSET? PRSI,WEAPONBIT /?ELS9
PRINTI "Not with "
CALL APRINT,PRSI
PRINTR "!"
?ELS9: FSET? PRSO,VICBIT /?THN14
EQUAL? PRSO,SQUID \?ELS13
?THN14: CALL IKILL,STR?108
RSTACK
?ELS13: PRINTI "Strange concept, cutting "
CALL APRINT,PRSO
PRINTR "..."
.FUNCT V-KILL
CALL IKILL,STR?109
RSTACK
.FUNCT IKILL,STR
ZERO? PRSO \?ELS5
CALL TELL-NOTHING,STR?110
PRINT STR
PRINTR "."
?ELS5: EQUAL? PRSO,SQUID \?ELS9
CALL JIGS-UP,STR?111
RSTACK
?ELS9: FSET? PRSO,VICBIT /?ELS11
PRINTI "I've known strange people, but fighting "
CALL APRINT,PRSO
PRINTR "?"
?ELS11: ZERO? PRSI /?THN16
EQUAL? PRSI,GLOBAL-SELF,ME \?ELS15
?THN16: PRINTI "Trying to "
PRINT STR
PRINTI " "
CALL APRINT,PRSO
PRINTR " with your bare hands is suicidal."
?ELS15: IN? PRSI,WINNER /?ELS21
PRINTI "You aren't even holding "
CALL THE?,PRSI
CALL DPRINT,PRSI
PRINTR "."
?ELS21: FSET? PRSI,WEAPONBIT /?ELS27
PRINTI "Trying to "
PRINT STR
PRINTI " "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTI " with "
CALL APRINT,PRSI
PRINTR " is suicidal."
?ELS27: CALL TELL-NOT-SMART
RSTACK
.FUNCT V-ATTACK
CALL IKILL,STR?112
RSTACK
.FUNCT V-SWING
CALL HELD?,PRSO
ZERO? STACK \?ELS5
CALL TELL-YOURE-NOT,STR?113
RSTACK
?ELS5: PRINTR "Whoosh!"
.FUNCT V-KICK
FSET? PRSO,PERSON \?ELS5
CALL TELL-NOT-SMART
RSTACK
?ELS5: CALL HACK-HACK,STR?114
RSTACK
.FUNCT TELL-NOT-SMART
PRINTR "That wouldn't be too smart."
.FUNCT V-WAVE
CALL HACK-HACK,STR?115
RSTACK
.FUNCT V-WAVE-AT
ZERO? PRSO /?ELS5
FSET? PRSO,VICBIT \?ELS5
CALL START-SENTENCE,PRSO
PRINTR " acknowledges your greeting."
?ELS5: CALL TELL-NO-RESPONSE
RSTACK
.FUNCT V-LOWER
CALL HACK-HACK,STR?116
RSTACK
.FUNCT V-RUB
FSET? PRSO,PERSON \?ELS5
CALL TELL-HANDS-OFF
RSTACK
?ELS5: CALL HACK-HACK,STR?117
RSTACK
.FUNCT TELL-HANDS-OFF
PRINTR """Get your hands off me!"""
.FUNCT V-PUSH
FSET? PRSO,PERSON \?ELS5
CALL TELL-HANDS-OFF
RSTACK
?ELS5: IN? WINNER,PRSO \?ELS7
CALL TELL-CONTORT
RSTACK
?ELS7: FSET? PRSO,PUSHBIT \?ELS9
CALL TELL-MOVES-BIT
RSTACK
?ELS9: CALL HACK-HACK,STR?118
RSTACK
.FUNCT TELL-MOVES-BIT
CALL START-SENTENCE,PRSO
PRINTR " moves a bit."
.FUNCT V-PUSH-OFF
FSET? PRSI,SURFACEBIT \?ELS5
IN? PRSO,PRSI \?ELS5
LOC PRSI
MOVE PRSO,STACK
CALL TELL-NOW,PRSO,STR?119
RSTACK
?ELS5: PRINTR "A ludicrous idea at best."
.FUNCT V-PUSH-TO,FALLEN=0,OH,F
IN? WINNER,PRSO \?ELS5
CALL TELL-CONTORT
RSTACK
?ELS5: FSET? PRSO,PUSHBIT /?ELS7
FSET? PRSO,TAKEBIT \?ELS12
PRINTR "There's no need for that. Why not just pick it up and then carry it there?"
?ELS12: EQUAL? PRSO,ME \?ELS16
PRINTR "Do it yourself."
?ELS16: FSET? PRSO,VICBIT \?ELS20
CALL TELL-HANDS-OFF
RSTACK
?ELS20: PRINTI "You push and strain, but can't budge "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR "."
?ELS7: EQUAL? PRSI,INTDIR /?ELS28
CALL TELL-YOU-CANT,STR?120
RTRUE
?ELS28: SET 'OH,HERE
ZERO? OH /FALSE
CALL DO-WALK,P-WALK-DIR
EQUAL? STACK,M-FATAL /FALSE
?PRG33: FIRST? PRSO >F \?REP34
MOVE F,OH
SET 'FALLEN,TRUE-VALUE
JUMP ?PRG33
?REP34: MOVE PRSO,HERE
FSET PRSO,TOUCHBIT
PRINTI "You bring the "
CALL DPRINT,PRSO
PRINTI " along with you."
ZERO? FALLEN /?CND42
CALL TELL-ALL-FALL
?CND42: CRLF
RTRUE
.FUNCT TELL-CONTORT
PRINTR "That would require some impressive contortions."
.FUNCT TELL-ALL-FALL
PRINTI " Everything that was on it falls off."
RTRUE
.FUNCT PRE-CHIP
GET P-VTBL,0
EQUAL? STACK,W?CHIP \?ELS3
IN? SPEAR-CARRIER,HERE \?ELS3
EQUAL? PRSO,INTNUM \?ELS3
ZERO? P-DOLLAR-FLAG /?ELS3
CALL PERFORM,V?GIVE,PRSO,SPEAR-CARRIER
RTRUE
?ELS3: CALL PERFORM,V?MUNG,PRSO
RTRUE
.FUNCT V-CHIP
PRINTR "Bug."
.FUNCT PRE-MUNG
EQUAL? PRSO,WINNER,ME,NOT-HERE-OBJECT /FALSE
EQUAL? PRSO,MIRROR,GLOBAL-BANK,ADVENTURER /FALSE
ZERO? PRSI /?ELS7
FSET? PRSI,WEAPONBIT /FALSE
?ELS7: FSET? PRSO,VICBIT /?CND1
EQUAL? PRSO,SQUID /?CND1
CALL HACK-HACK,STR?121
RTRUE
?CND1: PRINTI "Trying to destroy "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTI " with "
ZERO? PRSI \?ELS20
PRINTI "your bare hands is suicidal"
JUMP ?CND18
?ELS20: CALL APRINT,PRSI
PRINTI " is insane"
?CND18: PRINTR "."
.FUNCT V-MUNG
FSET? PRSO,VICBIT /?THN6
EQUAL? PRSO,SQUID \?ELS5
?THN6: CALL IKILL,STR?112
RSTACK
?ELS5: PRINTR "Nothing much happens."
.FUNCT HACK-HACK,STR
IN? PRSO,GLOBAL-OBJECTS \?ELS5
EQUAL? PRSA,V?LOWER,V?WAVE \?ELS5
PRINTI "Unfortunately, "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR " isn't here."
?ELS5: PRINT STR
PRINTI " "
CALL THE?,PRSO
CALL DPRINT,PRSO
CALL PICK-ONE,HO-HUM
PRINT STACK
CRLF
RTRUE
.FUNCT V-KNOCK
FSET? PRSO,DOORBIT \?ELS5
CALL TELL-NO-ANSWER
RSTACK
?ELS5: PRINTI "Why knock on "
CALL APRINT,PRSO
PRINTR "?"
.FUNCT V-CHOMP
PRINTR "I don't know how to do that. I win in all cases!"
.FUNCT V-WIN
PRINTR "Naturally!"
.FUNCT V-YELL
ZERO? PRSO /?ELS5
PRINTR "You could be more polite and lower your voice."
?ELS5: PRINTR "Aarrrrrgggggggghhhhhhhhhhh!"
.FUNCT V-PLUG
CALL TELL-NO-EFFECT
RSTACK
.FUNCT V-LATITUDE,LAT=1,STR,NEW=0
ZERO? LAT /?ELS3
SET 'STR,STR?126
JUMP ?CND1
?ELS3: SET 'STR,STR?127
?CND1: EQUAL? WINNER,PLAYER \?ELS11
PRINTI "Why don't you tell someone who cares?"
CRLF
RETURN 2
?ELS11: LESS? MEETINGS-COMPLETED,2 \?ELS17
CALL START-SENTENCE,WINNER
PRINTI " looks bewildered. ""What does that have to do with anything?"" he asks."
CRLF
RETURN 2
?ELS17: EQUAL? WINNER,JOHNNY /?ELS23
CALL START-SENTENCE,WINNER
PRINTI " says, ""That's nice. Why don't you let the captain know?"""
CRLF
RETURN 2
?ELS23: EQUAL? PRSO,INTNUM /?ELS29
PRINTI "Johnny looks at you strangely. ""What kind of a "
PRINT STR
PRINTR " is that?"""
?ELS29: GRTR? P-NUMBER,59 \?ELS33
PRINTR """There are 60 minutes in a degree."""
?ELS33: ZERO? LAT /?ELS40
ZERO? LATITUDE-SET /?CND42
EQUAL? LATITUDE-SET,P-NUMBER \?ELS48
SET 'NEW,M-FATAL
JUMP ?CND42
?ELS48: SET 'NEW,TRUE-VALUE
?CND42: SET 'LATITUDE-SET,P-NUMBER
JUMP ?CND38
?ELS40: ZERO? LONGITUDE-SET /?CND53
EQUAL? LONGITUDE-SET,P-NUMBER \?ELS59
SET 'NEW,M-FATAL
JUMP ?CND53
?ELS59: SET 'NEW,TRUE-VALUE
?CND53: SET 'LONGITUDE-SET,P-NUMBER
?CND38: EQUAL? NEW,M-FATAL \?ELS66
CALL TELL-YOU-ALREADY,STR?128,TRUE-VALUE
RSTACK
?ELS66: ZERO? NEW /?ELS68
PRINTI """Now the "
PRINT STR
PRINTI " is "
PRINTN P-NUMBER
PRINTR ", huh?"""
?ELS68: PRINTI """Okay. The "
PRINT STR
PRINTI " is "
PRINTN P-NUMBER
PRINTR "."""
.FUNCT V-LONGITUDE
CALL V-LATITUDE,FALSE-VALUE
RSTACK
.FUNCT V-EMPTY,X
FSET? PRSO,CONTBIT /?ELS5
CALL TELL-YOU-CANT,STR?129
RSTACK
?ELS5: FSET? PRSO,OPENBIT /?ELS7
CALL TELL-YOU-CANT,STR?130
RSTACK
?ELS7: FIRST? PRSO \?ELS9
?PRG10: FIRST? PRSO >X \?REP11
MOVE X,HERE
JUMP ?PRG10
?REP11: CALL TELL-NOW,PRSO,STR?131
RSTACK
?ELS9: CALL TELL-NOTHING,STR?132
CALL DPRINT,PRSO
PRINTR "."
.FUNCT V-SHAKE,X
FSET? PRSO,VICBIT \?ELS5
CALL TELL-NO-EFFECT
RSTACK
?ELS5: FSET? PRSO,TAKEBIT /?ELS7
CALL TELL-YOU-CANT,STR?133
RSTACK
?ELS7: FSET? PRSO,OPENBIT /?ELS9
FIRST? PRSO \?ELS9
PRINTI "It sounds as if there is something inside the "
CALL DPRINT,PRSO
PRINTR "."
?ELS9: FSET? PRSO,OPENBIT \?ELS15
FIRST? PRSO \?ELS15
?PRG18: FIRST? PRSO >X \?REP19
MOVE X,HERE
JUMP ?PRG18
?REP19: PRINTI "All of the objects spill onto the "
CALL SPILL-WHERE?
RSTACK
?ELS15: CALL TELL-NOTHING,STR?132
CALL DPRINT,PRSO
PRINTR "."
.FUNCT SPILL-WHERE?
IN? WINNER,BED \?ELS3
PRINTI "floor by your bed."
JUMP ?CND1
?ELS3: GETP HERE,P?LINE
GRTR? STACK,BACK-ALLEY-LINE-C \?ELS7
PRINTI "deck by your feet."
JUMP ?CND1
?ELS7: PRINTI "floor."
?CND1: CRLF
RTRUE
.FUNCT V-DIAGNOSE
PRINTI "You are "
GRTR? HOW-HUNGRY,3 \?ELS5
PRINTI "extremely"
JUMP ?CND3
?ELS5: ZERO? HOW-HUNGRY \?ELS9
PRINTI "not"
JUMP ?CND3
?ELS9: EQUAL? HOW-HUNGRY,1 \?ELS13
PRINTI "a bit"
JUMP ?CND3
?ELS13: EQUAL? HOW-HUNGRY,2 \?ELS17
PRINTI "pretty"
JUMP ?CND3
?ELS17: EQUAL? HOW-HUNGRY,3 \?CND3
PRINTI "very"
?CND3: PRINTI " hungry, "
ZERO? HOW-THIRSTY \?ELS28
PRINTI "not thirsty"
JUMP ?CND26
?ELS28: EQUAL? HOW-THIRSTY,1 \?ELS32
PRINTI "a little thirsty"
JUMP ?CND26
?ELS32: EQUAL? HOW-THIRSTY,2 \?ELS36
PRINTI "fairly thirsty"
JUMP ?CND26
?ELS36: EQUAL? HOW-THIRSTY,3 \?ELS40
PRINTI "very thirsty"
JUMP ?CND26
?ELS40: GRTR? HOW-THIRSTY,3 \?CND26
PRINTI "utterly parched"
?CND26: PRINTI ", and "
ZERO? HOW-TIRED \?ELS51
PRINTI "half-awake"
JUMP ?CND49
?ELS51: LESS? HOW-TIRED,3 \?ELS55
PRINTI "wide-awake"
JUMP ?CND49
?ELS55: EQUAL? HOW-TIRED,3 \?ELS59
PRINTI "a bit drowsy"
JUMP ?CND49
?ELS59: EQUAL? HOW-TIRED,4 \?ELS63
PRINTI "fairly tired"
JUMP ?CND49
?ELS63: EQUAL? HOW-TIRED,5 \?ELS67
PRINTI "very sleepy"
JUMP ?CND49
?ELS67: EQUAL? HOW-TIRED,6 \?CND49
PRINTI "dead on your feet"
?CND49: PRINTR "."
.FUNCT PRE-DIG
EQUAL? PRSO,NOT-HERE-OBJECT /FALSE
ZERO? PRSI \?ELS7
PRINTR "Huh?"
?ELS7: FSET? PRSI,TOOLBIT /FALSE
PRINTI "Digging with "
CALL THE?,PRSI
CALL DPRINT,PRSI
PRINTR " is very silly."
.FUNCT V-AIM
PRINTR "That would be pointless."
.FUNCT V-DIG
CALL TELL-YOU-CANT,STR?134
RSTACK
.FUNCT PRE-SMELL
FSET? MASK,WORNBIT /?THN6
FSET? DEEP-SUIT,WORNBIT \FALSE
?THN6: CALL TELL-YOU-CANT,STR?135
RSTACK
.FUNCT V-SMELL
FSET? PRSO,VICBIT \?ELS5
PRINTR "Nothing a good deodorant couldn't fix."
?ELS5: PRINTI "It smells just like "
CALL APRINT,PRSO
PRINTR "."
.FUNCT GLOBAL-IN?,OBJ1,OBJ2,Z
GETPT OBJ2,P?GLOBAL >Z
ZERO? Z /FALSE
PTSIZE Z
SUB STACK,1
CALL ZMEMQB,OBJ1,Z,STACK
RSTACK
.FUNCT V-SWIM
GETP HERE,P?LINE
EQUAL? STACK,UNDERWATER-LINE-C \?ELS5
EQUAL? PRSO,INTDIR \?ELS10
CALL DO-WALK,P-WALK-DIR
RSTACK
?ELS10: CALL TELL-SHD-DIR
RSTACK
?ELS5: PRINTR "I think you're all wet."
.FUNCT V-DIVE
ZERO? PRSO /?ELS5
EQUAL? PRSO,OCEAN /?ELS5
PRINTR "This isn't a circus!"
?ELS5: GETP HERE,P?LINE
EQUAL? STACK,UNDERWATER-LINE-C \?ELS11
CALL DO-WALK,P?DOWN
RTRUE
?ELS11: LOC PLAYER
CALL GLOBAL-IN?,OCEAN,STACK
ZERO? STACK /?ELS13
EQUAL? HERE,MM-WHEELHOUSE,NW-WHEELHOUSE /?ELS13
GETP HERE,P?LINE
LESS? STACK,TRAWLER-LINE-C \?ELS20
EQUAL? HERE,FERRY-LANDING,WHARF /?ELS20
CALL PERFORM,V?BOARD,OCEAN
RTRUE
?ELS20: FSET? DEEP-SUIT,WORNBIT /?ELS24
FSET? WET-SUIT,WORNBIT \?THN27
IN? AIR-TANK,PLAYER \?THN27
FSET? MASK,WORNBIT \?THN27
FSET? FLIPPERS,WORNBIT /?ELS24
?THN27: CALL JIGS-UP,STR?136
RSTACK
?ELS24: FSET? DEEP-SUIT,WORNBIT \?ELS30
IN? AIR-HOSE,DEEP-SUIT \?THN33
FSET? MM-COMPRESSOR,ONBIT /?ELS30
?THN33: CALL JIGS-UP,STR?137
RSTACK
?ELS30: ZERO? AT-SEA \?ELS36
CALL JIGS-UP,STR?138
RSTACK
?ELS36: EQUAL? OCEAN-BOTTOM,50 \?ELS41
SET 'HERE,OCEAN-FLOOR
MOVE PLAYER,OCEAN-FLOOR
JUMP ?CND39
?ELS41: MOVE PLAYER,UNDERWATER
SET 'HERE,UNDERWATER
CALL UNDERWATER-F,M-ENTER
?CND39: FCLEAR OCEAN,VEHBIT
CALL INT,I-ENDIT
PUT STACK,0,0
SET 'DEPTH,50
IN? PASSBOOK,PLAYER \?CND44
FSET PASSBOOK,RMUNGBIT
?CND44: IN? DIVING-BOOK,PLAYER \?CND47
FSET DIVING-BOOK,RMUNGBIT
?CND47: IN? NOTE,PLAYER \?CND50
FSET NOTE,RMUNGBIT
?CND50: IN? BOOK,PLAYER \?CND53
FSET BOOK,RMUNGBIT
?CND53: IN? ENVELOPE,PLAYER \?CND56
FSET ENVELOPE,RMUNGBIT
?CND56: IN? BATTERY,PLAYER /?THN62
IN? BATTERY,DRILL \?CND59
FSET? DRILL,OPENBIT \?CND59
?THN62: FSET BATTERY,RMUNGBIT
SET DRILL-POWERED,FALSE-VALUE
?CND59: IN? DRY-CELL,PLAYER /?THN69
IN? DRY-CELL,DETECTOR-COMPARTMENT \?CND66
FSET? DETECTOR-COMPARTMENT,OPENBIT \?CND66
?THN69: FSET DRY-CELL,RMUNGBIT
SET DETECTOR-POWERED,FALSE-VALUE
?CND66: IN? AIR-TANK,PLAYER \?ELS75
FSET? DEEP-SUIT,WORNBIT /?ELS75
CALL QUEUE,I-AIR-SUPPLY,-1
PUT STACK,0,1
JUMP ?CND73
?ELS75: CALL INT,I-MM-COMPRESSOR
GET STACK,C-TICK
GRTR? STACK,0 \?ELS79
CALL INT,I-MM-COMPRESSOR
PUT STACK,0,1
JUMP ?CND73
?ELS79: CALL INT,I-LAST-GASP
PUT STACK,0,1
?CND73: CALL V-LOOK
RSTACK
?ELS13: PRINTR "Consulting your years of experience, you come to the conclusion that the lack of water here would make this a lousy place to try diving."
.FUNCT V-UNTIE
FSET? PRSO,PERSON \?ELS5
CALL PICK-ONE,YUKS
PRINT STACK
CRLF
RTRUE
?ELS5: PRINTR "This cannot be tied, so it cannot be untied!"
.FUNCT PRE-TIE
EQUAL? PRSO,AIR-HOSE /FALSE
EQUAL? PRSO,ROPE,SAFETY-LINE /?ELS7
EQUAL? PRSI,ROPE,SAFETY-LINE /?ELS7
PRINTR "Even if I knew how to do that, I wouldn't."
?ELS7: EQUAL? PRSI,WINNER /?THN14
EQUAL? PRSO,WINNER \FALSE
?THN14: CALL TELL-YOU-CANT,STR?139
RSTACK
.FUNCT V-TIE
PRINTR "Don't bother."
.FUNCT V-TIE-UP
PRINTR "You could certainly never tie it with that!"
.FUNCT V-MELT
PRINTI "I'm not sure that "
CALL APRINT,PRSO
PRINTR " can be melted."
.FUNCT V-MUMBLE
PRINTR "You'll have to speak up if you expect me to hear you!"
.FUNCT V-ALARM
EQUAL? PRSO,ROOMS \?ELS9
EQUAL? WINNER,PLAYER \?THN6
?ELS9: FSET? PRSO,VICBIT \?ELS5
EQUAL? PRSO,ME /?ELS5
?THN6: PRINTR "He's wide awake, or haven't you noticed?"
?ELS5: EQUAL? PRSO,ROOMS \?ELS15
PRINTR "You're already awake."
?ELS15: CALL START-SENTENCE,PRSO
PRINTR " isn't sleeping."
.FUNCT V-CLIMB-ON
FSET? PRSO,CLIMBBIT /?THN6
FSET? PRSO,VEHBIT \?ELS5
?THN6: CALL PERFORM,V?BOARD,PRSO
RTRUE
?ELS5: CALL TELL-YOU-CANT,STR?140,FALSE-VALUE
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR "."
.FUNCT V-CLIMB-FOO
EQUAL? PRSO,ROOMS \?ELS5
CALL V-CLIMB-UP
RSTACK
?ELS5: FSET? PRSO,CLIMBBIT /?ELS7
FSET? PRSO,VEHBIT /?ELS7
CALL TELL-YOU-CANT,STR?141,FALSE-VALUE
CALL APRINT,PRSO
PRINTI "!"
CRLF
RETURN 2
?ELS7: CALL V-CLIMB-UP,P?UP,TRUE-VALUE
RSTACK
.FUNCT V-CLIMB-UP,DIR=P?UP,OBJ=0,X,?TMP1
GETPT HERE,DIR
ZERO? STACK /?ELS5
CALL DO-WALK,DIR
RTRUE
?ELS5: ZERO? OBJ \?ELS7
CALL TELL-NO-GO,TRUE-VALUE
RSTACK
?ELS7: ZERO? OBJ /?ELS9
GETPT PRSO,P?SYNONYM >X
PTSIZE X
CALL ZMEMQ,W?WALLS,X,STACK
ZERO? STACK /?ELS9
PRINTR "Climbing the walls is to no avail."
?ELS9: PRINTR "Bizarre!"
.FUNCT V-CLIMB-DOWN
CALL V-CLIMB-UP,P?DOWN
RSTACK
.FUNCT V-SEND
FSET? PRSO,VICBIT \?ELS5
PRINTI "I doubt that "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR " is at your beck and call."
?ELS5: PRINTR "That doesn't make sends."
.FUNCT V-WIND
PRINTI "You cannot wind up "
CALL APRINT,PRSO
PRINTR "."
.FUNCT V-COUNT
PRINTR "I can't deal with those numbers."
.FUNCT PRE-BRACE
CALL PERFORM,V?PUT-UNDER,PRSI,PRSO
RTRUE
.FUNCT V-BRACE
PRINTR "Bug."
.FUNCT V-PUT-UNDER
FSET? PRSI,DOORBIT \?ELS5
GETP PRSO,P?SIZE
LESS? STACK,5 \?ELS5
FSET? PRSI,OPENBIT \?ELS12
CALL TELL-WHY-BOTHER
RSTACK
?ELS12: CALL IDROP
ZERO? STACK /FALSE
CALL OTHER-SIDE,PRSI,TRUE-VALUE
MOVE PRSO,STACK
PRINTR "Done."
?ELS5: CALL TELL-NO-NO
RSTACK
.FUNCT V-PUSH-UNDER
FSET? PRSO,TAKEBIT /?THN6
FSET? PRSO,PUSHBIT \?ELS5
?THN6: CALL PERFORM,V?PUT-UNDER,PRSO,PRSI
RTRUE
?ELS5: CALL TELL-NO-NO
RSTACK
.FUNCT V-PLAY
FSET? PRSO,VICBIT \?ELS5
PRINTI "You are so engrossed in the role of "
CALL THE?,PRSO
CALL DPRINT,PRSO
CALL JIGS-UP,STR?142
RSTACK
?ELS5: PRINTR "How peculiar!"
.FUNCT V-MAKE
CALL TELL-NO-NO
RSTACK
.FUNCT V-ENTER
EQUAL? HERE,WINDING-ROAD-1 \?ELS5
CALL PERFORM,V?THROUGH,LIGHTHOUSE
RTRUE
?ELS5: CALL DO-WALK,P?IN
RSTACK
.FUNCT V-EXIT
CALL DO-WALK,P?OUT
RSTACK
.FUNCT V-CROSS
CALL TELL-YOU-CANT,STR?143
RSTACK
.FUNCT V-SEARCH
FSET? PRSO,PERSON \?ELS5
CALL START-SENTENCE,PRSO
PRINTR " glares at you. ""Get away from me!"" he growls."
?ELS5: FSET? PRSO,CONTBIT \?ELS9
CALL PERFORM,V?LOOK-INSIDE,PRSO
RTRUE
?ELS9: PRINTR "You find nothing unusual."
.FUNCT V-FIND,L
LOC PRSO >L
EQUAL? WINNER,PLAYER /?ELS5
PRINTI """Find "
FSET? PRSO,VICBIT \?ELS10
PRINTI "him "
JUMP ?CND8
?ELS10: PRINTI "it "
?CND8: CALL DPRINT,GLOBAL-SELF
PRINTR "."""
?ELS5: EQUAL? L,GLOBAL-OBJECTS \?ELS20
PRINTI "Why don't you try finding it "
CALL DPRINT,GLOBAL-SELF
PRINTR "?"
?ELS20: IN? PRSO,WINNER \?ELS24
PRINTR "You have it."
?ELS24: IN? PRSO,HERE /?THN29
EQUAL? PRSO,PSEUDO-OBJECT \?ELS28
?THN29: FSET? PRSO,VICBIT \?ELS33
PRINTI "He's"
JUMP ?CND31
?ELS33: PRINTI "It's"
?CND31: PRINTR " right here."
?ELS28: IN? L,HERE /?THN44
CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /?ELS43
?THN44: FSET? L,PERSON \?ELS50
PRINTI "You notice that "
CALL DPRINT,L
PRINTR " has it."
?ELS50: FSET? L,CONTBIT \?ELS54
PRINTI "It's "
CALL VEHPREP,L
PRINT STACK
PRINTI " the "
CALL DPRINT,L
PRINTR "."
?ELS54: EQUAL? L,FERRY \?ELS58
PRINTR "He's on the ferry."
?ELS58: PRINTR "It's around here somewhere."
?ELS43: PRINTI "Find "
FSET? PRSO,VICBIT \?ELS71
PRINTI "him"
JUMP ?CND69
?ELS71: PRINTI "it"
?CND69: PRINTI " "
CALL DPRINT,GLOBAL-SELF
PRINTR "."
.FUNCT PRE-TELL
ZERO? PRSI /?ELS5
EQUAL? PRSO,ME,PLAYER \?ELS5
EQUAL? WINNER,PLAYER /?ELS10
SET 'PRSA,V?ASK-ABOUT
CALL PERFORM,V?ASK-ABOUT,WINNER,PRSI
RTRUE
?ELS10: SET 'PRSA,V?ASK-CONTEXT-ABOUT
CALL PERFORM,V?ASK-CONTEXT-ABOUT,PRSI
RTRUE
?ELS5: ZERO? PRSI \FALSE
FSET? PRSO,VICBIT /FALSE
CALL TELL-NO-TELL
RSTACK
.FUNCT V-TELL
ZERO? PRSI /?ELS5
FSET? PRSO,PERSON \?ELS11
CALL START-SENTENCE,PRSO
PRINTR " seems less than impressed with this information."
?ELS11: FSET? PRSO,VICBIT /?THN16
EQUAL? PRSO,SQUID \?ELS15
?THN16: PRINTI "The "
CALL DPRINT,PRSO
PRINTR " ignores what you have to say."
?ELS15: CALL TELL-NO-RESPONSE
RSTACK
?ELS5: EQUAL? WINNER,PLAYER \?ELS23
EQUAL? PRSO,ME,WINNER \?ELS23
PRINTI "Talking to "
CALL DPRINT,GLOBAL-SELF
PRINTI " is diverting, but unnecessary."
CRLF
RETURN 2
?ELS23: EQUAL? PRSO,PLAYER,ME \?ELS31
PRINTI """What in the world are you trying to say?"""
CRLF
RETURN 2
?ELS31: FSET? PRSO,VICBIT \?ELS37
CALL META-LOC,PRSO
EQUAL? STACK,HERE /?ELS40
CALL GLOBAL-NOT-HERE-PRINT,PRSO
RETURN 2
?ELS40: EQUAL? WINNER,PLAYER /?CND38
ZERO? P-CONT \?CND38
PRINTI """I'll talk to whoever I want."""
CRLF
RETURN 2
?CND38: SET 'WINNER,PRSO
CALL META-LOC,WINNER >HERE
SET 'QCONTEXT,WINNER
SET 'QCONTEXT-ROOM,HERE
ZERO? P-CONT \FALSE
CALL START-SENTENCE,PRSO
PRINTI " turns and looks at you as though he thought you were about to say something."
CRLF
RETURN 2
?ELS37: CALL TELL-NO-TELL
RSTACK
.FUNCT TELL-NO-TELL
CALL TELL-YOU-CANT,STR?144,FALSE-VALUE
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTI "!"
CRLF
SET 'QUOTE-FLAG,FALSE-VALUE
SET 'P-CONT,FALSE-VALUE
RETURN 2
.FUNCT V-KISS
PRINTR "I'd sooner kiss a parrot."
.FUNCT V-RAPE
PRINTR "An ugly idea from an ugly person."
.FUNCT FIND-IN,WHERE,WHAT,W,R=0
FIRST? WHERE >W /?KLU19
?KLU19: ZERO? W /FALSE
?PRG4: FSET? W,WHAT \?ELS8
ZERO? R /?ELS11
RETURN 2
?ELS11: SET 'R,W
JUMP ?PRG4
?ELS8: NEXT? W >W /?PRG4
RETURN R
.FUNCT V-SAY,V
CALL FIND-IN,HERE,VICBIT >V
ZERO? V /?ELS5
PRINTI "You must address "
EQUAL? V,M-FATAL \?ELS10
PRINTI "someone"
JUMP ?CND8
?ELS10: CALL THE?,V
CALL DPRINT,V
?CND8: PRINTI " directly."
CRLF
RETURN 2
?ELS5: GET P-LEXV,P-CONT
EQUAL? STACK,W?HELLO \?ELS22
SET 'QUOTE-FLAG,FALSE-VALUE
RTRUE
?ELS22: SET 'QUOTE-FLAG,FALSE-VALUE
SET 'P-CONT,FALSE-VALUE
PRINTI "Talking to "
CALL DPRINT,GLOBAL-SELF
PRINTR " is said to be a sign of impending mental collapse."
.FUNCT V-SPIN
CALL TELL-YOU-CANT,STR?145
RSTACK
.FUNCT V-THROUGH,M
FSET? PRSO,DOORBIT \?ELS5
CALL OTHER-SIDE,PRSO
CALL DO-WALK,STACK
RTRUE
?ELS5: FSET? PRSO,VEHBIT /?THN8
EQUAL? HERE,MCGINTY-HQ \?ELS7
EQUAL? PRSO,PSEUDO-OBJECT \?ELS7
?THN8: CALL PERFORM,V?BOARD,PRSO
RTRUE
?ELS7: IN? PRSO,GLOBAL-OBJECTS /?ELS13
CALL META-LOC,PRSO
EQUAL? STACK,HERE /?ELS13
CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK \?ELS13
CALL GLOBAL-NOT-HERE-PRINT,PRSO
RSTACK
?ELS13: FSET? PRSO,TAKEBIT /?ELS17
PRINTI "You hit your head against "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR " as you attempt this feat."
?ELS17: IN? PRSO,WINNER \?ELS23
CALL TELL-CONTORT
RSTACK
?ELS23: CALL PICK-ONE,YUKS
PRINT STACK
CRLF
RTRUE
.FUNCT V-STEP
FSET? PRSO,VEHBIT \?ELS5
CALL PERFORM,V?BOARD,PRSO
RTRUE
?ELS5: EQUAL? PRSO,GROUND \?ELS7
PRINTR "Fred Astaire you're not."
?ELS7: PRINTR "That sounds pretty useless."
.FUNCT V-WEAR
FSET? PRSO,WEARBIT /?ELS5
CALL TELL-YOU-CANT,STR?154,FALSE-VALUE
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR "."
?ELS5: FSET? PRSO,WORNBIT \?ELS9
PRINTR "You are already wearing it."
?ELS9: IN? PRSO,WINNER /?THN14
CALL ITAKE
ZERO? STACK /FALSE
?THN14: FSET PRSO,WORNBIT
PRINTI "You are now wearing "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR "."
.FUNCT UNWEAR
FSET? PRSO,WORNBIT \?ELS5
FCLEAR PRSO,WORNBIT
PRINTI "You are now holding "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR "."
?ELS5: CALL TELL-YOURE-NOT,STR?155
RSTACK
.FUNCT V-WITHDRAW
EQUAL? PRSO,INTNUM /?ELS5
CALL PERFORM,V?TAKE,PRSO
RSTACK
?ELS5: CALL TELL-YOU-CANT,STR?156
RSTACK
.FUNCT V-DEPOSIT
EQUAL? PRSO,INTNUM /?ELS5
CALL PERFORM,V?PUT,PRSO,PRSI
RSTACK
?ELS5: CALL TELL-YOU-CANT,STR?157
RSTACK
.FUNCT V-THROW-OFF
CALL TELL-YOU-CANT,STR?158
RSTACK
.FUNCT V-$VERIFY
PRINTI "Verifying game..."
CRLF
VERIFY \?ELS7
PRINTR "Yup. Game correct."
?ELS7: PRINTR "** UH OH! Game File Failure. **"
.FUNCT V-STAND
ZERO? PRSO /?CND1
EQUAL? PRSO,GLOBAL-BANK /?THN8
FSET? PRSO,VICBIT \?ELS7
?THN8: CALL PERFORM,V?ROB,PRSO
RTRUE
?ELS7: FSET? PRSO,VEHBIT \?ELS11
CALL PERFORM,V?BOARD,PRSO
RTRUE
?ELS11: EQUAL? PRSO,ROOMS /?CND1
CALL HACK-HACK,STR?116
RTRUE
?CND1: LOC WINNER
FSET? STACK,VEHBIT \?ELS18
LOC WINNER
CALL PERFORM,V?DISEMBARK,STACK
RTRUE
?ELS18: PRINTR "You are already standing, I think."
.FUNCT V-HIDE
PRINTR "That's not a good hiding place."
.FUNCT V-HIDE-UNDER
CALL V-HIDE
RSTACK
.FUNCT DO-WALK,DIR
SET 'P-WALK-DIR,DIR
CALL PERFORM,V?WALK,DIR
EQUAL? STACK,M-FATAL \TRUE
RETURN 2
.FUNCT V-WALK-TO
EQUAL? PRSO,INTDIR \?ELS5
CALL DO-WALK,P-WALK-DIR
RSTACK
?ELS5: IN? PRSO,HERE /?THN8
CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK /?ELS7
?THN8: FSET? PRSO,VICBIT \?ELS12
PRINTI "He"
JUMP ?CND10
?ELS12: PRINTI "It"
?CND10: PRINTR "'s here!"
?ELS7: CALL TELL-SHD-DIR
RSTACK
.FUNCT TELL-SHD-DIR
PRINTI "You should supply a "
CALL DPRINT,INTDIR
PRINTR "!"
.FUNCT OTHER-SIDE,DOBJ,RM?=0,P=0,Z
?PRG1: NEXTP HERE,P >P
LESS? P,LOW-DIRECTION /FALSE
GETPT HERE,P >Z
PTSIZE Z
EQUAL? STACK,DEXIT \?PRG1
GETB Z,DEXITOBJ
EQUAL? STACK,DOBJ \?PRG1
ZERO? RM? /?ELS15
GETB Z,0
RETURN STACK
?ELS15: RETURN P
.FUNCT V-LEAN-ON
PRINTR "Are you so very tired, then?"
.FUNCT V-PUT-AGAINST
CALL TELL-NO-NO
RSTACK
.FUNCT V-TASTE
FSET? PRSO,FOODBIT \?ELS5
CALL PERFORM,V?EAT,PRSO
RSTACK
?ELS5: PRINTI "It tastes just like "
CALL APRINT,PRSO
PRINTR "."
.FUNCT TELL-WHY-BOTHER
PRINTR "Why bother?"
.FUNCT V-ROB
FSET? PRSO,PERSON /?THN6
EQUAL? PRSO,SPEAR-CARRIER \?ELS5
?THN6: PRINTI "Even as you begin to make your move, "
CALL THE?,PRSO
CALL DPRINT,PRSO
CALL JIGS-UP,STR?159
RSTACK
?ELS5: PRINTR "No wonder you never made the Ten Most Wanted list."
.FUNCT V-PUSH-THROUGH
PRINTI "Pushing "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTR " in that way isn't particularly helpful."
.FUNCT HOW?,OBJ
PRINTI "I don't know how to do that to "
CALL APRINT,OBJ
PRINTR "."
.FUNCT VOWEL?,OBJ
FSET? OBJ,VOWELBIT \?CND1
PRINTI "n"
?CND1: PRINTI " "
RTRUE
.FUNCT V-SMOKE
PRINTR "Smoking is bad for your health."
.FUNCT V-UNFOLD
CALL HOW?,PRSO
RSTACK
.FUNCT V-FOLD
CALL V-UNFOLD
RSTACK
.FUNCT V-HOLE-DIG
PRINTI "I can't dig in "
CALL THE?,PRSI
CALL DPRINT,PRSI
PRINTR "."
.FUNCT V-TURN-OVER
IN? PRSO,WINNER \?ELS5
CALL TELL-NOTHING,STR?160,TRUE-VALUE
RSTACK
?ELS5: FSET? PRSO,TAKEBIT \?ELS7
CALL TELL-YOUD-BETTER,STR?161,TRUE-VALUE
RSTACK
?ELS7: PRINTR "Good luck!"
.FUNCT V-READ-INSIDE
CALL TELL-NOTHING,STR?162,TRUE-VALUE
RSTACK
.FUNCT PRE-REACH-IN
EQUAL? PRSO,NOT-HERE-OBJECT /FALSE
FSET? PRSO,CONTBIT /?CND1
CALL TELL-CANT-REACH,STR?163
RTRUE
?CND1: FSET? PRSO,OPENBIT /FALSE
CALL TELL-CLOSED,PRSO,FALSE-VALUE
RSTACK
.FUNCT V-REACH-IN
CALL PERFORM,V?LOOK-INSIDE,PRSO
RSTACK
.FUNCT TELL-CLOSED,ARG,STR?=1
PRINTI "The "
ZERO? STR? /?ELS5
PRINT ARG
JUMP ?CND3
?ELS5: CALL DPRINT,ARG
?CND3: PRINTR " is closed."
.FUNCT V-CLEAN
PRINTR "Cleanliness may be next to godliness, but there are limits."
.FUNCT V-TIME
IN? WATCH,WINNER /?THN6
IN? WATCH,HERE \?ELS5
?THN6: PRINTI "Your watch says it's "
CALL WATCH-TIME
PRINTR "."
?ELS5: CALL TELL-YOU-CANT,STR?164
RSTACK
.FUNCT V-WEIGH
FSET? PRSO,TAKEBIT \?ELS5
PRINTR "Tough to do without a scale."
?ELS5: PRINTR "Now that's bizarre!"
.FUNCT V-CHASTISE
EQUAL? PRSO,INTDIR \?ELS5
PRINTR "The best way to see what's happening there is to go there."
?ELS5: PRINTI "Please be more specific. LOOKing AT, BEHIND, UNDER, THROUGH, INSIDE, ON, DOWN, FOR, or any other method of LOOKing mean different things to me. Please specify which preposition you'd like to use next time, like LOOK AT "
FSET? PRSO,PERSON /?CND12
PRINTI "THE "
?CND12: CALL DPRINT,PRSO
PRINTI ", or LOOK INSIDE "
FSET? PRSO,PERSON /?CND19
PRINTI "THE "
?CND19: CALL DPRINT,PRSO
PRINTR "."
.FUNCT V-HELP
ZERO? PRSO /?CND1
EQUAL? PRSO,WINNER /?CND1
PRINTI "It seems that "
CALL THE?,PRSO
CALL DPRINT,PRSO
PRINTI " doesn't need any help."
CRLF
?CND1: PRINTI "I'm afraid you'll have to figure this out "
CALL DPRINT,GLOBAL-SELF
PRINTR "."
.FUNCT GET-COMFORTABLE,OBJ
FIRST? OBJ /?THN6
CALL WEARING-SOMETHING?
ZERO? STACK /?ELS5
?THN6: CALL TELL-NOT-COMFORTABLE
RSTACK
?ELS5: MOVE WINNER,OBJ
PRINTI "You get into the "
CALL DPRINT,OBJ
PRINTI " and try to get comfortable. "
CALL V-SLEEP
RSTACK
.FUNCT TELL-NOT-COMFORTABLE
PRINTR "That doesn't sound very comfortable."
.FUNCT V-SLEEP
EQUAL? HOW-TIRED,6 \?ELS5
GETP HERE,P?LINE
LESS? STACK,UNDERWATER-LINE-C \?ELS10
CALL SLEEP-LOSE
RSTACK
?ELS10: CALL JIGS-UP,STR?165
RSTACK
?ELS5: ZERO? PRSO /?ELS14
EQUAL? PRSO,BUNK,BED,ROOMS /?ELS14
CALL TELL-NOT-COMFORTABLE
RSTACK
?ELS14: IN? WINNER,BED /?THN19
IN? WINNER,BUNK \?ELS18
?THN19: EQUAL? HOW-TIRED,1 /?ELS25
IN? WINNER,BED \FALSE
CALL SLEEP-LOSE
RSTACK
?ELS25: PRINTR "You close your eyes, but your mind is too active to let you sleep."
?ELS18: IN? BED,HERE \?ELS36
CALL GET-COMFORTABLE,BED
RTRUE
?ELS36: IN? BUNK,HERE \?ELS38
CALL GET-COMFORTABLE,BUNK
RTRUE
?ELS38: ZERO? PRSO /?ELS40
CALL TELL-NOT-COMFORTABLE
RSTACK
?ELS40: LESS? HOW-TIRED,2 \?ELS43
CALL TELL-YOURE-NOT,STR?166
RSTACK
?ELS43: PRINTR "Better find a good place to lie down."
.FUNCT SLEEP-LOSE
PRINTI "You drift off to sleep.
You wake up. Once again, you find "
CALL DPRINT,GLOBAL-SELF
PRINTI " with the usual nothing to do. It seems as if you are destined to spend the rest of your days on this island, waiting for a break that may never come."
CRLF
CALL FINISH
RSTACK
.FUNCT PRE-WHAT
ZERO? PRSI /FALSE
EQUAL? PRSO,GLOBAL-DAY,GLOBAL-TIME /FALSE
EQUAL? PRSI,P-IT-OBJECT,IT /FALSE
PRINTI "I'm afraid that question is beyond me."
CRLF
RETURN 2
.FUNCT V-WHAT
EQUAL? WINNER,PLAYER \?THN6
ZERO? QCONTEXT /?ELS5
EQUAL? HERE,QCONTEXT-ROOM \?ELS5
CALL META-LOC,QCONTEXT
EQUAL? HERE,STACK \?ELS5
FSET? QCONTEXT,PERSON \?ELS5
?THN6: PRINTR """Isn't it obvious?"""
?ELS5: ZERO? PRSO \?ELS13
PRINTR "Huh?"
?ELS13: FSET? PRSO,PERSON \?ELS17
PRINTR "Try asking that person."
?ELS17: PRINTI "Are you talking to "
CALL DPRINT,GLOBAL-SELF
PRINTR " again?"
.FUNCT V-YES
CALL TELL-RATHER,STR?167
RSTACK
.FUNCT V-MAYBE
CALL TELL-RATHER,STR?168
RSTACK
.FUNCT V-NO
CALL TELL-RATHER,STR?169
RSTACK
.FUNCT TELL-RATHER,STR
PRINTI "You sound rather "
PRINT STR
PRINTR "."
.FUNCT V-SIT
FSET? PRSO,PERSON \?ELS5
CALL PERFORM,V?SIT-WITH,PRSO
RSTACK
?ELS5: CALL PERFORM,V?SIT-ON,PRSO
RSTACK
.FUNCT V-SIT-ON
FSET? PRSO,VEHBIT \?ELS5
CALL PERFORM,V?BOARD,PRSO
RTRUE
?ELS5: EQUAL? PRSO,GROUND,DECK \?ELS7
LOC WINNER
FSET? STACK,VEHBIT \?CND8
MOVE WINNER,HERE
?CND8: PRINTR "After a moment, you stand back up."