253 lines
6.3 KiB
Plaintext
253 lines
6.3 KiB
Plaintext
|
|
|
|
.FUNCT DINER-F
|
|
EQUAL? PRSA,V?WALK-TO \FALSE
|
|
EQUAL? CAR-HERE,DINER-CAR \?ELS10
|
|
CALL1 HAR-HAR
|
|
RSTACK
|
|
?ELS10: ZERO? DINER-TOUCHED /FALSE
|
|
SET 'CLOCK-WAIT,TRUE-VALUE
|
|
PRINTR "(You'll have to get there on your own.)"
|
|
|
|
|
|
.FUNCT GENERIC-BOOTH-F,X
|
|
EQUAL? HERE,HALL-1-DINER,BOOTH-1 \?ELS5
|
|
RETURN BOOTH-1
|
|
?ELS5: EQUAL? HERE,HALL-2-DINER,BOOTH-2 \?ELS7
|
|
RETURN BOOTH-2
|
|
?ELS7: EQUAL? HERE,HALL-3-DINER,BOOTH-3 \?ELS9
|
|
RETURN BOOTH-3
|
|
?ELS9: CALL1 REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
SET 'CLOCK-WAIT,TRUE-VALUE
|
|
PRINTI "(You can't see any booth here.)"
|
|
CRLF
|
|
RETURN NOT-HERE-OBJECT
|
|
|
|
|
|
.FUNCT PANTRY-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
CALL2 ROOM-IS-CROWDED,PANTRY
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
|
IN? WAITER,PANTRY \FALSE
|
|
CALL2 INVASION?,WAITER
|
|
RFALSE
|
|
|
|
|
|
.FUNCT INVASION?,PER
|
|
GETP PER,P?SOUTH
|
|
LESS? 0,STACK /FALSE
|
|
EQUAL? PRSA,V?SMILE /FALSE
|
|
EQUAL? PRSA,V?KISS,V?GIVE,V?$CALL /FALSE
|
|
EQUAL? INVASION-TIME,PRESENT-TIME /FALSE
|
|
ZERO? CLOCK-WAIT \FALSE
|
|
SET 'INVASION-TIME,PRESENT-TIME
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE,STR?154
|
|
PRINTI " a pushing motion with one hand and points forward with the other. "
|
|
CALL HE-SHE-IT,PER,TRUE-VALUE,STR?194
|
|
PRINTI " angry that you're invading"
|
|
CALL HIM-HER-IT,PER,FALSE-VALUE,TRUE-VALUE
|
|
PRINTR " space."
|
|
|
|
|
|
.FUNCT GALLEY-F,RARG=0
|
|
EQUAL? RARG,M-LOOK \?ELS5
|
|
CALL2 ROOM-IS-CROWDED,GALLEY
|
|
RSTACK
|
|
?ELS5: EQUAL? RARG,M-END \FALSE
|
|
IN? COOK,GALLEY \FALSE
|
|
CALL2 INVASION?,COOK
|
|
RFALSE
|
|
|
|
|
|
.FUNCT COUNTER-GALLEY-F
|
|
EQUAL? PRSA,V?LOOK-ON,V?EXAMINE \FALSE
|
|
PRINTR "The counter is crowded with kitchen hardware and software."
|
|
|
|
|
|
.FUNCT ROOM-IS-CROWDED,RM
|
|
CALL2 START-SENTENCE,RM
|
|
PRINTI " is crowded with supplies and equipment. The locked cabinets are probably filled with "
|
|
EQUAL? RM,PANTRY \?ELS5
|
|
PRINTI "dishes, tableware, and napkins"
|
|
JUMP ?CND3
|
|
?ELS5: EQUAL? RM,GALLEY \?CND3
|
|
PRINTI "food, kettles, and kitchen tools. There's a crowded counter for preparing food"
|
|
?CND3: PRINTR ". If you want to find something, you'll have to search for it."
|
|
|
|
|
|
.FUNCT BOOTH-F,RARG=0,?TMP1
|
|
EQUAL? RARG,M-ENTER \?ELS5
|
|
ZERO? DEBUG /?CND6
|
|
PRINTI "[booth entry routine]"
|
|
CRLF
|
|
?CND6: IN? WAITER,HERE \?ELS16
|
|
PUTP WAITER,P?LDESC,25
|
|
RFALSE
|
|
?ELS16: EQUAL? SCENERY-OBJ,STATION-GRNZ /FALSE
|
|
CALL ESTABLISH-GOAL,WAITER,HERE
|
|
RFALSE
|
|
?ELS5: EQUAL? RARG,M-END \?ELS22
|
|
CALL1 EXIT-VERB?
|
|
ZERO? STACK /FALSE
|
|
CALL2 META-LOC,FOOD
|
|
EQUAL? HERE,STACK /?THN30
|
|
CALL2 META-LOC,CUP-A >?TMP1
|
|
CALL2 META-LOC,CUP-B
|
|
EQUAL? HERE,?TMP1,STACK \FALSE
|
|
?THN30: CALL ESTABLISH-GOAL,WAITER,HERE
|
|
RFALSE
|
|
?ELS22: EQUAL? RARG,M-LOOK \?ELS33
|
|
FSET BOOTH-1,TOUCHBIT
|
|
FSET BOOTH-2,TOUCHBIT
|
|
FSET BOOTH-3,TOUCHBIT
|
|
CALL1 BOOTH-DESC
|
|
CALL1 MOTION-PREFIX
|
|
RTRUE
|
|
?ELS33: EQUAL? RARG,M-BEG \FALSE
|
|
CALL1 PERSON-TAKES-GUN?
|
|
RSTACK
|
|
|
|
|
|
.FUNCT BOOTH-DESC
|
|
PRINTI "This is a diner booth on the "
|
|
PRINT TRAIN-NAME
|
|
PRINTR ". In fact, it looks as if the railway company just converted a first-class coach into a diner by removing the door and adding a table to each compartment."
|
|
|
|
|
|
.FUNCT FROY-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
|
FSET? FROY,TOUCHBIT /?ELS10
|
|
FSET FROY,TOUCHBIT
|
|
FSET FROY,NDESCBIT
|
|
PRINTR "It's hard to read in this light, but the writing seems to say ""FROY."""
|
|
?ELS10: PRINTR "Hmmm... The writing seems to have vanished."
|
|
|
|
|
|
.FUNCT REST-ROOM-REAR-DINER-DOOR-F
|
|
CALL REST-ROOM-DOOR-F,REST-ROOM-REAR-DINER-DOOR,REST-ROOM-REAR-DINER
|
|
RSTACK
|
|
|
|
|
|
.FUNCT REST-ROOM-FWD-DINER-DOOR-F
|
|
CALL REST-ROOM-DOOR-F,REST-ROOM-FWD-DINER-DOOR,REST-ROOM-FWD-DINER
|
|
RSTACK
|
|
|
|
|
|
.FUNCT MACHINE-F,P
|
|
EQUAL? PRSO,MACHINE \?ELS5
|
|
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
|
CALL1 YOU-CANT
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?LOOK-THROUGH /?THN10
|
|
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?ANALYZE \?ELS9
|
|
?THN10: PRINTR "The plastic panel is so scratched and grimy that you can barely see the display of cigarette packs inside."
|
|
?ELS9: EQUAL? PRSA,V?MUNG \?ELS15
|
|
PRINTR "It seems that someone else beat you to it."
|
|
?ELS15: EQUAL? PRSA,V?SHAKE,V?SLAP,V?ATTACK \?ELS19
|
|
FSET? MACHINE,MUNGBIT /?ELS19
|
|
FSET? CIGARETTE,TOUCHBIT /?ELS19
|
|
LOC CIGARETTE >P
|
|
FSET? P,PERSONBIT \?CND22
|
|
GETP P,P?LDESC
|
|
EQUAL? 5,STACK \?CND22
|
|
FCLEAR P,TOUCHBIT
|
|
PUTP P,P?LDESC,4
|
|
?CND22: FSET CIGARETTE,TOUCHBIT
|
|
FSET CIGARETTE,TAKEBIT
|
|
MOVE CIGARETTE,HERE
|
|
CALL2 THIS-IS-IT,CIGARETTE
|
|
PRINTR "The machine shudders and disgorges a single cigarette onto the floor."
|
|
?ELS19: EQUAL? PRSA,V?PUT-IN /?THN31
|
|
EQUAL? PRSA,V?SHAKE,V?SLAP,V?ATTACK \FALSE
|
|
?THN31: EQUAL? PRSA,V?PUT-IN \?CND33
|
|
ZERO? P-DOLLAR-FLAG /?ELS38
|
|
EQUAL? PRSO,GLOBAL-MONEY,INTNUM \?ELS38
|
|
GETP PLAYER,P?SOUTH
|
|
LESS? STACK,P-AMOUNT /?ELS38
|
|
EQUAL? VARIATION,2,4 \?CND41
|
|
FSET MACHINE,MUNGBIT
|
|
?CND41: GETP PLAYER,P?SOUTH
|
|
SUB STACK,P-AMOUNT
|
|
PUTP PLAYER,P?SOUTH,STACK
|
|
JUMP ?CND33
|
|
?ELS38: CALL1 YOU-CANT
|
|
RTRUE
|
|
?CND33: RANDOM 100
|
|
LESS? 50,STACK /?ELS48
|
|
PRINTI """Whirr, buzz"
|
|
JUMP ?CND46
|
|
?ELS48: PRINTI """Whizz, burr"
|
|
?CND46: PRINTR ", click!"" Nothing else happens."
|
|
|
|
|
|
.FUNCT PICK-ONE-BOOTH,X
|
|
RANDOM 3 >X
|
|
EQUAL? X,1 \?ELS5
|
|
RETURN BOOTH-1
|
|
?ELS5: EQUAL? X,2 \?ELS7
|
|
RETURN BOOTH-2
|
|
?ELS7: EQUAL? X,3 \FALSE
|
|
RETURN BOOTH-3
|
|
|
|
|
|
.FUNCT SUITE-1-DOOR-F
|
|
CALL2 COMPARTMENT-DOOR-F,SUITE-1-DOOR
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SUITE-2-DOOR-F
|
|
CALL2 COMPARTMENT-DOOR-F,SUITE-2-DOOR
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SUITE-3-DOOR-F
|
|
CALL2 COMPARTMENT-DOOR-F,SUITE-3-DOOR
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SUITE-F,RARG=0,N
|
|
ZERO? RARG /FALSE
|
|
CALL1 V-FOO
|
|
RTRUE
|
|
|
|
|
|
.FUNCT HALL-FANCY-F,RARG=0,X,TOUCHED=0,VAL=0
|
|
FSET? HALL-1-FANCY,TOUCHBIT /?THN4
|
|
FSET? HALL-1-FANCY,TOUCHBIT /?THN4
|
|
FSET? HALL-1-FANCY,TOUCHBIT \?CND1
|
|
?THN4: SET 'TOUCHED,TRUE-VALUE
|
|
?CND1: EQUAL? RARG,M-LOOK /?THN11
|
|
ZERO? RARG \?ELS10
|
|
EQUAL? PRSA,V?LOOK \?ELS10
|
|
?THN11: FSET HERE,TOUCHBIT
|
|
PRINTI "This is the "
|
|
PRINTD HERE
|
|
PRINTI " of the corridor."
|
|
EQUAL? PRSA,V?LOOK /?THN20
|
|
ZERO? TOUCHED \?CND17
|
|
?THN20: PRINTI " The floor and walls are covered with grey carpet, worn thin in spots but intact. A long series of windows, framed by polished wood, runs along the corridor on the right-hand side of the train."
|
|
?CND17: EQUAL? PLAYER-NOT-FACING,P?WEST \?ELS26
|
|
CRLF
|
|
RTRUE
|
|
?ELS26: GETPT HERE,P?IN
|
|
GET STACK,REXIT >X
|
|
CALL2 THIS-IS-IT,X
|
|
PRINTI " On the left side of the train, behind a locked door, lies the "
|
|
PRINTD X
|
|
PRINTR "."
|
|
?ELS10: EQUAL? RARG,M-ENTER \FALSE
|
|
CALL2 NOISY?,LAST-PLAYER-LOC
|
|
ZERO? STACK /?CND33
|
|
SET 'VAL,TRUE-VALUE
|
|
PRINTI "The relative quiet here is welcome. "
|
|
?CND33: ZERO? TOUCHED \?CND41
|
|
SET 'VAL,TRUE-VALUE
|
|
PRINTI "The feel of luxury here is unmistakable."
|
|
?CND41: ZERO? VAL /FALSE
|
|
CRLF
|
|
RFALSE
|
|
|
|
.ENDI
|