mirror of
https://github.com/historicalsource/restaurant
synced 2024-07-16 21:44:39 +03:00
248 lines
5.3 KiB
Plaintext
248 lines
5.3 KiB
Plaintext
|
|
|
|
.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
|