mirror of
https://github.com/historicalsource/shogun
synced 2024-04-25 21:59:24 +03:00
5035 lines
98 KiB
Plaintext
5035 lines
98 KiB
Plaintext
|
||
.SEGMENT "0"
|
||
|
||
|
||
.FUNCT YOULL-HAVE-TO:ANY:1:1,STR
|
||
PRINT YOU-HAVE-TO
|
||
PRINT STR
|
||
PRINTR " first!"
|
||
|
||
|
||
.FUNCT TO-A-PRSO?:ANY:0:0
|
||
ICALL1 HOW-DO-YOU
|
||
CALL1 A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT CANT-GO:ANY:0:0
|
||
PRINT YOU-CANT
|
||
PRINTR "go that way."
|
||
|
||
|
||
.FUNCT NOT-HOLDING:ANY:1:1,OBJ
|
||
ICALL2 THIS-IS-IT,OBJ
|
||
PRINT STR?61
|
||
PRINTI "holding "
|
||
ICALL2 THE-PRINT,OBJ
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT ITS-EMPTY:ANY:0:0
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTI " is empty"
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT ITS-ALREADY-X:ANY:1:1,X
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTI " is already "
|
||
PRINT X
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT ALREADY-OPEN:ANY:0:0
|
||
CALL2 ITS-ALREADY-X,STR?62
|
||
RSTACK
|
||
|
||
|
||
.FUNCT ALREADY-CLOSED:ANY:0:0
|
||
CALL2 ITS-ALREADY-X,STR?63
|
||
RSTACK
|
||
|
||
|
||
.FUNCT WITH-PRSI?:ANY:0:0
|
||
PRINTI "With "
|
||
CALL1 A-PRSI?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT TELL-OPEN-CLOSED:ANY:0:1,OBJ
|
||
ZERO? OBJ /?CCL3
|
||
ICALL2 CTHE-PRINT,OBJ
|
||
JUMP ?CND1
|
||
?CCL3: SET 'OBJ,PRSO
|
||
ICALL1 THE-PRINT-PRSO
|
||
?CND1: ICALL2 PRINT-IS/ARE,OBJ
|
||
PRINTC 32
|
||
CALL2 OPEN-CLOSED,OBJ
|
||
RSTACK
|
||
|
||
|
||
.FUNCT OPEN-CLOSED:ANY:1:1,OBJ
|
||
FSET? OBJ,OPENBIT \?CCL3
|
||
PRINTI "open"
|
||
JUMP ?CND1
|
||
?CCL3: PRINTI "closed"
|
||
?CND1: PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT THE-PRSO:ANY:0:0
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT A-PRSO:ANY:0:0
|
||
ICALL1 PRINTA-PRSO
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT A-PRSO?:ANY:0:0
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR "?"
|
||
|
||
|
||
.FUNCT THE-PRSI:ANY:0:0
|
||
ICALL1 THE-PRINT-PRSI
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT A-PRSI?:ANY:0:0
|
||
ICALL1 PRINTA-PRSI
|
||
PRINTR "?"
|
||
|
||
|
||
.FUNCT YOU-CANT-X-THAT:ANY:0:1,STR
|
||
PRINT YOU-CANT
|
||
ZERO? STR /?CCL3
|
||
PUSH STR
|
||
JUMP ?CND1
|
||
?CCL3: PUSH STR?64
|
||
?CND1: PRINT STACK
|
||
PRINTC 32
|
||
ZERO? STR /?CTR5
|
||
ZERO? PRSO /?CTR5
|
||
FSET? PRSO,PERSON /?CCL6
|
||
?CTR5: PRINTR "that!"
|
||
?CCL6: ICALL2 PRINT-HIM/HER,PRSO
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT YOU-CANT-X-PRSO:ANY:1:1,STR
|
||
PRINT YOU-CANT
|
||
PRINT STR
|
||
PRINTC 32
|
||
ZERO? PRSO /?CCL3
|
||
ICALL1 THE-PRINT-PRSO
|
||
JUMP ?CND1
|
||
?CCL3: PRINTI "that"
|
||
?CND1: PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT UNINTERESTED:ANY:1:1,OBJ
|
||
FSET? OBJ,DEAD \?CCL3
|
||
PRINT YOU-CANT
|
||
PRINT STR?65
|
||
CRLF
|
||
RTRUE
|
||
?CCL3: EQUAL? OBJ,ME \?CCL5
|
||
CALL1 TELL-YUKS
|
||
RSTACK
|
||
?CCL5: ICALL2 CTHE-PRINT,OBJ
|
||
ICALL2 PRINT-IS/ARE,OBJ
|
||
PRINTR " uninterested."
|
||
|
||
|
||
.FUNCT PLURAL?:ANY:1:1,OBJ
|
||
FSET? OBJ,PLURAL /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT CANT-REACH-THAT:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?66
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-VERBOSE:ANY:0:0
|
||
SET 'VERBOSITY,2
|
||
PRINTI "Verbose"
|
||
PRINT DESCRIPTIONS
|
||
PRINT PERIOD
|
||
CRLF
|
||
CALL1 V-LOOK
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-BRIEF:ANY:0:0
|
||
SET 'VERBOSITY,1
|
||
PRINTI "Brief"
|
||
PRINT DESCRIPTIONS
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SUPER-BRIEF:ANY:0:0
|
||
SET 'VERBOSITY,FALSE-VALUE
|
||
PRINTI "Super-brief"
|
||
PRINT DESCRIPTIONS
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-DIAGNOSE:ANY:0:0
|
||
FSET? MARIKO,RMUNGBIT \?CCL3
|
||
PRINTR "You are still in shock, your ears ringing, eyes hardly seeing, your face a mass of bruises and powder burns."
|
||
?CCL3: PRINTI "You are "
|
||
GETP BLACKTHORNE,P?HEALTH
|
||
GET HEALTH-TELL,STACK
|
||
PRINT STACK
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-INVENTORY:ANY:0:0
|
||
SUB 0,WEARBIT >D-BIT
|
||
CALL DESCRIBE-CONTENTS,WINNER,FALSE-VALUE,3
|
||
ZERO? STACK \?CND1
|
||
PRINTI "You are empty-handed."
|
||
?CND1: SET 'D-BIT,WEARBIT
|
||
ICALL DESCRIBE-CONTENTS,WINNER,FALSE-VALUE,3
|
||
SET 'D-BIT,FALSE-VALUE
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-QUIT:ANY:0:2,ASK?,SCORE?,SCOR
|
||
ASSIGNED? 'ASK? /?CND1
|
||
SET 'ASK?,TRUE-VALUE
|
||
?CND1: ASSIGNED? 'SCORE? /?CND3
|
||
SET 'SCORE?,TRUE-VALUE
|
||
?CND3: ZERO? SCORE? /?CND5
|
||
ICALL1 V-SCORE
|
||
?CND5: ZERO? ASK? /?PRD11
|
||
PRINT STR?74
|
||
PRINTI "leave the game"
|
||
CALL1 YES?
|
||
ZERO? STACK \?CTR8
|
||
?PRD11: ZERO? ASK? \?CCL9
|
||
?CTR8: QUIT
|
||
RTRUE
|
||
?CCL9: PRINT OKAY
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-CHOOSE:ANY:0:0
|
||
CALL2 ACCESSIBLE?,STRAW
|
||
ZERO? STACK /?CCL3
|
||
ICALL PERFORM,V?PICK,STRAW
|
||
RTRUE
|
||
?CCL3: PRINTR "There's nothing to draw here."
|
||
|
||
|
||
.FUNCT V-RESTART:ANY:0:0
|
||
ICALL2 V-SCORE,TRUE-VALUE
|
||
PRINT STR?74
|
||
PRINTI "restart"
|
||
CALL1 YES?
|
||
ZERO? STACK /FALSE
|
||
PRINTI "Restarting."
|
||
CRLF
|
||
RESTART
|
||
PRINT FAILED
|
||
RTRUE
|
||
|
||
|
||
.FUNCT FINISH:ANY:0:1,EOG?
|
||
ICALL1 UPDATE-STATUS-LINE
|
||
ICALL1 V-SCORE
|
||
ZERO? EOG? \?CND1
|
||
ICALL1 SETUP-TEXT-AND-STATUS
|
||
?CND1: CRLF
|
||
SET 'GAME-OVER?,TRUE-VALUE
|
||
ZERO? EOG? \?CTR4
|
||
GET 0,8
|
||
BTST STACK,16 /?CCL5
|
||
?CTR4: PUSH 4
|
||
JUMP ?CND3
|
||
?CCL5: PUSH 5
|
||
?CND3: PUT FINISH-MENU,0,STACK
|
||
CALL GET-FROM-MENU,STR?78,FINISH-MENU,FINISH-MENU-F
|
||
RSTACK
|
||
|
||
|
||
.FUNCT FINISH-MENU-F:ANY:2:2,WHICH,MENU
|
||
EQUAL? WHICH,1 \?CCL3
|
||
RESTORE
|
||
ZERO? STACK /?CCL6
|
||
PRINT OKAY
|
||
JUMP ?CND1
|
||
?CCL6: ICALL1 RESET-MARGIN
|
||
CLEAR S-TEXT
|
||
PRINT FAILED
|
||
JUMP ?CND1
|
||
?CCL3: EQUAL? WHICH,2 \?CCL8
|
||
RESTART
|
||
ICALL1 RESET-MARGIN
|
||
CLEAR S-TEXT
|
||
PRINT FAILED
|
||
JUMP ?CND1
|
||
?CCL8: EQUAL? WHICH,3 \?CCL10
|
||
ZERO? GAME-OVER? /?CCL13
|
||
QUIT
|
||
JUMP ?CND11
|
||
?CCL13: ICALL1 V-QUIT
|
||
?CND11: ICALL1 RESET-MARGIN
|
||
CLEAR S-TEXT
|
||
JUMP ?CND1
|
||
?CCL10: EQUAL? WHICH,4 \?CCL15
|
||
ICALL1 V-HINT
|
||
JUMP ?CND1
|
||
?CCL15: EQUAL? WHICH,5 \?CND1
|
||
ICALL1 V-UNDO
|
||
ICALL1 RESET-MARGIN
|
||
CLEAR S-TEXT
|
||
?CND1: ICALL1 TYPE-ANY-KEY
|
||
RFALSE
|
||
|
||
|
||
.FUNCT V-RESTORE:ANY:0:0
|
||
RESTORE
|
||
ZERO? STACK \TRUE
|
||
PRINT FAILED
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SAVE:ANY:0:0,X,LCNT,CRC
|
||
PUTB G-INBUF,2,0
|
||
EQUAL? MACHINE,APPLE-2E,APPLE-2C,APPLE-2GS \?CND1
|
||
WINGET S-TEXT,WCRCNT >CRC
|
||
ZERO? CRC /?CND1
|
||
WINGET S-TEXT,WLCNT >LCNT
|
||
?CND1: SAVE >X
|
||
SET 'RESTORED?,FALSE-VALUE
|
||
CALL2 QUEUED?,I-SETUP-ANSWER
|
||
ZERO? STACK /?CND5
|
||
ICALL1 I-SETUP-ANSWER
|
||
?CND5: EQUAL? X,0,1 \?CCL9
|
||
ZERO? CRC /?CND10
|
||
WINGET S-TEXT,WLCNT
|
||
SUB STACK,LCNT >LCNT
|
||
LESS? LCNT,0 /?CTR13
|
||
GRTR? LCNT,CRC \?CCL14
|
||
?CTR13: WINGET S-TEXT,WCRFUNC
|
||
EQUAL? STACK,RESET-MARGIN \?CCL19
|
||
ICALL1 RESET-MARGIN
|
||
JUMP ?CND10
|
||
?CCL19: ICALL1 RESET-MARGIN-1
|
||
JUMP ?CND10
|
||
?CCL14: SUB CRC,LCNT
|
||
WINPUT S-TEXT,WCRCNT,STACK
|
||
?CND10: ZERO? X \?CCL22
|
||
PRINT FAILED
|
||
RTRUE
|
||
?CCL22: EQUAL? X,1 \FALSE
|
||
PRINT OKAY
|
||
RTRUE
|
||
?CCL9: EQUAL? X,2,3 \FALSE
|
||
WINGET S-FULL,WHIGH
|
||
ZERO? STACK \?CND27
|
||
SET 'X,3
|
||
?CND27: SET 'RESTORED?,X
|
||
EQUAL? X,2 /?CCL31
|
||
PUSH 0
|
||
JUMP ?CND29
|
||
?CCL31: PUSH TRUE-VALUE
|
||
?CND29: ICALL2 REPAINT-DISPLAY,STACK
|
||
ICALL1 RESET-MARGIN
|
||
CRLF
|
||
CALL1 V-FIRST-LOOK
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-UNDO:ANY:0:0,VAL
|
||
GET 0,8
|
||
BTST STACK,16 /?CCL3
|
||
PRINTR "[UNDO not available.]"
|
||
?CCL3: IRESTORE >VAL
|
||
ZERO? VAL /?CCL5
|
||
CALL1 INIT-STATUS-LINE
|
||
RSTACK
|
||
?CCL5: RETURN FAILED
|
||
|
||
|
||
.FUNCT V-SCORE:ANY:0:1,ASK?,S
|
||
ASSIGNED? 'ASK? /?CND1
|
||
SET 'ASK?,TRUE-VALUE
|
||
?CND1: GET SCENE-LOCS,SCENE
|
||
GETPT STACK,P?SCORE >S
|
||
PRINTI "Your score is "
|
||
GETB S,0
|
||
MUL SCORE-FACTOR,STACK
|
||
PRINTN STACK
|
||
PRINTI " of a possible "
|
||
GETB S,1
|
||
MUL SCORE-FACTOR,STACK
|
||
PRINTN STACK
|
||
PRINTI " in this scene, and "
|
||
MUL SCORE-FACTOR,SCORE
|
||
PRINTN STACK
|
||
PRINTI " out of "
|
||
PRINTN 420
|
||
PRINTI " overall, in "
|
||
PRINTN MOVES
|
||
PRINTI " move"
|
||
EQUAL? MOVES,1 /?CND3
|
||
PRINTC 115
|
||
?CND3: MUL SCORE,SCORE-FACTOR
|
||
DIV STACK,42 >S
|
||
PRINTI ". You have now achieved a rank of "
|
||
ADD 1,S
|
||
GET RANKINGS,STACK
|
||
PRINT STACK
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SCRIPT:ANY:0:0
|
||
DIROUT D-PRINTER-ON
|
||
GET 0,8
|
||
BTST STACK,1 \FALSE
|
||
DIROUT D-SCREEN-OFF
|
||
CRLF
|
||
PRINTI "Start of a transcript of "
|
||
PRINT SHOGUN-NAME
|
||
PRINT PERIOD
|
||
ICALL1 V-VERSION
|
||
DIROUT D-SCREEN-ON
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-UNSCRIPT:ANY:0:0
|
||
GET 0,8
|
||
BTST STACK,1 \?CND1
|
||
DIROUT D-SCREEN-OFF
|
||
PRINTI "End of transcript"
|
||
PRINT PERIOD
|
||
DIROUT D-SCREEN-ON
|
||
?CND1: DIROUT D-PRINTER-OFF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-VERSION:ANY:0:1,C?,IDX
|
||
SET 'IDX,18
|
||
ZERO? C? /?CND1
|
||
MUL 3,FONT-Y
|
||
ADD 1,STACK
|
||
CURSET STACK,1
|
||
?CND1: HLIGHT H-BOLD
|
||
ZERO? C? /?CND3
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
?CND3: PRINT SHOGUN-NAME
|
||
ZERO? C? /?CND5
|
||
ICALL1 PRINT-CENTER-TABLE
|
||
?CND5: HLIGHT H-NORMAL
|
||
CRLF
|
||
ZERO? C? /?CND7
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
?CND7: PRINTI "A Story of Japan"
|
||
ZERO? C? /?CND9
|
||
ICALL1 PRINT-CENTER-TABLE
|
||
?CND9: CRLF
|
||
ZERO? C? /?CND11
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
?CND11: PRINTI "Copyright (c) 1988 by Infocom"
|
||
ZERO? C? /?CND13
|
||
ICALL1 PRINT-CENTER-TABLE
|
||
?CND13: CRLF
|
||
ZERO? C? /?CND15
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
?CND15: PRINTI "All rights reserved."
|
||
ZERO? C? /?CND17
|
||
ICALL1 PRINT-CENTER-TABLE
|
||
?CND17: CRLF
|
||
ZERO? C? /?CND19
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
?CND19: PRINT SHOGUN-NAME
|
||
PRINTI " is a trademark of James Clavell"
|
||
ZERO? C? /?CND21
|
||
ICALL1 PRINT-CENTER-TABLE
|
||
?CND21: CRLF
|
||
ZERO? C? /?CND23
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
?CND23: PRINTI "Original Literary Work Copyright 1975 by James Clavell"
|
||
ZERO? C? /?CND25
|
||
ICALL1 PRINT-CENTER-TABLE
|
||
?CND25: CRLF
|
||
ZERO? C? /?CND27
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
?CND27: PRINTI "Licensed by Noble House Trading Limited, London."
|
||
ZERO? C? /?CND29
|
||
ICALL1 PRINT-CENTER-TABLE
|
||
?CND29: CRLF
|
||
ZERO? C? /?CND31
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
?CND31: PRINTI "Release "
|
||
GET 0,1
|
||
PRINTN STACK
|
||
PICINF 0,YX-TBL \?CND33
|
||
GET YX-TBL,1
|
||
ZERO? STACK /?CND33
|
||
PRINTI " / Pix "
|
||
GET YX-TBL,1
|
||
PRINTN STACK
|
||
?CND33: PRINTI " / Serial number "
|
||
?PRG37: GETB 0,IDX
|
||
PRINTC STACK
|
||
IGRTR? 'IDX,23 \?PRG37
|
||
ZERO? C? /?CND41
|
||
ICALL1 PRINT-CENTER-TABLE
|
||
?CND41: CRLF
|
||
ZERO? C? /?CND43
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
?CND43: GET MACHINES,MACHINE
|
||
PRINT STACK
|
||
PRINTI " Interpreter version "
|
||
GETB 0,0
|
||
PRINTN STACK
|
||
PRINTC 46
|
||
GETB 0,31
|
||
PRINTN STACK
|
||
ZERO? C? /?CND45
|
||
ICALL1 PRINT-CENTER-TABLE
|
||
?CND45: CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT PCENTER:ANY:1:3,STR,STR1,STR2
|
||
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
PRINT STR
|
||
ZERO? STR1 /?CND1
|
||
PRINT STR1
|
||
?CND1: ZERO? STR2 /?CND3
|
||
PRINT STR2
|
||
?CND3: ICALL1 PRINT-CENTER-TABLE
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-CREDITS:ANY:0:0
|
||
HLIGHT H-BOLD
|
||
ICALL2 PCENTER,SHOGUN-NAME
|
||
HLIGHT H-NORMAL
|
||
ICALL2 PCENTER,STR?99
|
||
CRLF
|
||
ICALL2 PCENTER,STR?100
|
||
CRLF
|
||
ICALL2 PCENTER,STR?101
|
||
EQUAL? MACHINE,APPLE-2E,APPLE-2C,APPLE-2GS \?CCL3
|
||
ICALL2 PCENTER,STR?102
|
||
JUMP ?CND1
|
||
?CCL3: EQUAL? MACHINE,IBM \?CND1
|
||
ICALL2 PCENTER,STR?103
|
||
?CND1: CRLF
|
||
ICALL2 PCENTER,STR?104
|
||
ICALL2 PCENTER,STR?105
|
||
CRLF
|
||
ICALL2 PCENTER,STR?106
|
||
CRLF
|
||
ICALL2 PCENTER,STR?107
|
||
ICALL2 PCENTER,STR?108
|
||
ICALL2 PCENTER,STR?109
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-$VERIFY:ANY:0:0
|
||
EQUAL? PRSO,INTNUM \?CCL3
|
||
EQUAL? P-NUMBER,1564 \?CCL3
|
||
PRINTN SERIAL
|
||
CRLF
|
||
RTRUE
|
||
?CCL3: ZERO? PRSO /?CCL7
|
||
CALL1 DONT-UNDERSTAND
|
||
RSTACK
|
||
?CCL7: PRINTI "Verifying..."
|
||
CRLF
|
||
VERIFY \?CCL10
|
||
PRINTR "The disk is correct."
|
||
?CCL10: CRLF
|
||
PRINTR "** Disk Failure **"
|
||
|
||
|
||
.FUNCT V-WAKE:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
ICALL2 NEW-PRSO,ME
|
||
RTRUE
|
||
?CCL3: PRINT I-DONT-THINK-THAT
|
||
ICALL1 THE-PRINT-PRSO
|
||
ICALL2 PRINT-IS/ARE,PRSO
|
||
PRINTR " sleeping."
|
||
|
||
|
||
.FUNCT V-ANSWER:ANY:0:0
|
||
ZERO? OMI-QUESTION \?CTR2
|
||
ZERO? YABU-QUESTION \?CTR2
|
||
ZERO? QCONTEXT /?CCL3
|
||
CALL2 ACCESSIBLE?,QCONTEXT
|
||
ZERO? STACK /?CCL3
|
||
?CTR2: ZERO? OMI-QUESTION /?CCL11
|
||
ICALL2 CTHE-PRINT,OMI
|
||
JUMP ?CND9
|
||
?CCL11: ZERO? YABU-QUESTION /?CCL13
|
||
ICALL2 CTHE-PRINT,YABU
|
||
JUMP ?CND9
|
||
?CCL13: ICALL2 CTHE-PRINT,QCONTEXT
|
||
?CND9: PRINTR " seems to be expecting a more responsive answer."
|
||
?CCL3: PRINTI "Nobody is awaiting your answer."
|
||
CRLF
|
||
CALL1 END-QUOTE
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRE-ASK-ABOUT:ANY:0:0,P
|
||
ZERO? QCONTEXT /?CCL3
|
||
IN? QCONTEXT,HERE \?CCL3
|
||
EQUAL? PRSO,QCONTEXT /?CCL3
|
||
ZERO? PRSI \?CCL3
|
||
ICALL PERFORM,PRSA,QCONTEXT,PRSO
|
||
RTRUE
|
||
?CCL3: ZERO? PRSI \FALSE
|
||
CALL FIND-IN,HERE,PERSON >P
|
||
ZERO? P /FALSE
|
||
EQUAL? P,WINNER /FALSE
|
||
ICALL PERFORM-PRSA,P,PRSO
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-ASK-ABOUT:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
EQUAL? PRSO,ME \?CCL5
|
||
ICALL2 NEW-VERB,V?TELL
|
||
RTRUE
|
||
?CCL5: FSET? PRSO,PERSON \?CCL7
|
||
ICALL NEW-WINNER-PRSO,V?TELL-ME-ABOUT,PRSI
|
||
RTRUE
|
||
?CCL7: ICALL2 NEW-VERB,V?TELL
|
||
RTRUE
|
||
|
||
|
||
.FUNCT FIND-IN:ANY:2:3,WHERE,WHAT,WHAT-NOT,W,?PR-W
|
||
FIRST? WHERE >?PR-W \FALSE
|
||
?PRG6: FSET? ?PR-W,WHAT \?CND8
|
||
CALL2 VISIBLE?,?PR-W
|
||
ZERO? STACK /?CND8
|
||
EQUAL? WHAT,PERSON \?CCL13
|
||
EQUAL? ?PR-W,WINNER /?CND8
|
||
?CCL13: ZERO? WHAT-NOT \?PRD18
|
||
RETURN ?PR-W
|
||
?PRD18: FSET? ?PR-W,WHAT-NOT /?CND8
|
||
RETURN ?PR-W
|
||
?CND8: NEXT? ?PR-W >?PR-W /?PRG6
|
||
RFALSE
|
||
|
||
|
||
.FUNCT PRE-ASK-FOR:ANY:0:0
|
||
CALL1 PRE-ASK-ABOUT
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-ASK-FOR:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
EQUAL? PRSO,ME,PLAYER \?CCL5
|
||
ICALL PERFORM,V?TAKE,PRSI
|
||
RTRUE
|
||
?CCL5: FSET? PRSO,PERSON \?CCL7
|
||
ICALL NEW-WINNER-PRSO,V?GIVE,PRSI,ME
|
||
RTRUE
|
||
?CCL7: PRINTI "It's unlikely that "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " will oblige."
|
||
|
||
|
||
.FUNCT PRE-ATTACK:ANY:0:0,W
|
||
ZERO? PRSI \FALSE
|
||
CALL FIND-IN,WINNER,WEAPONBIT,WEARBIT >W
|
||
ZERO? W /FALSE
|
||
ICALL PERFORM,PRSA,PRSO,W
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-ATTACK:ANY:0:0
|
||
CALL2 IKILL,STR?110
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-HIT:ANY:0:0
|
||
CALL2 IKILL,STR?111
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-BITE:ANY:0:0
|
||
CALL2 HACK-HACK,STR?112
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRE-BOARD:ANY:0:0,AV,DIR
|
||
LOC WINNER >AV
|
||
EQUAL? PRSO,ROOMS /FALSE
|
||
FSET? PRSO,VEHBIT \?CCL5
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK /?CCL8
|
||
PRINT YOU-HAVE-TO
|
||
PRINTI "put "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " down first."
|
||
CRLF
|
||
RETURN M-FATAL
|
||
?CCL8: EQUAL? AV,PRSO \?CCL10
|
||
ICALL2 YOU-ARE-IN,AV
|
||
RETURN M-FATAL
|
||
?CCL10: FSET? AV,VEHBIT \FALSE
|
||
CALL HELD?,PRSO,AV
|
||
ZERO? STACK /FALSE
|
||
PRINT YOU-HAVE-TO
|
||
PRINTI "leave "
|
||
ICALL2 THE-PRINT,AV
|
||
PRINTI " first"
|
||
PRINT PERIOD
|
||
RETURN M-FATAL
|
||
?CCL5: IN? PRSO,ROOMS \?CCL16
|
||
CALL2 NEXT-ROOM?,PRSO >DIR
|
||
ZERO? DIR /?CCL16
|
||
ICALL2 DO-WALK,DIR
|
||
RTRUE
|
||
?CCL16: PRINT YOU-CANT
|
||
PRINTI "get "
|
||
FSET? PRSO,PERSON \?CCL21
|
||
PRINTI "onto "
|
||
JUMP ?CND19
|
||
?CCL21: PRINTI "into "
|
||
?CND19: ICALL1 THE-PRINT-PRSO
|
||
PRINTC 33
|
||
CRLF
|
||
RETURN M-FATAL
|
||
|
||
|
||
.FUNCT YOU-ARE-IN:ANY:1:1,AV
|
||
PRINT YOU-ARE
|
||
FSET? AV,SURFACEBIT \?CCL3
|
||
PUSH STR?113
|
||
JUMP ?CND1
|
||
?CCL3: PUSH STR?114
|
||
?CND1: PRINT STACK
|
||
ICALL2 THE-PRINT,AV
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT V-BOARD:ANY:0:0,AV
|
||
PRINT YOU-ARE-NOW
|
||
FSET? PRSO,SURFACEBIT \?CCL3
|
||
PRINTI "on "
|
||
JUMP ?CND1
|
||
?CCL3: PRINTI "in "
|
||
?CND1: ICALL1 THE-PRSO
|
||
MOVE WINNER,PRSO
|
||
GETP PRSO,P?ACTION
|
||
ICALL STACK,M-ENTER
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-BURN:ANY:0:0
|
||
ZERO? PRSI \?CCL3
|
||
PRINTR "Your gaze is insufficient."
|
||
?CCL3: CALL1 WITH-PRSI?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-CHASTISE:ANY:0:0
|
||
PRINTR "Use prepositions instead: LOOK AT the object, LOOK INSIDE it, LOOK UNDER it, etc."
|
||
|
||
|
||
.FUNCT V-CLIMB-DOWN:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
CALL2 DO-WALK,P?DOWN
|
||
RSTACK
|
||
?CCL3: PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-CLIMB-FOO:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
CALL2 DO-WALK,P?UP
|
||
RSTACK
|
||
?CCL3: PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-CLIMB-ON:ANY:0:0
|
||
FSET? PRSO,VEHBIT \?CCL3
|
||
FSET? PRSO,SURFACEBIT \?CCL3
|
||
ICALL2 NEW-VERB,V?BOARD
|
||
RTRUE
|
||
?CCL3: PRINT YOU-CANT
|
||
PRINTI "climb onto "
|
||
CALL1 A-PRSO
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-CLIMB-OVER:ANY:0:0
|
||
CALL1 YOU-CANT-X-THAT
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-CLIMB-UP:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
CALL2 DO-WALK,P?UP
|
||
RSTACK
|
||
?CCL3: PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-CLOSE:ANY:0:0
|
||
FSET? PRSO,OPENBIT /?CCL3
|
||
FSET? PRSO,OPENABLE \?CCL3
|
||
CALL1 ALREADY-CLOSED
|
||
RSTACK
|
||
?CCL3: FSET? PRSO,SURFACEBIT /?CTR6
|
||
FSET? PRSO,CONTBIT /?CCL7
|
||
FSET? PRSO,DOORBIT /?CCL7
|
||
?CTR6: PRINTI "There's no way to close "
|
||
CALL1 THE-PRSO
|
||
RSTACK
|
||
?CCL7: FSET? PRSO,PERSON \?CCL13
|
||
PRINTR "Huh?"
|
||
?CCL13: GETP PRSO,P?CAPACITY
|
||
ZERO? STACK /?CCL15
|
||
FSET? PRSO,OPENBIT \?CCL18
|
||
FCLEAR PRSO,OPENBIT
|
||
PRINTI "Closed"
|
||
CALL1 IN-DARK?
|
||
RSTACK
|
||
?CCL18: CALL1 ALREADY-CLOSED
|
||
RSTACK
|
||
?CCL15: FSET? PRSO,DOORBIT \?CCL20
|
||
CALL1 CLOSE-A-DOOR
|
||
RSTACK
|
||
?CCL20: CALL2 YOU-CANT-X-THAT,STR?115
|
||
RSTACK
|
||
|
||
|
||
.FUNCT CLOSE-A-DOOR:ANY:0:0
|
||
FSET? PRSO,OPENBIT \?CCL3
|
||
ICALL2 OKAY-THE-PRSO-IS-NOW,STR?63
|
||
FCLEAR PRSO,OPENBIT
|
||
RTRUE
|
||
?CCL3: CALL1 ALREADY-CLOSED
|
||
RSTACK
|
||
|
||
|
||
.FUNCT IN-DARK?:ANY:0:1,DIE?,OLIT
|
||
SET 'OLIT,LIT
|
||
CALL2 LIT?,HERE >LIT
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT OKAY-THE-PRSO-IS-NOW:ANY:1:1,STR
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTI " is now "
|
||
PRINT STR
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-COMPARE-MANY:ANY:0:0,?TMP1
|
||
GET P-PRSO,0
|
||
EQUAL? STACK,2 \?CCL3
|
||
SET 'P-MULT,FALSE-VALUE
|
||
GET P-PRSO,1 >?TMP1
|
||
GET P-PRSO,2
|
||
ICALL PERFORM,V?COMPARE,?TMP1,STACK
|
||
RETURN M-FATAL
|
||
?CCL3: PRINTR "You can only compare two things."
|
||
|
||
|
||
.FUNCT V-WASTE-OF-TIME:ANY:0:0
|
||
PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-COMPARE:ANY:0:0
|
||
PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-CROSS:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?116
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-CURSE:ANY:0:0
|
||
EQUAL? PRSO,FALSE-VALUE,ROOMS,YOU \?CCL3
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL3: FSET? PRSO,DUTCHBIT \?CCL7
|
||
PRINTD PRSO
|
||
PRINTR " makes an anatomically impossible suggestion."
|
||
?CCL7: PRINTR "Fortunately, your swearing is incomprehensible.Your manners are very bad, even for a barbarian."
|
||
|
||
|
||
.FUNCT V-CUT:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
ICALL2 NEW-VERB,V?KILL
|
||
RTRUE
|
||
?CCL3: ZERO? PRSI /?CTR4
|
||
FSET? PRSI,WEAPONBIT /?CCL5
|
||
?CTR4: ZERO? PRSI /?CTR9
|
||
CALL2 INTRINSIC?,PRSI
|
||
ZERO? STACK /?CCL10
|
||
?CTR9: PRINTI "Your body"
|
||
JUMP ?CND8
|
||
?CCL10: ICALL1 CTHE-PRINT-PRSI
|
||
?CND8: PRINTR " has an inadequate ""cutting edge."""
|
||
?CCL5: CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-DIG:ANY:0:0
|
||
ZERO? PRSI /?CCL3
|
||
FSET? PRSI,TOOLBIT \?CCL3
|
||
PRINTI "Digging with "
|
||
ICALL1 THE-PRINT-PRSI
|
||
PRINTR " would be slow, tiring, and tedious."
|
||
?CCL3: EQUAL? PRSO,GROUND \?CCL7
|
||
PRINTR "You don't have anything to dig with."
|
||
?CCL7: PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-DISEMBARK:ANY:0:0,AV
|
||
LOC WINNER >AV
|
||
ZERO? PRSO /?CTR2
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
?CTR2: ZERO? AV /?CCL8
|
||
FSET? AV,VEHBIT \?CCL8
|
||
ICALL2 NEW-PRSO,AV
|
||
RTRUE
|
||
?CCL8: PRINT STR?61
|
||
PRINTR "in anything."
|
||
?CCL3: IN? WINNER,PRSO /?CCL12
|
||
PRINTI "You aren't in "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL12: ZERO? AV /?CCL14
|
||
FSET? AV,VEHBIT \?CCL14
|
||
EQUAL? AV,PRSO /?CCL19
|
||
CALL HELD?,AV,PRSO
|
||
ZERO? STACK \?CCL19
|
||
ICALL2 YOU-ARE-IN,AV
|
||
RETURN M-FATAL
|
||
?CCL19: LOC PRSO
|
||
MOVE WINNER,STACK
|
||
ICALL1 B-STAND
|
||
PRINT YOU-ARE-NOW
|
||
PRINTR "on your feet."
|
||
?CCL14: IN? PRSO,ROOMS \?CCL23
|
||
ICALL2 DO-WALK,P?OUT
|
||
RTRUE
|
||
?CCL23: LOC PRSO
|
||
ZERO? STACK /?CCL25
|
||
ICALL2 NEW-VERB,V?TAKE
|
||
RTRUE
|
||
?CCL25: PRINT STR?117
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-DRINK:ANY:0:0,S
|
||
CALL2 YOU-CANT-X-THAT,STR?118
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-DRINK-FROM:ANY:0:0,X
|
||
CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRE-DROP:ANY:0:0
|
||
LOC WINNER
|
||
EQUAL? PRSO,STACK \FALSE
|
||
ICALL2 NEW-VERB,V?DISEMBARK
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-DROP:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
PRINT STR?61
|
||
PRINT STR?119
|
||
CRLF
|
||
RTRUE
|
||
?CCL3: CALL1 IDROP
|
||
ZERO? STACK /TRUE
|
||
PRINTR "Dropped."
|
||
|
||
|
||
.FUNCT V-EAT:ANY:0:0,H
|
||
FSET? PRSO,PERSON \?CCL3
|
||
PRINTR "Cannibalism is not the solution."
|
||
?CCL3: PRINTI "Much as you may miss meat, bread, and grog, there is little likelihood that "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR " will satisfy you."
|
||
|
||
|
||
.FUNCT V-ENTER:ANY:0:0
|
||
GETPT HERE,P?IN
|
||
ZERO? STACK /?CCL3
|
||
CALL2 DO-WALK,P?IN
|
||
RSTACK
|
||
?CCL3: CALL1 V-WALK-AROUND
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRE-EXAMINE:ANY:0:0,P
|
||
ZERO? LIT \?CCL3
|
||
PRINT TOO-DARK
|
||
RTRUE
|
||
?CCL3: EQUAL? HERE,MAZE /FALSE
|
||
EQUAL? HERE,SECRET-REDOUBT \?PRD8
|
||
EQUAL? PRSO,MARIKO /FALSE
|
||
?PRD8: EQUAL? HERE,CLIFF-PATH \?CCL5
|
||
EQUAL? PRSO,YABU,RODRIGUES \?CCL5
|
||
IN? PRSO,HERE \FALSE
|
||
?CCL5: GETP PRSO,P?PICTURE >P
|
||
ZERO? P /FALSE
|
||
ICALL2 MARGINAL-PIC,P
|
||
RFALSE
|
||
|
||
|
||
.FUNCT V-EXAMINE:ANY:0:0,H
|
||
EQUAL? PRSO,HERE \?CCL3
|
||
ICALL2 PERFORM,V?LOOK
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,READBIT \?CCL5
|
||
GETP PRSO,P?TEXT
|
||
ZERO? STACK /?CCL5
|
||
ICALL2 NEW-VERB,V?READ
|
||
RTRUE
|
||
?CCL5: FSET? PRSO,DOORBIT \?CCL9
|
||
CALL1 V-LOOK-INSIDE
|
||
RSTACK
|
||
?CCL9: FSET? PRSO,CONTBIT \?CCL11
|
||
FSET? PRSO,OPENBIT \?CCL14
|
||
CALL1 V-LOOK-INSIDE
|
||
RSTACK
|
||
?CCL14: ICALL2 THIS-IS-IT,PRSO
|
||
PRINT STR?120
|
||
RTRUE
|
||
?CCL11: FSET? PRSO,DEAD \?CCL16
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " is dead."
|
||
?CCL16: FSET? PRSO,ABSTRACTBIT \?CCL18
|
||
PRINTR "You can't see that from here!"
|
||
?CCL18: CALL1 PRSO-NOTHING-SPECIAL
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRSO-NOTHING-SPECIAL:ANY:0:0
|
||
PRINT STR?121
|
||
CALL1 THE-PRSO
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-EXIT:ANY:0:0
|
||
ZERO? PRSO /?CCL3
|
||
FSET? PRSO,VEHBIT \?CCL6
|
||
ICALL2 NEW-VERB,V?DISEMBARK
|
||
RTRUE
|
||
?CCL6: PRINT YOU-CANT
|
||
PRINTI "exit "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL3: LOC WINNER
|
||
FSET? STACK,VEHBIT \?CCL8
|
||
LOC WINNER
|
||
ICALL PERFORM,V?DISEMBARK,STACK
|
||
RTRUE
|
||
?CCL8: GETPT HERE,P?OUT
|
||
ZERO? STACK /?CCL10
|
||
CALL2 DO-WALK,P?OUT
|
||
RSTACK
|
||
?CCL10: CALL1 V-WALK-AROUND
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-FILL:ANY:0:0
|
||
ZERO? PRSI \?CCL3
|
||
PRINT THERES-NOTHING-TO
|
||
PRINTI "fill it with"
|
||
PRINT PERIOD
|
||
RTRUE
|
||
?CCL3: CALL1 TELL-YUKS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-FIND:ANY:0:1,WHERE,L
|
||
ZERO? PRSO \?CCL3
|
||
ICALL PERFORM,V?WHERE,ME
|
||
RTRUE
|
||
?CCL3: EQUAL? PRSO,PLAYER \?CCL5
|
||
PRINTI "As close as the hairs of your beard"
|
||
JUMP ?CND1
|
||
?CCL5: CALL2 INTRINSIC?,PRSO
|
||
ZERO? STACK /?CCL7
|
||
PRINTI "Nearby, I'm sure"
|
||
JUMP ?CND1
|
||
?CCL7: IN? PRSO,PLAYER \?CCL9
|
||
PRINTI "You have it"
|
||
JUMP ?CND1
|
||
?CCL9: IN? PRSO,HERE /?CTR10
|
||
EQUAL? PRSO,PSEUDO-OBJECT \?CCL11
|
||
?CTR10: PRINTI "Right in front of you"
|
||
JUMP ?CND1
|
||
?CCL11: IN? PRSO,LOCAL-GLOBALS /?CTR14
|
||
IN? PRSO,GLOBAL-OBJECTS \?CCL15
|
||
?CTR14: ICALL2 CPRINT-HE/SHE,PRSO
|
||
PRINTI " could be nearby"
|
||
JUMP ?CND1
|
||
?CCL15: LOC PRSO >L
|
||
ZERO? L /?CCL19
|
||
FSET? L,PERSON \?CCL22
|
||
CALL2 VISIBLE?,L
|
||
ZERO? STACK /?CCL22
|
||
PRINTI "I think "
|
||
ICALL2 THE-PRINT,L
|
||
PRINTI " has it"
|
||
JUMP ?CND1
|
||
?CCL22: CALL2 ACCESSIBLE?,PRSO
|
||
ZERO? STACK /?CCL26
|
||
PRINTI "It's in "
|
||
ICALL2 THE-PRINT,L
|
||
JUMP ?CND1
|
||
?CCL26: ZERO? WHERE /?CCL28
|
||
PRINTI "Beats me"
|
||
JUMP ?CND1
|
||
?CCL28: PRINT YOU-HAVE-TO
|
||
PRINTI "find "
|
||
ICALL2 PRINT-HIM/HER,PRSO
|
||
PRINTI " yourself"
|
||
JUMP ?CND1
|
||
?CCL19: PRINTI "You have no idea where to find "
|
||
ICALL1 THE-PRINT-PRSO
|
||
?CND1: PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-FOLLOW:ANY:0:0,TMP,LP,DIR
|
||
ZERO? PRSO \?CCL3
|
||
PRINT YOU-HAVE-TO
|
||
PRINTR " be more specific about whom you want to follow."
|
||
?CCL3: LOC PRSO >LP
|
||
ZERO? LP /?CCL5
|
||
IN? LP,ROOMS \?CCL5
|
||
CALL2 NEXT-ROOM?,LP >DIR
|
||
ZERO? DIR /?CCL5
|
||
CALL2 DO-WALK,DIR
|
||
RSTACK
|
||
?CCL5: IN? WINNER,LP \?CCL10
|
||
PRINT YOU-CANT
|
||
PRINTI "follow "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI ", because "
|
||
ICALL2 PRINT-HE/SHE,PRSO
|
||
ICALL2 PRINT-IS/ARE,PRSO
|
||
PRINTR " right here!"
|
||
?CCL10: IN? WINNER,HERE \?CCL13
|
||
IN? LP,HERE \?CCL13
|
||
FSET? LP,VEHBIT \?CCL13
|
||
ICALL PERFORM,V?BOARD,LP
|
||
RTRUE
|
||
?CCL13: PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT PRE-GIVE:ANY:0:0
|
||
EQUAL? WINNER,PLAYER \FALSE
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK \FALSE
|
||
FSET? PRSO,PERSON /FALSE
|
||
CALL2 YOULL-HAVE-TO,STR?122
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-GIVE:ANY:0:0
|
||
FSET? PRSI,PERSON \?CTR2
|
||
FSET? PRSO,PERSON \?CCL3
|
||
?CTR2: PRINT YOU-CANT
|
||
PRINTI "give "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTI " to "
|
||
ICALL1 PRINTA-PRSI
|
||
PRINTR "!"
|
||
?CCL3: CALL2 UNINTERESTED,PRSI
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-GOODBYE:ANY:0:0,OWINNER
|
||
ZERO? PRSO /?CCL3
|
||
FSET? PRSO,DEAD \?CCL6
|
||
PRINT YOU-CANT
|
||
PRINT STR?65
|
||
CRLF
|
||
RTRUE
|
||
?CCL6: FSET? PRSO,PERSON \?CCL8
|
||
ICALL2 NEW-WINNER-PRSO,PRSA
|
||
RTRUE
|
||
?CCL8: PRINT STR?123
|
||
PRINTI """Goodbye"" to "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR " are considered barbarians."
|
||
?CCL3: PRINTR "Leaving so soon?"
|
||
|
||
|
||
.FUNCT V-HELLO:ANY:0:0,OWINNER
|
||
ZERO? PRSO /?CCL3
|
||
FSET? PRSO,DEAD \?CCL6
|
||
PRINT YOU-CANT
|
||
PRINT STR?65
|
||
CRLF
|
||
RTRUE
|
||
?CCL6: FSET? PRSO,PERSON \?CCL8
|
||
ICALL2 NEW-WINNER-PRSO,PRSA
|
||
RTRUE
|
||
?CCL8: PRINT STR?123
|
||
PRINTI """Hello"" to "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR " are considered crazed."
|
||
?CCL3: CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINTR "In good spirits, aren't you?"
|
||
|
||
|
||
.FUNCT V-HELP:ANY:0:0
|
||
ZERO? PRSO /?CCL3
|
||
FSET? PRSO,PERSON \?CCL6
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINT STR?124
|
||
PRINTR "need help."
|
||
?CCL6: PRINTI "There doesn't seem to be any way to help "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL3: EQUAL? P-PRSA-WORD,W?HINT /?CCL8
|
||
PRINT YOU-HAVE-TO
|
||
PRINT STR?125
|
||
PRINTR "whom you want to help."
|
||
?CCL8: CALL1 V-HINT
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-HIDE:ANY:0:0
|
||
ZERO? PRSO \?CCL3
|
||
PRINTI "There's no place to hide here."
|
||
CRLF
|
||
RETURN M-FATAL
|
||
?CCL3: FSET? PRSO,PERSON \?CCL5
|
||
PRINTI "There doesn't seem any way to hide "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL5: ZERO? PRSI /?CCL7
|
||
FSET? PRSI,PERSON \?CCL7
|
||
CALL2 UNINTERESTED,PRSI
|
||
RSTACK
|
||
?CCL7: ZERO? PRSI \FALSE
|
||
PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-HIDE-BEHIND:ANY:0:1,STR
|
||
PRINTI "There doesn't seem to be enough room "
|
||
ZERO? STR /?CCL3
|
||
PRINT STR
|
||
JUMP ?CND1
|
||
?CCL3: PRINTI "behind"
|
||
?CND1: PRINTC 32
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-HIDE-UNDER:ANY:0:0
|
||
CALL2 V-HIDE-BEHIND,STR?126
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-HIDE-FROM:ANY:0:0
|
||
PRINT YOU-HAVE-TO
|
||
PRINTR "decide where."
|
||
|
||
|
||
.FUNCT V-KICK:ANY:0:0
|
||
FSET? PRSO,PERSON \?CTR2
|
||
FSET? PRSO,DEAD \?CCL3
|
||
?CTR2: PRINTI "Kicking "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR " seems a waste of time."
|
||
?CCL3: FSET? PRSO,FEMALE \?CCL7
|
||
PRINT STR?127
|
||
CRLF
|
||
RTRUE
|
||
?CCL7: PRINTR "A potentially dangerous course of action!"
|
||
|
||
|
||
.FUNCT V-KILL:ANY:0:0
|
||
CALL1 PAST-TENSE?
|
||
ZERO? STACK /?CCL3
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL3: CALL2 IKILL,STR?128
|
||
RSTACK
|
||
|
||
|
||
.FUNCT IKILL:ANY:1:1,STR
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
ZERO? OPPONENT /?CCL3
|
||
ICALL PERFORM,PRSA,OPPONENT
|
||
RTRUE
|
||
?CCL3: EQUAL? PRSO,FALSE-VALUE,ROOMS \?CCL7
|
||
PRINT THERES-NOTHING-TO
|
||
PRINT STR
|
||
PRINTR " here."
|
||
?CCL7: FSET? PRSO,DOORBIT \?CCL9
|
||
PRINTR "Pounding on a door is of little use."
|
||
?CCL9: FSET? PRSO,PERSON \?CTR10
|
||
FSET? PRSO,DEAD \?CCL11
|
||
?CTR10: PRINTI "Attacking "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR " seems a waste of time."
|
||
?CCL11: FSET? PRSO,FEMALE \?CCL15
|
||
PRINT STR?127
|
||
CRLF
|
||
RTRUE
|
||
?CCL15: EQUAL? PRSI,FALSE-VALUE,HANDS /?CTR16
|
||
FSET? PRSI,WEAPONBIT /?CCL17
|
||
?CTR16: CALL2 HELD?,SWORDS
|
||
ZERO? STACK /?CCL22
|
||
ICALL PERFORM,V?ATTACK,PRSO,SWORDS
|
||
RTRUE
|
||
?CCL22: PRINTI "Trying to "
|
||
PRINT STR
|
||
PRINTC 32
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " with "
|
||
EQUAL? PRSI,FALSE-VALUE,HANDS /?CCL25
|
||
ICALL1 PRINTA-PRSI
|
||
JUMP ?CND23
|
||
?CCL25: PRINTI "your bare hands"
|
||
?CND23: PRINTR " is suicidal."
|
||
?CCL17: IN? PRSI,WINNER /?CCL27
|
||
CALL2 NOT-HOLDING,PRSI
|
||
RSTACK
|
||
?CCL27: EQUAL? PRSI,PISTOL \?CCL29
|
||
ICALL PERFORM,V?SHOOT,PRSI,PRSO
|
||
RTRUE
|
||
?CCL29: EQUAL? PRSI,SWORDS \?CCL31
|
||
PRINTI "You swing your sword at "
|
||
ICALL1 THE-PRINT-PRSO
|
||
EQUAL? PRSO,GRAY-LEADER,GRAY-CAPTAIN,SECOND-GRAY /?CTR33
|
||
EQUAL? PRSO,GRAYS,BROWNS \?CCL34
|
||
?CTR33: PRINTR ", but he parries your attack with little difficulty."
|
||
?CCL34: PRINTI ", but "
|
||
ICALL2 PRINT-HE/SHE,PRSI
|
||
PRINTI " dodge"
|
||
ICALL2 PRINT-PLURAL,PRSI
|
||
PRINTR "."
|
||
?CCL31: CALL1 NOT-TRAINED
|
||
RSTACK
|
||
|
||
|
||
.FUNCT NOT-TRAINED:ANY:0:1,WHO
|
||
ASSIGNED? 'WHO /?CND1
|
||
SET 'WHO,PRSO
|
||
?CND1: PRINTI "Your lack of training prevents you from successfully hitting "
|
||
ICALL2 THE-PRINT,WHO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-KNOCK:ANY:0:0
|
||
FSET? PRSO,DOORBIT \?CCL3
|
||
FSET? BLACKTHORNE,SITTING \?CCL6
|
||
CALL2 YOULL-HAVE-TO,STR?129
|
||
RSTACK
|
||
?CCL6: PRINTR "Nobody's home."
|
||
?CCL3: PRINTI "Why knock on "
|
||
CALL1 A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-KISS:ANY:0:0
|
||
CALL2 CREWMAN?,PRSO
|
||
ZERO? STACK /?CCL3
|
||
PRINTR "You've heard that sort of tale about some of the crew, but you've never been tempted to find out the truth."
|
||
?CCL3: FSET? PRSO,PERSON \?CCL5
|
||
PRINTR "In Japan, kissing is not commonly practiced.It is considered somewhat unclean and barbaric."
|
||
?CCL5: CALL1 TELL-YUKS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-LAMP-OFF:ANY:0:0
|
||
CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-LAMP-ON:ANY:0:0
|
||
CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-LEAN-ON:ANY:0:0
|
||
PRINTR "Tired?"
|
||
|
||
|
||
.FUNCT V-LEAP:ANY:0:0
|
||
FSET? BLACKTHORNE,SITTING \?CCL3
|
||
CALL2 YOULL-HAVE-TO,STR?129
|
||
RSTACK
|
||
?CCL3: ZERO? PRSO /?CCL5
|
||
IN? PRSO,HERE \?CCL5
|
||
EQUAL? PRSO,OPPONENT \?CCL10
|
||
ICALL PERFORM,V?KICK,PRSO
|
||
RTRUE
|
||
?CCL10: CALL1 V-SKIP
|
||
RSTACK
|
||
?CCL5: ZERO? PRSO \?CCL12
|
||
ZERO? OPPONENT /?CCL12
|
||
ICALL2 PERFORM,V?DODGE
|
||
RTRUE
|
||
?CCL12: PRINTR "You jump a little ways, but then fall back to the ground."
|
||
|
||
|
||
.FUNCT V-LEAVE:ANY:0:0
|
||
EQUAL? P-PRSA-WORD,W?WALK \?CCL3
|
||
PRINTR "Please specify which way you want to walk.Use compass directions."
|
||
?CCL3: CALL2 DO-WALK,P?OUT
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-LISTEN:ANY:0:0
|
||
ZERO? PRSO /?CCL3
|
||
FSET? PRSO,PERSON \?CCL3
|
||
PRINTI "Right now, "
|
||
ICALL1 THE-PRINT-PRSO
|
||
ICALL2 PRINT-IS/ARE,PRSO
|
||
PRINTR "n't saying anything."
|
||
?CCL3: ZERO? PRSO /?CCL7
|
||
EQUAL? PRSO,NOISE /?CCL7
|
||
PRINTI "At the moment, "
|
||
ICALL1 THE-PRINT-PRSO
|
||
ICALL2 PRINT-IS/ARE,PRSO
|
||
PRINTR " quiet and peaceful."
|
||
?CCL7: PRINTR "You hear nothing unusual."
|
||
|
||
|
||
.FUNCT CANT-X-WITH-PRSI:ANY:1:1,STR
|
||
PRINTI "You can't "
|
||
PRINT STR
|
||
PRINTI " anything with "
|
||
ICALL1 PRINTA-PRSI
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-LOCK:ANY:0:0
|
||
EQUAL? PRSI,FALSE-VALUE,KEY /?CCL3
|
||
CALL2 CANT-X-WITH-PRSI,STR?130
|
||
RSTACK
|
||
?CCL3: FSET? PRSO,LOCKED \?CCL5
|
||
PRINT STR?131
|
||
CRLF
|
||
RTRUE
|
||
?CCL5: FSET? PRSO,LOCKABLE \?CCL7
|
||
IN? KEY,WINNER \?CCL10
|
||
FSET PRSO,LOCKED
|
||
PRINTR "Done."
|
||
?CCL10: PRINT STR?132
|
||
CRLF
|
||
RTRUE
|
||
?CCL7: CALL1 NO-LOCK
|
||
RSTACK
|
||
|
||
|
||
.FUNCT NO-LOCK:ANY:0:0
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " doesn't have a lock."
|
||
|
||
|
||
.FUNCT V-INTRODUCE:ANY:0:0,TMP
|
||
FSET? HERE,TOUCHBIT /FALSE
|
||
FSET? HERE,RMUNGBIT /?CCL3
|
||
GETPT HERE,P?SCENE >TMP
|
||
ZERO? TMP /FALSE
|
||
GETB TMP,0
|
||
EQUAL? SCENE,STACK \FALSE
|
||
?CCL3: GETP HERE,P?PICTURE >TMP
|
||
ZERO? TMP /?CND10
|
||
ICALL2 MARGINAL-PIC,TMP
|
||
?CND10: GETP HERE,P?FDESC >TMP
|
||
ZERO? TMP /TRUE
|
||
PRINT TMP
|
||
CRLF
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-AFTER:ANY:0:0,TMP,RM
|
||
ZERO? SCENE /FALSE
|
||
GET SCENE-LOCS,SCENE
|
||
GETP STACK,P?AFTER >TMP
|
||
ZERO? TMP /FALSE
|
||
CRLF
|
||
ICALL1 TYPE-ANY-KEY
|
||
CRLF
|
||
ICALL1 INTERLUDE-STATUS-LINE
|
||
ICALL1 TIME-PASSES
|
||
ICALL TMP
|
||
CALL1 TIME-PASSES
|
||
RSTACK
|
||
|
||
|
||
.FUNCT TIME-PASSES:ANY:0:0
|
||
CRLF
|
||
ICALL2 CENTER-PIC-X,P-TIME
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT NEXT-SCENE:ANY:0:0
|
||
ADD SCENE,1
|
||
CALL2 NEW-SCENE,STACK
|
||
RSTACK
|
||
|
||
|
||
.FUNCT FAILED-SCENE:ANY:0:0
|
||
CALL2 NEW-SCENE,FALSE-VALUE
|
||
RSTACK
|
||
|
||
|
||
.FUNCT NEW-SCENE:ANY:0:1,SC,S,SA,SP
|
||
ICALL1 UPDATE-STATUS-LINE
|
||
CRLF
|
||
PRINTC 91
|
||
GET SCENE-LOCS,SCENE
|
||
GETPT STACK,P?SCORE >S
|
||
GETB S,0 >SA
|
||
GETB S,1 >SP
|
||
ZERO? SC /?CCL3
|
||
PRINTI "Congratulations, you have finished this scene with a score of "
|
||
MUL SCORE-FACTOR,SA
|
||
PRINTN STACK
|
||
PRINTI " out of a possible "
|
||
MUL SCORE-FACTOR,SP
|
||
PRINTN STACK
|
||
JUMP ?CND1
|
||
?CCL3: PRINTI "Sorry, this scene is no longer winnable"
|
||
?CND1: PRINTI ".]"
|
||
CRLF
|
||
CRLF
|
||
ZERO? SC /?CCL6
|
||
ICALL1 V-AFTER
|
||
ICALL1 DEQUEUE-ALL
|
||
SET 'NEW-SCENE-NUMBER,SC
|
||
RETURN NEW-SCENE-NUMBER
|
||
?CCL6: CALL1 FINISH
|
||
RSTACK
|
||
|
||
|
||
.FUNCT I-NEW-SCENE:ANY:0:0,SC,?TMP1
|
||
ZERO? NEW-SCENE-NUMBER /FALSE
|
||
SET 'SC,NEW-SCENE-NUMBER
|
||
SET 'NEW-SCENE-NUMBER,0
|
||
CALL1 SCORE-HAVE >?TMP1
|
||
CALL1 SCORE-MAX
|
||
EQUAL? ?TMP1,STACK \?CCL6
|
||
PUSH CONTINUE-MENU
|
||
JUMP ?CND4
|
||
?CCL6: PUSH CONTINUE-AND-HINT-MENU
|
||
?CND4: ICALL GET-FROM-MENU,STR?78,STACK,CONTINUE-MENU-F
|
||
ICALL1 RESET-MARGIN
|
||
ICALL2 GOTO-SCENE,SC
|
||
RTRUE
|
||
|
||
|
||
.FUNCT SCORE-HAVE:ANY:0:0
|
||
GET SCENE-LOCS,SCENE
|
||
GETPT STACK,P?SCORE
|
||
GETB STACK,0
|
||
RSTACK
|
||
|
||
|
||
.FUNCT SCORE-MAX:ANY:0:0
|
||
GET SCENE-LOCS,SCENE
|
||
GETPT STACK,P?SCORE
|
||
GETB STACK,1
|
||
RSTACK
|
||
|
||
|
||
.FUNCT CONTINUE-MENU-F:ANY:2:2,WHICH,MENU
|
||
EQUAL? WHICH,1 /TRUE
|
||
EQUAL? WHICH,2 \?CCL5
|
||
ICALL1 V-SAVE
|
||
JUMP ?CND1
|
||
?CCL5: EQUAL? WHICH,3 \?CCL7
|
||
ICALL1 V-QUIT
|
||
JUMP ?CND1
|
||
?CCL7: EQUAL? WHICH,4 \?CND1
|
||
ICALL1 V-HINT
|
||
?CND1: ICALL1 TYPE-ANY-KEY
|
||
RFALSE
|
||
|
||
|
||
.FUNCT V-FIRST-LOOK:ANY:0:0
|
||
GRTR? VERBOSITY,1 /?PRD4
|
||
PUSH 0
|
||
JUMP ?PRD5
|
||
?PRD4: PUSH 1
|
||
?PRD5: CALL2 DESCRIBE-ROOM,STACK
|
||
ZERO? STACK /FALSE
|
||
ZERO? VERBOSITY /FALSE
|
||
CALL1 DESCRIBE-OBJECTS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-LOOK:ANY:0:0
|
||
CALL2 DESCRIBE-ROOM,TRUE-VALUE
|
||
ZERO? STACK /FALSE
|
||
CALL1 DESCRIBE-OBJECTS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-LOOK-BEHIND:ANY:0:0
|
||
EQUAL? PRSO,ME \?CCL3
|
||
PRINTI "You look back over your shoulder."
|
||
PRINT STR?133
|
||
PRINTR "there."
|
||
?CCL3: FSET? PRSO,OPENBIT /?CCL5
|
||
FSET? PRSO,SURFACEBIT /?CCL5
|
||
FSET? PRSO,CONTBIT /?CTR4
|
||
FSET? PRSO,DOORBIT \?CCL5
|
||
?CTR4: CALL2 INSPECTION-REVEALS,PRSO
|
||
RSTACK
|
||
?CCL5: PRINT THERE-IS-NOTHING
|
||
PRINTI "behind "
|
||
CALL1 THE-PRSO
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-LOOK-DOWN:ANY:0:0
|
||
ZERO? LIT \?CCL3
|
||
PRINT TOO-DARK
|
||
RTRUE
|
||
?CCL3: EQUAL? PRSO,FALSE-VALUE,ROOMS,LG-HOLE \?CCL5
|
||
CALL GLOBAL-IN?,LG-HOLE,HERE
|
||
ZERO? STACK /?CCL8
|
||
ICALL PERFORM,V?LOOK-INSIDE,LG-HOLE
|
||
RTRUE
|
||
?CCL8: ICALL PERFORM,V?EXAMINE,GROUND
|
||
RTRUE
|
||
?CCL5: CALL1 PRSO-NOTHING-SPECIAL
|
||
RSTACK
|
||
|
||
|
||
.FUNCT WHAT-CONTENTS:ANY:0:0
|
||
CALL2 DESCRIBE-CONTENTS,PRSO
|
||
ZERO? STACK \?CND1
|
||
PRINTI "nothing"
|
||
IN? PLAYER,PRSO \?CND1
|
||
PRINTI " (other than you)"
|
||
?CND1: PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-LOOK-INSIDE:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
CALL1 PRSO-NOTHING-SPECIAL
|
||
RSTACK
|
||
?CCL3: FSET? PRSO,DOORBIT \?CCL5
|
||
ICALL2 THIS-IS-IT,PRSO
|
||
PRINTI "All you can tell is that "
|
||
CALL1 TELL-OPEN-CLOSED
|
||
RSTACK
|
||
?CCL5: FSET? PRSO,CONTBIT \?CCL7
|
||
LOC WINNER
|
||
EQUAL? PRSO,STACK \?CCL10
|
||
MOVE PLAYER,ROOMS
|
||
PRINTI "Aside from you, there's "
|
||
ICALL1 WHAT-CONTENTS
|
||
MOVE PLAYER,PRSO
|
||
RTRUE
|
||
?CCL10: CALL2 SEE-INSIDE?,PRSO
|
||
ZERO? STACK /?CCL12
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTI " contains "
|
||
CALL1 WHAT-CONTENTS
|
||
RSTACK
|
||
?CCL12: FSET? PRSO,OPENBIT /?CCL14
|
||
FIRST? PRSO \?CCL14
|
||
ICALL2 NEW-VERB,V?OPEN
|
||
RTRUE
|
||
?CCL14: ICALL2 THIS-IS-IT,PRSO
|
||
PRINTI "It seems "
|
||
CALL1 TELL-OPEN-CLOSED
|
||
RSTACK
|
||
?CCL7: CALL2 YOU-CANT-X-PRSO,STR?134
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-LOOK-ON:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
CALL1 PRSO-NOTHING-SPECIAL
|
||
RSTACK
|
||
?CCL3: FSET? PRSO,SURFACEBIT /?CTR4
|
||
FSET? PRSO,FURNITURE \?CCL5
|
||
?CTR4: PRINTI "On "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " is "
|
||
CALL1 WHAT-CONTENTS
|
||
RSTACK
|
||
?CCL5: PRINTI "You don't see anything on "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-LOOK-UNDER:ANY:0:0
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK /?CCL3
|
||
PRINTR "You see your hand."
|
||
?CCL3: PRINT THERE-IS-NOTHING
|
||
PRINTR "there."
|
||
|
||
|
||
.FUNCT V-LOWER:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
ICALL2 PERFORM,V?SIT
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,TAKEBIT /?CCL5
|
||
CALL2 YOU-CANT-X-THAT,STR?135
|
||
RSTACK
|
||
?CCL5: CALL2 HACK-HACK,STR?136
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-MELT:ANY:0:0
|
||
CALL1 WITH-PRSI?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-MOVE:ANY:0:0
|
||
EQUAL? PRSO,FALSE-VALUE,ROOMS \?CCL3
|
||
PRINTR "What moves!"
|
||
?CCL3: CALL2 HELD?,PRSO
|
||
ZERO? STACK /?CCL5
|
||
FSET? PRSO,BODY-PART /?CCL5
|
||
PRINTI "You're holding "
|
||
ICALL2 PRINT-HIM/HER,PRSO
|
||
PRINTI ".Are you planning to juggle "
|
||
ICALL2 PRINT-HIM/HER,PRSO
|
||
PRINTR "?"
|
||
?CCL5: FSET? PRSO,TAKEBIT \?CCL9
|
||
CALL2 DEAD?,PRSO
|
||
ZERO? STACK /?CCL9
|
||
CALL1 V-TURN-OVER
|
||
RSTACK
|
||
?CCL9: FSET? PRSO,DOORBIT \?CCL13
|
||
ICALL PERFORM,V?OPEN,PRSO
|
||
RTRUE
|
||
?CCL13: CALL2 YOU-CANT-X-PRSO,STR?137
|
||
RSTACK
|
||
|
||
|
||
.FUNCT MOTION-VERB?:ANY:0:0
|
||
EQUAL? PRSA,V?WALK,V?WALK-TO,V?WALK-AROUND /TRUE
|
||
EQUAL? PRSA,V?ENTER,V?EXIT,V?DODGE /TRUE
|
||
EQUAL? PRSA,V?AVOID,V?LEAP,V?DIVE /TRUE
|
||
EQUAL? PRSA,V?DANCE,V?TURN-AROUND,V?HIDE /TRUE
|
||
EQUAL? PRSA,V?HIDE-BEHIND,V?HIDE-UNDER,V?MOVE /TRUE
|
||
EQUAL? PRSA,V?BOARD,V?CLIMB-DOWN,V?CLIMB-FOO /TRUE
|
||
EQUAL? PRSA,V?CLIMB-UP /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT HOSTILE-VERB?:ANY:0:0
|
||
EQUAL? PRSA,V?ATTACK,V?BITE,V?CUT /TRUE
|
||
EQUAL? PRSA,V?HIT,V?KICK,V?KILL /TRUE
|
||
EQUAL? PRSA,V?MOVE,V?MUNG,V?PISS /TRUE
|
||
EQUAL? PRSA,V?PUSH,V?PUSH-OUT,V?RUB /TRUE
|
||
EQUAL? PRSA,V?SHAKE,V?SHOOT,V?SPIT /TRUE
|
||
EQUAL? PRSA,V?SWING,V?THROW,V?TRIP /TRUE
|
||
EQUAL? PRSA,V?TAKE \?CCL11
|
||
EQUAL? P-PRSA-WORD,W?GRAB,W?TACKLE,W?LUNGE \?CCL11
|
||
FSET? PRSO,PERSON /TRUE
|
||
?CCL11: EQUAL? PRSA,V?FUCK \FALSE
|
||
FSET? PRSO,PERSON \FALSE
|
||
FSET? PERSON,FEMALE \TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT JAPANESE-VERB?:ANY:0:0
|
||
EQUAL? PRSA,V?DOMO,V?DOZO,V?GENKI-DESU /TRUE
|
||
EQUAL? PRSA,V?GOMEN-NASAI,V?HAI,V?ISOGI /TRUE
|
||
EQUAL? PRSA,V?IYE,V?KINJIRU,V?KONNICHI-WA /TRUE
|
||
EQUAL? PRSA,V?KONBANWA,V?MIZU,V?NIHON-GO-GA /TRUE
|
||
EQUAL? PRSA,V?TEKI,V?WAKARIMASU /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT ACT-CRAZY?:ANY:0:0
|
||
EQUAL? PRSA,V?YELL,V?YELL-AT,V?DANCE /TRUE
|
||
EQUAL? PRSA,V?SING,V?LAUGH,V?BABBLE /TRUE
|
||
EQUAL? PRSA,V?ACT \FALSE
|
||
EQUAL? PRSO,CRAZY /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT ABSTRACT-VERB?:ANY:0:0,?TMP1
|
||
CALL1 EVERYWHERE-VERB? >?TMP1
|
||
ZERO? ?TMP1 /?PRD3
|
||
RETURN ?TMP1
|
||
?PRD3: CALL1 PAST-TENSE?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PASSIVE-VERB?:ANY:0:0,?TMP1
|
||
CALL1 ABSTRACT-VERB? >?TMP1
|
||
ZERO? ?TMP1 /?PRD3
|
||
RETURN ?TMP1
|
||
?PRD3: EQUAL? PRSA,V?ASK-ABOUT,V?BOW,V?COMPARE /TRUE
|
||
EQUAL? PRSA,V?COUNT,V?CURSE,V?DIE /TRUE
|
||
EQUAL? PRSA,V?DISEMBARK,V?EXAMINE,V?HELLO /TRUE
|
||
EQUAL? PRSA,V?LAUGH,V?LISTEN,V?LOOK /TRUE
|
||
EQUAL? PRSA,V?LOOK-BEHIND,V?LOOK-DOWN,V?LOOK-INSIDE /TRUE
|
||
EQUAL? PRSA,V?LOOK-UNDER,V?POINT,V?READ /TRUE
|
||
EQUAL? PRSA,V?REPLY,V?SAY,V?SCARE /TRUE
|
||
EQUAL? PRSA,V?SHOW,V?SPEAK,V?TELL /TRUE
|
||
EQUAL? PRSA,V?TELL-ABOUT,V?THANK,V?THOU /TRUE
|
||
EQUAL? PRSA,V?WAIT,V?WAIT-FOR,V?WALK /TRUE
|
||
EQUAL? PRSA,V?WAVE-AT,V?YAWN,V?YELL /TRUE
|
||
EQUAL? PRSA,V?YELL-AT /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT V-MUNG:ANY:0:0
|
||
CALL2 HACK-HACK,STR?138
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRE-OPEN:ANY:0:0
|
||
CALL1 PAST-TENSE?
|
||
ZERO? STACK /?CCL3
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL3: ZERO? PRSI /FALSE
|
||
CALL2 HELD?,PRSI
|
||
ZERO? STACK \FALSE
|
||
CALL2 NOT-HOLDING,PRSI
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-OPEN:ANY:0:0,F,STR
|
||
FSET? PRSO,DOORBIT \?CND1
|
||
SET 'P-LAST-OPEN,PRSO
|
||
?CND1: FSET? PRSO,PERSON \?CCL5
|
||
PRINT YOU-CANT
|
||
PRINTR "open a person, at least not without making a mess."
|
||
?CCL5: FSET? PRSO,OPENBIT \?CCL7
|
||
FSET? PRSO,OPENABLE \?CCL10
|
||
CALL1 ALREADY-OPEN
|
||
RSTACK
|
||
?CCL10: PRINTR "It looks open from here."
|
||
?CCL7: FSET? PRSO,CONTBIT /?PRD14
|
||
FSET? PRSO,DOORBIT \?CTR11
|
||
?PRD14: FSET? PRSO,SURFACEBIT \?CCL12
|
||
?CTR11: IN? PRSO,ROOMS \?CCL19
|
||
PRINT YOU-HAVE-TO
|
||
PRINTR "specify a door to open."
|
||
?CCL19: CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
?CCL12: GETP PRSO,P?CAPACITY
|
||
ZERO? STACK /?CCL21
|
||
FSET? PRSO,OPENBIT /FALSE
|
||
FSET PRSO,OPENBIT
|
||
FSET PRSO,TOUCHBIT
|
||
FIRST? PRSO \?CTR26
|
||
FSET? PRSO,TRANSBIT \?CCL27
|
||
?CTR26: PRINTR "Opened."
|
||
?CCL27: FIRST? PRSO >F \?CCL31
|
||
NEXT? F /?CCL31
|
||
GETP F,P?FDESC >STR
|
||
ZERO? STR /?CCL31
|
||
ICALL2 OKAY-THE-PRSO-IS-NOW,STR?62
|
||
PRINT STR
|
||
CRLF
|
||
RTRUE
|
||
?CCL31: PRINTI "Opening "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " reveals "
|
||
CALL1 WHAT-CONTENTS
|
||
RSTACK
|
||
?CCL21: FSET? PRSO,OPENBIT \?CCL37
|
||
CALL1 ALREADY-OPEN
|
||
RSTACK
|
||
?CCL37: FSET? PRSO,LOCKED \?CCL39
|
||
PRINTR "It's locked."
|
||
?CCL39: FSET PRSO,OPENBIT
|
||
CALL2 OKAY-THE-PRSO-IS-NOW,STR?62
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-PICK:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?139
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-PLUG:ANY:0:0
|
||
CALL1 NO-EFFECT
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-POINT:ANY:0:0
|
||
EQUAL? SCENE,S-ANJIRO \?CCL3
|
||
IN? ONNA,HERE \?CCL3
|
||
EQUAL? PRSO,ONNA /?CCL3
|
||
ICALL PERFORM,V?SHOW,PRSO,ONNA
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,PERSON \?CCL8
|
||
PRINTR "It is considered impolite to point."
|
||
?CCL8: PRINTI "You are now pointing at "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-POUR-FROM:ANY:0:0
|
||
IN? PRSO,PRSI \?CCL3
|
||
ICALL PERFORM,V?POUR,PRSO
|
||
RTRUE
|
||
?CCL3: PRINTR "It's not in that!"
|
||
|
||
|
||
.FUNCT PRE-POUR:ANY:0:0
|
||
EQUAL? PRSO,PRSI \FALSE
|
||
CALL1 TELL-YUKS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-POUR:ANY:0:0
|
||
FSET? PRSO,CONTBIT \?CCL3
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK /?CCL3
|
||
CALL EMPTY-ALL,PRSO,PRSI
|
||
RSTACK
|
||
?CCL3: CALL2 YOU-CANT-X-THAT,STR?140
|
||
RSTACK
|
||
|
||
|
||
.FUNCT EMPTY-ALL:ANY:2:2,FROM,TO,F,N,R,1ST?,?PR-F,?PR-N
|
||
FIRST? FROM >?PR-F /?PRG4
|
||
?PRG4: ZERO? ?PR-F /?REP2
|
||
NEXT? ?PR-F >?PR-N /?BOGUS8
|
||
?BOGUS8: FSET? ?PR-F,TAKEBIT \?CND9
|
||
SET '1ST?,TRUE-VALUE
|
||
ICALL2 DPRINT,?PR-F
|
||
PRINTI ": "
|
||
ZERO? TO /?CCL13
|
||
CALL PERFORM,V?PUT,?PR-F,TO >R
|
||
JUMP ?CND11
|
||
?CCL13: CALL PERFORM,V?DROP,?PR-F >R
|
||
?CND11: EQUAL? R,M-FATAL /TRUE
|
||
?CND9: SET '?PR-F,?PR-N
|
||
JUMP ?PRG4
|
||
?REP2: ZERO? 1ST? \TRUE
|
||
ICALL2 CTHE-PRINT,FROM
|
||
PRINTR " is empty."
|
||
|
||
|
||
.FUNCT V-PUSH:ANY:0:0
|
||
CALL2 HACK-HACK,STR?141
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-PUSH-TO:ANY:0:0
|
||
EQUAL? PRSI,INTDIR \?CCL3
|
||
ICALL PERFORM,V?MOVE,PRSO
|
||
RTRUE
|
||
?CCL3: PRINT YOU-CANT
|
||
PRINTI "push "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " into "
|
||
ICALL1 THE-PRINT-PRSI
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT PRE-PUT:ANY:0:0,L
|
||
LOC PRSO >L
|
||
IN? PRSO,GLOBAL-OBJECTS /?CTR2
|
||
FSET? PRSO,TAKEBIT /?CCL3
|
||
?CTR2: PRINTR "Nice try."
|
||
?CCL3: EQUAL? PRSA,V?PUT \?CCL7
|
||
FSET? PRSO,WEAPONBIT \?CCL7
|
||
FSET? PRSI,PERSON \?CCL7
|
||
ICALL2 SWAP-VERB,V?ATTACK
|
||
RTRUE
|
||
?CCL7: IN? PRSO,PRSI \?CCL12
|
||
CALL TAKE-OUT-FIRST,PRSO,PRSI
|
||
RSTACK
|
||
?CCL12: IN? PRSI,PRSO \?CCL14
|
||
CALL TAKE-OUT-FIRST,PRSI,PRSO
|
||
RSTACK
|
||
?CCL14: FSET? L,PERSON /FALSE
|
||
FSET? L,CONTBIT \FALSE
|
||
FSET? L,OPENBIT /FALSE
|
||
CALL TAKE-OUT-FIRST,PRSO,L
|
||
RSTACK
|
||
|
||
|
||
.FUNCT TAKE-OUT-FIRST:ANY:2:2,OBJ,CONT
|
||
PRINTI "You should take "
|
||
ICALL2 THE-PRINT,OBJ
|
||
PRINTI " out of "
|
||
ICALL2 THE-PRINT,CONT
|
||
PRINTR " first."
|
||
|
||
|
||
.FUNCT V-PUT:ANY:0:0,W
|
||
FSET? PRSI,OPENBIT /?CCL3
|
||
FSET? PRSI,DOORBIT /?CCL3
|
||
FSET? PRSI,CONTBIT /?CCL3
|
||
FSET? PRSI,SURFACEBIT /?CCL3
|
||
FSET? PRSI,VEHBIT /?CCL3
|
||
ICALL1 YOU-CANT-X-THAT
|
||
RTRUE
|
||
?CCL3: FSET? PRSI,OPENBIT /?CCL10
|
||
FSET? PRSI,SURFACEBIT /?CCL10
|
||
CALL2 INSPECTION-REVEALS,PRSI
|
||
RSTACK
|
||
?CCL10: EQUAL? PRSI,PRSO \?CCL14
|
||
CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
?CCL14: IN? PRSO,PRSI \?CCL16
|
||
PRINTI "I think "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " is already in "
|
||
CALL1 THE-PRSI
|
||
RSTACK
|
||
?CCL16: FSET? PRSI,PERSON /?CTR17
|
||
LOC PRSI >W
|
||
FSET? W,PERSON \?CCL18
|
||
EQUAL? W,WINNER /?CCL18
|
||
?CTR17: ZERO? W \?CND23
|
||
SET 'W,PRSI
|
||
?CND23: PRINTI "Don't you think you should ask "
|
||
ICALL2 THE-PRINT,W
|
||
PRINTR " first?"
|
||
?CCL18: CALL1 PRSO-TOO-BIG?
|
||
ZERO? STACK /?CCL26
|
||
PRINT NO-ROOM
|
||
CRLF
|
||
RTRUE
|
||
?CCL26: CALL2 HELD?,PRSO
|
||
ZERO? STACK \?CCL28
|
||
CALL1 ITAKE
|
||
EQUAL? STACK,TRUE-VALUE \TRUE
|
||
?CCL28: FSET? PRSO,WEARBIT \?CCL32
|
||
CALL1 HAVE-TO-TAKE-OFF
|
||
RSTACK
|
||
?CCL32: FCLEAR PRSO,WEARBIT
|
||
MOVE PRSO,PRSI
|
||
FSET PRSO,TOUCHBIT
|
||
PRINTR "Done."
|
||
|
||
|
||
.FUNCT PRSO-TOO-BIG?:ANY:0:0,?TMP1,?TMP2,?TMP3
|
||
CALL2 WEIGHT,PRSI >?TMP3
|
||
CALL2 WEIGHT,PRSO
|
||
ADD ?TMP3,STACK >?TMP2
|
||
GETP PRSI,P?SIZE
|
||
SUB ?TMP2,STACK >?TMP1
|
||
GETP PRSI,P?CAPACITY
|
||
GRTR? ?TMP1,STACK /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT INSPECTION-REVEALS:ANY:1:1,OBJ
|
||
ICALL2 THIS-IS-IT,OBJ
|
||
PRINTI "Inspection reveals that "
|
||
ICALL2 THE-PRINT,OBJ
|
||
PRINTR " isn't open."
|
||
|
||
|
||
.FUNCT V-PUT-BEHIND:ANY:0:0
|
||
PRINT YOU-CANT
|
||
PRINTR "be sure what's behind there already."
|
||
|
||
|
||
.FUNCT V-PUT-ON:ANY:0:0
|
||
EQUAL? PRSI,ME \?CCL3
|
||
FSET? PRSO,WEARBIT \?CCL6
|
||
PRINTI "You already have "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " on."
|
||
?CCL6: ICALL PERFORM,V?WEAR,PRSO
|
||
RTRUE
|
||
?CCL3: EQUAL? PRSI,GROUND \?CCL8
|
||
ICALL PERFORM,V?DROP,PRSO
|
||
RTRUE
|
||
?CCL8: FSET? PRSI,SURFACEBIT \?CCL10
|
||
CALL1 V-PUT
|
||
RSTACK
|
||
?CCL10: FSET? PRSI,PERSON \?CCL12
|
||
FSET? PRSO,DEAD /?CCL12
|
||
FSET? PRSO,WEARABLE \?CCL17
|
||
PRINTI "Presumably, "
|
||
ICALL1 THE-PRINT-PRSI
|
||
PRINTI " would prefer to dress "
|
||
ICALL2 PRINT-HIM/HER,PRSO
|
||
PRINTR "self."
|
||
?CCL17: ICALL1 CTHE-PRINT-PRSI
|
||
PRINTR " doesn't look like a table to me."
|
||
?CCL12: CALL1 NO-GOOD-SURFACE
|
||
RSTACK
|
||
|
||
|
||
.FUNCT NO-GOOD-SURFACE:ANY:0:0
|
||
PRINTI "There's no good surface on "
|
||
CALL1 THE-PRSI
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-PUT-UNDER:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?142
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-RAISE:ANY:0:0,?TMP1
|
||
FSET? PRSO,PERSON \?CCL3
|
||
EQUAL? PRSO,WINNER,ME /?CCL3
|
||
ICALL PERFORM,V?TAKE,PRSO
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,TAKEBIT /?CCL7
|
||
PRINT YOU-CANT
|
||
PRINTR "raise that."
|
||
?CCL7: LOC PRSO
|
||
IN? STACK,WINNER /?CCL9
|
||
CALL2 WEIGHT,PRSO >?TMP1
|
||
CALL2 WEIGHT,WINNER
|
||
ADD ?TMP1,STACK
|
||
GRTR? STACK,LOAD-ALLOWED \?CCL9
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " is too heavy."
|
||
?CCL9: CALL2 HACK-HACK,STR?143
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-REACH-IN:ANY:0:0,OBJ
|
||
FSET? PRSO,CONTBIT \?CTR2
|
||
FSET? PRSO,PERSON \?CCL3
|
||
?CTR2: CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
?CCL3: FSET? PRSO,OPENBIT /?CCL7
|
||
PRINTR "It's not open."
|
||
?CCL7: FIRST? PRSO >OBJ \?CTR8
|
||
FSET? OBJ,INVISIBLE /?CTR8
|
||
FSET? OBJ,TAKEBIT /?CCL9
|
||
?CTR8: CALL1 ITS-EMPTY
|
||
RSTACK
|
||
?CCL9: PRINT STR?144
|
||
PRINTI "in "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT PRE-READ:ANY:0:0
|
||
ZERO? LIT \?CCL3
|
||
PRINT YOU-CANT
|
||
PRINTR "read in the dark."
|
||
?CCL3: ZERO? PRSI /FALSE
|
||
FSET? PRSI,TRANSBIT /FALSE
|
||
ICALL1 HOW-DO-YOU
|
||
CALL1 A-PRSI?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT HOW-DO-YOU:ANY:0:0
|
||
PRINTI "How do you do that with "
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-READ:ANY:0:0
|
||
FSET? PRSO,READBIT \?CCL3
|
||
GETP PRSO,P?TEXT
|
||
ZERO? STACK /?CCL3
|
||
GETP PRSO,P?TEXT
|
||
PRINT STACK
|
||
CRLF
|
||
RTRUE
|
||
?CCL3: CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-REPLY:ANY:0:0
|
||
ICALL1 END-QUOTE
|
||
EQUAL? PRSO,INTQUOTE \?CCL3
|
||
PRINTR "[Please answer without using quotes.]"
|
||
?CCL3: EQUAL? PRSO,QCONTEXT \?CCL5
|
||
ZERO? PRSI \?CCL8
|
||
ICALL2 PERFORM,V?ANSWER
|
||
RTRUE
|
||
?CCL8: ICALL PERFORM,V?REPLY,PRSI
|
||
RTRUE
|
||
?CCL5: ZERO? PRSI \?CCL10
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL10: PRINTR "You are ignored."
|
||
|
||
|
||
.FUNCT PRE-SRUB:ANY:0:0
|
||
ICALL2 SWAP-VERB,V?RUB
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SRUB:ANY:0:0
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-RUB:ANY:0:0,H
|
||
EQUAL? PRSO,AIR \?CCL3
|
||
PRINTI "It's "
|
||
FSET? HERE,OUTSIDE \?CCL6
|
||
PRINTR "cold."
|
||
?CCL6: PRINTR "warm."
|
||
?CCL3: CALL2 HACK-HACK,STR?145
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-SAY:ANY:0:0,V
|
||
EQUAL? PRSO,INTQUOTE \?CCL3
|
||
ZERO? OMI-QUESTION \?CTR2
|
||
ZERO? YABU-QUESTION \?CTR2
|
||
ZERO? RODRIGUES-QUESTION \?CTR2
|
||
ZERO? AFTERMATH-QUESTION /?CCL3
|
||
?CTR2: CALL2 HOW-TO-USE-TELL,PRSI
|
||
RSTACK
|
||
?CCL3: CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
EQUAL? PRSO,ENGLISH,PORTUGUESE,SPANISH /?CTR12
|
||
EQUAL? PRSO,DUTCH,LATIN,JAPANESE \?CCL13
|
||
?CTR12: ICALL PERFORM,V?SPEAK,PRSO,PRSI
|
||
RTRUE
|
||
?CCL13: ZERO? PRSI \FALSE
|
||
PRINTI "If you wish to speak to someone, you should say (for example) """
|
||
CALL FIND-IN,HERE,PERSON >V
|
||
ZERO? V /?CCL20
|
||
ICALL2 DPRINT,V
|
||
JUMP ?CND18
|
||
?CCL20: ICALL2 PRINTUNDER,STR?146
|
||
?CND18: PRINTI ", "
|
||
ICALL2 PRINTUNDER,STR?147
|
||
PRINTC 34
|
||
CRLF
|
||
CALL1 END-QUOTE
|
||
RSTACK
|
||
|
||
|
||
.FUNCT HOW-TO-USE-TELL:ANY:1:1,WHO
|
||
PRINTI "[The correct way to speak to others is to use their name followed by a comma, and then what you want to say to them.For example:
|
||
>"
|
||
ZERO? WHO /?CCL3
|
||
ICALL2 DPRINT,WHO
|
||
JUMP ?CND1
|
||
?CCL3: ZERO? QCONTEXT /?CCL5
|
||
IN? QCONTEXT,HERE \?CCL5
|
||
ICALL2 DPRINT,QCONTEXT
|
||
JUMP ?CND1
|
||
?CCL5: ICALL2 PRINTUNDER,STR?146
|
||
?CND1: PRINTI ", "
|
||
ICALL1 PRINT-INTQUOTE
|
||
PRINTI " ]"
|
||
CRLF
|
||
CALL1 END-QUOTE
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-SEARCH:ANY:0:0
|
||
ZERO? PRSI /?CCL3
|
||
FSET? PRSI,PERSON \?CCL3
|
||
ICALL PERFORM,V?FIND,PRSI
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,DEAD \?CCL7
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " can't object, being dead, but you find nothing interesting."
|
||
?CCL7: FSET? PRSO,PERSON \?CCL9
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTI " refuse"
|
||
ICALL2 PRINT-PLURAL,PRSO
|
||
PRINTR "."
|
||
?CCL9: CALL DESCRIBE-CONTENTS,PRSO,FALSE-VALUE,3
|
||
ZERO? STACK \FALSE
|
||
PRINT THERE-IS-NOTHING
|
||
PRINTI "there"
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SEND:ANY:0:0
|
||
CALL1 PAST-TENSE?
|
||
ZERO? STACK /?CCL3
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL3: FSET? PRSO,PERSON \?CCL7
|
||
ZERO? PRSI /?CCL7
|
||
FSET? PRSI,PERSON \?CCL7
|
||
ICALL1 DPRINT-PRSO
|
||
PRINTI " isn't interested in seeing "
|
||
ICALL1 DPRINT-PRSI
|
||
PRINTR "."
|
||
?CCL7: FSET? PRSO,PERSON \?CCL12
|
||
EQUAL? PRSI,FALSE-VALUE,INTDIR \?CCL12
|
||
ICALL1 DPRINT-PRSO
|
||
PRINT STR?148
|
||
CRLF
|
||
RTRUE
|
||
?CCL12: ZERO? PRSI /?CCL16
|
||
FSET? PRSI,PERSON \?CCL16
|
||
EQUAL? PRSO,INTDIR \?CCL16
|
||
ICALL1 DPRINT-PRSI
|
||
PRINT STR?148
|
||
CRLF
|
||
RTRUE
|
||
?CCL16: CALL1 TELL-YUKS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-SEND-UNDER:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " refuses."
|
||
?CCL3: PRINTI "Look again, you're giving orders to "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT PRE-SGIVE:ANY:0:0
|
||
ICALL2 SWAP-VERB,V?GIVE
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SGIVE:ANY:0:0
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SHAKE:ANY:0:0,X
|
||
EQUAL? PRSO,HEAD \?CCL3
|
||
ICALL2 PERFORM,V?NO
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,PERSON \?CCL5
|
||
PRINTR "Be real."
|
||
?CCL5: PRINTI "There's no point in shaking "
|
||
ICALL2 THAT/THEM,PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT THAT/THEM:ANY:1:1,OBJ
|
||
FSET? OBJ,PLURAL \?CCL3
|
||
PRINTI "them"
|
||
RTRUE
|
||
?CCL3: PRINTI "that"
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SHARPEN:ANY:0:0
|
||
PRINTI "You'll never sharpen anything with "
|
||
ICALL2 THAT/THEM,PRSI
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT V-SHOOT-WITH:ANY:0:0
|
||
ICALL PERFORM,V?SHOOT,PRSI,PRSO
|
||
RTRUE
|
||
|
||
|
||
.FUNCT PRE-SHOOT:ANY:0:0
|
||
EQUAL? PRSO,PISTOL \?CCL3
|
||
FSET? PISTOL,RMUNGBIT \?CCL3
|
||
PRINTR "You fire, but the pistol just goes ""click!""It isn't loaded!"
|
||
?CCL3: ZERO? PRSI \FALSE
|
||
EQUAL? PRSO,PISTOL \?CCL10
|
||
FSET PISTOL,RMUNGBIT
|
||
PRINTI "You fire "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " into the air, to little effect."
|
||
?CCL10: CALL2 HELD?,PISTOL
|
||
ZERO? STACK /?CCL12
|
||
ICALL PERFORM,V?SHOOT,PISTOL,PRSO
|
||
RTRUE
|
||
?CCL12: CALL2 HELD?,PRSO
|
||
ZERO? STACK /?CCL14
|
||
PRINTI "Few would consider "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR " to be an adequate firearm."
|
||
?CCL14: PRINTI "You don't have a weapon to shoot "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " with."
|
||
|
||
|
||
.FUNCT V-SHOOT:ANY:0:0
|
||
EQUAL? PRSO,PISTOL \?CCL3
|
||
EQUAL? PRSI,PISTOL \?CND4
|
||
PRINTR "A difficult maneuver, in fact an impossible one."
|
||
?CND4: EQUAL? PRSI,MARIKO,ETSU,CHIMMOKO /?PRD10
|
||
EQUAL? PRSI,ACHIKO,YABU,KIRITSUBO \?CTR7
|
||
?PRD10: FSET? PRSI,DEAD /?CTR7
|
||
CALL JIGS-UP?,J-SHOOT-FRIEND,STR?149
|
||
ZERO? STACK /TRUE
|
||
?CTR7: FSET PISTOL,RMUNGBIT
|
||
PRINTI "You fire the pistol at "
|
||
ICALL1 THE-PRINT-PRSI
|
||
FSET? PRSI,DEAD \?CCL16
|
||
PRINTI ", who was already dead."
|
||
CRLF
|
||
JUMP ?CND14
|
||
?CCL16: FSET? PRSI,PERSON \?CCL18
|
||
GETPT PRSI,P?OWNER
|
||
ZERO? STACK /?CND19
|
||
PUTP PRSI,P?OWNER,BLACKTHORNE
|
||
?CND19: PRINTI ", killing "
|
||
FSET? PRSI,PLURAL /?CCL23
|
||
FSET PRSI,DEAD
|
||
ICALL2 PRINT-HIM/HER,PRSI
|
||
JUMP ?CND21
|
||
?CCL23: PRINTI "one of them"
|
||
?CND21: PRINTI " instantly."
|
||
CRLF
|
||
JUMP ?CND14
|
||
?CCL18: EQUAL? PRSI,GROUND,WALL \?CCL25
|
||
PRINTI ", to no useful effect."
|
||
CRLF
|
||
JUMP ?CND14
|
||
?CCL25: PRINTI ", missing by a mile."
|
||
CRLF
|
||
?CND14: EQUAL? PRSI,MARIKO,ETSU,CHIMMOKO /?CTR27
|
||
EQUAL? PRSI,ACHIKO,YABU \TRUE
|
||
?CTR27: CRLF
|
||
CALL2 JIGS-UP,STR?150
|
||
RSTACK
|
||
?CCL3: PRINTR "If you had a weapon, you might be able to shoot it.Alas, you don't."
|
||
|
||
|
||
.FUNCT V-SHOW:ANY:0:0
|
||
FSET? PRSI,PERSON \?CCL3
|
||
CALL2 UNINTERESTED,PRSI
|
||
RSTACK
|
||
?CCL3: CALL1 TELL-YUKS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-SKIP:ANY:0:0
|
||
PRINTR "Anyone who saw you would be unfavorably impressed."
|
||
|
||
|
||
.FUNCT V-SLEEP:ANY:0:0
|
||
ZERO? OPPONENT /?CCL3
|
||
PRINTR "If you can sleep at a time like this, you have nerves of steel!"
|
||
?CCL3: PRINTR "You try to sleep, but you can't let yourself relax now."
|
||
|
||
|
||
.FUNCT LIKE-A-PRSO:ANY:1:1,V
|
||
ICALL2 CPRINT-HE/SHE,PRSO
|
||
PRINTC 32
|
||
PRINT V
|
||
PRINTI " just like "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-SMELL:ANY:0:0
|
||
ZERO? PRSO /?CCL3
|
||
CALL2 LIKE-A-PRSO,STR?151
|
||
RSTACK
|
||
?CCL3: LOC WINNER
|
||
FSET? STACK,VEHBIT \?CCL5
|
||
LOC WINNER
|
||
ICALL2 PERFORM-PRSA,STACK
|
||
RTRUE
|
||
?CCL5: PRINTR "There's no noticeable smell here."
|
||
|
||
|
||
.FUNCT PRE-SSHOW:ANY:0:0
|
||
ICALL2 SWAP-VERB,V?SHOW
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SSHOW:ANY:0:0
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SWING:ANY:0:0
|
||
ZERO? PRSI \?CCL3
|
||
PRINTR "Whoosh!"
|
||
?CCL3: ICALL PERFORM,V?HIT,PRSI,PRSO
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SWIM:ANY:0:0
|
||
CALL1 TELL-YUKS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-SWIM-TO:ANY:0:0
|
||
ICALL PERFORM,V?WALK-TO,PRSO
|
||
RTRUE
|
||
|
||
|
||
.FUNCT PRE-TAKE:ANY:0:0
|
||
IN? PRSO,WINNER \?CCL3
|
||
FSET? PRSO,WEARBIT /FALSE
|
||
?CCL3: IN? PRSO,WINNER \?CCL7
|
||
CALL NOUN-USED?,PRSO,W?WATER
|
||
ZERO? STACK \?CCL7
|
||
PRINT YOU-HAVE
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL7: LOC WINNER
|
||
FSET? STACK,VEHBIT /?CCL11
|
||
LOC PRSO
|
||
ZERO? STACK /?CCL11
|
||
LOC PRSO
|
||
FSET? STACK,CONTBIT \?CCL11
|
||
LOC PRSO
|
||
FSET? STACK,OPENBIT /?CCL11
|
||
ICALL1 CANT-REACH-THAT
|
||
RTRUE
|
||
?CCL11: ZERO? PRSI /?CCL17
|
||
EQUAL? PRSO,ME \?CCL20
|
||
ICALL PERFORM,V?DROP,PRSI
|
||
RTRUE
|
||
?CCL20: CALL HELD?,PRSO,PRSI
|
||
ZERO? STACK \?CTR21
|
||
GETP PRSO,P?OWNER
|
||
EQUAL? PRSI,STACK \?CCL22
|
||
?CTR21: SET 'PRSI,FALSE-VALUE
|
||
RFALSE
|
||
?CCL22: FSET? PRSI,PERSON \?CCL26
|
||
ICALL1 CTHE-PRINT-PRSI
|
||
PRINTI " doesn't seem to have "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL26: ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " isn't there."
|
||
?CCL17: LOC WINNER
|
||
EQUAL? PRSO,STACK \FALSE
|
||
PRINTI "You are "
|
||
FSET? PRSO,PERSON \?CCL31
|
||
PRINTI "being carried by"
|
||
JUMP ?CND29
|
||
?CCL31: FSET? PRSO,SURFACEBIT \?CCL33
|
||
PRINTI "on"
|
||
JUMP ?CND29
|
||
?CCL33: PRINTI "in"
|
||
?CND29: PRINTR " it!"
|
||
|
||
|
||
.FUNCT V-TAKE:ANY:0:0,SIZ
|
||
CALL1 ITAKE
|
||
EQUAL? STACK,TRUE-VALUE \FALSE
|
||
GETP PRSO,P?SIZE >SIZ
|
||
PRINTI "Taken"
|
||
LESS? SIZ,20 /?CND4
|
||
PRINTI ", but it's "
|
||
LESS? SIZ,100 /?CCL8
|
||
PRINTI "extremely"
|
||
JUMP ?CND6
|
||
?CCL8: LESS? SIZ,50 /?CND6
|
||
PRINTI "very"
|
||
?CND6: PRINTI " heavy"
|
||
?CND4: PRINTR "."
|
||
|
||
|
||
.FUNCT PUT-ON:ANY:1:2,OBJ,WHO
|
||
ASSIGNED? 'WHO /?CND1
|
||
SET 'WHO,WINNER
|
||
?CND1: MOVE OBJ,WHO
|
||
FSET OBJ,WEARBIT
|
||
RTRUE
|
||
|
||
|
||
.FUNCT TAKE-OFF:ANY:1:1,OBJ
|
||
MOVE OBJ,HERE
|
||
FCLEAR OBJ,WEARBIT
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-TAKE-OFF:ANY:0:0
|
||
FSET? PRSO,VEHBIT \?CCL3
|
||
ICALL2 NEW-VERB,V?DISEMBARK
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,WEARABLE \?CCL5
|
||
FSET? PRSO,WEARBIT \?CCL8
|
||
IN? PRSO,WINNER \?CCL8
|
||
FCLEAR PRSO,WEARBIT
|
||
PRINTI "You're no longer wearing "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINT PERIOD
|
||
RTRUE
|
||
?CCL8: PRINT STR?61
|
||
PRINTR "wearing it."
|
||
?CCL5: ICALL2 NEW-VERB,V?TAKE
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-HOLD:ANY:0:0,O
|
||
FSET? PRSO,BODY-PART \?CCL3
|
||
CALL2 GET-OWNER,PRSO >O
|
||
EQUAL? O,ME,BLACKTHORNE,FALSE-VALUE /?CCL6
|
||
PRINTR "It seems unavailable at the moment."
|
||
?CCL6: EQUAL? PRSO,HEAD \?CCL8
|
||
PRINTR "Do you have a headache?"
|
||
?CCL8: PRINTI "You hold your "
|
||
ICALL1 DPRINT-PRSO
|
||
PRINTR " as best you can."
|
||
?CCL3: CALL2 HELD?,PRSO
|
||
ZERO? STACK /?CCL10
|
||
IN? PRSO,WINNER \?CCL13
|
||
FSET? PRSO,WEARBIT \?CCL16
|
||
FSET? PRSO,WEAPONBIT \?CCL16
|
||
FCLEAR PRSO,WEARBIT
|
||
PRINTI "You take "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " and prepare to use "
|
||
ICALL2 PRINT-HIM/HER,PRSO
|
||
PRINTR "."
|
||
?CCL16: PRINTI "You hold "
|
||
ICALL2 PRINT-HIM/HER,PRSO
|
||
PRINTR " tightly."
|
||
?CCL13: PRINTI "You take "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " out of "
|
||
LOC PRSO
|
||
ICALL2 THE-PRINT,STACK
|
||
PRINTI " and hold "
|
||
ICALL2 PRINT-HIM/HER,PRSO
|
||
PRINTC 46
|
||
CRLF
|
||
MOVE PRSO,WINNER
|
||
RTRUE
|
||
?CCL10: PRINTI "You don't have "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-TELL:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
FSET? PRSO,DEAD \?CCL6
|
||
EQUAL? PRSO,MARIKO /?CCL6
|
||
PRINT YOU-CANT
|
||
PRINT STR?65
|
||
CRLF
|
||
ICALL1 END-QUOTE
|
||
RETURN M-FATAL
|
||
?CCL6: ZERO? P-CONT /?CCL10
|
||
SET 'WINNER,PRSO
|
||
RTRUE
|
||
?CCL10: ICALL1 CTHE-PRINT-PRSO
|
||
PRINTI " wait"
|
||
FSET? PRSO,PLURAL /?CND11
|
||
PRINTC 115
|
||
?CND11: PRINTI " for you to say something."
|
||
CRLF
|
||
ICALL1 END-QUOTE
|
||
RETURN M-FATAL
|
||
?CCL3: ICALL2 YOU-CANT-X-PRSO,STR?152
|
||
ICALL1 END-QUOTE
|
||
RETURN M-FATAL
|
||
|
||
|
||
.FUNCT V-THANK:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
ZERO? PRSO /?CTR4
|
||
EQUAL? PRSO,YOU,ME \?CCL5
|
||
?CTR4: FSET? JAPANESE,SCOREBIT \?CCL10
|
||
PRINTR "You're welcome."
|
||
?CCL10: PRINTR "Domo."
|
||
?CCL5: FSET? PRSO,PERSON \?CCL12
|
||
FSET? PRSO,DEAD \?CCL15
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " is beyond all politeness now."
|
||
?CCL15: EQUAL? PRSO,RODRIGUES \?CCL17
|
||
PRINTR """You're welcome, Ingeles."""
|
||
?CCL17: EQUAL? PRSO,SEBASTIO,OPPONENT \?CCL19
|
||
PRINTR "He ignores your politeness."
|
||
?CCL19: FSET? PRSO,JAPANESEBIT /?CCL21
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " is surprised by your politeness."
|
||
?CCL21: FSET? PRSO,PLURAL \?CCL24
|
||
ICALL1 CPRINTA-PRSO
|
||
JUMP ?CND22
|
||
?CCL24: ICALL1 CTHE-PRINT-PRSO
|
||
?CND22: PRINTI " bows and responds """
|
||
ICALL2 PRINTUNDER,STR?153
|
||
PRINTR """"
|
||
?CCL12: CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-DOMO:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINTR "How very kind!"
|
||
|
||
|
||
.FUNCT V-DOZO:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINTR "There is no response."
|
||
|
||
|
||
.FUNCT PRE-THROUGH:ANY:0:0
|
||
EQUAL? PRSO,ROOMS /FALSE
|
||
IN? PRSO,ROOMS /FALSE
|
||
CALL2 ACCESSIBLE?,PRSO
|
||
ZERO? STACK \FALSE
|
||
PRINTI "You can't see any "
|
||
ICALL1 DPRINT-PRSO
|
||
PRINTR " here."
|
||
|
||
|
||
.FUNCT V-THROUGH:ANY:0:0,M
|
||
IN? PRSO,ROOMS \?CCL3
|
||
ICALL PERFORM,V?WALK-TO,PRSO
|
||
RTRUE
|
||
?CCL3: EQUAL? PRSO,ROOMS \?CCL5
|
||
CALL2 DO-WALK,P?IN
|
||
RSTACK
|
||
?CCL5: FSET? PRSO,VEHBIT \?CCL7
|
||
ICALL2 NEW-VERB,V?BOARD
|
||
RTRUE
|
||
?CCL7: FSET? PRSO,DOORBIT \?CCL9
|
||
CALL2 FIND-DOOR,PRSO >M
|
||
ZERO? M /?CCL12
|
||
CALL2 DO-WALK,M
|
||
RSTACK
|
||
?CCL12: PRINT YOU-HAVE-TO
|
||
PRINT STR?125
|
||
PRINTR "the direction you are going."
|
||
?CCL9: FSET? PRSO,PERSON \?CCL14
|
||
PRINT GOOD-TRICK
|
||
RTRUE
|
||
?CCL14: FSET? PRSO,TAKEBIT /?CCL16
|
||
PRINTI "You hit your head against "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " as you attempt this feat."
|
||
?CCL16: IN? PRSO,WINNER \?CCL18
|
||
PRINTR "That would involve quite a contortion!"
|
||
?CCL18: CALL1 TELL-YUKS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT FIND-DOOR:ANY:1:1,DOOR,DIR,PT,PTS,?PR-DIR,?PR-PT
|
||
SET '?PR-DIR,65
|
||
?PRG1: DLESS? '?PR-DIR,LOW-DIRECTION /TRUE
|
||
GETPT HERE,?PR-DIR >?PR-PT
|
||
ZERO? ?PR-PT /?PRG1
|
||
PTSIZE ?PR-PT
|
||
EQUAL? STACK,DEXIT \?PRG1
|
||
GET ?PR-PT,DEXITOBJ
|
||
EQUAL? STACK,DOOR \?PRG1
|
||
RETURN ?PR-DIR
|
||
|
||
|
||
.FUNCT PRE-THROW:ANY:0:0
|
||
EQUAL? PRSO,ANCHOR,ERASMUS-ANCHOR,MARIKO /FALSE
|
||
EQUAL? PRSO,SAFETY-LINE,OAR,LIFE-RING /FALSE
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK \?CCL7
|
||
PRINTI "You're not carrying "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL7: EQUAL? PRSO,LARGE-KNIFE,SMALL-KNIFE /FALSE
|
||
FSET? PRSO,WEARBIT \FALSE
|
||
CALL2 YOULL-HAVE-TO,STR?154
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-THROW:ANY:0:0
|
||
ZERO? PRSI /?CCL3
|
||
FSET? PRSI,PERSON \?CCL3
|
||
IN? PRSO,WINNER \?CCL8
|
||
CALL1 IDROP
|
||
ZERO? STACK /FALSE
|
||
CALL2 NOT-TRAINED,PRSI
|
||
RSTACK
|
||
?CCL8: ICALL2 SWAP-VERB,V?HIT
|
||
RTRUE
|
||
?CCL3: ZERO? PRSI /?CCL13
|
||
EQUAL? PRSI,PSEUDO-OBJECT /?CCL13
|
||
FSET? PRSO,WEAPONBIT \?CCL13
|
||
ICALL2 SWAP-VERB,V?HIT
|
||
RTRUE
|
||
?CCL13: ZERO? PRSI /?CCL18
|
||
FSET? PRSI,DOORBIT /?CCL18
|
||
FSET? PRSI,CONTBIT \?CCL18
|
||
GETP PRSI,P?CAPACITY
|
||
ZERO? STACK /?CCL18
|
||
ICALL2 NEW-VERB,V?PUT
|
||
RTRUE
|
||
?CCL18: CALL1 IDROP
|
||
ZERO? STACK /FALSE
|
||
PRINTR "Thrown."
|
||
|
||
|
||
.FUNCT V-THROW-OFF:ANY:0:0
|
||
CALL GLOBAL-IN?,LG-SEA,HERE
|
||
ZERO? STACK /?CCL3
|
||
REMOVE PRSO
|
||
PRINTI "Splash! "
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " is gone for good now!"
|
||
?CCL3: CALL2 YOU-CANT-X-THAT,STR?155
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-TIE:ANY:0:0
|
||
ZERO? PRSI \?CCL3
|
||
EQUAL? PRSO,YABU-KIMONO /?CCL3
|
||
CALL2 HELD?,YABU-KIMONO
|
||
ZERO? STACK /?CCL3
|
||
ICALL PERFORM,V?TIE,PRSO,YABU-KIMONO
|
||
RTRUE
|
||
?CCL3: EQUAL? PRSO,MURA-ROPE \?CCL8
|
||
PRINTR "You can't get it away from Mura."
|
||
?CCL8: CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-TIE-UP:ANY:0:0
|
||
CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-TIME:ANY:0:0,X
|
||
PRINTR "You have no easy way to tell time."
|
||
|
||
|
||
.FUNCT V-TORTURE:ANY:0:0
|
||
PRINTR "An appalling idea!"
|
||
|
||
|
||
.FUNCT NO-EFFECT:ANY:0:0
|
||
PRINTR "This has no effect."
|
||
|
||
|
||
.FUNCT V-TURN:ANY:0:0
|
||
EQUAL? PRSO,INTDIR \?CCL3
|
||
EQUAL? SCENE,S-ERASMUS,S-VOYAGE \?CCL3
|
||
PRINTR "You must be on the bridge to steer!"
|
||
?CCL3: ZERO? PRSI \?CCL7
|
||
EQUAL? PRSO,FORESAILS \?CCL7
|
||
ICALL PERFORM,V?RAISE,PRSO
|
||
RTRUE
|
||
?CCL7: CALL1 NO-EFFECT
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-TURN-OVER:ANY:0:0
|
||
PRINTI "Moving "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " reveals nothing."
|
||
|
||
|
||
.FUNCT V-TURN-AROUND:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
ICALL PERFORM,V?LOOK-BEHIND,ME
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,PERSON \?CCL5
|
||
PRINTI "I wouldn't do that, "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " might get dizzy."
|
||
?CCL5: FSET? PRSO,TAKEBIT /?CCL7
|
||
PRINT YOU-CANT
|
||
PRINTI "turn "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " around."
|
||
?CCL7: PRINTI "Turning "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " around gives you a new perspective on it, but reveals no new information."
|
||
|
||
|
||
.FUNCT V-UNLOCK:ANY:0:0
|
||
CALL1 PAST-TENSE?
|
||
ZERO? STACK /?CCL3
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL3: EQUAL? PRSI,FALSE-VALUE,KEY /?CCL7
|
||
CALL2 CANT-X-WITH-PRSI,STR?156
|
||
RSTACK
|
||
?CCL7: FSET? PRSO,LOCKABLE \?CCL9
|
||
FSET? PRSO,LOCKED /?CCL12
|
||
PRINT STR?131
|
||
CRLF
|
||
RTRUE
|
||
?CCL12: IN? KEY,WINNER \?CCL14
|
||
FCLEAR PRSO,LOCKED
|
||
PRINTR "Done."
|
||
?CCL14: PRINT STR?132
|
||
CRLF
|
||
RTRUE
|
||
?CCL9: CALL1 NO-LOCK
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-UNTIE:ANY:0:0
|
||
CALL1 TO-A-PRSO?
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-WALK:ANY:0:0,PT,PTS,STR,OBJ,RM
|
||
ZERO? QCONTEXT /?CCL3
|
||
CALL1 PAST-TENSE?
|
||
ZERO? STACK /?CCL3
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL3: CALL1 PAST-TENSE?
|
||
ZERO? STACK /?CCL8
|
||
PRINTR "An interesting fact, indeed."
|
||
?CCL8: ZERO? P-WALK-DIR \?CCL10
|
||
ICALL2 NEW-VERB,V?WALK-TO
|
||
RTRUE
|
||
?CCL10: FSET? BLACKTHORNE,SITTING \?CCL12
|
||
CALL2 YOULL-HAVE-TO,STR?129
|
||
RSTACK
|
||
?CCL12: GETPT HERE,PRSO >PT
|
||
ZERO? PT /?CCL14
|
||
PTSIZE PT >PTS
|
||
EQUAL? PTS,NEXIT \?CCL17
|
||
GET PT,NEXITSTR
|
||
PRINT STACK
|
||
CRLF
|
||
RETURN M-FATAL
|
||
?CCL17: EQUAL? PTS,UEXIT \?CCL19
|
||
GETB PT,REXIT >RM
|
||
JUMP ?CND15
|
||
?CCL19: EQUAL? PTS,FEXIT \?CCL21
|
||
GET PT,FEXITFCN
|
||
CALL STACK >RM
|
||
ZERO? RM \?CND15
|
||
RETURN M-FATAL
|
||
?CCL21: EQUAL? PTS,CEXIT \?CCL25
|
||
GETB PT,CEXITFLAG
|
||
VALUE STACK
|
||
ZERO? STACK /?CCL28
|
||
GETB PT,REXIT >RM
|
||
JUMP ?CND15
|
||
?CCL28: GET PT,CEXITSTR >STR
|
||
ZERO? STR /?CCL30
|
||
PRINT STR
|
||
CRLF
|
||
RETURN M-FATAL
|
||
?CCL30: ICALL1 CANT-GO
|
||
RETURN M-FATAL
|
||
?CCL25: EQUAL? PTS,DEXIT \?CND15
|
||
GET PT,DEXITOBJ >OBJ
|
||
FSET? OBJ,INVISIBLE \?CCL34
|
||
ICALL1 CANT-GO
|
||
RETURN M-FATAL
|
||
?CCL34: FSET? OBJ,OPENBIT /?CTR35
|
||
FSET? OBJ,LOCKED /?CCL36
|
||
FSET? OBJ,TRYTAKEBIT /?CCL36
|
||
?CTR35: GETB PT,DEXITRM >RM
|
||
FSET? OBJ,OPENBIT /?CND15
|
||
FSET OBJ,OPENBIT
|
||
PRINTI "You open "
|
||
ICALL2 THE-PRINT,OBJ
|
||
PRINTI " and go through."
|
||
CRLF
|
||
CRLF
|
||
?CND15: EQUAL? SCENE,S-NINJA \?CND45
|
||
ZERO? AVOID-CALTROPS? \?CCL49
|
||
IN? CALTROPS,HERE \?CCL49
|
||
RANDOM 100
|
||
LESS? 35,STACK /?CCL54
|
||
ICALL2 JIGS-UP,STR?157
|
||
RETURN M-FATAL
|
||
?CCL36: GET PT,DEXITSTR >STR
|
||
ZERO? STR /?CCL44
|
||
PRINT STR
|
||
CRLF
|
||
ICALL2 THIS-IS-IT,OBJ
|
||
RETURN M-FATAL
|
||
?CCL44: ICALL2 TELL-OPEN-CLOSED,OBJ
|
||
ICALL2 THIS-IS-IT,OBJ
|
||
RETURN M-FATAL
|
||
?CCL54: PRINTI "As you hurry along, you narrowly miss stepping on a caltrop!"
|
||
CRLF
|
||
CRLF
|
||
?CND45: CALL2 GOTO,RM
|
||
RSTACK
|
||
?CCL49: IN? SMOKE-BOMB,HERE \?CCL56
|
||
PRINTI "You try to advance, but the acrid, choking smoke prevents you."
|
||
CRLF
|
||
RETURN M-FATAL
|
||
?CCL56: IN? FIRE-BOMB,HERE \?CND45
|
||
PRINTI "The floor is covering with burning pitch which sticks to your feet and drives you back."
|
||
CRLF
|
||
RETURN M-FATAL
|
||
?CCL14: EQUAL? PRSO,P?IN,P?OUT \?CCL59
|
||
ZERO? P-LAST-OPEN /?CCL59
|
||
CALL GLOBAL-IN?,P-LAST-OPEN,HERE
|
||
ZERO? STACK /?CCL59
|
||
ICALL PERFORM,V?THROUGH,P-LAST-OPEN
|
||
RTRUE
|
||
?CCL59: ICALL1 CANT-GO
|
||
RETURN M-FATAL
|
||
|
||
|
||
.FUNCT V-WALK-AROUND:ANY:0:0
|
||
PRINTR "Please use compass directions instead."
|
||
|
||
|
||
.FUNCT V-WALK-TO:ANY:0:0,DIR,TMP
|
||
ZERO? PRSO /?CCL3
|
||
ZERO? QCONTEXT /?CCL6
|
||
CALL1 PAST-TENSE?
|
||
ZERO? STACK /?CCL6
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL6: EQUAL? PRSO,INTDIR \?CCL11
|
||
ICALL2 DO-WALK,P-DIRECTION
|
||
RTRUE
|
||
?CCL11: IN? PRSO,ROOMS \?CCL13
|
||
CALL2 NEXT-ROOM?,PRSO >DIR
|
||
ZERO? DIR /?CCL16
|
||
CALL2 DO-WALK,DIR
|
||
RSTACK
|
||
?CCL16: PRINT YOU-HAVE-TO
|
||
PRINT STR?158
|
||
CRLF
|
||
RTRUE
|
||
?CCL13: IN? PRSO,HERE /?CTR17
|
||
CALL GLOBAL-IN?,PRSO,HERE
|
||
ZERO? STACK /?CCL18
|
||
?CTR17: FSET? PRSO,PERSON \?CCL23
|
||
FSET? PRSO,PLURAL \?CCL26
|
||
PRINTI "They're"
|
||
JUMP ?CND21
|
||
?CCL26: FSET? PRSO,FEMALE \?CCL28
|
||
PRINTI "She's"
|
||
JUMP ?CND21
|
||
?CCL28: PRINTI "He's"
|
||
JUMP ?CND21
|
||
?CCL23: PRINTI "It's"
|
||
?CND21: PRINTR " here!"
|
||
?CCL18: CALL2 META-LOC,PRSO >TMP
|
||
ZERO? TMP /?CCL30
|
||
IN? TMP,ROOMS \?CCL30
|
||
ICALL PERFORM,PRSA,TMP
|
||
RTRUE
|
||
?CCL30: PRINTI "I'm not sure how to get to "
|
||
FSET? PRSO,PERSON \?CCL35
|
||
FSET? PRSO,PLURAL \?CCL38
|
||
PRINTI "them"
|
||
JUMP ?CND33
|
||
?CCL38: FSET? PRSO,FEMALE \?CCL40
|
||
PRINTI "her"
|
||
JUMP ?CND33
|
||
?CCL40: PRINTI "him"
|
||
JUMP ?CND33
|
||
?CCL35: PRINTI "that"
|
||
?CND33: PRINTR "."
|
||
?CCL3: CALL1 V-WALK-AROUND
|
||
RSTACK
|
||
|
||
|
||
.FUNCT NEXT-ROOM?:ANY:1:2,RM,STRICT?,DIR,PT,PTS,OBJ,?PR-DIR,?PR-PT
|
||
SET '?PR-DIR,65
|
||
?PRG1: DLESS? '?PR-DIR,LOW-DIRECTION /FALSE
|
||
GETPT HERE,?PR-DIR >?PR-PT
|
||
ZERO? ?PR-PT /?PRG1
|
||
PTSIZE ?PR-PT >PTS
|
||
EQUAL? PTS,NEXIT /?PRG1
|
||
EQUAL? PTS,UEXIT \?CCL10
|
||
GETB ?PR-PT,REXIT
|
||
EQUAL? STACK,RM \?CCL10
|
||
RETURN ?PR-DIR
|
||
?CCL10: EQUAL? PTS,CEXIT \?CCL14
|
||
GETB ?PR-PT,REXIT
|
||
EQUAL? STACK,RM \?CCL14
|
||
ZERO? STRICT? \?PRD20
|
||
RETURN ?PR-DIR
|
||
?PRD20: GETB ?PR-PT,CEXITFLAG
|
||
VALUE STACK
|
||
ZERO? STACK /?PRG1
|
||
RETURN ?PR-DIR
|
||
?CCL14: EQUAL? PTS,DEXIT \?CCL22
|
||
GETB ?PR-PT,DEXITRM
|
||
EQUAL? STACK,RM \?CCL22
|
||
GET ?PR-PT,DEXITOBJ >OBJ
|
||
ZERO? STRICT? \?PRD28
|
||
RETURN ?PR-DIR
|
||
?PRD28: FSET? OBJ,INVISIBLE /?PRG1
|
||
FSET? OBJ,OPENBIT \?PRG1
|
||
RETURN ?PR-DIR
|
||
?CCL22: EQUAL? PTS,FEXIT \?PRG1
|
||
GET ?PR-PT,FEXITFCN
|
||
CALL STACK,M-ENTER,STRICT?
|
||
EQUAL? STACK,RM \?PRG1
|
||
RETURN ?PR-DIR
|
||
|
||
|
||
.FUNCT V-WAIT:ANY:0:0,NUM
|
||
SET 'NUM,3
|
||
EQUAL? PRSO,INTNUM \?CND1
|
||
GRTR? P-NUMBER,100 \?CCL5
|
||
PRINTI "Too long!"
|
||
CRLF
|
||
JUMP ?CND1
|
||
?CCL5: SET 'NUM,P-NUMBER
|
||
?CND1: PRINTI "Time passes..."
|
||
CRLF
|
||
?PRG6: DLESS? 'NUM,0 /?REP7
|
||
CALL1 CLOCKER
|
||
ZERO? STACK /?PRG6
|
||
?REP7: SET 'CLOCK-WAIT,TRUE-VALUE
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-WAIT-FOR:ANY:0:0
|
||
EQUAL? PRSO,INTNUM \?CCL3
|
||
ICALL2 NEW-VERB,V?WAIT
|
||
RTRUE
|
||
?CCL3: LOC PRSO
|
||
EQUAL? STACK,HERE,WINNER \?CCL5
|
||
ICALL2 CPRINT-HE/SHE,PRSO
|
||
PRINTR "'s already here!"
|
||
?CCL5: PRINTR "You may well wait quite a while."
|
||
|
||
|
||
.FUNCT V-WAVE:ANY:0:0
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK \?CCL3
|
||
FSET? PRSO,BODY-PART \?CCL3
|
||
CALL1 YOU-ARENT-HOLDING
|
||
RSTACK
|
||
?CCL3: CALL2 HACK-HACK,STR?159
|
||
RSTACK
|
||
|
||
|
||
.FUNCT YOU-ARENT-HOLDING:ANY:0:0
|
||
PRINTI "You aren't holding "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-WAVE-AT:ANY:0:0
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK \?CCL3
|
||
FSET? PRSO,BODY-PART \?CCL3
|
||
CALL1 YOU-ARENT-HOLDING
|
||
RSTACK
|
||
?CCL3: EQUAL? PRSO,HEAD \?CCL7
|
||
ZERO? PRSI \?CCL10
|
||
ICALL2 PERFORM,V?NO
|
||
RTRUE
|
||
?CCL10: FSET? PRSI,PERSON \?CCL12
|
||
SET 'WINNER,PRSI
|
||
ICALL2 PERFORM,V?NO
|
||
SET 'WINNER,PLAYER
|
||
RTRUE
|
||
?CCL12: PRINTI "Shaking one's head at "
|
||
ICALL1 PRINTA-PRSI
|
||
PRINTR " accomplishes little."
|
||
?CCL7: ZERO? PRSI /?CCL14
|
||
FSET? PRSI,PERSON \?CCL14
|
||
ICALL PERFORM,V?WAVE-AT,PRSI
|
||
RTRUE
|
||
?CCL14: EQUAL? PRSO,ME \?CCL18
|
||
PRINTR "What a peculiar idea!"
|
||
?CCL18: ICALL1 CTHE-PRINT-PRSO
|
||
ICALL2 PRINT-IS/ARE,PRSO
|
||
PRINTR "n't likely to respond."
|
||
|
||
|
||
.FUNCT V-DRESS:ANY:0:0,OBJ,LAST
|
||
?PRG1: SET 'LAST,OBJ
|
||
SET 'OBJ,FALSE-VALUE
|
||
CALL2 HELD?,CLOTHES
|
||
ZERO? STACK /?CCL5
|
||
FSET? CLOTHES,WEARBIT /?CCL5
|
||
SET 'OBJ,CLOTHES
|
||
JUMP ?CND3
|
||
?CCL5: CALL2 HELD?,BOOTS
|
||
ZERO? STACK /?CCL9
|
||
FSET? BOOTS,WEARBIT /?CCL9
|
||
SET 'OBJ,BOOTS
|
||
JUMP ?CND3
|
||
?CCL9: CALL2 HELD?,KIMONO
|
||
ZERO? STACK /?CCL13
|
||
FSET? KIMONO,WEARBIT /?CCL13
|
||
SET 'OBJ,KIMONO
|
||
JUMP ?CND3
|
||
?CCL13: CALL2 HELD?,SOCKS
|
||
ZERO? STACK /?CCL17
|
||
FSET? SOCKS,WEARBIT /?CCL17
|
||
SET 'OBJ,SOCKS
|
||
JUMP ?CND3
|
||
?CCL17: CALL2 ACCESSIBLE?,SANDALS
|
||
ZERO? STACK /?CND3
|
||
FSET? SANDALS,WEARBIT /?CND3
|
||
SET 'OBJ,SANDALS
|
||
?CND3: ZERO? OBJ /?CCL25
|
||
FSET OBJ,RMUNGBIT
|
||
ICALL PERFORM,V?WEAR,OBJ
|
||
FCLEAR OBJ,RMUNGBIT
|
||
FSET? OBJ,WEARBIT /?PRG1
|
||
RTRUE
|
||
?CCL25: ZERO? LAST \TRUE
|
||
PRINTR "You don't have anything to wear!"
|
||
|
||
|
||
.FUNCT V-WEAR:ANY:0:0
|
||
FSET? PRSO,WEARBIT \?CCL3
|
||
PRINT YOU-ARE
|
||
PRINT PERIOD
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,WEARABLE \?CCL5
|
||
GETP PRSO,P?OWNER
|
||
EQUAL? PLAYER,STACK \?CCL8
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK \?CCL11
|
||
CALL2 ITAKE,TRUE-VALUE
|
||
ZERO? STACK /TRUE
|
||
?CCL11: FSET PRSO,WEARBIT
|
||
PRINTI "You put on "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL8: PRINTR "They don't fit you."
|
||
?CCL5: CALL2 YOU-CANT-X-PRSO,STR?160
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-YAWN:ANY:0:0
|
||
CALL1 V-LEAN-ON
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-YELL-AT:ANY:0:0
|
||
FSET? PRSO,PERSON \FALSE
|
||
FSET? PRSO,DEAD /FALSE
|
||
PRINTI "You yell at "
|
||
ICALL1 DPRINT-PRSO
|
||
PRINTI " for a while, which improves your disposition, but not "
|
||
ICALL2 PRINT-HIS/HER,PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-YELL:ANY:0:0
|
||
EQUAL? PRSO,INTQUOTE \?CND1
|
||
PRINTI "You yell at out, loud and strong."
|
||
?CND1: PRINTR "Raising one's voice is very bad manners and very unsettling to the harmony of those around you."
|
||
|
||
|
||
.FUNCT V-LAUGH:ANY:0:0
|
||
ZERO? PRSO \?CCL3
|
||
PRINTR "Very funny."
|
||
?CCL3: FSET? PRSO,PERSON \?CCL5
|
||
FSET? PRSO,DEAD /?CCL5
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " doesn't seem to get the joke."
|
||
?CCL5: PRINTR "Your brand of humor is unusual."
|
||
|
||
|
||
.FUNCT ITAKE:ANY:0:2,VB,OBJ,CNT,?TMP1
|
||
ASSIGNED? 'VB /?CND1
|
||
SET 'VB,TRUE-VALUE
|
||
?CND1: ZERO? OBJ \?CND3
|
||
SET 'OBJ,PRSO
|
||
?CND3: FSET? BLACKTHORNE,SITTING \?CCL7
|
||
FSET? PRSO,TAKEBIT \?CCL7
|
||
EQUAL? PRSO,CLOTHES,QUILT,TRAY /?CCL7
|
||
EQUAL? PRSO,FOOD,CHOPSTICKS,CUP /?CCL7
|
||
EQUAL? PRSO,GRUEL,GROUND,SWORDS /?CCL7
|
||
ZERO? VB /FALSE
|
||
PRINTI "You are "
|
||
FSET? WINNER,SURFACEBIT \?CCL18
|
||
PRINTI "lying"
|
||
JUMP ?CND16
|
||
?CCL18: PRINTI "sitting"
|
||
?CND16: PRINTI " down, and "
|
||
ICALL1 THE-PRINT-PRSO
|
||
ICALL2 PRINT-IS/ARE,PRSO
|
||
PRINTI " out of reach."
|
||
CRLF
|
||
RFALSE
|
||
?CCL7: FSET? OBJ,TAKEBIT /?CCL20
|
||
ZERO? VB /FALSE
|
||
FSET? OBJ,PERSON \?CCL25
|
||
FSET? OBJ,DEAD /?CCL25
|
||
ICALL2 CPRINT-HE/SHE,OBJ
|
||
PRINTI " twist"
|
||
ICALL2 PRINT-PLURAL,OBJ
|
||
PRINTI " away from you."
|
||
CRLF
|
||
RFALSE
|
||
?CCL25: ICALL1 TELL-YUKS
|
||
RFALSE
|
||
?CCL20: IN? OBJ,WINNER \?CCL29
|
||
PRINT YOU-HAVE
|
||
ICALL2 THE-PRINT,OBJ
|
||
PRINT PERIOD
|
||
RFALSE
|
||
?CCL29: IN? WINNER,OBJ \?CCL31
|
||
PRINTI "You are "
|
||
FSET? OBJ,SURFACEBIT \?CCL34
|
||
PRINTI "on"
|
||
JUMP ?CND32
|
||
?CCL34: PRINTI "in"
|
||
?CND32: PRINTR " it."
|
||
?CCL31: LOC OBJ
|
||
IN? STACK,WINNER /?CCL36
|
||
CALL2 WEIGHT,OBJ >?TMP1
|
||
CALL2 WEIGHT,WINNER
|
||
ADD ?TMP1,STACK
|
||
GRTR? STACK,LOAD-ALLOWED \?CCL36
|
||
ZERO? VB \?CCL40
|
||
RETURN M-FATAL
|
||
?CCL40: CALL2 CCOUNT,WINNER
|
||
ZERO? STACK \?CCL43
|
||
PRINTI "It's too heavy to carry"
|
||
JUMP ?CND41
|
||
?CCL43: PRINTI "Your load is too heavy"
|
||
?CND41: GETP WINNER,P?HEALTH
|
||
LESS? STACK,4 \?CCL46
|
||
PRINTI ", especially in light of your exhaustion."
|
||
JUMP ?CND44
|
||
?CCL46: PRINTC 46
|
||
?CND44: CRLF
|
||
RETURN M-FATAL
|
||
?CCL36: CALL2 CCOUNT,WINNER >CNT
|
||
GRTR? CNT,FUMBLE-NUMBER \?CCL48
|
||
ZERO? VB \?CCL50
|
||
RETURN M-FATAL
|
||
?CCL50: PRINTI "You're holding too many things and can't quite get them all arranged to take it as well."
|
||
CRLF
|
||
RETURN M-FATAL
|
||
?CCL48: MOVE OBJ,WINNER
|
||
FSET OBJ,TOUCHBIT
|
||
FCLEAR OBJ,WEARBIT
|
||
FCLEAR OBJ,NDESCBIT
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-NOTIFY:ANY:0:0
|
||
ZERO? NOTIFY-FLAG /?PRT1
|
||
SET 'NOTIFY-FLAG,0
|
||
JUMP ?PRE3
|
||
?PRT1: SET 'NOTIFY-FLAG,1
|
||
?PRE3: ZERO? NOTIFY-FLAG /?CCL6
|
||
PRINTR "Notifying when points are scored."
|
||
?CCL6: PRINTR "Keeping quiet when points are scored."
|
||
|
||
|
||
.FUNCT SCORE-OBJECT:ANY:0:2,OBJ1,OBJ2
|
||
CALL2 SCORE-OBJECT?,OBJ1 >OBJ1
|
||
ZERO? OBJ2 /?CND1
|
||
CALL2 SCORE-OBJECT?,OBJ2 >OBJ2
|
||
?CND1: ZERO? OBJ1 \?CCL4
|
||
ZERO? OBJ2 /TRUE
|
||
?CCL4: ZERO? NOTIFY-FLAG /TRUE
|
||
CRLF
|
||
PRINTR "[Your score just went up.]"
|
||
|
||
|
||
.FUNCT SCORE-OBJECT?:ANY:1:1,OBJ
|
||
FSET? OBJ,SCOREBIT \FALSE
|
||
INC 'SCORE
|
||
FCLEAR OBJ,SCOREBIT
|
||
GET SCENE-LOCS,SCENE >OBJ
|
||
ZERO? OBJ /TRUE
|
||
GETPT OBJ,P?SCORE >OBJ
|
||
ZERO? OBJ /TRUE
|
||
GETB OBJ,0
|
||
ADD 1,STACK
|
||
PUTB OBJ,0,STACK
|
||
RTRUE
|
||
|
||
|
||
.FUNCT IDROP:ANY:0:0
|
||
FSET? PRSO,BODY-PART /?CTR2
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK \?CCL3
|
||
?CTR2: PRINT STR?61
|
||
PRINTI "carrying "
|
||
ICALL1 THE-PRSO
|
||
RFALSE
|
||
?CCL3: IN? PRSO,WINNER /?CCL7
|
||
LOC PRSO
|
||
FSET? STACK,OPENBIT /?CCL7
|
||
ICALL2 THIS-IS-IT,PRSO
|
||
LOC PRSO
|
||
ICALL2 TELL-OPEN-CLOSED,STACK
|
||
RFALSE
|
||
?CCL7: FSET? PRSO,WEARBIT \?CCL11
|
||
ICALL1 HAVE-TO-TAKE-OFF
|
||
RFALSE
|
||
?CCL11: FCLEAR PRSO,WEARBIT
|
||
LOC WINNER
|
||
MOVE PRSO,STACK
|
||
RTRUE
|
||
|
||
|
||
.FUNCT HAVE-TO-TAKE-OFF:ANY:0:1,OBJ
|
||
ASSIGNED? 'OBJ /?CND1
|
||
SET 'OBJ,PRSO
|
||
?CND1: PRINT YOU-HAVE-TO
|
||
PRINT STR?161
|
||
ICALL2 THE-PRINT,OBJ
|
||
PRINTR " first."
|
||
|
||
|
||
.FUNCT CCOUNT:ANY:1:1,OBJ,CNT,X,?PR-X
|
||
FIRST? OBJ >?PR-X \FALSE
|
||
?PRG6: FSET? ?PR-X,WEARBIT /?CND8
|
||
INC 'CNT
|
||
?CND8: NEXT? ?PR-X >?PR-X /?PRG6
|
||
RETURN CNT
|
||
|
||
|
||
.FUNCT WEIGHT:ANY:1:1,OBJ,CONT,WT,?PR-CONT
|
||
FSET? OBJ,WEARBIT /FALSE
|
||
FIRST? OBJ >?PR-CONT \?REP5
|
||
?PRG8: CALL2 WEIGHT,?PR-CONT
|
||
ADD WT,STACK >WT
|
||
NEXT? ?PR-CONT >?PR-CONT /?PRG8
|
||
?REP5: GETP OBJ,P?SIZE
|
||
ADD WT,STACK
|
||
RSTACK
|
||
|
||
|
||
.FUNCT GOTO:ANY:1:2,RM,V?,OLIT
|
||
ASSIGNED? 'V? /?CND1
|
||
SET 'V?,TRUE-VALUE
|
||
?CND1: SET 'OHERE,RM
|
||
ZERO? HERE /?CND3
|
||
GETP HERE,P?ACTION
|
||
ICALL STACK,M-LEAVE
|
||
?CND3: SET 'OHERE,HERE
|
||
SET 'OLIT,LIT
|
||
EQUAL? OHERE,RM /?CND5
|
||
ICALL1 B-STAND
|
||
?CND5: LOC WINNER
|
||
IN? STACK,ROOMS /?CCL9
|
||
LOC WINNER
|
||
MOVE STACK,RM
|
||
JUMP ?CND7
|
||
?CCL9: MOVE WINNER,RM
|
||
?CND7: SET 'HERE,RM
|
||
CALL2 LIT?,HERE >LIT
|
||
ICALL1 V-INTRODUCE
|
||
GETP HERE,P?ACTION
|
||
CALL STACK,M-ENTER
|
||
EQUAL? STACK,M-FATAL /TRUE
|
||
EQUAL? HERE,RM \TRUE
|
||
ZERO? V? /TRUE
|
||
ICALL1 V-FIRST-LOOK
|
||
RTRUE
|
||
|
||
|
||
.FUNCT I-STUPID-MOVE:ANY:0:0
|
||
SET 'STUPID-MOVE,FALSE-VALUE
|
||
RETURN STUPID-MOVE
|
||
|
||
|
||
.FUNCT JIGS-UP?:ANY:1:2,N,DESC
|
||
EQUAL? STUPID-MOVE,N /TRUE
|
||
ICALL QUEUE,I-STUPID-MOVE,2
|
||
SET 'STUPID-MOVE,N
|
||
ZERO? DESC /?CCL6
|
||
PRINT DESC
|
||
CRLF
|
||
RFALSE
|
||
?CCL6: PRINTI "At the last second, you stop and try to think of something to do that's less likely to be fatal."
|
||
CRLF
|
||
RFALSE
|
||
|
||
|
||
.FUNCT JIGS-UP:ANY:0:1,DESC
|
||
INC 'MOVES
|
||
SET 'WINNER,PLAYER
|
||
ZERO? DESC /?CND1
|
||
PRINT DESC
|
||
?CND1: PRINTI "
|
||
|
||
**** You have died ****
|
||
|
||
"
|
||
EQUAL? SCENE,S-ERASMUS \?CCL5
|
||
PRINTI "Are the Japans ahead?Now you will never know.All pilots fear death by drowning more than any other death, and most die by drowning.A terrible fate."
|
||
CRLF
|
||
JUMP ?CND3
|
||
?CCL5: PRINTI "Perhaps in a future existence you will be reborn samurai.Perhaps, as Father Sebastio would predict, you will burn in hell.Perhaps you will ascend to heaven.Perhaps none of these things will happen. "
|
||
ICALL2 PRINTUNDER,STR?162
|
||
CRLF
|
||
?CND3: CRLF
|
||
CALL1 FINISH
|
||
RSTACK
|
||
|
||
|
||
.FUNCT MOVE-ALL:ANY:1:2,FROM,TO,F,N,1ST?
|
||
FIRST? FROM >F /?PRG2
|
||
?PRG2: ZERO? F /?REP3
|
||
NEXT? F >N /?BOGUS7
|
||
?BOGUS7: SET '1ST?,F
|
||
ZERO? TO /?CCL10
|
||
MOVE F,TO
|
||
JUMP ?CND8
|
||
?CCL10: REMOVE F
|
||
?CND8: FCLEAR F,WEARBIT
|
||
SET 'F,N
|
||
JUMP ?PRG2
|
||
?REP3: RETURN 1ST?
|
||
|
||
|
||
.FUNCT THIS-IS-IT:ANY:1:1,OBJ
|
||
FSET? OBJ,DONT-IT /FALSE
|
||
EQUAL? OBJ,IT,HIM,HER /TRUE
|
||
EQUAL? OBJ,WHAT,ROOMS /TRUE
|
||
FSET? OBJ,PERSON /?CTR8
|
||
EQUAL? OBJ,LG-ERASMUS \?CCL9
|
||
?CTR8: EQUAL? OBJ,LG-RODRIGUES \?PRD15
|
||
IN? RODRIGUES,IN-THE-SEA /?CCL13
|
||
?PRD15: FSET? OBJ,DEAD \?CND12
|
||
?CCL13: EQUAL? P-IT-OBJECT,OBJ /?CND18
|
||
FCLEAR IT,TOUCHBIT
|
||
?CND18: SET 'P-IT-OBJECT,OBJ
|
||
?CND12: FSET? OBJ,PLURAL /?CTR21
|
||
EQUAL? OBJ,GRAYS,BROWNS \?CCL22
|
||
?CTR21: EQUAL? P-THEM-OBJECT,OBJ /?CND25
|
||
FCLEAR THEM,TOUCHBIT
|
||
?CND25: SET 'P-THEM-OBJECT,OBJ
|
||
RTRUE
|
||
?CCL22: FSET? OBJ,FEMALE \?CCL28
|
||
EQUAL? P-HER-OBJECT,OBJ /?CND29
|
||
FCLEAR HER,TOUCHBIT
|
||
?CND29: SET 'P-HER-OBJECT,OBJ
|
||
RTRUE
|
||
?CCL28: EQUAL? P-HIM-OBJECT,OBJ /?CND31
|
||
FCLEAR HIM,TOUCHBIT
|
||
?CND31: SET 'P-HIM-OBJECT,OBJ
|
||
RTRUE
|
||
?CCL9: FSET? OBJ,PLURAL \?CCL34
|
||
EQUAL? P-THEM-OBJECT,OBJ /?CND35
|
||
FCLEAR THEM,TOUCHBIT
|
||
?CND35: SET 'P-THEM-OBJECT,OBJ
|
||
RTRUE
|
||
?CCL34: EQUAL? P-IT-OBJECT,OBJ /?CND37
|
||
FCLEAR IT,TOUCHBIT
|
||
?CND37: SET 'P-IT-OBJECT,OBJ
|
||
RTRUE
|
||
|
||
|
||
.FUNCT INTRINSIC?:ANY:1:1,OBJ
|
||
EQUAL? OBJ,ME,HANDS,HEAD /TRUE
|
||
EQUAL? OBJ,EYES,FEET /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT ACCESSIBLE?:ANY:1:1,OBJ,L,?TMP1
|
||
LOC OBJ >L
|
||
FSET? OBJ,INVISIBLE /FALSE
|
||
EQUAL? OBJ,PSEUDO-OBJECT \?CCL5
|
||
EQUAL? LAST-PSEUDO-LOC,HERE /TRUE
|
||
RFALSE
|
||
?CCL5: ZERO? L /FALSE
|
||
EQUAL? L,GLOBAL-OBJECTS,WINNER,HERE /TRUE
|
||
LOC WINNER
|
||
EQUAL? L,STACK /TRUE
|
||
CALL GLOBAL-IN?,OBJ,HERE
|
||
ZERO? STACK \TRUE
|
||
CALL2 META-LOC,OBJ >?TMP1
|
||
LOC WINNER
|
||
EQUAL? ?TMP1,HERE,STACK \FALSE
|
||
FSET? L,OPENBIT \FALSE
|
||
CALL2 ACCESSIBLE?,L
|
||
ZERO? STACK /FALSE
|
||
RTRUE
|
||
|
||
|
||
.FUNCT VISIBLE?:ANY:1:1,OBJ,L
|
||
LOC OBJ >L
|
||
CALL2 ACCESSIBLE?,OBJ
|
||
ZERO? STACK \TRUE
|
||
CALL2 SEE-INSIDE?,L
|
||
ZERO? STACK /FALSE
|
||
CALL2 VISIBLE?,L
|
||
ZERO? STACK /FALSE
|
||
RTRUE
|
||
|
||
|
||
.FUNCT HELD?:ANY:1:2,OBJ,WHO
|
||
ZERO? WHO \?CND1
|
||
SET 'WHO,PLAYER
|
||
?CND1: ZERO? OBJ /FALSE
|
||
EQUAL? PRSA,V?GIVE \?CCL7
|
||
FSET? OBJ,CANT-HOLD /TRUE
|
||
?CCL7: EQUAL? OBJ,WHO,ME /TRUE
|
||
FSET? OBJ,BODY-PART /TRUE
|
||
IN? OBJ,WHO /TRUE
|
||
IN? OBJ,ROOMS /FALSE
|
||
IN? OBJ,GLOBAL-OBJECTS /FALSE
|
||
LOC OBJ
|
||
CALL HELD?,STACK,WHO
|
||
RSTACK
|
||
|
||
|
||
.FUNCT SEE-INSIDE?:ANY:1:1,OBJ
|
||
ZERO? OBJ /FALSE
|
||
FSET? OBJ,INVISIBLE /FALSE
|
||
FSET? OBJ,TRANSBIT /TRUE
|
||
FSET? OBJ,OPENBIT /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT GLOBAL-IN?:ANY:2:2,OBJ1,OBJ2,TEE
|
||
ZERO? OBJ2 /FALSE
|
||
GETPT OBJ2,P?GLOBAL >TEE
|
||
ZERO? TEE /FALSE
|
||
PTSIZE TEE
|
||
DIV STACK,2
|
||
INTBL? OBJ1,TEE,STACK /?CND1
|
||
?CND1: RSTACK
|
||
|
||
|
||
.FUNCT DO-WALK:ANY:1:1,DIR
|
||
SET 'P-WALK-DIR,DIR
|
||
CALL PERFORM,V?WALK,DIR
|
||
RSTACK
|
||
|
||
|
||
.FUNCT HACK-HACK:ANY:1:1,STR
|
||
PRINT STR
|
||
PRINTC 32
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " has no effect."
|
||
|
||
|
||
.FUNCT TELL-YUKS:ANY:0:0
|
||
CALL2 PICK-ONE,YUKS
|
||
PRINT STACK
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT PRE-PRY:ANY:0:0
|
||
ZERO? PRSI /FALSE
|
||
CALL2 INTRINSIC?,PRSI
|
||
ZERO? STACK \FALSE
|
||
CALL2 HELD?,PRSI
|
||
ZERO? STACK \FALSE
|
||
IN? WINNER,PRSI /FALSE
|
||
FSET? PRSI,VEHBIT /FALSE
|
||
CALL2 NOT-HOLDING,PRSI
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-PRY:ANY:0:0
|
||
CALL1 NO-EFFECT
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-BURY:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
FSET? PRSO,DEAD \?CCL6
|
||
PRINTR "Cremation is more normal here."
|
||
?CCL6: PRINTI "Bury "
|
||
ICALL2 PRINT-HIM/HER,PRSO
|
||
PRINTR " alive?How barbaric."
|
||
?CCL3: PRINTR "You might not be able to find it again."
|
||
|
||
|
||
.FUNCT V-YES:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
ZERO? PRSO /?CCL5
|
||
EQUAL? PRSO,HEAD /?CCL5
|
||
PRINTR "You aren't making much sense."
|
||
?CCL5: PRINTR "No question was asked that required an answer."
|
||
|
||
|
||
.FUNCT V-NO:ANY:0:0
|
||
CALL1 V-YES
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-BUY:ANY:0:0
|
||
CALL2 UNINTERESTED,PRSI
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRE-SSELL:ANY:0:0
|
||
ICALL2 SWAP-VERB,V?SELL
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SSELL:ANY:0:0
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SELL:ANY:0:0
|
||
CALL2 UNINTERESTED,PRSI
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRE-TELL-ABOUT:ANY:0:0
|
||
EQUAL? PRSO,ME \FALSE
|
||
ICALL PERFORM,V?TELL-ME-ABOUT,PRSI
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-TELL-ABOUT:ANY:0:0
|
||
CALL2 HELD?,PRSI
|
||
ZERO? STACK /?CCL3
|
||
ICALL2 SWAP-VERB,V?SHOW
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,JAPANESEBIT \?CCL5
|
||
EQUAL? PRSO,MARIKO /?CCL5
|
||
CALL2 DIFFICULTY,PRSO
|
||
RSTACK
|
||
?CCL5: CALL2 UNINTERESTED,PRSO
|
||
RSTACK
|
||
|
||
|
||
.FUNCT DIFFICULTY:ANY:1:1,WHO
|
||
PRINTI "You have a great deal of difficulty making yourself understood. "
|
||
ICALL2 CTHE-PRINT,WHO
|
||
PRINTR " doesn't seem to understand you very well."
|
||
|
||
|
||
.FUNCT V-TELL-ME-ABOUT:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
EQUAL? WINNER,PLAYER \?CCL5
|
||
ICALL PERFORM,V?WHAT,PRSO
|
||
RTRUE
|
||
?CCL5: FSET? WINNER,JAPANESEBIT \?CCL7
|
||
EQUAL? WINNER,MARIKO /?CCL7
|
||
CALL2 DIFFICULTY,WINNER
|
||
RSTACK
|
||
?CCL7: ICALL2 CTHE-PRINT,WINNER
|
||
PRINTR " doesn't seem to have anything to say about that."
|
||
|
||
|
||
.FUNCT V-TRADE:ANY:0:0
|
||
ZERO? PRSI /?CCL3
|
||
FSET? PRSI,PERSON \?CCL3
|
||
CALL2 UNINTERESTED,PRSI
|
||
RSTACK
|
||
?CCL3: EQUAL? WINNER,PLAYER \?CCL7
|
||
ZERO? PRSI /?CCL7
|
||
FSET? PRSO,PERSON /?CCL7
|
||
PRINTR "No one here is interested in trading."
|
||
?CCL7: CALL1 V-BARGAIN
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-ERASE:ANY:0:0
|
||
CALL1 TELL-YUKS
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-ADMIRE:ANY:0:0
|
||
PRINTR "Your taste is unusual."
|
||
|
||
|
||
.FUNCT V-BARGAIN:ANY:0:0
|
||
PRINTR "A preoccupation with money and trading is inappropriate in this society, very uncultured."
|
||
|
||
|
||
.FUNCT V-REPAIR:ANY:0:0
|
||
FSET? PRSO,RMUNGBIT \?CCL3
|
||
PRINTR "You don't know how."
|
||
?CCL3: FSET? PRSO,PERSON \?CCL5
|
||
PRINTR "You're a pilot, not a doctor."
|
||
?CCL5: ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " isn't broken."
|
||
|
||
|
||
.FUNCT V-LOOK-UP:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
PRINTR "Don't get a sore neck."
|
||
?CCL3: EQUAL? PRSO,INTQUOTE \?CCL5
|
||
CALL2 ACCESSIBLE?,DICTIONARY
|
||
ZERO? STACK /?CCL5
|
||
ICALL PERFORM,PRSA,PRSO,DICTIONARY
|
||
RTRUE
|
||
?CCL5: ICALL2 NEW-VERB,V?WHAT
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-PLUG-IN:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?166
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-UNPLUG:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?167
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-WALK-UNDER:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
CALL2 DO-WALK,P?DOWN
|
||
RSTACK
|
||
?CCL3: PRINTI "Only a snake could get under "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT V-SCARE:ANY:0:0
|
||
PRINTI "I don't think you scared "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " very much."
|
||
|
||
|
||
.FUNCT V-WEDGE:ANY:0:0
|
||
PRINT YOU-CANT
|
||
PRINTI "wedge open "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTI " with "
|
||
ICALL1 PRINTA-PRSI
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT PRE-SWEDGE:ANY:0:0
|
||
ICALL2 SWAP-VERB,V?WEDGE
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SWEDGE:ANY:0:0
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-PUT-BETWEEN:ANY:0:0
|
||
PRINT YOU-CANT
|
||
PRINTI "put "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTI " between "
|
||
ICALL1 PRINTA-PRSI
|
||
PRINT PERIOD
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-TASTE:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
PRINTR "You have got to be kidding."
|
||
?CCL3: PRINTI "It tastes exactly as you'd expect "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR " to taste, only worse."
|
||
|
||
|
||
.FUNCT V-DIE:ANY:0:0
|
||
ICALL PERFORM,V?KILL,ME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-COOK:ANY:0:0
|
||
PRINTR "Most people cook things in ovens."
|
||
|
||
|
||
.FUNCT V-DRIVE-ON:ANY:0:0
|
||
FSET? PRSI,PERSON \?CCL3
|
||
ICALL1 CTHE-PRINT-PRSI
|
||
PRINTR " moves out of the way."
|
||
?CCL3: PRINT GOOD-TRICK
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-DRIVE-TO:ANY:0:0
|
||
IN? WINNER,PRSO \?CCL3
|
||
EQUAL? PRSI,INTDIR \?CCL3
|
||
CALL2 DO-WALK,P-DIRECTION
|
||
RSTACK
|
||
?CCL3: PRINT GOOD-TRICK
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-STEP-ON:ANY:0:0
|
||
FSET? PRSO,VEHBIT \?CCL3
|
||
ICALL2 NEW-VERB,V?BOARD
|
||
RTRUE
|
||
?CCL3: PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-STOP:ANY:0:0
|
||
PRINT NOTHING-HAPPENS
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-RELEASE:ANY:0:0
|
||
ICALL2 NEW-VERB,V?DROP
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-PUSH-DOWN:ANY:0:0
|
||
CALL2 PUSH-FOO,STR?168
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-PUSH-UP:ANY:0:0
|
||
CALL2 PUSH-FOO,STR?169
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-PUSH-OUT:ANY:0:0
|
||
CALL2 PUSH-FOO,STR?170
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PUSH-FOO:ANY:1:1,DIR
|
||
EQUAL? PRSI,ROOMS \?CCL3
|
||
PRINTI "You push "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR ", but nothing happens."
|
||
?CCL3: PRINT YOU-CANT
|
||
PRINTI "push "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTC 32
|
||
PRINT DIR
|
||
PRINTC 32
|
||
ICALL1 THE-PRINT-PRSI
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-PRAY:ANY:0:0
|
||
PRINTR "You know that in any Catholic court in the world you would have been damned long since for heresy.And in most, if not all, Protestant courts.But you pray anyway."
|
||
|
||
|
||
.FUNCT PRE-SPUT-ON:ANY:0:0
|
||
ICALL2 SWAP-VERB,V?PUT-ON
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SPUT-ON:ANY:0:0
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-LOVE:ANY:0:0
|
||
PRINTR "Your feelings aren't reciprocated."
|
||
|
||
|
||
.FUNCT V-THOU:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINTR "How formal."
|
||
|
||
|
||
.FUNCT V-WRITE:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?171
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-RING:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?172
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-BOW:ANY:0:0,W
|
||
CALL1 B-LYING?
|
||
ZERO? STACK /?CCL3
|
||
PRINTR "You can't bow while lying down!"
|
||
?CCL3: EQUAL? PRSO,FALSE-VALUE,ROOMS,HEAD \?CCL5
|
||
ZERO? OPPONENT /?CCL8
|
||
IN? OPPONENT,HERE \?CCL8
|
||
SET 'W,OPPONENT
|
||
JUMP ?CND6
|
||
?CCL8: ZERO? QCONTEXT /?CCL12
|
||
IN? QCONTEXT,HERE \?CCL12
|
||
SET 'W,QCONTEXT
|
||
JUMP ?CND6
|
||
?CCL12: CALL FIND-IN,HERE,JAPANESEBIT >W
|
||
?CND6: ZERO? W /?CCL17
|
||
ICALL PERFORM,V?BOW,W
|
||
RTRUE
|
||
?CCL17: PRINTR "Good practice!"
|
||
?CCL5: EQUAL? PRSO,ME \?CCL19
|
||
PRINTR "An action not unlike clapping with one hand."
|
||
?CCL19: FSET? PRSO,PERSON \?CCL21
|
||
FSET? PRSO,DEAD \?CCL24
|
||
PRINTI "You show your respect for the dead "
|
||
ICALL1 DPRINT-PRSO
|
||
PRINTR "."
|
||
?CCL24: FSET? PRSO,DUTCHBIT \?CCL26
|
||
PRINTI """What are you, Pilot?Some kind of God-cursed courtier?"" grumbles "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL26: ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " returns your bow, instinctively knowing exactly the correct degree of deference to show."
|
||
?CCL21: PRINTI "You show "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " all due respect."
|
||
|
||
|
||
.FUNCT V-SORRY:ANY:0:0
|
||
ZERO? PRSO /?CCL3
|
||
FSET? PRSO,PERSON \?CCL3
|
||
ICALL2 NEW-WINNER-PRSO,PRSA
|
||
RTRUE
|
||
?CCL3: PRINTR "I'd be sorry, too."
|
||
|
||
|
||
.FUNCT V-PISS:ANY:0:0
|
||
ZERO? PRSO /?CCL3
|
||
FSET? PRSO,PERSON /?CTR2
|
||
FSET? PRSO,BODY-PART \?CCL3
|
||
?CTR2: PRINTI "You decide not to do that to "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR ". It's very bad manners."
|
||
?CCL3: FSET? PRSO,FOODBIT /?CTR8
|
||
EQUAL? PRSO,FLAGON,CUP \?CCL9
|
||
?CTR8: PRINTR "What a disgusting idea."
|
||
?CCL9: EQUAL? SCENE,S-ERASMUS \?CCL13
|
||
PRINTR "You feel much better, now."
|
||
?CCL13: FSET? HERE,OUTSIDE \?CCL15
|
||
PRINTR "As you have seen the Japanese do, you turn politely away from any possible watchers and then do your business."
|
||
?CCL15: PRINTR "What a barbaric idea!You decide to hold on a little longer."
|
||
|
||
|
||
.FUNCT V-LOAD:ANY:0:0
|
||
ZERO? PRSO \?CCL3
|
||
CALL2 HELD?,PISTOL
|
||
ZERO? STACK /?CCL3
|
||
ICALL PERFORM,V?LOAD,PISTOL
|
||
RTRUE
|
||
?CCL3: PRINTR "You can't load that."
|
||
|
||
|
||
.FUNCT V-STRAIGHTEN:ANY:0:0
|
||
PRINTR "You can't straighten that!"
|
||
|
||
|
||
.FUNCT V-LAUNCH:ANY:0:0
|
||
PRINTR "You can't launch anything here."
|
||
|
||
|
||
.FUNCT V-BLESS:ANY:0:0
|
||
FSET? PRSO,DEAD \?CCL3
|
||
PRINTR "You can't be sure it does any good, but you pray that it's at least the right thing to do."
|
||
?CCL3: PRINTR "What an odd thing to do."
|
||
|
||
|
||
.FUNCT V-MAKE:ANY:0:0
|
||
EQUAL? PRSO,SIGN-OF-CROSS \?CCL3
|
||
ZERO? PRSI \?CCL6
|
||
PRINTR "An unusual gesture for someone of your religious beliefs."
|
||
?CCL6: FSET? PRSI,PERSON \?CCL8
|
||
ICALL PERFORM,V?BLESS,PRSI
|
||
RTRUE
|
||
?CCL8: PRINTI "It's generally considered blasphemous to make the sign of the cross over "
|
||
ICALL1 PRINTA-PRSI
|
||
PRINTR "."
|
||
?CCL3: PRINTI "You can't make "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT V-ACT:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
PRINTR "Your imitation is unconvincing."
|
||
?CCL3: PRINTI "You will never make it in "
|
||
ICALL2 PRINTUNDER,STR?173
|
||
PRINTR " plays, that's certain."
|
||
|
||
|
||
.FUNCT V-DANCE:ANY:0:0
|
||
ZERO? PRSO /?CCL3
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " doesn't seem to want to dance."
|
||
?CCL3: PRINTR "You dance foolishly for a while, then stop, embarrassed."
|
||
|
||
|
||
.FUNCT V-TEAR:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?174
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-SHIP:ANY:0:0
|
||
CALL2 YOU-CANT-X-THAT,STR?175
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-SORT:ANY:0:0
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " seems pretty well sorted already."
|
||
|
||
|
||
.FUNCT V-ROW:ANY:0:0
|
||
EQUAL? HERE,MAIN-DECK,GALLEY \?CCL3
|
||
PRINTI "You could as easily sail the "
|
||
ICALL2 PRINTUNDER,STR?7
|
||
PRINTR " by blowing on the sails."
|
||
?CCL3: LOC WINNER
|
||
FSET? STACK,VEHBIT /?CCL5
|
||
PRINTR "You aren't in a boat!"
|
||
?CCL5: EQUAL? PRSI,INTDIR \?CCL7
|
||
IN? WINNER,PRSO \?CCL10
|
||
ICALL2 DO-WALK,P-DIRECTION
|
||
RTRUE
|
||
?CCL10: PRINTI "You aren't in "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "!"
|
||
?CCL7: EQUAL? PRSO,INTDIR \?CCL12
|
||
ICALL2 DO-WALK,P-DIRECTION
|
||
RTRUE
|
||
?CCL12: ZERO? PRSI /?CCL14
|
||
IN? WINNER,PRSO \?CCL17
|
||
ICALL PERFORM,V?WALK-TO,PRSI
|
||
RTRUE
|
||
?CCL17: PRINTI "You aren't in "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "!"
|
||
?CCL14: ZERO? PRSO \?CCL19
|
||
PRINTR "Gently down the stream..."
|
||
?CCL19: FSET? PRSO,VEHBIT \?CCL21
|
||
IN? WINNER,PRSO /?CCL24
|
||
PRINTI "You aren't in "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "!"
|
||
?CCL24: PRINT YOU-HAVE-TO
|
||
PRINT STR?158
|
||
CRLF
|
||
RTRUE
|
||
?CCL21: ZERO? PRSO /FALSE
|
||
PRINTR "You can't row that!"
|
||
|
||
|
||
.FUNCT V-TAKE-OVER:ANY:0:0
|
||
PRINTR "There's nothing to take over here!"
|
||
|
||
|
||
.FUNCT V-SHUT-UP:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
PRINTR "You stifle yourself."
|
||
?CCL3: ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " doesn't respond."
|
||
|
||
|
||
.FUNCT V-USE:ANY:0:0
|
||
PRINT YOU-HAVE-TO
|
||
PRINT STR?125
|
||
PRINTI "how you want to use "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-STEER-BY:ANY:0:0
|
||
PRINTR "You'll get nowhere that way!"
|
||
|
||
|
||
.FUNCT FORMAL-SCENE?:ANY:0:0
|
||
EQUAL? SCENE,S-TORANAGA,S-MARIKO,S-ESCAPE /TRUE
|
||
EQUAL? SCENE,S-OCHIBA,S-DEPARTURE,S-SEPPUKU /TRUE
|
||
EQUAL? SCENE,S-AFTERMATH /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT V-STRIP:ANY:0:0,F,N,1ST?,LAST
|
||
FIRST? WINNER >F /?BOGUS1
|
||
?BOGUS1: SET '1ST?,TRUE-VALUE
|
||
CALL1 FORMAL-SCENE?
|
||
ZERO? STACK /?PRG5
|
||
PRINTR "You would expose yourself to ridicule."
|
||
?PRG5: ZERO? F /?CCL9
|
||
NEXT? F >N /?BOGUS10
|
||
?BOGUS10: FSET? F,WEARBIT \?CND11
|
||
ZERO? LAST /?CND13
|
||
ZERO? 1ST? /?CCL17
|
||
SET '1ST?,FALSE-VALUE
|
||
PRINT STR?176
|
||
JUMP ?CND15
|
||
?CCL17: PRINTC 44
|
||
?CND15: PRINTC 32
|
||
ICALL2 THE-PRINT,LAST
|
||
?CND13: SET 'LAST,F
|
||
FCLEAR F,WEARBIT
|
||
?CND11: SET 'F,N
|
||
JUMP ?PRG5
|
||
?CCL9: ZERO? LAST /?CCL20
|
||
ZERO? 1ST? /?CCL23
|
||
SET '1ST?,FALSE-VALUE
|
||
PRINT STR?176
|
||
JUMP ?CND21
|
||
?CCL23: PRINTI ", and"
|
||
?CND21: PRINTC 32
|
||
ICALL2 THE-PRINT,LAST
|
||
PRINTR "."
|
||
?CCL20: PRINTR "You aren't wearing anything."
|
||
|
||
|
||
.FUNCT V-TRANSLATE:ANY:0:0
|
||
CALL2 HELD?,DICTIONARY
|
||
ZERO? STACK /?CCL3
|
||
ICALL PERFORM,V?LOOK-UP,PRSO,DICTIONARY
|
||
RTRUE
|
||
?CCL3: LOC DICTIONARY
|
||
ZERO? STACK /?CCL5
|
||
PRINTR "You should use the dictionary."
|
||
?CCL5: PRINTR "It's still unintelligible."
|
||
|
||
|
||
.FUNCT SETUP-ANSWER:ANY:1:1,STR
|
||
EQUAL? STR,ORPHAN-ANSWER /?CND1
|
||
SET 'ORPHAN-ANSWER,STR
|
||
ZERO? STR /?CND1
|
||
ICALL2 SETUP-ORPHAN,ORPHAN-ANSWER
|
||
?CND1: ZERO? STR /?CCL7
|
||
CALL QUEUE,I-SETUP-ANSWER,-1,TRUE-VALUE
|
||
RSTACK
|
||
?CCL7: CALL2 DEQUEUE,I-SETUP-ANSWER
|
||
RSTACK
|
||
|
||
|
||
.FUNCT I-SETUP-ANSWER:ANY:0:0
|
||
ZERO? ORPHAN-ANSWER /?CCL3
|
||
ICALL2 SETUP-ORPHAN,ORPHAN-ANSWER
|
||
RFALSE
|
||
?CCL3: ICALL2 DEQUEUE,I-SETUP-ANSWER
|
||
RFALSE
|
||
|
||
|
||
.FUNCT V-SMILE:ANY:0:0
|
||
PRINTI "You smile"
|
||
ZERO? PRSO /?CND1
|
||
PRINTI " at "
|
||
ICALL1 THE-PRINT-PRSO
|
||
?CND1: PRINTR ", showing your bad teeth and rotten gums."
|
||
|
||
|
||
.FUNCT V-WINK:ANY:0:0
|
||
PRINTI "You wink"
|
||
ZERO? PRSO /?CND1
|
||
PRINTI " at "
|
||
ICALL1 THE-PRINT-PRSO
|
||
?CND1: PRINTR ", but get no reaction."
|
||
|
||
|
||
.FUNCT V-CLEAR:ANY:0:0
|
||
FSET? PRSO,FURNITURE \?CCL3
|
||
FSET? PRSO,SURFACEBIT \?CCL3
|
||
LOC WINNER
|
||
CALL EMPTY-ALL,PRSO,STACK
|
||
RSTACK
|
||
?CCL3: PRINTR "I don't see how you propose to do that."
|
||
|
||
|
||
.FUNCT V-TURN-TOWARD:ANY:0:0
|
||
CALL1 V-TURN-AWAY
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-TURN-AWAY:ANY:0:0
|
||
PRINT YOU-HAVE-TO
|
||
PRINT STR?177
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-REACH-FOR:ANY:0:0
|
||
PRINT STR?178
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " with "
|
||
ICALL1 THE-PRINT-PRSI
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-HUG:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
FSET? PRSO,DEAD /?CCL3
|
||
FSET? PRSO,DUTCHBIT \?CCL8
|
||
PRINTI """I'm no god-cursed sodomite!"" growls "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL8: PRINTR "Such public displays of affection are considered barbaric in Japan."
|
||
?CCL3: PRINTI "Only a barbarian would try to hug "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT V-SOOTHE:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
PRINTR "Your efforts don't seem to have much effect."
|
||
?CCL3: PRINTI "You can't soothe "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-HAI:ANY:0:0
|
||
CALL1 V-IYE
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-IYE:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINTR "Your accent is atrocious."
|
||
|
||
|
||
.FUNCT V-HOLD-ON:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
PRINTR "There's nothing to hold onto here!"
|
||
?CCL3: ICALL PERFORM,V?TAKE,PRSO
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-RINSE:ANY:0:0
|
||
CALL1 V-BATHE
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-BATHE:ANY:0:0
|
||
PRINTR "A fine idea, but there are no facilities here."
|
||
|
||
|
||
.FUNCT V-REPLACE:ANY:0:0
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK /?CCL3
|
||
ICALL PERFORM,V?DROP,PRSO
|
||
RTRUE
|
||
?CCL3: ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " is irreplaceable."
|
||
|
||
|
||
.FUNCT V-ESCAPE:ANY:0:0
|
||
PRINTR "A fine idea, but the details of your plan seem rather sketchy."
|
||
|
||
|
||
.FUNCT V-PLEAD:ANY:0:0
|
||
ZERO? PRSO /?CCL3
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " ignores your pleas."
|
||
?CCL3: PRINTR "Your pleas seem to fall on deaf ears."
|
||
|
||
|
||
.FUNCT V-COMMIT:ANY:0:0
|
||
EQUAL? PRSO,SUICIDE \?CCL3
|
||
ICALL PERFORM,V?KILL,ME
|
||
RTRUE
|
||
?CCL3: PRINTR "It's you that should be committed."
|
||
|
||
|
||
.FUNCT V-ACCUSE:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
PRINTR """Never!"""
|
||
?CCL3: PRINTR "You are obviously going a bit paranoid."
|
||
|
||
|
||
.FUNCT V-SPIT:ANY:0:0
|
||
PRINTR "What an uncouth idea."
|
||
|
||
|
||
.FUNCT V-TEKI:ANY:0:0
|
||
FSET? TEKI,RMUNGBIT \?CCL3
|
||
PRINTI "In Japanese, "
|
||
ICALL2 PRINTUNDER,STR?179
|
||
PRINTR " means 'enemy.'"
|
||
?CCL3: PRINTR "That's not a word you know."
|
||
|
||
|
||
.FUNCT GET-INTQUOTE:ANY:1:1,N,NP,LEN,?TMP1
|
||
CALL2 GET-NP,INTQUOTE >NP
|
||
GET NP,8 >?TMP1
|
||
GET NP,7
|
||
SUB ?TMP1,STACK
|
||
DIV STACK,4
|
||
SUB STACK,1 >LEN
|
||
MUL N,2 >N
|
||
GRTR? N,LEN /FALSE
|
||
GET NP,7
|
||
ADD STACK,4
|
||
GET STACK,N
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRE-SSPEAK:ANY:0:0
|
||
ICALL2 SWAP-VERB,V?SPEAK
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SSPEAK:ANY:0:0
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-SPEAK:ANY:0:0
|
||
EQUAL? PRSO,ENGLISH \?CCL3
|
||
PRINTR "English is your native tongue.You speak the English of London, and have fond memories of the plays of Jonson and Shakespeare."
|
||
?CCL3: EQUAL? PRSO,DUTCH \?CCL5
|
||
PRINTR "Your mother was Dutch, and your men are mostly Dutch, so you speak it fluently.Holland is England's only ally against the treacherous Spanish."
|
||
?CCL5: EQUAL? PRSO,PORTUGUESE \?CCL7
|
||
PRINTR "Your Portuguese is excellent."
|
||
?CCL7: EQUAL? PRSO,SPANISH \?CCL9
|
||
PRINTR "You can speak the language of the hated Spaniards like a native."
|
||
?CCL9: EQUAL? PRSO,LATIN \?CCL11
|
||
PRINTR "Like all educated men, you speak Latin."
|
||
?CCL11: EQUAL? PRSO,JAPANESE \?CCL13
|
||
EQUAL? SCENE,S-ERASMUS,S-ANJIRO \?CCL16
|
||
PRINTR "You don't know any Japanese."
|
||
?CCL16: PRINTR "Your accent is atrocious, and your vocabulary small, but you are learning fast."
|
||
?CCL13: PRINTR "That's not a language you know."
|
||
|
||
|
||
.FUNCT V-AIM:ANY:0:0,W
|
||
ZERO? PRSI \?CCL3
|
||
FSET? PRSO,PERSON \?CCL6
|
||
CALL FIND-IN,WINNER,WEAPONBIT >W
|
||
ZERO? W /?CCL9
|
||
ICALL PERFORM,PRSA,W,PRSO
|
||
RTRUE
|
||
?CCL9: PRINTR "You sight carefully along your finger..."
|
||
?CCL6: PRINTR "How strange."
|
||
?CCL3: PRINTI "You aim "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTI " at "
|
||
ICALL1 THE-PRINT-PRSI
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-EXPLODE:ANY:0:0
|
||
ZERO? PRSI /?CCL3
|
||
PRINTI "A "
|
||
PRINT PRSI
|
||
PRINTR " doesn't make a very good explosive!"
|
||
?CCL3: PRINT YOU-HAVE-TO
|
||
PRINTR "use an explosive."
|
||
|
||
.ENDSEG
|
||
|
||
.SEGMENT "0"
|
||
|
||
|
||
.FUNCT V-HINT:ANY:0:0
|
||
EQUAL? HINTS-OFF,-1 \?CCL3
|
||
SET 'HINTS-OFF,0
|
||
PRINTI "Warning: We strongly recommend that you not use hints unless you're definitely stuck.Peeking at hints prematurely will invariably make you enjoy the story less.If you want to avoid reading any hints for the rest of this session, you may at any time during the story type HINTS OFF.
|
||
|
||
Do you still want a hint"
|
||
CALL1 YES?
|
||
ZERO? STACK \?CND1
|
||
RETURN M-FATAL
|
||
?CCL3: ZERO? HINTS-OFF /?CND1
|
||
ICALL PERFORM,V?HINTS-OFF,ROOMS
|
||
RETURN M-FATAL
|
||
?CND1: GRTR? SCENE,S-ESCAPE \?CCL9
|
||
ADD SCENE,1 >H-CHAPT-NUM
|
||
JUMP ?CND7
|
||
?CCL9: SET 'H-CHAPT-NUM,SCENE
|
||
?CND7: ICALL2 TOUCH-SEG,P-HINT-BORDER
|
||
ICALL1 DO-HINTS
|
||
ICALL1 REPAINT-DISPLAY
|
||
PRINTR "Back to the story..."
|
||
|
||
|
||
.FUNCT V-HINTS-OFF:ANY:0:0
|
||
EQUAL? PRSO,ROOMS /?CCL3
|
||
PRINTR "[Sorry, I don't understand.]"
|
||
?CCL3: GRTR? HINTS-OFF,0 \?CCL5
|
||
PRINTI "[You've already deactivated"
|
||
JUMP ?CND1
|
||
?CCL5: SET 'HINTS-OFF,TRUE-VALUE
|
||
PRINTI "[Okay, you will no longer have access to"
|
||
?CND1: PRINTR " help in this session.]"
|
||
|
||
|
||
.FUNCT V-PICK-UP:ANY:0:0
|
||
ICALL1 CTHE-PRINT-PRSI
|
||
PRINTI " doesn't seem to be much help in getting "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-COME-FROM:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINTI "So, you c"
|
||
CALL1 PAST-TENSE?
|
||
ZERO? STACK /?CCL6
|
||
PRINTC 97
|
||
JUMP ?CND4
|
||
?CCL6: PRINTC 111
|
||
?CND4: PRINTI "me from "
|
||
ICALL1 DPRINT-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT PAST-TENSE?:ANY:0:0,X,?TMP1
|
||
ADD WORD-FLAG-TABLE,2 >?TMP1
|
||
GET WORD-FLAG-TABLE,0
|
||
INTBL? P-PRSA-WORD,?TMP1,STACK,132 >X \?CCL3
|
||
GET X,1
|
||
JUMP ?CND1
|
||
?CCL3: PUSH FALSE-VALUE
|
||
?CND1: BAND PAST-TENSE,STACK
|
||
RSTACK
|
||
|
||
|
||
.FUNCT PRE-COME-TO-FROM:ANY:0:0
|
||
EQUAL? PRSO,GLOBAL-HERE,JAPAN \FALSE
|
||
ICALL PERFORM,V?COME-FROM,PRSI
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-COME-TO-FROM:ANY:0:0
|
||
PRINTR "That's very interesting."
|
||
|
||
|
||
.FUNCT V-PARRY:ANY:0:0
|
||
PRINTR "There doesn't seem to be anything to parry."
|
||
|
||
|
||
.FUNCT V-TEACH:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
FSET? PRSO,PERSON \?CCL5
|
||
PRINTI "You do your best to teach "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL5: PRINTI "You can't teach "
|
||
ICALL1 PRINTA-PRSO
|
||
PRINTR "!"
|
||
|
||
|
||
.FUNCT V-LEARN:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINTR "Perhaps you should ask someone to teach you."
|
||
|
||
|
||
.FUNCT V-LOOK-OUT:ANY:0:0
|
||
EQUAL? PRSO,ROOMS \?CCL3
|
||
FSET? HERE,OUTSIDE \?CCL6
|
||
PRINTR "You are outside already!"
|
||
?CCL6: PRINT YOU-HAVE-TO
|
||
PRINTR "go outside to look outside."
|
||
?CCL3: ICALL PERFORM,V?EXAMINE,PRSO
|
||
RTRUE
|
||
|
||
|
||
.FUNCT B-STAND:ANY:0:0
|
||
FCLEAR BLACKTHORNE,SITTING
|
||
FCLEAR BLACKTHORNE,TRANSBIT
|
||
FCLEAR BLACKTHORNE,SURFACEBIT
|
||
RTRUE
|
||
|
||
|
||
.FUNCT B-SITTING?:ANY:0:0
|
||
FSET? BLACKTHORNE,SITTING \FALSE
|
||
FSET? BLACKTHORNE,TRANSBIT /FALSE
|
||
FSET? BLACKTHORNE,SURFACEBIT /FALSE
|
||
RTRUE
|
||
|
||
|
||
.FUNCT B-SIT:ANY:0:0
|
||
FSET BLACKTHORNE,SITTING
|
||
FCLEAR BLACKTHORNE,TRANSBIT
|
||
FCLEAR BLACKTHORNE,SURFACEBIT
|
||
RTRUE
|
||
|
||
|
||
.FUNCT B-KNEELING?:ANY:0:0
|
||
FSET? BLACKTHORNE,SITTING \FALSE
|
||
FSET? BLACKTHORNE,TRANSBIT /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT B-KNEEL:ANY:0:0
|
||
FSET BLACKTHORNE,SITTING
|
||
FSET BLACKTHORNE,TRANSBIT
|
||
FCLEAR BLACKTHORNE,SURFACEBIT
|
||
RTRUE
|
||
|
||
|
||
.FUNCT B-LYING?:ANY:0:0
|
||
FSET? BLACKTHORNE,SITTING \FALSE
|
||
FSET? BLACKTHORNE,SURFACEBIT /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT B-LIE-DOWN:ANY:0:0
|
||
FSET BLACKTHORNE,SITTING
|
||
FCLEAR BLACKTHORNE,TRANSBIT
|
||
FSET BLACKTHORNE,SURFACEBIT
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-STAND:ANY:0:0,AV
|
||
EQUAL? PRSO,FALSE-VALUE,ROOMS \?CCL3
|
||
LOC WINNER >AV
|
||
FSET? AV,VEHBIT \?CCL6
|
||
EQUAL? AV,QUILT /?CCL6
|
||
PRINTI "You shouldn't stand up inside "
|
||
ICALL2 PRINTA,AV
|
||
PRINTR "."
|
||
?CCL6: FSET? BLACKTHORNE,SITTING \?CCL10
|
||
ICALL1 B-STAND
|
||
PRINTR "You stand up."
|
||
?CCL10: PRINT YOU-ARE
|
||
PRINTR " standing."
|
||
?CCL3: CALL2 HACK-HACK,STR?180
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-SIT:ANY:0:0
|
||
EQUAL? PRSO,FALSE-VALUE,ROOMS /?CCL3
|
||
PRINT WASTE-OF-TIME
|
||
RTRUE
|
||
?CCL3: FSET? BLACKTHORNE,SITTING \?CCL5
|
||
CALL1 B-SITTING?
|
||
ZERO? STACK /?CCL8
|
||
PRINT STR?181
|
||
CRLF
|
||
RTRUE
|
||
?CCL8: ICALL1 B-SIT
|
||
PRINTR "You sit up."
|
||
?CCL5: ICALL1 B-SIT
|
||
PRINTR "You sit down."
|
||
|
||
|
||
.FUNCT V-KNEEL:ANY:0:0
|
||
CALL1 B-KNEELING?
|
||
ZERO? STACK /?CCL3
|
||
PRINT STR?181
|
||
CRLF
|
||
RTRUE
|
||
?CCL3: ICALL1 B-KNEEL
|
||
PRINT STR?182
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-KNEEL-ON:ANY:0:0
|
||
EQUAL? PRSO,GROUND /?CTR2
|
||
FSET? PRSO,FURNITURE \?CCL3
|
||
?CTR2: ICALL2 PERFORM,V?KNEEL
|
||
RTRUE
|
||
?CCL3: PRINTR "You can't kneel on that!"
|
||
|
||
|
||
.FUNCT V-LIE-DOWN:ANY:0:0
|
||
EQUAL? PRSO,ROOMS,GROUND \?CCL3
|
||
CALL1 B-LYING?
|
||
ZERO? STACK /?CCL6
|
||
PRINT STR?181
|
||
CRLF
|
||
RTRUE
|
||
?CCL6: ICALL1 B-LIE-DOWN
|
||
PRINTR "You lie down."
|
||
?CCL3: FSET? PRSO,VEHBIT \FALSE
|
||
ICALL PERFORM,V?BOARD,PRSO
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-LIE:ANY:0:0
|
||
PRINTR "A duplicitous idea, but you'll have to be more specific."
|
||
|
||
|
||
.FUNCT V-AVOID:ANY:0:0
|
||
EQUAL? PRSO,OPPONENT \?CCL3
|
||
ICALL2 PERFORM,V?DODGE
|
||
RTRUE
|
||
?CCL3: PRINTR "You're doing the best you can."
|
||
|
||
|
||
.FUNCT V-FUCK:ANY:0:0
|
||
EQUAL? PRSO,YOU \?CCL3
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL3: FSET? PRSO,PERSON \?CCL7
|
||
FSET? PRSO,FEMALE \?CCL10
|
||
PRINTR "What an indelicate, even coarse, suggestion!"
|
||
?CCL10: PRINTR "Your predelictions are unusual, even given the local attitudes on these matters."
|
||
?CCL7: PRINTR "An unusual idea."
|
||
|
||
|
||
.FUNCT V-KNOW:ANY:0:0
|
||
PRINTR "I don't know."
|
||
|
||
|
||
.FUNCT V-TRAIN:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINTR "It'll take a lot of training."
|
||
|
||
|
||
.FUNCT V-BETRAY:ANY:0:0
|
||
CALL1 PAST-TENSE?
|
||
ZERO? STACK /?CCL3
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
?CCL3: PRINTI "There's no one to betray "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR " to."
|
||
|
||
|
||
.FUNCT V-LET-IN:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINT YOU-HAVE-TO
|
||
PRINT STR?125
|
||
PRINTR "how you are doing that."
|
||
|
||
|
||
.FUNCT V-PUT-AWAY:ANY:0:0
|
||
EQUAL? PRSI,ROOMS \?CCL3
|
||
PRINT YOU-HAVE-TO
|
||
PRINT STR?125
|
||
PRINTI "where you want to put "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL3: ICALL PERFORM,V?PUT,PRSO,PRSI
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-DODGE:ANY:0:0
|
||
EQUAL? PRSO,ROOMS,FALSE-VALUE,OPPONENT \?CCL3
|
||
ZERO? OPPONENT /?CCL3
|
||
PRINTI "You try to get out of the way of "
|
||
ICALL2 THE-PRINT,OPPONENT
|
||
PRINTR "'s attack."
|
||
?CCL3: EQUAL? PRSO,ROOMS,FALSE-VALUE \?CCL7
|
||
PRINTR "There's nothing to duck."
|
||
?CCL7: PRINTI "You don't need to dodge "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
|
||
|
||
.FUNCT V-WAKARIMASU:ANY:0:0
|
||
PRINTR "That's nice."
|
||
|
||
|
||
.FUNCT V-MIZU:ANY:0:0
|
||
LESS? SCENE,S-PRISON /?CCL3
|
||
PRINTR "That's Japanese for 'water.'"
|
||
?CCL3: PRINTR "What's that mean?"
|
||
|
||
|
||
.FUNCT V-QUIET:ANY:0:0
|
||
PRINTR "There doesn't seem to be anyone paying attention."
|
||
|
||
|
||
.FUNCT V-COLOR:ANY:0:0,DEFAULT,FG,BG
|
||
EQUAL? MACHINE,APPLE-2E,APPLE-2C,APPLE-2GS \?CCL3
|
||
PRINTR "[Sorry, the Apple II doesn't support color selection.]"
|
||
?CCL3: ZERO? COLOR-NOTE \?CND1
|
||
EQUAL? MACHINE,MACINTOSH \?CND1
|
||
CALL1 MAC-II?
|
||
ZERO? STACK /?CND1
|
||
SET 'COLOR-NOTE,TRUE-VALUE
|
||
PRINTI "If your Mac II displays fewer than 256 colors, you probably won't get the color you ask for.Do you still want to go ahead"
|
||
CALL1 YES?
|
||
ZERO? STACK /TRUE
|
||
?CND1: CRLF
|
||
SET 'FG,FG-COLOR
|
||
SET 'BG,BG-COLOR
|
||
?PRG10: ICALL1 DO-COLOR
|
||
PRINTI "You will get "
|
||
GET COLOR-TABLE,FG-COLOR
|
||
PRINT STACK
|
||
PRINTI " text on a "
|
||
GET COLOR-TABLE,BG-COLOR
|
||
PRINT STACK
|
||
PRINTI " background.
|
||
Is that what you want"
|
||
CALL1 YES?
|
||
ZERO? STACK /?CCL14
|
||
ICALL1 NORMAL-COLOR
|
||
SCREEN S-FULL
|
||
ICALL1 NORMAL-COLOR
|
||
SCREEN S-TEXT
|
||
ICALL1 V-$REFRESH
|
||
RTRUE
|
||
?CCL14: SET 'FG-COLOR,FG
|
||
SET 'BG-COLOR,BG
|
||
CRLF
|
||
PRINTI "Do you want to pick again"
|
||
CALL1 YES?
|
||
ZERO? STACK /TRUE
|
||
CRLF
|
||
JUMP ?PRG10
|
||
|
||
|
||
.FUNCT MAC-II?:ANY:0:0
|
||
EQUAL? MACHINE,MACINTOSH \FALSE
|
||
WINGET S-FULL,WWIDE
|
||
EQUAL? STACK,640 /TRUE
|
||
RFALSE
|
||
|
||
|
||
.FUNCT DO-COLOR:ANY:0:0
|
||
EQUAL? MACHINE,AMIGA \?CCL3
|
||
PUSH 11
|
||
JUMP ?CND1
|
||
?CCL3: EQUAL? MACHINE,IBM \?CCL5
|
||
GET 0,17
|
||
EQUAL? STACK,320 \?CCL5
|
||
PUSH 9
|
||
JUMP ?CND1
|
||
?CCL5: PUSH 8
|
||
?CND1: PUT COLOR-MENU,0,STACK
|
||
GET 0,8
|
||
BTST STACK,F-COLOR \?CTR9
|
||
EQUAL? MACHINE,MACINTOSH \?CCL10
|
||
CALL1 MAC-II?
|
||
ZERO? STACK \?CCL10
|
||
?CTR9: EQUAL? BG-COLOR,C-BLACK \?CCL17
|
||
SET 'BG-COLOR,C-WHITE
|
||
SET 'FG-COLOR,C-BLACK
|
||
RTRUE
|
||
?CCL17: SET 'BG-COLOR,C-BLACK
|
||
SET 'FG-COLOR,C-WHITE
|
||
RTRUE
|
||
?CCL10: CALL PICK-COLOR,FG-COLOR,STR?183,TRUE-VALUE >FG-COLOR
|
||
CALL PICK-COLOR,BG-COLOR,STR?184 >BG-COLOR
|
||
RTRUE
|
||
|
||
|
||
.FUNCT PICK-COLOR:ANY:2:3,WHICH,STRING,SETTING-FG,CHAR
|
||
PRINTI "The current "
|
||
PRINT STRING
|
||
PRINTI " color is "
|
||
GET COLOR-TABLE,WHICH
|
||
PRINT STACK
|
||
PRINTC 46
|
||
CRLF
|
||
EQUAL? WHICH,1 \?PRG6
|
||
ZERO? SETTING-FG /?CCL5
|
||
SET 'WHICH,C-BLACK
|
||
JUMP ?PRG6
|
||
?CCL5: SET 'WHICH,C-WHITE
|
||
?PRG6: CALL2 COLOR-OFFSET,WHICH
|
||
CALL GET-FROM-MENU,STR?185,COLOR-MENU,COLOR-MENU-F,STACK >CHAR
|
||
ZERO? SETTING-FG \?REP7
|
||
EQUAL? CHAR,FG-COLOR \?REP7
|
||
CRLF
|
||
PRINTI "You can't make the background the same color as the text!Pick another color."
|
||
CRLF
|
||
JUMP ?PRG6
|
||
?REP7: CRLF
|
||
CRLF
|
||
RETURN CHAR
|
||
|
||
|
||
.FUNCT COLOR-OFFSET:ANY:1:1,TMP
|
||
EQUAL? TMP,C-WHITE \?CCL3
|
||
SET 'TMP,1
|
||
RETURN TMP
|
||
?CCL3: GRTR? TMP,C-WHITE /?CCL4
|
||
RETURN TMP
|
||
?CCL4: DEC 'TMP
|
||
RETURN TMP
|
||
|
||
|
||
.FUNCT COLOR-MENU-F:ANY:2:2,TMP,M
|
||
EQUAL? TMP,1 \?CCL3
|
||
SET 'TMP,C-WHITE
|
||
RETURN TMP
|
||
?CCL3: GRTR? TMP,8 /?CCL4
|
||
RETURN TMP
|
||
?CCL4: INC 'TMP
|
||
RETURN TMP
|
||
|
||
|
||
.FUNCT V-SHRUG:ANY:0:0
|
||
PRINTR "An eloquent gesture."
|
||
|
||
|
||
.FUNCT V-SING:ANY:0:0
|
||
EQUAL? PRSO,FALSE-VALUE,ME \?CCL3
|
||
PRINTI "You sing an old sea chanty."
|
||
GRTR? SCENE,1 \?CND4
|
||
PRINTR "It's a good thing no Japanese understand English."
|
||
?CND4: CRLF
|
||
RTRUE
|
||
?CCL3: FSET? PRSO,PERSON \?CCL7
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " doesn't seem impressed."
|
||
?CCL7: PRINTR "You can't sing that."
|
||
|
||
|
||
.FUNCT V-DISTRACT:ANY:0:0
|
||
PRINTR "You are unsuccessful."
|
||
|
||
|
||
.FUNCT V-JOIN:ANY:0:0
|
||
FSET? PRSO,PERSON \?CCL3
|
||
ICALL PERFORM,V?WALK-TO,PRSO
|
||
RTRUE
|
||
?CCL3: ICALL PERFORM,V?BOARD,PRSO
|
||
RTRUE
|
||
|
||
|
||
.FUNCT OUTSIDE-TUB?:ANY:1:1,TUB
|
||
CALL1 GAME-VERB?
|
||
ZERO? STACK \FALSE
|
||
CALL1 PASSIVE-VERB?
|
||
ZERO? STACK \FALSE
|
||
ZERO? PRSO /FALSE
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK \FALSE
|
||
EQUAL? PRSO,TUB,ME,ROOMS /FALSE
|
||
IN? PRSO,TUB /FALSE
|
||
FSET? PRSO,BODY-PART /FALSE
|
||
EQUAL? PRSO,LATIN,SPANISH,PORTUGUESE /FALSE
|
||
EQUAL? PRSO,DUTCH /FALSE
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-DRAW:ANY:0:0
|
||
FSET? PRSO,WEAPONBIT \?CCL3
|
||
CALL2 HELD?,PRSO
|
||
ZERO? STACK /?CCL3
|
||
ICALL PERFORM,V?USE,PRSO
|
||
RTRUE
|
||
?CCL3: PRINTR "The result reveals that it's a good thing you became a Pilot instead of an artist."
|
||
|
||
|
||
.FUNCT V-DIVE:ANY:0:0
|
||
ZERO? PRSO /?CCL3
|
||
FSET? PRSO,VEHBIT \?CCL6
|
||
ICALL PERFORM,V?BOARD,PRSO
|
||
RTRUE
|
||
?CCL6: FSET? PRSO,DOORBIT \?CCL8
|
||
ICALL PERFORM,V?THROUGH,PRSO
|
||
RTRUE
|
||
?CCL8: IN? PRSO,ROOMS \?CCL10
|
||
ICALL PERFORM,V?WALK-TO,PRSO
|
||
RTRUE
|
||
?CCL10: PRINTI "You can't dive into "
|
||
ICALL1 THE-PRINT-PRSO
|
||
PRINTR "."
|
||
?CCL3: PRINTR "Taking a dive, eh?"
|
||
|
||
|
||
.FUNCT V-BABBLE:ANY:0:0
|
||
PRINTR "You babble nonsense for a while."
|
||
|
||
|
||
.FUNCT V-TRIP:ANY:0:0
|
||
PRINTR "You are unsuccessful."
|
||
|
||
|
||
.FUNCT V-NIHON-GO-GA:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
EQUAL? PRSO,HANASE-MASEN \?CCL5
|
||
PRINTR "True enough, but you're getting better."
|
||
?CCL5: PRINT STR?199
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-GENKI-DESU:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
EQUAL? PRSO,ROOMS \?CCL5
|
||
PRINTR "It's good to know you're feeling well."
|
||
?CCL5: PRINT STR?199
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-GOMEN-NASAI:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
EQUAL? PRSO,ROOMS \?CCL5
|
||
PRINTR "No one seems to be expecting an apology."
|
||
?CCL5: PRINT STR?199
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-ISOGI:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINTR "No one seems to be listening."
|
||
|
||
|
||
.FUNCT V-KONBANWA:ANY:0:0
|
||
ICALL PERFORM,V?KONNICHI-WA,ROOMS
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-KONNICHI-WA:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
EQUAL? PRSO,ROOMS \?CCL5
|
||
PRINTR "Good practice!Your accent is getting better."
|
||
?CCL5: PRINT STR?199
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-KINJIRU:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINT STR?200
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-DRY:ANY:0:0
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " doesn't seem to want to be dried."
|
||
|
||
|
||
.FUNCT V-WARN:ANY:0:0
|
||
FSET? PRSO,PERSON /?CCL3
|
||
CALL2 YOU-CANT-X-PRSO,STR?201
|
||
RSTACK
|
||
?CCL3: FSET? PRSO,DEAD \?CCL5
|
||
PRINT YOU-CANT
|
||
PRINT STR?65
|
||
CRLF
|
||
RTRUE
|
||
?CCL5: ZERO? PRSI /?CCL7
|
||
ICALL1 CTHE-PRINT-PRSO
|
||
PRINTI " doesn't seem worried about "
|
||
ICALL1 THE-PRINT-PRSI
|
||
PRINTR "."
|
||
?CCL7: ZERO? OPPONENT /?CCL9
|
||
ICALL PERFORM,V?WARN,PRSO,OPPONENT
|
||
RTRUE
|
||
?CCL9: ICALL1 CTHE-PRINT-PRSO
|
||
PRINTR " doesn't seem worried."
|
||
|
||
|
||
.FUNCT V-PULL-BEHIND:ANY:0:0
|
||
CALL2 YOU-CANT-X-PRSO,STR?202
|
||
RSTACK
|
||
|
||
|
||
.FUNCT V-TOMO:ANY:0:0
|
||
CALL1 TRY-QCONTEXT?
|
||
ZERO? STACK \TRUE
|
||
PRINT STR?200
|
||
CRLF
|
||
RTRUE
|
||
|
||
|
||
.FUNCT V-NEH:ANY:0:0
|
||
PRINTR """Neh."""
|
||
|
||
.ENDSEG
|
||
|
||
.ENDI
|