.FUNCT V-DESC-LEVEL:ANY:0:0 PRINTC 91 EQUAL? P-PRSA-WORD,W?SUPER,W?SUPERBRIEF \?CCL3 PRINTI "Super brief is not supported" JUMP ?CND1 ?CCL3: EQUAL? P-PRSA-WORD,W?BRIEF \?CCL6 SET 'VERBOSITY,1 PRINTI "Brief" JUMP ?CND4 ?CCL6: SET 'VERBOSITY,2 PRINTI "Verbose" ?CND4: PRINTI " descriptions" ?CND1: PRINTR ".]" .FUNCT V-SCRIPT:ANY:0:0 EQUAL? P-PRSA-WORD,W?SCRIPT \?CCL3 DIROUT K-D-PRT-ON PRINTR "Transcript: Begin" ?CCL3: PRINTI "Transcript: End" CRLF DIROUT K-D-PRT-OFF RTRUE .FUNCT V-VERIFY:ANY:0:0 ZERO? PRSO /?CCL3 EQUAL? PRSO,INTNUM \?CCL6 EQUAL? P-NUMBER,105 \?CCL6 PRINTN SERIAL CRLF RTRUE ?CCL6: CALL1 DONT-UNDERSTAND RSTACK ?CCL3: PRINTI "[Verifying... " VERIFY \?CCL11 PRINTI "Correct" JUMP ?CND9 ?CCL11: PRINTI "Error" ?CND9: PRINTI ".]" CRLF RETURN 2 .FUNCT V-COMMAND:ANY:0:0 DIRIN 1 RTRUE .FUNCT V-RECORD:ANY:0:0 DIROUT D-RECORD-ON RTRUE .FUNCT V-UNRECORD:ANY:0:0 DIROUT D-RECORD-OFF RTRUE .FUNCT V-INVENTORY:ANY:0:0 ICALL RT-MOVE-ALL-WORN,WINNER,PSEUDO-OBJECT ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 PRINTI " holding" CALL RT-PRINT-CONTENTS,WINNER,TRUE-VALUE ZERO? STACK \?CND1 PRINTI " nothing" ?CND1: CALL2 RT-SEE-ANYTHING-IN?,PSEUDO-OBJECT ZERO? STACK /?CND3 PRINTI ". " ICALL RT-PRINT-OBJ,WINNER,K-ART-HE,TRUE-VALUE,STR?56 PRINTI " wearing" ICALL2 RT-PRINT-CONTENTS,PSEUDO-OBJECT ICALL RT-MOVE-ALL-WORN,PSEUDO-OBJECT,WINNER ?CND3: PRINTR "." .FUNCT V-QUIT:ANY:0:1,ASK? ASSIGNED? 'ASK? /?CND1 SET 'ASK?,TRUE-VALUE ?CND1: ZERO? ASK? /?CCL5 PRINTI "Are you sure you want to quit? " CALL1 Y? ZERO? STACK /?CCL8 QUIT RTRUE ?CCL8: PRINTR "Continuing..." ?CCL5: QUIT RTRUE .FUNCT RT-FAILED-MSG:ANY:1:1,STR PRINTC 91 PRINT STR PRINTR " failed.]" .FUNCT V-RESTART:ANY:0:0 RESTART CALL2 RT-FAILED-MSG,STR?74 RSTACK .FUNCT V-SAVE:ANY:0:0,X PUTB G-INBUF,1,0 SET 'P-CONT,FALSE-VALUE SAVE >X EQUAL? X,2 /?CCL2 GET 0,8 BTST STACK,4 \?CND1 ?CCL2: COLOR GL-F-COLOR,GL-B-COLOR EQUAL? X,2 /?PRD5 PUSH 0 JUMP ?PRD6 ?PRD5: PUSH 1 ?PRD6: ICALL2 V-$REFRESH,STACK ?CND1: ZERO? X \?CCL9 ICALL2 RT-FAILED-MSG,STR?75 RETURN 2 ?CCL9: PRINTI "[Okay.]" CRLF RETURN 2 .FUNCT V-RESTORE:ANY:0:0 RESTORE ZERO? STACK \FALSE ICALL2 RT-FAILED-MSG,STR?76 RFALSE .FUNCT RT-PRINT-CONTENTS:ANY:1:3,CONT,RECUR?,CNT,OBJ,1ST? SET '1ST?,TRUE-VALUE FIRST? CONT >OBJ /?BOGUS1 ?BOGUS1: ZERO? OBJ \?PRG4 RETURN CNT ?PRG4: ZERO? OBJ /?REP5 FSET? OBJ,FL-INVISIBLE /?CND6 FSET? OBJ,FL-NO-DESC /?CND6 EQUAL? OBJ,WINNER /?CND6 ZERO? 1ST? /?CCL15 INC 'CNT SET '1ST?,FALSE-VALUE JUMP ?CND13 ?CCL15: NEXT? OBJ /?BOGUS16 ?BOGUS16: ICALL2 RT-COMMA-MSG,STACK ?CND13: ICALL RT-PRINT-OBJ,OBJ,K-ART-A ICALL2 THIS-IS-IT,OBJ FSET OBJ,FL-SEEN ?CND6: NEXT? OBJ >OBJ /?PRG4 JUMP ?PRG4 ?REP5: ZERO? RECUR? \?CCL19 RETURN CNT ?CCL19: FIRST? CONT >OBJ /?PRG21 ?PRG21: ZERO? OBJ \?CCL25 RETURN CNT ?CCL25: FSET? OBJ,FL-INVISIBLE /?CND23 FSET? OBJ,FL-NO-DESC /?CND23 EQUAL? OBJ,WINNER /?CND23 FSET? OBJ,FL-SURFACE /?CCL30 FSET? OBJ,FL-CONTAINER \?CND23 FSET? OBJ,FL-OPEN /?CCL30 FSET? OBJ,FL-TRANSPARENT \?CND23 ?CCL30: CALL2 RT-SEE-ANYTHING-IN?,OBJ ZERO? STACK /?CND23 PRINTI ". " ICALL RT-IN-ON-MSG,OBJ,TRUE-VALUE ICALL RT-PRINT-OBJ,OBJ,K-ART-THE ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,FALSE-VALUE,STR?77 CALL RT-PRINT-CONTENTS,OBJ,TRUE-VALUE,CNT >CNT ?CND23: NEXT? OBJ >OBJ /?PRG21 JUMP ?PRG21 .FUNCT RT-DESCRIBE-OBJECTS:ANY:0:3,CONT,CNT,LVL,OBJ,NXT,1ST?,P-CNT,P-PL? ASSIGNED? 'CONT /?CND1 SET 'CONT,HERE ?CND1: SET '1ST?,TRUE-VALUE FIRST? CONT >OBJ /?PRG4 ?PRG4: ZERO? OBJ /?REP5 FSET? OBJ,FL-NO-DESC /?CTR9 FSET? OBJ,FL-INVISIBLE \?CCL10 ?CTR9: NEXT? OBJ >OBJ /?PRG4 JUMP ?PRG4 ?CCL10: FSET? OBJ,FL-PERSON \?CCL15 INC 'P-CNT NEXT? OBJ >OBJ /?PRG4 JUMP ?PRG4 ?CCL15: ZERO? 1ST? /?CND6 GRTR? CNT,0 \?CCL20 PRINTC 32 JUMP ?CND18 ?CCL20: PRINTC TAB ?CND18: SET '1ST?,FALSE-VALUE IN? CONT,ROOMS \?CCL23 PRINTC 89 JUMP ?CND21 ?CCL23: ICALL RT-IN-ON-MSG,CONT,TRUE-VALUE ICALL RT-PRINT-OBJ,CONT,K-ART-THE PRINTI " y" ?CND21: PRINTI "ou see" ?CND6: ICALL RT-PRINT-OBJ,OBJ,K-ART-A ICALL2 THIS-IS-IT,OBJ FSET OBJ,FL-SEEN INC 'CNT NEXT? OBJ >OBJ /?PRG25 ?PRG25: ZERO? OBJ /?REP26 FSET? OBJ,FL-NO-DESC /?CND27 FSET? OBJ,FL-INVISIBLE /?CND27 FSET? OBJ,FL-PERSON \?REP26 INC 'P-CNT ?CND27: NEXT? OBJ >OBJ /?PRG25 JUMP ?PRG25 ?REP26: ZERO? OBJ /?CCL37 NEXT? OBJ >NXT /?PRG39 ?PRG39: ZERO? NXT /?REP40 FSET? NXT,FL-NO-DESC /?CND41 FSET? NXT,FL-INVISIBLE /?CND41 FSET? NXT,FL-PERSON \?REP40 ?CND41: NEXT? NXT >NXT /?PRG39 JUMP ?PRG39 ?REP40: ZERO? NXT \?CCL51 PRINTI " and" JUMP ?PRG4 ?CCL51: PRINTC 44 JUMP ?PRG4 ?CCL37: IN? CONT,ROOMS \?CND52 PRINTI " here" ?CND52: PRINTC 46 JUMP ?PRG4 ?REP5: GRTR? P-CNT,0 \?CND54 GRTR? CNT,0 \?CCL58 PRINTC 32 JUMP ?CND56 ?CCL58: PRINTC TAB ?CND56: ADD CNT,P-CNT >CNT GRTR? P-CNT,1 \?CND59 SET 'P-PL?,TRUE-VALUE ?CND59: FIRST? CONT >OBJ /?BOGUS61 ?BOGUS61: SET '1ST?,TRUE-VALUE ?PRG62: FSET? OBJ,FL-NO-DESC /?CND64 FSET? OBJ,FL-INVISIBLE /?CND64 FSET? OBJ,FL-PERSON \?CND64 ZERO? 1ST? /?CCL71 ICALL RT-PRINT-OBJ,OBJ,K-ART-A,TRUE-VALUE JUMP ?CND69 ?CCL71: ICALL RT-PRINT-OBJ,OBJ,K-ART-A ?CND69: SET '1ST?,FALSE-VALUE FSET? OBJ,FL-PLURAL \?CND72 SET 'P-PL?,TRUE-VALUE ?CND72: DLESS? 'P-CNT,1 \?CCL76 ZERO? P-PL? /?CCL79 PRINTI " are" JUMP ?CND77 ?CCL79: PRINTI " is" ?CND77: PRINTI " here." ?CND54: FIRST? CONT >OBJ /?PRG84 ?PRG84: ZERO? OBJ /?REP85 FSET? OBJ,FL-INVISIBLE /?CND86 FSET? OBJ,FL-SURFACE /?CCL90 FSET? OBJ,FL-CONTAINER \?CND86 FSET? OBJ,FL-TRANSPARENT \?CND86 ?CCL90: ADD LVL,1 CALL RT-DESCRIBE-OBJECTS,OBJ,CNT,STACK >CNT ?CND86: NEXT? OBJ >OBJ /?PRG84 JUMP ?PRG84 ?CCL76: EQUAL? P-CNT,1 \?CCL81 PRINTI " and" JUMP ?CND64 ?CCL81: PRINTC 44 ?CND64: NEXT? OBJ >OBJ /?PRG62 JUMP ?PRG62 ?REP85: ZERO? LVL /?CCL97 RETURN CNT ?CCL97: GRTR? CNT,0 /?CCL99 RETURN CNT ?CCL99: CRLF RETURN CNT .FUNCT RT-DESCRIBE-ROOM:ANY:0:1,LOOK?,VAL,P ZERO? LIT \?CCL3 PRINT K-TOO-DARK-MSG CRLF FSET HERE,FL-TOUCHED RFALSE ?CCL3: EQUAL? LIT,HERE,CH-PLAYER /?CND1 PRINTC TAB PRINTI "Light comes from" ICALL RT-PRINT-OBJ,LIT,K-ART-THE PRINTI ". " ?CND1: GETP HERE,P?ACTION >P ZERO? P /?CND5 ZERO? LOOK? /?CCL9 CALL P,M-LOOK >VAL JUMP ?CND5 ?CCL9: FSET? HERE,FL-TOUCHED /?CCL11 CALL P,M-F-LOOK >VAL JUMP ?CND5 ?CCL11: EQUAL? VERBOSITY,2 \?CCL13 CALL P,M-V-LOOK >VAL JUMP ?CND5 ?CCL13: CALL P,M-B-LOOK >VAL ?CND5: FSET HERE,FL-TOUCHED FSET HERE,FL-SEEN ZERO? VAL /TRUE RFALSE .FUNCT NOT-HOLDING?:ANY:1:1,OBJ IN? OBJ,WINNER /FALSE LOC OBJ IN? STACK,WINNER /FALSE SET 'CLOCK-WAIT,TRUE-VALUE PRINTC 91 ICALL RT-PRINT-OBJ,WINNER,K-ART-HE,TRUE-VALUE,STR?56 PRINTI "n't holding" ICALL RT-PRINT-OBJ,OBJ,K-ART-HIM PRINTR ".]" .FUNCT HELD?:ANY:1:2,OBJ,CONT,L ZERO? CONT \?PRG3 SET 'CONT,PLAYER ?PRG3: LOC OBJ >L ZERO? L /FALSE EQUAL? L,CONT /TRUE EQUAL? CONT,PLAYER,WINNER \?CCL11 SET 'OBJ,L JUMP ?PRG3 ?CCL11: EQUAL? L,ROOMS,GLOBAL-OBJECTS /FALSE SET 'OBJ,L JUMP ?PRG3 .FUNCT TOO-DARK:ANY:0:0 PRINTR "It's too dark to see." .FUNCT V-ASK-ABOUT:ANY:0:0 CALL1 RT-NO-RESPONSE-MSG RSTACK .FUNCT V-ATTACH:ANY:0:0 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't attach" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI " to" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTR "." .FUNCT V-CLOSE:ANY:0:0 FSET? PRSO,FL-OPENABLE /?CCL3 CALL1 RT-YOU-CANT-MSG RSTACK ?CCL3: FSET? PRSO,FL-OPEN \?CCL6 FCLEAR PRSO,FL-OPEN FSET? PRSO,FL-DOOR \?CND7 ICALL2 RT-CHECK-ADJ,PRSO ?CND7: GRTR? P-MULT,1 \?CCL11 PRINTI "Closed" JUMP ?CND9 ?CCL11: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?78 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE ?CND9: PRINTR "." ?CCL6: CALL RT-ALREADY-MSG,PRSO,STR?79 RSTACK .FUNCT V-CUT:ANY:0:0 PRINTC TAB ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't cut" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI " with" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTR "." .FUNCT IDROP:ANY:0:0 CALL2 NOT-HOLDING?,PRSO ZERO? STACK \FALSE IN? PRSO,WINNER /?CCL5 LOC PRSO FSET? STACK,FL-OPEN /?CCL5 LOC PRSO ICALL RT-PRINT-OBJ,STACK,K-ART-THE,TRUE-VALUE,STR?56 PRINTI " closed." CRLF RFALSE ?CCL5: FSET? PRSO,FL-WORN \?CND8 ICALL RT-FIRST-YOU-MSG,STR?80,PRSO ?CND8: MOVE PRSO,HERE FCLEAR PRSO,FL-WORN FCLEAR PRSO,FL-NO-DESC FCLEAR PRSO,FL-INVISIBLE RTRUE .FUNCT V-DROP:ANY:0:0,L CALL1 IDROP ZERO? STACK /FALSE GRTR? P-MULT,1 \?CCL6 PRINTI "Dropped" JUMP ?CND4 ?CCL6: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?81 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE CALL FIND-FLAG,HERE,FL-VEHICLE,PRSO >L ZERO? L /?CND4 MOVE PRSO,L ICALL2 RT-IN-ON-MSG,L PRINTI "to" ICALL RT-PRINT-OBJ,L,K-ART-THE ?CND4: PRINTR "." .FUNCT PRE-EMPTY:ANY:0:0,L FSET? PRSO,FL-SURFACE /?CCL3 FSET? PRSO,FL-CONTAINER /?CCL3 LOC PRSO >L ZERO? L /?CCL8 FSET? L,FL-SURFACE /?CTR7 FSET? L,FL-CONTAINER \?CCL8 ?CTR7: ICALL PERFORM,V?EMPTY,L,PRSI RTRUE ?CCL8: CALL1 RT-YOU-CANT-MSG RSTACK ?CCL3: FSET? PRSO,FL-CONTAINER \?CCL14 FSET? PRSO,FL-OPEN /?CCL14 FSET? PRSO,FL-OPENABLE \?CCL14 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 PRINTR "n't open." ?CCL14: EQUAL? PRSI,FALSE-VALUE,ROOMS,TH-HANDS /FALSE FSET? PRSI,FL-SURFACE /FALSE FSET? PRSI,FL-CONTAINER /FALSE ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't empty" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI " into" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTR "." .FUNCT V-EMPTY:ANY:0:0 CALL RT-EMPTY-MSG,PRSO,PRSI RSTACK .FUNCT RT-EMPTY-MSG:ANY:1:2,CONT,DEST,OBJ,NXT,X,OM SET 'OM,P-MULT SET 'P-MULT,0 FIRST? CONT >OBJ /?PRG2 ?PRG2: ZERO? OBJ /?REP3 FSET? OBJ,FL-INVISIBLE /?CND4 FSET? OBJ,FL-TAKEABLE \?CND4 INC 'P-MULT ?CND4: NEXT? OBJ >OBJ /?PRG2 JUMP ?PRG2 ?REP3: ZERO? P-MULT \?CND11 PRINTI "There is nothing" ICALL2 RT-IN-ON-MSG,PRSO ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTC 46 CRLF SET 'P-MULT,OM RTRUE ?CND11: FIRST? CONT >OBJ /?BOGUS13 ?BOGUS13: EQUAL? DEST,FALSE-VALUE,ROOMS,TH-GROUND /?CTR15 EQUAL? DEST,GLOBAL-HERE \?CCL16 ?CTR15: SET 'DEST,HERE JUMP ?PRG20 ?CCL16: EQUAL? DEST,TH-HANDS \?PRG20 SET 'DEST,CH-PLAYER ?PRG20: ZERO? OBJ /?REP21 FSET? OBJ,FL-INVISIBLE /?PRG20 FSET? OBJ,FL-TAKEABLE \?PRG20 ICALL RT-PRINT-OBJ,OBJ,K-ART-THE,TRUE-VALUE PRINTI ": " NEXT? OBJ >NXT /?BOGUS28 ?BOGUS28: EQUAL? DEST,CH-PLAYER \?CCL31 CALL PERFORM,V?TAKE,OBJ,PRSO >X EQUAL? X,M-FATAL /?REP21 JUMP ?CND29 ?CCL31: EQUAL? DEST,HERE \?CCL35 MOVE OBJ,HERE ICALL RT-PRINT-OBJ,OBJ,K-ART-HE,TRUE-VALUE,STR?82 PRINTI " on" ICALL RT-PRINT-OBJ,TH-GROUND,K-ART-THE PRINTI " nearby." CRLF JUMP ?CND29 ?CCL35: CALL RT-ROOM-IN-MSG?,OBJ,DEST ZERO? STACK \?CND29 CALL RT-CHECK-MOVE-MSG?,OBJ,DEST ZERO? STACK \?REP21 MOVE OBJ,DEST PRINTI "Done." CRLF ?CND29: SET 'OBJ,NXT JUMP ?PRG20 ?REP21: SET 'P-MULT,OM RTRUE .FUNCT V-EMPTY-FROM:ANY:0:0 IN? PRSO,PRSI /?CCL3 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 PRINTI "n't" ICALL2 RT-IN-ON-MSG,PRSI ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTR "." ?CCL3: ICALL PERFORM,V?EMPTY,PRSI RTRUE .FUNCT V-ENTER:ANY:0:0,VEH,DIR,RM EQUAL? PRSO,ROOMS \?CCL3 CALL FIND-FLAG,HERE,FL-VEHICLE >VEH ZERO? VEH /?CCL6 IN? WINNER,VEH \?CCL9 ICALL2 RT-ALREADY-MSG,WINNER ICALL2 RT-IN-ON-MSG,VEH ICALL RT-PRINT-OBJ,VEH,K-ART-THE PRINTR ".]" ?CCL9: FSET? VEH,FL-SURFACE /?CTR10 FSET? VEH,FL-OPEN \?CCL11 ?CTR10: MOVE WINNER,VEH ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?83 ICALL2 RT-IN-ON-MSG,VEH ICALL RT-PRINT-OBJ,VEH,K-ART-THE PRINTR "." ?CCL11: FSET? VEH,FL-OPENABLE \?CCL15 ICALL RT-PRINT-OBJ,VEH,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " closed." ?CCL15: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't get" ICALL2 RT-IN-ON-MSG,VEH ICALL RT-PRINT-OBJ,VEH,K-ART-THE PRINTR "." ?CCL6: CALL2 RT-DO-WALK,P?IN EQUAL? STACK,FALSE-VALUE,M-FATAL \TRUE SET 'CLOCK-WAIT,TRUE-VALUE RTRUE ?CCL3: EQUAL? PRSO,HERE,GLOBAL-HERE \?CCL18 ICALL2 RT-ALREADY-MSG,WINNER ICALL2 RT-IN-ON-MSG,HERE ICALL RT-PRINT-OBJ,HERE,K-ART-THE PRINTR ".]" ?CCL18: IN? PRSO,ROOMS \?CCL20 CALL2 RT-FIND-DIR,PRSO >DIR ZERO? DIR /?CCL22 CALL2 RT-DO-WALK,DIR ZERO? STACK \TRUE ?CCL22: FSET? PRSO,FL-AUTO-ENTER \?CCL26 ICALL2 RT-GOTO,PRSO RTRUE ?CCL26: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTR " can't get there from here." ?CCL20: FSET? PRSO,FL-DOOR \?CCL28 CALL2 RT-OTHER-SIDE,PRSO ZERO? STACK /?CCL31 ICALL2 RT-DO-WALK,GL-DOOR-DIR RTRUE ?CCL31: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?66 PRINTR "n't seem to go anywhere." ?CCL28: FSET? PRSO,FL-VEHICLE \?CCL33 FSET? PRSO,FL-SURFACE /?CTR35 FSET? PRSO,FL-OPEN \?CCL36 ?CTR35: MOVE WINNER,PRSO ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?83 ICALL2 RT-IN-ON-MSG,PRSO ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL36: FSET? PRSO,FL-OPENABLE \?CCL40 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " closed." ?CCL40: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't get" ICALL2 RT-IN-ON-MSG,PRSO ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL33: ICALL1 RT-IMPOSSIBLE-MSG RTRUE .FUNCT V-EXIT:ANY:0:0,VEH,L,DIR EQUAL? PRSO,ROOMS \?CCL3 LOC WINNER >L IN? L,ROOMS \?CCL6 ICALL2 RT-DO-WALK,P?OUT RTRUE ?CCL6: FSET? L,FL-VEHICLE /?CTR7 FSET? L,FL-SURFACE /?CTR7 FSET? L,FL-CONTAINER \?CCL8 ?CTR7: FSET? L,FL-SURFACE /?CTR13 FSET? L,FL-OPEN \?CCL14 ?CTR13: LOC L MOVE WINNER,STACK ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?83 ICALL2 RT-OUT-OFF-MSG,L PRINTI " of" ICALL RT-PRINT-OBJ,L,K-ART-THE PRINTR "." ?CCL14: FSET? L,FL-OPENABLE \?CCL18 ICALL RT-PRINT-OBJ,L,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " closed." ?CCL18: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't get" ICALL2 RT-OUT-OFF-MSG,L PRINTI " of" ICALL RT-PRINT-OBJ,L,K-ART-THE PRINTR "." ?CCL8: CALL FIND-FLAG,HERE,FL-VEHICLE >VEH ZERO? VEH /TRUE ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 PRINTI "n't" ICALL2 RT-IN-ON-MSG,VEH ICALL RT-PRINT-OBJ,VEH,K-ART-THE PRINTR "." ?CCL3: EQUAL? PRSO,HERE,GLOBAL-HERE \?CCL21 ICALL2 RT-DO-WALK,P?OUT RTRUE ?CCL21: IN? PRSO,ROOMS \?CCL23 ICALL1 RT-NOT-IN-ROOM-MSG RTRUE ?CCL23: FSET? PRSO,FL-DOOR \?CCL25 CALL2 RT-OTHER-SIDE,PRSO ZERO? STACK /?CCL28 ICALL2 RT-DO-WALK,GL-DOOR-DIR RTRUE ?CCL28: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?66 PRINTR "n't seem to go anywhere." ?CCL25: FSET? PRSO,FL-VEHICLE /?CTR29 FSET? PRSO,FL-CONTAINER /?CTR29 FSET? PRSO,FL-SURFACE \?CCL30 ?CTR29: IN? WINNER,PRSO \?CCL36 FSET? PRSO,FL-SURFACE /?CTR38 FSET? PRSO,FL-OPEN \?CCL39 ?CTR38: LOC WINNER LOC STACK MOVE WINNER,STACK ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?83 ICALL2 RT-OUT-OFF-MSG,PRSO PRINTI " of" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL39: FSET? PRSO,FL-OPENABLE \?CCL43 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " closed." ?CCL43: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't get" ICALL2 RT-OUT-OFF-MSG,PRSO PRINTI " of" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL36: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 PRINTI "n't" ICALL2 RT-IN-ON-MSG,PRSO ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL30: LOC PRSO >L FSET? L,FL-CONTAINER \?CCL45 PRINTI "[from" ICALL RT-PRINT-OBJ,L,K-ART-THE PRINTC 93 CRLF ICALL PERFORM,V?TAKE,PRSO RTRUE ?CCL45: ICALL1 RT-IMPOSSIBLE-MSG RTRUE .FUNCT RT-NOT-IN-ROOM-MSG:ANY:0:0 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 PRINTI "n't" ICALL2 RT-IN-ON-MSG,PRSO ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." .FUNCT RT-DO-WALK:ANY:1:3,DIR1,DIR2,DIR3,X SET 'P-WALK-DIR,DIR1 CALL PERFORM,V?WALK,DIR1 >X ZERO? DIR2 \?PRD4 RETURN X ?PRD4: EQUAL? X,FALSE-VALUE,M-FATAL /?CND1 SET 'P-WALK-DIR,DIR2 CALL PERFORM,V?WALK,DIR2 >X ZERO? DIR3 \?PRD8 RETURN X ?PRD8: EQUAL? X,FALSE-VALUE,M-FATAL /?CND1 SET 'P-WALK-DIR,DIR3 CALL PERFORM,V?WALK,DIR3 >X ?CND1: RETURN X .FUNCT V-EXAMINE:ANY:0:0 EQUAL? PRSO,HERE,GLOBAL-HERE \?CCL3 CALL2 PERFORM,V?LOOK RSTACK ?CCL3: EQUAL? PRSO,INTDIR \?CCL5 SET 'CLOCK-WAIT,TRUE-VALUE PRINTR "[If you want to see what's there, go there.]" ?CCL5: FSET? PRSO,FL-DOOR \?CCL7 FSET PRSO,FL-SEEN ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 ICALL2 RT-OPEN-MSG,PRSO PRINTR "." ?CCL7: FSET? PRSO,FL-CONTAINER /?CTR8 FSET? PRSO,FL-SURFACE \?CCL9 ?CTR8: FSET PRSO,FL-SEEN CALL1 V-LOOK-IN RSTACK ?CCL9: FSET PRSO,FL-SEEN CALL1 RT-NOTHING-SPECIAL-MSG RSTACK .FUNCT RT-NOTHING-SPECIAL-MSG:ANY:0:0 PRINTI "You see nothing " CALL2 RT-PICK-NEXT,K-UNUSUAL-TBL PRINT STACK PRINTI " about" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." .FUNCT V-EXTINGUISH:ANY:0:0 PRINTI "['Extinguish' currently has no default handling.] " RETURN 2 .FUNCT V-FOLLOW:ANY:0:0 PRINTI "['Follow' currently has no default handling.] " RETURN 2 .FUNCT V-GIVE:ANY:0:0 PRINTC TAB ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?66 PRINTI "n't seem interested in" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." .FUNCT V-GIVE-SWP:ANY:0:0 ICALL PERFORM,V?GIVE,PRSI,PRSO RTRUE .FUNCT V-HIT:ANY:0:0 PRINTI "['Hit' currently has no default handling.] " RETURN 2 .FUNCT V-INFLATE:ANY:0:0 PRINT K-HOW-INTEND-MSG CRLF RTRUE .FUNCT V-LIFT:ANY:0:0 PRINTI "['Lift' currently has no default handling.] " RETURN 2 .FUNCT V-LISTEN:ANY:0:0 EQUAL? PRSO,FALSE-VALUE,ROOMS \?CCL3 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?85 PRINTI "nothing " CALL2 RT-PICK-NEXT,K-UNUSUAL-TBL PRINT STACK PRINTR "." ?CCL3: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " silent." .FUNCT V-LOCK:ANY:0:0 FSET? PRSO,FL-LOCKED \?CCL3 CALL RT-ALREADY-MSG,PRSO,STR?86 RSTACK ?CCL3: CALL RT-MATCH-KEY,PRSO,PRSI ZERO? STACK \?CCL5 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't lock" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI " with" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTC 46 CRLF RTRUE ?CCL5: FSET PRSO,FL-LOCKED FSET? PRSO,FL-OPEN \?CCL8 FCLEAR PRSO,FL-OPEN FSET? PRSO,FL-DOOR \?CND9 ICALL2 RT-CHECK-ADJ,PRSO ?CND9: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?78 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI " and" ICALL RT-PRINT-VERB,WINNER,STR?87 ICALL RT-PRINT-OBJ,PRSO,K-ART-HIM PRINTR "." ?CCL8: ICALL RT-LOCK-MSG,PRSO,PRSI,TRUE-VALUE PRINTR "." .FUNCT V-LOOK:ANY:0:0 CALL2 RT-DESCRIBE-ROOM,TRUE-VALUE ZERO? STACK /TRUE ICALL1 RT-DESCRIBE-OBJECTS RTRUE .FUNCT V-LOOK-BEHIND:ANY:0:0 PRINTC TAB PRINTI "You don't see anything " CALL2 RT-PICK-NEXT,K-UNUSUAL-TBL PRINT STACK PRINTR "." .FUNCT V-LOOK-UNDER:ANY:0:0 PRINTC TAB PRINTI "You don't see anything " CALL2 RT-PICK-NEXT,K-UNUSUAL-TBL PRINT STACK PRINTR "." .FUNCT V-LOOK-IN:ANY:0:1,DIR,RM ASSIGNED? 'DIR /?CND1 SET 'DIR,P?IN ?CND1: EQUAL? PRSO,ROOMS \?CND3 SET 'RM,P-IT-OBJECT FSET? RM,FL-CONTAINER /?CCL6 CALL FIND-FLAG-LG,HERE,FL-OPENABLE >RM ZERO? RM /?CND3 ?CCL6: ICALL PERFORM,PRSA,RM,PRSI RTRUE ?CND3: FSET? PRSO,FL-OPEN /?CCL11 FSET? PRSO,FL-OPENABLE \?CCL11 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " closed." ?CCL11: FSET? PRSO,FL-CONTAINER /?PRD17 FSET? PRSO,FL-SURFACE \?CCL15 ?PRD17: CALL2 RT-SEE-INSIDE?,PRSO ZERO? STACK /?CCL15 FIRST? PRSO \?CCL22 PRINTI "You can see" ICALL2 RT-PRINT-CONTENTS,PRSO ICALL2 RT-IN-ON-MSG,PRSO FSET? PRSO,FL-SURFACE /?CND23 PRINTI "side" ?CND23: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL22: PRINTI "There's nothing" ICALL2 RT-IN-ON-MSG,PRSO ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL15: EQUAL? DIR,P?IN \?CCL26 CALL2 RT-YOU-CANT-MSG,STR?88 RSTACK ?CCL26: CALL2 RT-YOU-CANT-MSG,STR?89 RSTACK .FUNCT TELL-CANT-FIND:ANY:0:0 SET 'CLOCK-WAIT,TRUE-VALUE PRINTR "[That place isn't close enough.]" .FUNCT V-LOOK-ON:ANY:0:0 FSET? PRSO,FL-SURFACE \?CCL3 CALL1 V-LOOK-IN RSTACK ?CCL3: PRINTI "There's no good surface on" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." .FUNCT V-MOVE:ANY:0:0 PRINTI "['Move' currently has no default handling.] " RETURN 2 .FUNCT V-NO:ANY:0:0 PRINTI "[You seem sure of yourself.]" CRLF RETURN 2 .FUNCT RT-MATCH-KEY:ANY:1:2,DOOR,KEY EQUAL? DOOR,TH-STEEL-BOX \?CCL3 EQUAL? KEY,TH-STEEL-KEY /TRUE RFALSE ?CCL3: EQUAL? DOOR,TH-MISSILE-PANEL \FALSE EQUAL? KEY,TH-MISSILE-ACCESS-KEY /TRUE RFALSE .FUNCT RT-OTHER-SIDE:ANY:1:1,DOOR,RM,L,P,OBJ,PT,PTS LOC WINNER >L ?PRG1: NEXTP L,P >P ZERO? P /FALSE LESS? P,LOW-DIRECTION /FALSE GETPT L,P >PT ZERO? PT /?PRG1 PTSIZE PT >PTS EQUAL? PTS,DEXIT \?PRG1 GET PT,DEXITOBJ EQUAL? DOOR,STACK \?PRG1 SET 'GL-DOOR-DIR,P GET PT,REXIT >RM RETURN RM .FUNCT RT-LOCK-MSG:ANY:3:3,DOOR,KEY,LOCK? ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?90 ICALL RT-PRINT-OBJ,KEY,K-ART-THE PRINTI " in the lock and" ICALL RT-PRINT-VERB,WINNER,STR?91 PRINTI " it a turn" ZERO? LOCK? /?CCL3 PRINTI ". " ICALL RT-PRINT-OBJ,DOOR,K-ART-THE,TRUE-VALUE PRINTI " locks with" JUMP ?CND1 ?CCL3: PRINTI ", and" ICALL RT-PRINT-VERB,WINNER,STR?85 ?CND1: PRINTI " a satisfying click" RTRUE .FUNCT RT-OPEN-DOOR-MSG:ANY:1:2,DOOR,KEY,RM,LOCK?,TMP1,TMP2,?TMP1 FSET? DOOR,FL-LOCKED \?CCL3 SET 'LOCK?,TRUE-VALUE FCLEAR DOOR,FL-LOCKED ICALL RT-LOCK-MSG,DOOR,KEY,FALSE-VALUE FSET? DOOR,FL-AUTO-OPEN /?CCL5 EQUAL? PRSA,V?OPEN \?CND1 ?CCL5: FSET DOOR,FL-OPEN FSET? DOOR,FL-DOOR \?CND8 ICALL2 RT-CHECK-ADJ,DOOR ?CND8: PRINTI ". " ICALL RT-PRINT-OBJ,DOOR,K-ART-THE,TRUE-VALUE,STR?92 PRINTI " open" JUMP ?CND1 ?CCL3: FSET DOOR,FL-OPEN FSET? DOOR,FL-DOOR \?CND10 ICALL2 RT-CHECK-ADJ,DOOR ?CND10: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?93 ICALL RT-PRINT-OBJ,DOOR,K-ART-THE ?CND1: FSET? DOOR,FL-OPEN \?CND12 FSET? DOOR,FL-DOOR \?CCL16 CALL2 RT-OTHER-SIDE,DOOR >RM ZERO? RM /?CND12 FSET? DOOR,FL-AUTO-ENTER \?CCL20 PRINTI " and" ZERO? LOCK? /?CND21 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE ?CND21: ICALL RT-PRINT-VERB,WINNER,STR?94 PRINTI " through." CRLF CRLF ICALL2 RT-GOTO,RM RTRUE ?CCL20: GETP HERE,P?ADJACENT >TMP2 ZERO? TMP2 /?CND12 ADD TMP2,1 >?TMP1 GETB TMP2,0 INTBL? RM,?TMP1,STACK,1 >TMP1 \?CND12 GETB TMP1,1 ZERO? STACK /?CND12 CALL2 RT-SEE-ANYTHING-IN?,RM ZERO? STACK /?CND12 PRINTI " and" ZERO? LOCK? /?CND30 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE ?CND30: ICALL RT-PRINT-VERB,WINNER,STR?77 ICALL2 RT-PRINT-CONTENTS,RM JUMP ?CND12 ?CCL16: FSET? DOOR,FL-TRANSPARENT /?CND12 CALL2 RT-SEE-ANYTHING-IN?,DOOR ZERO? STACK /?CND12 PRINTI ". Inside you see" ICALL2 RT-PRINT-CONTENTS,DOOR ?CND12: PRINTC 46 CRLF FSET? DOOR,FL-TAKEABLE /FALSE FSET? DOOR,FL-OPEN \FALSE CALL2 RT-SCORE-OBJ,DOOR RSTACK .FUNCT V-OPEN:ANY:0:0,F,STR,RM FSET? PRSO,FL-OPENABLE /?CCL3 CALL1 RT-YOU-CANT-MSG RSTACK ?CCL3: FSET? PRSO,FL-OPEN \?CCL5 CALL RT-ALREADY-MSG,PRSO,STR?93 RSTACK ?CCL5: ZERO? PRSI \?CCL7 FSET? PRSO,FL-LOCKED \?CCL7 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " locked." ?CCL7: ZERO? PRSI /?CCL11 CALL RT-MATCH-KEY,PRSO,PRSI ZERO? STACK \?CCL11 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't open" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI " with" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTR "." ?CCL11: CALL RT-OPEN-DOOR-MSG,PRSO,PRSI RSTACK .FUNCT V-PLUG-IN:ANY:0:0 PRINTC TAB ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't plug in" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." .FUNCT V-PULL:ANY:0:0 PRINTI " You pull" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR ", but nothing happens." .FUNCT V-PUSH:ANY:0:0 PRINTI " You push" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR ", but nothing happens." .FUNCT PRE-PUT:ANY:0:0 IN? PRSO,GLOBAL-OBJECTS \?CCL3 ICALL2 NOT-HERE,PRSO RTRUE ?CCL3: EQUAL? PRSI,TH-GROUND,GLOBAL-HERE,FALSE-VALUE /FALSE IN? PRSI,GLOBAL-OBJECTS \?CCL7 ICALL2 NOT-HERE,PRSI RTRUE ?CCL7: CALL HELD?,PRSI,PRSO ZERO? STACK /FALSE CALL RT-YOU-CANT-MSG,STR?90,PRSI,STR?95 RSTACK .FUNCT V-PUT:ANY:0:0 FSET? PRSI,FL-SURFACE /?CCL3 PRINTI "There's no good surface on" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTR "." ?CCL3: CALL1 RT-PUT-ON-OR-IN RSTACK .FUNCT TELL-FIND-NONE:ANY:1:2,STR,OBJ PRINTI "You search for " PRINT STR ZERO? OBJ /?CND1 ICALL RT-PRINT-OBJ,OBJ,K-ART-A ?CND1: PRINTR " but find none." .FUNCT PRE-PUT-IN:ANY:0:0 EQUAL? PRSI,PSEUDO-OBJECT \?CCL3 CALL1 PRE-PUT RSTACK ?CCL3: FSET? PRSI,FL-READABLE \?CCL5 ICALL1 WONT-HELP RETURN 2 ?CCL5: FSET? PRSI,FL-CONTAINER /?CND1 ICALL TELL-FIND-NONE,STR?96,PRSI RETURN 2 ?CND1: FSET? PRSI,FL-OPEN /?CND11 FSET? PRSI,FL-OPENABLE \?CND11 ICALL RT-FIRST-YOU-MSG,STR?93,PRSI FSET PRSI,FL-OPEN ?CND11: CALL1 PRE-PUT RSTACK .FUNCT V-PUT-IN:ANY:0:0 FSET? PRSI,FL-OPEN /?CCL3 FSET? PRSI,FL-OPENABLE \?CCL6 ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?56 PRINTI " closed" JUMP ?CND4 ?CCL6: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't open" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE ?CND4: PRINTR "." ?CCL3: CALL1 RT-PUT-ON-OR-IN RSTACK .FUNCT RT-PUT-ON-OR-IN:ANY:0:0 ZERO? PRSI \?CCL3 CALL1 RT-YOU-CANT-MSG RSTACK ?CCL3: EQUAL? PRSO,PRSI \?CCL5 CALL1 HAR-HAR RSTACK ?CCL5: IN? PRSO,PRSI \?CCL7 ICALL2 RT-ALREADY-MSG,PRSO ICALL2 RT-IN-ON-MSG,PRSI ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTR ".]" ?CCL7: CALL RT-ROOM-IN-MSG?,PRSO,PRSI ZERO? STACK \TRUE CALL2 HELD?,PRSO ZERO? STACK \?CCL11 CALL1 ITAKE ZERO? STACK /TRUE ?CCL11: FSET? PRSO,FL-WORN \?CND14 FCLEAR PRSO,FL-WORN ICALL RT-FIRST-YOU-MSG,STR?80,PRSO ?CND14: MOVE PRSO,PRSI FSET PRSO,FL-TOUCHED FSET? PRSI,FL-PERSON \?CCL18 FSET? PRSO,FL-CLOTHING \?CCL18 FSET PRSO,FL-WORN ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?90 PRINTI " on" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE JUMP ?CND16 ?CCL18: GRTR? P-MULT,1 \?CCL22 PRINTI "Done" JUMP ?CND16 ?CCL22: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?90 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTC 32 FSET? PRSI,FL-SURFACE /?CTR24 FSET? PRSI,FL-PERSON \?CCL25 ?CTR24: PRINTC 111 JUMP ?CND23 ?CCL25: PRINTC 105 ?CND23: PRINTI "nto" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE ?CND16: PRINTR "." .FUNCT RT-TOTAL-SIZE:ANY:1:1,OBJ1,OBJ,TOTSIZ FIRST? OBJ1 >OBJ /?PRG2 ?PRG2: ZERO? OBJ \?CCL6 RETURN TOTSIZ ?CCL6: FSET? OBJ,FL-WORN /?CND4 GETPT OBJ,P?SIZE GETB STACK,K-SIZ-SIZ ADD TOTSIZ,STACK >TOTSIZ ?CND4: NEXT? OBJ >OBJ /?PRG2 JUMP ?PRG2 .FUNCT RT-OBJ-TOO-LARGE?:ANY:2:2,OBJ1,OBJ2,CAP,?TMP1 GETPT OBJ2,P?SIZE GETB STACK,K-SIZ-CAP >CAP EQUAL? CAP,K-CAP-MAX /FALSE GETPT OBJ1,P?SIZE GETB STACK,K-SIZ-SIZ >?TMP1 CALL2 RT-TOTAL-SIZE,OBJ2 ADD ?TMP1,STACK GRTR? STACK,CAP /TRUE RFALSE .FUNCT RT-ROOM-IN-MSG?:ANY:2:2,OBJ1,OBJ2 CALL RT-OBJ-TOO-LARGE?,OBJ1,OBJ2 ZERO? STACK /FALSE PRINTI "There is not enough room" ICALL2 RT-IN-ON-MSG,OBJ2 ICALL RT-PRINT-OBJ,OBJ2,K-ART-THE PRINTR "." .FUNCT RT-CHECK-MOVE-MSG?:ANY:2:2,SRC,DEST,PTR,OLOC,CNT ZERO? DEST /FALSE SET 'PTR,GL-LOC-TRAIL SET 'OLOC,DEST ?PRG4: PUT PTR,0,OLOC INC 'CNT ZERO? OLOC /?REP5 IN? OLOC,ROOMS /?REP5 IN? OLOC,LOCAL-GLOBALS /?REP5 IN? OLOC,GLOBAL-OBJECTS /?REP5 LOC OLOC >OLOC ADD PTR,2 >PTR EQUAL? OLOC,DEST \?PRG4 ?REP5: INTBL? SRC,GL-LOC-TRAIL,CNT \FALSE ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't put" ICALL RT-PRINT-OBJ,SRC,K-ART-THE ICALL2 RT-IN-ON-MSG,SRC ICALL RT-PRINT-OBJ,SRC,K-ART-HIM PRINTI "self, or" ICALL2 RT-IN-ON-MSG,SRC PRINTI "something that is already" ICALL2 RT-IN-ON-MSG,SRC ICALL RT-PRINT-OBJ,SRC,K-ART-HIM PRINTR "." .FUNCT V-REACH-BEHIND:ANY:0:0 PRINTI "['Reach behind' currently has no default handling.] " RETURN 2 .FUNCT V-REACH-IN:ANY:0:0 PRINTI "['Reach in' currently has no default handling.] " RETURN 2 .FUNCT V-REACH-UNDER:ANY:0:0 PRINTI "['Reach under' currently has no default handling.] " RETURN 2 .FUNCT V-READ:ANY:0:0 PRINTI "['Read' currently has no default handling.] " RETURN 2 .FUNCT V-SHOW:ANY:0:0 ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?98 PRINTI " unimpressed by" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." .FUNCT V-SHOW-SWP:ANY:0:0 CALL PERFORM,V?SHOW,PRSI,PRSO RSTACK .FUNCT V-SIT:ANY:0:0,OBJ SET 'OBJ,PRSO EQUAL? PRSO,ROOMS \?CND1 SET 'OBJ,TH-GROUND ?CND1: CALL RT-NO-POINT-MSG,STR?99,OBJ RSTACK .FUNCT ITAKE:ANY:0:2,OB,V?,CNT,OBJ,L ASSIGNED? 'V? /?CND1 SET 'V?,TRUE-VALUE ?CND1: ZERO? OB \?CND3 SET 'OB,PRSO ?CND3: LOC OB >L FSET? OB,FL-TAKEABLE /?CCL7 ZERO? V? /FALSE ICALL2 RT-YOU-CANT-MSG,STR?100 RFALSE ?CCL7: CALL RT-OBJ-TOO-LARGE?,OB,WINNER ZERO? STACK /?CCL12 ZERO? V? /FALSE ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 PRINTI " holding too much." CRLF RFALSE ?CCL12: EQUAL? PRSA,V?TAKE /?CND16 EQUAL? L,WINNER /?CND16 ICALL RT-FIRST-YOU-MSG,STR?100,OB,L ?CND16: CALL2 RT-DO-TAKE,OB RSTACK .FUNCT RT-DO-TAKE:ANY:1:2,OBJ,FORCED?,L LOC OBJ >L MOVE OBJ,WINNER FSET OBJ,FL-SEEN FSET OBJ,FL-TOUCHED FCLEAR OBJ,FL-NO-DESC FCLEAR OBJ,FL-INVISIBLE FCLEAR OBJ,FL-WORN RTRUE .FUNCT PRE-TAKE:ANY:0:0,L EQUAL? PRSO,TH-HANDS,YOU /FALSE LOC PRSO >L EQUAL? L,GLOBAL-OBJECTS \?CCL5 CALL2 NOT-HERE,PRSO RSTACK ?CCL5: CALL RT-META-IN?,WINNER,PRSO ZERO? STACK /?CCL7 ICALL2 RT-ALREADY-MSG,WINNER ICALL2 RT-IN-ON-MSG,PRSO ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR ".]" ?CCL7: ZERO? L /?CCL9 FSET? L,FL-SURFACE /?CCL9 FSET? L,FL-OPENABLE \?CCL9 FSET? L,FL-OPEN /?CCL9 ICALL RT-PRINT-OBJ,L,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " closed." ?CCL9: EQUAL? PRSA,V?TAKE-WITH /FALSE ZERO? PRSI /?CCL18 EQUAL? PRSI,L \?CCL21 SET 'PRSI,FALSE-VALUE RFALSE ?CCL21: FSET? L,FL-SURFACE /?CCL23 FSET? PRSI,FL-OPENABLE \?CCL23 FSET? PRSI,FL-OPEN /?CCL23 ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " closed." ?CCL23: EQUAL? PRSI,L /FALSE FSET? PRSI,FL-PERSON \?CCL32 ICALL RT-PRINT-OBJ,PRSI,K-ART-THE,TRUE-VALUE,STR?66 PRINTI "n't have" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE JUMP ?CND30 ?CCL32: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 PRINTI "n't" ICALL2 RT-IN-ON-MSG,PRSI ICALL RT-PRINT-OBJ,PRSI,K-ART-THE ?CND30: PRINTR "." ?CCL18: CALL1 PRE-TAKE-WITH RSTACK .FUNCT PRE-TAKE-WITH:ANY:0:0,X EQUAL? PRSO,YOU /FALSE CALL2 META-LOC,PRSO EQUAL? STACK,GLOBAL-OBJECTS \?CCL5 CALL2 HELD?,PRSO ZERO? STACK \FALSE FSET? PRSO,FL-PERSON /FALSE CALL2 NOT-HERE,PRSO RSTACK ?CCL5: IN? PRSO,WINNER \?CCL12 ICALL2 RT-ALREADY-MSG,PLAYER PRINTI " holding" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR ".]" ?CCL12: LOC PRSO FSET? STACK,FL-CONTAINER \?CCL14 LOC PRSO FSET? STACK,FL-SURFACE /?CCL14 LOC PRSO FSET? STACK,FL-OPEN /?CCL14 CALL2 RT-YOU-CANT-MSG,STR?101 RSTACK ?CCL14: IN? WINNER,PRSO \FALSE SET 'CLOCK-WAIT,TRUE-VALUE PRINTC 91 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 ICALL2 RT-IN-ON-MSG,PRSO ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR ".]" .FUNCT V-TAKE:ANY:0:0,L,V LOC PRSO >L CALL1 ITAKE >V EQUAL? V,M-FATAL \?CCL3 RETURN 2 ?CCL3: ZERO? V /FALSE GRTR? P-MULT,1 \?CCL10 PRINTI "Taken" JUMP ?CND8 ?CCL10: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?100 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE IN? L,ROOMS /?CND8 EQUAL? L,GLOBAL-OBJECTS,LOCAL-GLOBALS /?CND8 PRINTI " from" EQUAL? L,PLAYER \?CCL17 EQUAL? WINNER,PLAYER /?CCL17 PRINTI " you" JUMP ?CND8 ?CCL17: ICALL RT-PRINT-OBJ,L,K-ART-THE ?CND8: PRINTR "." .FUNCT V-TAKE-WITH:ANY:0:0 PRINTI "['Take with' currently has no default handling.] " RETURN 2 .FUNCT V-TALK-TO:ANY:0:0 PRINTI "['Talk to' currently has no default handling.] " RETURN 2 .FUNCT V-TELL:ANY:0:0 EQUAL? PRSO,PLAYER \?CCL3 ZERO? QCONTEXT /?CCL6 SET 'QCONTEXT,FALSE-VALUE ZERO? P-CONT /?CCL9 SET 'WINNER,PLAYER RETURN WINNER ?CCL9: PRINTR "Okay, you're not talking to anyone else." ?CCL6: ICALL2 WONT-HELP-TO-TALK-TO,PLAYER SET 'P-CONT,FALSE-VALUE RETURN 2 ?CCL3: FSET? PRSO,FL-ALIVE \?CCL13 SET 'QCONTEXT,PRSO ZERO? P-CONT /?CCL16 SET 'CLOCK-WAIT,TRUE-VALUE SET 'WINNER,PRSO RFALSE ?CCL16: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?102 PRINTR " at you expectantly, as if you seemed to be about to talk." ?CCL13: ICALL2 WONT-HELP-TO-TALK-TO,PRSO SET 'P-CONT,FALSE-VALUE RETURN 2 .FUNCT WONT-HELP-TO-TALK-TO:ANY:1:1,OBJ PRINTI "Talking to" ICALL RT-PRINT-OBJ,OBJ,K-ART-THE PRINTR " won't help one bit." .FUNCT V-TELL-ABOUT:ANY:0:0,PERSON EQUAL? PRSO,CH-PLAYER \?CCL3 EQUAL? WINNER,CH-PLAYER \?CCL6 CALL FIND-FLAG,HERE,FL-PERSON,CH-PLAYER >PERSON ZERO? PERSON \?CTR8 CALL FIND-FLAG,HERE,FL-ALIVE,CH-PLAYER >PERSON ZERO? PERSON /?CCL9 ?CTR8: ICALL PERFORM,V?ASK-ABOUT,PERSON,PRSI RTRUE ?CCL9: PRINT K-TALK-TO-SELF-MSG CRLF RTRUE ?CCL6: SET 'PERSON,WINNER SET 'WINNER,CH-PLAYER ICALL PERFORM,V?ASK-ABOUT,PERSON,PRSI RTRUE ?CCL3: FSET? PRSO,FL-ALIVE /?CCL13 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI "can't tell anything to" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL13: FSET? PRSO,FL-ASLEEP \?CCL15 PRINTI "Talking to" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI " in" ICALL RT-PRINT-OBJ,PRSO,K-ART-HIS PRINTR " current condition would be a waste of time." ?CCL15: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?103 PRINTR " indifferently." .FUNCT V-THANK:ANY:0:0 EQUAL? WINNER,CH-PLAYER \?CCL3 EQUAL? PRSO,CH-PLAYER \?CCL6 PRINTR "Patting yourself on the back won't help." ?CCL6: FSET? PRSO,FL-ASLEEP \?CCL8 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?104 PRINTR "n't in any condition to accept your thanks." ?CCL8: PRINTR """You're welcome.""" ?CCL3: ICALL1 RT-FOOLISH-TO-TALK? RTRUE .FUNCT V-TIE-TO:ANY:0:0 PRINTI "You can't tie" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI " to" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTR "." .FUNCT V-TURN:ANY:0:0 PRINTI "['Turn' currently has no default handling.] " RETURN 2 .FUNCT V-TURN-OFF:ANY:0:0 PRINTI "['Turn off' currently has no default handling.] " RETURN 2 .FUNCT V-TURN-ON:ANY:0:0 PRINTI "['Turn on' currently has no default handling.] " RETURN 2 .FUNCT V-TURN-TO:ANY:0:0 PRINTI "['Turn to' currently has no default handling.] " RETURN 2 .FUNCT V-UNDO:ANY:0:0 ZERO? P-CAN-UNDO /FALSE SET 'GL-SL-HERE,FALSE-VALUE IRESTORE ZERO? STACK \?CCL6 PRINTR "[UNDO failed.]" ?CCL6: PRINTR "[UNDO is not available.]" .FUNCT V-UNLOCK:ANY:0:0 FSET? PRSO,FL-OPENABLE /?CCL3 CALL1 RT-YOU-CANT-MSG RSTACK ?CCL3: FSET? PRSO,FL-OPEN \?CCL5 CALL RT-ALREADY-MSG,PRSO,STR?93 RSTACK ?CCL5: FSET? PRSO,FL-LOCKED /?CCL7 CALL RT-ALREADY-MSG,PRSO,STR?105 RSTACK ?CCL7: CALL RT-MATCH-KEY,PRSO,PRSI ZERO? STACK \?CCL9 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE PRINTI " can't unlock" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI " with" ICALL RT-PRINT-OBJ,PRSI,K-ART-THE PRINTC 46 CRLF RTRUE ?CCL9: CALL RT-OPEN-DOOR-MSG,PRSO,PRSI RSTACK .FUNCT V-UNWEAR:ANY:0:0 IN? PRSO,WINNER \?CCL3 FSET? PRSO,FL-WORN \?CCL6 FCLEAR PRSO,FL-WORN ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?100 PRINTI " off" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL6: ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56 PRINTI "n't wearing" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL3: CALL PERFORM,V?TAKE,PRSO RSTACK .FUNCT V-WAIT:ANY:0:0,N,ABS? SET 'N,-1 ZERO? PRSO \?CCL3 SET 'N,20 JUMP ?CND1 ?CCL3: EQUAL? PRSO,INTNUM \?CCL5 GRTR? P-NUMBER,0 \?CND1 MUL P-NUMBER,2 >N JUMP ?CND1 ?CCL5: EQUAL? PRSO,TH-TIME \?CCL9 CALL NOUN-USED?,PRSO,W?TURN,W?TURNS ZERO? STACK /?CCL12 CALL ADJ-USED?,PRSO,W?INT.NUM ZERO? STACK /?CCL15 GRTR? P-NUMBER,0 \?CCL15 SET 'N,P-NUMBER JUMP ?CND1 ?CCL15: SET 'N,1 JUMP ?CND1 ?CCL12: CALL NOUN-USED?,PRSO,W?MIN,W?MINUTE,W?MINUTES ZERO? STACK /?CCL19 CALL ADJ-USED?,PRSO,W?INT.NUM ZERO? STACK /?CCL22 GRTR? P-NUMBER,0 \?CCL22 MUL P-NUMBER,2 >N JUMP ?CND1 ?CCL22: SET 'N,2 JUMP ?CND1 ?CCL19: CALL NOUN-USED?,PRSO,W?HOUR,W?HOURS ZERO? STACK /?CND1 CALL ADJ-USED?,PRSO,W?INT.NUM ZERO? STACK /?CCL28 GRTR? P-NUMBER,0 \?CCL28 MUL P-NUMBER,120 >N JUMP ?CND1 ?CCL28: SET 'N,120 ?CND1: GRTR? N,0 \?CCL35 SUB N,1 ADD GL-MOVES,STACK >GL-MOVES PRINT K-TIME-PASSES-MSG RTRUE ?CCL9: PRINTI "[You can't wait for" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTI ".] " RETURN 2 ?CCL35: ZERO? ABS? /?CCL37 PRINTI "[That time has already passed.] " RETURN 2 ?CCL37: PRINTI "[You can't wait for that.] " RETURN 2 .FUNCT RT-FIND-DIR:ANY:1:2,RM,L,P,OD,OBJ,PT,PTS ASSIGNED? 'L /?CND1 LOC WINNER >L ?CND1: SET 'OD,P-WALK-DIR ?PRG3: NEXTP L,P >P ZERO? P /FALSE LESS? P,LOW-DIRECTION /FALSE SET 'P-WALK-DIR,P GETPT L,P >PT ZERO? PT /?PRG3 PTSIZE PT >PTS EQUAL? PTS,UEXIT \?CCL13 GET PT,REXIT EQUAL? RM,STACK /?REP4 JUMP ?PRG3 ?CCL13: EQUAL? PTS,FEXIT \?CCL17 GET PT,FEXITFCN CALL STACK,TRUE-VALUE EQUAL? RM,STACK /?REP4 JUMP ?PRG3 ?CCL17: EQUAL? PTS,CEXIT \?CCL21 GET PT,REXIT EQUAL? RM,STACK /?REP4 JUMP ?PRG3 ?CCL21: EQUAL? PTS,DEXIT \?PRG3 GET PT,REXIT EQUAL? RM,STACK \?PRG3 GET PT,DEXITOBJ >OBJ ZERO? OBJ /?PRG3 ?REP4: SET 'P-WALK-DIR,OD RETURN P .FUNCT RT-FIND-ROOM:ANY:1:2,DIR,L,OD,RM,PT,PTS ASSIGNED? 'L /?CND1 LOC WINNER >L ?CND1: GETPT L,DIR >PT ZERO? PT /?CND3 PTSIZE PT >PTS EQUAL? PTS,UEXIT,CEXIT,DEXIT \?CCL7 GET PT,REXIT >RM RETURN RM ?CCL7: EQUAL? PTS,FEXIT /?CCL8 RETURN RM ?CCL8: SET 'OD,P-WALK-DIR SET 'P-WALK-DIR,DIR GET PT,FEXITFCN CALL STACK,TRUE-VALUE >RM SET 'P-WALK-DIR,OD ?CND3: RETURN RM .FUNCT RT-SET-PUPPY:ANY:1:1,OBJ ZERO? GL-PUPPY /?CND1 FCLEAR GL-PUPPY,FL-NO-DESC ?CND1: SET 'GL-PUPPY,OBJ FSET GL-PUPPY,FL-NO-DESC RTRUE .FUNCT RT-CLEAR-PUPPY:ANY:0:0 ZERO? GL-PUPPY /TRUE FCLEAR GL-PUPPY,FL-NO-DESC SET 'GL-PUPPY,FALSE-VALUE RTRUE .FUNCT V-WALK:ANY:0:0,PT,PTS,STR,RM ZERO? P-WALK-DIR \?CND1 ICALL1 V-WALK-AROUND RETURN 2 ?CND1: LOC WINNER GETPT STACK,PRSO >PT ZERO? PT /?CCL7 PTSIZE PT >PTS EQUAL? PTS,UEXIT \?CCL10 GET PT,REXIT ICALL2 RT-GOTO,STACK RTRUE ?CCL10: EQUAL? PTS,NEXIT \?CCL12 SET 'CLOCK-WAIT,TRUE-VALUE GET PT,NEXITSTR PRINT STACK CRLF RETURN 2 ?CCL12: EQUAL? PTS,FEXIT \?CCL16 GET PT,FEXITFCN CALL STACK >RM ZERO? RM /?PRG20 ICALL2 RT-GOTO,RM RTRUE ?PRG20: RETURN 2 ?CCL16: EQUAL? PTS,CEXIT \?CCL23 GETB PT,CEXITFLAG VALUE STACK ZERO? STACK /?CCL26 GET PT,REXIT ICALL2 RT-GOTO,STACK RTRUE ?CCL26: GET PT,CEXITSTR >STR ZERO? STR /?CCL28 PRINT STR CRLF RETURN 2 ?CCL28: ICALL2 RT-YOU-CANT-MSG,STR?106 RETURN 2 ?CCL23: EQUAL? PTS,DEXIT \FALSE CALL2 WALK-THRU-DOOR?,PT ZERO? STACK /?PRG38 GET PT,REXIT ICALL2 RT-GOTO,STACK RTRUE ?PRG38: RETURN 2 ?CCL7: EQUAL? PRSO,P?IN,P?OUT \?CCL41 CALL1 V-WALK-AROUND RSTACK ?CCL41: ICALL2 RT-YOU-CANT-MSG,STR?106 RETURN 2 .FUNCT WALK-THRU-DOOR?:ANY:1:3,PT,OBJ,TELL?,RM ASSIGNED? 'TELL? /?CND1 SET 'TELL?,TRUE-VALUE ?CND1: ZERO? OBJ \?CND3 GET PT,DEXITOBJ >OBJ ?CND3: FSET? OBJ,FL-OPEN /TRUE ZERO? PT /?CCL9 GET PT,DEXITSTR >RM ZERO? RM /?CCL9 ZERO? TELL? /FALSE PRINT RM CRLF RFALSE ?CCL9: ICALL RT-PRINT-OBJ,OBJ,K-ART-THE,TRUE-VALUE,STR?56 PRINTI "n't open." CRLF RFALSE .FUNCT RT-GOTO:ANY:1:2,RM,FORCED? IN? WINNER,RM \?CND1 ICALL1 RT-WALK-WITHIN-ROOM-MSG RFALSE ?CND1: GETP HERE,P?ACTION CALL STACK,M-EXIT ZERO? STACK /?CND3 ZERO? FORCED? /FALSE ?CND3: MOVE WINNER,RM EQUAL? WINNER,PLAYER \?CND7 ZERO? GL-PUPPY /?CND9 MOVE GL-PUPPY,RM ?CND9: SET 'OHERE,HERE SET 'HERE,RM ICALL1 RT-ENTER-ROOM ?CND7: ZERO? GL-PUPPY /TRUE PRINTC TAB ICALL RT-PRINT-OBJ,GL-PUPPY,K-ART-THE,TRUE-VALUE,STR?107 PRINTR " you." .FUNCT RT-ENTER-ROOM:ANY:0:0,VAL,CNT,TBL,I,C CALL1 LIT? >LIT DIROUT D-TABLE-ON,K-DIROUT-TBL ICALL1 RT-ROOM-NAME-MSG DIROUT D-TABLE-OFF SET 'TBL,K-DIROUT-TBL+2 GET K-DIROUT-TBL,0 >CNT GRTR? CNT,0 \?CND1 ?PRG3: GETB TBL,I >C LESS? C,97 /?CND5 GRTR? C,122 /?CND5 SUB C,32 PUTB TBL,I,STACK ?CND5: IGRTR? 'I,CNT \?PRG3 ?CND1: HLIGHT H-BOLD PRINTT TBL,CNT HLIGHT H-NORMAL CRLF GETP HERE,P?ACTION ICALL STACK,M-ENTER CALL1 RT-DESCRIBE-ROOM ZERO? STACK \?CCL13 SET 'VAL,0 JUMP ?CND11 ?CCL13: CALL1 RT-DESCRIBE-OBJECTS >VAL ?CND11: GETP HERE,P?ACTION ICALL STACK,M-ENTERED RETURN VAL .FUNCT RT-ROOM-NAME-MSG:ANY:0:0 ZERO? LIT /?CCL3 CALL2 RT-PRINT-DESC,HERE RSTACK ?CCL3: PRINTI "darkness" RTRUE .FUNCT V-WALK-AROUND:ANY:0:0 SET 'CLOCK-WAIT,TRUE-VALUE PRINTC 91 PRINT K-WHICH-DIR-MSG PRINTC 93 CRLF RETURN 2 .FUNCT V-WALK-TO:ANY:0:0 PRINTI "['Walk to' currently has no default handling.] " RETURN 2 .FUNCT RT-WALK-WITHIN-ROOM-MSG:ANY:0:0 CALL NO-NEED,STR?109,HERE RSTACK .FUNCT V-WEAR:ANY:0:0 IN? PRSO,WINNER /?CCL3 ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?66 PRINTI "n't have" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL3: FSET? PRSO,FL-WORN \?CCL5 ICALL2 RT-ALREADY-MSG,WINNER PRINTI " wearing" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR ".]" ?CCL5: FSET? PRSO,FL-CLOTHING \?CCL7 FSET PRSO,FL-WORN ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?90 PRINTI " on" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTR "." ?CCL7: CALL2 RT-YOU-CANT-MSG,STR?110 RSTACK .FUNCT V-WELD:ANY:0:0 PRINTI "['Weld' currently has no default handling.] " RETURN 2 .FUNCT V-YES:ANY:0:0 PRINTI "[You seem sure of yourself.]" CRLF RETURN 2 .ENDI