.FUNCT LOCAL-GLOBALS-F:ANY:0:0 CALL1 REMOTE-VERB? ZERO? STACK \FALSE CALL2 NOT-HERE,LOCAL-GLOBALS RSTACK .FUNCT FRUSTRATION-F:ANY:0:0 EQUAL? PRSA,V?ENJOY \FALSE PRINT ZEN CRLF RTRUE .FUNCT DO-INSTEAD-OF:ANY:2:2,OBJ1,OBJ2 EQUAL? PRSI,OBJ2 \?CCL3 ICALL PERFORM,PRSA,PRSO,OBJ1 RTRUE ?CCL3: EQUAL? PRSO,OBJ2 \?CCL5 ICALL PERFORM,PRSA,OBJ1,PRSI RTRUE ?CCL5: CALL1 V-FOO RSTACK .FUNCT TURN-F:ANY:0:0 EQUAL? PRSA,V?USE \FALSE ICALL PERFORM,V?WAIT-FOR,PRSO RTRUE .FUNCT IT-F:ANY:0:0 EQUAL? PRSI,IT \?PRD5 EQUAL? PRSA,V?TELL-ABOUT /?CCL3 EQUAL? PRSA,V?SEARCH-FOR,V?ASK-FOR,V?ASK-ABOUT /?CCL3 ?PRD5: EQUAL? PRSO,IT \FALSE EQUAL? PRSA,V?FIND,V?ASK-CONTEXT-FOR,V?ASK-CONTEXT-ABOUT \FALSE ?CCL3: PRINTR """I'm not sure what you're talking about.""" .FUNCT FLOOR-F:ANY:0:0,OBJ,N EQUAL? PRSA,V?CLIMB-ON \?CCL3 CALL ALREADY,WINNER,STR?218 RSTACK ?CCL3: EQUAL? PRSA,V?THROW-AT,V?PUT \?CCL5 EQUAL? PRSI,FLOOR \?CCL5 MOVE PRSO,HERE PRINTR "Okay." ?CCL5: EQUAL? PRSA,V?SEARCH-FOR /?CCL9 EQUAL? PRSA,V?SEARCH,V?LOOK-ON,V?EXAMINE \FALSE ?CCL9: ICALL2 START-SEARCH,OBJ RTRUE .FUNCT START-SEARCH:ANY:0:1,OBJ PRINTI "Nothing suspicious meets your eye after a moment's scrutiny. Do you want to continue?" CALL1 YES? ZERO? STACK \?CCL3 ICALL1 OKAY RTRUE ?CCL3: SET 'FOUND-IT,OBJ SET 'FOUND-LOC,HERE RANDOM 7 ICALL QUEUE,I-FOUND-IT,STACK ICALL V-WAIT,8,FALSE-VALUE,TRUE-VALUE RTRUE .FUNCT I-FOUND-IT:ANY:0:1,GARG,OBJ ZERO? IDEBUG \?CCL2 EQUAL? GARG,G-DEBUG \?CND1 ?CCL2: PRINTI "[I-FOUND-IT:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: EQUAL? FOUND-LOC,HERE \FALSE PRINT NOTHING-NEW RETURN 2 .FUNCT YOU-F:ANY:0:0,X EQUAL? WINNER,PLAYER /?CCL3 ICALL DO-INSTEAD-OF,WINNER,YOU RTRUE ?CCL3: EQUAL? PRSA,V?ASK-ABOUT \?CCL5 EQUAL? PRSI,YOU \?CCL5 ICALL PERFORM,V?ASK-ABOUT,PRSO,PRSO RTRUE ?CCL5: EQUAL? PRSA,V?THANK \FALSE CALL1 QCONTEXT-GOOD? >X ZERO? X /FALSE ICALL PERFORM,V?THANK,X RTRUE .FUNCT WALL-F:ANY:0:0,OBJ EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3 CALL FIND-FLAG-LG,HERE,DOORBIT,SECRETBIT >OBJ ZERO? OBJ /?CCL3 ICALL DO-INSTEAD-OF,OBJ,WALL RTRUE ?CCL3: EQUAL? PRSA,V?KNOCK \FALSE FSET? HERE,WEARBIT \?CTR9 CALL FIND-FLAG-LG,HERE,DOORBIT,SECRETBIT ZERO? STACK /?CCL10 ?CTR9: PRINTR "You hear a hollow sound." ?CCL10: PRINTR "Knocking on the walls reveals nothing unusual." .FUNCT GLOBAL-HERE-F:ANY:0:0,OBJ,X EQUAL? PRSA,V?WALK-TO,V?SMELL /?CTR2 EQUAL? PRSA,V?SIT,V?LIE,V?EXAMINE \?CCL3 ?CTR2: ICALL DO-INSTEAD-OF,HERE,GLOBAL-HERE RTRUE ?CCL3: EQUAL? PRSA,V?PUT-IN,V?PUT \?CCL7 CALL1 MORE-SPECIFIC RSTACK ?CCL7: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH \FALSE ZERO? PRSI /?CCL12 CALL2 META-LOC,PRSI EQUAL? STACK,HERE \?CCL12 SET 'X,PRSI JUMP ?CND10 ?CCL12: FIRST? HERE >OBJ /?PRG16 ?PRG16: ZERO? OBJ /?CND10 FSET? OBJ,SECRETBIT \?CCL22 SET 'X,OBJ JUMP ?CND10 ?CCL22: FSET? OBJ,PERSONBIT /?CCL24 FSET? OBJ,CONTBIT /?PRD27 FSET? OBJ,SURFACEBIT \?CCL24 ?PRD27: CALL FIND-IN,OBJ,SECRETBIT >X ZERO? X \?CTR23 CALL FIND-IN,OBJ,RMUNGBIT >X ZERO? X /?CCL24 ?CTR23: FSET OBJ,OPENBIT ?CND10: ICALL2 START-SEARCH,X RTRUE ?CCL24: NEXT? OBJ >OBJ /?PRG16 JUMP ?PRG16 .FUNCT CHAIR-F:ANY:0:0 EQUAL? PRSA,V?BOARD,V?CLIMB-ON,V?SIT \?CCL3 CALL1 WONT-HELP RSTACK ?CCL3: CALL1 RANDOM-PSEUDO RSTACK .FUNCT SLEEP-GLOBAL-F:ANY:0:0 EQUAL? PRSA,V?WALK-TO \FALSE ICALL2 PERFORM,V?FAINT RTRUE .FUNCT ROB:ANY:2:3,WHAT,THIEF,TELL?,N,X,TOLD? FIRST? WHAT >X /?PRG2 ?PRG2: ZERO? X /TRUE NEXT? X >N /?BOGUS6 ?BOGUS6: ZERO? N \?CND7 ZERO? TOLD? /?CND7 ZERO? TELL? /?CND7 PRINTI " and" ?CND7: SET 'TOLD?,TRUE-VALUE ZERO? TELL? /?CND12 ICALL2 PRINT-THE,X ZERO? N /?CCL16 PRINTC 44 JUMP ?CND12 ?CCL16: PRINTI ". " ?CND12: MOVE X,THIEF SET 'X,N JUMP ?PRG2 .FUNCT LIGHT-GLOBAL-F:ANY:0:0,P CALL1 REMOTE-VERB? ZERO? STACK \FALSE EQUAL? PRSA,V?LAMP-OFF,V?LAMP-ON \FALSE CALL2 OUTSIDE?,HERE ZERO? STACK /?CCL8 PRINTR "You can't reach it from here." ?CCL8: EQUAL? PRSA,V?LAMP-ON \?CCL11 FSET? HERE,ONBIT \?CCL14 CALL ALREADY,LIGHT-GLOBAL,STR?101 RSTACK ?CCL14: FSET HERE,ONBIT CALL OKAY,LIGHT-GLOBAL,STR?101 RSTACK ?CCL11: EQUAL? PRSA,V?LAMP-OFF \FALSE FSET? HERE,ONBIT /?CCL19 CALL ALREADY,LIGHT-GLOBAL,STR?102 RSTACK ?CCL19: CALL FIND-FLAG-HERE-NOT,PERSONBIT,MUNGBIT,PLAYER >P ZERO? P /?CCL21 PRINTD P PRINTR " says, ""Please don't leave us in the dark.""" ?CCL21: FCLEAR HERE,ONBIT CALL OKAY,LIGHT-GLOBAL,STR?102 RSTACK .FUNCT HANDS-F:ANY:1:1,ACTOR EQUAL? PRSA,V?SHAKE \FALSE CALL FIND-IN,HERE,PERSONBIT >ACTOR ZERO? ACTOR /?CCL6 ICALL PERFORM,V?THANK,ACTOR RTRUE ?CCL6: PRINTR "Pleased to meet you." .FUNCT HEAD-F:ANY:0:0 EQUAL? PRSA,V?NOD \?CCL3 ICALL2 PERFORM,V?YES RTRUE ?CCL3: EQUAL? PRSA,V?SHAKE \FALSE ICALL2 PERFORM,V?NO RTRUE .FUNCT EYES-F:ANY:0:0 EQUAL? PRSA,V?OPEN \?CCL3 PRINTR "They are." ?CCL3: EQUAL? PRSA,V?CLOSE \FALSE PRINTR "That won't help." .FUNCT THIRD-PLANET-F:ANY:0:0 EQUAL? PRSA,V?DISEMBARK,V?LEAVE \?CCL3 PRINTR "You did!" ?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE PRINTR "It is an utterly insignificant little blue-green planet, of the sort where they probably still wear digital watches." .FUNCT OBJECT-OF-GAME-F:ANY:0:0 EQUAL? PRSA,V?TELL-ABOUT,V?TALK-ABOUT,V?ASK-ABOUT \FALSE PRINTR "That's for me to know and you to find out." .FUNCT SKY-F:ANY:0:0 CALL2 OUTSIDE?,HERE ZERO? STACK \FALSE CALL2 NOT-HERE,SKY RSTACK .ENDI