Final Revision
This commit is contained in:
commit
8ae301e53b
|
@ -0,0 +1,252 @@
|
|||
|
||||
|
||||
.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
|
|
@ -0,0 +1,746 @@
|
|||
"CARS for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<OBJECT DINER
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "dining car")
|
||||
(ADJECTIVE DINER DINING CLUB)
|
||||
(SYNONYM DINER CAR CARRIAGE)
|
||||
(ACTION DINER-F)>
|
||||
|
||||
<ROUTINE DINER-F ()
|
||||
<COND (<VERB? WALK-TO>
|
||||
<COND (<==? ,CAR-HERE ,DINER-CAR>
|
||||
<HAR-HAR>)
|
||||
(,DINER-TOUCHED
|
||||
<SETG CLOCK-WAIT T>
|
||||
<TELL "(You'll have to get there on your own.)" CR>)>)>>
|
||||
|
||||
<ROOM REST-ROOM-FWD-DINER
|
||||
(LOC ROOMS)
|
||||
;(OTHER OTHER-REST-ROOM-FWD)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "forward restroom")
|
||||
(ADJECTIVE NORTH N FORWARD FRONT F FORE REST)
|
||||
(SYNONYM RESTROOM BATHROOM LAVATORY TOILET ROOM)
|
||||
(GENERIC GENERIC-REST-ROOM-F)
|
||||
(LINE 3)
|
||||
(STATION VESTIBULE-FWD-DINER)
|
||||
;(NORTH TO VESTIBULE-FWD-DINER IF REST-ROOM-FWD-DINER-DOOR IS OPEN)
|
||||
(WEST TO VESTIBULE-FWD-DINER IF REST-ROOM-FWD-DINER-DOOR IS OPEN)
|
||||
(OUT TO VESTIBULE-FWD-DINER IF REST-ROOM-FWD-DINER-DOOR IS OPEN)
|
||||
(GLOBAL REST-ROOM-FWD-DINER-DOOR ;STOP-CORD MIRROR TOILET
|
||||
SINK TOWEL-FIXTURE TOWEL-LOOP FIXTURES)
|
||||
(ACTION REST-ROOM-F)>
|
||||
|
||||
<ROOM BOOTH-1
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "first booth")
|
||||
(ADJECTIVE FIRST)
|
||||
(SYNONYM BOOTH ROOM)
|
||||
(LINE 3)
|
||||
(CORRIDOR *2000*)
|
||||
(STATION HALL-1-DINER)
|
||||
(EAST TO HALL-1-DINER)
|
||||
(OUT TO HALL-1-DINER)
|
||||
(GLOBAL WINDOW-1 SCENERY-LEFT ;STOP-CORD MENU ITEMS ;CHAIR)
|
||||
(GENERIC GENERIC-BOOTH-F)
|
||||
(ACTION BOOTH-F)>
|
||||
|
||||
<OBJECT TABLE-1
|
||||
(LOC BOOTH-1)
|
||||
(ADJECTIVE DINING)
|
||||
(SYNONYM TABLE)
|
||||
(FLAGS SEARCHBIT SURFACEBIT OPENBIT NDESCBIT ;VEHBIT)
|
||||
(CAPACITY 100)
|
||||
(DESC "dining table")>
|
||||
|
||||
<ROOM BOOTH-2
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "second booth")
|
||||
(ADJECTIVE SECOND)
|
||||
(SYNONYM BOOTH ROOM)
|
||||
(STATION HALL-2-DINER)
|
||||
(LINE 3)
|
||||
(CORRIDOR *4000*)
|
||||
(EAST TO HALL-2-DINER)
|
||||
(OUT TO HALL-2-DINER)
|
||||
(GLOBAL WINDOW-2 SCENERY-LEFT ;STOP-CORD MENU ITEMS ;CHAIR)
|
||||
(GENERIC GENERIC-BOOTH-F)
|
||||
(ACTION BOOTH-F)>
|
||||
|
||||
<OBJECT TABLE-2
|
||||
(LOC BOOTH-2)
|
||||
(ADJECTIVE DINING)
|
||||
(SYNONYM TABLE)
|
||||
(FLAGS SEARCHBIT SURFACEBIT OPENBIT NDESCBIT ;VEHBIT)
|
||||
(CAPACITY 100)
|
||||
(DESC "dining table")>
|
||||
|
||||
<ROOM BOOTH-3
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "third booth")
|
||||
(ADJECTIVE THIRD LAST)
|
||||
(SYNONYM BOOTH ROOM)
|
||||
(STATION HALL-3-DINER)
|
||||
(LINE 3)
|
||||
(CORRIDOR *10000*)
|
||||
(EAST TO HALL-3-DINER)
|
||||
(OUT TO HALL-3-DINER)
|
||||
(GLOBAL WINDOW-3 SCENERY-LEFT ;STOP-CORD MENU ITEMS ;CHAIR)
|
||||
(GENERIC GENERIC-BOOTH-F)
|
||||
(ACTION BOOTH-F)>
|
||||
|
||||
<OBJECT TABLE-3
|
||||
(LOC BOOTH-3)
|
||||
(ADJECTIVE DINING)
|
||||
(SYNONYM TABLE)
|
||||
(FLAGS SEARCHBIT SURFACEBIT OPENBIT NDESCBIT ;VEHBIT)
|
||||
(CAPACITY 100)
|
||||
(DESC "dining table")>
|
||||
|
||||
<ROUTINE GENERIC-BOOTH-F (X)
|
||||
<COND (<EQUAL? ,HERE ,HALL-1-DINER ,BOOTH-1> ,BOOTH-1)
|
||||
(<EQUAL? ,HERE ,HALL-2-DINER ,BOOTH-2> ,BOOTH-2)
|
||||
(<EQUAL? ,HERE ,HALL-3-DINER ,BOOTH-3> ,BOOTH-3)
|
||||
(<REMOTE-VERB?> <RFALSE>)
|
||||
(T
|
||||
<SETG CLOCK-WAIT T>
|
||||
<TELL "(You can't see any booth here.)" CR>
|
||||
,NOT-HERE-OBJECT)>>
|
||||
|
||||
<OBJECT EQUIPMENT
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "equipment")
|
||||
(SYNONYM EQUIPMENT SUPPLIES)
|
||||
(ACTION RANDOM-PSEUDO)>
|
||||
|
||||
<ROOM PANTRY
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "pantry")
|
||||
(ADJECTIVE FOURTH)
|
||||
(SYNONYM PANTRY ROOM)
|
||||
(STATION HALL-4-DINER)
|
||||
(LINE 3)
|
||||
(CORRIDOR *20000*)
|
||||
(EAST TO HALL-4-DINER)
|
||||
(OUT TO HALL-4-DINER)
|
||||
(GLOBAL WINDOW-4 SCENERY-LEFT ;STOP-CORD EQUIPMENT)
|
||||
(ACTION PANTRY-F)>
|
||||
|
||||
<ROUTINE PANTRY-F ("OPTIONAL" (RARG <>))
|
||||
<COND (<==? .RARG ,M-LOOK>
|
||||
<ROOM-IS-CROWDED ,PANTRY>)
|
||||
(<==? .RARG ,M-END>
|
||||
<COND (<IN? ,WAITER ,PANTRY>
|
||||
<INVASION? ,WAITER>
|
||||
<RFALSE>)>)>>
|
||||
|
||||
<GLOBAL INVASION-TIME 0>
|
||||
<ROUTINE INVASION? (PER)
|
||||
<COND (<L? 0 <GETP .PER ,P?SOUTH>> <RFALSE>) ;"(partly) bribed"
|
||||
(<VERB? $CALL GIVE KISS SMILE> <RFALSE>)
|
||||
(<==? ,INVASION-TIME ,PRESENT-TIME> <RFALSE>)
|
||||
(<AND ;,P-WON <NOT ,CLOCK-WAIT>>
|
||||
<SETG INVASION-TIME ,PRESENT-TIME>
|
||||
<TELL
|
||||
CHE .PER make " a pushing motion with one hand and points forward with
|
||||
the other. " CHE .PER seem " angry that you're invading" HIS .PER
|
||||
" space." CR>)>>
|
||||
|
||||
<ROOM GALLEY
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "galley")
|
||||
(ADJECTIVE FIFTH)
|
||||
(SYNONYM GALLEY KITCHEN ROOM)
|
||||
(STATION HALL-5-DINER)
|
||||
(LINE 3)
|
||||
(CORRIDOR *40000*)
|
||||
(EAST TO HALL-5-DINER)
|
||||
(OUT TO HALL-5-DINER)
|
||||
(GLOBAL WINDOW-5 SCENERY-LEFT ;STOP-CORD EQUIPMENT)
|
||||
(ACTION GALLEY-F)>
|
||||
|
||||
<ROUTINE GALLEY-F ("OPTIONAL" (RARG <>))
|
||||
<COND (<==? .RARG ,M-LOOK>
|
||||
<ROOM-IS-CROWDED ,GALLEY>)
|
||||
(<==? .RARG ,M-END>
|
||||
<COND (<IN? ,COOK ,GALLEY>
|
||||
<INVASION? ,COOK>
|
||||
<RFALSE>)>)>>
|
||||
|
||||
<OBJECT COUNTER-GALLEY
|
||||
(LOC GALLEY)
|
||||
(DESC "counter")
|
||||
(ADJECTIVE CROWDED)
|
||||
(SYNONYM COUNTER)
|
||||
(FLAGS SEARCHBIT SURFACEBIT OPENBIT NDESCBIT ;VEHBIT)
|
||||
(CAPACITY 200)
|
||||
(ACTION COUNTER-GALLEY-F)>
|
||||
|
||||
<ROUTINE COUNTER-GALLEY-F ()
|
||||
<COND (<VERB? EXAMINE LOOK-ON>
|
||||
<TELL
|
||||
"The counter is crowded with kitchen hardware and software." CR>)>>
|
||||
|
||||
<ROUTINE ROOM-IS-CROWDED (RM)
|
||||
<TELL
|
||||
CTHE .RM " is crowded with supplies and equipment. The locked cabinets
|
||||
are probably filled with ">
|
||||
<COND (<==? .RM ,PANTRY>
|
||||
<TELL "dishes, tableware, and napkins">)
|
||||
(<==? .RM ,GALLEY>
|
||||
<TELL
|
||||
"food, kettles, and kitchen tools. There's a crowded counter for preparing
|
||||
food">)>
|
||||
<TELL
|
||||
". If you want to find something, you'll have to search for it." CR>>
|
||||
|
||||
<ROUTINE BOOTH-F ("OPTIONAL" (RARG <>))
|
||||
<COND (<EQUAL? .RARG ,M-ENTER>
|
||||
<COND (,DEBUG <TELL "[booth entry routine]" CR>)>
|
||||
<COND (<IN? ,WAITER ,HERE>
|
||||
<PUTP ,WAITER ,P?LDESC 25 ;"waiting for your order">
|
||||
<RFALSE>)
|
||||
(<NOT <EQUAL? ,SCENERY-OBJ ,STATION-GRNZ>>
|
||||
<ESTABLISH-GOAL ,WAITER ,HERE>
|
||||
<RFALSE>)
|
||||
(T <RFALSE>)>)
|
||||
(<EQUAL? .RARG ,M-END>
|
||||
<COND (<AND <EXIT-VERB?>
|
||||
<OR <EQUAL? ,HERE <META-LOC ,FOOD>>
|
||||
<EQUAL? ,HERE <META-LOC ,CUP-A> <META-LOC ,CUP-B>>>>
|
||||
<ESTABLISH-GOAL ,WAITER ,HERE>
|
||||
<RFALSE>)>)
|
||||
(<EQUAL? .RARG ,M-LOOK>
|
||||
<FSET ,BOOTH-1 ,TOUCHBIT>
|
||||
<FSET ,BOOTH-2 ,TOUCHBIT>
|
||||
<FSET ,BOOTH-3 ,TOUCHBIT>
|
||||
<BOOTH-DESC>
|
||||
<MOTION-PREFIX>
|
||||
<RTRUE>)
|
||||
(<EQUAL? .RARG ,M-BEG>
|
||||
<PERSON-TAKES-GUN?>)>>
|
||||
|
||||
<ROUTINE BOOTH-DESC ()
|
||||
<TELL
|
||||
"This is a diner booth on the " ,TRAIN-NAME ". 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." CR>>
|
||||
|
||||
"Allusion to Hitchcock's THE LADY VANISHES --"
|
||||
|
||||
<OBJECT FROY
|
||||
(DESC "window writing")
|
||||
(ADJECTIVE WINDOW)
|
||||
(SYNONYM WRITING SOMETHING MESSAGE)
|
||||
(LDESC "There seems to be something written on the window.")
|
||||
(FLAGS READBIT)
|
||||
(ACTION FROY-F)>
|
||||
|
||||
<ROUTINE FROY-F ()
|
||||
<COND (<VERB? ANALYZE EXAMINE READ>
|
||||
<COND (<NOT <FSET? ,FROY ,TOUCHBIT>>
|
||||
<FSET ,FROY ,TOUCHBIT>
|
||||
<FSET ,FROY ,NDESCBIT>
|
||||
<TELL
|
||||
"It's hard to read in this light, but the writing seems to say \"FROY.\"" CR>)
|
||||
(T
|
||||
<TELL "Hmmm... The writing seems to have vanished." CR>)>)>>
|
||||
|
||||
<ROOM REST-ROOM-REAR-DINER
|
||||
(LOC ROOMS)
|
||||
;(OTHER OTHER-REST-ROOM-REAR)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "rear restroom")
|
||||
(ADJECTIVE SOUTH S REAR R AFT REST)
|
||||
(SYNONYM RESTROOM BATHROOM LAVATORY TOILET ROOM)
|
||||
(GENERIC GENERIC-REST-ROOM-F)
|
||||
(LINE 3)
|
||||
(STATION VESTIBULE-REAR-DINER)
|
||||
;(SOUTH TO VESTIBULE-REAR-DINER IF REST-ROOM-REAR-DINER-DOOR IS OPEN)
|
||||
(WEST TO VESTIBULE-REAR-DINER IF REST-ROOM-REAR-DINER-DOOR IS OPEN)
|
||||
(OUT TO VESTIBULE-REAR-DINER IF REST-ROOM-REAR-DINER-DOOR IS OPEN)
|
||||
(GLOBAL REST-ROOM-REAR-DINER-DOOR ;STOP-CORD MIRROR TOILET
|
||||
SINK TOWEL-FIXTURE TOWEL-LOOP FIXTURES)
|
||||
(ACTION REST-ROOM-F)>
|
||||
|
||||
<OBJECT REST-ROOM-REAR-DINER-DOOR
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "restroom door")
|
||||
(ADJECTIVE RESTROOM BATHROOM LAVATORY TOILET ROOM SMALL)
|
||||
(SYNONYM DOOR)
|
||||
(FLAGS DOORBIT)
|
||||
(ACTION REST-ROOM-REAR-DINER-DOOR-F)>
|
||||
|
||||
<ROUTINE REST-ROOM-REAR-DINER-DOOR-F ()
|
||||
<REST-ROOM-DOOR-F ,REST-ROOM-REAR-DINER-DOOR ,REST-ROOM-REAR-DINER>>
|
||||
|
||||
<ROOM VESTIBULE-FWD-DINER
|
||||
(LOC ROOMS)
|
||||
;(OTHER OTHER-VESTIBULE-FWD)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "forward vestibule")
|
||||
(ADJECTIVE NORTH N FORWARD FRONT F FORE)
|
||||
(SYNONYM VESTIBULE V)
|
||||
(GENERIC GENERIC-VESTIBULE-F)
|
||||
(NORTH PER NEXT-CAR-TO-FWD-F)
|
||||
(SOUTH TO HALL-1-DINER IF VESTIBULE-FWD-DOOR ;-DINER IS OPEN)
|
||||
(EAST TO REST-ROOM-FWD-DINER IF REST-ROOM-FWD-DOOR IS OPEN)
|
||||
(IN TO REST-ROOM-FWD-DINER IF REST-ROOM-FWD-DOOR IS OPEN)
|
||||
(LINE 3)
|
||||
(STATION VESTIBULE-FWD-DINER)
|
||||
(GLOBAL REST-ROOM-FWD-DOOR VESTIBULE-FWD-DOOR ;-DINER
|
||||
VESTIBULE-FWD-WINDOW ;STOP-CORD)
|
||||
(CORRIDOR -1)
|
||||
(ACTION VESTIBULE-FWD-F)>
|
||||
|
||||
<OBJECT REST-ROOM-FWD-DINER-DOOR
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "restroom door")
|
||||
(ADJECTIVE RESTROOM BATHROOM LAVATORY TOILET ROOM SMALL)
|
||||
(SYNONYM DOOR)
|
||||
(FLAGS DOORBIT)
|
||||
(ACTION REST-ROOM-FWD-DINER-DOOR-F)>
|
||||
|
||||
<ROUTINE REST-ROOM-FWD-DINER-DOOR-F ()
|
||||
<REST-ROOM-DOOR-F ,REST-ROOM-FWD-DINER-DOOR ,REST-ROOM-FWD-DINER>>
|
||||
|
||||
<ROOM HALL-1-DINER
|
||||
(LOC ROOMS)
|
||||
(DESC "forward end")
|
||||
(ADJECTIVE NORTH N FORWARD FRONT F FORE)
|
||||
(SYNONYM END)
|
||||
(GENERIC GENERIC-HALL-1-F)
|
||||
(STATION HALL-1-DINER)
|
||||
(LINE 3)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(WEST TO BOOTH-1)
|
||||
(IN TO BOOTH-1)
|
||||
(GLOBAL HALL-WINDOW SCENERY-RIGHT VESTIBULE-FWD-DOOR ;-DINER)
|
||||
(NORTH TO VESTIBULE-FWD-DINER IF VESTIBULE-FWD-DOOR ;-DINER IS OPEN)
|
||||
(SOUTH TO HALL-2-DINER)
|
||||
(CORRIDOR *2002*)
|
||||
(ACTION HALL-F)>
|
||||
|
||||
<ROOM HALL-2-DINER
|
||||
(LOC ROOMS)
|
||||
(DESC "forward middle")
|
||||
(ADJECTIVE NORTH N FORWARD FRONT F FORE)
|
||||
(SYNONYM MIDDLE)
|
||||
(GENERIC GENERIC-MIDDLE-F)
|
||||
(STATION HALL-2-DINER)
|
||||
(LINE 3)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(WEST TO BOOTH-2)
|
||||
(IN TO BOOTH-2)
|
||||
(GLOBAL HALL-WINDOW SCENERY-RIGHT)
|
||||
(NORTH TO HALL-1-DINER)
|
||||
(SOUTH TO HALL-3-DINER)
|
||||
(CORRIDOR *4002*)
|
||||
(ACTION HALL-F)>
|
||||
|
||||
<ROOM HALL-3-DINER
|
||||
(LOC ROOMS)
|
||||
(DESC "middle")
|
||||
(SYNONYM MIDDLE)
|
||||
(GENERIC GENERIC-MIDDLE-F)
|
||||
(STATION HALL-3-DINER)
|
||||
(LINE 3)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(WEST TO BOOTH-3)
|
||||
(IN TO BOOTH-3)
|
||||
(GLOBAL HALL-WINDOW SCENERY-RIGHT)
|
||||
(NORTH TO HALL-2-DINER)
|
||||
(SOUTH TO HALL-4-DINER)
|
||||
(CORRIDOR *10002*)
|
||||
(ACTION HALL-3-F)>
|
||||
|
||||
<ROOM HALL-4-DINER
|
||||
(DESC "rear middle")
|
||||
(ADJECTIVE SOUTH S REAR R AFT)
|
||||
(SYNONYM MIDDLE)
|
||||
(GENERIC GENERIC-MIDDLE-F)
|
||||
(LOC ROOMS)
|
||||
(STATION HALL-4-DINER)
|
||||
(LINE 3)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(WEST TO PANTRY)
|
||||
(IN TO PANTRY)
|
||||
(GLOBAL HALL-WINDOW SCENERY-RIGHT)
|
||||
(SOUTH TO HALL-5-DINER)
|
||||
(NORTH TO HALL-3-DINER)
|
||||
(CORRIDOR *20002*)
|
||||
(ACTION HALL-F)>
|
||||
|
||||
<ROOM HALL-5-DINER
|
||||
(DESC "rear end")
|
||||
(ADJECTIVE SOUTH S REAR R AFT)
|
||||
(SYNONYM END)
|
||||
(GENERIC GENERIC-HALL-5-F)
|
||||
(LOC ROOMS)
|
||||
(STATION HALL-5-DINER)
|
||||
(LINE 3)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(WEST TO GALLEY)
|
||||
(IN TO GALLEY)
|
||||
(GLOBAL HALL-WINDOW SCENERY-RIGHT VESTIBULE-REAR-DOOR ;-DINER)
|
||||
(SOUTH TO VESTIBULE-REAR-DINER IF VESTIBULE-REAR-DOOR ;-DINER IS OPEN)
|
||||
(NORTH TO HALL-4-DINER)
|
||||
(CORRIDOR *40002*)
|
||||
(ACTION HALL-F)>
|
||||
|
||||
<ROOM VESTIBULE-REAR-DINER
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "rear vestibule")
|
||||
(ADJECTIVE SOUTH S REAR R AFT)
|
||||
(SYNONYM VESTIBULE V)
|
||||
(GENERIC GENERIC-VESTIBULE-F)
|
||||
(SOUTH PER NEXT-CAR-TO-REAR-F)
|
||||
(NORTH TO HALL-5-DINER IF VESTIBULE-REAR-DOOR ;-DINER IS OPEN)
|
||||
(EAST TO REST-ROOM-REAR-DINER IF REST-ROOM-REAR-DOOR IS OPEN)
|
||||
(IN TO REST-ROOM-REAR-DINER IF REST-ROOM-REAR-DOOR IS OPEN)
|
||||
(LINE 3)
|
||||
(STATION VESTIBULE-REAR-DINER)
|
||||
(GLOBAL REST-ROOM-REAR-DOOR VESTIBULE-REAR-DOOR ;-DINER
|
||||
VESTIBULE-REAR-WINDOW ;STOP-CORD LADDER)
|
||||
(WEST PER DETRAIN-F)
|
||||
(OUT PER DETRAIN-F)
|
||||
(DOWN PER DETRAIN-F)
|
||||
(UP PER LADDER-EXIT-F)
|
||||
(CORRIDOR -1)
|
||||
(ACTION VESTIBULE-REAR-F)>
|
||||
|
||||
<OBJECT MACHINE
|
||||
(LOC VESTIBULE-REAR-DINER)
|
||||
(DESC "cigarette machine")
|
||||
(ADJECTIVE CIGARETTE VENDING PLASTIC)
|
||||
(SYNONYM MACHINE PANEL)
|
||||
(FLAGS CONTBIT OPENBIT)
|
||||
(CAPACITY 99)
|
||||
(FDESC
|
||||
"A cigarette machine stands in one corner, waiting to be either used or
|
||||
discarded -- it's hard to say which.")
|
||||
(ACTION MACHINE-F)>
|
||||
|
||||
<ROUTINE MACHINE-F ("AUX" P)
|
||||
<COND (<AND <DOBJ? MACHINE> <VERB? OPEN CLOSE>>
|
||||
<YOU-CANT>)
|
||||
(<VERB? ANALYZE EXAMINE LOOK-INSIDE LOOK-THROUGH>
|
||||
<TELL
|
||||
"The plastic panel is so scratched and grimy that you can barely see
|
||||
the display of cigarette packs inside." CR>)
|
||||
(<VERB? MUNG>
|
||||
<TELL "It seems that someone else beat you to it." CR>)
|
||||
(<AND <VERB? ATTACK SLAP SHAKE>
|
||||
<NOT <FSET? ,MACHINE ,MUNGBIT>>
|
||||
<NOT <FSET? ,CIGARETTE ,TOUCHBIT>>>
|
||||
<SET P <LOC ,CIGARETTE>>
|
||||
<COND (<AND <FSET? .P ,PERSONBIT> <==? 5 <GETP .P ,P?LDESC>>>
|
||||
<FCLEAR .P ,TOUCHBIT>
|
||||
<PUTP .P ,P?LDESC 4 ;"gum">)>
|
||||
<FSET ,CIGARETTE ,TOUCHBIT>
|
||||
<FSET ,CIGARETTE ,TAKEBIT>
|
||||
<MOVE ,CIGARETTE ,HERE>
|
||||
<THIS-IS-IT ,CIGARETTE>
|
||||
<TELL
|
||||
"The machine shudders and disgorges a single cigarette onto the floor." CR>)
|
||||
(<VERB? ATTACK SLAP SHAKE PUT-IN>
|
||||
<COND (<VERB? PUT-IN>
|
||||
<COND (<AND ,P-DOLLAR-FLAG
|
||||
<DOBJ? INTNUM GLOBAL-MONEY>
|
||||
<NOT <L? <GETP ,PLAYER ,P?SOUTH> ,P-AMOUNT>>>
|
||||
<COND (<HARD?>
|
||||
<FSET ,MACHINE ,MUNGBIT>)>
|
||||
<PUTP ,PLAYER ,P?SOUTH
|
||||
<- <GETP ,PLAYER ,P?SOUTH> ,P-AMOUNT>>)
|
||||
(T <YOU-CANT> <RTRUE>)>)>
|
||||
<COND (<PROB 50>
|
||||
<TELL "\"Whirr, buzz">)
|
||||
(T
|
||||
<TELL "\"Whizz, burr">)>
|
||||
<TELL ", click!\" Nothing else happens." CR>)>>
|
||||
|
||||
<ROOM LIMBO-FWD-DINER
|
||||
(DESC "diner forward limbo")
|
||||
(LOC ROOMS)
|
||||
(SOUTH TO VESTIBULE-FWD-DINER)
|
||||
(LINE 3)
|
||||
(STATION LIMBO-FWD-DINER)>
|
||||
|
||||
<ROOM LIMBO-REAR-DINER
|
||||
(DESC "diner rear limbo")
|
||||
(LOC ROOMS)
|
||||
(NORTH TO VESTIBULE-REAR-DINER)
|
||||
(LINE 3)
|
||||
(STATION LIMBO-REAR-DINER)>
|
||||
|
||||
;<OBJECT VESTIBULE-FWD-DINER-DOOR
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "swinging door")
|
||||
(FLAGS DOORBIT TRANSBIT)
|
||||
(ADJECTIVE METAL VESTIBULE HALL SWINGING)
|
||||
(SYNONYM DOOR)
|
||||
(LDESC "This is a swinging metal door with a brass handle.")
|
||||
(ACTION VESTIBULE-FWD-DINER-DOOR-F)>
|
||||
|
||||
;<ROUTINE VESTIBULE-FWD-DINER-DOOR-F ()
|
||||
<VESTIBULE-DOOR-F ,VESTIBULE-FWD-DINER-DOOR>>
|
||||
|
||||
;<OBJECT VESTIBULE-REAR-DINER-DOOR
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "swinging door")
|
||||
(FLAGS DOORBIT TRANSBIT)
|
||||
(ADJECTIVE METAL VESTIBULE HALL SWINGING)
|
||||
(SYNONYM DOOR)
|
||||
(LDESC "This is a swinging metal door with a brass handle.")
|
||||
(ACTION VESTIBULE-REAR-DINER-DOOR-F)>
|
||||
|
||||
;<ROUTINE VESTIBULE-REAR-DINER-DOOR-F ()
|
||||
<VESTIBULE-DOOR-F ,VESTIBULE-REAR-DINER-DOOR>>
|
||||
|
||||
<GLOBAL DINER-CAR 3> ;"Diner can't be first or last car."
|
||||
<GLOBAL DINER-TOUCHED <>>
|
||||
<GLOBAL FANCY-CAR 0>
|
||||
|
||||
<GLOBAL CAR-ROOMS-COMPS-DINER
|
||||
<PLTABLE BOOTH-1 BOOTH-2 BOOTH-3 PANTRY GALLEY>>
|
||||
|
||||
<GLOBAL CAR-ROOMS-DINER
|
||||
<PLTABLE REST-ROOM-FWD-DINER
|
||||
BOOTH-1 BOOTH-2 BOOTH-3 PANTRY GALLEY REST-ROOM-REAR-DINER
|
||||
VESTIBULE-FWD-DINER HALL-1-DINER HALL-2-DINER HALL-3-DINER
|
||||
HALL-4-DINER HALL-5-DINER VESTIBULE-REAR-DINER>>
|
||||
|
||||
<GLOBAL CAR-ROOMS-FANCY
|
||||
<PLTABLE ;REST-ROOM-FWD-FANCY
|
||||
SUITE-1 SUITE-2 SUITE-3 ;REST-ROOM-REAR-FANCY
|
||||
VESTIBULE-FWD-FANCY HALL-1-FANCY HALL-2-FANCY HALL-3-FANCY
|
||||
VESTIBULE-REAR-FANCY>>
|
||||
|
||||
<ROUTINE PICK-ONE-BOOTH ("AUX" X)
|
||||
<SET X <RANDOM 3>>
|
||||
<COND (<==? .X 1> ,BOOTH-1)
|
||||
(<==? .X 2> ,BOOTH-2)
|
||||
(<==? .X 3> ,BOOTH-3)>>
|
||||
|
||||
<ROOM VESTIBULE-FWD-FANCY
|
||||
(LOC ROOMS)
|
||||
;(OTHER OTHER-VESTIBULE-FWD)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "forward vestibule")
|
||||
(ADJECTIVE NORTH N FORWARD FRONT F FORE)
|
||||
(SYNONYM VESTIBULE V)
|
||||
(GENERIC GENERIC-VESTIBULE-F)
|
||||
(NORTH PER NEXT-CAR-TO-FWD-F)
|
||||
(SOUTH TO HALL-1-FANCY IF VESTIBULE-FWD-DOOR ;-FANCY IS OPEN)
|
||||
(LINE 6)
|
||||
(STATION VESTIBULE-FWD-FANCY)
|
||||
(GLOBAL VESTIBULE-FWD-DOOR ;-FANCY VESTIBULE-FWD-WINDOW ;STOP-CORD)
|
||||
(CORRIDOR -1)
|
||||
(ACTION VESTIBULE-FWD-F)>
|
||||
|
||||
<ROOM HALL-1-FANCY
|
||||
(LOC ROOMS)
|
||||
(DESC "forward end")
|
||||
(ADJECTIVE NORTH N FORWARD FRONT F FORE)
|
||||
(SYNONYM END)
|
||||
(GENERIC GENERIC-HALL-1-F)
|
||||
(STATION HALL-1-FANCY)
|
||||
(LINE 6)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(WEST TO SUITE-1 IF SUITE-1-DOOR IS OPEN)
|
||||
(IN TO SUITE-1 IF SUITE-1-DOOR IS OPEN)
|
||||
(NORTH TO VESTIBULE-FWD-FANCY IF VESTIBULE-FWD-DOOR IS OPEN)
|
||||
(SOUTH TO HALL-2-FANCY)
|
||||
(CORRIDOR *10*)
|
||||
(GLOBAL SUITE-1-DOOR HALL-WINDOW VESTIBULE-FWD-DOOR
|
||||
SCENERY-RIGHT)
|
||||
(ACTION HALL-FANCY-F)>
|
||||
|
||||
<OBJECT SUITE-1-DOOR
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "compartment door")
|
||||
(ADJECTIVE COMPARTMENT C)
|
||||
(SYNONYM DOOR)
|
||||
(FLAGS DOORBIT LOCKED)
|
||||
(ACTION SUITE-1-DOOR-F)>
|
||||
|
||||
<ROUTINE SUITE-1-DOOR-F () <COMPARTMENT-DOOR-F ,SUITE-1-DOOR>>
|
||||
|
||||
<ROOM HALL-2-FANCY
|
||||
(LOC ROOMS)
|
||||
(DESC "middle")
|
||||
(SYNONYM MIDDLE)
|
||||
(GENERIC GENERIC-MIDDLE-F)
|
||||
(STATION HALL-2-FANCY)
|
||||
(LINE 6)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(WEST TO SUITE-2 IF SUITE-2-DOOR IS OPEN)
|
||||
(IN TO SUITE-2 IF SUITE-2-DOOR IS OPEN)
|
||||
(GLOBAL SUITE-2-DOOR HALL-WINDOW SCENERY-RIGHT)
|
||||
(NORTH TO HALL-1-FANCY)
|
||||
(SOUTH TO HALL-3-FANCY)
|
||||
(CORRIDOR *10*)
|
||||
(ACTION HALL-FANCY-F ;HALL-3-F)>
|
||||
|
||||
<OBJECT SUITE-2-DOOR
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "compartment door")
|
||||
(ADJECTIVE COMPARTMENT C)
|
||||
(SYNONYM DOOR)
|
||||
(FLAGS DOORBIT LOCKED)
|
||||
(ACTION SUITE-2-DOOR-F)>
|
||||
|
||||
<ROUTINE SUITE-2-DOOR-F () <COMPARTMENT-DOOR-F ,SUITE-2-DOOR>>
|
||||
|
||||
<ROOM HALL-3-FANCY
|
||||
(LOC ROOMS)
|
||||
(DESC "rear end")
|
||||
(ADJECTIVE SOUTH S REAR R AFT)
|
||||
(SYNONYM END)
|
||||
(GENERIC GENERIC-HALL-5-F)
|
||||
(STATION HALL-3-FANCY)
|
||||
(LINE 6)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(WEST TO SUITE-3 IF SUITE-3-DOOR IS OPEN)
|
||||
(IN TO SUITE-3 IF SUITE-3-DOOR IS OPEN)
|
||||
(GLOBAL SUITE-3-DOOR HALL-WINDOW VESTIBULE-REAR-DOOR
|
||||
SCENERY-RIGHT)
|
||||
(SOUTH TO VESTIBULE-REAR-FANCY IF VESTIBULE-REAR-DOOR IS OPEN)
|
||||
(NORTH TO HALL-2-FANCY)
|
||||
(CORRIDOR *10*)
|
||||
(ACTION HALL-FANCY-F)>
|
||||
|
||||
<OBJECT SUITE-3-DOOR
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "compartment door")
|
||||
(ADJECTIVE COMPARTMENT C)
|
||||
(SYNONYM DOOR)
|
||||
(FLAGS DOORBIT LOCKED)
|
||||
(ACTION SUITE-3-DOOR-F)>
|
||||
|
||||
<ROUTINE SUITE-3-DOOR-F () <COMPARTMENT-DOOR-F ,SUITE-3-DOOR>>
|
||||
|
||||
<ROOM VESTIBULE-REAR-FANCY
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "rear vestibule")
|
||||
(ADJECTIVE SOUTH S REAR R AFT)
|
||||
(SYNONYM VESTIBULE V)
|
||||
(GENERIC GENERIC-VESTIBULE-F)
|
||||
(SOUTH PER NEXT-CAR-TO-REAR-F)
|
||||
(NORTH TO HALL-3-FANCY IF VESTIBULE-REAR-DOOR ;-FANCY IS OPEN)
|
||||
(LINE 6)
|
||||
(STATION VESTIBULE-REAR-FANCY)
|
||||
(GLOBAL VESTIBULE-REAR-DOOR ;-FANCY VESTIBULE-REAR-WINDOW LADDER)
|
||||
(WEST PER DETRAIN-F)
|
||||
(OUT PER DETRAIN-F)
|
||||
(DOWN PER DETRAIN-F)
|
||||
(UP PER LADDER-EXIT-F)
|
||||
(CORRIDOR -1)
|
||||
(ACTION VESTIBULE-REAR-F)>
|
||||
|
||||
<ROOM LIMBO-FWD-FANCY
|
||||
(DESC "fancy forward limbo")
|
||||
(LOC ROOMS)
|
||||
(SOUTH TO VESTIBULE-FWD-FANCY)
|
||||
(LINE 6)
|
||||
(STATION LIMBO-FWD-FANCY)>
|
||||
|
||||
<ROOM LIMBO-REAR-FANCY
|
||||
(DESC "fancy rear limbo")
|
||||
(LOC ROOMS)
|
||||
(NORTH TO VESTIBULE-REAR-FANCY)
|
||||
(LINE 6)
|
||||
(STATION LIMBO-REAR-FANCY)>
|
||||
|
||||
<ROOM SUITE-1
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "first suite")
|
||||
(ADJECTIVE FIRST 1ST \#1)
|
||||
(SYNONYM SUITE ROOM)
|
||||
(STATION HALL-1-FANCY)
|
||||
(LINE 6)
|
||||
(EAST TO HALL-1-FANCY IF SUITE-1-DOOR IS OPEN)
|
||||
(OUT TO HALL-1-FANCY IF SUITE-1-DOOR IS OPEN)
|
||||
(GLOBAL SUITE-1-DOOR WINDOW-1 SCENERY-LEFT ;STOP-CORD)
|
||||
;(GENERIC GENERIC-COMPARTMENT-F)
|
||||
(ACTION SUITE-F)>
|
||||
|
||||
<ROOM SUITE-2
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "second suite")
|
||||
(ADJECTIVE SECOND 2ND \#2)
|
||||
(SYNONYM SUITE ROOM)
|
||||
(STATION HALL-2-FANCY)
|
||||
(LINE 6)
|
||||
(EAST TO HALL-2-FANCY IF SUITE-2-DOOR IS OPEN)
|
||||
(OUT TO HALL-2-FANCY IF SUITE-2-DOOR IS OPEN)
|
||||
(GLOBAL SUITE-2-DOOR WINDOW-2 SCENERY-LEFT ;STOP-CORD)
|
||||
;(GENERIC GENERIC-COMPARTMENT-F)
|
||||
(ACTION SUITE-F)>
|
||||
|
||||
<ROOM SUITE-3
|
||||
(LOC ROOMS)
|
||||
(FLAGS ;RLANDBIT ONBIT)
|
||||
(DESC "third suite")
|
||||
(ADJECTIVE THIRD 3RD \#3 LAST)
|
||||
(SYNONYM SUITE ROOM)
|
||||
(STATION HALL-3-FANCY)
|
||||
(LINE 6)
|
||||
(EAST TO HALL-3-FANCY IF SUITE-3-DOOR IS OPEN)
|
||||
(OUT TO HALL-3-FANCY IF SUITE-3-DOOR IS OPEN)
|
||||
(GLOBAL SUITE-3-DOOR WINDOW-3 SCENERY-LEFT ;STOP-CORD)
|
||||
;(GENERIC GENERIC-COMPARTMENT-F)
|
||||
(ACTION SUITE-F)>
|
||||
|
||||
<ROUTINE SUITE-F ("OPTIONAL" (RARG <>) "AUX" N)
|
||||
<COND (.RARG
|
||||
<V-FOO>
|
||||
<RTRUE>)>>
|
||||
|
||||
<ROUTINE HALL-FANCY-F ("OPTIONAL" (RARG <>) "AUX" X (TOUCHED <>) (VAL <>))
|
||||
<COND (<OR <FSET? ,HALL-1-FANCY ,TOUCHBIT>
|
||||
<FSET? ,HALL-1-FANCY ,TOUCHBIT>
|
||||
<FSET? ,HALL-1-FANCY ,TOUCHBIT>>
|
||||
<SET TOUCHED T>)>
|
||||
<COND (<OR <EQUAL? .RARG ,M-LOOK>
|
||||
<AND <ZERO? .RARG> <VERB? LOOK>>>
|
||||
<FSET ,HERE ,TOUCHBIT>
|
||||
<TELL "This is the " D ,HERE " of the corridor.">
|
||||
<COND (<OR <VERB? LOOK> <ZERO? .TOUCHED>>
|
||||
<TELL
|
||||
" 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.">)>
|
||||
<COND (<==? ,PLAYER-NOT-FACING ,P?WEST>
|
||||
<CRLF>)
|
||||
(T
|
||||
<SET X <GET-REXIT-ROOM <GETPT ,HERE ,P?IN>>>
|
||||
<THIS-IS-IT .X>
|
||||
<TELL
|
||||
" On the left side of the train, behind a locked door, lies the " D .X"."CR>)>
|
||||
<RTRUE>)
|
||||
(<EQUAL? .RARG ,M-ENTER>
|
||||
<COND (<NOISY? ,LAST-PLAYER-LOC>
|
||||
<SET VAL T>
|
||||
<COND (T;<OR <AND<EQUAL? ,LAST-PLAYER-LOC ,VESTIBULE-FWD-FANCY>
|
||||
<EQUAL? ,HERE ,HALL-1-FANCY>>
|
||||
<AND <EQUAL? ,LAST-PLAYER-LOC ,VESTIBULE-REAR-FANCY>
|
||||
<EQUAL? ,HERE ,HALL-3-FANCY>>>
|
||||
<TELL "The relative quiet here is welcome. ">)>)>
|
||||
<COND (<NOT .TOUCHED>
|
||||
<SET VAL T>
|
||||
<TELL "The feel of luxury here is unmistakable.">)>
|
||||
<COND (.VAL <CRLF>)>
|
||||
<RFALSE>)>>
|
|
@ -0,0 +1,44 @@
|
|||
Chase Scene for CHECKPOINT
|
||||
--------------------------
|
||||
When you get through the checkpoint (at Frbz?), someone will get
|
||||
suspicious (presumably seeing the camera) and will board the
|
||||
train. As you are in 'friendly' territory after crossing the border,
|
||||
the new 'bad spy' will be working behind enemy lines. He will therefore
|
||||
be more dangerous and ruthless.
|
||||
|
||||
Perhaps some hint of what's coming could be presented in a description
|
||||
of some officials carrying off your now bloodied contact, this being
|
||||
printed as you re-board the train.
|
||||
|
||||
The new bad spy (NBS) will attempt to get you alone and thereupon kill
|
||||
you and take the McGuffin. I would think that sometime soon upon
|
||||
entering the train, you would catch a glimpse of this person from the
|
||||
corner of your eye.
|
||||
|
||||
He will follow you into any compartment -
|
||||
|
||||
a) If it is empty, he will reach into his raincoat in a way that
|
||||
should remind the player of someone reaching for a gun. The player
|
||||
must do something the very next move or get killed. This could consist
|
||||
of throwing something at the man, leaving the compartment, etc.
|
||||
|
||||
b) If it isn't empty, he will say something in Frotzer to the other
|
||||
people there (presumably it is something like "My colleague and I need
|
||||
to talk privately - would you mind leaving us for a few moments.")
|
||||
In most (all?) cases, the others will leave, and you now are in
|
||||
the previous situation.
|
||||
|
||||
If you are just walking around the train, he will follow at a distance
|
||||
of a few locations (2?). Walking into a restroom is a good way to get
|
||||
trapped. He will knock on the door. Then the following:
|
||||
|
||||
a) If you don't ever leave the restroom and its getting near the
|
||||
stop at Gola, he will become desparate and shoot through the door,
|
||||
wounding you badly. He will also take the camera, so the world is
|
||||
lost.
|
||||
|
||||
b) If you leave the restroom, he will wedge his foot in the door
|
||||
and point the barrel of the gun toward you. You have two moves before
|
||||
you must pull the emergency cord of the train or (something else, so
|
||||
there are multiple solutions). When you do so, his gun falls from his
|
||||
hand. Before you can grab it, he runs off.
|
|
@ -0,0 +1,56 @@
|
|||
"EXTENDED COMPILE/LOAD FILE for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<PRINC "Compiling">
|
||||
<SETG ZSTR-ON <SETG ZSTR-OFF ,TIME>>
|
||||
<ID 0>)
|
||||
(T <PRINC "Loading">)>
|
||||
|
||||
<PRINC " CHECKPOINT: interactive fiction from Infocom!
|
||||
">
|
||||
|
||||
<COND (<GASSIGNED? MUDDLE>
|
||||
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>)>
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
||||
"<GLOBAL BIGFIX 10000>"
|
||||
|
||||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
|
||||
<INSERT-FILE .STR .FLOAD?>>
|
||||
|
||||
<DIRECTIONS ;"Do not change the order of the first eight
|
||||
without consulting MARC! -- ENCHANTER"
|
||||
NORTH ;NE EAST ;SE SOUTH ;SW WEST ;NW UP DOWN IN OUT>
|
||||
|
||||
<IFILE "MACROS" T>
|
||||
<IFILE "SYNTAX" T>
|
||||
<IFILE "MAIN" T>
|
||||
<IFILE "THINGS" T>
|
||||
<IFILE "PEOPLE" T>
|
||||
<IFILE "PLACES" T>
|
||||
<IFILE "GLOBAL" T>
|
||||
|
||||
<CONSTANT SERIAL 0>
|
||||
|
||||
<IFILE "CLOCK" T>
|
||||
<IFILE "PARSER" T>
|
||||
<IFILE "VERBS" T>
|
||||
<IFILE "TRAIN" T>
|
||||
<IFILE "CARS" T>
|
||||
<IFILE "STATION" T>
|
||||
<IFILE "GOAL" T>
|
||||
<IFILE "SPIES" T>
|
||||
|
||||
<PROPDEF SIZE 5>
|
||||
<PROPDEF CAPACITY 0>
|
||||
|
||||
<DEFINE ISL () <INIT-STATUS-LINE>>
|
||||
|
||||
<GC-MON T>
|
||||
<COND (<GASSIGNED? MUDDLE>
|
||||
<GC 0 T 5>)>
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
;COMPARISON OF PS:<SWG>CLOCK.ZAP.1 AND PS:<SWG>CLOCK.ZAP.3
|
||||
;OPTIONS ARE /1
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-12 (180)
|
||||
?PRG1: EQUAL? C,E \?ELS5
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-12 (180)
|
||||
?PRG1: EQUAL? C,E \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-17 (295)
|
||||
?ELS5: GET C,C-RTN
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-17 (295)
|
||||
?ELS4: GET C,C-RTN
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-29 (523)
|
||||
IGRTR? 'MOVES,59 \?CND5
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-29 (523)
|
||||
IGRTR? 'MOVES,59 \?CND3
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-31 (564)
|
||||
IGRTR? 'SCORE,23 \?CND5
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-31 (564)
|
||||
IGRTR? 'SCORE,23 \?CND3
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-33 (605)
|
||||
?CND5: PUSH C-INTS
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-33 (605)
|
||||
?CND3: PUSH C-INTS
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-36 (676)
|
||||
?PRG16: EQUAL? C,E \?ELS20
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-36 (676)
|
||||
?PRG10: EQUAL? C,E \?ELS13
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-38 (717)
|
||||
?ELS20: GET C,C-ENABLED?
|
||||
ZERO? STACK /?CND18
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-38 (717)
|
||||
?ELS13: GET C,C-ENABLED?
|
||||
ZERO? STACK /?CND12
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-41 (786)
|
||||
ZERO? TICK \?ELS25
|
||||
JUMP ?CND18
|
||||
?ELS25: SUB TICK,1
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-41 (786)
|
||||
ZERO? TICK \?ELS16
|
||||
JUMP ?CND12
|
||||
?ELS16: SUB TICK,1
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-45 (862)
|
||||
GRTR? TICK,1 /?CND23
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-45 (862)
|
||||
GRTR? TICK,1 /?CND15
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.1, 1-48 (917)
|
||||
ZERO? VAL /?CND23
|
||||
ZERO? FLG /?THN36
|
||||
EQUAL? VAL,M-FATAL \?CND18
|
||||
?THN36: SET 'FLG,VAL
|
||||
?CND23:
|
||||
?CND18: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG16
|
||||
**** FILE PS:<SWG>CLOCK.ZAP.3, 1-48 (917)
|
||||
ZERO? VAL /?CND15
|
||||
ZERO? FLG /?THN21
|
||||
EQUAL? VAL,M-FATAL \?CND12
|
||||
?THN21: SET 'FLG,VAL
|
||||
?CND15:
|
||||
?CND12: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG10
|
||||
***************
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
|
||||
|
||||
.FUNCT QUEUE,RTN,TICK,CINT
|
||||
CALL2 INT,RTN >CINT
|
||||
PUT CINT,C-TICK,TICK
|
||||
RETURN CINT
|
||||
|
||||
|
||||
.FUNCT INT,RTN,DEMON=0,E,C,INT
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
ADD C-TABLE,C-INTS >C
|
||||
?PRG1: EQUAL? C,E \?ELS5
|
||||
SUB C-INTS,C-INTLEN >C-INTS
|
||||
ADD C-TABLE,C-INTS >INT
|
||||
PUT INT,C-RTN,RTN
|
||||
RETURN INT
|
||||
?ELS5: GET C,C-RTN
|
||||
EQUAL? STACK,RTN \?CND3
|
||||
RETURN C
|
||||
?CND3: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT QUEUED?,RTN,C
|
||||
CALL2 INT,RTN >C
|
||||
GET C,C-ENABLED?
|
||||
ZERO? STACK /FALSE
|
||||
GET C,C-TICK >C
|
||||
ZERO? C /FALSE
|
||||
RETURN C
|
||||
|
||||
|
||||
.FUNCT CLOCKER,C,E,TICK,FLG=0,VAL
|
||||
ZERO? CLOCK-WAIT /?CND1
|
||||
SET 'CLOCK-WAIT,FALSE-VALUE
|
||||
RFALSE
|
||||
?CND1: INC 'PRESENT-TIME
|
||||
IGRTR? 'MOVES,59 \?CND5
|
||||
SET 'MOVES,0
|
||||
IGRTR? 'SCORE,23 \?CND5
|
||||
SET 'SCORE,0
|
||||
?CND5: PUSH C-INTS
|
||||
ADD C-TABLE,STACK >C
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
?PRG16: EQUAL? C,E \?ELS20
|
||||
RETURN FLG
|
||||
?ELS20: GET C,C-ENABLED?
|
||||
ZERO? STACK /?CND18
|
||||
GET C,C-TICK >TICK
|
||||
ZERO? TICK \?ELS25
|
||||
JUMP ?CND18
|
||||
?ELS25: SUB TICK,1
|
||||
PUT C,C-TICK,STACK
|
||||
GRTR? TICK,1 /?CND23
|
||||
GET C,C-RTN
|
||||
CALL STACK >VAL
|
||||
ZERO? VAL /?CND23
|
||||
ZERO? FLG /?THN36
|
||||
EQUAL? VAL,M-FATAL \?CND18
|
||||
?THN36: SET 'FLG,VAL
|
||||
?CND23:
|
||||
?CND18: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG16
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,107 @@
|
|||
"CLOCK for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
"List of queued routines:
|
||||
G-LEAVE-TRAIN
|
||||
I-ARRIVE-WARNING
|
||||
I-ATTENTION
|
||||
I-BAD-SPY
|
||||
I-BAD-SPY-W-CASE
|
||||
I-BAD-SPY-W-YOU
|
||||
I-BOND
|
||||
I-BOND-OTHER
|
||||
I-COME-TO
|
||||
I-CONDUCTOR
|
||||
I-CONTACT-APPEARS
|
||||
I-CONTACT-GIVES-UP
|
||||
I-DEPART
|
||||
I-DEPART-WARNING
|
||||
I-EXTRA
|
||||
I-FOLLOW
|
||||
I-LEAVE-TRAIN
|
||||
I-PROMPT
|
||||
I-TICKETS-PLEASE
|
||||
I-TRAIN-ARREST
|
||||
I-TRAIN-LURCH
|
||||
I-TRAIN-RESTART
|
||||
I-TRAIN-SCENERY
|
||||
;I-TRAIN-SOUNDS
|
||||
I-TRAVELER
|
||||
I-TRAVELER-FINDS-CONTACT
|
||||
I-TRAVELER-SEEKS-FLOWER
|
||||
I-TRAVELER-TO-GRNZ
|
||||
I-VESTIBULE-DOOR
|
||||
"
|
||||
|
||||
<CONSTANT C-TABLELEN 222>
|
||||
<GLOBAL C-TABLE %<COND ;(<GASSIGNED? PREDGEN> '<ITABLE NONE 111>)
|
||||
(T '<ITABLE NONE 222>)>>
|
||||
|
||||
<GLOBAL C-INTS 222>
|
||||
<CONSTANT C-INTLEN 6>
|
||||
<CONSTANT C-ENABLED? 0>
|
||||
<CONSTANT C-TICK 1>
|
||||
<CONSTANT C-RTN 2>
|
||||
|
||||
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
|
||||
;#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
|
||||
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
|
||||
.CINT>
|
||||
|
||||
<ROUTINE INT (RTN "OPTIONAL" (DEMON <>) E C INT)
|
||||
;#DECL ((RTN) ATOM (DEMON) <OR ATOM FALSE> (E C INT) <PRIMTYPE
|
||||
VECTOR>)
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<SET C <REST ,C-TABLE ,C-INTS>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E>
|
||||
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
|
||||
;<AND .DEMON <SETG C-DEMONS <- ,C-DEMONS ,C-INTLEN>>>
|
||||
<SET INT <REST ,C-TABLE ,C-INTS>>
|
||||
<PUT .INT ,C-RTN .RTN>
|
||||
<RETURN .INT>)
|
||||
(<EQUAL? <GET .C ,C-RTN> .RTN> <RETURN .C>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
||||
|
||||
;<ROUTINE ENABLED? (RTN)
|
||||
<NOT <ZERO? <GET <INT .RTN> ,C-ENABLED?>>>>
|
||||
|
||||
<ROUTINE QUEUED? (RTN "AUX" C)
|
||||
<SET C <INT .RTN>>
|
||||
<COND (<ZERO? <GET .C ,C-ENABLED?>> <RFALSE>)
|
||||
(<ZERO? <SET C <GET .C ,C-TICK>>> <RFALSE>)
|
||||
(T .C)>>
|
||||
|
||||
<GLOBAL CLOCK-WAIT <>>
|
||||
|
||||
"SCORE INDICATES HOURS / MOVES = MINUTES"
|
||||
|
||||
<GLOBAL SCORE 0>
|
||||
<GLOBAL MOVES 0>
|
||||
<GLOBAL PRESENT-TIME 600>
|
||||
|
||||
<ROUTINE CLOCKER ("AUX" C E TICK (FLG <>) VAL)
|
||||
;#DECL ((C E) <PRIMTYPE VECTOR> (TICK) FIX ;(FLG) ;<OR FALSE ATOM>)
|
||||
<COND (,CLOCK-WAIT <SETG CLOCK-WAIT <>> <RFALSE>)>
|
||||
<SETG PRESENT-TIME <+ ,PRESENT-TIME 1>>
|
||||
;<COND (<G? ,PRESENT-TIME 1199>
|
||||
<TIMES-UP>)>
|
||||
<COND (<G? <SETG MOVES <+ ,MOVES 1>> 59>
|
||||
<SETG MOVES 0>
|
||||
<COND (<G? <SETG SCORE <+ ,SCORE 1>> 23>
|
||||
<SETG SCORE 0>)>)>
|
||||
<SET C <REST ,C-TABLE <COND (T ;,P-WON ,C-INTS) ;(T ,C-DEMONS)>>>
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E> <RETURN .FLG>)
|
||||
(<NOT <ZERO? <GET .C ,C-ENABLED?>>>
|
||||
<SET TICK <GET .C ,C-TICK>>
|
||||
<COND (<ZERO? .TICK>)
|
||||
(T
|
||||
<PUT .C ,C-TICK <- .TICK 1>>
|
||||
<COND (<AND <NOT <G? .TICK 1>>
|
||||
<SET VAL <APPLY <GET .C ,C-RTN>>>>
|
||||
<COND (<OR <NOT .FLG>
|
||||
<==? .VAL ,M-FATAL>>
|
||||
<SET FLG .VAL>)>)>)>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
|
@ -0,0 +1,90 @@
|
|||
@style (spacing 2)
|
||||
@title ("Seven Shadows" Browsie)
|
||||
@pageheading (draft)
|
||||
|
||||
@majorheading ("SEVEN SHADOWS" BROWSIE)
|
||||
|
||||
@center (Comments to Stu Galley)
|
||||
@blankspace(5)
|
||||
|
||||
@center (VUBSNAP NI FROTZ!)
|
||||
|
||||
@center (WELCOME TO FROTZENLAND!)
|
||||
|
||||
Whether you come to Frotzenland for business, for pleasure, or for neither,
|
||||
our people will roll out the purple carpet to welcome you!
|
||||
After years of isolation and fear, our hearts and minds are open!
|
||||
Never before will you have seen such sights, ate such food, heard such
|
||||
noises, or enjoyed our day-to-day life!
|
||||
|
||||
@center (FROTZENLAND - "SO GOOD YOU NEVER SAW")
|
||||
|
||||
Frotzenland is a country somewhere in Europe.
|
||||
Its rugged terrain and mountainous borders help keep it safe from its
|
||||
neighbours, yet easy to access with one airplane from Vienna.
|
||||
Here you find something for every traveller: wild rivers, barren plains,
|
||||
dark forests, clean cities, or friendly people.
|
||||
|
||||
@center (OUR BELOVED GOVERNMENT)
|
||||
|
||||
Every citizen in Frotzenland must vote in every election.
|
||||
Our wise leaders find themselves elected again every time.
|
||||
They conduct themselves as strictly neutral
|
||||
government, with planning for every citizen's life and happiness.
|
||||
|
||||
@center (OUR BELOVED RAILWAY)
|
||||
|
||||
The Frotz National Railway ("Ferroglip Natsiolim Frotzilim")
|
||||
carries our beloved people whenever they wish to get away.
|
||||
It has more kilometers of trackage than highways or canals.
|
||||
It always can run on time, so you don't usually
|
||||
forget your printed timetable.
|
||||
|
||||
Modern equipments make every train a pleasure to watch.
|
||||
First-class passenger wagons have:
|
||||
@begin (itemize)
|
||||
several identical compartments for equal rights to travel
|
||||
|
||||
a corridor you can walk in
|
||||
|
||||
two W.C@. or restrooms in case of emergency
|
||||
|
||||
also cars for dining as much as you feel
|
||||
@end (itemize)
|
||||
|
||||
The stations are all equal too,
|
||||
with these interesting rooms:
|
||||
@begin (itemize)
|
||||
|
||||
platform, where you say hello and goodbye
|
||||
|
||||
waiting room, where you wait
|
||||
|
||||
cafe with delicious foods and also travelling necessaries in store
|
||||
|
||||
W.C@. or restroom in case of emergency
|
||||
|
||||
ticket area, where you buy side trips or scene excursions
|
||||
|
||||
luggage room (if you travel heavy) with careful clerks who don't damage
|
||||
|
||||
police persons can help you if you wander too far
|
||||
@end (itemize)
|
||||
|
||||
@center (OUR BELOVED FOOD)
|
||||
|
||||
You will find something for every taste in Frotzenland.
|
||||
Since the recent tractor reforms, all citizens do their parts
|
||||
to grow abundantly for home use and visitors.
|
||||
The good soil can produce fine meats and potatoes, wild games and cabbages.
|
||||
And don't pass by local delicacies such as rumpled stilt's skin,
|
||||
or fish heads and lice.
|
||||
|
||||
In a city you may find a good restaurant with Continental air
|
||||
and attending services. The finest food we can find for you.
|
||||
And you may enjoy a good wine, with the taste of good soil from the
|
||||
Thnbrd district.
|
||||
|
||||
@center (PLEASE TO COME ENJOY OUR BELOVED COUNTRY BEFORE IT'S TOO LATE.)
|
||||
|
||||
@center (YOU @I[WILL] ENJOY YOUR VISIT!)
|
|
@ -0,0 +1,822 @@
|
|||
|
||||
;COMPARISON OF PS:<SWG>GLOBAL.ZAP.1 AND PS:<SWG>GLOBAL.ZAP.3
|
||||
;OPTIONS ARE /1
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-4 (37)
|
||||
EQUAL? PRSI,OBJ2 \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-4 (37)
|
||||
EQUAL? PRSI,OBJ2 \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-7 (102)
|
||||
?ELS5: EQUAL? PRSO,OBJ2 \?ELS7
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-7 (102)
|
||||
?ELS4: EQUAL? PRSO,OBJ2 \?ELS5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-10 (173)
|
||||
?ELS7: CALL V-FOO
|
||||
ZERO? STACK /FALSE
|
||||
RTRUE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-10 (173)
|
||||
?ELS5: CALL V-FOO
|
||||
ZERO? STACK \TRUE
|
||||
RFALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-22 (326)
|
||||
EQUAL? PRSI,IT \?THN10
|
||||
EQUAL? PRSA,V?TELL-ABOUT /?THN10
|
||||
EQUAL? PRSA,V?SEARCH-FOR,V?ASK-FOR,V?ASK-ABOUT /?THN14
|
||||
?THN10: EQUAL? PRSO,IT \FALSE
|
||||
EQUAL? PRSA,V?WHAT /?THN14
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-22 (326)
|
||||
EQUAL? PRSI,IT \?ELS5
|
||||
EQUAL? PRSA,V?TELL-ABOUT /?THN4
|
||||
EQUAL? PRSA,V?SEARCH-FOR,V?ASK-FOR,V?ASK-ABOUT /?THN4
|
||||
?ELS5: EQUAL? PRSO,IT \FALSE
|
||||
EQUAL? PRSA,V?WHAT /?THN4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-28 (569)
|
||||
?THN14: CALL PRODUCE-GIBBERISH
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-28 (564)
|
||||
?THN4: CALL PRODUCE-GIBBERISH
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-33 (636)
|
||||
EQUAL? PRSA,V?PUT \?ELS5
|
||||
EQUAL? PRSI,FLOOR \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-33 (630)
|
||||
EQUAL? PRSA,V?PUT \?ELS4
|
||||
EQUAL? PRSI,FLOOR \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-37 (726)
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-ON,V?SEARCH,V?EXAMINE \?ELS9
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-37 (720)
|
||||
?ELS4: EQUAL? PRSA,V?LOOK-ON,V?SEARCH,V?EXAMINE \?ELS6
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-39 (825)
|
||||
ZERO? OBJ /?ELS14
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-39 (819)
|
||||
ZERO? OBJ /?ELS10
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-45 (965)
|
||||
?ELS14: PRINTR "You don't find anything new there."
|
||||
?ELS9: EQUAL? PRSA,V?TAKE,V?BRUSH \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-45 (959)
|
||||
?ELS10: PRINTR "You don't find anything new there."
|
||||
?ELS6: EQUAL? PRSA,V?TAKE,V?BRUSH \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-53 (1160)
|
||||
EQUAL? PRSA,V?COUNT \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-53 (1154)
|
||||
EQUAL? PRSA,V?COUNT \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-56 (1240)
|
||||
?ELS5: ZERO? P-DOLLAR-FLAG /?ELS10
|
||||
ZERO? P-AMOUNT \?CND8
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-56 (1234)
|
||||
?ELS4: ZERO? P-DOLLAR-FLAG /?ELS6
|
||||
ZERO? P-AMOUNT \?CND5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-59 (1318)
|
||||
JUMP ?CND8
|
||||
?ELS10: SET 'P-DOLLAR-FLAG,TRUE-VALUE
|
||||
ZERO? P-NUMBER \?CND8
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-59 (1311)
|
||||
JUMP ?CND5
|
||||
?ELS6: SET 'P-DOLLAR-FLAG,TRUE-VALUE
|
||||
ZERO? P-NUMBER \?CND5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-63 (1412)
|
||||
?CND8: CALL DO-INSTEAD-OF,INTNUM,DOLLARS
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-63 (1404)
|
||||
?CND5: CALL DO-INSTEAD-OF,INTNUM,DOLLARS
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-70 (1538)
|
||||
ZERO? STACK /?ELS11
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-70 (1530)
|
||||
ZERO? STACK /?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-73 (1595)
|
||||
?ELS11: EQUAL? PRSA,V?ASK-FOR,V?TAKE /FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-73 (1586)
|
||||
?ELS8: EQUAL? PRSA,V?ASK-FOR,V?TAKE /FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-80 (1764)
|
||||
EQUAL? WINNER,PLAYER /?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-80 (1754)
|
||||
EQUAL? WINNER,PLAYER /?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-83 (1835)
|
||||
?ELS5: EQUAL? PRSA,V?ASK-ABOUT \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-83 (1825)
|
||||
?ELS4: EQUAL? PRSA,V?ASK-ABOUT \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-90 (1979)
|
||||
EQUAL? PRSA,V?LOOK-UP,V?LOOK-DOWN /?THN6
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-90 (1969)
|
||||
EQUAL? PRSA,V?LOOK-UP,V?LOOK-DOWN /?THN4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-92 (2077)
|
||||
?THN6: ZERO? ON-TRAIN /FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-92 (2067)
|
||||
?THN4: ZERO? ON-TRAIN /FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-94 (2142)
|
||||
ZERO? STACK /?ELS14
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-94 (2132)
|
||||
ZERO? STACK /?ELS10
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-97 (2195)
|
||||
?ELS14: CALL NEXT-ROOM,HERE,P?OUT >RM
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-97 (2185)
|
||||
?ELS10: CALL NEXT-ROOM,HERE,P?OUT >RM
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-104 (2339)
|
||||
EQUAL? PRSA,V?WALK-TO \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-104 (2329)
|
||||
EQUAL? PRSA,V?WALK-TO \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-107 (2417)
|
||||
?ELS5: EQUAL? PRSA,V?KNOCK \?ELS7
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-107 (2407)
|
||||
?ELS4: EQUAL? PRSA,V?KNOCK \?ELS5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-109 (2510)
|
||||
?ELS7: EQUAL? PRSA,V?TIE-TO,V?PUT-IN,V?PUT \?ELS11
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-109 (2500)
|
||||
?ELS5: EQUAL? PRSA,V?TIE-TO,V?PUT-IN,V?PUT \?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-112 (2593)
|
||||
?ELS11: EQUAL? PRSA,V?EXAMINE,V?SEARCH \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-112 (2582)
|
||||
?ELS8: EQUAL? PRSA,V?EXAMINE,V?SEARCH \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-114 (2663)
|
||||
ZERO? STACK /?ELS16
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-114 (2651)
|
||||
ZERO? STACK /?ELS11
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-116 (2698)
|
||||
JUMP ?CND14
|
||||
?ELS16: GETP HERE,P?SIZE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-116 (2686)
|
||||
JUMP ?CND10
|
||||
?ELS11: GETP HERE,P?SIZE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-119 (2757)
|
||||
?CND14: EQUAL? P-ADVERB,W?CAREFULLY \?CND19
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-119 (2745)
|
||||
?CND10: EQUAL? P-ADVERB,W?CAREFULLY \?CND12
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-121 (2819)
|
||||
?CND19: PRINTI "(It's better to examine or search one thing at a time. It would take a long time to search a whole room or area thoroughly. A "
|
||||
EQUAL? P-ADVERB,W?CAREFULLY \?ELS26
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-121 (2807)
|
||||
?CND12: PRINTI "(It's better to examine or search one thing at a time. It would take a long time to search a whole room or area thoroughly. A "
|
||||
EQUAL? P-ADVERB,W?CAREFULLY \?ELS17
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-124 (3021)
|
||||
JUMP ?CND24
|
||||
?ELS26: PRINTI "brief"
|
||||
?CND24: PRINTI " search would take "
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-124 (3009)
|
||||
JUMP ?CND16
|
||||
?ELS17: PRINTI "brief"
|
||||
?CND16: PRINTI " search would take "
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-130 (3206)
|
||||
ZERO? STACK /?ELS39
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-130 (3194)
|
||||
ZERO? STACK /?ELS27
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-133 (3280)
|
||||
ZERO? VAL /?ELS46
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-133 (3268)
|
||||
ZERO? VAL /?ELS32
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-135 (3317)
|
||||
EQUAL? P-ADVERB,W?CAREFULLY \?ELS54
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-135 (3305)
|
||||
EQUAL? P-ADVERB,W?CAREFULLY \?ELS38
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-137 (3369)
|
||||
JUMP ?CND50
|
||||
?ELS54: PUSH STR?99
|
||||
?CND50: PRINT STACK
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-137 (3357)
|
||||
JUMP ?CND35
|
||||
?ELS38: PUSH STR?99
|
||||
?CND35: PRINT STACK
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-141 (3470)
|
||||
?ELS46: PRINTR "You didn't finish looking over the place."
|
||||
?ELS39: SET 'P-WON,FALSE-VALUE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-141 (3458)
|
||||
?ELS32: PRINTR "You didn't finish looking over the place."
|
||||
?ELS27: SET 'P-WON,FALSE-VALUE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-147 (3598)
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-147 (3586)
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-149 (3680)
|
||||
?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS9
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-149 (3668)
|
||||
?ELS4: EQUAL? PRSA,V?WALK-TO \?ELS7
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-151 (3749)
|
||||
?ELS9: EQUAL? PRSA,V?SMELL \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-151 (3737)
|
||||
?ELS7: EQUAL? PRSA,V?SMELL \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-153 (3805)
|
||||
ZERO? STACK /?ELS18
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-153 (3793)
|
||||
ZERO? STACK /?ELS14
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-155 (3866)
|
||||
?ELS18: CALL FRESH-AIR?,HERE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-155 (3854)
|
||||
?ELS14: CALL FRESH-AIR?,HERE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-168 (4098)
|
||||
EQUAL? PRSA,V?PUT-IN \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-168 (4086)
|
||||
EQUAL? PRSA,V?PUT-IN \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-172 (4186)
|
||||
?ELS5: EQUAL? PRSA,V?FLUSH-DOWN,V?FLUSH \FALSE
|
||||
ZERO? IN-STATION /?ELS17
|
||||
ZERO? ON-TRAIN /?ELS17
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-172 (4174)
|
||||
?ELS4: EQUAL? PRSA,V?FLUSH-DOWN,V?FLUSH \FALSE
|
||||
ZERO? IN-STATION /?ELS13
|
||||
ZERO? ON-TRAIN /?ELS13
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-179 (4445)
|
||||
?ELS17: EQUAL? PRSA,V?FLUSH-DOWN \?CND24
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-179 (4433)
|
||||
?ELS13: EQUAL? PRSA,V?FLUSH-DOWN \?CND17
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-184 (4573)
|
||||
?CND24: FIRST? TOILET \?CND30
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-184 (4561)
|
||||
?CND17: FIRST? TOILET \?CND21
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-187 (4669)
|
||||
?CND30: PRINTR "Whhoooossshhhhh!"
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-187 (4657)
|
||||
?CND21: PRINTR "Whhoooossshhhhh!"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-191 (4752)
|
||||
FIRST? WHAT >X /?KLU29
|
||||
?KLU29:
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-191 (4740)
|
||||
FIRST? WHAT >X /?KLU20
|
||||
?KLU20:
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-194 (4809)
|
||||
NEXT? X >N /?KLU30
|
||||
?KLU30: ZERO? N \?CND6
|
||||
ZERO? TOLD? /?CND6
|
||||
ZERO? TELL? /?CND6
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-194 (4797)
|
||||
NEXT? X >N /?KLU21
|
||||
?KLU21: ZERO? N \?CND5
|
||||
ZERO? TOLD? /?CND5
|
||||
ZERO? TELL? /?CND5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-199 (4912)
|
||||
?CND6: SET 'TOLD?,TRUE-VALUE
|
||||
ZERO? TELL? /?CND13
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-199 (4900)
|
||||
?CND5: SET 'TOLD?,TRUE-VALUE
|
||||
ZERO? TELL? /?CND10
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-202 (4980)
|
||||
ZERO? N /?ELS21
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-202 (4968)
|
||||
ZERO? N /?ELS15
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-204 (5011)
|
||||
JUMP ?CND13
|
||||
?ELS21: PRINTI ". "
|
||||
?CND13: MOVE X,THIEF
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-204 (4999)
|
||||
JUMP ?CND10
|
||||
?ELS15: PRINTI ". "
|
||||
?CND10: MOVE X,THIEF
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-213 (5131)
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-213 (5119)
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-216 (5193)
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-ON \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-216 (5181)
|
||||
?ELS4: EQUAL? PRSA,V?LAMP-ON \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-221 (5398)
|
||||
EQUAL? PRSA,V?CUT \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-221 (5386)
|
||||
EQUAL? PRSA,V?CUT \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-234 (5824)
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS14
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-234 (5812)
|
||||
?ELS4: EQUAL? PRSA,V?EXAMINE \?ELS11
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-236 (6011)
|
||||
?ELS14: EQUAL? PRSA,V?TAKE /?THN19
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-236 (5999)
|
||||
?ELS11: EQUAL? PRSA,V?TAKE /?THN14
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-238 (6092)
|
||||
?THN19: PRINTR "As you pull on the towel, a fresh portion appears from a slot, and the used portion starts to disappear into the dispenser."
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-238 (6080)
|
||||
?THN14: PRINTR "As you pull on the towel, a fresh portion appears from a slot, and the used portion starts to disappear into the dispenser."
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-242 (6267)
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-242 (6255)
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-244 (6440)
|
||||
?ELS5: EQUAL? PRSA,V?TAKE,V?USE /?THN10
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-244 (6428)
|
||||
?ELS4: EQUAL? PRSA,V?TAKE,V?USE /?THN7
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-246 (6526)
|
||||
?THN10: PRINTR "There's not enough left!"
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-246 (6513)
|
||||
?THN7: PRINTR "There's not enough left!"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-256 (6698)
|
||||
EQUAL? PRSA,V?TAKE /?THN6
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-256 (6684)
|
||||
EQUAL? PRSA,V?TAKE /?THN4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-258 (6771)
|
||||
?THN6: PRINTR "Whatever you have in mind, it'll never work!"
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-258 (6757)
|
||||
?THN4: PRINTR "Whatever you have in mind, it'll never work!"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-262 (6855)
|
||||
EQUAL? PRSA,V?MUNG \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-262 (6841)
|
||||
EQUAL? PRSA,V?MUNG \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-264 (6923)
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-264 (6909)
|
||||
?ELS4: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-270 (7149)
|
||||
ZERO? STACK /?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-270 (7135)
|
||||
ZERO? STACK /?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-273 (7195)
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-THROUGH,V?LOOK-INSIDE \?ELS7
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-273 (7181)
|
||||
?ELS4: EQUAL? PRSA,V?LOOK-THROUGH,V?LOOK-INSIDE \?ELS5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-275 (7279)
|
||||
EQUAL? WINNER,PLAYER \?ELS10
|
||||
GRTR? POCKET-CHANGE,0 \?ELS10
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-275 (7265)
|
||||
EQUAL? WINNER,PLAYER \?ELS7
|
||||
GRTR? POCKET-CHANGE,0 \?ELS7
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-278 (7373)
|
||||
ZERO? X /?ELS15
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-278 (7357)
|
||||
ZERO? X /?ELS10
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-280 (7418)
|
||||
?ELS15: PRINTR "You have some money in your pocket."
|
||||
?ELS10: ZERO? X \TRUE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-280 (7402)
|
||||
?ELS10: PRINTR "You have some money in your pocket."
|
||||
?ELS7: ZERO? X \TRUE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-283 (7528)
|
||||
?ELS7: EQUAL? PRSA,V?EMPTY \?ELS28
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-283 (7511)
|
||||
?ELS5: EQUAL? PRSA,V?EMPTY \?ELS18
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-289 (7671)
|
||||
?ELS28: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS37
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-289 (7654)
|
||||
?ELS18: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS25
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-291 (7753)
|
||||
?ELS37: EQUAL? PRSA,V?PUT-IN \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-291 (7736)
|
||||
?ELS25: EQUAL? PRSA,V?PUT-IN \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-293 (7818)
|
||||
EQUAL? PRSO,GLOBAL-MONEY /?THN49
|
||||
EQUAL? PRSO,INTNUM \?ELS48
|
||||
ZERO? P-DOLLAR-FLAG /?ELS48
|
||||
?THN49: PRINTR "It's already there."
|
||||
?ELS48: IN? CUSTOMS-AGENT,HERE \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-293 (7801)
|
||||
EQUAL? PRSO,GLOBAL-MONEY /?THN33
|
||||
EQUAL? PRSO,INTNUM \?ELS34
|
||||
ZERO? P-DOLLAR-FLAG /?ELS34
|
||||
?THN33: PRINTR "It's already there."
|
||||
?ELS34: IN? CUSTOMS-AGENT,HERE \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-307 (8165)
|
||||
EQUAL? PRSA,V?FIND \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-307 (8148)
|
||||
EQUAL? PRSA,V?FIND \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-309 (8224)
|
||||
?ELS5: CALL REMOTE-VERB?
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-309 (8207)
|
||||
?ELS4: CALL REMOTE-VERB?
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-311 (8271)
|
||||
EQUAL? PRSA,V?PUT-IN,V?PUT \?ELS11
|
||||
EQUAL? PRSO,GLOBAL-MONEY \?ELS11
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-311 (8254)
|
||||
EQUAL? PRSA,V?PUT-IN,V?PUT \?ELS8
|
||||
EQUAL? PRSO,GLOBAL-MONEY \?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-315 (8374)
|
||||
?ELS11: GRTR? POCKET-CHANGE,0 \?ELS15
|
||||
EQUAL? PRSA,V?EXAMINE,V?COUNT \?ELS20
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-315 (8355)
|
||||
?ELS8: GRTR? POCKET-CHANGE,0 \?ELS10
|
||||
EQUAL? PRSA,V?EXAMINE,V?COUNT \?ELS14
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-321 (8543)
|
||||
?ELS20: EQUAL? PRSA,V?GIVE \?ELS26
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-321 (8523)
|
||||
?ELS14: EQUAL? PRSA,V?GIVE \?ELS19
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-324 (8656)
|
||||
?ELS26: EQUAL? PRSA,V?TAKE \?ELS30
|
||||
ZERO? PRSI /?ELS30
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-324 (8636)
|
||||
?ELS19: EQUAL? PRSA,V?TAKE \?ELS22
|
||||
ZERO? PRSI /?ELS22
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-329 (8788)
|
||||
?ELS30: CALL TELL-FLASHING-CASH
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-329 (8768)
|
||||
?ELS22: CALL TELL-FLASHING-CASH
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-331 (8831)
|
||||
?ELS15: CALL NOT-HERE,GLOBAL-MONEY
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-331 (8811)
|
||||
?ELS10: CALL NOT-HERE,GLOBAL-MONEY
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-344 (9016)
|
||||
EQUAL? PRSA,V?BUY,V?ASK-FOR \?ELS5
|
||||
EQUAL? P-ADJ,W?FIRST \?ELS10
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-344 (8996)
|
||||
EQUAL? PRSA,V?BUY,V?ASK-FOR \?ELS4
|
||||
EQUAL? P-ADJ,W?FIRST \?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-348 (9125)
|
||||
?ELS10: CALL DO-INSTEAD-OF,FOOD-2,ITEMS
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-348 (9104)
|
||||
?ELS8: CALL DO-INSTEAD-OF,FOOD-2,ITEMS
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-350 (9175)
|
||||
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-350 (9153)
|
||||
?ELS4: EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-358 (9306)
|
||||
EQUAL? PRSA,V?SMELL,V?BUY,V?ASK-FOR \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-358 (9284)
|
||||
EQUAL? PRSA,V?SMELL,V?BUY,V?ASK-FOR \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-361 (9398)
|
||||
?ELS5: CALL REMOTE-VERB?
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-361 (9376)
|
||||
?ELS4: CALL REMOTE-VERB?
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-378 (9657)
|
||||
EQUAL? PRSA,V?DRINK,V?SMELL,V?EAT \?ELS5
|
||||
EQUAL? PRSA,V?SMELL /?THN11
|
||||
IN? PRSO,GLOBAL-OBJECTS /?ELS10
|
||||
?THN11: PRINTR "It's pungent but not very flavorful."
|
||||
?ELS10: PRINTR "That wouldn't be very polite."
|
||||
?ELS5: EQUAL? PRSA,V?PUT-IN,V?PUT,V?POUR \?ELS20
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-378 (9635)
|
||||
EQUAL? PRSA,V?DRINK,V?SMELL,V?EAT \?ELS4
|
||||
EQUAL? PRSA,V?SMELL /?THN8
|
||||
IN? PRSO,GLOBAL-OBJECTS /?ELS9
|
||||
?THN8: PRINTR "It's pungent but not very flavorful."
|
||||
?ELS9: PRINTR "That wouldn't be very polite."
|
||||
?ELS4: EQUAL? PRSA,V?PUT-IN,V?PUT,V?POUR \?ELS14
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-385 (9957)
|
||||
?ELS20: EQUAL? PRSA,V?BUY,V?ASK-FOR \FALSE
|
||||
ZERO? ON-TRAIN /?ELS27
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-385 (9931)
|
||||
?ELS14: EQUAL? PRSA,V?BUY,V?ASK-FOR \FALSE
|
||||
ZERO? ON-TRAIN /?ELS19
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-388 (10044)
|
||||
JUMP ?CND25
|
||||
?ELS27: SET 'PER,WAITRESS
|
||||
?CND25: ZERO? DRINK? /?ELS33
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-388 (10018)
|
||||
JUMP ?CND18
|
||||
?ELS19: SET 'PER,WAITRESS
|
||||
?CND18: ZERO? DRINK? /?ELS21
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-392 (10135)
|
||||
JUMP ?CND31
|
||||
?ELS33: SET 'OBJ,FOOD
|
||||
?CND31: ZERO? DRINK? /?ELS39
|
||||
FSET? WINE-RED,TOUCHBIT /?THN44
|
||||
FSET? WINE-WHITE,TOUCHBIT \?CND37
|
||||
?THN44: PRINTR "You've bought enough drink already."
|
||||
?ELS39: FSET? FOOD,TOUCHBIT \?CND37
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-392 (10109)
|
||||
JUMP ?CND20
|
||||
?ELS21: SET 'OBJ,FOOD
|
||||
?CND20: ZERO? DRINK? /?ELS23
|
||||
FSET? WINE-RED,TOUCHBIT /?THN25
|
||||
FSET? WINE-WHITE,TOUCHBIT \?CND22
|
||||
?THN25: PRINTR "You've bought enough drink already."
|
||||
?ELS23: FSET? FOOD,TOUCHBIT \?CND22
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-400 (10409)
|
||||
?CND37: ZERO? POCKET-CHANGE \?ELS56
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-400 (10383)
|
||||
?CND22: ZERO? POCKET-CHANGE \?ELS35
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-402 (10486)
|
||||
?ELS56: IN? PER,HERE /?ELS60
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-402 (10460)
|
||||
?ELS35: IN? PER,HERE /?ELS38
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-406 (10583)
|
||||
?ELS60: DEC 'POCKET-CHANGE
|
||||
EQUAL? OBJ,WINE-RED,WINE-WHITE \?CND65
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-406 (10557)
|
||||
?ELS38: DEC 'POCKET-CHANGE
|
||||
EQUAL? OBJ,WINE-RED,WINE-WHITE \?CND41
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-412 (10728)
|
||||
?CND65: CALL TABLE?,HERE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-412 (10702)
|
||||
?CND41: CALL TABLE?,HERE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-414 (10768)
|
||||
ZERO? ?ORTMP /?ORP71
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-414 (10742)
|
||||
ZERO? ?ORTMP /?ORP45
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-416 (10805)
|
||||
JUMP ?THN68
|
||||
?ORP71: PUSH HERE
|
||||
?THN68: MOVE OBJ,STACK
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-416 (10779)
|
||||
JUMP ?THN43
|
||||
?ORP45: PUSH HERE
|
||||
?THN43: MOVE OBJ,STACK
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-434 (11164)
|
||||
EQUAL? PRSA,V?EMPTY,V?THROW-THROUGH,V?THROW-AT \?ELS5
|
||||
IN? WINE-RED,CUP \?CND6
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-434 (11138)
|
||||
EQUAL? PRSA,V?EMPTY,V?THROW-THROUGH,V?THROW-AT \?ELS4
|
||||
IN? WINE-RED,CUP \?CND5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-437 (11277)
|
||||
?CND6: IN? WINE-WHITE,CUP \?CND9
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-437 (11251)
|
||||
?CND5: IN? WINE-WHITE,CUP \?CND7
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-439 (11344)
|
||||
?CND9: CALL ROB,CUP,HERE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-439 (11318)
|
||||
?CND7: CALL ROB,CUP,HERE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-442 (11416)
|
||||
?ELS5: EQUAL? PRSA,V?PUT-IN \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-442 (11390)
|
||||
?ELS4: EQUAL? PRSA,V?PUT-IN \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-451 (11617)
|
||||
EQUAL? PRSA,V?PUT \?ELS9
|
||||
EQUAL? PRSI,TOWEL-WAITER,NAPKIN,SCARF \?ELS9
|
||||
EQUAL? PRSO,WINE-RED \?ELS9
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-451 (11591)
|
||||
EQUAL? PRSA,V?PUT \?ELS5
|
||||
EQUAL? PRSI,TOWEL-WAITER,NAPKIN,SCARF \?ELS5
|
||||
EQUAL? PRSO,WINE-RED \?ELS5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-455 (11737)
|
||||
ZERO? OBJ \?THN6
|
||||
?ELS9: EQUAL? PRSA,V?PUT-IN \?ELS5
|
||||
EQUAL? PRSO,TOWEL-WAITER,NAPKIN,SCARF \?ELS5
|
||||
EQUAL? PRSI,WINE-RED \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-455 (11711)
|
||||
ZERO? 1 \?THN4
|
||||
?ELS5: EQUAL? PRSA,V?PUT-IN \?ELS6
|
||||
EQUAL? PRSO,TOWEL-WAITER,NAPKIN,SCARF \?ELS6
|
||||
EQUAL? PRSI,WINE-RED \?ELS6
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-460 (11885)
|
||||
ZERO? OBJ /?ELS5
|
||||
?THN6: LOC OBJ
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-460 (11857)
|
||||
ZERO? 1 /?ELS6
|
||||
?THN4: LOC OBJ
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-471 (12108)
|
||||
?ELS5: CALL FOOD-F,TRUE-VALUE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-471 (12078)
|
||||
?ELS6: CALL FOOD-F,TRUE-VALUE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-476 (12176)
|
||||
ZERO? ON-TRAIN /?ELS3
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-476 (12146)
|
||||
ZERO? ON-TRAIN /?ELS2
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-479 (12231)
|
||||
?ELS3: SET 'PER,WAITRESS
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-479 (12201)
|
||||
?ELS2: SET 'PER,WAITRESS
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-490 (12547)
|
||||
EQUAL? RM,CAFE \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-490 (12517)
|
||||
EQUAL? RM,CAFE \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-492 (12593)
|
||||
?ELS5: EQUAL? RM,BOOTH-1 \?ELS7
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-492 (12563)
|
||||
?ELS4: EQUAL? RM,BOOTH-1 \?ELS5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-494 (12643)
|
||||
?ELS7: EQUAL? RM,BOOTH-2 \?ELS9
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-494 (12613)
|
||||
?ELS5: EQUAL? RM,BOOTH-2 \?ELS6
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-496 (12693)
|
||||
?ELS9: EQUAL? RM,BOOTH-3 \FALSE
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-496 (12663)
|
||||
?ELS6: EQUAL? RM,BOOTH-3 \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-506 (12993)
|
||||
EQUAL? PRSA,V?LEARN,V?ANALYZE \?ELS5
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-506 (12963)
|
||||
EQUAL? PRSA,V?LEARN,V?ANALYZE \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-508 (13201)
|
||||
?ELS5: EQUAL? PRSA,V?MAKE \FALSE
|
||||
ZERO? PRSI /?ELS12
|
||||
FSET? PRSI,PERSONBIT \?ELS12
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-508 (13171)
|
||||
?ELS4: EQUAL? PRSA,V?MAKE \FALSE
|
||||
ZERO? PRSI /?ELS9
|
||||
FSET? PRSI,PERSONBIT \?ELS9
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-512 (13301)
|
||||
JUMP ?CND10
|
||||
?ELS12: CALL QCONTEXT-GOOD?
|
||||
ZERO? STACK /?ELS16
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-512 (13269)
|
||||
JUMP ?CND8
|
||||
?ELS9: CALL QCONTEXT-GOOD?
|
||||
ZERO? STACK /?ELS11
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-516 (13384)
|
||||
JUMP ?CND10
|
||||
?ELS16: CALL FIND-FLAG,HERE,PERSONBIT,WINNER >P
|
||||
ZERO? P \?CND10
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-516 (13350)
|
||||
JUMP ?CND8
|
||||
?ELS11: CALL FIND-FLAG,HERE,PERSONBIT,WINNER >P
|
||||
ZERO? P \?CND8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.1, 1-520 (13517)
|
||||
?CND10: CALL START-SENTENCE,P
|
||||
**** FILE PS:<SWG>GLOBAL.ZAP.3, 1-520 (13481)
|
||||
?CND8: CALL START-SENTENCE,P
|
||||
***************
|
||||
|
|
@ -0,0 +1,657 @@
|
|||
|
||||
|
||||
.FUNCT DO-INSTEAD-OF,OBJ1,OBJ2
|
||||
EQUAL? PRSI,OBJ2 \?ELS5
|
||||
CALL PERFORM,PRSA,PRSO,OBJ1
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSO,OBJ2 \?ELS7
|
||||
CALL PERFORM,PRSA,OBJ1,PRSI
|
||||
RTRUE
|
||||
?ELS7: CALL1 V-FOO
|
||||
ZERO? STACK /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TURN-F
|
||||
EQUAL? PRSA,V?USE \FALSE
|
||||
CALL PERFORM,V?WAIT-FOR,PRSO
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IT-F
|
||||
EQUAL? PRSI,IT \?THN10
|
||||
EQUAL? PRSA,V?TELL-ABOUT /?THN10
|
||||
EQUAL? PRSA,V?SEARCH-FOR,V?ASK-FOR,V?ASK-ABOUT /?THN14
|
||||
?THN10: EQUAL? PRSO,IT \FALSE
|
||||
EQUAL? PRSA,V?WHAT /?THN14
|
||||
EQUAL? PRSA,V?FIND,V?ASK-CONTEXT-FOR,V?ASK-CONTEXT-ABOUT \FALSE
|
||||
?THN14: CALL1 PRODUCE-GIBBERISH
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT FLOOR-F,OBJ
|
||||
EQUAL? PRSA,V?PUT \?ELS5
|
||||
EQUAL? PRSI,FLOOR \?ELS5
|
||||
CALL PERFORM,V?DROP,PRSO
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-ON,V?SEARCH,V?EXAMINE \?ELS9
|
||||
CALL FIND-FLAG,HERE,NDESCBIT,WINNER >OBJ
|
||||
ZERO? OBJ /?ELS14
|
||||
FCLEAR OBJ,NDESCBIT
|
||||
CALL2 THIS-IS-IT,OBJ
|
||||
PRINTI "Something catches your eye: it's "
|
||||
CALL2 PRINTA,OBJ
|
||||
PRINTR "."
|
||||
?ELS14: PRINTR "You don't find anything new there."
|
||||
?ELS9: EQUAL? PRSA,V?TAKE,V?BRUSH \FALSE
|
||||
IN? BLOOD-SPOT,HERE \FALSE
|
||||
CALL PERFORM,V?BRUSH,BLOOD-SPOT,PRSI
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT DOLLARS-F
|
||||
EQUAL? PRSA,V?COUNT \?ELS5
|
||||
CALL DO-INSTEAD-OF,GLOBAL-MONEY,DOLLARS
|
||||
RTRUE
|
||||
?ELS5: ZERO? P-DOLLAR-FLAG /?ELS10
|
||||
ZERO? P-AMOUNT \?CND8
|
||||
SET 'P-AMOUNT,1
|
||||
JUMP ?CND8
|
||||
?ELS10: SET 'P-DOLLAR-FLAG,TRUE-VALUE
|
||||
ZERO? P-NUMBER \?CND8
|
||||
SET 'P-AMOUNT,1
|
||||
?CND8: CALL DO-INSTEAD-OF,INTNUM,DOLLARS
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT INTNUM-F
|
||||
ZERO? P-DOLLAR-FLAG /FALSE
|
||||
CALL2 DIVESTMENT?,PRSO
|
||||
ZERO? STACK /?ELS11
|
||||
CALL1 TELL-FLASHING-CASH
|
||||
RTRUE
|
||||
?ELS11: EQUAL? PRSA,V?ASK-FOR,V?TAKE /FALSE
|
||||
EQUAL? WINNER,PLAYER \FALSE
|
||||
GETP PLAYER,P?SOUTH
|
||||
GRTR? P-AMOUNT,STACK \FALSE
|
||||
PRINTR "You don't have that much."
|
||||
|
||||
|
||||
.FUNCT YOU-F
|
||||
EQUAL? WINNER,PLAYER /?ELS5
|
||||
CALL DO-INSTEAD-OF,WINNER,YOU
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?ASK-ABOUT \FALSE
|
||||
EQUAL? PRSI,YOU \FALSE
|
||||
CALL PERFORM,V?ASK-ABOUT,PRSO,PRSO
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CORRIDOR-GLOBAL-F,RM
|
||||
EQUAL? PRSA,V?LOOK-UP,V?LOOK-DOWN /?THN6
|
||||
EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE,V?ANALYZE \FALSE
|
||||
?THN6: ZERO? ON-TRAIN /FALSE
|
||||
CALL ZMEMQ,HERE,CAR-ROOMS-CORRID
|
||||
ZERO? STACK /?ELS14
|
||||
CALL2 PERFORM,V?LOOK
|
||||
RTRUE
|
||||
?ELS14: CALL NEXT-ROOM,HERE,P?OUT >RM
|
||||
ZERO? RM /FALSE
|
||||
CALL ROOM-PEEK,RM,TRUE-VALUE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT GLOBAL-HERE-F,FLG=0,F,HR,TIM,VAL
|
||||
EQUAL? PRSA,V?SIT,V?WALK-TO \?ELS5
|
||||
CALL DO-INSTEAD-OF,HERE,GLOBAL-HERE
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?KNOCK \?ELS7
|
||||
PRINTR "Knocking on the walls reveals nothing unusual."
|
||||
?ELS7: EQUAL? PRSA,V?TIE-TO,V?PUT-IN,V?PUT \?ELS11
|
||||
CALL1 MORE-SPECIFIC
|
||||
RSTACK
|
||||
?ELS11: EQUAL? PRSA,V?EXAMINE,V?SEARCH \FALSE
|
||||
GETP HERE,P?CORRIDOR
|
||||
ZERO? STACK /?ELS16
|
||||
SET 'TIM,3
|
||||
JUMP ?CND14
|
||||
?ELS16: GETP HERE,P?SIZE
|
||||
ADD 2,STACK >TIM
|
||||
?CND14: EQUAL? P-ADVERB,W?CAREFULLY \?CND19
|
||||
MUL 2,TIM >TIM
|
||||
?CND19: PRINTI "(It's better to examine or search one thing at a time. It would take a long time to search a whole room or area thoroughly. A "
|
||||
EQUAL? P-ADVERB,W?CAREFULLY \?ELS26
|
||||
PRINTI "careful"
|
||||
JUMP ?CND24
|
||||
?ELS26: PRINTI "brief"
|
||||
?CND24: PRINTI " search would take "
|
||||
PRINTN TIM
|
||||
PRINTI " minutes, and it might not reveal much. Would you like to do it anyway?)"
|
||||
CALL1 YES?
|
||||
ZERO? STACK /?ELS39
|
||||
CALL2 INT-WAIT,TIM >VAL
|
||||
EQUAL? M-FATAL,VAL /TRUE
|
||||
ZERO? VAL /?ELS46
|
||||
PRINTI "Your "
|
||||
EQUAL? P-ADVERB,W?CAREFULLY \?ELS52
|
||||
PRINTI "careful"
|
||||
JUMP ?CND50
|
||||
?ELS52: PRINTI "brief"
|
||||
?CND50: PRINTI " search reveals"
|
||||
CALL2 FOUND?,HERE >VAL
|
||||
ZERO? VAL /?ELS65
|
||||
CALL2 PRINTT,VAL
|
||||
PRINTR " under the seat."
|
||||
?ELS65: PRINTR " nothing exciting."
|
||||
?ELS46: PRINTR "You didn't finish looking over the place."
|
||||
?ELS39: SET 'CLOCK-WAIT,TRUE-VALUE
|
||||
PRINTR "Okay."
|
||||
|
||||
|
||||
.FUNCT FOUND?,RM,X
|
||||
CALL ZMEMQ,RM,CAR-ROOMS-COMPS >X
|
||||
ZERO? X /?ELS5
|
||||
GET CAR-ROOMS-UNDER,X
|
||||
FIRST? STACK >X \?ELS5
|
||||
RETURN X
|
||||
?ELS5: EQUAL? RM,BOOTH-1 \?ELS9
|
||||
FIRST? UNDER-BOOTH-1 /TRUE
|
||||
RFALSE
|
||||
?ELS9: EQUAL? RM,BOOTH-2 \?ELS13
|
||||
FIRST? UNDER-BOOTH-2 /TRUE
|
||||
RFALSE
|
||||
?ELS13: EQUAL? RM,BOOTH-3 \FALSE
|
||||
FIRST? UNDER-BOOTH-3 /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT AIR-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "You can see through the air around you."
|
||||
?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS9
|
||||
PRINTR "It's all around you!"
|
||||
?ELS9: EQUAL? PRSA,V?SMELL \FALSE
|
||||
CALL2 OUTSIDE?,HERE
|
||||
ZERO? STACK /?ELS18
|
||||
PRINTR "The air is clear and fresh."
|
||||
?ELS18: CALL2 FRESH-AIR?,HERE
|
||||
ZERO? STACK \TRUE
|
||||
PRINTR "The air is rather musty."
|
||||
|
||||
|
||||
.FUNCT SOMETHING-F
|
||||
SET 'CLOCK-WAIT,TRUE-VALUE
|
||||
PRINTI "(Type a real word instead of "
|
||||
PRINTD SOMETHING
|
||||
PRINTR ".)"
|
||||
|
||||
|
||||
.FUNCT TOILET-F
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
||||
CALL1 YOU-CANT
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?PUT-IN \?ELS7
|
||||
EQUAL? PRSI,TOILET \FALSE
|
||||
FSET PRSO,MUNGBIT
|
||||
RFALSE
|
||||
?ELS7: EQUAL? PRSA,V?FLUSH-DOWN,V?FLUSH \FALSE
|
||||
ZERO? IN-STATION /?ELS19
|
||||
ZERO? ON-TRAIN /?ELS19
|
||||
PRINTR "An old refrain comes to mind:
|
||||
""Passengers will please refrain
|
||||
From flushing toilets while the train
|
||||
Is standing in the station. (I love you!)"""
|
||||
?ELS19: EQUAL? PRSA,V?FLUSH-DOWN \?CND26
|
||||
CALL1 ITAKE
|
||||
EQUAL? STACK,TRUE-VALUE \TRUE
|
||||
MOVE PRSO,TOILET
|
||||
?CND26: FIRST? TOILET \?CND32
|
||||
PRINTI "Say goodbye to"
|
||||
CALL ROB,TOILET,LIMBO-FWD,TRUE-VALUE
|
||||
?CND32: PRINTR """Whhoooossshhhhh!"""
|
||||
|
||||
|
||||
.FUNCT ROB,WHAT,THIEF,TELL?=0,N,X,TOLD?=0
|
||||
FIRST? WHAT >X /?KLU29
|
||||
?KLU29:
|
||||
?PRG1: ZERO? X /TRUE
|
||||
NEXT? X >N /?KLU30
|
||||
?KLU30: ZERO? N \?CND6
|
||||
ZERO? TOLD? /?CND6
|
||||
ZERO? TELL? /?CND6
|
||||
PRINTI " and"
|
||||
?CND6: SET 'TOLD?,TRUE-VALUE
|
||||
ZERO? TELL? /?CND13
|
||||
CALL2 PRINTT,X
|
||||
ZERO? N /?ELS21
|
||||
PRINTI ","
|
||||
JUMP ?CND13
|
||||
?ELS21: PRINTI ". "
|
||||
?CND13: MOVE X,THIEF
|
||||
FCLEAR X,TAKEBIT
|
||||
SET 'X,N
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT SINK-F
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
||||
CALL1 YOU-CANT
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-ON \FALSE
|
||||
PRINTR "You push on the handle, and water runs until you let go. A silly idea comes into your head: what is the sound of one hand washing?"
|
||||
|
||||
|
||||
.FUNCT TOWEL-LOOP-F
|
||||
EQUAL? PRSA,V?CUT \?ELS5
|
||||
EQUAL? PRSI,KNIFE \FALSE
|
||||
MOVE SCARF,PLAYER
|
||||
FSET SCARF,TAKEBIT
|
||||
PUTP SCARF,P?CAR,CAR-HERE
|
||||
MOVE TOWEL-FIXTURE-BROKEN,HERE
|
||||
PUTP TOWEL-FIXTURE-BROKEN,P?CAR,CAR-HERE
|
||||
MOVE TOWEL-LOOP-BROKEN,HERE
|
||||
PUTP TOWEL-LOOP-BROKEN,P?CAR,CAR-HERE
|
||||
CALL2 THIS-IS-IT,TOWEL-LOOP-BROKEN
|
||||
PRINTI "Well done! You now have a government-issue "
|
||||
PRINTD SCARF
|
||||
PRINTR ", and the janitor has a mess to repair."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS14
|
||||
PRINTR "This cloth towel must be very long, but most of it is rolled up inside the dispenser. Only about a meter hangs below it in a ""U"" shape."
|
||||
?ELS14: EQUAL? PRSA,V?TAKE /?THN19
|
||||
EQUAL? PRSA,V?USE,V?MOVE-DIR,V?MOVE \FALSE
|
||||
?THN19: PRINTR "As you pull on the towel, a fresh portion appears from a slot, and the used portion starts to disappear into the dispenser."
|
||||
|
||||
|
||||
.FUNCT TOWEL-LOOP-BROKEN-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "This cloth towel must be very long, but most of it is rolled up inside the dispenser. The part that should hang below is cut away."
|
||||
?ELS5: EQUAL? PRSA,V?TAKE,V?USE /?THN10
|
||||
EQUAL? PRSA,V?MOVE-DIR,V?MOVE,V?CUT \FALSE
|
||||
?THN10: PRINTR "There's not enough left!"
|
||||
|
||||
|
||||
.FUNCT PAPER-FIXTURE-F
|
||||
EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
FCLEAR PAPER-LOOP,NDESCBIT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT PAPER-LOOP-F
|
||||
EQUAL? PRSA,V?TAKE /?THN6
|
||||
EQUAL? PRSA,V?USE,V?MOVE-DIR,V?MOVE \FALSE
|
||||
?THN6: PRINTR "Whatever you have in mind, it'll never work!"
|
||||
|
||||
|
||||
.FUNCT MIRROR-F
|
||||
EQUAL? PRSA,V?MUNG \?ELS5
|
||||
PRINTR "You don't need any bad luck!"
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \FALSE
|
||||
PRINTI "A harried and weary "
|
||||
EQUAL? VARIATION,3,4 \?ELS16
|
||||
PUSH STR?151
|
||||
JUMP ?CND12
|
||||
?ELS16: PUSH STR?152
|
||||
?CND12: PRINT STACK
|
||||
PRINTR " looks back at you, with a look that seems to say, ""I don't need this aggravation!"""
|
||||
|
||||
|
||||
.FUNCT POCKET-F,X
|
||||
CALL2 DIVESTMENT?,POCKET
|
||||
ZERO? STACK /?ELS5
|
||||
CALL1 HAR-HAR
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-THROUGH,V?LOOK-INSIDE \?ELS7
|
||||
CALL2 PRINT-CONT,POCKET >X
|
||||
EQUAL? WINNER,PLAYER \?ELS10
|
||||
GETP PLAYER,P?SOUTH
|
||||
GRTR? STACK,0 \?ELS10
|
||||
CALL2 THIS-IS-IT,GLOBAL-MONEY
|
||||
ZERO? X /?ELS15
|
||||
PRINTR "And some money."
|
||||
?ELS15: PRINTI "You have some money in your pocket."
|
||||
IN? CUSTOMS-AGENT,HERE \?CND23
|
||||
PRINTI " But"
|
||||
CALL2 HE-SHE-IT,CUSTOMS-AGENT
|
||||
PRINTI " won't mind."
|
||||
?CND23: CRLF
|
||||
RTRUE
|
||||
?ELS10: ZERO? X \TRUE
|
||||
PRINTR "Your pocket is empty."
|
||||
?ELS7: EQUAL? PRSA,V?EMPTY \?ELS33
|
||||
FIRST? POCKET \FALSE
|
||||
PRINTI "You are now holding"
|
||||
CALL ROB,POCKET,PLAYER,TRUE-VALUE
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS33: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS42
|
||||
PRINTR "You don't need to do that."
|
||||
?ELS42: EQUAL? PRSA,V?PUT-IN \FALSE
|
||||
EQUAL? PRSI,POCKET \FALSE
|
||||
EQUAL? PRSO,GLOBAL-MONEY /?THN54
|
||||
EQUAL? PRSO,INTNUM \?ELS53
|
||||
ZERO? P-DOLLAR-FLAG /?ELS53
|
||||
?THN54: PRINTR "It's already there."
|
||||
?ELS53: EQUAL? PRSO,CAMERA \FALSE
|
||||
FSET? PRSO,OPENBIT \FALSE
|
||||
FCLEAR PRSO,OPENBIT
|
||||
PRINTI "(You close"
|
||||
CALL2 HIM-HER-IT,PRSO
|
||||
PRINTI " first.)"
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT POCKET-C-F,X
|
||||
CALL2 DIVESTMENT?,POCKET-C
|
||||
ZERO? STACK /?ELS5
|
||||
CALL1 HAR-HAR
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-THROUGH,V?LOOK-INSIDE \?ELS7
|
||||
FSET? CONDUCTOR,MUNGBIT /?THN11
|
||||
FSET? CONDUCTOR,PERSONBIT /?ELS10
|
||||
?THN11: CALL2 PRINT-CONT,POCKET-C >X
|
||||
RTRUE
|
||||
?ELS10: CALL HE-SHE-IT,CONDUCTOR,TRUE-VALUE
|
||||
PRINTR " brushes your hand away without even looking."
|
||||
?ELS7: EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS18
|
||||
PRINTR "You don't need to do that."
|
||||
?ELS18: EQUAL? PRSA,V?PUT-IN \FALSE
|
||||
EQUAL? PRSI,POCKET-C \FALSE
|
||||
EQUAL? PRSO,CAMERA \FALSE
|
||||
FSET? PRSO,OPENBIT \FALSE
|
||||
FCLEAR PRSO,OPENBIT
|
||||
PRINTI "(You close"
|
||||
CALL2 HIM-HER-IT,PRSO
|
||||
PRINTI " first.)"
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT TELL-FLASHING-CASH
|
||||
PRINTR "Flashing your bankroll is not a good idea."
|
||||
|
||||
|
||||
.FUNCT GLOBAL-MONEY-F
|
||||
EQUAL? PRSA,V?FIND \?ELS5
|
||||
PRINTR "It's not that easy!"
|
||||
?ELS5: CALL1 REMOTE-VERB?
|
||||
ZERO? STACK \FALSE
|
||||
EQUAL? PRSA,V?PUT-IN,V?PUT \?ELS11
|
||||
EQUAL? PRSO,GLOBAL-MONEY \?ELS11
|
||||
CALL1 MORE-SPECIFIC
|
||||
RSTACK
|
||||
?ELS11: GETP PLAYER,P?SOUTH
|
||||
GRTR? STACK,0 \?ELS15
|
||||
EQUAL? PRSA,V?EXAMINE,V?COUNT \?ELS20
|
||||
PRINTI "You are carrying "
|
||||
PRINTC CURRENCY-SYMBOL
|
||||
GETP PLAYER,P?SOUTH
|
||||
PRINTN STACK
|
||||
PRINTR "."
|
||||
?ELS20: EQUAL? PRSA,V?GIVE \?ELS26
|
||||
SET 'CLOCK-WAIT,TRUE-VALUE
|
||||
PRINTR "(You didn't say how much money to give.)"
|
||||
?ELS26: EQUAL? PRSA,V?TAKE \?ELS30
|
||||
ZERO? PRSI /?ELS30
|
||||
PRINTI "You can't see any money on"
|
||||
CALL2 HIM-HER-IT,PRSI
|
||||
PRINTR "."
|
||||
?ELS30: EQUAL? PRSA,V?SHOW /FALSE
|
||||
CALL1 TELL-FLASHING-CASH
|
||||
RSTACK
|
||||
?ELS15: CALL2 NOT-HERE,GLOBAL-MONEY
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MENU-F
|
||||
EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
||||
GETP MENU,P?TEXT
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT ITEMS-F
|
||||
EQUAL? PRSA,V?BUY,V?ASK-FOR \?ELS5
|
||||
EQUAL? P-ADJ,W?FIRST \?ELS10
|
||||
CALL DO-INSTEAD-OF,FOOD,ITEMS
|
||||
RTRUE
|
||||
?ELS10: CALL DO-INSTEAD-OF,FOOD-2,ITEMS
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
||||
GETP MENU,P?TEXT
|
||||
PRINT STACK
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FOOD-GLOBAL-F
|
||||
EQUAL? PRSA,V?SMELL,V?BUY,V?ASK-FOR \?ELS5
|
||||
CALL DO-INSTEAD-OF,FOOD,FOOD-GLOBAL
|
||||
RTRUE
|
||||
?ELS5: CALL1 REMOTE-VERB?
|
||||
ZERO? STACK \FALSE
|
||||
CALL2 NOT-HERE,FOOD-GLOBAL
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT DRINK-F
|
||||
CALL2 FOOD-F,TRUE-VALUE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT DRINK-1-F
|
||||
CALL DO-INSTEAD-OF,DRINK-GLOBAL,DRINK-1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FOOD-F,DRINK?=0,PER,OBJ,X,?ORTMP
|
||||
EQUAL? PRSA,V?DRINK,V?SMELL,V?EAT \?ELS5
|
||||
EQUAL? PRSA,V?SMELL /?THN11
|
||||
IN? PRSO,GLOBAL-OBJECTS /?ELS10
|
||||
?THN11: PRINTI "It's pungent but not very flavorful."
|
||||
EQUAL? PRSA,V?SMELL /?CND15
|
||||
GETP PRSO,P?SIZE >X
|
||||
PUTP PRSO,P?SIZE,X
|
||||
EQUAL? X,FOOD-HALF-SIZE \?ELS20
|
||||
PRINTI " And it's half gone."
|
||||
JUMP ?CND15
|
||||
?ELS20: ZERO? X \?CND15
|
||||
MOVE PRSO,GLOBAL-OBJECTS
|
||||
PRINTI " And it's gone."
|
||||
?CND15: EQUAL? VARIATION,3,4 \?CND27
|
||||
PRINTI " You've had better in some mighty dank corners of the world."
|
||||
?CND27: CRLF
|
||||
RTRUE
|
||||
?ELS10: PRINTR "That wouldn't be very polite."
|
||||
?ELS5: EQUAL? PRSA,V?MUNG /?THN38
|
||||
EQUAL? PRSA,V?PUT-IN,V?PUT,V?POUR \?ELS37
|
||||
?THN38: EQUAL? PRSI,TOILET /FALSE
|
||||
EQUAL? PRSA,V?POUR /?ELS46
|
||||
EQUAL? PRSI,TABLE-3,TABLE-2,TABLE-1 /FALSE
|
||||
?ELS46: PRINTR "What a mess that would make!"
|
||||
?ELS37: EQUAL? PRSA,V?BUY,V?ASK-FOR \FALSE
|
||||
EQUAL? HERE,PANTRY \?CND55
|
||||
CALL2 INVASION?,WAITER
|
||||
ZERO? STACK \TRUE
|
||||
?CND55: ZERO? ON-TRAIN /?ELS62
|
||||
SET 'PER,WAITER
|
||||
JUMP ?CND60
|
||||
?ELS62: SET 'PER,WAITRESS
|
||||
?CND60: ZERO? DRINK? /?ELS68
|
||||
SET 'OBJ,WINE-RED
|
||||
JUMP ?CND66
|
||||
?ELS68: SET 'OBJ,FOOD
|
||||
?CND66: ZERO? DRINK? /?ELS74
|
||||
FSET? WINE-RED,TOUCHBIT /?THN79
|
||||
FSET? WINE-WHITE,TOUCHBIT \?CND72
|
||||
?THN79: PRINTR "You've bought enough to drink already."
|
||||
?ELS74: FSET? FOOD,TOUCHBIT \?CND72
|
||||
PRINTR "You've bought enough to eat already."
|
||||
?CND72: GETP PLAYER,P?SOUTH
|
||||
ZERO? STACK \?ELS91
|
||||
PRINTR "You don't have enough money."
|
||||
?ELS91: IN? PER,HERE /?ELS95
|
||||
PRINTI "You'd better talk to "
|
||||
CALL2 PRINTA,PER
|
||||
PRINTR " first."
|
||||
?ELS95: GETP PLAYER,P?SOUTH
|
||||
SUB STACK,1
|
||||
PUTP PLAYER,P?SOUTH,STACK
|
||||
EQUAL? OBJ,WINE-RED,WINE-WHITE \?ELS102
|
||||
CALL CALL-FOR-PROP,CUP-A,WAITER
|
||||
POP '?ORTMP
|
||||
ZERO? ?ORTMP /?ORP106
|
||||
PUSH ?ORTMP
|
||||
JUMP ?THN103
|
||||
?ORP106: CALL CALL-FOR-PROP,CUP-B,WAITER
|
||||
?THN103: POP 'X
|
||||
MOVE OBJ,X
|
||||
PUTP OBJ,P?CAR,CAR-HERE
|
||||
PUTP OBJ,P?SIZE,FOOD-SIZE
|
||||
FSET OBJ,TOUCHBIT
|
||||
SET 'OBJ,X
|
||||
JUMP ?CND100
|
||||
?ELS102: PUTP OBJ,P?SIZE,FOOD-SIZE
|
||||
?CND100: CALL2 TABLE?,HERE
|
||||
POP '?ORTMP
|
||||
ZERO? ?ORTMP /?ORP112
|
||||
PUSH ?ORTMP
|
||||
JUMP ?THN109
|
||||
?ORP112: PUSH HERE
|
||||
?THN109: MOVE OBJ,STACK
|
||||
PUTP OBJ,P?CAR,CAR-HERE
|
||||
FSET OBJ,TAKEBIT
|
||||
FSET OBJ,TOUCHBIT
|
||||
FCLEAR OBJ,NDESCBIT
|
||||
FCLEAR PER,TOUCHBIT
|
||||
PUTP PER,P?LDESC,29
|
||||
CALL HE-SHE-IT,PER,TRUE-VALUE
|
||||
PRINTI " returns in an instant with "
|
||||
CALL2 PRINTA,OBJ
|
||||
PRINTI " and takes "
|
||||
PRINTC CURRENCY-SYMBOL
|
||||
PRINTR "1 from you."
|
||||
|
||||
|
||||
.FUNCT CUP-F
|
||||
EQUAL? PRSA,V?EMPTY,V?THROW-THROUGH,V?THROW-AT \?ELS5
|
||||
LOC WINE-RED
|
||||
EQUAL? STACK,PRSO,PRSI \?CND6
|
||||
MOVE WINE-RED,GLOBAL-OBJECTS
|
||||
?CND6: LOC WINE-WHITE
|
||||
EQUAL? STACK,PRSO,PRSI \?CND9
|
||||
MOVE WINE-WHITE,GLOBAL-OBJECTS
|
||||
?CND9: CALL ROB,PRSO,HERE
|
||||
CALL ROB,PRSI,HERE
|
||||
EQUAL? PRSA,V?EMPTY \FALSE
|
||||
PRINTR "Okay."
|
||||
?ELS5: EQUAL? PRSA,V?PUT-IN \FALSE
|
||||
EQUAL? PRSO,TOWEL-WAITER,NAPKIN,SCARF \FALSE
|
||||
EQUAL? PRSI,CUP-B,CUP-A \FALSE
|
||||
IN? WINE-RED,PRSI \FALSE
|
||||
CALL DO-INSTEAD-OF,WINE-RED,PRSI
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT WINE-PUT?
|
||||
EQUAL? PRSA,V?PUT \?ELS5
|
||||
EQUAL? PRSI,TOWEL-WAITER,NAPKIN,SCARF \FALSE
|
||||
EQUAL? PRSO,WINE-RED \FALSE
|
||||
RETURN PRSI
|
||||
?ELS5: EQUAL? PRSA,V?PUT-IN \FALSE
|
||||
EQUAL? PRSO,TOWEL-WAITER,NAPKIN,SCARF \FALSE
|
||||
EQUAL? PRSI,WINE-RED \FALSE
|
||||
RETURN PRSO
|
||||
|
||||
|
||||
.FUNCT WINE-F,OBJ
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
LOC PRSO
|
||||
EQUAL? STACK,CUP-A,CUP-B \?ELS5
|
||||
LOC PRSO
|
||||
CALL PERFORM,PRSA,STACK,PRSI
|
||||
RTRUE
|
||||
?ELS5: CALL1 WINE-PUT? >OBJ
|
||||
ZERO? OBJ /?ELS9
|
||||
LOC OBJ
|
||||
MOVE HANKY,STACK
|
||||
FSET HANKY,TAKEBIT
|
||||
MOVE OBJ,LIMBO-FWD
|
||||
FCLEAR OBJ,TAKEBIT
|
||||
MOVE WINE-RED,GLOBAL-OBJECTS
|
||||
PRINTI "The "
|
||||
PRINTD OBJ
|
||||
PRINTI " soaks up the wine, and the stain spreads to every nook and cranny. Within a minute, you have a decent imitation of a "
|
||||
PRINTD HANKY
|
||||
PRINTR "."
|
||||
?ELS9: CALL2 FOOD-F,TRUE-VALUE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NO-FOOD-F,PER
|
||||
ZERO? ON-TRAIN /?ELS3
|
||||
SET 'PER,WAITER
|
||||
JUMP ?CND1
|
||||
?ELS3: SET 'PER,WAITRESS
|
||||
?CND1: EQUAL? PRSA,V?BUY,V?ASK-ABOUT \FALSE
|
||||
CALL2 START-SENTENCE,PER
|
||||
PRINTI " shakes"
|
||||
CALL HIM-HER-IT,PER,FALSE-VALUE,TRUE-VALUE
|
||||
CALL2 THIS-IS-IT,FOOD
|
||||
CALL2 THIS-IS-IT,PER
|
||||
PRINTR " head and points to the first item on the menu, which you find unreadable."
|
||||
|
||||
|
||||
.FUNCT TABLE?,RM
|
||||
EQUAL? RM,CAFE \?ELS5
|
||||
RETURN COUNTER-CAFE
|
||||
?ELS5: EQUAL? RM,BOOTH-1 \?ELS7
|
||||
RETURN TABLE-1
|
||||
?ELS7: EQUAL? RM,BOOTH-2 \?ELS9
|
||||
RETURN TABLE-2
|
||||
?ELS9: EQUAL? RM,BOOTH-3 \FALSE
|
||||
RETURN TABLE-3
|
||||
|
||||
|
||||
.FUNCT LANGUAGE-F
|
||||
EQUAL? PRSA,V?LEARN,V?ANALYZE \FALSE
|
||||
PRINTR "Maybe you should have taken your company's offer to pay for language lessons before you started this trip. After all, English isn't spoken everywhere."
|
||||
|
||||
|
||||
.FUNCT GESTURE-F,P
|
||||
EQUAL? PRSA,V?LEARN,V?ANALYZE \?ELS5
|
||||
PRINTR "Maybe you should have taken your company's offer to pay for gesture lessons before you started this trip. After all, English gestures aren't used everywhere."
|
||||
?ELS5: EQUAL? PRSA,V?MAKE \FALSE
|
||||
ZERO? PRSI /?ELS12
|
||||
FSET? PRSI,PERSONBIT \?ELS12
|
||||
SET 'P,PRSI
|
||||
JUMP ?CND10
|
||||
?ELS12: CALL1 QCONTEXT-GOOD?
|
||||
ZERO? STACK /?ELS16
|
||||
SET 'P,QCONTEXT
|
||||
JUMP ?CND10
|
||||
?ELS16: CALL FIND-FLAG,HERE,PERSONBIT,WINNER >P
|
||||
ZERO? P \?CND10
|
||||
CALL2 NOT-CLEAR-WHOM,TRUE-VALUE
|
||||
RTRUE
|
||||
?CND10: CALL2 START-SENTENCE,P
|
||||
CALL HE-SHE-IT,P,-1,STR?154
|
||||
PRINTR " a gesture right back. Somehow it looks nastier than yours."
|
||||
|
||||
|
||||
.FUNCT GAME-F
|
||||
EQUAL? PRSA,V?READ,V?PLAY,V?EXAMINE \FALSE
|
||||
SET 'CLOCK-WAIT,TRUE-VALUE
|
||||
PRINTR "(You're doing it now!)"
|
||||
|
||||
|
||||
.FUNCT HEAD-F
|
||||
EQUAL? PRSA,V?NOD \?ELS5
|
||||
CALL2 PERFORM,V?YES
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?SHAKE \FALSE
|
||||
CALL2 PERFORM,V?NO
|
||||
RTRUE
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,980 @@
|
|||
"GLOBALS for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<OBJECT GLOBAL-OBJECTS
|
||||
(DESC "GO")
|
||||
(FDESC 0)
|
||||
(FLAGS BUSYBIT CONTBIT DOORBIT FEMALE
|
||||
INVISIBLE LIGHTBIT LOCKED MUNGBIT
|
||||
NARTICLEBIT NDESCBIT ONBIT ;ON?BIT OPENBIT
|
||||
;PERSONBIT ;PLURAL READBIT RMUNGBIT
|
||||
SEARCHBIT ;SEENBIT SURFACEBIT
|
||||
TAKEBIT TOOLBIT TOUCHBIT TRANSBIT TRYTAKEBIT TURNBIT
|
||||
VEHBIT VOWELBIT WEAPONBIT WEARBIT WINDOWBIT WORNBIT)>
|
||||
|
||||
<OBJECT LOCAL-GLOBALS
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "LG")
|
||||
(SYNONYM ZZZZLG) ;"This synonym is necessary - God knows">
|
||||
|
||||
<ROUTINE DO-INSTEAD-OF (OBJ1 OBJ2)
|
||||
<COND (<EQUAL? ,PRSI .OBJ2> <PERFORM ,PRSA ,PRSO .OBJ1> <RTRUE>)
|
||||
(<EQUAL? ,PRSO .OBJ2> <PERFORM ,PRSA .OBJ1 ,PRSI> <RTRUE>)
|
||||
(<V-FOO>)>>
|
||||
|
||||
<OBJECT TURN
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(ADJECTIVE NUMBER FULL)
|
||||
(SYNONYM TURN TURNS MINUTE)
|
||||
(DESC "minute")
|
||||
(ACTION TURN-F)>
|
||||
|
||||
<ROUTINE TURN-F ()
|
||||
<COND (<VERB? USE>
|
||||
<PERFORM ,V?WAIT-FOR ,PRSO>
|
||||
<RTRUE>)>>
|
||||
|
||||
<OBJECT IT
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM IT THIS ;"FUCKER SUCKER")
|
||||
(DESC "it")
|
||||
(FLAGS VOWELBIT NARTICLEBIT)
|
||||
(ACTION IT-F)>
|
||||
|
||||
<ROUTINE IT-F ()
|
||||
<COND (<OR <AND <IOBJ? IT>
|
||||
;<FSET? ,PRSO ,PERSONBIT>
|
||||
<VERB? ASK-ABOUT ASK-FOR SEARCH-FOR TELL-ABOUT>>
|
||||
<AND <DOBJ? IT>
|
||||
<VERB? ASK-CONTEXT-ABOUT ASK-CONTEXT-FOR FIND WHAT>>>
|
||||
<PRODUCE-GIBBERISH>
|
||||
;<TELL "\"I'm not sure what you're talking about.\"" CR>)>>
|
||||
|
||||
<OBJECT FLOOR
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "floor")
|
||||
(SYNONYM FLOOR ;AREA GROUND)
|
||||
(ACTION FLOOR-F)>
|
||||
|
||||
<ROUTINE FLOOR-F ("AUX" OBJ)
|
||||
<COND ;(<REMOTE-VERB?> <RFALSE>)
|
||||
(<AND <VERB? PUT> <IOBJ? FLOOR>>
|
||||
<PERFORM ,V?DROP ,PRSO>
|
||||
<RTRUE>)
|
||||
(<VERB? EXAMINE SEARCH LOOK-ON>
|
||||
<COND (<SET OBJ <FIND-FLAG ,HERE ,NDESCBIT ,WINNER>>
|
||||
<FCLEAR .OBJ ,NDESCBIT>
|
||||
<THIS-IS-IT .OBJ>
|
||||
<TELL "Something catches your eye: it's " A .OBJ "." CR>)
|
||||
(T <TELL "You don't find anything new there." CR>)>)
|
||||
(<VERB? BRUSH TAKE>
|
||||
<COND (<IN? ,BLOOD-SPOT ,HERE>
|
||||
<PERFORM ,V?BRUSH ,BLOOD-SPOT ,PRSI>
|
||||
<RTRUE>)>)>>
|
||||
|
||||
;<OBJECT DANGER
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "danger")
|
||||
(SYNONYM DANGER THREAT)>
|
||||
|
||||
;<OBJECT MOTIVE
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "motive")
|
||||
;(ADJECTIVE YOUR)
|
||||
(SYNONYM MOTIVE)>
|
||||
|
||||
;<OBJECT PROBLEM
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "problem")
|
||||
(ADJECTIVE URGENT)
|
||||
(SYNONYM PROBLEM ;"WANT WRONG HAPPENING")>
|
||||
|
||||
;<OBJECT GLOBAL-WEAPON
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "weapon")
|
||||
(ADJECTIVE ;YOUR SOME)
|
||||
(SYNONYM WEAPON)>
|
||||
|
||||
;<OBJECT GLOBAL-EXPLOSIVE
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "explosive charge")
|
||||
(ADJECTIVE ;YOUR SOME EXPLOSIVE)
|
||||
(SYNONYM EXPLOSIVE CHARGE)
|
||||
(FLAGS VOWELBIT)>
|
||||
|
||||
;<OBJECT GLOBAL-SURFACE
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "surface")
|
||||
(SYNONYM SURFACE)>
|
||||
|
||||
<OBJECT DOLLARS
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(ADJECTIVE NUMBER)
|
||||
(SYNONYM SLIMPUK)
|
||||
(DESC "slimpuk")
|
||||
(ACTION DOLLARS-F)>
|
||||
|
||||
<ROUTINE DOLLARS-F ()
|
||||
<COND (<VERB? COUNT>
|
||||
<DO-INSTEAD-OF ,GLOBAL-MONEY ,DOLLARS>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<COND (,P-DOLLAR-FLAG
|
||||
<COND (<0? ,P-AMOUNT> <SETG P-AMOUNT 1>)>)
|
||||
(T
|
||||
<SETG P-DOLLAR-FLAG T>
|
||||
<COND (<0? ,P-NUMBER> <SETG P-AMOUNT 1>)>)>
|
||||
<DO-INSTEAD-OF ,INTNUM ,DOLLARS>
|
||||
<RTRUE>)>>
|
||||
|
||||
<OBJECT INTNUM
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM NUMBER)
|
||||
(DESC "number")
|
||||
(ACTION INTNUM-F)>
|
||||
|
||||
<ROUTINE INTNUM-F ()
|
||||
<COND ;(<AND ;<VERB? GIVE WITHDRAW>
|
||||
<NOT ,P-DOLLAR-FLAG>>
|
||||
<TELL "(Please use units with numbers.)" CR>
|
||||
<SETG CLOCK-WAIT T>
|
||||
<RFATAL>)
|
||||
(,P-DOLLAR-FLAG
|
||||
<COND (<DIVESTMENT? ,PRSO>
|
||||
<TELL-FLASHING-CASH>
|
||||
<RTRUE>)
|
||||
(<AND <NOT <VERB? ;WITHDRAW TAKE ASK-FOR>>
|
||||
<==? ,WINNER ,PLAYER>
|
||||
<G? ,P-AMOUNT <GETP ,PLAYER ,P?SOUTH>>>
|
||||
<TELL "You don't have that much." CR>)>)>>
|
||||
|
||||
;<OBJECT GLOBAL-WATER
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "water")
|
||||
(SYNONYM WATER)
|
||||
(ACTION WATER-F)>
|
||||
|
||||
;<ROUTINE WATER-F ()
|
||||
<COND (<REMOTE-VERB?> <RFALSE>)
|
||||
(<VERB? SWIM THROUGH>
|
||||
<TELL "This is no time for a swim!" CR>)>>
|
||||
|
||||
<OBJECT YOU
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM YOU YOURSELF HIMSELF HERSELF)
|
||||
(DESC "himself or herself")
|
||||
(FLAGS ;NDESCBIT NARTICLEBIT)
|
||||
(ACTION YOU-F)>
|
||||
|
||||
<ROUTINE YOU-F ()
|
||||
<COND (<NOT <==? ,WINNER ,PLAYER>>
|
||||
<DO-INSTEAD-OF ,WINNER ,YOU>
|
||||
<RTRUE>)
|
||||
(<AND <VERB? ASK-ABOUT> <IOBJ? YOU>>
|
||||
<PERFORM ,V?ASK-ABOUT ,PRSO ,PRSO>
|
||||
<RTRUE>)>>
|
||||
|
||||
;<OBJECT HINT
|
||||
(DESC "clue" ;"hint")
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM CLUE HINT HELP)
|
||||
(ACTION HINT-F)>
|
||||
|
||||
;<ROUTINE HINT-F ()
|
||||
<COND (<VERB? FIND>
|
||||
<HELP-TEXT>)
|
||||
(<VERB? ASK-FOR ASK-CONTEXT-FOR TAKE>
|
||||
<MORE-SPECIFIC>)>>
|
||||
|
||||
<OBJECT CORRIDOR-GLOBAL
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "corridor")
|
||||
(SYNONYM CORRIDOR)
|
||||
(ACTION CORRIDOR-GLOBAL-F)>
|
||||
|
||||
<ROUTINE CORRIDOR-GLOBAL-F ("AUX" RM)
|
||||
<COND (<VERB? ANALYZE EXAMINE LOOK-INSIDE LOOK-DOWN LOOK-UP>
|
||||
<COND (<NOT ,ON-TRAIN>
|
||||
<RFALSE>)
|
||||
(<ZMEMQ ,HERE ,CAR-ROOMS-CORRID>
|
||||
<PERFORM ,V?LOOK>
|
||||
<RTRUE>)
|
||||
(<SET RM <NEXT-ROOM ,HERE ,P?OUT>>
|
||||
<ROOM-PEEK .RM T>)>)>>
|
||||
|
||||
<OBJECT GLOBAL-HERE
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "here")
|
||||
(ADJECTIVE THIS)
|
||||
(SYNONYM HERE AREA ROOM PLACE)
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION GLOBAL-HERE-F)>
|
||||
|
||||
<ROUTINE GLOBAL-HERE-F ("AUX" (FLG <>) F HR TIM VAL)
|
||||
<COND (<VERB? WALK-TO SIT>
|
||||
<DO-INSTEAD-OF ,HERE ,GLOBAL-HERE>
|
||||
<RTRUE>)
|
||||
(<VERB? KNOCK>
|
||||
<TELL "Knocking on the walls reveals nothing unusual." CR>)
|
||||
(<VERB? PUT PUT-IN TIE-TO>
|
||||
<MORE-SPECIFIC>)
|
||||
(<VERB? SEARCH EXAMINE>
|
||||
<COND ;(<OUTSIDE? ,HERE>
|
||||
<SET TIM 10>)
|
||||
(<NOT <ZERO? <GETP ,HERE ,P?CORRIDOR>>>
|
||||
<SET TIM 3>)
|
||||
(T <SET TIM <+ 2 <GETP ,HERE ,P?SIZE>>>)>
|
||||
<COND (<==? ,P-ADVERB ,W?CAREFULLY> <SET TIM <* 2 .TIM>>)>
|
||||
<TELL
|
||||
"(It's better to examine or search one thing at a time. It would take a
|
||||
long time to search a whole room or area thoroughly. A ">
|
||||
<COND (<==? ,P-ADVERB ,W?CAREFULLY> <TELL "careful">)
|
||||
(T <TELL "brief">)>
|
||||
<TELL " search would take
|
||||
" N .TIM " minutes, and it might not reveal much. Would you like
|
||||
to do it anyway?)">
|
||||
<COND (<YES?>
|
||||
<COND (<==? ,M-FATAL <SET VAL <INT-WAIT .TIM>>>
|
||||
<RTRUE>)
|
||||
(.VAL
|
||||
<TELL "Your ">
|
||||
<COND (<==? ,P-ADVERB ,W?CAREFULLY>
|
||||
<TELL "careful">)
|
||||
(T <TELL "brief">)>
|
||||
<TELL " search reveals">
|
||||
<COND (<SET VAL <FOUND? ,HERE>>
|
||||
<TELL THE .VAL " under the seat." CR>)
|
||||
(T <TELL " nothing exciting." CR>)>)
|
||||
(T
|
||||
<TELL
|
||||
"You didn't finish looking over the place." CR>)>)
|
||||
(T
|
||||
<SETG CLOCK-WAIT T>
|
||||
<TELL "Okay." CR>)>)>>
|
||||
|
||||
<ROUTINE FOUND? (RM "AUX" X)
|
||||
<COND (<AND <SET X <ZMEMQ .RM ,CAR-ROOMS-COMPS>>
|
||||
<SET X <FIRST? <GET ,CAR-ROOMS-UNDER .X>>>>
|
||||
<RETURN .X>)
|
||||
(<==? .RM ,BOOTH-1>
|
||||
<FIRST? ,UNDER-BOOTH-1>)
|
||||
(<==? .RM ,BOOTH-2>
|
||||
<FIRST? ,UNDER-BOOTH-2>)
|
||||
(<==? .RM ,BOOTH-3>
|
||||
<FIRST? ,UNDER-BOOTH-3>)>>
|
||||
|
||||
<OBJECT AIR
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "air")
|
||||
(SYNONYM AIR ;"WIND" BREEZE OXYGEN)
|
||||
(FLAGS VOWELBIT)
|
||||
(ACTION AIR-F)>
|
||||
|
||||
<ROUTINE AIR-F ()
|
||||
<COND (<VERB? EXAMINE>
|
||||
<TELL "You can see through the air around you." CR>)
|
||||
(<VERB? WALK-TO>
|
||||
<TELL "It's all around you!" CR>)
|
||||
(<VERB? SMELL>
|
||||
<COND (<OUTSIDE? ,HERE>
|
||||
<TELL "The air is clear and fresh." CR>)
|
||||
(<FRESH-AIR? ,HERE> <RTRUE>)
|
||||
(T <TELL "The air is rather musty." CR>)>)>>
|
||||
|
||||
;<ROUTINE TOO-FAR-AWAY (OBJ) <TOO-BAD-BUT .OBJ "too far away">>
|
||||
|
||||
<OBJECT CHAIR
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "chair")
|
||||
(SYNONYM CHAIR ;CHAIRS SEAT BENCH STOOL)
|
||||
(FLAGS NDESCBIT ;FURNITURE VEHBIT)
|
||||
;(ACTION CHAIR-F)>
|
||||
|
||||
;<ROUTINE CHAIR-F ()
|
||||
<COND (<VERB? SIT LOOK-UNDER CLIMB-ON CLIMB-DOWN>
|
||||
<TELL "That's just a waste of time." CR>)>>
|
||||
|
||||
<OBJECT SOMETHING
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "(something)")
|
||||
(SYNONYM \(SOMETHING\) )
|
||||
(ACTION SOMETHING-F)>
|
||||
|
||||
<ROUTINE SOMETHING-F ()
|
||||
<SETG CLOCK-WAIT T>
|
||||
<TELL "(Type a real word instead of " D ,SOMETHING ".)" CR>>
|
||||
|
||||
;<OBJECT MORE
|
||||
(DESC "more")
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM MORE)
|
||||
(FLAGS NARTICLEBIT)>
|
||||
|
||||
;<OBJECT GLOBAL-SABOTAGE
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "sabotage")
|
||||
(SYNONYM SABOTAGE)>
|
||||
|
||||
[
|
||||
<OBJECT FIXTURES
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "bunch of fixtures")
|
||||
(SYNONYM BUNCH FIXTURE FIXTURES)>
|
||||
|
||||
<OBJECT TOILET
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "toilet")
|
||||
(SYNONYM TOILET ;FIXTURE)
|
||||
(FLAGS NDESCBIT OPENBIT CONTBIT SEARCHBIT VEHBIT)
|
||||
(CAPACITY 33)
|
||||
(ACTION TOILET-F)>
|
||||
|
||||
<ROUTINE TOILET-F ()
|
||||
<COND (<VERB? OPEN CLOSE>
|
||||
<YOU-CANT>)
|
||||
(<VERB? PUT-IN>
|
||||
<COND (<IOBJ? TOILET>
|
||||
<FSET ,PRSO ,MUNGBIT>
|
||||
<RFALSE>)>)
|
||||
(<VERB? FLUSH FLUSH-DOWN>
|
||||
<COND (<AND ,IN-STATION ,ON-TRAIN>
|
||||
<TELL
|
||||
"An old refrain comes to mind:|
|
||||
\"Passengers will please refrain|
|
||||
From flushing toilets while the train|
|
||||
Is standing in the station. (I love you!)\"" CR>)
|
||||
(T
|
||||
<COND (<VERB? FLUSH-DOWN>
|
||||
<COND (<NOT <==? <ITAKE> T>> <RTRUE>)>
|
||||
;<FSET ,TOILET ,OPENBIT>
|
||||
<MOVE ,PRSO ,TOILET>)>
|
||||
<COND (<FIRST? ,TOILET>
|
||||
<TELL "Say goodbye to">
|
||||
<ROB ,TOILET ,LIMBO-FWD T>)>
|
||||
<TELL "\"Whhoooossshhhhh!\"" CR>)>)>>
|
||||
|
||||
<ROUTINE ROB (WHAT THIEF "OPTIONAL" (TELL? <>) "AUX" N X (TOLD? <>))
|
||||
<SET X <FIRST? .WHAT>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .X> <RETURN>)>
|
||||
<SET N <NEXT? .X>>
|
||||
<COND (<AND <NOT .N> .TOLD? .TELL?>
|
||||
<TELL " and">)>
|
||||
<SET TOLD? T>
|
||||
<COND (.TELL?
|
||||
<TELL THE .X>
|
||||
<COND (.N <TELL ",">)
|
||||
(T <TELL ". ">)>)>
|
||||
<MOVE .X .THIEF>
|
||||
<FCLEAR .X ,TAKEBIT>
|
||||
<SET X .N>>>
|
||||
|
||||
<OBJECT SINK
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "sink")
|
||||
(SYNONYM SINK BOWL BASIN FAUCET)
|
||||
(FLAGS NDESCBIT CONTBIT SEARCHBIT OPENBIT)
|
||||
(CAPACITY 15)
|
||||
(TEXT
|
||||
"It's a metal sink, a bit dented and scratched, with only one faucet.")
|
||||
(ACTION SINK-F)>
|
||||
|
||||
<ROUTINE SINK-F ()
|
||||
<COND (<VERB? OPEN CLOSE>
|
||||
<YOU-CANT>)
|
||||
(<VERB? LAMP-ON>
|
||||
<TELL
|
||||
"You push on the handle, and water runs until you let go. A silly idea
|
||||
comes into your head: what is the sound of one hand washing?" CR>)>>
|
||||
|
||||
<OBJECT TOWEL-FIXTURE
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "towel dispenser")
|
||||
(ADJECTIVE TOWEL)
|
||||
(SYNONYM DISPENSER ;FIXTURE HOLDER)
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT TOWEL-FIXTURE-BROKEN
|
||||
;(LOC OTHER-REST-ROOM-REAR)
|
||||
(CAR 0)
|
||||
(DESC "towel dispenser")
|
||||
(ADJECTIVE TOWEL)
|
||||
(SYNONYM DISPENSER ;FIXTURE HOLDER)
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT TOWEL-LOOP
|
||||
(LOC LOCAL-GLOBALS ;TOWEL-FIXTURE)
|
||||
(DESC "towel")
|
||||
(ADJECTIVE CLOTH FRESH)
|
||||
(SYNONYM TOWEL PORTION)
|
||||
(FLAGS NDESCBIT TRYTAKEBIT)
|
||||
(ACTION TOWEL-LOOP-F)>
|
||||
|
||||
<OBJECT TOWEL-LOOP-BROKEN
|
||||
(CAR 0)
|
||||
(DESC "towel remnant")
|
||||
(ADJECTIVE CLOTH FRESH)
|
||||
(SYNONYM TOWEL PORTION REMNANT)
|
||||
(FLAGS NDESCBIT TRYTAKEBIT)
|
||||
(ACTION TOWEL-LOOP-BROKEN-F)>
|
||||
|
||||
<ROUTINE TOWEL-LOOP-F ()
|
||||
<COND (<VERB? CUT>
|
||||
<COND (<IOBJ? KNIFE>
|
||||
<MOVE ,SCARF ,PLAYER>
|
||||
<FSET ,SCARF ,TAKEBIT>
|
||||
<PUTP ,SCARF ,P?CAR ,CAR-HERE>
|
||||
<MOVE ,TOWEL-FIXTURE-BROKEN ,HERE>
|
||||
<PUTP ,TOWEL-FIXTURE-BROKEN ,P?CAR ,CAR-HERE>
|
||||
<MOVE ,TOWEL-LOOP-BROKEN ,HERE>
|
||||
<PUTP ,TOWEL-LOOP-BROKEN ,P?CAR ,CAR-HERE>
|
||||
<THIS-IS-IT ,TOWEL-LOOP-BROKEN>
|
||||
<TELL
|
||||
"Well done! You now have a government-issue " D ,SCARF ", and the janitor
|
||||
has a mess to repair." CR>)>)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL
|
||||
"This cloth towel must be very long, but most of it is rolled up
|
||||
inside the dispenser. Only about a meter hangs below it in a \"U\" shape."
|
||||
CR>)
|
||||
(<VERB? MOVE MOVE-DIR USE TAKE>
|
||||
<TELL
|
||||
"As you pull on the towel, a fresh portion appears from a slot, and
|
||||
the used portion starts to disappear into the dispenser." CR>)>>
|
||||
|
||||
<ROUTINE TOWEL-LOOP-BROKEN-F ()
|
||||
<COND (<VERB? EXAMINE>
|
||||
<TELL
|
||||
"This cloth towel must be very long, but most of it is rolled up
|
||||
inside the dispenser. The part that should hang below is cut away." CR>)
|
||||
(<VERB? CUT MOVE MOVE-DIR USE TAKE>
|
||||
<TELL "There's not enough left!" CR>)>>
|
||||
|
||||
<OBJECT PAPER-FIXTURE
|
||||
;(LOC LOCAL-GLOBALS)
|
||||
(DESC "paper dispenser")
|
||||
(ADJECTIVE ;TOILET PAPER TISSUE)
|
||||
(SYNONYM DISPENSER ;FIXTURE HOLDER)
|
||||
(FLAGS NDESCBIT OPENBIT CONTBIT SEARCHBIT)
|
||||
(CAPACITY 3)
|
||||
(ACTION PAPER-FIXTURE-F)>
|
||||
|
||||
<ROUTINE PAPER-FIXTURE-F ()
|
||||
<COND (<VERB? LOOK-INSIDE>
|
||||
<FCLEAR ,PAPER-LOOP ,NDESCBIT>
|
||||
<RFALSE>)>>
|
||||
|
||||
<OBJECT PAPER-LOOP
|
||||
(LOC PAPER-FIXTURE)
|
||||
(CAR 0)
|
||||
(DESC "paper")
|
||||
(ADJECTIVE TOILET)
|
||||
(SYNONYM PAPER TISSUE PORTION)
|
||||
(FLAGS NARTICLEBIT NDESCBIT ;TRYTAKEBIT)
|
||||
(SIZE 3)
|
||||
(ACTION PAPER-LOOP-F)>
|
||||
|
||||
<ROUTINE PAPER-LOOP-F ()
|
||||
<COND (<VERB? MOVE MOVE-DIR USE TAKE>
|
||||
<TELL "Whatever you have in mind, it'll never work!" CR>)>>
|
||||
|
||||
<OBJECT MIRROR
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "mirror")
|
||||
(SYNONYM MIRROR)
|
||||
(ACTION MIRROR-F)>
|
||||
|
||||
<ROUTINE MIRROR-F ()
|
||||
<COND (<VERB? MUNG>
|
||||
<TELL "You don't need any bad luck!"
|
||||
;"According to superstition, it's bad luck to break mirrors." CR>)
|
||||
(<VERB? LOOK-INSIDE EXAMINE>
|
||||
<TELL "A harried and weary "
|
||||
<COND (<SPY?> "spy") (T "traveler")>
|
||||
" looks back at you, with a
|
||||
look that seems to say, \"I don't need this aggravation!\"" CR>)>>
|
||||
]
|
||||
<OBJECT POCKET
|
||||
(LOC PLAYER ;GLOBAL-OBJECTS)
|
||||
(DESC "your pocket")
|
||||
(ADJECTIVE MY)
|
||||
(SYNONYM POCKET POCKETS)
|
||||
(FLAGS CONTBIT OPENBIT NARTICLEBIT NDESCBIT SEARCHBIT)
|
||||
(CAPACITY 15)
|
||||
(ACTION POCKET-F)>
|
||||
|
||||
<ROUTINE POCKET-F ("AUX" X)
|
||||
<COND (<DIVESTMENT? ,POCKET>
|
||||
<HAR-HAR>)
|
||||
;(<AND <VERB? TAKE>
|
||||
<DOBJ? GLOBAL-MONEY>>
|
||||
<TELL-FLASHING-CASH>)
|
||||
(<VERB? LOOK-INSIDE LOOK-THROUGH>
|
||||
<SET X <PRINT-CONT ,POCKET ;T>>
|
||||
<COND (<AND <==? ,WINNER ,PLAYER>
|
||||
<G? <GETP ,PLAYER ,P?SOUTH> 0>>
|
||||
<THIS-IS-IT ,GLOBAL-MONEY>
|
||||
<COND (.X <TELL "And some money." CR>)
|
||||
(T
|
||||
<TELL "You have some money in your pocket.">
|
||||
<COND (<IN? ,CUSTOMS-AGENT ,HERE>
|
||||
<TELL
|
||||
" But" HE ,CUSTOMS-AGENT " won't mind.">)>
|
||||
<CRLF>)>)
|
||||
(<NOT .X> <TELL "Your pocket is empty." CR>)>
|
||||
<RTRUE>)
|
||||
(<VERB? EMPTY>
|
||||
<COND (<FIRST? ,POCKET>
|
||||
<TELL "You are now holding">
|
||||
<ROB ,POCKET ,PLAYER T>
|
||||
<CRLF>)>)
|
||||
(<VERB? OPEN CLOSE>
|
||||
<TELL "You don't need to do that." CR>)
|
||||
(<AND <VERB? PUT-IN>
|
||||
<IOBJ? POCKET>>
|
||||
<COND (<OR <DOBJ? GLOBAL-MONEY>
|
||||
<AND <DOBJ? INTNUM> ,P-DOLLAR-FLAG>>
|
||||
<TELL "It's already there." CR>)
|
||||
(<DOBJ? CAMERA>
|
||||
<COND (<FSET? ,PRSO ,OPENBIT>
|
||||
<FCLEAR ,PRSO ,OPENBIT>
|
||||
<TELL "(You close" HIM ,PRSO " first.)" CR>
|
||||
<RFALSE>)>)>)>>
|
||||
|
||||
<OBJECT POCKET-C
|
||||
(LOC CONDUCTOR ;GLOBAL-OBJECTS)
|
||||
(DESC "conductor's pocket")
|
||||
(ADJECTIVE CONDUCTOR CONDUC COLLECTOR)
|
||||
(SYNONYM POCKET POCKETS)
|
||||
(FLAGS CONTBIT OPENBIT NDESCBIT SEARCHBIT)
|
||||
(CAPACITY 15)
|
||||
(ACTION POCKET-C-F)>
|
||||
|
||||
<ROUTINE POCKET-C-F ("AUX" X)
|
||||
<COND (<DIVESTMENT? ,POCKET-C>
|
||||
<HAR-HAR>)
|
||||
(<VERB? LOOK-INSIDE LOOK-THROUGH>
|
||||
<COND (<OR <FSET? ,CONDUCTOR ,MUNGBIT>
|
||||
<NOT <FSET? ,CONDUCTOR ,PERSONBIT>>>
|
||||
<SET X <PRINT-CONT ,POCKET-C ;T>>)
|
||||
(T <TELL
|
||||
CHE ,CONDUCTOR " brushes your hand away without even looking." CR>)>
|
||||
<RTRUE>)
|
||||
(<VERB? OPEN CLOSE>
|
||||
<TELL "You don't need to do that." CR>)
|
||||
(<AND <VERB? PUT-IN>
|
||||
<IOBJ? POCKET-C>>
|
||||
<COND (<DOBJ? CAMERA>
|
||||
<COND (<FSET? ,PRSO ,OPENBIT>
|
||||
<FCLEAR ,PRSO ,OPENBIT>
|
||||
<TELL "(You close" HIM ,PRSO " first.)" CR>
|
||||
<RFALSE>)>)>)>>
|
||||
|
||||
<ROUTINE TELL-FLASHING-CASH ()
|
||||
<TELL "Flashing your bankroll is not a good idea." CR>>
|
||||
|
||||
<OBJECT GLOBAL-MONEY
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(ADJECTIVE SOME MY)
|
||||
(SYNONYM MONEY CASH \*)
|
||||
(DESC "money")
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION GLOBAL-MONEY-F)>
|
||||
|
||||
<ROUTINE GLOBAL-MONEY-F ()
|
||||
<COND (<VERB? FIND>
|
||||
<TELL "It's not that easy!" CR>
|
||||
<RTRUE>)
|
||||
(<REMOTE-VERB?>
|
||||
<RFALSE>)
|
||||
(<AND <VERB? PUT PUT-IN> <DOBJ? GLOBAL-MONEY>>
|
||||
<MORE-SPECIFIC>)
|
||||
(<G? <GETP ,PLAYER ,P?SOUTH> 0>
|
||||
<COND (<VERB? COUNT EXAMINE>
|
||||
<TELL "You are carrying ">
|
||||
<PRINTC ,CURRENCY-SYMBOL>
|
||||
<TELL N <GETP ,PLAYER ,P?SOUTH> "." CR>)
|
||||
(<VERB? GIVE>
|
||||
<SETG CLOCK-WAIT T>
|
||||
<TELL "(You didn't say how much money to give.)" CR>)
|
||||
(<AND <VERB? TAKE> ,PRSI ;<FSET? ,PRSI ,PERSONBIT>>
|
||||
<TELL "You can't see any money on" HIM ,PRSI "." CR>)
|
||||
(<AND <VERB? SHOW> ;<DOBJ? CUSTOMS-AGENT>>
|
||||
<RFALSE>)
|
||||
(T <TELL-FLASHING-CASH>)>)
|
||||
(T <NOT-HERE ,GLOBAL-MONEY>)>>
|
||||
|
||||
<OBJECT MENU
|
||||
(DESC "menu")
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(FLAGS READBIT)
|
||||
(SYNONYM MENU)
|
||||
(ACTION MENU-F)
|
||||
(TEXT
|
||||
"A sign on the wall has a long list of mysterious Frotzian phrases,
|
||||
printed in ornate letters. All you can decipher is unpleasant things
|
||||
like fish heads and lice, or rumpled stilt's skin. Wait! There's an
|
||||
American phrase: Eggs McGuffin!")>
|
||||
|
||||
<ROUTINE MENU-F ()
|
||||
<COND (<VERB? ANALYZE EXAMINE READ>
|
||||
<TELL <GETP ,MENU ,P?TEXT> CR>)>>
|
||||
|
||||
<OBJECT ITEMS
|
||||
(DESC "item")
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(FLAGS READBIT VOWELBIT)
|
||||
(ADJECTIVE ;FIRST SECOND THIRD FOURTH FIFTH)
|
||||
(SYNONYM ITEM)
|
||||
(ACTION ITEMS-F)>
|
||||
|
||||
<ROUTINE ITEMS-F ()
|
||||
<COND (<VERB? ASK-FOR BUY>
|
||||
<COND ;(<EQUAL? ,P-ADJ ;N ,W?FIRST>
|
||||
<DO-INSTEAD-OF ,FOOD ,ITEMS>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<DO-INSTEAD-OF ,FOOD-2 ,ITEMS>
|
||||
<RTRUE>)>)
|
||||
(<VERB? ANALYZE EXAMINE READ>
|
||||
<TELL <GETP ,MENU ,P?TEXT> CR>)>>
|
||||
|
||||
<OBJECT FOOD-GLOBAL
|
||||
(DESC "food")
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM FOOD)
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION FOOD-GLOBAL-F)>
|
||||
|
||||
<ROUTINE FOOD-GLOBAL-F ()
|
||||
<COND (<VERB? ASK-FOR BUY SMELL>
|
||||
<DO-INSTEAD-OF ,FOOD ,FOOD-GLOBAL>
|
||||
<RTRUE>)
|
||||
(<REMOTE-VERB?> <RFALSE>)
|
||||
(T <NOT-HERE ,FOOD-GLOBAL>)>>
|
||||
|
||||
<OBJECT DRINK-GLOBAL
|
||||
(DESC "drink")
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM DRINK)
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION DRINK-F)>
|
||||
|
||||
<ROUTINE DRINK-F () <FOOD-F T>>
|
||||
|
||||
<OBJECT DRINK-1
|
||||
(DESC "drink")
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM TEA BEER COFFEE)
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION DRINK-1-F)>
|
||||
|
||||
<ROUTINE DRINK-1-F ()
|
||||
<DO-INSTEAD-OF ,DRINK-GLOBAL ,DRINK-1>
|
||||
<RTRUE>>
|
||||
|
||||
;<ROUTINE GENERIC-FOOD-F (X)
|
||||
<COND (<==? ,HERE <META-LOC ,FOOD>> ,FOOD)
|
||||
(T ,FOOD-GLOBAL)>>
|
||||
|
||||
<OBJECT FOOD-CAFE
|
||||
(DESC "food")
|
||||
(LOC CAFE)
|
||||
(SYNONYM FOOD)
|
||||
(FLAGS NDESCBIT NARTICLEBIT)
|
||||
(ACTION FOOD-F)>
|
||||
|
||||
<OBJECT FOOD ;"Make this similar to WINE-xxx."
|
||||
(DESC "plate of thin gruel")
|
||||
(LOC GALLEY)
|
||||
(CAR 3)
|
||||
(ADJECTIVE THIN FIRST)
|
||||
(SYNONYM GRUEL PLATE DISH FOOD ITEM)
|
||||
(FLAGS NDESCBIT SEARCHBIT)
|
||||
(SIZE 20)
|
||||
(ACTION FOOD-F)>
|
||||
|
||||
<CONSTANT FOOD-SIZE 4>
|
||||
<CONSTANT FOOD-HALF-SIZE 2>
|
||||
|
||||
<ROUTINE FOOD-F ("OPTIONAL" (DRINK? <>) "AUX" PER OBJ X)
|
||||
<COND (<VERB? EAT SMELL DRINK>
|
||||
<COND (<OR <VERB? SMELL>
|
||||
<NOT <IN? ,PRSO ,GLOBAL-OBJECTS>>
|
||||
;<DOBJ? FOOD WINE-RED WINE-WHITE>>
|
||||
<TELL "It's pungent but not very flavorful.">
|
||||
<COND (<NOT <VERB? SMELL>>
|
||||
<SET X <GETP ,PRSO ,P?SIZE>>
|
||||
<PUTP ,PRSO ,P?SIZE .X>
|
||||
<COND (<==? .X ,FOOD-HALF-SIZE>
|
||||
<TELL " And it's half gone.">)
|
||||
(<ZERO? .X>
|
||||
<MOVE ,PRSO ,GLOBAL-OBJECTS>
|
||||
<TELL " And it's gone.">)>)>
|
||||
<COND (<SPY?>
|
||||
<TELL
|
||||
" You've had better in some mighty dank corners of the world.">)>
|
||||
<CRLF>)
|
||||
(T <TELL "That wouldn't be very polite." CR>)>)
|
||||
(<VERB? POUR PUT PUT-IN MUNG>
|
||||
<COND (<IOBJ? TOILET>
|
||||
<RFALSE>)
|
||||
(<AND <NOT <VERB? POUR>>
|
||||
<IOBJ? TABLE-1 TABLE-2 TABLE-3>>
|
||||
<RFALSE>)
|
||||
(T <TELL "What a mess that would make!" CR>)>)
|
||||
(<VERB? ASK-FOR BUY>
|
||||
<COND (<AND <EQUAL? ,HERE ,PANTRY>
|
||||
<INVASION? ,WAITER>>
|
||||
<RTRUE>)>
|
||||
<COND (,ON-TRAIN <SET PER ,WAITER>)
|
||||
(T <SET PER ,WAITRESS>)>
|
||||
<COND (.DRINK? <SET OBJ ,WINE-RED>)
|
||||
(T <SET OBJ ,FOOD>)>
|
||||
<COND (.DRINK?
|
||||
<COND (<OR <FSET? ,WINE-RED ,TOUCHBIT>
|
||||
<FSET? ,WINE-WHITE ,TOUCHBIT>>
|
||||
<TELL "You've bought enough to drink already."CR>
|
||||
<RTRUE>)>)
|
||||
(<FSET? ,FOOD ,TOUCHBIT> ;<IN? ,FOOD ,HERE>
|
||||
<TELL "You've bought enough to eat already." CR>
|
||||
<RTRUE>)>
|
||||
<COND (<0? <GETP ,PLAYER ,P?SOUTH>>
|
||||
<TELL "You don't have enough money." CR>)
|
||||
(<NOT <IN? .PER ,HERE>>
|
||||
<TELL "You'd better talk to " A .PER " first." CR>)
|
||||
(T
|
||||
<PUTP ,PLAYER ,P?SOUTH <- <GETP ,PLAYER ,P?SOUTH> 1>>
|
||||
<COND (<EQUAL? .OBJ ,WINE-RED ,WINE-WHITE>
|
||||
<SET X <OR <CALL-FOR-PROP ,CUP-A ,WAITER>
|
||||
<CALL-FOR-PROP ,CUP-B ,WAITER>>>
|
||||
<MOVE .OBJ .X>
|
||||
<PUTP .OBJ ,P?CAR ,CAR-HERE>
|
||||
<PUTP .OBJ ,P?SIZE ,FOOD-SIZE>
|
||||
<FSET .OBJ ,TOUCHBIT>
|
||||
<SET OBJ .X>)
|
||||
(T <PUTP .OBJ ,P?SIZE ,FOOD-SIZE>)>
|
||||
<MOVE .OBJ <OR <TABLE? ,HERE> ,HERE>>
|
||||
<PUTP .OBJ ,P?CAR ,CAR-HERE>
|
||||
<FSET .OBJ ,TAKEBIT>
|
||||
<FSET .OBJ ,TOUCHBIT>
|
||||
<FCLEAR .OBJ ,NDESCBIT>
|
||||
<FCLEAR .PER ,TOUCHBIT>
|
||||
<PUTP .PER ,P?LDESC 29>
|
||||
<TELL
|
||||
CHE .PER " returns in an instant with " A .OBJ " and takes ">
|
||||
<PRINTC ,CURRENCY-SYMBOL>
|
||||
<TELL "1 from you." CR>)>)>>
|
||||
|
||||
<OBJECT CUP-A
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(CAR 3)
|
||||
(DESC "china cup")
|
||||
(ADJECTIVE CHINA)
|
||||
(SYNONYM CUP)
|
||||
(FLAGS CONTBIT OPENBIT SEARCHBIT)
|
||||
(CAPACITY 15)
|
||||
(SIZE 20)
|
||||
(ACTION CUP-F)>
|
||||
|
||||
<OBJECT CUP-B
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(CAR 3)
|
||||
(DESC "enamel cup")
|
||||
(ADJECTIVE ENAMEL)
|
||||
(SYNONYM CUP)
|
||||
(FLAGS CONTBIT OPENBIT SEARCHBIT VOWELBIT)
|
||||
(CAPACITY 15)
|
||||
(SIZE 20)
|
||||
(ACTION CUP-F)>
|
||||
|
||||
<ROUTINE CUP-F ()
|
||||
<COND (<VERB? THROW-AT THROW-THROUGH EMPTY>
|
||||
<COND (<EQUAL? <LOC ,WINE-RED> ,PRSO ,PRSI>
|
||||
<MOVE ,WINE-RED ,GLOBAL-OBJECTS>)>
|
||||
<COND (<EQUAL? <LOC ,WINE-WHITE> ,PRSO ,PRSI>
|
||||
<MOVE ,WINE-WHITE ,GLOBAL-OBJECTS>)>
|
||||
<ROB ,PRSO ,HERE>
|
||||
<ROB ,PRSI ,HERE>
|
||||
<COND (<VERB? EMPTY> <TELL "Okay." CR>)
|
||||
(T <RFALSE>)>)
|
||||
(<AND <VERB? PUT-IN>
|
||||
<DOBJ? SCARF NAPKIN TOWEL-WAITER>
|
||||
<IOBJ? CUP-A CUP-B>
|
||||
<IN? ,WINE-RED ,PRSI>>
|
||||
<DO-INSTEAD-OF ,WINE-RED ,PRSI>
|
||||
<RTRUE>)>>
|
||||
|
||||
<OBJECT WINE-RED
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(CAR 3)
|
||||
(DESC ;"cup of " "purple wine")
|
||||
(ADJECTIVE PURPLE RED)
|
||||
(SYNONYM WINE ;CUP)
|
||||
(FLAGS NARTICLEBIT TRYTAKEBIT SEARCHBIT)
|
||||
(SIZE 10)
|
||||
(ACTION WINE-F)>
|
||||
|
||||
<OBJECT WINE-WHITE
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(CAR 3)
|
||||
(DESC ;"cup of " "yellow wine")
|
||||
(ADJECTIVE YELLOW WHITE)
|
||||
(SYNONYM WINE ;CUP)
|
||||
(FLAGS NARTICLEBIT TRYTAKEBIT SEARCHBIT)
|
||||
(SIZE 10)
|
||||
(ACTION WINE-F)>
|
||||
|
||||
<ROUTINE WINE-PUT? ()
|
||||
<COND (<VERB? PUT>
|
||||
<COND (<AND <IOBJ? SCARF NAPKIN TOWEL-WAITER>
|
||||
<DOBJ? WINE-RED>>
|
||||
<RETURN ,PRSI>)>)
|
||||
(<VERB? PUT-IN>
|
||||
<COND (<AND <DOBJ? SCARF NAPKIN TOWEL-WAITER>
|
||||
<IOBJ? WINE-RED>>
|
||||
<RETURN ,PRSO>)>)>>
|
||||
|
||||
<ROUTINE WINE-F ("AUX" OBJ)
|
||||
<COND (<AND <VERB? TAKE> <EQUAL? <LOC ,PRSO> ,CUP-A ,CUP-B>>
|
||||
<PERFORM ,PRSA <LOC ,PRSO> ,PRSI>
|
||||
<RTRUE>)
|
||||
(<SET OBJ <WINE-PUT?>>
|
||||
;<OR <AND <VERB? PUT>
|
||||
<IOBJ? SCARF NAPKIN TOWEL-WAITER>
|
||||
<DOBJ? WINE-RED>
|
||||
<SET OBJ ,PRSI>>
|
||||
<AND <VERB? PUT-IN>
|
||||
<DOBJ? SCARF NAPKIN TOWEL-WAITER>
|
||||
<IOBJ? WINE-RED>
|
||||
<SET OBJ ,PRSO>>>
|
||||
<MOVE ,HANKY <LOC .OBJ>>
|
||||
<FSET ,HANKY ,TAKEBIT>
|
||||
<MOVE .OBJ ,LIMBO-FWD ;,GLOBAL-OBJECTS>
|
||||
<FCLEAR .OBJ ,TAKEBIT>
|
||||
<MOVE ,WINE-RED ,GLOBAL-OBJECTS>
|
||||
<TELL
|
||||
"The " D .OBJ " soaks up the wine, and the stain spreads to every nook
|
||||
and cranny. Within a minute, you have a decent imitation of a " D ,HANKY
|
||||
"." CR>)
|
||||
(T <FOOD-F T>)>>
|
||||
|
||||
<OBJECT FOOD-1
|
||||
(DESC "food")
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(ADJECTIVE FISH RUMPLED STILT'S)
|
||||
(SYNONYM FISH HEADS LICE SKIN)
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION NO-FOOD-F)>
|
||||
|
||||
<OBJECT FOOD-2
|
||||
(DESC "food")
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(ADJECTIVE EGGS)
|
||||
(SYNONYM ;FOOD EGGS MCGUFFIN MACGUFFIN ;ITEM)
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION NO-FOOD-F)>
|
||||
|
||||
<OBJECT FOOD-3
|
||||
(DESC "food")
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM MEAL SNACK BREAKFAST LUNCH DINNER SANDWICH BREAD)
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION NO-FOOD-F)>
|
||||
|
||||
<ROUTINE NO-FOOD-F ("AUX" PER)
|
||||
<COND (,ON-TRAIN <SET PER ,WAITER>)
|
||||
(T <SET PER ,WAITRESS>)>
|
||||
<COND (<VERB? ASK-ABOUT BUY>
|
||||
<TELL CTHE .PER " shakes" HIS .PER>
|
||||
<THIS-IS-IT ,FOOD>
|
||||
<THIS-IS-IT .PER>
|
||||
<TELL
|
||||
" head and points to the first item on the menu, which you find unreadable."
|
||||
CR>)>>
|
||||
|
||||
<ROUTINE TABLE? (RM)
|
||||
<COND (<==? .RM ,CAFE> ,COUNTER-CAFE)
|
||||
(<==? .RM ,BOOTH-1> ,TABLE-1)
|
||||
(<==? .RM ,BOOTH-2> ,TABLE-2)
|
||||
(<==? .RM ,BOOTH-3> ,TABLE-3)>>
|
||||
|
||||
<OBJECT LANGUAGE
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "language")
|
||||
(ADJECTIVE FROTZIAN FOREIGN THEIR HIS ;HER)
|
||||
(SYNONYM LANGUAGE FROTZIAN)
|
||||
(ACTION LANGUAGE-F)>
|
||||
|
||||
<ROUTINE LANGUAGE-F ()
|
||||
<COND (<VERB? ANALYZE LEARN>
|
||||
<TELL
|
||||
"Maybe you should have taken your company's offer to pay for language
|
||||
lessons before you started this trip. After all, English isn't spoken
|
||||
everywhere." CR>)>>
|
||||
|
||||
<OBJECT GESTURE
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "gesture")
|
||||
(ADJECTIVE FROTZIAN FOREIGN THEIR HIS ;HER NASTY)
|
||||
(SYNONYM GESTURE)
|
||||
(ACTION GESTURE-F)>
|
||||
|
||||
<ROUTINE GESTURE-F ("AUX" P)
|
||||
<COND (<VERB? ANALYZE LEARN>
|
||||
<TELL
|
||||
"Maybe you should have taken your company's offer to pay for gesture
|
||||
lessons before you started this trip. After all, English gestures aren't used
|
||||
everywhere." CR>)
|
||||
(<VERB? MAKE>
|
||||
<COND (<AND ,PRSI <FSET? ,PRSI ,PERSONBIT>>
|
||||
<SET P ,PRSI>)
|
||||
(<QCONTEXT-GOOD?> <SET P ,QCONTEXT>)
|
||||
(<NOT <SET P <FIND-FLAG ,HERE ,PERSONBIT ,WINNER>>>
|
||||
<NOT-CLEAR-WHOM T>
|
||||
<RTRUE>)>
|
||||
<TELL
|
||||
CTHE .P V .P make " a gesture right back. Somehow it looks nastier than
|
||||
yours." CR>)>>
|
||||
|
||||
<OBJECT LIGHT-GLOBAL
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "light")
|
||||
(SYNONYM LIGHT SUNLIGHT MOONLIGHT)>
|
||||
|
||||
<OBJECT GAME
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC ;"STEAM AND VARIATIONS" "CHECKPOINT" ;"SEVEN SHADOWS")
|
||||
(ADJECTIVE SPY SHORT LONG)
|
||||
(SYNONYM THRILLER GAME CHECKPOINT)
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION GAME-F)>
|
||||
|
||||
<ROUTINE GAME-F ()
|
||||
<COND (<VERB? EXAMINE PLAY READ>
|
||||
;<COND (<EQUAL? ,P-ADJ ;N ,W?SHORT> )>
|
||||
<SETG CLOCK-WAIT T>
|
||||
<TELL "(You're doing it now!)" CR>)>>
|
||||
|
||||
<OBJECT HANDS
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "your hands")
|
||||
(SYNONYM HANDS)
|
||||
(ADJECTIVE ;YOUR MY BARE)
|
||||
(FLAGS NARTICLEBIT PLURALBIT)>
|
||||
|
||||
<OBJECT HEAD
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "your head")
|
||||
(SYNONYM HEAD ;FACE)
|
||||
(ADJECTIVE ;YOUR MY)
|
||||
(FLAGS NARTICLEBIT)
|
||||
(ACTION HEAD-F)>
|
||||
|
||||
<ROUTINE HEAD-F ()
|
||||
<COND (<VERB? NOD>
|
||||
<PERFORM ,V?YES>
|
||||
<RTRUE>)
|
||||
(<VERB? SHAKE>
|
||||
<PERFORM ,V?NO>
|
||||
<RTRUE>)>>
|
|
@ -0,0 +1,56 @@
|
|||
"EXTENDED COMPILE/LOAD FILE for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<PRINC "Compiling">
|
||||
<SETG ZSTR-ON <SETG ZSTR-OFF ,TIME>>
|
||||
<ID 0>)
|
||||
(T <PRINC "Loading">)>
|
||||
|
||||
<PRINC " CHECKPOINT: interactive fiction from Infocom!
|
||||
">
|
||||
|
||||
<COND (<GASSIGNED? MUDDLE>
|
||||
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>)>
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
||||
"<GLOBAL BIGFIX 10000>"
|
||||
|
||||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
|
||||
<INSERT-FILE .STR .FLOAD?>>
|
||||
|
||||
<DIRECTIONS ;"Do not change the order of the first eight
|
||||
without consulting MARC! -- ENCHANTER"
|
||||
NORTH ;NE EAST ;SE SOUTH ;SW WEST ;NW UP DOWN IN OUT>
|
||||
|
||||
<IFILE "MACROS" T>
|
||||
<IFILE "SYNTAX" T>
|
||||
<IFILE "MAIN" T>
|
||||
<IFILE "THINGS" T>
|
||||
<IFILE "PEOPLE" T>
|
||||
<IFILE "PLACES" T>
|
||||
<IFILE "GLOBAL" T>
|
||||
|
||||
<CONSTANT SERIAL 0>
|
||||
|
||||
<IFILE "CLOCK" T>
|
||||
<IFILE "PARSER" T>
|
||||
<IFILE "VERBS" T>
|
||||
<IFILE "TRAIN" T>
|
||||
<IFILE "CARS" T>
|
||||
<IFILE "STATION" T>
|
||||
<IFILE "GOAL" T>
|
||||
<IFILE "SPIES" T>
|
||||
|
||||
<PROPDEF SIZE 5>
|
||||
<PROPDEF CAPACITY 0>
|
||||
|
||||
<DEFINE ISL () <INIT-STATUS-LINE>>
|
||||
|
||||
<GC-MON T>
|
||||
<COND (<GASSIGNED? MUDDLE>
|
||||
<GC 0 T 5>)>
|
|
@ -0,0 +1,368 @@
|
|||
|
||||
;COMPARISON OF PS:<SWG>MACROS.ZAP.1 AND PS:<SWG>MACROS.ZAP.3
|
||||
;OPTIONS ARE /1
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-8 (112)
|
||||
?CND1: EQUAL? OBJ,POCKET \?CND6
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-8 (112)
|
||||
?CND1: EQUAL? OBJ,POCKET \?CND5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-11 (177)
|
||||
?CND6: EQUAL? OBJ,TICKET \?CND11
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-11 (177)
|
||||
?CND5: EQUAL? OBJ,TICKET \?CND9
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-14 (243)
|
||||
?CND11: EQUAL? OBJ,PASSPORT \?CND16
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-14 (242)
|
||||
?CND9: EQUAL? OBJ,PASSPORT \?CND13
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-17 (314)
|
||||
?CND16: FSET? OBJ,NARTICLEBIT /?CND21
|
||||
FSET? OBJ,SEENBIT /?THN27
|
||||
FSET? OBJ,PERSONBIT /?ELS26
|
||||
?THN27: PRINTI "The "
|
||||
JUMP ?CND21
|
||||
?ELS26: FSET? OBJ,VOWELBIT \?ELS32
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-17 (312)
|
||||
?CND13: FSET? OBJ,NARTICLEBIT /?CND17
|
||||
FSET? OBJ,SEENBIT /?THN20
|
||||
FSET? OBJ,PERSONBIT /?ELS21
|
||||
?THN20: PRINTI "The "
|
||||
JUMP ?CND17
|
||||
?ELS21: FSET? OBJ,VOWELBIT \?ELS24
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-24 (499)
|
||||
JUMP ?CND21
|
||||
?ELS32: PRINTI "A "
|
||||
?CND21: FSET? OBJ,PERSONBIT \?CND39
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-24 (497)
|
||||
JUMP ?CND17
|
||||
?ELS24: PRINTI "A "
|
||||
?CND17: FSET? OBJ,PERSONBIT \?CND29
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-28 (590)
|
||||
?CND39: PRINTD OBJ
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-28 (588)
|
||||
?CND29: PRINTD OBJ
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-41 (825)
|
||||
EQUAL? O,TURN \?ELS5
|
||||
LESS? 1,P-NUMBER \?ELS5
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-41 (823)
|
||||
EQUAL? O,TURN \?ELS4
|
||||
LESS? 1,P-NUMBER \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-47 (934)
|
||||
?ELS5: CALL THE?,O
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-47 (932)
|
||||
?ELS4: CALL THE?,O
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-55 (1040)
|
||||
FSET? OBJ,SEENBIT /?THN7
|
||||
FSET? OBJ,PERSONBIT /?ELS6
|
||||
?THN7: PRINTI " the"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-55 (1038)
|
||||
FSET? OBJ,SEENBIT /?THN4
|
||||
FSET? OBJ,PERSONBIT /?ELS5
|
||||
?THN4: PRINTI " the"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-59 (1131)
|
||||
?ELS6: FSET? OBJ,VOWELBIT \?ELS12
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-59 (1129)
|
||||
?ELS5: FSET? OBJ,VOWELBIT \?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-62 (1194)
|
||||
?ELS12: PRINTI " a"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-62 (1191)
|
||||
?ELS8: PRINTI " a"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-69 (1300)
|
||||
EQUAL? O,INTNUM \?ELS3
|
||||
ZERO? P-DOLLAR-FLAG /?ELS3
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-69 (1296)
|
||||
EQUAL? O,INTNUM \?ELS2
|
||||
ZERO? P-DOLLAR-FLAG /?ELS2
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-73 (1380)
|
||||
?ELS3: FSET? O,NARTICLEBIT \?ELS9
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-73 (1376)
|
||||
?ELS2: FSET? O,NARTICLEBIT \?ELS7
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-75 (1428)
|
||||
?ELS9: FSET? O,VOWELBIT \?ELS13
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-75 (1424)
|
||||
?ELS7: FSET? O,VOWELBIT \?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-78 (1489)
|
||||
?ELS13: PRINTI "a "
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-78 (1484)
|
||||
?ELS8: PRINTI "a "
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-84 (1576)
|
||||
FSET? OBJ,PERSONBIT /?ELS3
|
||||
ZERO? CAP /?ELS6
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-84 (1570)
|
||||
FSET? OBJ,PERSONBIT /?ELS2
|
||||
ZERO? CAP /?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-88 (1651)
|
||||
?ELS6: PRINTI "it"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-88 (1645)
|
||||
?ELS4: PRINTI "it"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-90 (1684)
|
||||
?ELS3: EQUAL? OBJ,PLAYER \?ELS15
|
||||
ZERO? CAP /?ELS18
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-90 (1678)
|
||||
?ELS2: EQUAL? OBJ,PLAYER \?ELS9
|
||||
ZERO? CAP /?ELS11
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-94 (1766)
|
||||
?ELS18: PRINTI "you"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-94 (1759)
|
||||
?ELS11: PRINTI "you"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-96 (1801)
|
||||
?ELS15: FSET? OBJ,FEMALE \?ELS27
|
||||
ZERO? CAP /?ELS30
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-96 (1794)
|
||||
?ELS9: FSET? OBJ,FEMALE \?ELS16
|
||||
ZERO? CAP /?ELS18
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-100 (1883)
|
||||
?ELS30: PRINTI "she"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-100 (1875)
|
||||
?ELS18: PRINTI "she"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-102 (1918)
|
||||
?ELS27: CALL ZMEMQ,OBJ,COUPLE-TABLE
|
||||
ZERO? STACK /?ELS39
|
||||
ZERO? CAP /?ELS42
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-102 (1910)
|
||||
?ELS16: CALL ZMEMQ,OBJ,COUPLE-TABLE
|
||||
ZERO? STACK /?ELS23
|
||||
ZERO? CAP /?ELS25
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-107 (2026)
|
||||
?ELS42: PRINTI "they"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-107 (2018)
|
||||
?ELS25: PRINTI "they"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-109 (2062)
|
||||
?ELS39: ZERO? CAP /?ELS54
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-109 (2054)
|
||||
?ELS23: ZERO? CAP /?ELS31
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-112 (2116)
|
||||
?ELS54: PRINTI "he"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-112 (2108)
|
||||
?ELS31: PRINTI "he"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-115 (2175)
|
||||
EQUAL? VERB,STR?1 \?ELS72
|
||||
EQUAL? OBJ,PLAYER /?THN78
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-115 (2167)
|
||||
EQUAL? VERB,STR?1 \?ELS43
|
||||
EQUAL? OBJ,PLAYER /?THN47
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-118 (2261)
|
||||
ZERO? STACK /?ELS77
|
||||
?THN78: PRINTI "are"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-118 (2253)
|
||||
ZERO? STACK /?ELS48
|
||||
?THN47: PRINTI "are"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-121 (2314)
|
||||
?ELS77: PRINTI "is"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-121 (2306)
|
||||
?ELS48: PRINTI "is"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-123 (2344)
|
||||
?ELS72: PRINT VERB
|
||||
EQUAL? OBJ,PLAYER /FALSE
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-123 (2336)
|
||||
?ELS43: PRINT VERB
|
||||
EQUAL? OBJ,PLAYER /?PRD57
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-126 (2421)
|
||||
ZERO? STACK \FALSE
|
||||
EQUAL? VERB,STR?2,STR?3 \?CND97
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-126 (2414)
|
||||
ZERO? STACK \?PRD57
|
||||
EQUAL? VERB,STR?2,STR?3 \?CND60
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-129 (2489)
|
||||
?CND97: PRINTI "s"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-129 (2483)
|
||||
?CND60: PRINTI "s"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-133 (2522)
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-131 (2512)
|
||||
?PRD57: PUSH 0
|
||||
RSTACK
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-134 (2563)
|
||||
FSET? OBJ,PERSONBIT /?ELS3
|
||||
ZERO? CAP /?ELS6
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-136 (2583)
|
||||
FSET? OBJ,PERSONBIT /?ELS2
|
||||
ZERO? CAP /?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-137 (2625)
|
||||
JUMP ?CND4
|
||||
?ELS6: PRINTI "it"
|
||||
?CND4: ZERO? POSSESS? /TRUE
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-139 (2645)
|
||||
JUMP ?CND3
|
||||
?ELS4: PRINTI "it"
|
||||
?CND3: ZERO? POSSESS? /TRUE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-142 (2709)
|
||||
?ELS3: EQUAL? OBJ,PLAYER \?ELS21
|
||||
ZERO? CAP /?ELS24
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-144 (2729)
|
||||
?ELS2: EQUAL? OBJ,PLAYER \?ELS13
|
||||
ZERO? CAP /?ELS15
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-145 (2778)
|
||||
JUMP ?CND22
|
||||
?ELS24: PRINTI "you"
|
||||
?CND22: ZERO? POSSESS? /TRUE
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-147 (2798)
|
||||
JUMP ?CND14
|
||||
?ELS15: PRINTI "you"
|
||||
?CND14: ZERO? POSSESS? /TRUE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-150 (2866)
|
||||
?ELS21: CALL ZMEMQ,OBJ,COUPLE-TABLE
|
||||
ZERO? STACK /?ELS39
|
||||
ZERO? POSSESS? /?ELS42
|
||||
ZERO? CAP /?ELS46
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-152 (2886)
|
||||
?ELS13: CALL ZMEMQ,OBJ,COUPLE-TABLE
|
||||
ZERO? STACK /?ELS24
|
||||
ZERO? POSSESS? /?ELS26
|
||||
ZERO? CAP /?ELS28
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-156 (2996)
|
||||
?ELS46: PRINTI "their"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-158 (3016)
|
||||
?ELS28: PRINTI "their"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-158 (3029)
|
||||
?ELS42: ZERO? CAP /?ELS58
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-160 (3049)
|
||||
?ELS26: ZERO? CAP /?ELS34
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-161 (3081)
|
||||
?ELS58: PRINTI "them"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-163 (3101)
|
||||
?ELS34: PRINTI "them"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-163 (3113)
|
||||
?ELS39: FSET? OBJ,FEMALE \?ELS67
|
||||
ZERO? CAP /?ELS70
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-165 (3133)
|
||||
?ELS24: FSET? OBJ,FEMALE \?ELS39
|
||||
ZERO? CAP /?ELS41
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-167 (3191)
|
||||
?ELS70: PRINTI "her"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-169 (3211)
|
||||
?ELS41: PRINTI "her"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-169 (3222)
|
||||
?ELS67: ZERO? POSSESS? /?ELS79
|
||||
ZERO? CAP /?ELS83
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-171 (3242)
|
||||
?ELS39: ZERO? POSSESS? /?ELS46
|
||||
ZERO? CAP /?ELS48
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-173 (3298)
|
||||
?ELS83: PRINTI "his"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-175 (3318)
|
||||
?ELS48: PRINTI "his"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-175 (3329)
|
||||
?ELS79: ZERO? CAP /?ELS95
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-177 (3349)
|
||||
?ELS46: ZERO? CAP /?ELS54
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-178 (3380)
|
||||
?ELS95: PRINTI "him"
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-180 (3400)
|
||||
?ELS54: PRINTI "him"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-189 (3567)
|
||||
ZERO? THIS /?ELS3
|
||||
ZERO? CNT \?ELS3
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-191 (3587)
|
||||
ZERO? THIS /?ELS2
|
||||
ZERO? CNT \?ELS2
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-193 (3635)
|
||||
?ELS3: SUB L,CNT
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-195 (3655)
|
||||
?ELS2: SUB L,CNT
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-200 (3765)
|
||||
EQUAL? CNT,L \?CND8
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-202 (3785)
|
||||
EQUAL? CNT,L \?CND4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MACROS.ZAP.1, 1-202 (3800)
|
||||
?CND8: PUT FROB,0,CNT
|
||||
**** FILE PS:<SWG>MACROS.ZAP.3, 1-204 (3820)
|
||||
?CND4: PUT FROB,0,CNT
|
||||
***************
|
||||
|
|
@ -0,0 +1,270 @@
|
|||
|
||||
|
||||
.FUNCT START-SENTENCE,OBJ,INV?=0
|
||||
CALL2 THIS-IS-IT,OBJ
|
||||
EQUAL? OBJ,PLAYER \?ELS3
|
||||
PRINTI "You"
|
||||
RTRUE
|
||||
?ELS3: EQUAL? OBJ,POCKET \?ELS7
|
||||
PRINTI "Your pocket"
|
||||
RTRUE
|
||||
?ELS7: EQUAL? OBJ,TICKET \?ELS11
|
||||
PRINTI "Your ticket"
|
||||
RTRUE
|
||||
?ELS11: EQUAL? OBJ,PASSPORT \?ELS15
|
||||
PRINTI "Your passport"
|
||||
RTRUE
|
||||
?ELS15: EQUAL? OBJ,HEAD \?ELS19
|
||||
PRINTI "Your head"
|
||||
RTRUE
|
||||
?ELS19: EQUAL? OBJ,HANDS \?CND1
|
||||
PRINTI "Your hands"
|
||||
RTRUE
|
||||
?CND1: FSET? OBJ,NARTICLEBIT /?CND26
|
||||
FSET? OBJ,PERSONBIT \?THN32
|
||||
FSET? OBJ,SEENBIT \?ELS31
|
||||
?THN32: PRINTI "The "
|
||||
JUMP ?CND26
|
||||
?ELS31: FSET? OBJ,VOWELBIT \?ELS37
|
||||
PRINTI "An "
|
||||
JUMP ?CND26
|
||||
?ELS37: PRINTI "A "
|
||||
?CND26: FSET? OBJ,PERSONBIT \?CND44
|
||||
FSET OBJ,SEENBIT
|
||||
?CND44: PRINTD OBJ
|
||||
ZERO? INV? /FALSE
|
||||
IN? BRIEFCASE,OBJ \FALSE
|
||||
FSET? BRIEFCASE,SEENBIT /FALSE
|
||||
FSET BRIEFCASE,SEENBIT
|
||||
PRINTI ", carrying"
|
||||
CALL2 HIM-HER-IT,BRIEFCASE
|
||||
PRINTI ","
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT PRINTT,OBJ
|
||||
EQUAL? OBJ,TURN \?ELS5
|
||||
LESS? 1,P-NUMBER \?ELS5
|
||||
PRINTI " "
|
||||
PRINTN P-NUMBER
|
||||
PRINTI " minutes"
|
||||
RTRUE
|
||||
?ELS5: EQUAL? OBJ,INTNUM \?ELS11
|
||||
ZERO? P-DOLLAR-FLAG /?ELS11
|
||||
PRINTI " that amount"
|
||||
RTRUE
|
||||
?ELS11: FSET? OBJ,WINDOWBIT \?ELS17
|
||||
PRINTI " the window"
|
||||
RTRUE
|
||||
?ELS17: CALL2 THE?,OBJ
|
||||
PRINTI " "
|
||||
PRINTD OBJ
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT THE?,OBJ
|
||||
FSET? OBJ,NARTICLEBIT /?CND1
|
||||
FSET? OBJ,PERSONBIT \?THN7
|
||||
FSET? OBJ,SEENBIT \?ELS6
|
||||
?THN7: PRINTI " the"
|
||||
JUMP ?CND1
|
||||
?ELS6: FSET? OBJ,VOWELBIT \?ELS12
|
||||
PRINTI " an"
|
||||
JUMP ?CND1
|
||||
?ELS12: PRINTI " a"
|
||||
?CND1: FSET? OBJ,PERSONBIT \FALSE
|
||||
FSET OBJ,SEENBIT
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT PRINTA,O
|
||||
EQUAL? O,INTNUM \?ELS3
|
||||
ZERO? P-DOLLAR-FLAG /?ELS3
|
||||
PRINTI "money"
|
||||
RTRUE
|
||||
?ELS3: FSET? O,NARTICLEBIT \?ELS9
|
||||
JUMP ?CND1
|
||||
?ELS9: FSET? O,VOWELBIT \?ELS13
|
||||
PRINTI "an "
|
||||
JUMP ?CND1
|
||||
?ELS13: PRINTI "a "
|
||||
?CND1: PRINTD O
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT NO-PRONOUN?,OBJ,CAP=0
|
||||
EQUAL? OBJ,PLAYER /FALSE
|
||||
FSET? OBJ,PERSONBIT /?ELS5
|
||||
EQUAL? OBJ,P-IT-OBJECT \?CND1
|
||||
FSET? IT,TOUCHBIT \?CND1
|
||||
RFALSE
|
||||
?ELS5: FSET? OBJ,FEMALE \?ELS12
|
||||
EQUAL? OBJ,P-HER-OBJECT \?CND1
|
||||
FSET? HER,TOUCHBIT \?CND1
|
||||
RFALSE
|
||||
?ELS12: FSET? OBJ,PLURALBIT \?ELS19
|
||||
EQUAL? OBJ,P-THEM-OBJECT \?CND1
|
||||
FSET? THEM,TOUCHBIT \?CND1
|
||||
RFALSE
|
||||
?ELS19: EQUAL? OBJ,P-HIM-OBJECT \?CND1
|
||||
FSET? HIM,TOUCHBIT /FALSE
|
||||
?CND1: ZERO? CAP \?ELS34
|
||||
CALL2 PRINTT,OBJ
|
||||
RTRUE
|
||||
?ELS34: CALL2 ONE?,CAP
|
||||
ZERO? STACK /TRUE
|
||||
CALL2 START-SENTENCE,OBJ
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT HE-SHE-IT,OBJ,CAP=0,VERB=0
|
||||
CALL NO-PRONOUN?,OBJ,CAP
|
||||
ZERO? STACK /?ELS3
|
||||
JUMP ?CND1
|
||||
?ELS3: FSET? OBJ,PERSONBIT /?ELS5
|
||||
ZERO? CAP \?ELS8
|
||||
PRINTI " it"
|
||||
JUMP ?CND1
|
||||
?ELS8: CALL2 ONE?,CAP
|
||||
ZERO? STACK /?CND1
|
||||
PRINTI "It"
|
||||
JUMP ?CND1
|
||||
?ELS5: EQUAL? OBJ,PLAYER \?ELS16
|
||||
ZERO? CAP \?ELS19
|
||||
PRINTI " you"
|
||||
JUMP ?CND1
|
||||
?ELS19: CALL2 ONE?,CAP
|
||||
ZERO? STACK /?CND1
|
||||
PRINTI "You"
|
||||
JUMP ?CND1
|
||||
?ELS16: FSET? OBJ,FEMALE \?ELS27
|
||||
ZERO? CAP \?ELS30
|
||||
PRINTI " she"
|
||||
JUMP ?CND1
|
||||
?ELS30: CALL2 ONE?,CAP
|
||||
ZERO? STACK /?CND1
|
||||
PRINTI "She"
|
||||
JUMP ?CND1
|
||||
?ELS27: FSET? OBJ,PLURALBIT \?ELS38
|
||||
ZERO? CAP \?ELS41
|
||||
PRINTI " they"
|
||||
JUMP ?CND1
|
||||
?ELS41: CALL2 ONE?,CAP
|
||||
ZERO? STACK /?CND1
|
||||
PRINTI "They"
|
||||
JUMP ?CND1
|
||||
?ELS38: ZERO? CAP \?ELS52
|
||||
PRINTI " he"
|
||||
JUMP ?CND1
|
||||
?ELS52: CALL2 ONE?,CAP
|
||||
ZERO? STACK /?CND1
|
||||
PRINTI "He"
|
||||
?CND1: ZERO? VERB /FALSE
|
||||
PRINTC 32
|
||||
EQUAL? OBJ,PLAYER /?THN70
|
||||
FSET? OBJ,PLURALBIT \?ELS69
|
||||
?THN70: EQUAL? VERB,STR?1 \?ELS76
|
||||
PRINTI "are"
|
||||
RTRUE
|
||||
?ELS76: EQUAL? VERB,STR?2 \?ELS80
|
||||
PRINTI "have"
|
||||
RTRUE
|
||||
?ELS80: PRINT VERB
|
||||
RTRUE
|
||||
?ELS69: PRINT VERB
|
||||
EQUAL? VERB,STR?3,STR?4,STR?5 \?CND91
|
||||
PRINTI "e"
|
||||
?CND91: EQUAL? VERB,STR?1,STR?2 /FALSE
|
||||
PRINTI "s"
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT ONE?,NUM
|
||||
EQUAL? NUM,1,TRUE-VALUE /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT HIM-HER-IT,OBJ,CAP=0,POSSESS?=0
|
||||
CALL NO-PRONOUN?,OBJ,CAP
|
||||
ZERO? STACK /?ELS3
|
||||
ZERO? POSSESS? /TRUE
|
||||
PRINTI "'s"
|
||||
RTRUE
|
||||
?ELS3: FSET? OBJ,PERSONBIT /?ELS11
|
||||
ZERO? CAP \?ELS14
|
||||
PRINTI " it"
|
||||
JUMP ?CND12
|
||||
?ELS14: PRINTI "It"
|
||||
?CND12: ZERO? POSSESS? /TRUE
|
||||
PRINTI "s"
|
||||
RTRUE
|
||||
?ELS11: EQUAL? OBJ,PLAYER \?ELS28
|
||||
ZERO? CAP /?ELS31
|
||||
PRINTI "You"
|
||||
JUMP ?CND29
|
||||
?ELS31: PRINTI " you"
|
||||
?CND29: ZERO? POSSESS? /TRUE
|
||||
PRINTI "r"
|
||||
RTRUE
|
||||
?ELS28: FSET? OBJ,PLURALBIT \?ELS46
|
||||
ZERO? POSSESS? /?ELS49
|
||||
ZERO? CAP \?ELS53
|
||||
PRINTI " their"
|
||||
RTRUE
|
||||
?ELS53: PRINTI "Their"
|
||||
RTRUE
|
||||
?ELS49: ZERO? CAP \?ELS64
|
||||
PRINTI " them"
|
||||
RTRUE
|
||||
?ELS64: PRINTI "Them"
|
||||
RTRUE
|
||||
?ELS46: FSET? OBJ,FEMALE \?ELS72
|
||||
ZERO? CAP \?ELS75
|
||||
PRINTI " her"
|
||||
RTRUE
|
||||
?ELS75: PRINTI "Her"
|
||||
RTRUE
|
||||
?ELS72: ZERO? POSSESS? /?ELS86
|
||||
ZERO? CAP \?ELS90
|
||||
PRINTI " his"
|
||||
RTRUE
|
||||
?ELS90: PRINTI "His"
|
||||
RTRUE
|
||||
?ELS86: ZERO? CAP \?ELS101
|
||||
PRINTI " him"
|
||||
RTRUE
|
||||
?ELS101: PRINTI "Him"
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT PICK-ONE-NEW,FROB,THIS=0,L,CNT,RND,MSG,RFROB
|
||||
GET FROB,0 >L
|
||||
GET FROB,1 >CNT
|
||||
DEC 'L
|
||||
ADD FROB,2 >FROB
|
||||
MUL CNT,2
|
||||
ADD FROB,STACK >RFROB
|
||||
ZERO? THIS /?ELS3
|
||||
ZERO? CNT \?ELS3
|
||||
SET 'RND,THIS
|
||||
JUMP ?CND1
|
||||
?ELS3: SUB L,CNT
|
||||
RANDOM STACK >RND
|
||||
?CND1: GET RFROB,RND >MSG
|
||||
GET RFROB,1
|
||||
PUT RFROB,RND,STACK
|
||||
PUT RFROB,1,MSG
|
||||
INC 'CNT
|
||||
EQUAL? CNT,L \?CND8
|
||||
SET 'CNT,0
|
||||
?CND8: PUT FROB,0,CNT
|
||||
RETURN MSG
|
||||
|
||||
|
||||
.FUNCT PICK-ONE,FROB
|
||||
GET FROB,0
|
||||
RANDOM STACK
|
||||
GET FROB,STACK
|
||||
RSTACK
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,347 @@
|
|||
"MACROS for CHECKPOINT
|
||||
Copyright (c) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<SETG C-ENABLED? 0>
|
||||
<SETG C-ENABLED 1>
|
||||
<SETG C-DISABLED 0>
|
||||
|
||||
<ZSTR-OFF>
|
||||
|
||||
<DEFMAC TELL ("ARGS" A)
|
||||
<FORM PROG ()
|
||||
!<MAPF ,LIST
|
||||
<FUNCTION ("AUX" E P O)
|
||||
<COND (<EMPTY? .A> <MAPSTOP>)
|
||||
(<SET E <NTH .A 1>>
|
||||
<SET A <REST .A>>)>
|
||||
<COND (<TYPE? .E ATOM>
|
||||
<COND (<OR <=? <SET P <SPNAME .E>>
|
||||
"CRLF">
|
||||
<=? .P "CR">>
|
||||
<MAPRET '<CRLF>>)
|
||||
(<EMPTY? .A>
|
||||
<ERROR INDICATOR-AT-END? .E>)
|
||||
(ELSE
|
||||
<SET O <NTH .A 1>>
|
||||
<SET A <REST .A>>
|
||||
<COND (<OR <=? <SET P <SPNAME .E>>
|
||||
"DESC">
|
||||
<=? .P "D">
|
||||
<=? .P "OBJ">
|
||||
<=? .P "O">>
|
||||
<MAPRET <FORM PRINTD .O>>)
|
||||
(<OR <=? .P "A">
|
||||
<=? .P "AN">>
|
||||
<MAPRET <FORM PRINTA .O>>)
|
||||
(<OR ;<=? .P "T">
|
||||
<=? .P "THE">>
|
||||
<MAPRET <FORM PRINTT .O>>)
|
||||
(<OR ;<=? .P "CT">
|
||||
<=? .P "CTHE">>
|
||||
<MAPRET <FORM START-SENTENCE .O>>)
|
||||
(<=? .P "CHE">
|
||||
<COND (<OR <EMPTY? .A>
|
||||
<NOT <TYPE? <NTH .A 1> ATOM>>>
|
||||
<MAPRET <FORM HE-SHE-IT .O T>>)
|
||||
(T
|
||||
<SET P <SPNAME <NTH .A 1>>>
|
||||
<SET A <REST .A>>
|
||||
<MAPRET <FORM HE-SHE-IT .O T .P>>)>)
|
||||
(<=? .P "HE">
|
||||
<COND (<OR <EMPTY? .A>
|
||||
<NOT <TYPE? <NTH .A 1> ATOM>>>
|
||||
<MAPRET <FORM HE-SHE-IT .O>>)
|
||||
(T
|
||||
<SET P <SPNAME <NTH .A 1>>>
|
||||
<SET A <REST .A>>
|
||||
<MAPRET <FORM HE-SHE-IT .O 0 .P>>)>)
|
||||
(<=? .P "V">
|
||||
<SET P <SPNAME <NTH .A 1>>>
|
||||
<SET A <REST .A>>
|
||||
<MAPRET <FORM HE-SHE-IT .O -1 .P>>)
|
||||
(<=? .P "HIM">
|
||||
<MAPRET <FORM HIM-HER-IT .O>>)
|
||||
;(<=? .P "CHIM">
|
||||
<MAPRET <FORM HIM-HER-IT .O T>>)
|
||||
(<=? .P "HIS">
|
||||
<MAPRET <FORM HIM-HER-IT .O '<> T>>)
|
||||
(<=? .P "CHIS">
|
||||
<MAPRET <FORM HIM-HER-IT .O T T>>)
|
||||
(<OR <=? .P "NUM">
|
||||
<=? .P "N">>
|
||||
<MAPRET <FORM PRINTN .O>>)
|
||||
(<OR ;<=? .P "CHAR">
|
||||
;<=? .P "CHR">
|
||||
<=? .P "C">>
|
||||
<MAPRET <FORM PRINTC <ASCII .O>>>)
|
||||
(ELSE
|
||||
<MAPRET <FORM PRINT <FORM GETP .O .E>>>)>)>)
|
||||
(<TYPE? .E STRING ZSTRING>
|
||||
<COND ;(<==? 1 <LENGTH .E>>
|
||||
<MAPRET <FORM PRINTC <ASCII <1 .E>>>>)
|
||||
(T <MAPRET <FORM PRINTI .E>>)>)
|
||||
(<TYPE? .E FORM LVAL GVAL>
|
||||
<MAPRET <FORM PRINT .E>>)
|
||||
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
|
||||
|
||||
<ROUTINE START-SENTENCE (OBJ "OPTIONAL" (INV? <>))
|
||||
<THIS-IS-IT .OBJ>
|
||||
<COND (<EQUAL? .OBJ ,PLAYER> <TELL "You"> <RTRUE>)
|
||||
(<EQUAL? .OBJ ,POCKET> <TELL "Your pocket"> <RTRUE>)
|
||||
(<EQUAL? .OBJ ,TICKET> <TELL "Your ticket"> <RTRUE>)
|
||||
(<EQUAL? .OBJ ,PASSPORT> <TELL "Your passport"> <RTRUE>)
|
||||
(<EQUAL? .OBJ ,HEAD> <TELL "Your head"> <RTRUE>)
|
||||
(<EQUAL? .OBJ ,HANDS> <TELL "Your hands"> <RTRUE>)>
|
||||
<COND (<NOT <FSET? .OBJ ,NARTICLEBIT>>
|
||||
<COND (<OR <NOT <FSET? .OBJ ,PERSONBIT>>
|
||||
<FSET? .OBJ ,SEENBIT>>
|
||||
<TELL "The ">)
|
||||
(<FSET? .OBJ ,VOWELBIT>
|
||||
<TELL "An ">)
|
||||
(T <TELL "A ">)>)>
|
||||
<COND (<FSET? .OBJ ,PERSONBIT>
|
||||
<FSET .OBJ ,SEENBIT>)>
|
||||
<TELL D .OBJ>
|
||||
<COND (<AND .INV?
|
||||
<IN? ,BRIEFCASE .OBJ>
|
||||
<NOT <FSET? ,BRIEFCASE ,SEENBIT>>>
|
||||
<FSET ,BRIEFCASE ,SEENBIT>
|
||||
<TELL ", carrying" HIM ,BRIEFCASE ",">
|
||||
<RTRUE>)>>
|
||||
|
||||
<ROUTINE PRINTT (OBJ)
|
||||
<COND (<AND <EQUAL? .OBJ ,TURN> <L? 1 ,P-NUMBER>>
|
||||
<TELL " " N ,P-NUMBER " minutes">)
|
||||
(<AND <EQUAL? .OBJ ,INTNUM> ,P-DOLLAR-FLAG>
|
||||
<TELL " that amount">)
|
||||
(<FSET? .OBJ ,WINDOWBIT>
|
||||
<TELL " the window">)
|
||||
;(<AND <EQUAL? .OBJ ,P-IT-OBJECT>
|
||||
<FSET? ,IT ,TOUCHBIT>>
|
||||
<TELL " it">
|
||||
<RTRUE>)
|
||||
(T
|
||||
<THE? .OBJ>
|
||||
<TELL " " D .OBJ>)>
|
||||
;<THIS-IS-IT .OBJ>>
|
||||
|
||||
<ROUTINE THE? (OBJ)
|
||||
<COND (<NOT <FSET? .OBJ ,NARTICLEBIT>>
|
||||
<COND (<OR <NOT <FSET? .OBJ ,PERSONBIT>>
|
||||
<FSET? .OBJ ,SEENBIT>>
|
||||
<TELL " the">)
|
||||
(<FSET? .OBJ ,VOWELBIT>
|
||||
<TELL " an">)
|
||||
(T <TELL " a">)>)>
|
||||
<COND (<FSET? .OBJ ,PERSONBIT>
|
||||
<FSET .OBJ ,SEENBIT>)>>
|
||||
|
||||
<ROUTINE PRINTA (O)
|
||||
<COND (<AND <EQUAL? .O ,INTNUM> ,P-DOLLAR-FLAG>
|
||||
<TELL "money">
|
||||
<RTRUE>)
|
||||
(<OR ;<FSET? .O ,PERSONBIT> <FSET? .O ,NARTICLEBIT>> T)
|
||||
(<FSET? .O ,VOWELBIT> <TELL "an ">)
|
||||
(T <TELL "a ">)>
|
||||
<TELL D .O>>
|
||||
|
||||
<ROUTINE NO-PRONOUN? (OBJ "OPTIONAL" (CAP 0))
|
||||
<COND (<EQUAL? .OBJ ,PLAYER>
|
||||
<RFALSE>)
|
||||
(<NOT <FSET? .OBJ ,PERSONBIT>>
|
||||
<COND (<AND <EQUAL? .OBJ ,P-IT-OBJECT>
|
||||
<FSET? ,IT ,TOUCHBIT>>
|
||||
<RFALSE>)>)
|
||||
(<FSET? .OBJ ,FEMALE>
|
||||
<COND (<AND <EQUAL? .OBJ ,P-HER-OBJECT>
|
||||
<FSET? ,HER ,TOUCHBIT>>
|
||||
<RFALSE>)>)
|
||||
(<FSET? .OBJ ,PLURALBIT>
|
||||
<COND (<AND <EQUAL? .OBJ ,P-THEM-OBJECT>
|
||||
<FSET? ,THEM ,TOUCHBIT>>
|
||||
<RFALSE>)>)
|
||||
(T
|
||||
<COND (<AND <EQUAL? .OBJ ,P-HIM-OBJECT>
|
||||
<FSET? ,HIM ,TOUCHBIT>>
|
||||
<RFALSE>)>)>
|
||||
<COND (<ZERO? .CAP> <TELL THE .OBJ>)
|
||||
(<ONE? .CAP> <TELL CTHE .OBJ>)>
|
||||
<RTRUE>>
|
||||
|
||||
<ROUTINE HE-SHE-IT (OBJ "OPTIONAL" (CAP 0) (VERB <>))
|
||||
<COND (<NO-PRONOUN? .OBJ .CAP>
|
||||
T)
|
||||
(<NOT <FSET? .OBJ ,PERSONBIT>>
|
||||
<COND (<ZERO? .CAP> <TELL " it">)
|
||||
(<ONE? .CAP> <TELL "It">)>)
|
||||
(<==? .OBJ ,PLAYER>
|
||||
<COND (<ZERO? .CAP> <TELL " you">)
|
||||
(<ONE? .CAP> <TELL "You">)>)
|
||||
(<FSET? .OBJ ,FEMALE>
|
||||
<COND (<ZERO? .CAP> <TELL " she">)
|
||||
(<ONE? .CAP> <TELL "She">)>)
|
||||
(<FSET? .OBJ ,PLURALBIT>
|
||||
<COND (<ZERO? .CAP> <TELL " they">)
|
||||
(<ONE? .CAP> <TELL "They">)>)
|
||||
(T
|
||||
<COND (<ZERO? .CAP> <TELL " he">)
|
||||
(<ONE? .CAP> <TELL "He">)>)>
|
||||
<COND (.VERB
|
||||
<PRINTC 32>
|
||||
<COND (<OR <EQUAL? .OBJ ,PLAYER>
|
||||
<FSET? .OBJ ,PLURALBIT>>
|
||||
<COND (<=? .VERB "is"> <TELL "are">)
|
||||
(<=? .VERB "has"><TELL "have">)
|
||||
(T <TELL .VERB>)>)
|
||||
(T
|
||||
<TELL .VERB>
|
||||
<COND (<EQUAL? .VERB "do" "kiss" "push">
|
||||
<TELL "e">)>
|
||||
<COND (<NOT <EQUAL? .VERB "is" "has">>
|
||||
<TELL "s">)>)>)>>
|
||||
|
||||
<ROUTINE ONE? (NUM) <EQUAL? .NUM 1 T>>
|
||||
|
||||
<ROUTINE HIM-HER-IT (OBJ "OPTIONAL" (CAP 0) (POSSESS? <>))
|
||||
<COND (<NO-PRONOUN? .OBJ .CAP>
|
||||
<COND (.POSSESS? <TELL "'s">)>)
|
||||
(<NOT <FSET? .OBJ ,PERSONBIT>>
|
||||
<COND (<ZERO? .CAP> <TELL " it">) (T <TELL "It">)>
|
||||
<COND (.POSSESS? <TELL "s">)>)
|
||||
(<==? .OBJ ,PLAYER>
|
||||
<COND (.CAP <TELL "You">) (T <TELL " you">)>
|
||||
<COND (.POSSESS? <TELL "r">)>)
|
||||
(<FSET? .OBJ ,PLURALBIT>
|
||||
<COND (.POSSESS?
|
||||
<COND (<ZERO? .CAP> <TELL " their">)
|
||||
(T <TELL "Their">)>)
|
||||
(T
|
||||
<COND (<ZERO? .CAP> <TELL " them">)
|
||||
(T <TELL "Them">)>)>)
|
||||
(<FSET? .OBJ ,FEMALE>
|
||||
<COND (<ZERO? .CAP> <TELL " her">) (T <TELL "Her">)>)
|
||||
(T
|
||||
<COND (.POSSESS?
|
||||
<COND (<ZERO? .CAP> <TELL " his">)
|
||||
(T <TELL "His">)>)
|
||||
(T
|
||||
<COND (<ZERO? .CAP> <TELL " him">)
|
||||
(T <TELL "Him">)>)>)>
|
||||
<RTRUE>>
|
||||
|
||||
<DEFMAC VERB? ("TUPLE" ATMS "AUX" (O ()) (L ()))
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS>
|
||||
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
|
||||
(ELSE <FORM OR !.O>)>>)>
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS> <RETURN!->)>
|
||||
<SET ATM <NTH .ATMS 1>>
|
||||
<SET L
|
||||
(<CHTYPE <PARSE <STRING "V?"<SPNAME .ATM>>> GVAL>
|
||||
!.L)>
|
||||
<SET ATMS <REST .ATMS>>
|
||||
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
|
||||
<SET O (<FORM EQUAL? ',PRSA !.L> !.O)>
|
||||
<SET L ()>>>
|
||||
|
||||
<DEFMAC DOBJ? ("TUPLE" ATMS "AUX" (O ()) (L ()))
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS>
|
||||
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
|
||||
(ELSE <FORM OR !.O>)>>)>
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS> <RETURN!->)>
|
||||
<SET ATM <NTH .ATMS 1>>
|
||||
<SET L (<CHTYPE .ATM GVAL> !.L)>
|
||||
<SET ATMS <REST .ATMS>>
|
||||
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
|
||||
<SET O (<FORM EQUAL? ',PRSO !.L> !.O)>
|
||||
<SET L ()>>>
|
||||
|
||||
<DEFMAC IOBJ? ("TUPLE" ATMS "AUX" (O ()) (L ()))
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS>
|
||||
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
|
||||
(ELSE <FORM OR !.O>)>>)>
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS> <RETURN!->)>
|
||||
<SET ATM <NTH .ATMS 1>>
|
||||
<SET L (<CHTYPE .ATM GVAL> !.L)>
|
||||
<SET ATMS <REST .ATMS>>
|
||||
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
|
||||
<SET O (<FORM EQUAL? ',PRSI !.L> !.O)>
|
||||
<SET L ()>>>
|
||||
|
||||
<DEFMAC RFATAL ()
|
||||
'<PROG () <PUSH 2> <RSTACK>>>
|
||||
|
||||
<DEFMAC PROB ('BASE?)
|
||||
<FORM NOT <FORM L? .BASE? '<RANDOM 100>>>>
|
||||
|
||||
<ROUTINE PICK-ONE-NEW (FROB "OPTIONAL" (THIS <>) "AUX" L CNT RND MSG RFROB)
|
||||
<SET L <GET .FROB 0>>
|
||||
<SET CNT <GET .FROB 1>>
|
||||
<SET L <- .L 1>>
|
||||
<SET FROB <REST .FROB 2>>
|
||||
<SET RFROB <REST .FROB <* .CNT 2>>>
|
||||
<COND (<AND .THIS <ZERO? .CNT>>
|
||||
<SET RND .THIS>)
|
||||
(T <SET RND <RANDOM <- .L .CNT>>>)>
|
||||
<SET MSG <GET .RFROB .RND>>
|
||||
<PUT .RFROB .RND <GET .RFROB 1>>
|
||||
<PUT .RFROB 1 .MSG>
|
||||
<SET CNT <+ .CNT 1>>
|
||||
<COND (<==? .CNT .L> <SET CNT 0>)>
|
||||
<PUT .FROB 0 .CNT>
|
||||
.MSG>
|
||||
|
||||
<ROUTINE PICK-ONE (FROB) <GET .FROB <RANDOM <GET .FROB 0>>>>
|
||||
|
||||
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
|
||||
|
||||
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
|
||||
|
||||
;<DEFMAC FLAMING? ('OBJ)
|
||||
<FORM AND <FORM FSET? .OBJ ',FLAMEBIT>
|
||||
<FORM FSET? .OBJ ',ONBIT>>>
|
||||
|
||||
<DEFMAC OPENABLE? ('OBJ)
|
||||
<FORM OR <FORM FSET? .OBJ ',DOORBIT>
|
||||
<FORM FSET? .OBJ ',CONTBIT>>>
|
||||
|
||||
<DEFMAC ABS ('NUM)
|
||||
<FORM COND (<FORM L? .NUM 0> <FORM - 0 .NUM>)
|
||||
(T .NUM)>>
|
||||
|
||||
<DEFMAC GET-REXIT-ROOM ('PT)
|
||||
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
<FORM GET .PT ',REXIT>)
|
||||
(T <FORM GETB .PT ',REXIT>)>>
|
||||
|
||||
<DEFMAC GET-DOOR-OBJ ('PT)
|
||||
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
<FORM GET .PT ',DEXITOBJ>)
|
||||
(T <FORM GETB .PT ',DEXITOBJ>)>>
|
||||
|
||||
<DEFMAC GET/B ('TBL 'PTR)
|
||||
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
<FORM GET .TBL .PTR>)
|
||||
(T <FORM GETB .TBL .PTR>)>>
|
||||
|
||||
<DEFMAC RMGL-SIZE ('TBL)
|
||||
<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
<FORM - <FORM / <FORM PTSIZE .TBL> 2> 1>)
|
||||
(T <FORM - <FORM PTSIZE .TBL> 1>)>>
|
||||
|
||||
<DEFMAC GT-O ('OBJ)
|
||||
<FORM GET ',GOAL-TABLES <FORM GETP .OBJ ',P?CHARACTER>>>
|
||||
|
||||
<DEFMAC HARD? () '<EQUAL? ,VARIATION 2 4>>
|
||||
<DEFMAC SPY? () '<EQUAL? ,VARIATION 3 4>>
|
||||
|
||||
<ZSTR-ON>
|
||||
|
||||
<SETG PLUS-MODE T>
|
||||
|
||||
<OBJECT LAST-OBJECT> "for MOBY-FIND"
|
|
@ -0,0 +1,406 @@
|
|||
|
||||
;COMPARISON OF PS:<SWG>MAIN.ZAP.1 AND PS:<SWG>MAIN.ZAP.3
|
||||
;OPTIONS ARE /1
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-36 (832)
|
||||
EQUAL? N,W?SPY,W?S \?ELS11
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-36 (832)
|
||||
EQUAL? N,W?SPY,W?S \?ELS10
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-39 (893)
|
||||
?ELS11: SET 'VARIATION,1
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-39 (893)
|
||||
?ELS10: SET 'VARIATION,1
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-44 (1074)
|
||||
EQUAL? N,W?L,W?LONG \?CND23
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-44 (1074)
|
||||
EQUAL? N,W?L,W?LONG \?CND18
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-47 (1145)
|
||||
?CND23: CALL TAKE-YOUR-PLACES
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-47 (1145)
|
||||
?CND18: CALL TAKE-YOUR-PLACES
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-51 (1227)
|
||||
EQUAL? EGO,BAD-SPY \?ELS28
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-51 (1227)
|
||||
EQUAL? EGO,BAD-SPY \?ELS21
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-66 (2493)
|
||||
JUMP ?CND26
|
||||
?ELS28: PRINTI "With your business deal behind you, you want only to get out of this bleak corner of Eastern Europe. The frontier is now only a few hours away, and from there it's not far to Vienna, and civilization....
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-66 (2493)
|
||||
JUMP ?CND20
|
||||
?ELS21: PRINTI "With your business deal behind you, you want only to get out of this bleak corner of Eastern Europe. The frontier is now only a few hours away, and from there it's not far to Vienna, and civilization....
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-74 (3456)
|
||||
ZERO? HARD? /?ELS37
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-74 (3456)
|
||||
ZERO? HARD? /?ELS27
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-83 (3701)
|
||||
JUMP ?CND35
|
||||
?ELS37: PRINTI "deliver a "
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-83 (3701)
|
||||
JUMP ?CND26
|
||||
?ELS27: PRINTI "deliver a "
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-86 (3762)
|
||||
?CND35: PRINTI " to our special agent in Gola. An enemy agent spotted me on the train, and I only barely managed to escape."" He groans softly, examining his wound.
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-86 (3762)
|
||||
?CND26: PRINTI " to our special agent in Gola. An enemy agent spotted me on the train, and I only barely managed to escape."" He groans softly, examining his wound.
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-89 (4249)
|
||||
ZERO? HARD? /?ELS49
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-89 (4249)
|
||||
ZERO? HARD? /?ELS35
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-91 (4293)
|
||||
JUMP ?CND47
|
||||
?ELS49: PRINTD STATION-GOLA
|
||||
?CND47: PRINTI " is "
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-91 (4293)
|
||||
JUMP ?CND34
|
||||
?ELS35: PRINTD STATION-GOLA
|
||||
?CND34: PRINTI " is "
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-96 (4417)
|
||||
ZERO? HARD? \?CND57
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-96 (4417)
|
||||
ZERO? HARD? \?CND40
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-99 (4495)
|
||||
EQUAL? PASSWORD,CAMERA,HANKY,SCARF \?CND62
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-99 (4495)
|
||||
EQUAL? PASSWORD,CAMERA,HANKY,SCARF \?CND44
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-101 (4553)
|
||||
?CND62: PRINTI " '"
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-101 (4553)
|
||||
?CND44: PRINTI " '"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-104 (4606)
|
||||
?CND57: PRINTI "...."" Then he stops and listens. Before you can say anything, he checks the corridor and races out.
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-104 (4606)
|
||||
?CND40: PRINTI "...."" Then he stops and listens. Before you can say anything, he checks the corridor and races out.
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-109 (4767)
|
||||
?CND26: CALL V-VERSION
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-109 (4767)
|
||||
?CND20: CALL V-VERSION
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-122 (5009)
|
||||
?PRG6: GET P-LEXV,L >N
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-122 (5009)
|
||||
?PRG5: GET P-LEXV,L >N
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-124 (5059)
|
||||
ZERO? STACK \?CND8
|
||||
JUMP ?REP7
|
||||
?CND8: ADD L,P-LEXELEN >L
|
||||
JUMP ?PRG6
|
||||
?REP7: EQUAL? N,WD1,WD2 /?THN14
|
||||
EQUAL? N,WD3,WD4 \?CND11
|
||||
?THN14: RETURN N
|
||||
?CND11: CALL WT?,N,PS?VERB,P1?VERB >N
|
||||
EQUAL? N,ACT?QUIT \?ELS18
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-124 (5059)
|
||||
ZERO? STACK \?CND7
|
||||
JUMP ?REP6
|
||||
?CND7: ADD L,P-LEXELEN >L
|
||||
JUMP ?PRG5
|
||||
?REP6: EQUAL? N,WD1,WD2 /?THN10
|
||||
EQUAL? N,WD3,WD4 \?CND9
|
||||
?THN10: RETURN N
|
||||
?CND9: CALL WT?,N,PS?VERB,P1?VERB >N
|
||||
EQUAL? N,ACT?QUIT \?ELS13
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-137 (5321)
|
||||
?ELS18: EQUAL? N,ACT?RESTART \?ELS22
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-137 (5319)
|
||||
?ELS13: EQUAL? N,ACT?RESTART \?ELS16
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-142 (5405)
|
||||
?ELS22: EQUAL? N,ACT?$VERIFY \?ELS26
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-142 (5403)
|
||||
?ELS16: EQUAL? N,ACT?$VERIFY \?ELS19
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-145 (5472)
|
||||
?ELS26: EQUAL? N,ACT?RELEASE \?ELS28
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-145 (5470)
|
||||
?ELS19: EQUAL? N,ACT?RELEASE \?ELS20
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-148 (5539)
|
||||
?ELS28: EQUAL? N,ACT?RESTORE \?CND16
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-148 (5537)
|
||||
?ELS20: EQUAL? N,ACT?RESTORE \?CND12
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-154 (5649)
|
||||
?CND16: CALL PLEASE-TYPE-OR,WD1,WD2
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-154 (5647)
|
||||
?CND12: CALL PLEASE-TYPE-OR,WD1,WD2
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-171 (5918)
|
||||
GRTR? N,L \?ELS5
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-171 (5916)
|
||||
GRTR? N,L \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-173 (5948)
|
||||
?ELS5: RETURN N
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-173 (5946)
|
||||
?ELS4: RETURN N
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-186 (6332)
|
||||
EQUAL? VARIATION,1,2 \?ELS3
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-186 (6330)
|
||||
EQUAL? VARIATION,1,2 \?ELS2
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-197 (6623)
|
||||
?ELS3: EQUAL? VARIATION,3,4 \?CND1
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-197 (6621)
|
||||
?ELS2: EQUAL? VARIATION,3,4 \?CND1
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-207 (6873)
|
||||
?PRG6: IGRTR? 'N,L \?ELS10
|
||||
JUMP ?REP7
|
||||
?ELS10: GET BRIEFCASE-TBL,N >P
|
||||
ZERO? P /?PRG6
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-207 (6871)
|
||||
?PRG4: IGRTR? 'N,L \?ELS7
|
||||
JUMP ?REP5
|
||||
?ELS7: GET BRIEFCASE-TBL,N >P
|
||||
ZERO? P /?PRG4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-212 (6982)
|
||||
JUMP ?PRG6
|
||||
?REP7: PUTP BAD-SPY,P?ACTION,TRAVELER-F
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-212 (6978)
|
||||
JUMP ?PRG4
|
||||
?REP5: PUTP BAD-SPY,P?ACTION,TRAVELER-F
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-230 (7487)
|
||||
ZERO? HARD? /?CND13
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-230 (7483)
|
||||
ZERO? HARD? /?CND9
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-236 (7657)
|
||||
EQUAL? PICKPOCKET,BAD-SPY \?CND13
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-236 (7652)
|
||||
EQUAL? PICKPOCKET,BAD-SPY \?CND9
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-239 (7737)
|
||||
?CND13: CALL SET-PASSES
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-239 (7731)
|
||||
?CND9: CALL SET-PASSES
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-266 (8263)
|
||||
?CND3: ZERO? NEW? \?ELS8
|
||||
EQUAL? L,COMPARTMENT-START \?ELS8
|
||||
EQUAL? N,CAR-START \?ELS8
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-266 (8256)
|
||||
?CND3: ZERO? NEW? \?ELS6
|
||||
EQUAL? L,COMPARTMENT-START \?ELS6
|
||||
EQUAL? N,CAR-START \?ELS6
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-270 (8362)
|
||||
JUMP ?CND6
|
||||
?ELS8: CALL ZMEMQ,L,CAR-ROOMS-REST
|
||||
ZERO? STACK /?CND6
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-270 (8355)
|
||||
JUMP ?CND5
|
||||
?ELS6: CALL ZMEMQ,L,CAR-ROOMS-REST
|
||||
ZERO? STACK /?CND5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-274 (8462)
|
||||
ZERO? STACK \?THN16
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-274 (8455)
|
||||
ZERO? STACK \?THN10
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-276 (8505)
|
||||
ZERO? STACK /?ELS15
|
||||
?THN16: GETPT L,P?OUT
|
||||
GET STACK,REXIT >L
|
||||
JUMP ?CND6
|
||||
?ELS15: EQUAL? N,CAR-HERE \?ELS19
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-276 (8498)
|
||||
ZERO? STACK /?ELS11
|
||||
?THN10: GETPT L,P?OUT
|
||||
CALL GET-REXIT-ROOM,STACK >L
|
||||
JUMP ?CND5
|
||||
?ELS11: EQUAL? N,CAR-HERE \?ELS12
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-283 (8669)
|
||||
JUMP ?CND6
|
||||
?ELS19: CALL FIND-FLAG-LG,L,DOORBIT
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-283 (8672)
|
||||
JUMP ?CND5
|
||||
?ELS12: CALL FIND-FLAG-LG,L,DOORBIT
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-286 (8741)
|
||||
?CND6: CALL TAKE-YOUR-PLACE-TEST,OBJ,STA-ONLY?
|
||||
ZERO? STACK /?CND22
|
||||
EQUAL? N,CAR-HERE \?ELS27
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-286 (8744)
|
||||
?CND5: CALL TAKE-YOUR-PLACE-TEST,OBJ,STA-ONLY?
|
||||
ZERO? STACK /?CND13
|
||||
EQUAL? N,CAR-HERE \?ELS16
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-290 (8852)
|
||||
JUMP ?CND25
|
||||
?ELS27: GETP L,P?CAR >X
|
||||
ZERO? X /?CND25
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-290 (8855)
|
||||
JUMP ?CND15
|
||||
?ELS16: GETP L,P?CAR >X
|
||||
ZERO? X /?CND15
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-294 (8922)
|
||||
?CND25: PUTP OBJ,P?CAR,N
|
||||
?CND22: ZERO? NEW? /?CND30
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-294 (8925)
|
||||
?CND15: PUTP OBJ,P?CAR,N
|
||||
?CND13: ZERO? NEW? /?CND18
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-297 (9008)
|
||||
ZERO? X /?CND34
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-297 (9011)
|
||||
ZERO? X /?CND20
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-301 (9096)
|
||||
?CND34: EQUAL? OBJ,BAD-SPY /?CND30
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-301 (9099)
|
||||
?CND20: EQUAL? OBJ,BAD-SPY /?CND18
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-305 (9196)
|
||||
?CND30: DLESS? 'P,1 \?PRG1
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-305 (9199)
|
||||
?CND18: DLESS? 'P,1 \?PRG1
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-315 (9422)
|
||||
ZERO? STA-ONLY? /?ELS10
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-315 (9425)
|
||||
ZERO? STA-ONLY? /?ELS7
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-317 (9459)
|
||||
?ELS10: ZERO? X /TRUE
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-317 (9461)
|
||||
?ELS7: ZERO? X /TRUE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-322 (9518)
|
||||
EQUAL? L,GAS-CAR-RM \?ELS3
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-322 (9519)
|
||||
EQUAL? L,GAS-CAR-RM \?ELS2
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-324 (9572)
|
||||
?ELS3: EQUAL? N,CAR-HERE /?CND1
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-324 (9573)
|
||||
?ELS2: EQUAL? N,CAR-HERE /?CND1
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-353 (10089)
|
||||
ZERO? FIRST /?ELS6
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-353 (10090)
|
||||
ZERO? FIRST /?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-359 (10182)
|
||||
JUMP ?CND4
|
||||
?ELS6: PRINTI "Location:"
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-359 (10183)
|
||||
JUMP ?CND3
|
||||
?ELS4: PRINTI "Location:"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-363 (10252)
|
||||
?CND4: BUFOUT TRUE-VALUE
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-363 (10253)
|
||||
?CND3: BUFOUT TRUE-VALUE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-393 (10779)
|
||||
EQUAL? LAST-PLAYER-LOC,HERE \?THN13
|
||||
EQUAL? PLAYER-NOT-FACING-OLD,PLAYER-NOT-FACING /?CND10
|
||||
?THN13: SET 'LAST-PLAYER-LOC,HERE
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-393 (10780)
|
||||
EQUAL? LAST-PLAYER-LOC,HERE \?THN7
|
||||
EQUAL? PLAYER-NOT-FACING-OLD,PLAYER-NOT-FACING /?CND6
|
||||
?THN7: SET 'LAST-PLAYER-LOC,HERE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-399 (10997)
|
||||
ZERO? PLAYER-NOT-FACING /?CND17
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-399 (10995)
|
||||
ZERO? PLAYER-NOT-FACING /?CND11
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-403 (11107)
|
||||
?CND17: DIROUT D-NORMAL
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-403 (11105)
|
||||
?CND11: DIROUT D-NORMAL
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-407 (11183)
|
||||
ZERO? PLAYER-NOT-FACING /?CND24
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-407 (11181)
|
||||
ZERO? PLAYER-NOT-FACING /?CND17
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-410 (11257)
|
||||
?CND24: SUB 51,LEN
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-410 (11255)
|
||||
?CND17: SUB 51,LEN
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>MAIN.ZAP.1, 1-412 (11303)
|
||||
?CND10: CURSET 1,68
|
||||
**** FILE PS:<SWG>MAIN.ZAP.3, 1-412 (11301)
|
||||
?CND6: CURSET 1,68
|
||||
***************
|
||||
|
|
@ -0,0 +1,474 @@
|
|||
|
||||
|
||||
.FUNCT GO
|
||||
START::
|
||||
|
||||
?FCN: CALL2 INIT-STATUS-LINE,TRUE-VALUE
|
||||
SET 'LIT,TRUE-VALUE
|
||||
PUTB P-LEXV,0,59
|
||||
PUTB YES-LEXV,0,4
|
||||
SET 'WINNER,PLAYER
|
||||
CALL QUEUE,I-PROMPT,1
|
||||
PUT STACK,0,1
|
||||
CALL1 INTRO
|
||||
FSET HERE,SEENBIT
|
||||
CALL1 START-MOVEMENT
|
||||
CALL1 V-LOOK
|
||||
CALL1 MAIN-LOOP
|
||||
JUMP ?FCN
|
||||
|
||||
|
||||
.FUNCT INTRO,N
|
||||
SET 'HERE,GAME
|
||||
PRINTI "Copyright (c) 1985 Infocom, Inc. All rights reserved.
|
||||
|
||||
Welcome to "
|
||||
PRINTD GAME
|
||||
PRINTI " (TM) - interactive fiction from Infocom!
|
||||
|
||||
"
|
||||
PRINTI "[Note to testers: this story has the command GO TO, and the concept of not being able to see things behind your back. The unit of currency in this story is the Frotzian slimpuk, whose symbol is """
|
||||
PRINTC CURRENCY-SYMBOL
|
||||
PRINTI """.
|
||||
|
||||
Messages in square brackets [] will not be in the final release.
|
||||
Remember: you can shorten your words only to NINE (9) letters.
|
||||
But you can use C for COMPARTMENT, V for VESTIBULE, and F for FORWARD.]
|
||||
|
||||
"
|
||||
PRINTI "Do you want the viewpoint of the traveler or the spy? "
|
||||
CALL READ-WORD,W?TRAVELER,W?SPY,W?T,W?S,W?TRAVELLER >N
|
||||
EQUAL? N,W?SPY,W?S \?ELS11
|
||||
SET 'VARIATION,3
|
||||
JUMP ?CND9
|
||||
?ELS11: SET 'VARIATION,1
|
||||
?CND9: PRINTI "Do you want the short variation or the long one? "
|
||||
CALL READ-WORD,W?SHORT,W?LONG,W?S,W?L >N
|
||||
PRINTI "Then let the story begin!"
|
||||
CRLF
|
||||
EQUAL? N,W?L,W?LONG \?CND23
|
||||
INC 'VARIATION
|
||||
CALL ZMEMZ,MCGUFFIN,BRIEFCASE-TBL
|
||||
PUT BRIEFCASE-TBL,STACK,0
|
||||
FSET MCGUFFIN,NDESCBIT
|
||||
FCLEAR MCGUFFIN,TAKEBIT
|
||||
?CND23: CALL1 TAKE-YOUR-PLACES
|
||||
EQUAL? VARIATION,2,4 \?CND26
|
||||
MOVE MCGUFFIN,LIMBO-REAR
|
||||
?CND26: CALL1 START-TRAIN
|
||||
CLEAR 0
|
||||
EQUAL? VARIATION,3,4 \?ELS31
|
||||
REMOVE BOND
|
||||
MOVE BOND-OTHER,HERE
|
||||
CALL QUEUE,I-BOND-OTHER,-1
|
||||
PUT STACK,0,1
|
||||
PRINTI "Why did you want to be a spy anyway? You could have had a nice restful job, like an air-traffic controller. You could have tended flowers behind a white picket fence around your country cottage. At least they could let you grab a few winks between one job and the next. But no -- you finish debriefing in some dirty little city in Frotzerland, and before you can even find a phone book, let alone a hotel, they volunteer you for another assignment.
|
||||
|
||||
""You've got to intercept "
|
||||
CALL2 PRINTA,MCGUFFIN
|
||||
PRINTI "!"" they told you. ""Then deliver it to our agent in Gola so the leak can be traced. We don't know where it is for sure, but we think it's in a briefcase that's leaving town on the next train. You're the only agent that's close enough and experienced enough to be sent after it. And at the end of the trip, there will be a plane ticket to home waiting for you.""
|
||||
|
||||
So that's why you're climbing all over this stupid train. Finding the briefcase was easy enough, but the dude carrying it was something else. Even your well-placed bullet didn't make him drop. Now, if only he'll take the bait and follow you up here, you can .... Wait! Here he comes from the forward end! But he's not carrying the case!
|
||||
|
||||
"
|
||||
JUMP ?CND29
|
||||
?ELS31: PRINTI "With your business deal behind you, you want only to get out of this bleak corner of Eastern Europe. The frontier is now only a few hours away, and from there it's not far to Vienna, and civilization....
|
||||
|
||||
The ride seems endless, and you're dozing off again. The wheels of the train are ticking like a clock, ticking off the segments of track you're passing, and the compartment is rocking you back and forth, back and forth, making your eyelids slowly close.
|
||||
|
||||
Your slumber is cut short as a man staggers into your compartment, panting strangely. From his demeanor, you guess that he has drunk too much. But before you can dismiss him, you notice that he's grasping a bright red spot on his shirt. He speaks quietly, but in a hurry.
|
||||
|
||||
""I've got only a moment, so listen carefully! Since you were reading the International Herald over lunch, I assume you're an American. I am an agent of our government, and I've been sent to "
|
||||
EQUAL? VARIATION,2,4 \?ELS40
|
||||
PRINTI "pick up some kind of "
|
||||
PRINTD MCGUFFIN
|
||||
PRINTI " in Frbz and take it"
|
||||
JUMP ?CND38
|
||||
?ELS40: PRINTI "deliver a "
|
||||
PRINTD MCGUFFIN
|
||||
?CND38: PRINTI " to our special agent in Gola. An enemy agent spotted me on the train, and I only barely managed to escape."" He groans softly, examining his wound.
|
||||
|
||||
""The best I can do now is throw the enemy off the scent, but I need you, and your country needs you, to carry out my assignment."" You start to interrupt, a thousand questions racing through your mind. ""There's no time! Here! Take my briefcase, but be careful with it! Our enemies are all around us! My contact in "
|
||||
EQUAL? VARIATION,2,4 \?ELS51
|
||||
PRINTD STATION-FRBZ
|
||||
JUMP ?CND49
|
||||
?ELS51: PRINTD STATION-GOLA
|
||||
?CND49: PRINTI " is "
|
||||
CALL2 PRINTA,CONTACT
|
||||
PRINTI ", and I was to display "
|
||||
EQUAL? VARIATION,2,4 /?CND58
|
||||
CALL2 PRINTA,PASSOBJECT
|
||||
PRINTI ", then use the word"
|
||||
EQUAL? PASSWORD,CAMERA,HANKY,SCARF \?CND63
|
||||
PRINTI "s"
|
||||
?CND63: PRINTI " '"
|
||||
PRINTD PASSWORD
|
||||
PRINTI "' "
|
||||
?CND58: PRINTI "...."" Then he stops and listens. Before you can say anything, he checks the corridor and races out.
|
||||
|
||||
"
|
||||
CALL QUEUE,I-BOND,1
|
||||
PUT STACK,0,1
|
||||
?CND29: CALL1 V-VERSION
|
||||
CRLF
|
||||
CALL1 INIT-STATUS-LINE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT READ-WORD,WD1,WD2,WD3=0,WD4=0,WD5=0,N,L
|
||||
?FCN: PRINTI ">"
|
||||
READ P-INBUF,P-LEXV
|
||||
GETB P-LEXV,P-LEXWORDS
|
||||
ZERO? STACK \?CND3
|
||||
CALL PLEASE-TYPE-OR,WD1,WD2
|
||||
JUMP ?FCN
|
||||
?CND3: SET 'L,P-LEXSTART
|
||||
?PRG6: GET P-LEXV,L >N
|
||||
CALL WT?,N,PS?BUZZ-WORD
|
||||
ZERO? STACK \?CND8
|
||||
JUMP ?REP7
|
||||
?CND8: ADD L,P-LEXELEN >L
|
||||
JUMP ?PRG6
|
||||
?REP7: EQUAL? N,WD1,WD2 /?THN14
|
||||
EQUAL? N,WD3,WD4,WD5 \?CND11
|
||||
?THN14: RETURN N
|
||||
?CND11: CALL WT?,N,PS?VERB,P1?VERB >N
|
||||
EQUAL? N,ACT?QUIT \?ELS18
|
||||
QUIT
|
||||
CALL1 TELL-FAILED
|
||||
JUMP ?FCN
|
||||
?ELS18: EQUAL? N,ACT?RESTART \?ELS20
|
||||
RESTART
|
||||
CALL1 TELL-FAILED
|
||||
JUMP ?FCN
|
||||
?ELS20: EQUAL? N,ACT?$VERIFY \?ELS22
|
||||
CALL1 V-$VERIFY
|
||||
JUMP ?FCN
|
||||
?ELS22: EQUAL? N,ACT?RELEASE \?ELS24
|
||||
CALL1 V-VERSION
|
||||
JUMP ?FCN
|
||||
?ELS24: EQUAL? N,ACT?RESTORE \?CND16
|
||||
CALL1 V-RESTORE
|
||||
ZERO? STACK /?FCN
|
||||
CALL1 TELL-FAILED
|
||||
JUMP ?FCN
|
||||
?CND16: CALL PLEASE-TYPE-OR,WD1,WD2
|
||||
JUMP ?FCN
|
||||
|
||||
|
||||
.FUNCT PLEASE-TYPE-OR,WD1,WD2
|
||||
PRINTI "Please type """
|
||||
PRINTB WD1
|
||||
PRINTI """ or """
|
||||
PRINTB WD2
|
||||
PRINTI """. "
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RANDOM-PER-VAR,L,N
|
||||
MUL VARIATION,L
|
||||
DIV STACK,MAX-VAR
|
||||
ADD 1,STACK >N
|
||||
GRTR? N,L \?ELS5
|
||||
RETURN L
|
||||
?ELS5: RETURN N
|
||||
|
||||
|
||||
.FUNCT TAKE-YOUR-PLACES,P,N,L,?TMP1
|
||||
PUTP WAITER,P?CAR,DINER-CAR
|
||||
PUTP COOK,P?CAR,DINER-CAR
|
||||
CALL2 PICK-ONE,CAR-ROOMS-COMPS >COMPARTMENT-START
|
||||
EQUAL? VARIATION,3,4 \?CND1
|
||||
ADD 1,CAR-START >CAR-HERE
|
||||
?CND1: CALL2 TAKE-YOUR-PLACES-CAST,EXTRA-TABLE
|
||||
CALL2 TAKE-YOUR-PLACES-CAST,SPY-TABLE
|
||||
CALL TAKE-YOUR-PLACES-CAST,MARKS-TABLE,FALSE-VALUE,FALSE-VALUE,FALSE-VALUE
|
||||
GET SPY-TABLE,0
|
||||
CALL2 RANDOM-PER-VAR,STACK
|
||||
GET SPY-TABLE,STACK >BAD-SPY
|
||||
GETP BAD-SPY,P?CHARACTER >BAD-SPY-C
|
||||
GETP BAD-SPY,P?ACTION >BAD-SPY-DEFAULT-F
|
||||
EQUAL? VARIATION,3,4 /?ELS6
|
||||
SET 'HERE,COMPARTMENT-START
|
||||
CALL2 GENERIC-SEAT-F,0 >PLAYER-SEATED
|
||||
MOVE BLOOD-SPOT,HERE
|
||||
MOVE BRIEFCASE,PLAYER-SEATED
|
||||
PUTP BRIEFCASE,P?CAR,CAR-HERE
|
||||
PUTP BAD-SPY,P?ACTION,BAD-SPY-F
|
||||
ADD 1,CAR-START
|
||||
PUTP BAD-SPY,P?CAR,STACK
|
||||
MOVE BAD-SPY,OTHER-ROOF
|
||||
JUMP ?CND4
|
||||
?ELS6: SET 'HERE,ROOF
|
||||
PUTP PLAYER,P?CAR,CAR-HERE
|
||||
MOVE BRIEFCASE,BAD-SPY
|
||||
PUTP BRIEFCASE,P?CAR,CAR-START
|
||||
FCLEAR BRIEFCASE,TAKEBIT
|
||||
SET 'N,0
|
||||
GET BRIEFCASE-TBL,0 >L
|
||||
?PRG9: IGRTR? 'N,L \?ELS13
|
||||
JUMP ?REP10
|
||||
?ELS13: GET BRIEFCASE-TBL,N >P
|
||||
ZERO? P /?PRG9
|
||||
FCLEAR P,TAKEBIT
|
||||
JUMP ?PRG9
|
||||
?REP10: RANDOM 6
|
||||
ADD 9,STACK
|
||||
CALL QUEUE,I-TRAVELER-TO-GRNZ,STACK
|
||||
PUT STACK,0,1
|
||||
PUTP BAD-SPY,P?ACTION,TRAVELER-F
|
||||
PUTP BAD-SPY,P?CAR,CAR-START
|
||||
PUTP BAD-SPY,P?LDESC,35
|
||||
GETP COMPARTMENT-START,P?OTHER >L
|
||||
MOVE BAD-SPY,L
|
||||
SET 'BAD-SPY-DONE-PEEKING,TRUE-VALUE
|
||||
MOVE BLOOD-SPOT,L
|
||||
FCLEAR GUN,NDESCBIT
|
||||
FSET GUN,TAKEBIT
|
||||
MOVE GUN,POCKET
|
||||
?CND4: MOVE PLAYER,HERE
|
||||
SET 'LAST-CAR-HERE,CAR-HERE
|
||||
ADD 1,CONTACT-MAX >?TMP1
|
||||
CALL2 RANDOM-PER-VAR,CONTACT-MAX
|
||||
SUB ?TMP1,STACK
|
||||
GET EXTRA-TABLE,STACK >CONTACT
|
||||
GETP CONTACT,P?ACTION >CONTACT-DEFAULT-F
|
||||
PUTP CONTACT,P?ACTION,CONTACT-F
|
||||
EQUAL? VARIATION,2,4 \?CND16
|
||||
CALL1 MOVE-CONTACT
|
||||
PUTP TICKET,P?CAPACITY,STATION-WIEN
|
||||
PUTP TICKET-OTHER,P?CAPACITY,STATION-WIEN
|
||||
SET 'LATCH-TURNED,FALSE-VALUE
|
||||
CALL PICK-ONE-NOT,SPY-TABLE,BAD-SPY >PICKPOCKET
|
||||
CALL PICK-ONE-NOT,SPY-TABLE,BAD-SPY >PEEKER
|
||||
ADD 2,CAR-START
|
||||
PUTP PEEKER,P?CAR,STACK
|
||||
MOVE PEEKER,OTHER-VESTIBULE-REAR
|
||||
GETP PEEKER,P?CHARACTER
|
||||
GET GOAL-TABLES,STACK
|
||||
PUT STACK,GOAL-ENABLE,1
|
||||
CALL ESTABLISH-GOAL-TRAIN,PEEKER,VESTIBULE-FWD,1
|
||||
PUTP PEEKER,P?LDESC,PEEKING-CODE
|
||||
?CND16: CALL1 SET-PASSES
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT SET-PASSES,NUM=0,L,N,P
|
||||
SET 'PASSWORD-GIVEN,FALSE-VALUE
|
||||
SET 'PASSWORD-GIVEN-OTHER,FALSE-VALUE
|
||||
SET 'PASSOBJECT-GIVEN,FALSE-VALUE
|
||||
SET 'PASSOBJECT-GIVEN-OTHER,FALSE-VALUE
|
||||
ZERO? NUM /?CND1
|
||||
FSET SPY-LIST,MUNGBIT
|
||||
?CND1: SET 'L,6
|
||||
ADD NUM,VARIATION >P
|
||||
GET PASS-TABLE,P >PASSOBJECT
|
||||
CALL2 RANDOM-PER-VAR,L
|
||||
ADD NUM,STACK >N
|
||||
EQUAL? P,N \?CND4
|
||||
IGRTR? 'N,L \?CND4
|
||||
SET 'N,1
|
||||
?CND4: GET PASS-TABLE,N >PASSWORD
|
||||
RETURN PASSWORD
|
||||
|
||||
|
||||
.FUNCT TAKE-YOUR-PLACES-CAST,TBL,NEW?=0,STA-ONLY?=0,PEOPLE?=1,P,OBJ,N,L,M,X
|
||||
GET TBL,0 >P
|
||||
GET CAR-ROOMS,0 >M
|
||||
?PRG1: GET TBL,P >OBJ
|
||||
ZERO? PEOPLE? /?CND3
|
||||
FSET OBJ,LOCKED
|
||||
?CND3: RANDOM M
|
||||
GET CAR-ROOMS,STACK >L
|
||||
RANDOM CAR-MAX >N
|
||||
EQUAL? N,DINER-CAR,FANCY-CAR \?CND7
|
||||
DEC 'N
|
||||
?CND7: ZERO? PEOPLE? \?ELS12
|
||||
JUMP ?CND10
|
||||
?ELS12: ZERO? NEW? \?ELS14
|
||||
EQUAL? L,COMPARTMENT-START \?ELS14
|
||||
EQUAL? N,CAR-START \?ELS14
|
||||
DEC 'N
|
||||
JUMP ?CND10
|
||||
?ELS14: CALL ZMEMQ,L,CAR-ROOMS-REST
|
||||
ZERO? STACK /?CND10
|
||||
FSET? OBJ,PLURALBIT /?THN22
|
||||
CALL OCCUPIED?,L,N
|
||||
ZERO? STACK /?ELS21
|
||||
?THN22: GETPT L,P?OUT
|
||||
GET STACK,REXIT >L
|
||||
JUMP ?CND10
|
||||
?ELS21: EQUAL? N,CAR-HERE \?ELS25
|
||||
CALL FIND-FLAG-LG,L,DOORBIT
|
||||
FSET STACK,LOCKED
|
||||
JUMP ?CND10
|
||||
?ELS25: CALL FIND-FLAG-LG,L,DOORBIT
|
||||
FCLEAR STACK,LOCKED
|
||||
?CND10: ZERO? PEOPLE? /?THN31
|
||||
CALL TAKE-YOUR-PLACE-TEST,OBJ,STA-ONLY?
|
||||
ZERO? STACK /?CND28
|
||||
?THN31: EQUAL? N,CAR-HERE,DINER-CAR,FANCY-CAR \?ELS35
|
||||
MOVE OBJ,L
|
||||
JUMP ?CND33
|
||||
?ELS35: GETP L,P?OTHER >X
|
||||
ZERO? X /?CND33
|
||||
MOVE OBJ,X
|
||||
?CND33: PUTP OBJ,P?CAR,N
|
||||
?CND28: ZERO? NEW? /?CND38
|
||||
ZERO? PEOPLE? /?CND38
|
||||
CALL ZMEMQ,OBJ,EXTRA-TABLE >X
|
||||
ZERO? X /?CND43
|
||||
GET EXTRA-SEEN-TABLE,X
|
||||
SUB 0,STACK
|
||||
PUT EXTRA-SEEN-TABLE,X,STACK
|
||||
?CND43: EQUAL? OBJ,BAD-SPY /?CND38
|
||||
FCLEAR OBJ,SEENBIT
|
||||
FCLEAR OBJ,TOUCHBIT
|
||||
PUTP OBJ,P?LDESC,0
|
||||
?CND38: DLESS? 'P,1 \?PRG1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TAKE-YOUR-PLACE-TEST,OBJ,STA-ONLY?,X
|
||||
EQUAL? OBJ,CONTACT /FALSE
|
||||
CALL IN-MOTION?,OBJ,TRUE-VALUE
|
||||
ZERO? STACK \FALSE
|
||||
CALL2 META-LOC,OBJ
|
||||
CALL ZMEMQ,STACK,STATION-ROOMS >X
|
||||
ZERO? STA-ONLY? /?ELS10
|
||||
RETURN X
|
||||
?ELS10: ZERO? X /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT OCCUPIED?,L,N
|
||||
EQUAL? L,GAS-CAR-RM \?ELS3
|
||||
EQUAL? N,GAS-CAR /TRUE
|
||||
?ELS3: EQUAL? N,CAR-HERE,DINER-CAR,FANCY-CAR /?CND1
|
||||
GETP L,P?OTHER >L
|
||||
?CND1: CALL FIND-FLAG-CAR,L,N,PERSONBIT
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MOVE-CONTACT,N
|
||||
SUB PLATFORM-MAX,1
|
||||
RANDOM STACK
|
||||
ADD 1,STACK >N
|
||||
PUTP CONTACT,P?CAR,N
|
||||
GET STATION-ROOMS,N
|
||||
MOVE CONTACT,STACK
|
||||
FSET CONTACT,NDESCBIT
|
||||
FCLEAR CONTACT,TOUCHBIT
|
||||
PUTP CONTACT,P?LDESC,10
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT INIT-STATUS-LINE,FIRST=0
|
||||
GETB 0,18
|
||||
ZERO? STACK /TRUE
|
||||
ZERO? FIRST /?CND4
|
||||
CLEAR -1
|
||||
SPLIT 2
|
||||
?CND4: SCREEN 1
|
||||
BUFOUT FALSE-VALUE
|
||||
CALL2 INVERSE-LINE,1
|
||||
HLIGHT H-INVERSE
|
||||
ZERO? FIRST /?ELS10
|
||||
GETB 0,33
|
||||
SUB STACK,10
|
||||
DIV STACK,2
|
||||
CURSET 1,STACK
|
||||
PRINTD GAME
|
||||
JUMP ?CND8
|
||||
?ELS10: CURSET 1,1
|
||||
PRINTI "You are "
|
||||
CURSET 1,63
|
||||
PRINTI "It is now "
|
||||
?CND8: SET 'PLAYER-NOT-FACING-OLD,99
|
||||
BUFOUT TRUE-VALUE
|
||||
HLIGHT H-NORMAL
|
||||
SCREEN 0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT INVERSE-LINE,LIN,CNT=79
|
||||
CURSET LIN,1
|
||||
HLIGHT H-INVERSE
|
||||
CALL2 PRINT-SPACES,CNT
|
||||
HLIGHT H-NORMAL
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT PRINT-SPACES,CNT
|
||||
?PRG1: DLESS? 'CNT,0 /TRUE
|
||||
PRINTC 32
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT STATUS-LINE,LEN,X=0
|
||||
GETB 0,18
|
||||
ZERO? STACK /TRUE
|
||||
EQUAL? LAST-PLAYER-LOC,HERE \?THN7
|
||||
EQUAL? PLAYER-NOT-FACING-OLD,PLAYER-NOT-FACING \?THN7
|
||||
EQUAL? PLAYER-SEATED-OLD,PLAYER-SEATED /?CND4
|
||||
?THN7: SET 'X,TRUE-VALUE
|
||||
?CND4: ZERO? X \?CND9
|
||||
ZERO? CLOCK-WAIT \TRUE
|
||||
?CND9: BUFOUT FALSE-VALUE
|
||||
SCREEN 1
|
||||
HLIGHT H-INVERSE
|
||||
ZERO? X /?CND16
|
||||
SET 'LAST-PLAYER-LOC,HERE
|
||||
SET 'PLAYER-NOT-FACING-OLD,PLAYER-NOT-FACING
|
||||
SET 'PLAYER-SEATED-OLD,PLAYER-SEATED
|
||||
DIROUT -1
|
||||
DIROUT 3,SL-BUFFER
|
||||
CALL1 TELL-LOCATION
|
||||
DIROUT -3
|
||||
DIROUT 1
|
||||
GET SL-BUFFER,0 >LEN
|
||||
CURSET 1,9
|
||||
CALL1 TELL-LOCATION
|
||||
SUB 54,LEN
|
||||
CALL2 PRINT-SPACES,STACK
|
||||
?CND16: CURSET 1,73
|
||||
CALL2 TIME-PRINT,PRESENT-TIME
|
||||
PRINTI ". "
|
||||
SCREEN 0
|
||||
BUFOUT TRUE-VALUE
|
||||
HLIGHT H-NORMAL
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TELL-LOCATION,DIR
|
||||
EQUAL? HERE,UNCONSCIOUS \?CND1
|
||||
PRINTI "unconscious."
|
||||
RTRUE
|
||||
?CND1: ZERO? PLAYER-SEATED \?ELS8
|
||||
JUMP ?CND6
|
||||
?ELS8: LESS? 0,PLAYER-SEATED \?ELS10
|
||||
PRINTI "sitting "
|
||||
JUMP ?CND6
|
||||
?ELS10: PRINTI "lying "
|
||||
?CND6: FSET? HERE,SURFACEBIT \?ELS19
|
||||
PRINTI "on"
|
||||
JUMP ?CND17
|
||||
?ELS19: EQUAL? HERE,BESIDE-TRACKS /?CND17
|
||||
PRINTI "in"
|
||||
?CND17: CALL2 PRINTT,HERE
|
||||
ZERO? PLAYER-NOT-FACING /?CND28
|
||||
PRINTI ", facing "
|
||||
CALL2 OPP-DIR,PLAYER-NOT-FACING >DIR
|
||||
EQUAL? DIR,P?EAST \?ELS35
|
||||
ZERO? ON-TRAIN /?ELS35
|
||||
PRINTI "the right side"
|
||||
JUMP ?CND28
|
||||
?ELS35: EQUAL? DIR,P?WEST \?ELS41
|
||||
ZERO? ON-TRAIN /?ELS41
|
||||
PRINTI "the left side"
|
||||
JUMP ?CND28
|
||||
?ELS41: CALL2 DIR-PRINT,DIR
|
||||
?CND28: PRINTI "."
|
||||
RTRUE
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,512 @@
|
|||
"MAIN for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<ROUTINE GO ()
|
||||
<INIT-STATUS-LINE T>
|
||||
<SETG LIT T>
|
||||
<PUTB ,P-LEXV 0 59>
|
||||
<PUTB ,YES-LEXV 0 4>
|
||||
<SETG WINNER ,PLAYER>
|
||||
<ENABLE <QUEUE I-PROMPT 1>>
|
||||
<INTRO>
|
||||
<FSET ,HERE ,SEENBIT>
|
||||
<START-MOVEMENT>
|
||||
<V-LOOK>
|
||||
<MAIN-LOOP>
|
||||
<AGAIN>>
|
||||
|
||||
<GLOBAL VARIATION 0>
|
||||
<CONSTANT MAX-VAR 6>
|
||||
"<GLOBAL LONG-INTRO <>>
|
||||
<GLOBAL HARD? <>>
|
||||
<GLOBAL EGO <>>"
|
||||
|
||||
<ROUTINE INTRO ("AUX" N)
|
||||
<SETG HERE ,GAME>
|
||||
<TELL
|
||||
"Copyright (c) 1985 Infocom, Inc. All rights reserved.|
|
||||
|
|
||||
Welcome to " D ,GAME " (TM) - interactive fiction from Infocom!|
|
||||
|
|
||||
">
|
||||
<TELL
|
||||
"[Note to testers: this story has the command GO TO,
|
||||
and the concept of not being able to see things behind your back.
|
||||
The unit of currency in this story is the Frotzian slimpuk, whose
|
||||
symbol is \"">
|
||||
<PRINTC ,CURRENCY-SYMBOL>
|
||||
<TELL "\".|
|
||||
|
|
||||
Messages in square brackets [] will not be in the final release.
|
||||
|
|
||||
Remember: you can shorten your words only to NINE (9) letters.|
|
||||
But you can use C for COMPARTMENT, V for VESTIBULE, and F for FORWARD.]|
|
||||
|
|
||||
">
|
||||
<TELL "Do you want the viewpoint of the traveler or the spy? ">
|
||||
<SET N <READ-WORD ,W?TRAVELER ,W?SPY ,W?T ,W?S ,W?TRAVELLER>>
|
||||
<COND (<EQUAL? .N ,W?SPY ,W?S>
|
||||
<SETG VARIATION 3>)
|
||||
(T <SETG VARIATION 1>)>
|
||||
<REPEAT ()
|
||||
<TELL
|
||||
"Do you want the short variation or the long one? "
|
||||
;"Please type a number to choose the one you want this time. ">
|
||||
<SET N <READ-WORD ,W?SHORT ,W?LONG ,W?S ,W?L>>
|
||||
;<TELL "Is variation #">
|
||||
;<COND (<L? .N 10> <PRINTC %<ASCII !\0>>)>
|
||||
;<TELL N .N " the one you want?">
|
||||
<COND (T ;<YES?> <RETURN>)>>
|
||||
<TELL "Then let the story begin!" CR>
|
||||
<COND (<EQUAL? .N ,W?L ,W?LONG>
|
||||
<INC VARIATION>
|
||||
<PUT ,BRIEFCASE-TBL <ZMEMZ ,MCGUFFIN ,BRIEFCASE-TBL> 0>
|
||||
<FSET ,MCGUFFIN ,NDESCBIT>
|
||||
<FCLEAR ,MCGUFFIN ,TAKEBIT>
|
||||
;"<SETG HARD? T>")>
|
||||
<TAKE-YOUR-PLACES>
|
||||
<COND (<HARD?>
|
||||
<MOVE ,MCGUFFIN ,LIMBO-REAR ;"non-spoiler">)>
|
||||
<START-TRAIN>
|
||||
;<COND (<==? ,TRAIN-NAME <GET ,TRAIN-TABLE-B 0>>
|
||||
<PUTP ,COAT ,P?CAR ,PLATFORM-MAX>)
|
||||
(T <MOVE ,COAT ,LIMBO-FWD>)>
|
||||
;<CRLF>
|
||||
<CLEAR 0>
|
||||
<COND (<SPY?> ;<EQUAL? ,VARIATION 3 4>
|
||||
<REMOVE ,BOND>
|
||||
<MOVE ,BOND-OTHER ,HERE>
|
||||
;"<PUTP ,BOND-OTHER ,P?LDESC 33>
|
||||
<FCLEAR ,BOND-OTHER ,TOUCHBIT>"
|
||||
<ENABLE <QUEUE I-BOND-OTHER -1>>
|
||||
<TELL
|
||||
"Why did you want to be a spy anyway? You could have had a nice restful
|
||||
job, like an air-traffic controller. You could have tended flowers
|
||||
behind a white picket fence around your country cottage. At least they
|
||||
could let you grab a few winks between one job and the next. But no --
|
||||
you finish debriefing in some dirty little city in Frotzerland, and
|
||||
before you can even find a phone book, let alone a hotel, they volunteer
|
||||
you for another assignment.|
|
||||
|
|
||||
\"You've got to intercept " A ,MCGUFFIN "!\" they told you. \"Then
|
||||
deliver it to our agent in Gola so the leak can be traced.
|
||||
We don't know where it is for sure,
|
||||
but we think it's in a briefcase that's leaving town on the next train.
|
||||
You're the only agent that's close enough and experienced enough to be
|
||||
sent after it. And at the end of the trip, there will be a plane ticket
|
||||
to home waiting for you.\"|
|
||||
|
|
||||
So that's why you're climbing all over this stupid train. Finding the
|
||||
briefcase was easy enough, but the dude carrying it was something else.
|
||||
Even your well-placed bullet didn't make him drop. Now, if only he'll take
|
||||
the bait and follow you up here, you can .... Wait! Here he comes from
|
||||
the forward end! But he's not carrying the case!|
|
||||
|
|
||||
">)
|
||||
(T
|
||||
<TELL
|
||||
"With your business deal behind you, you want only to get out of this
|
||||
bleak corner of Eastern Europe. The frontier is now only a few hours
|
||||
away, and from there it's not far to Vienna, and
|
||||
civilization....|
|
||||
|
|
||||
The ride seems endless, and you're dozing off again. The
|
||||
wheels of the train are ticking like a clock, ticking off the segments
|
||||
of track you're passing, and the compartment is rocking you back and
|
||||
forth, back and forth, making your eyelids slowly close.|
|
||||
|
|
||||
Your slumber is cut short as a man staggers into your compartment,
|
||||
panting strangely. From his demeanor, you guess that he has drunk too
|
||||
much. But before you can dismiss him, you notice that he's grasping a
|
||||
bright red spot on his shirt. He speaks quietly, but in a hurry.|
|
||||
|
|
||||
\"I've got only a moment, so listen carefully! Since you were reading
|
||||
the International Herald over lunch, I assume you're an
|
||||
American. I am an agent of our government, and I've been sent to ">
|
||||
<COND (<HARD?>
|
||||
<TELL
|
||||
"pick up some kind of " D ,MCGUFFIN " in Frbz and take it">)
|
||||
(T <TELL "deliver a " D ,MCGUFFIN>)>
|
||||
<TELL " to our special agent in
|
||||
Gola. An enemy agent spotted me on the train, and I only barely managed
|
||||
to escape.\" He groans softly, examining his wound.|
|
||||
|
|
||||
\"The best I can do now is throw the enemy off the scent, but I need
|
||||
you, and your country needs you, to carry out my assignment.\" You start
|
||||
to interrupt, a thousand questions racing through your mind. \"There's
|
||||
no time! Here! Take my briefcase, but be careful with it!
|
||||
Our enemies are all around us! My contact in ">
|
||||
<COND (<HARD?> <PRINTD ,STATION-FRBZ>)
|
||||
(T <PRINTD ,STATION-GOLA>)>
|
||||
<TELL " is ">
|
||||
<TELL A ,CONTACT ", and I was to display ">
|
||||
<COND (<NOT <HARD?>>
|
||||
<TELL A ,PASSOBJECT ", then use the word">
|
||||
<COND (<EQUAL? ,PASSWORD ,CAMERA ,HANKY ,SCARF>
|
||||
<TELL "s">)>
|
||||
<TELL " '" D ,PASSWORD "' ">)>
|
||||
<TELL
|
||||
"....\" Then he stops and listens.
|
||||
Before you can say anything, he checks the corridor and races out.|
|
||||
|
|
||||
">
|
||||
<ENABLE <QUEUE I-BOND 1>>)>
|
||||
<V-VERSION>
|
||||
<CRLF>
|
||||
<INIT-STATUS-LINE>>
|
||||
|
||||
<ROUTINE READ-WORD (WD1 WD2 "OPTIONAL" (WD3 <>) (WD4 <>) (WD5 <>) "AUX" N L)
|
||||
<TELL ">">
|
||||
<READ ,P-INBUF ,P-LEXV>
|
||||
<COND (<0? <GETB ,P-LEXV ,P-LEXWORDS>>
|
||||
<PLEASE-TYPE-OR .WD1 .WD2>
|
||||
<AGAIN>)>
|
||||
<SET L ,P-LEXSTART>
|
||||
<REPEAT ()
|
||||
<SET N <GET ,P-LEXV .L>>
|
||||
<COND (<NOT <WT? .N ,PS?BUZZ-WORD>> <RETURN>)>
|
||||
<SET L <+ .L ,P-LEXELEN>>>
|
||||
<COND (<OR <EQUAL? .N .WD1 .WD2>
|
||||
<EQUAL? .N .WD3 .WD4 .WD5>>
|
||||
<RETURN .N>)>
|
||||
<SET N <WT? .N ,PS?VERB ,P1?VERB>>
|
||||
<COND (<EQUAL? .N ,ACT?QUIT>
|
||||
<QUIT>
|
||||
<TELL-FAILED>
|
||||
<AGAIN>)
|
||||
(<EQUAL? .N ,ACT?RESTART>
|
||||
<RESTART>
|
||||
<TELL-FAILED>
|
||||
<AGAIN>)
|
||||
(<EQUAL? .N ,ACT?$VERIFY>
|
||||
<V-$VERIFY>
|
||||
<AGAIN>)
|
||||
(<EQUAL? .N ,ACT?RELEASE>
|
||||
<V-VERSION>
|
||||
<AGAIN>)
|
||||
(<EQUAL? .N ,ACT?RESTORE>
|
||||
<COND (<V-RESTORE>
|
||||
<TELL-FAILED>)>
|
||||
<AGAIN>)>
|
||||
<PLEASE-TYPE-OR .WD1 .WD2>
|
||||
<AGAIN>>
|
||||
|
||||
<ROUTINE PLEASE-TYPE-OR (WD1 WD2)
|
||||
<TELL "Please type \"">
|
||||
<PRINTB .WD1>
|
||||
<TELL "\" or \"">
|
||||
<PRINTB .WD2>
|
||||
<TELL "\". ">>
|
||||
|
||||
;<ROUTINE READ-NUM ("AUX" N)
|
||||
<TELL ">">
|
||||
<READ ,P-INBUF ,P-LEXV>
|
||||
<COND (<0? <GETB ,P-LEXV ,P-LEXWORDS>>
|
||||
<TELL "I beg your pardon?" CR>
|
||||
<AGAIN>)>
|
||||
<COND (<NUMBER? ,P-LEXSTART>
|
||||
<COND (<==? ,P-NUMBER ,MAX-VAR>
|
||||
<RETURN ,P-NUMBER>)
|
||||
(<L? 0 ,P-NUMBER>
|
||||
<RETURN <MOD ,P-NUMBER ,MAX-VAR>>)>)
|
||||
(<NOT <ZERO? <SET N <GET ,P-LEXV ,P-LEXSTART>>>>
|
||||
<SET N <WT? .N ,PS?VERB ,P1?VERB>>
|
||||
<COND (<EQUAL? .N ,ACT?RESTART>
|
||||
<RESTART>
|
||||
<TELL-FAILED>
|
||||
<AGAIN>)
|
||||
(<EQUAL? .N ,ACT?$VERIFY>
|
||||
<V-$VERIFY>
|
||||
<AGAIN>)
|
||||
(<EQUAL? .N ,ACT?RELEASE>
|
||||
<V-VERSION>
|
||||
<AGAIN>)
|
||||
(<EQUAL? .N ,ACT?RESTORE>
|
||||
<COND (<V-RESTORE>
|
||||
<TELL-FAILED>
|
||||
<AGAIN>)
|
||||
(T
|
||||
<AGAIN>)>)>)>
|
||||
<TELL "Please type a number between 1 and " N ,MAX-VAR ". ">
|
||||
<AGAIN>>
|
||||
|
||||
"<GLOBAL RSEED 6969>
|
||||
|
||||
<ROUTINE RANDOM-PER-VAR (N) ;'lower digits w/ correction'
|
||||
<SETG RSEED <MOD <* <+ 2 ,VARIATION> <+ 2 ,RSEED>>
|
||||
10000>>
|
||||
;<SETG RSEED <+ <+ 1 ,VARIATION> ,RSEED>>
|
||||
%<COND (<NOT <GASSIGNED? PREDGEN>>
|
||||
'<COND (<GASSIGNED? RSEED-LIST>
|
||||
<COND (<MEMQ ,RSEED ,RSEED-LIST>
|
||||
<TELL '[Dup. seed=' N ,RSEED ']' CR>)
|
||||
(T <SETG RSEED-LIST (,RSEED !,RSEED-LIST)>)>)
|
||||
(T <SETG RSEED-LIST (,RSEED)>)>)
|
||||
(T '<COND (,DEBUG <TELL '[Seed=' N ,RSEED ']' CR>)>)>
|
||||
<+ 1 <MOD ,RSEED .N>>>"
|
||||
|
||||
<ROUTINE RANDOM-PER-VAR (L "AUX" N)
|
||||
<SET N <+ 1 </ <* ,VARIATION .L> ,MAX-VAR>>>
|
||||
<COND (<G? .N .L> .L) (T .N)>>
|
||||
|
||||
<ROUTINE TAKE-YOUR-PLACES ("AUX" P N L)
|
||||
;<TELL CR "(Take your places ..." CR>
|
||||
<PUTP ,WAITER ,P?CAR ,DINER-CAR>
|
||||
<PUTP ,COOK ,P?CAR ,DINER-CAR>
|
||||
<SETG COMPARTMENT-START <PICK-ONE ,CAR-ROOMS-COMPS>>
|
||||
<COND (<SPY?> <SETG CAR-HERE <+ 1 ,CAR-START>>)>
|
||||
<TAKE-YOUR-PLACES-CAST ,EXTRA-TABLE>
|
||||
<TAKE-YOUR-PLACES-CAST ,SPY-TABLE>
|
||||
<TAKE-YOUR-PLACES-CAST ,MARKS-TABLE <> <> <>>
|
||||
|
||||
<SETG BAD-SPY <GET ,SPY-TABLE <RANDOM-PER-VAR <GET ,SPY-TABLE 0>>>>
|
||||
<SETG BAD-SPY-C <GETP ,BAD-SPY ,P?CHARACTER>>
|
||||
<SETG BAD-SPY-DEFAULT-F <GETP ,BAD-SPY ,P?ACTION>>
|
||||
<COND (<NOT <SPY?>> ;<EQUAL? ,VARIATION 1 2>
|
||||
<SETG HERE ,COMPARTMENT-START>
|
||||
<SETG PLAYER-SEATED <GENERIC-SEAT-F 0>>
|
||||
<MOVE ,BLOOD-SPOT ,HERE>
|
||||
;"<MOVE ,RACK ,HERE>
|
||||
<MOVE ,OTHER-RACK <GETP ,HERE ,P?OTHER>>"
|
||||
<MOVE ,BRIEFCASE ,PLAYER-SEATED>
|
||||
<PUTP ,BRIEFCASE ,P?CAR ,CAR-HERE>
|
||||
<PUTP ,BAD-SPY ,P?ACTION ,BAD-SPY-F>
|
||||
<PUTP ,BAD-SPY ,P?CAR <+ 1 ,CAR-START>>
|
||||
<MOVE ,BAD-SPY ,OTHER-ROOF>
|
||||
;"<MOVE ,GUN ,BAD-SPY>")
|
||||
(T ;<EQUAL? ,VARIATION 3 4>
|
||||
;"<SETG EGO ,BAD-SPY>"
|
||||
;<SETG CAR-HERE <+ 1 ,CAR-START>>
|
||||
<SETG HERE ,ROOF>
|
||||
<PUTP ,PLAYER ,P?CAR ,CAR-HERE>
|
||||
<MOVE ,BRIEFCASE ,BAD-SPY>
|
||||
<PUTP ,BRIEFCASE ,P?CAR ,CAR-START>
|
||||
<FCLEAR ,BRIEFCASE ,TAKEBIT>
|
||||
<SET N 0>
|
||||
<SET L <GET ,BRIEFCASE-TBL 0>>
|
||||
<REPEAT ()
|
||||
<COND (<IGRTR? N .L> <RETURN>)
|
||||
(<NOT <ZERO? <SET P <GET ,BRIEFCASE-TBL .N>>>>
|
||||
<FCLEAR .P ,TAKEBIT>)>>
|
||||
<ENABLE <QUEUE I-TRAVELER-TO-GRNZ <+ 9 <RANDOM 6>>>>
|
||||
<PUTP ,BAD-SPY ,P?ACTION ,TRAVELER-F>
|
||||
<PUTP ,BAD-SPY ,P?CAR ,CAR-START>
|
||||
<PUTP ,BAD-SPY ,P?LDESC 35 ;"deep in thought">
|
||||
<SET L <GETP ,COMPARTMENT-START ,P?OTHER>>
|
||||
<MOVE ,BAD-SPY .L ;,OTHER-COMPARTMENT-1>
|
||||
<SETG BAD-SPY-DONE-PEEKING T>
|
||||
<MOVE ,BLOOD-SPOT .L>
|
||||
<FCLEAR ,GUN ,NDESCBIT>
|
||||
<FSET ,GUN ,TAKEBIT>
|
||||
<MOVE ,GUN ,POCKET ;,PLAYER>)>
|
||||
<MOVE ,PLAYER ,HERE>
|
||||
;<SETG LAST-PLAYER-LOC ,HERE>
|
||||
<SETG LAST-CAR-HERE ,CAR-HERE>
|
||||
|
||||
<SETG CONTACT <GET ,EXTRA-TABLE
|
||||
<- <+ 1 ,CONTACT-MAX>
|
||||
<RANDOM-PER-VAR ,CONTACT-MAX>>>>
|
||||
<SETG CONTACT-DEFAULT-F <GETP ,CONTACT ,P?ACTION>>
|
||||
<PUTP ,CONTACT ,P?ACTION ,CONTACT-F>
|
||||
<COND (<HARD?>
|
||||
<MOVE-CONTACT>
|
||||
<PUTP ,TICKET ,P?CAPACITY ,STATION-WIEN>
|
||||
<PUTP ,TICKET-OTHER ,P?CAPACITY ,STATION-WIEN>
|
||||
<SETG LATCH-TURNED <>>
|
||||
<SETG PICKPOCKET <PICK-ONE-NOT ,SPY-TABLE ,BAD-SPY>>
|
||||
<SETG PEEKER <PICK-ONE-NOT ,SPY-TABLE ,BAD-SPY ;,PICKPOCKET>>
|
||||
<PUTP ,PEEKER ,P?CAR <+ 2 ,CAR-START>>
|
||||
<MOVE ,PEEKER ,OTHER-VESTIBULE-REAR>
|
||||
<PUT <GT-O ,PEEKER> ,GOAL-ENABLE 1>
|
||||
<ESTABLISH-GOAL-TRAIN ,PEEKER ,VESTIBULE-FWD 1>
|
||||
<PUTP ,PEEKER ,P?LDESC ,PEEKING-CODE>)>
|
||||
<SET-PASSES>
|
||||
;"<TELL CR 'Lights ...' CR>
|
||||
<SET N <* 15 ,VARIATION>>
|
||||
<SETG SCORE </ .N 60>>
|
||||
<SETG MOVES <MOD .N 60>>
|
||||
<SETG PRESENT-TIME <+ ,MOVES <* ,SCORE 60>>>
|
||||
<TELL CR 'Action!)' CR>">
|
||||
|
||||
<ROUTINE SET-PASSES ("OPTIONAL" (NUM 0) "AUX" L N P)
|
||||
<SETG PASSWORD-GIVEN <>>
|
||||
<SETG PASSWORD-GIVEN-OTHER <>>
|
||||
<SETG PASSOBJECT-GIVEN <>>
|
||||
<SETG PASSOBJECT-GIVEN-OTHER <>>
|
||||
<COND (<NOT <ZERO? .NUM>> <FSET ,SPY-LIST ,MUNGBIT>)>
|
||||
<SET L 6 ;<GET ,PASS-TABLE 0>>
|
||||
<SET P <+ .NUM ,VARIATION>
|
||||
;<+ 1 <MOD <- ,VARIATION 1> .L>> ;<RANDOM-PER-VAR .L>>
|
||||
<SETG PASSOBJECT <GET ,PASS-TABLE .P>>
|
||||
<SET N <+ .NUM <RANDOM-PER-VAR .L>>>
|
||||
<COND (<==? .P .N>
|
||||
<COND (<IGRTR? N .L> <SET N 1>)>)>
|
||||
<SETG PASSWORD <GET ,PASS-TABLE .N>>>
|
||||
|
||||
<ROUTINE TAKE-YOUR-PLACES-CAST
|
||||
(TBL "OPTIONAL" (NEW? <>) (STA-ONLY? <>) (PEOPLE? T)
|
||||
"AUX" P OBJ N L M X)
|
||||
<SET P <GET .TBL 0>>
|
||||
<SET M <GET ,CAR-ROOMS 0>>
|
||||
<REPEAT ()
|
||||
;<COND (<AND ;,LONG-INTRO <NOT .NEW?>> <CRLF> <CRLF>)>
|
||||
<SET OBJ <GET .TBL .P>>
|
||||
<COND (.PEOPLE? <FSET .OBJ ,LOCKED>)> ;"ticket not punched"
|
||||
<SET L <GET ,CAR-ROOMS <RANDOM ;-PER-VAR .M>>>
|
||||
<SET N <RANDOM ;-PER-VAR ,CAR-MAX>>
|
||||
<COND (<EQUAL? .N ,DINER-CAR ,FANCY-CAR>
|
||||
<DEC N>)>
|
||||
<COND (<ZERO? .PEOPLE?> T)
|
||||
(<AND <NOT .NEW?>
|
||||
<EQUAL? .L ,COMPARTMENT-START>
|
||||
<EQUAL? .N ,CAR-START>>
|
||||
<DEC N>)
|
||||
(<ZMEMQ .L ,CAR-ROOMS-REST>
|
||||
<COND (<OR <FSET? .OBJ ,PLURALBIT>
|
||||
<OCCUPIED? .L .N>>
|
||||
<SET L <GET-REXIT-ROOM <GETPT .L ,P?OUT>>>)
|
||||
(<==? .N ,CAR-HERE>
|
||||
<FSET <FIND-FLAG-LG .L ,DOORBIT> ,LOCKED>)
|
||||
(T <FCLEAR <FIND-FLAG-LG .L ,DOORBIT>,LOCKED>)>)>
|
||||
<COND (<OR <ZERO? .PEOPLE?>
|
||||
<TAKE-YOUR-PLACE-TEST .OBJ .STA-ONLY?>>
|
||||
<COND (<EQUAL? .N ,CAR-HERE ,DINER-CAR ,FANCY-CAR>
|
||||
<MOVE .OBJ .L>)
|
||||
(<SET X <GETP .L ,P?OTHER>>
|
||||
<MOVE .OBJ .X>)>
|
||||
<PUTP .OBJ ,P?CAR .N>)>
|
||||
<COND (<AND .NEW? .PEOPLE?>
|
||||
<COND (<SET X <ZMEMQ .OBJ ,EXTRA-TABLE>>
|
||||
<PUT ,EXTRA-SEEN-TABLE
|
||||
.X
|
||||
<- 0 <GET ,EXTRA-SEEN-TABLE .X>>>)>
|
||||
<COND (<NOT <EQUAL? .OBJ ,BAD-SPY>>
|
||||
<FCLEAR .OBJ ,SEENBIT>
|
||||
<FCLEAR .OBJ ,TOUCHBIT>
|
||||
<PUTP .OBJ ,P?LDESC 0>)>)>
|
||||
<COND (<DLESS? P 1> <RETURN>)>>>
|
||||
|
||||
<ROUTINE TAKE-YOUR-PLACE-TEST (OBJ STA-ONLY? "AUX" X)
|
||||
<COND (<EQUAL? .OBJ ,CONTACT> <RFALSE>)
|
||||
(<IN-MOTION? .OBJ T> <RFALSE>)>
|
||||
<SET X <ZMEMQ <META-LOC .OBJ> ,STATION-ROOMS>>
|
||||
<COND (.STA-ONLY? .X)
|
||||
(<NOT .X> <RTRUE>)>>
|
||||
|
||||
<ROUTINE OCCUPIED? (L N)
|
||||
<COND (<AND <==? .L ,GAS-CAR-RM>
|
||||
<==? .N ,GAS-CAR>>
|
||||
<RTRUE>)
|
||||
(<NOT <EQUAL? .N ,CAR-HERE ,DINER-CAR ,FANCY-CAR>>
|
||||
<SET L <GETP .L ,P?OTHER>>)>
|
||||
<FIND-FLAG-CAR .L .N ,PERSONBIT>>
|
||||
|
||||
<ROUTINE MOVE-CONTACT ("AUX" N)
|
||||
<SET N <+ 1 <RANDOM <- ,PLATFORM-MAX 1>>>>
|
||||
<PUTP ,CONTACT ,P?CAR .N>
|
||||
<MOVE ,CONTACT <GET ,STATION-ROOMS .N>>
|
||||
<FSET ,CONTACT ,NDESCBIT>
|
||||
<FCLEAR ,CONTACT ,TOUCHBIT>
|
||||
<PUTP ,CONTACT ,P?LDESC 10 ;"looking platform">>
|
||||
|
||||
<CONSTANT H-NORMAL 0>
|
||||
<CONSTANT H-INVERSE 1>
|
||||
|
||||
<CONSTANT D-NORMAL 0>
|
||||
<CONSTANT D-TABLE 1>
|
||||
|
||||
<ROUTINE INIT-STATUS-LINE ("OPTIONAL" (FIRST <>))
|
||||
<COND (<ZERO? <GETB 0 18>> ;"not ZIP"
|
||||
<RTRUE>)>
|
||||
<COND (.FIRST
|
||||
<CLEAR -1>
|
||||
<SPLIT 2>)>
|
||||
<SCREEN 1>
|
||||
<BUFOUT <>>
|
||||
<INVERSE-LINE 1>
|
||||
<HLIGHT ,H-INVERSE>
|
||||
<COND (.FIRST
|
||||
<CURSET 1 </ <- <GETB 0 33> 10> 2>>
|
||||
<TELL D ,GAME>)
|
||||
(T
|
||||
<CURSET 1 1>
|
||||
<TELL "You are ">
|
||||
<CURSET 1 63>
|
||||
<TELL "It is now ">)>
|
||||
<SETG PLAYER-NOT-FACING-OLD 99> ;"to ensure USL"
|
||||
<BUFOUT T>
|
||||
<HLIGHT ,H-NORMAL>
|
||||
<SCREEN 0>>
|
||||
|
||||
<ROUTINE INVERSE-LINE (LIN "AUX" (CNT 79))
|
||||
<CURSET .LIN 1>
|
||||
<HLIGHT ,H-INVERSE>
|
||||
<PRINT-SPACES .CNT>
|
||||
<HLIGHT ,H-NORMAL>>
|
||||
|
||||
<ROUTINE PRINT-SPACES (CNT)
|
||||
<REPEAT ()
|
||||
<COND (<DLESS? CNT 0> <RETURN>) (T <PRINTC 32>)>>>
|
||||
|
||||
<GLOBAL SL-BUFFER <ITABLE NONE 80>>
|
||||
|
||||
<ROUTINE STATUS-LINE ("AUX" LEN (X <>))
|
||||
<COND (<ZERO? <GETB 0 18>> ;"not ZIP"
|
||||
<RTRUE>)>
|
||||
<COND (<OR <NOT <==? ,LAST-PLAYER-LOC ,HERE>>
|
||||
<NOT <==? ,PLAYER-NOT-FACING-OLD ,PLAYER-NOT-FACING>>
|
||||
<NOT <==? ,PLAYER-SEATED-OLD ,PLAYER-SEATED>>>
|
||||
<SET X T>)>
|
||||
<COND (<AND <ZERO? .X>
|
||||
<OR ;<NOT ,P-WON> ,CLOCK-WAIT>>
|
||||
<RTRUE>)>
|
||||
<BUFOUT <>>
|
||||
<SCREEN 1>
|
||||
<HLIGHT ,H-INVERSE>
|
||||
<COND (.X
|
||||
<SETG LAST-PLAYER-LOC ,HERE>
|
||||
<SETG PLAYER-NOT-FACING-OLD ,PLAYER-NOT-FACING>
|
||||
<SETG PLAYER-SEATED-OLD ,PLAYER-SEATED>
|
||||
<DIROUT -1>
|
||||
<DIROUT 3 ;,D-TABLE ,SL-BUFFER>
|
||||
<TELL-LOCATION>
|
||||
<DIROUT -3>
|
||||
<DIROUT 1 ;,D-NORMAL>
|
||||
<SET LEN <GET ,SL-BUFFER 0>>
|
||||
<CURSET 1 9>
|
||||
<TELL-LOCATION>
|
||||
<PRINT-SPACES <- %<- 64 10> .LEN>>)>
|
||||
<CURSET 1 73>
|
||||
<TIME-PRINT ,PRESENT-TIME>
|
||||
<PRINTI ". ">
|
||||
<SCREEN 0>
|
||||
;<CURSET <- <GETB 0 32> 1> 1> ;<CURSET 23 1>
|
||||
<BUFOUT T>
|
||||
<HLIGHT ,H-NORMAL>>
|
||||
|
||||
<ROUTINE TELL-LOCATION ("AUX" DIR)
|
||||
<COND (<EQUAL? ,HERE ,UNCONSCIOUS>
|
||||
<TELL "unconscious.">
|
||||
<RTRUE>)>
|
||||
<COND (<ZERO? ,PLAYER-SEATED> T)
|
||||
(<L? 0 ,PLAYER-SEATED> <TELL "sitting ">)
|
||||
(T <TELL "lying ">)>
|
||||
<COND (<FSET? ,HERE ,SURFACEBIT>
|
||||
<TELL "on">)
|
||||
(<NOT <EQUAL? ,HERE ,BESIDE-TRACKS>>
|
||||
<TELL "in">)>
|
||||
<TELL THE ,HERE>
|
||||
<COND (<NOT <ZERO? ,PLAYER-NOT-FACING>>
|
||||
<TELL ", facing ">
|
||||
<SET DIR <OPP-DIR ,PLAYER-NOT-FACING>>
|
||||
<COND (<AND <==? .DIR ,P?EAST> ,ON-TRAIN>
|
||||
<TELL "the right side" ;" of the train">)
|
||||
(<AND <==? .DIR ,P?WEST> ,ON-TRAIN>
|
||||
<TELL "the left side" ;" of the train">)
|
||||
(T <DIR-PRINT .DIR>)>)
|
||||
;(<NOT <ZERO? ,PLAYER-SEATED>>
|
||||
<TELL ", ">
|
||||
<COND (<L? 0 ,PLAYER-SEATED>
|
||||
<TELL "sitting on" THE ,PLAYER-SEATED>)
|
||||
(T <TELL "lying on" THE <- 0 ,PLAYER-SEATED>>)>)>
|
||||
<TELL ".">>
|
|
@ -0,0 +1,248 @@
|
|||
**** FILE PS:<S5>PARSER.ZIL.30, 1-1 (0)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 1-1 (0)
|
||||
<GLOBAL P-DIR 0>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 1-89 (1651)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 2-56 (1976)
|
||||
<GLOBAL P-WON <>>
|
||||
<ROUTINE VERB-ALL-TEST (OBJ1 OBJ) ;"OBJ1=PRSO OBJ=PRSI"
|
||||
<COND (<VERB? DROP GIVE>
|
||||
<COND (<EQUAL? .OBJ1 ,POCKET>
|
||||
<RFALSE>)
|
||||
(<OR <IN? .OBJ1 ,WINNER> ;<IN? ,P-IT-OBJECT ,WINNER>>
|
||||
<RTRUE>)
|
||||
;(T <RFALSE>)>)
|
||||
(<VERB? PUT PUT-IN>
|
||||
<COND (<EQUAL? .OBJ1 ,POCKET>
|
||||
<RFALSE>)
|
||||
(<NOT <HELD? .OBJ1 .OBJ>>
|
||||
<RTRUE>)
|
||||
;(T <RFALSE>)>)
|
||||
(<VERB? TAKE>
|
||||
<COND (<AND <NOT <FSET? .OBJ1 ,TAKEBIT>>
|
||||
<NOT <FSET? .OBJ1 ,TRYTAKEBIT>>>
|
||||
<RFALSE>)
|
||||
(<NOT <ZERO? .OBJ>>
|
||||
<COND (<IN? .OBJ1 .OBJ>
|
||||
<RTRUE>)
|
||||
;(T <RFALSE>)>)
|
||||
(<EQUAL? <LOC .OBJ1> ,WINNER ,HERE>
|
||||
<RTRUE>)
|
||||
(<FSET? <LOC .OBJ1> ,SURFACEBIT>
|
||||
<RTRUE>)
|
||||
;(T <RFALSE>)>)
|
||||
(<NOT <ZERO? .OBJ>>
|
||||
<COND (<NOT <==? .OBJ1 .OBJ>>
|
||||
<RTRUE>)
|
||||
;(T <RFALSE>)>)
|
||||
(T <RTRUE>)>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 2-7 (2236)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 4-122 (20094)
|
||||
<SETG P-NUMBER -1>
|
||||
<SETG P-NAM <>>
|
||||
<SETG P-ADJ <>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 2-154 (6879)
|
||||
<COND (,P-OFLAG
|
||||
<ORPHAN-MERGE>)>
|
||||
<SETG P-WALK-DIR <>>>
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 4-317 (26593)
|
||||
<SETG P-WALK-DIR <>>
|
||||
<COND (<AND ,P-OFLAG
|
||||
<ORPHAN-MERGE>>
|
||||
<SETG WINNER .OWINNER>)>
|
||||
<COND (<==? <GET ,P-ITBL ,P-VERB> 0>
|
||||
<PUT ,P-ITBL ,P-VERB ,ACT?$CALL>)>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 2-220 (9379)
|
||||
;"This next clause was 2 clauses further down"
|
||||
;"This attempts to fix EDDIE, TURN ON COMPUTER"
|
||||
(<AND .ANDFLG
|
||||
<EQUAL? <GET ,P-ITBL ,P-VERB> 0>>
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 5-63 (29606)
|
||||
;"3/16/83: This clause used to be later."
|
||||
(<AND .ANDFLG
|
||||
<OR ;"3/25/83: next statement added."
|
||||
<EQUAL? <GET ,P-ITBL ,P-VERBN> 0>
|
||||
;"10/26/84: next stmt changed"
|
||||
<VERB-DIR-ONLY? .WRD>>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 2-245 (10269)
|
||||
;(<AND <OR ,P-MERGED
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 5-90 (30506)
|
||||
(<AND <OR ,P-MERGED
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 2-252 (10536)
|
||||
(<OR <WT? .WRD ,PS?ADJECTIVE>
|
||||
<WT? .WRD ,PS?BUZZ-WORD>>)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 5-95 (30685)
|
||||
(<AND .ANDFLG
|
||||
<EQUAL? <GET ,P-ITBL ,P-VERB> 0>>
|
||||
<SET PTR <- .PTR 4>>
|
||||
<PUT ,P-LEXV <+ .PTR 2> ,W?THEN>
|
||||
<SETG P-LEN <+ ,P-LEN 2>>)
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 2-270 (11096)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 5-123 (31557)
|
||||
<GLOBAL P-DIRECTION 0>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 3-18 (12217)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 6-23 (33526)
|
||||
(<AND ,P-CONT
|
||||
<==? .VERB ,ACT?TELL>>
|
||||
<RFALSE>)
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 3-23 (12370)
|
||||
<PUT ,P-OTBL ,P-NC1 <REST ,P-LEXV 2>>
|
||||
<COND (<0? <GET ,P-ITBL ,P-NC1L>>
|
||||
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>
|
||||
<COND (<0? ,P-NCN> <SETG P-NCN 1>)>)
|
||||
(T
|
||||
<PUT ,P-OTBL ,P-NC1 <GET ,P-ITBL ,P-NC1>>)>
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 6-31 (33742)
|
||||
<PUT ,P-OTBL ,P-NC1 <REST ,P-LEXV 2>>)
|
||||
(T
|
||||
<PUT ,P-OTBL ,P-NC1 <GET ,P-ITBL ,P-NC1>>)>
|
||||
<COND (<0? <GET ,P-ITBL ,P-NC1L>>
|
||||
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 3-37 (12873)
|
||||
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV 2>>
|
||||
<COND (<0? <GET ,P-ITBL ,P-NC1L>>
|
||||
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>)>
|
||||
<PUT ,P-OTBL ,P-NC2 <GET ,P-ITBL ,P-NC1>>
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 6-43 (34155)
|
||||
<PUT ,P-ITBL ,P-NC1 <REST ,P-LEXV 2>>)>
|
||||
<PUT ,P-OTBL ,P-NC2 <GET ,P-ITBL ,P-NC1>>
|
||||
<COND (<0? <GET ,P-ITBL ,P-NC1L>>
|
||||
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 3-82 (14311)
|
||||
;<AND <NOT <==? <GET ,P-OTBL ,P-NC2> 0>> <SETG P-NCN 2>>
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 6-88 (35577)
|
||||
<COND (<NOT <==? <GET ,P-OTBL ,P-NC2> 0>> <SETG P-NCN 2>)
|
||||
(T <SETG P-NCN 1>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 5-47 (17784)
|
||||
(<NOT <==? ,WINNER ,PROTAGONIST>>
|
||||
<CANT-ORPHAN>)
|
||||
(T
|
||||
<ORPHAN .DRIVE1 .DRIVE2>
|
||||
<TELL "What do you want to ">
|
||||
<SET TMP <GET ,P-OTBL ,P-VERBN>>
|
||||
<COND (<EQUAL? .TMP 0>
|
||||
<TELL "tell">)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 8-50 (40244)
|
||||
(T
|
||||
<COND (<EQUAL? ,WINNER ,PLAYER>
|
||||
<ORPHAN .DRIVE1 .DRIVE2>
|
||||
<TELL "(Wh"
|
||||
<COND (<EQUAL? .VERB ,ACT?WALK ,ACT?FACE> "ere")
|
||||
(T "at")>
|
||||
" do you want to ">)
|
||||
(T
|
||||
<TELL
|
||||
"(Your command was not complete. Next time, type wh"
|
||||
<COND (<EQUAL? .VERB ,ACT?WALK ,ACT?FACE> "ere") (T "at")>
|
||||
" you want" THE ,WINNER " to ">)>
|
||||
<VERB-PRINT>
|
||||
<COND (.DRIVE2
|
||||
<CLAUSE-PRINT ,P-NC1 ,P-NC1L>)>
|
||||
<PREP-PRINT <COND (.DRIVE1 <GETB .DRIVE1 ,P-SPREP1>)
|
||||
(T <GETB .DRIVE2 ,P-SPREP2>)>>
|
||||
<COND (<EQUAL? ,WINNER ,PLAYER>
|
||||
<SETG P-OFLAG T>
|
||||
<TELL "?)" CR>)
|
||||
(T
|
||||
<SETG P-OFLAG <>>
|
||||
<TELL ".)" CR>)>
|
||||
<RFALSE>)>>
|
||||
<ROUTINE DONT-UNDERSTAND ()
|
||||
<TELL
|
||||
"(Sorry, but I don't understand. Please reword that or try something else.)"
|
||||
CR>>
|
||||
<ROUTINE VERB-PRINT ("AUX" TMP)
|
||||
<SET TMP <GET ,P-ITBL ,P-VERBN>> ;"? ,P-OTBL?"
|
||||
<COND (<==? .TMP 0> <TELL "tell">)
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 5-62 (18271)
|
||||
<PUTB ,P-VTBL 2 0>)>
|
||||
<COND (.DRIVE2
|
||||
<CLAUSE-PRINT ,P-NC1 ,P-NC1L>)>
|
||||
<SETG P-OFLAG T>
|
||||
<PREP-PRINT <COND (.DRIVE1 <GETB .DRIVE1 ,P-SPREP1>)
|
||||
(T <GETB .DRIVE2 ,P-SPREP2>)>>
|
||||
<TELL "?" CR>
|
||||
<RFALSE>)>>
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 8-90 (41487)
|
||||
<PUTB ,P-VTBL 2 0>)>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 8-19 (23978)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 11-20 (48448)
|
||||
<GLOBAL P-ADJN <>>
|
||||
<GLOBAL P-XADJN <>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 9-3 (24357)
|
||||
<ROUTINE SNARFEM (...)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 12-2 (48905)
|
||||
<ROUTINE SNARFEM (... WV)
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 9-46 (25706)
|
||||
(<AND <WT? .WRD ,PS?ADJECTIVE>
|
||||
<NOT ,P-ADJ>>
|
||||
<SETG P-ADJ .WRD>)>)>>>
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 12-54 (50492)
|
||||
(<AND <SET WV <WT? .WRD ,PS?ADJECTIVE ,P1?ADJECTIVE>>
|
||||
<NOT ,P-ADJ>>
|
||||
<SETG P-ADJ .WV>
|
||||
<SETG P-ADJN .WRD>)>)>>>
|
||||
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 9-79 (26371)
|
||||
<ROUTINE GET-OBJECT (TBL "OPTIONAL" (VRB T)
|
||||
"AUX" GEN BITS LEN XBITS TLEN (GCHECK <>) (OLEN 0) OBJ)
|
||||
...
|
||||
<COND (<AND <NOT ,P-NAM> ,P-ADJ <WT? ,P-ADJ ,PS?OBJECT>>
|
||||
<SETG P-NAM ,P-ADJ>
|
||||
<SETG P-ADJ <>>)>
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 13-2 (50989)
|
||||
<ROUTINE GET-OBJECT (TBL
|
||||
"OPTIONAL" (VRB T)
|
||||
"AUX" BTS LEN XBITS TLEN (GCHECK <>) (OLEN 0) OBJ ADJ)
|
||||
...
|
||||
<SET ADJ ,P-ADJN>
|
||||
<COND (<AND <NOT ,P-NAM> ,P-ADJ>
|
||||
<COND (<WT? ,P-ADJN ,PS?OBJECT>
|
||||
<SETG P-NAM ,P-ADJN>
|
||||
<SETG P-ADJ <>>)
|
||||
(<SET BTS <WT? ,P-ADJN ,PS?DIRECTION ,P1?DIRECTION>>
|
||||
<SETG P-ADJ <>>
|
||||
<PUT .TBL ,P-MATCHLEN 1>
|
||||
<PUT .TBL 1 ,INTDIR>
|
||||
<SETG P-DIRECTION .BTS>
|
||||
<RTRUE>)>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<S5>PARSER.ZIL.30, 9-170 (29350)
|
||||
**** FILE PS:<SWG>PARSER.ZIL.85, 13-96 (53976)
|
||||
<SETG P-XADJN ,P-ADJN>
|
||||
<SETG P-ADJN <>>
|
||||
***************
|
|
@ -0,0 +1,910 @@
|
|||
|
||||
;COMPARISON OF PS:<CHECKPOINT>PARSER.ZIL.151 AND PS:<CHECKPOINT>PARSER.ZIL.170
|
||||
;OPTIONS ARE /3
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 1-8 (222)
|
||||
<SETG SIBREAKS ".,\"!?">
|
||||
"<GLOBAL GWIM-DISABLE <>>"
|
||||
<GLOBAL PRSA 0>
|
||||
<GLOBAL PRSI 0>
|
||||
<GLOBAL PRSO 0>
|
||||
"<GLOBAL P-TABLE 0>
|
||||
<GLOBAL P-ONEOBJ 0>"
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-8 (222)
|
||||
<SETG SIBREAKS ".,\"!?">
|
||||
<GLOBAL PRSA 0>
|
||||
<GLOBAL PRSI 0>
|
||||
<GLOBAL PRSO 0>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 1-34 (564)
|
||||
"INBUF - Input buffer for READ"
|
||||
<GLOBAL P-INBUF <ITABLE BYTE 100>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-26 (483)
|
||||
<GLOBAL AGAIN-LEXV <ITABLE BYTE 120>>
|
||||
<GLOBAL RESERVE-LEXV <ITABLE BYTE 120>>
|
||||
<GLOBAL RESERVE-PTR <>>
|
||||
"INBUF - Input buffer for READ"
|
||||
<GLOBAL P-INBUF <ITABLE BYTE 60>>
|
||||
<GLOBAL OOPS-INBUF <ITABLE BYTE 60>>
|
||||
<GLOBAL OOPS-TABLE <TABLE <> <> <> <>>>
|
||||
<CONSTANT O-PTR 0>
|
||||
<CONSTANT O-START 1>
|
||||
<CONSTANT O-LENGTH 2>
|
||||
<CONSTANT O-END 3>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 1-56 (926)
|
||||
"Parser variables and temporaries"
|
||||
"<CONSTANT P-PHRLEN 3>
|
||||
<CONSTANT P-ORPHLEN 7>
|
||||
<CONSTANT P-RTLEN 3>"
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-58 (1115)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-14 (1292)
|
||||
<CONSTANT P-PSOFF 6 ;4>
|
||||
"Offset to first part of speech"
|
||||
<CONSTANT P-P1OFF 7 ;5>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-70 (1371)
|
||||
<CONSTANT P-PSOFF %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 6) (T 4)>>
|
||||
"Offset to first part of speech"
|
||||
<CONSTANT P-P1OFF %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> 7) (T 5)>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-58 (1980)
|
||||
"<GLOBAL P-WHAT-IGNORED <>>
|
||||
<GLOBAL P-WON <>>"
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-114 (2165)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-77 (2349)
|
||||
<GLOBAL L-PRSA <>>
|
||||
<GLOBAL L-PRSO <>>
|
||||
<GLOBAL L-PRSI <>>
|
||||
<GLOBAL L-WINNER <>>
|
||||
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP X)
|
||||
;#DECL((CNT OCNT ICNT NUM) FIX (V) <OR 'T FIX FALSE> (OBJ)<OR FALSE OBJECT>
|
||||
(OBJ1) OBJECT (TBL) TABLE (PTBL) <OR FALSE ATOM>)
|
||||
<REPEAT ()
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-130 (2483)
|
||||
<ROUTINE MAIN-LOOP ("AUX" X) <REPEAT () <SET X <MAIN-LOOP-1>>>>
|
||||
<ROUTINE MAIN-LOOP-1 ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP X)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-98 (3028)
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
|
||||
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
|
||||
<TELL ,I-ASSUME THE ,P-IT-OBJECT ".)" CR>
|
||||
<SET TMP T>
|
||||
<RETURN>)>)>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-145 (2998)
|
||||
<COND (<IGRTR? CNT .ICNT>
|
||||
<RETURN>)>
|
||||
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
|
||||
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
|
||||
<TELL ,I-ASSUME THE ,P-IT-OBJECT ".)" CR>
|
||||
<SET TMP T>
|
||||
<RETURN>)>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-109 (3333)
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
|
||||
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
|
||||
<TELL ,I-ASSUME THE ,P-IT-OBJECT ".)" CR>
|
||||
<RETURN>)>)>>)>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-155 (3280)
|
||||
<COND (<IGRTR? CNT .OCNT>
|
||||
<RETURN>)>
|
||||
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
|
||||
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
|
||||
<TELL ,I-ASSUME THE ,P-IT-OBJECT ".)" CR>
|
||||
<RETURN>)>>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-163 (4830)
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .NUM>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-208 (4754)
|
||||
<COND (<IGRTR? CNT .NUM>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-207 (6192)
|
||||
<COND (<GAME-VERB?> T)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-252 (6103)
|
||||
;<COND (<GAME-VERB?> T)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-219 (6493)
|
||||
<COND (<AND <NOT <VERB? SAVE RESTORE>>
|
||||
<GAME-VERB?>> T)
|
||||
(<AND <VERB? AGAIN>
|
||||
<NOT <EQUAL? ,L-PRSA ,V?SAVE ,V?RESTORE>>
|
||||
<GAME-VERB? ,L-PRSA>>
|
||||
T)
|
||||
(T
|
||||
<SET V <CLOCKER>>)>)>>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-264 (6405)
|
||||
<COND (<OR <VERB? SAVE RESTORE>
|
||||
<NOT <GAME-VERB?>>>
|
||||
<SET V <CLOCKER>>)>)>
|
||||
<SETG PRSA <>>
|
||||
<SETG PRSO <>>
|
||||
<SETG PRSI <>>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-268 (7797)
|
||||
(<EQUAL? .V ,V?$AGAIN ,V?$QUEUE ,V?$STATION> <RTRUE>)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-311 (7659)
|
||||
(<EQUAL? .V ;,V?$AGAIN ,V?$QUEUE ,V?$STATION> <RTRUE>)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-293 (8828)
|
||||
<SETG L-WINNER ,WINNER>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-336 (8691)
|
||||
;<SETG L-WINNER ,WINNER>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 2-311 (9347)
|
||||
<RTRUE>)>
|
||||
<COND (<AND <VERB? WALK FACE> <==? .OBJ ,PRSO>>
|
||||
<RTRUE>)>
|
||||
<COND (<NOT <FSET? .OBJ ,PERSONBIT>>
|
||||
<COND (<NOT <EQUAL? .OBJ ,GLOBAL-HERE ,INTDIR>>
|
||||
<FSET ,IT ,TOUCHBIT> ;"to cause pronoun 'it' in output"
|
||||
<SETG P-IT-OBJECT .OBJ>)>)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 1-354 (9211)
|
||||
<RTRUE>)
|
||||
(<EQUAL? .OBJ ,INTDIR ,GLOBAL-HERE>
|
||||
<RTRUE>)
|
||||
(<AND <VERB? WALK WALK-TO FACE> <==? .OBJ ,PRSO>>
|
||||
<RTRUE>)>
|
||||
<COND (<NOT <FSET? .OBJ ,PERSONBIT>>
|
||||
<FSET ,IT ,TOUCHBIT> ;"to cause pronoun 'it' in output"
|
||||
<SETG P-IT-OBJECT .OBJ>)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 3-17 (10550)
|
||||
<GLOBAL NOW-PRSI <>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 2-17 (10410)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 3-48 (11630)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 2-46 (11466)
|
||||
<GLOBAL NOW-PRSI <>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 3-65 (12130)
|
||||
<COND (<NOT <EQUAL? .A ,V?WALK ,V?FACE>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 2-65 (11990)
|
||||
<COND ;(<AND <NOT ,LIT>
|
||||
<SEE-VERB?>>
|
||||
<TOO-DARK>
|
||||
<RFATAL>)
|
||||
(<NOT <EQUAL? .A ,V?WALK ,V?FACE>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 3-121 (14238)
|
||||
(<AND <SET O ,PRSO>
|
||||
<SET V <THIS-IS-IT ,PRSO>>
|
||||
<SET I ,PRSI>
|
||||
<SET V <THIS-IS-IT ,PRSI>>
|
||||
<SET V <THIS-IS-IT ,PRSO>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 2-125 (14183)
|
||||
(<AND <SET V <THIS-IS-IT ,PRSI>>
|
||||
<SET V <THIS-IS-IT ,PRSO>>
|
||||
<SET O ,PRSO>
|
||||
<SET I ,PRSI>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 3-143 (14925)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 2-146 (14836)
|
||||
(<AND .I ;"This new clause applies CONTFCN to PRSI, BM 2/85"
|
||||
<SETG NOW-PRSI T>
|
||||
<NOT <EQUAL? .A ,V?WALK>>
|
||||
<LOC .I>
|
||||
<SET V <GETP <LOC .I> ,P?CONTFCN>>
|
||||
<SET V <APPLY .V ,M-CONT>>>
|
||||
.V)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 3-152 (15181)
|
||||
<SET V <APPLY .V ,M-CONT>>
|
||||
;<SET V <DD-APPLY "Container" <LOC .O>
|
||||
<GETP <LOC .O> ,P?CONTFCN>>>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 2-162 (15325)
|
||||
<SET V <APPLY .V ,M-CONT>>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 3-174 (15802)
|
||||
;"<ROUTINE DD-APPLY (STR OBJ FCN)
|
||||
<COND (,DEBUG
|
||||
<PRINTC %<ASCII !\[>>
|
||||
<TELL D .OBJ '=]'>)>
|
||||
<D-APPLY .STR .FCN>>"
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 2-182 (15862)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-16 (17116)
|
||||
<RFALSE>
|
||||
;<COND (<NOT <ZERO? ,P-PROMPT>>
|
||||
<ENABLE <QUEUE I-PROMPT 9>>
|
||||
<RFALSE>)
|
||||
(T
|
||||
<TELL "|
|
||||
(You won't see \"What next?\" any more.)" CR>
|
||||
<COND (<VERB? ;WAIT WAIT-FOR WAIT-UNTIL> <CRLF>)>
|
||||
<DISABLE <INT I-PROMPT>>
|
||||
<RFALSE>)>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-16 (17038)
|
||||
<RFALSE>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-67 (18978)
|
||||
<COND (<G? ,QUESTION-WORD-COUNT 9>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-58 (18663)
|
||||
<COND (<G? ,QUESTION-WORD-COUNT 4 ;9>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-76 (19282)
|
||||
Now you can try again.)" CR>)
|
||||
(T <TELL ", not statements or questions.)" CR>)>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-67 (18970)
|
||||
Now you can try again">)
|
||||
(T <TELL ", not statements or questions">)>
|
||||
<TELL ".)" CR>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-101 (20351)
|
||||
PISS SCREW SHIT CRAP SUCK>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-93 (20053)
|
||||
PISS SCREW SHIT CRAP SUCK
|
||||
FUCKED GODDAMN ASSHOLE CUNT SHITHEAD SUCKS DAMNED PEE COCKSUCKER BITCH>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-108 (20605)
|
||||
<EQUAL? .WORD ,W?BASTARD ,W?SCREW ,W?CRAP>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-101 (20380)
|
||||
<EQUAL? .WORD ,W?BASTARD ,W?SCREW ,W?CRAP>
|
||||
<EQUAL? .WORD ,W?FUCKED ,W?GODDAMN ,W?ASSHOLE>
|
||||
<EQUAL? .WORD ,W?CUNT ,W?SHITHEAD ,W?SUCKS>
|
||||
<EQUAL? .WORD ,W?DAMNED ,W?PEE ,W?COCKSUCKER>
|
||||
<EQUAL? .WORD ,W?BITCH>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-116 (20781)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-113 (20741)
|
||||
"What charming language!"
|
||||
"Computers aren't impressed by naughty words!"
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-121 (20933)
|
||||
<ROUTINE PARSER ("AUX" (PTR ,P-LEXSTART) WRD (VAL 0) (VERB <>) (OF-FLAG <>)
|
||||
LEN (DIR <>) (NW 0) (LW 0) NUM SCNT (CNT -1) OWINNER)
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> ,P-ITBLLEN> <RETURN>)
|
||||
(T <PUT ,P-ITBL .CNT 0>)>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-120 (20972)
|
||||
<BUZZ AGAIN G OOPS>
|
||||
<ROUTINE PARSER ("AUX" (PTR ,P-LEXSTART) WRD (VAL 0) (VERB <>) (OF-FLAG <>)
|
||||
LEN (DIR <>) (NW 0) (LW 0) (CNT -1) OMERGED OWINNER
|
||||
OLEN)
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> ,P-ITBLLEN> <RETURN>)
|
||||
(T
|
||||
<COND (<NOT ,P-OFLAG>
|
||||
<PUT ,P-OTBL .CNT <GET ,P-ITBL .CNT>>)>
|
||||
<PUT ,P-ITBL .CNT 0>)>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-130 (21259)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-135 (21427)
|
||||
<SET OMERGED ,P-MERGED>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-138 (21504)
|
||||
<SETG L-WINNER ,WINNER>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-144 (21698)
|
||||
;<SETG L-WINNER ,WINNER>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-144 (21734)
|
||||
<COND (<NOT <ZERO? ,P-CONT>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-150 (21929)
|
||||
<COND (,RESERVE-PTR
|
||||
<SET PTR ,RESERVE-PTR>
|
||||
<STUFF ,P-LEXV ,RESERVE-LEXV>
|
||||
<COND (<AND <EQUAL? ,VERBOSE 1 2>
|
||||
<==? ,PLAYER ,WINNER>>
|
||||
<CRLF>)>
|
||||
<SETG RESERVE-PTR <>>
|
||||
<SETG P-CONT <>>)
|
||||
(<NOT <ZERO? ,P-CONT>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-153 (21999)
|
||||
<SETG L-WINNER ,WINNER>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-167 (22436)
|
||||
;<SETG L-WINNER ,WINNER>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-171 (22689)
|
||||
;<==? <SETG P-PROMPT <- ,P-PROMPT 1>> 0>
|
||||
<TELL "(You won't see \"What next?\" any more.)|
|
||||
">
|
||||
;<COND (<VERB? ;WAIT WAIT-FOR WAIT-UNTIL>
|
||||
<CRLF>)>)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-185 (23127)
|
||||
<TELL
|
||||
"(You won't see \"What next?\" any more.)|
|
||||
">)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-179 (22951)
|
||||
<STATUS-LINE>
|
||||
<TELL ">">
|
||||
<READ ,P-INBUF ,P-LEXV>)>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-191 (23271)
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'<PROG ()
|
||||
<STATUS-LINE>
|
||||
<TELL ">">>)
|
||||
(T
|
||||
'<TELL ">">)>
|
||||
<READ ,P-INBUF ,P-LEXV>
|
||||
<SET OLEN <GETB ,P-LEXV ,P-LEXWORDS>>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-196 (23742)
|
||||
<COND (<0? ,P-LEN> <TELL "I beg your pardon?" CR> <RFALSE>)>
|
||||
<SET LEN ,P-LEN>
|
||||
<SETG P-DIR <>>
|
||||
<SETG P-NCN 0>
|
||||
<SETG P-GETFLAGS 0>
|
||||
;"3/25/83: Next statement added."
|
||||
<PUT ,P-ITBL ,P-VERBN 0>
|
||||
<REPEAT ()
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-213 (24226)
|
||||
<COND (<0? ,P-LEN> <TELL "I beg your pardon?" CR> <RFALSE>)
|
||||
(<EQUAL? <GET ,P-LEXV .PTR> ,W?OOPS>
|
||||
<COND (<NOT <G? ,P-LEN 1>>
|
||||
<TELL "I can't help your clumsiness." CR>
|
||||
<RFALSE>)
|
||||
(<GET ,OOPS-TABLE ,O-PTR>
|
||||
<PUT ,AGAIN-LEXV <GET ,OOPS-TABLE ,O-PTR>
|
||||
<GET ,P-LEXV <+ .PTR ,P-LEXELEN>>>
|
||||
<INBUF-ADD <GETB ,P-LEXV <+ <* .PTR ,P-LEXELEN> 6>>
|
||||
<GETB ,P-LEXV <+ <* .PTR ,P-LEXELEN> 7>>
|
||||
<+ <* <GET ,OOPS-TABLE ,O-PTR> ,P-LEXELEN> 3>>
|
||||
<STUFF ,P-LEXV ,AGAIN-LEXV>
|
||||
<SETG P-LEN <GETB ,P-LEXV ,P-LEXWORDS>>;"Will this help?"
|
||||
<SET PTR <GET ,OOPS-TABLE ,O-START>>
|
||||
<INBUF-STUFF ,P-INBUF ,OOPS-INBUF>)
|
||||
(T
|
||||
<PUT ,OOPS-TABLE ,O-END <>>
|
||||
<TELL "There was no word to replace!" CR>
|
||||
<RFALSE>)>)
|
||||
(T <PUT ,OOPS-TABLE ,O-END <>>)>
|
||||
<COND (<EQUAL? <GET ,P-LEXV .PTR> ,W?AGAIN ,W?G>
|
||||
<COND (,P-OFLAG
|
||||
<TELL "It's difficult to repeat fragments." CR>
|
||||
<RFALSE>)
|
||||
(<G? ,P-LEN 1>
|
||||
<COND (<OR <EQUAL? <GET ,P-LEXV <+ .PTR ,P-LEXELEN>>
|
||||
,W?PERIOD ,W?COMMA ,W?THEN>
|
||||
<EQUAL? <GET ,P-LEXV <+ .PTR ,P-LEXELEN>>
|
||||
,W?AND>>
|
||||
<SET PTR <+ .PTR <* 2 ,P-LEXELEN>>>
|
||||
<PUTB ,P-LEXV ,P-LEXWORDS
|
||||
<- <GETB ,P-LEXV ,P-LEXWORDS> 2>>)
|
||||
(T
|
||||
<TELL "I couldn't understand that sentence." CR>
|
||||
<RFALSE>)>)
|
||||
(T
|
||||
<SET PTR <+ .PTR ,P-LEXELEN>>
|
||||
<PUTB ,P-LEXV ,P-LEXWORDS
|
||||
<- <GETB ,P-LEXV ,P-LEXWORDS> 1>>)>
|
||||
<COND (<G? <GETB ,P-LEXV ,P-LEXWORDS> 0>
|
||||
<STUFF ,RESERVE-LEXV ,P-LEXV>
|
||||
<SETG RESERVE-PTR .PTR>)
|
||||
(T
|
||||
<SETG RESERVE-PTR <>>)>
|
||||
;<SETG P-LEN <GETB ,AGAIN-LEXV ,P-LEXWORDS>>
|
||||
<SETG WINNER .OWINNER>
|
||||
<SETG P-MERGED .OMERGED>
|
||||
<INBUF-STUFF ,P-INBUF ,OOPS-INBUF>
|
||||
<STUFF ,P-LEXV ,AGAIN-LEXV>
|
||||
<SET CNT -1>
|
||||
<SET DIR ,P-WALK-DIR>
|
||||
<REPEAT ()
|
||||
<COND (<IGRTR? CNT ,P-ITBLLEN> <RETURN>)
|
||||
(T <PUT ,P-ITBL .CNT <GET ,P-OTBL .CNT>>)>>)
|
||||
(T
|
||||
<STUFF ,AGAIN-LEXV ,P-LEXV>
|
||||
<INBUF-STUFF ,OOPS-INBUF ,P-INBUF>
|
||||
<PUT ,OOPS-TABLE ,O-START .PTR>
|
||||
<PUT ,OOPS-TABLE ,O-LENGTH <* 4 .OLEN>>
|
||||
<SETG RESERVE-PTR <>>
|
||||
<SET LEN ,P-LEN>
|
||||
<SETG P-DIR <>>
|
||||
<SETG P-NCN 0>
|
||||
<SETG P-GETFLAGS 0>
|
||||
;"3/25/83: Next statement added."
|
||||
<PUT ,P-ITBL ,P-VERBN 0>
|
||||
<REPEAT ()
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-226 (24687)
|
||||
(<OR <EQUAL? .WRD ,W?THEN ,W?PERIOD>
|
||||
<EQUAL? .WRD ,W?QUOTE>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-302 (27443)
|
||||
(<EQUAL? .WRD ,W?THEN ,W?PERIOD ,W?QUOTE>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-276 (26283)
|
||||
<SET NUM
|
||||
<+ <* .PTR 2> 2>>>>
|
||||
<PUTB ,P-VTBL 3 <GETB ,P-LEXV <+ .NUM 1>>>)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-351 (29013)
|
||||
<SET ?TMP1
|
||||
<+ <* .PTR 2> 2>>>>
|
||||
<PUTB ,P-VTBL 3 <GETB ,P-LEXV <+ .?TMP1 1>>>)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 4-343 (28348)
|
||||
<SET PTR <+ .PTR ,P-LEXELEN>>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 3-418 (31082)
|
||||
<SET PTR <+ .PTR ,P-LEXELEN>>>)>
|
||||
<PUT ,OOPS-TABLE ,O-PTR <>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 5-2 (28917)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 4-2 (31685)
|
||||
"For AGAIN purposes, put contents of one LEXV table into another:"
|
||||
<ROUTINE STUFF (DEST SRC "OPTIONAL" (MAX 29) "AUX" (PTR ,P-LEXSTART) (CTR 1)
|
||||
BPTR)
|
||||
<PUTB .DEST 0 <GETB .SRC 0>>
|
||||
<PUTB .DEST 1 <GETB .SRC 1>>
|
||||
<REPEAT ()
|
||||
<PUT .DEST .PTR <GET .SRC .PTR>>
|
||||
<SET BPTR <+ <* .PTR 2> 2>>
|
||||
<PUTB .DEST .BPTR <GETB .SRC .BPTR>>
|
||||
<SET BPTR <+ <* .PTR 2> 3>>
|
||||
<PUTB .DEST .BPTR <GETB .SRC .BPTR>>
|
||||
<SET PTR <+ .PTR ,P-LEXELEN>>
|
||||
<COND (<IGRTR? CTR .MAX>
|
||||
<RETURN>)>>>
|
||||
"Put contents of one INBUF into another:"
|
||||
<ROUTINE INBUF-STUFF (DEST SRC "AUX" (CNT -1))
|
||||
<REPEAT ()
|
||||
<COND (<IGRTR? CNT 59> <RETURN>)
|
||||
(T <PUTB .DEST .CNT <GETB .SRC .CNT>>)>>>
|
||||
"Put the word in the positions specified from P-INBUF to the end of
|
||||
OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV:"
|
||||
<ROUTINE INBUF-ADD (LEN BEG SLOT "AUX" DBEG (CTR 0) TMP)
|
||||
<COND (<SET TMP <GET ,OOPS-TABLE ,O-END>>
|
||||
<SET DBEG .TMP>)
|
||||
(T
|
||||
<SET DBEG <+ <GETB ,AGAIN-LEXV
|
||||
<SET TMP <GET ,OOPS-TABLE ,O-LENGTH>>>
|
||||
<GETB ,AGAIN-LEXV <+ .TMP 1>>>>)>
|
||||
<PUT ,OOPS-TABLE ,O-END <+ .DBEG .LEN>>
|
||||
<REPEAT ()
|
||||
<PUTB ,OOPS-INBUF <+ .DBEG .CTR> <GETB ,P-INBUF <+ .BEG .CTR>>>
|
||||
<SET CTR <+ .CTR 1>>
|
||||
<COND (<EQUAL? .CTR .LEN> <RETURN>)>>
|
||||
<PUTB ,AGAIN-LEXV .SLOT .DBEG>
|
||||
<PUTB ,AGAIN-LEXV <- .SLOT 1> .LEN>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 5-18 (29639)
|
||||
;#DECL ((PTR VAL OFF NUM) FIX (WRD NW) <OR FALSE FIX TABLE>
|
||||
(ANDFLG FIRST??) <OR ATOM FALSE>)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 4-59 (33766)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 6-24 (36837)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 5-24 (40859)
|
||||
<COND (<ZERO? <GET ,P-ITBL ,P-NC1L>> ;"? DELETE?"
|
||||
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>
|
||||
<COND (<ZERO? ,P-NCN> ;"? DELETE?"
|
||||
<SETG P-NCN 1>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 6-36 (37254)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 5-40 (41449)
|
||||
<COND (<ZERO? <GET ,P-ITBL ,P-NC1L>> ;"? DELETE?"
|
||||
<PUT ,P-ITBL ,P-NC1L <REST ,P-LEXV 6>>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 6-87 (38823)
|
||||
"New ACLAUSE-WIN for TRAP retrofix 6/21/84"
|
||||
<ROUTINE ACLAUSE-WIN (ADJ)
|
||||
<PUT ,P-ITBL ,P-VERB <GET ,P-OTBL ,P-VERB>>
|
||||
<CLAUSE-COPY ,P-OTBL ,P-OTBL ,P-ACLAUSE <+ ,P-ACLAUSE 1>
|
||||
,P-ACLAUSE <+ ,P-ACLAUSE 1> .ADJ>
|
||||
;"<PUT ,P-CCTBL ,CC-SBPTR ,P-ACLAUSE>
|
||||
<PUT ,P-CCTBL ,CC-SEPTR <+ ,P-ACLAUSE 1>>
|
||||
<PUT ,P-CCTBL ,CC-DBPTR ,P-ACLAUSE>
|
||||
<PUT ,P-CCTBL ,CC-DEPTR <+ ,P-ACLAUSE 1>>
|
||||
<CLAUSE-COPY ,P-OTBL ,P-OTBL .ADJ>"
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 5-93 (43124)
|
||||
<ROUTINE ACLAUSE-WIN (ADJ "AUX" X)
|
||||
<PUT ,P-ITBL ,P-VERB <GET ,P-OTBL ,P-VERB>>
|
||||
<SET X <+ ,P-ACLAUSE 1>>
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'<CLAUSE-COPY ,P-OTBL ,P-OTBL ,P-ACLAUSE .X ,P-ACLAUSE .X .ADJ>)
|
||||
(T
|
||||
'<PROG ()
|
||||
<PUT ,P-CCTBL ,CC-SBPTR ,P-ACLAUSE>
|
||||
<PUT ,P-CCTBL ,CC-SEPTR .X>
|
||||
<PUT ,P-CCTBL ,CC-DBPTR ,P-ACLAUSE>
|
||||
<PUT ,P-CCTBL ,CC-DEPTR .X>
|
||||
<CLAUSE-COPY ,P-OTBL ,P-OTBL .ADJ>>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 6-103 (39369)
|
||||
<CLAUSE-COPY ,P-ITBL ,P-OTBL ,P-NC1 ,P-NC1L
|
||||
,P-ACLAUSE <+ ,P-ACLAUSE 1>>
|
||||
;"<PUT ,P-CCTBL ,CC-SBPTR ,P-NC1>
|
||||
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC1L>
|
||||
<PUT ,P-CCTBL ,CC-DBPTR ,P-ACLAUSE>
|
||||
<PUT ,P-CCTBL ,CC-DEPTR <+ ,P-ACLAUSE 1>>
|
||||
<CLAUSE-COPY ,P-ITBL ,P-OTBL>"
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 5-110 (43715)
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'<CLAUSE-COPY ,P-ITBL ,P-OTBL ,P-NC1 ,P-NC1L
|
||||
,P-ACLAUSE <+ ,P-ACLAUSE 1>>)
|
||||
(T
|
||||
'<PROG ()
|
||||
<PUT ,P-CCTBL ,CC-SBPTR ,P-NC1>
|
||||
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC1L>
|
||||
<PUT ,P-CCTBL ,CC-DBPTR ,P-ACLAUSE>
|
||||
<PUT ,P-CCTBL ,CC-DEPTR <+ ,P-ACLAUSE 1>>
|
||||
<CLAUSE-COPY ,P-ITBL ,P-OTBL>>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 7-2 (39741)
|
||||
"Print undefined word in input.
|
||||
PTR points to the unknown word in P-LEXV"
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 6-2 (44207)
|
||||
"Print undefined word in input. PTR points to the unknown word in P-LEXV:"
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 7-25 (40401)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 6-24 (44864)
|
||||
<PUT ,OOPS-TABLE ,O-PTR .PTR>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 7-52 (41477)
|
||||
|
||||
<GLOBAL P-SLOCBITS 0>
|
||||
|
||||
<CONSTANT P-SYNLEN 8>
|
||||
|
||||
<CONSTANT P-SBITS 0>
|
||||
|
||||
<CONSTANT P-SPREP1 1>
|
||||
|
||||
<CONSTANT P-SPREP2 2>
|
||||
|
||||
<CONSTANT P-SFWIM1 3>
|
||||
|
||||
<CONSTANT P-SFWIM2 4>
|
||||
|
||||
<CONSTANT P-SLOC1 5>
|
||||
|
||||
<CONSTANT P-SLOC2 6>
|
||||
|
||||
<CONSTANT P-SACTION 7>
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 6-53 (45974)
|
||||
<GLOBAL P-SLOCBITS 0>
|
||||
<CONSTANT P-SYNLEN 8>
|
||||
<CONSTANT P-SBITS 0>
|
||||
<CONSTANT P-SPREP1 1>
|
||||
<CONSTANT P-SPREP2 2>
|
||||
<CONSTANT P-SFWIM1 3>
|
||||
<CONSTANT P-SFWIM2 4>
|
||||
<CONSTANT P-SLOC1 5>
|
||||
<CONSTANT P-SLOC2 6>
|
||||
<CONSTANT P-SACTION 7>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 9-13 (45365)
|
||||
<CLAUSE-COPY ,P-ITBL ,P-OTBL ,P-NC2 ,P-NC2L ,P-NC2 ,P-NC2L>
|
||||
;"<PUT ,P-CCTBL ,CC-SBPTR ,P-NC2>
|
||||
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC2L>
|
||||
<PUT ,P-CCTBL ,CC-DBPTR ,P-NC2>
|
||||
<PUT ,P-CCTBL ,CC-DEPTR ,P-NC2L>
|
||||
<CLAUSE-COPY ,P-ITBL ,P-OTBL>")>
|
||||
<COND (<NOT <L? ,P-NCN 1>>
|
||||
<CLAUSE-COPY ,P-ITBL ,P-OTBL ,P-NC1 ,P-NC1L ,P-NC1 ,P-NC1L>
|
||||
;"<PUT ,P-CCTBL ,CC-SBPTR ,P-NC1>
|
||||
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC1L>
|
||||
<PUT ,P-CCTBL ,CC-DBPTR ,P-NC1>
|
||||
<PUT ,P-CCTBL ,CC-DEPTR ,P-NC1L>
|
||||
<CLAUSE-COPY ,P-ITBL ,P-OTBL>")>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 8-13 (49820)
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'<CLAUSE-COPY ,P-ITBL ,P-OTBL
|
||||
,P-NC2 ,P-NC2L ,P-NC2 ,P-NC2L>)
|
||||
(T
|
||||
'<PROG ()
|
||||
<PUT ,P-CCTBL ,CC-SBPTR ,P-NC2>
|
||||
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC2L>
|
||||
<PUT ,P-CCTBL ,CC-DBPTR ,P-NC2>
|
||||
<PUT ,P-CCTBL ,CC-DEPTR ,P-NC2L>
|
||||
<CLAUSE-COPY ,P-ITBL ,P-OTBL>>)>)>
|
||||
<COND (<NOT <L? ,P-NCN 1>>
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'<CLAUSE-COPY ,P-ITBL ,P-OTBL
|
||||
,P-NC1 ,P-NC1L ,P-NC1 ,P-NC1L>)
|
||||
(T
|
||||
'<PROG ()
|
||||
<PUT ,P-CCTBL ,CC-SBPTR ,P-NC1>
|
||||
<PUT ,P-CCTBL ,CC-SEPTR ,P-NC1L>
|
||||
<PUT ,P-CCTBL ,CC-DBPTR ,P-NC1>
|
||||
<PUT ,P-CCTBL ,CC-DEPTR ,P-NC1L>
|
||||
<CLAUSE-COPY ,P-ITBL ,P-OTBL>>)>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 9-116 (48910)
|
||||
"<GLOBAL P-CCTBL <TABLE 0 0 0 0>>"
|
||||
"pointers used by CLAUSE-COPY (source/destination beginning/end pointers)"
|
||||
"<CONSTANT CC-SBPTR 0>
|
||||
<CONSTANT CC-SEPTR 1>
|
||||
<CONSTANT CC-DBPTR 2>
|
||||
<CONSTANT CC-DEPTR 3>"
|
||||
;<ROUTINE CLAUSE-COPY (SRC DEST "OPTIONAL" (INSRT <>) "AUX" BEG END)
|
||||
<SET BEG <GET .SRC <GET ,P-CCTBL ,CC-SBPTR>>>
|
||||
<SET END <GET .SRC <GET ,P-CCTBL ,CC-SEPTR>>>
|
||||
<PUT .DEST
|
||||
<GET ,P-CCTBL ,CC-DBPTR>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 8-124 (53579)
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'<ROUTINE CLAUSE-COPY (SRC DEST SRCBEG SRCEND DESTBEG DESTEND
|
||||
"OPTIONAL" (INSRT <>) "AUX" BEG END)
|
||||
<SET BEG <GET .SRC .SRCBEG>>
|
||||
<SET END <GET .SRC .SRCEND>>
|
||||
<PUT .DEST .DESTBEG
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 9-131 (49424)
|
||||
<COND (<==? .BEG .END>
|
||||
<PUT .DEST
|
||||
<GET ,P-CCTBL ,CC-DEPTR>
|
||||
<REST ,P-OCLAUSE
|
||||
<+ <* <GET ,P-OCLAUSE ,P-MATCHLEN> ,P-LEXELEN>
|
||||
2>>>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<AND .INSRT <==? ,P-ANAM <GET .BEG 0>>>
|
||||
<CLAUSE-ADD .INSRT>)>
|
||||
<CLAUSE-ADD <GET .BEG 0>>)>
|
||||
<SET BEG <REST .BEG ,P-WORDLEN>>>>
|
||||
<ROUTINE CLAUSE-COPY (SRC DEST SRCBEG SRCEND DESTBEG DESTEND
|
||||
"OPTIONAL" (INSRT <>) "AUX" BEG END)
|
||||
<SET BEG <GET .SRC .SRCBEG>>
|
||||
<SET END <GET .SRC .SRCEND>>
|
||||
<PUT .DEST .DESTBEG
|
||||
<REST ,P-OCLAUSE
|
||||
<+ <* <GET ,P-OCLAUSE ,P-MATCHLEN> ,P-LEXELEN> 2>>>
|
||||
<REPEAT ()
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 8-133 (53916)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 10-2 (50396)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 8-143 (54225)
|
||||
)(T
|
||||
"pointers used by CLAUSE-COPY (source/destination beginning/end pointers)"
|
||||
'(
|
||||
<CONSTANT CC-SBPTR 0>
|
||||
<CONSTANT CC-SEPTR 1>
|
||||
<CONSTANT CC-DBPTR 2>
|
||||
<CONSTANT CC-DEPTR 3>
|
||||
<GLOBAL P-CCTBL <TABLE 0 0 0 0>>
|
||||
<ROUTINE CLAUSE-COPY (SRC DEST "OPTIONAL" (INSRT <>) "AUX" BEG END)
|
||||
<SET BEG <GET .SRC <GET ,P-CCTBL ,CC-SBPTR>>>
|
||||
<SET END <GET .SRC <GET ,P-CCTBL ,CC-SEPTR>>>
|
||||
<PUT .DEST
|
||||
<GET ,P-CCTBL ,CC-DBPTR>
|
||||
<REST ,P-OCLAUSE
|
||||
<+ <* <GET ,P-OCLAUSE ,P-MATCHLEN> ,P-LEXELEN> 2>>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .BEG .END>
|
||||
<PUT .DEST
|
||||
<GET ,P-CCTBL ,CC-DEPTR>
|
||||
<REST ,P-OCLAUSE
|
||||
<+ <* <GET ,P-OCLAUSE ,P-MATCHLEN> ,P-LEXELEN>
|
||||
2>>>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<AND .INSRT <==? ,P-ANAM <GET .BEG 0>>>
|
||||
<CLAUSE-ADD .INSRT>)>
|
||||
<CLAUSE-ADD <GET .BEG 0>>)>
|
||||
<SET BEG <REST .BEG ,P-WORDLEN>>>>
|
||||
))>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 11-18 (52884)
|
||||
<GLOBAL P-NAM <>>
|
||||
|
||||
<GLOBAL P-XNAM <>>
|
||||
<GLOBAL P-ADJ <>>
|
||||
|
||||
<GLOBAL P-XADJ <>>
|
||||
"<GLOBAL P-ADJN <>>
|
||||
<GLOBAL P-XADJN <>>"
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 10-18 (57608)
|
||||
<GLOBAL P-NAM <>>
|
||||
<GLOBAL P-XNAM <>>
|
||||
<GLOBAL P-ADJ <>>
|
||||
<GLOBAL P-XADJ <>>
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>)
|
||||
(T
|
||||
'(<GLOBAL P-ADJN <>>
|
||||
<GLOBAL P-XADJN <>>))>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 12-7 (53462)
|
||||
"AUX" (BUT <>) LEN WV WRD NW (WAS-ALL <>) TMP ONEOBJ)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 11-7 (58240)
|
||||
"AUX" (BUT <>) LEN WV WRD NW (WAS-ALL <>) ONEOBJ)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 12-20 (53855)
|
||||
<SET TMP <GET-OBJECT <OR .BUT .TBL>>>
|
||||
<COND (.WAS-ALL <SETG P-GETFLAGS ,P-ALL>)>
|
||||
<RETURN .TMP>)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 11-20 (58629)
|
||||
<SET WV <GET-OBJECT <OR .BUT .TBL>>>
|
||||
<COND (.WAS-ALL <SETG P-GETFLAGS ,P-ALL>)>
|
||||
<RETURN .WV>)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 12-55 (54967)
|
||||
(<AND <WT? .WRD ,PS?ADJECTIVE>
|
||||
<NOT ,P-ADJ>>
|
||||
<SETG P-ADJ .WRD>)
|
||||
;(<AND <SET WV <WT? .WRD ,PS?ADJECTIVE ,P1?ADJECTIVE>>
|
||||
<NOT ,P-ADJ>>
|
||||
<SETG P-ADJ .WV>
|
||||
<SETG P-ADJN .WRD>)
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 11-55 (59739)
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'(<AND <WT? .WRD ,PS?ADJECTIVE>
|
||||
<NOT ,P-ADJ>>
|
||||
<SETG P-ADJ .WRD>))
|
||||
(T
|
||||
'(<AND <SET WV <WT? .WRD ,PS?ADJECTIVE
|
||||
,P1?ADJECTIVE>>
|
||||
<NOT ,P-ADJ>>
|
||||
<SETG P-ADJ .WV>
|
||||
<SETG P-ADJN .WRD>))>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 12-69 (55368)
|
||||
<CONSTANT SH 128>
|
||||
|
||||
<CONSTANT SC 64>
|
||||
|
||||
<CONSTANT SIR 32>
|
||||
|
||||
<CONSTANT SOG 16>
|
||||
|
||||
<CONSTANT STAKE 8>
|
||||
|
||||
<CONSTANT SMANY 4>
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 11-72 (60231)
|
||||
<CONSTANT SH 128>
|
||||
<CONSTANT SC 64>
|
||||
<CONSTANT SIR 32>
|
||||
<CONSTANT SOG 16>
|
||||
<CONSTANT STAKE 8>
|
||||
<CONSTANT SMANY 4>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 13-11 (55934)
|
||||
<SET ADJ ,P-ADJ ;N>
|
||||
<COND (<AND <NOT ,P-NAM> ,P-ADJ>
|
||||
<COND (<WT? ,P-ADJ ;N ,PS?OBJECT ;,P1?OBJECT>
|
||||
<SETG P-NAM ,P-ADJ ;N>
|
||||
<SETG P-ADJ <>>)
|
||||
(<SET BTS <WT? ,P-ADJ ;N ,PS?DIRECTION ,P1?DIRECTION>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 12-11 (60762)
|
||||
<SET ADJ %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
',P-ADJ)
|
||||
(T
|
||||
',P-ADJN)>>
|
||||
<COND (<AND <NOT ,P-NAM> ,P-ADJ>
|
||||
<COND (<WT? %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
',P-ADJ)
|
||||
(T ',P-ADJN)>
|
||||
,PS?OBJECT>
|
||||
<SETG P-NAM %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
',P-ADJ)
|
||||
(T ',P-ADJN)>>
|
||||
<SETG P-ADJ <>>)
|
||||
(<SET BTS <WT? %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
',P-ADJ)
|
||||
(T ',P-ADJN)>
|
||||
,PS?DIRECTION ,P1?DIRECTION>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 13-69 (57809)
|
||||
<SETG P-ADJ <>>
|
||||
;<SETG P-ADJN <>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 12-80 (62948)
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'<SETG P-ADJ <>>)
|
||||
(T
|
||||
'<PROG ()
|
||||
<SETG P-ADJ <>>
|
||||
<SETG P-ADJN <>>>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 13-96 (58566)
|
||||
<SETG P-XADJ ,P-ADJ>
|
||||
;<SETG P-XADJN ,P-ADJN>
|
||||
<SETG P-NAM <>>
|
||||
<SETG P-ADJ <>>
|
||||
;<SETG P-ADJN <>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 12-111 (63830)
|
||||
<SETG P-NAM <>>
|
||||
%<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'<PROG ()
|
||||
<SETG P-XADJ ,P-ADJ>
|
||||
<SETG P-ADJ <>>>)
|
||||
(T
|
||||
'<PROG ()
|
||||
<SETG P-XADJ ,P-ADJ>
|
||||
<SETG P-XADJN ,P-ADJN>
|
||||
<SETG P-ADJ <>>
|
||||
<SETG P-ADJN <>>>)>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 13-122 (59358)
|
||||
(<EQUAL? .V ,V?YES ,V?TALK-ABOUT> <RTRUE>)
|
||||
(<EQUAL? .V ,V?ASK-CONTEXT-ABOUT ,V?ASK-CONTEXT-FOR> <RTRUE>)>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 12-143 (64801)
|
||||
(<EQUAL? .V ,V?YES ,V?TALK-ABOUT ,V?ANSWER> <RTRUE>)
|
||||
(<EQUAL? .V ,V?ASK-CONTEXT-ABOUT ,V?ASK-CONTEXT-FOR ,V?REPLY>
|
||||
<RTRUE>)>>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 13-179 (61065)
|
||||
"<GLOBAL P-MOBY-FLAG <>>"
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 12-202 (66536)
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 14-63 (64082)
|
||||
<CONSTANT P-SRCBOT 2>
|
||||
<CONSTANT P-SRCTOP 0>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 13-63 (69524)
|
||||
<CONSTANT P-SRCBOT 2>
|
||||
<CONSTANT P-SRCTOP 0>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 14-84 (64752)
|
||||
<OR <FSET? .OBJ ,OPENBIT>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 13-82 (70182)
|
||||
<OR .MOBY-FLAG <SEE-INSIDE? .OBJ>>
|
||||
;<OR <FSET? .OBJ ,OPENBIT>
|
||||
***************
|
||||
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.151, 14-106 (65485)
|
||||
<NOT <ZMEMQ ;B ,P-ADJ .SYNS <RMGL-SIZE .SYNS>>>>>
|
||||
**** FILE PS:<CHECKPOINT>PARSER.ZIL.170, 13-105 (70959)
|
||||
<NOT %<COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE>
|
||||
'<ZMEMQ ,P-ADJ .SYNS <RMGL-SIZE .SYNS>>)
|
||||
(T
|
||||
'<ZMEMQB ,P-ADJ .SYNS <RMGL-SIZE .SYNS>>)>>>>
|
||||
***************
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,183 @@
|
|||
|
||||
;COMPARISON OF PS:<SWG>PLACES.ZAP.1 AND PS:<SWG>PLACES.ZAP.3
|
||||
;OPTIONS ARE /1
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-21 (330)
|
||||
FIRST? RM >O /?KLU14
|
||||
?KLU14: GETP WINNER,P?CAR >CAR
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-21 (330)
|
||||
FIRST? RM >O /?KLU8
|
||||
?KLU8: GETP WINNER,P?CAR >CAR
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-25 (444)
|
||||
FSET? O,FLAG \?ELS7
|
||||
EQUAL? O,EXCLUDED /?ELS7
|
||||
ZERO? STA? \?THN10
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-25 (442)
|
||||
FSET? O,FLAG \?ELS5
|
||||
EQUAL? O,EXCLUDED /?ELS5
|
||||
ZERO? STA? \?THN6
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-29 (529)
|
||||
EQUAL? STACK,CAR \?ELS7
|
||||
?THN10: RETURN O
|
||||
?ELS7: NEXT? O >O /?KLU15
|
||||
?KLU15: JUMP ?PRG1
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-29 (526)
|
||||
EQUAL? STACK,CAR \?ELS5
|
||||
?THN6: RETURN O
|
||||
?ELS5: NEXT? O >O /?PRG1
|
||||
JUMP ?PRG1
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-36 (661)
|
||||
FIRST? RM >O /?KLU12
|
||||
?KLU12:
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-36 (649)
|
||||
FIRST? RM >O /?KLU7
|
||||
?KLU7:
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-39 (717)
|
||||
FSET? O,FLAG \?ELS7
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-39 (703)
|
||||
FSET? O,FLAG \?ELS5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-41 (754)
|
||||
EQUAL? STACK,CAR \?ELS7
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-41 (740)
|
||||
EQUAL? STACK,CAR \?ELS5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-43 (791)
|
||||
?ELS7: NEXT? O >O /?KLU13
|
||||
?KLU13: JUMP ?PRG1
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-43 (777)
|
||||
?ELS5: NEXT? O >O /?PRG1
|
||||
JUMP ?PRG1
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-50 (933)
|
||||
PTSIZE TBL
|
||||
DIV STACK,2
|
||||
SUB STACK,1 >SIZE
|
||||
?PRG6: GET TBL,CNT >O
|
||||
FSET? O,FLAG \?ELS10
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-50 (911)
|
||||
CALL RMGL-SIZE,TBL >SIZE
|
||||
?PRG5: CALL GET-OBJ,TBL,CNT >O
|
||||
FSET? O,FLAG \?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-56 (1037)
|
||||
?ELS10: IGRTR? 'CNT,SIZE \?PRG6
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-54 (1003)
|
||||
?ELS8: IGRTR? 'CNT,SIZE \?PRG5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-61 (1138)
|
||||
FIRST? HERE >O /?KLU14
|
||||
?KLU14: GETP WINNER,P?CAR >CAR
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-59 (1103)
|
||||
FIRST? HERE >O /?KLU8
|
||||
?KLU8: GETP WINNER,P?CAR >CAR
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-65 (1256)
|
||||
FSET? O,FLAG \?ELS7
|
||||
EQUAL? O,NOT1,NOT2 /?ELS7
|
||||
ZERO? STA? \?THN10
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-63 (1219)
|
||||
FSET? O,FLAG \?ELS5
|
||||
EQUAL? O,NOT1,NOT2 /?ELS5
|
||||
ZERO? STA? \?THN6
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-69 (1342)
|
||||
EQUAL? STACK,CAR \?ELS7
|
||||
?THN10: RETURN O
|
||||
?ELS7: NEXT? O >O /?KLU15
|
||||
?KLU15: JUMP ?PRG1
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-67 (1304)
|
||||
EQUAL? STACK,CAR \?ELS5
|
||||
?THN6: RETURN O
|
||||
?ELS5: NEXT? O >O /?PRG1
|
||||
JUMP ?PRG1
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-76 (1494)
|
||||
FIRST? HERE >O /?KLU14
|
||||
?KLU14: GETP WINNER,P?CAR >CAR
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-74 (1447)
|
||||
FIRST? HERE >O /?KLU8
|
||||
?KLU8: GETP WINNER,P?CAR >CAR
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-80 (1612)
|
||||
FSET? O,FLAG \?ELS7
|
||||
FSET? O,NFLAG /?ELS7
|
||||
EQUAL? O,NOT2 /?ELS7
|
||||
ZERO? STA? \?THN10
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-78 (1563)
|
||||
FSET? O,FLAG \?ELS5
|
||||
FSET? O,NFLAG /?ELS5
|
||||
EQUAL? O,NOT2 /?ELS5
|
||||
ZERO? STA? \?THN6
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-85 (1716)
|
||||
EQUAL? STACK,CAR \?ELS7
|
||||
?THN10: RETURN O
|
||||
?ELS7: NEXT? O >O /?KLU15
|
||||
?KLU15: JUMP ?PRG1
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-83 (1666)
|
||||
EQUAL? STACK,CAR \?ELS5
|
||||
?THN6: RETURN O
|
||||
?ELS5: NEXT? O >O /?PRG1
|
||||
JUMP ?PRG1
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-95 (1898)
|
||||
EQUAL? PTS,UEXIT \?ELS10
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-93 (1839)
|
||||
EQUAL? PTS,UEXIT \?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-98 (1950)
|
||||
?ELS10: EQUAL? PTS,NEXIT /FALSE
|
||||
EQUAL? PTS,FEXIT \?ELS14
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-96 (1890)
|
||||
?ELS8: EQUAL? PTS,NEXIT /FALSE
|
||||
EQUAL? PTS,FEXIT \?ELS10
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-103 (2051)
|
||||
?ELS14: EQUAL? PTS,CEXIT \?ELS16
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-101 (1990)
|
||||
?ELS10: EQUAL? PTS,CEXIT \?ELS11
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-109 (2165)
|
||||
?ELS16: EQUAL? PTS,DEXIT \FALSE
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-107 (2104)
|
||||
?ELS11: EQUAL? PTS,DEXIT \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-132 (2559)
|
||||
EQUAL? L,DEXIT \?PRG1
|
||||
GET TBL,DEXITOBJ >O
|
||||
FSET? O,OPENBIT \?PRG1
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-130 (2498)
|
||||
EQUAL? L,DEXIT \?CND6
|
||||
CALL GET-DOOR-OBJ,TBL >O
|
||||
FSET? O,OPENBIT \?CND6
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>PLACES.ZAP.1, 1-139 (2713)
|
||||
**** FILE PS:<SWG>PLACES.ZAP.3, 1-136 (2655)
|
||||
?CND6: JUMP ?PRG1
|
||||
***************
|
||||
|
|
@ -0,0 +1,165 @@
|
|||
|
||||
|
||||
.FUNCT NULL-F,A1,A2
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT DOOR-ROOM,RM,DR,P=0,TBL
|
||||
?PRG1: NEXTP RM,P >P
|
||||
ZERO? P /FALSE
|
||||
LESS? P,LOW-DIRECTION /FALSE
|
||||
GETPT RM,P >TBL
|
||||
PTSIZE TBL
|
||||
EQUAL? DEXIT,STACK \?PRG1
|
||||
GET TBL,DEXITOBJ
|
||||
EQUAL? DR,STACK \?PRG1
|
||||
GET TBL,REXIT
|
||||
RETURN STACK
|
||||
|
||||
|
||||
.FUNCT DOOR-DIR,RM,DR,P=0,TBL
|
||||
?PRG1: NEXTP RM,P >P
|
||||
ZERO? P /FALSE
|
||||
LESS? P,LOW-DIRECTION /FALSE
|
||||
GETPT RM,P >TBL
|
||||
PTSIZE TBL
|
||||
EQUAL? DEXIT,STACK \?PRG1
|
||||
GET TBL,DEXITOBJ
|
||||
EQUAL? DR,STACK \?PRG1
|
||||
EQUAL? P,P?NORTH,P?EAST /?THN12
|
||||
EQUAL? P,P?SOUTH,P?WEST \?PRG1
|
||||
?THN12: RETURN P
|
||||
|
||||
|
||||
.FUNCT FACE-DOOR,DR,PER
|
||||
EQUAL? PRSA,V?UNLOCK,V?OPEN,V?LOOK-THROUGH /?THN8
|
||||
EQUAL? PRSA,V?LOCK,V?KNOCK,V?CLOSE \FALSE
|
||||
?THN8: CALL DOOR-DIR,HERE,DR >PER
|
||||
ZERO? PER /FALSE
|
||||
CALL2 OPP-DIR,PER >PLAYER-NOT-FACING
|
||||
EQUAL? PLAYER-NOT-FACING-OLD,PLAYER-NOT-FACING /FALSE
|
||||
PRINTI "[You're facing to "
|
||||
CALL2 DIR-PRINT,PER
|
||||
PRINTR ".]"
|
||||
|
||||
|
||||
.FUNCT FIND-FLAG,RM,FLAG,EXCLUDED=0,O,CAR,STA?
|
||||
FIRST? RM >O /?KLU14
|
||||
?KLU14: GETP WINNER,P?CAR >CAR
|
||||
CALL ZMEMQ,RM,STATION-ROOMS >STA?
|
||||
?PRG1: ZERO? O /FALSE
|
||||
FSET? O,FLAG \?ELS7
|
||||
EQUAL? O,EXCLUDED /?ELS7
|
||||
ZERO? STA? \?THN10
|
||||
GETP O,P?CAR
|
||||
EQUAL? STACK,CAR \?ELS7
|
||||
?THN10: RETURN O
|
||||
?ELS7: NEXT? O >O /?KLU15
|
||||
?KLU15: JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT FIND-FLAG-CAR,RM,CAR,FLAG,O
|
||||
FIRST? RM >O /?KLU12
|
||||
?KLU12:
|
||||
?PRG1: ZERO? O /FALSE
|
||||
FSET? O,FLAG \?ELS7
|
||||
GETP O,P?CAR
|
||||
EQUAL? STACK,CAR \?ELS7
|
||||
RETURN O
|
||||
?ELS7: NEXT? O >O /?KLU13
|
||||
?KLU13: JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT FIND-FLAG-LG,RM,FLAG,TBL,O,CNT=0,SIZE
|
||||
GETPT RM,P?GLOBAL >TBL
|
||||
ZERO? TBL /FALSE
|
||||
PTSIZE TBL
|
||||
DIV STACK,2
|
||||
SUB STACK,1 >SIZE
|
||||
?PRG6: GET TBL,CNT >O
|
||||
FSET? O,FLAG \?ELS10
|
||||
RETURN O
|
||||
?ELS10: IGRTR? 'CNT,SIZE \?PRG6
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT FIND-FLAG-HERE,FLAG,NOT1=0,NOT2=0,NOT3=0,O,CAR,STA?
|
||||
FIRST? HERE >O /?KLU14
|
||||
?KLU14: GETP WINNER,P?CAR >CAR
|
||||
CALL ZMEMQ,HERE,STATION-ROOMS >STA?
|
||||
?PRG1: ZERO? O /FALSE
|
||||
FSET? O,FLAG \?ELS7
|
||||
EQUAL? O,NOT1,NOT2,NOT3 /?ELS7
|
||||
ZERO? STA? \?THN10
|
||||
GETP O,P?CAR
|
||||
EQUAL? STACK,CAR \?ELS7
|
||||
?THN10: RETURN O
|
||||
?ELS7: NEXT? O >O /?KLU15
|
||||
?KLU15: JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT FIND-FLAG-HERE-NOT,FLAG,NFLAG,NOT2=0,O,CAR,STA?
|
||||
FIRST? HERE >O /?KLU14
|
||||
?KLU14: GETP WINNER,P?CAR >CAR
|
||||
CALL ZMEMQ,HERE,STATION-ROOMS >STA?
|
||||
?PRG1: ZERO? O /FALSE
|
||||
FSET? O,FLAG \?ELS7
|
||||
FSET? O,NFLAG /?ELS7
|
||||
EQUAL? O,NOT2 /?ELS7
|
||||
ZERO? STA? \?THN10
|
||||
GETP O,P?CAR
|
||||
EQUAL? STACK,CAR \?ELS7
|
||||
?THN10: RETURN O
|
||||
?ELS7: NEXT? O >O /?KLU15
|
||||
?KLU15: JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT NEXT-ROOM,RM,DIR,PT,PTS
|
||||
GETPT RM,DIR >PT
|
||||
ZERO? PT /FALSE
|
||||
PTSIZE PT >PTS
|
||||
EQUAL? PTS,UEXIT \?ELS10
|
||||
GET PT,REXIT
|
||||
RSTACK
|
||||
?ELS10: EQUAL? PTS,NEXIT /FALSE
|
||||
EQUAL? PTS,FEXIT \?ELS14
|
||||
GET PT,FEXITFCN
|
||||
CALL STACK
|
||||
RSTACK
|
||||
?ELS14: EQUAL? PTS,CEXIT \?ELS16
|
||||
GETB PT,CEXITFLAG
|
||||
VALUE STACK
|
||||
ZERO? STACK /FALSE
|
||||
GET PT,REXIT
|
||||
RSTACK
|
||||
?ELS16: EQUAL? PTS,DEXIT \FALSE
|
||||
GET PT,REXIT
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT OUTSIDE?,RM
|
||||
EQUAL? RM,ROOF,OTHER-ROOF,BESIDE-TRACKS /TRUE
|
||||
EQUAL? RM,SIDEWALK,OTHER-BESIDE-TRACKS /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT WINDOW-IN?,RM
|
||||
CALL FIND-FLAG-LG,RM,WINDOWBIT
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT FRESH-AIR?,RM,P,L,TBL,O
|
||||
SET 'P,0
|
||||
?PRG1: NEXTP HERE,P >P
|
||||
ZERO? P /FALSE
|
||||
LESS? P,LOW-DIRECTION /?PRG1
|
||||
GETPT HERE,P >TBL
|
||||
PTSIZE TBL >L
|
||||
EQUAL? L,DEXIT \?PRG1
|
||||
GET TBL,DEXITOBJ >O
|
||||
FSET? O,OPENBIT \?PRG1
|
||||
PRINTI "There's a pleasant breeze coming through the "
|
||||
PRINTD O
|
||||
PRINTR "."
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,159 @@
|
|||
"PLACES for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
"The usual globals"
|
||||
|
||||
<OBJECT ROOMS
|
||||
(DESC "that")
|
||||
(FLAGS NARTICLEBIT)>
|
||||
|
||||
<ROUTINE NULL-F ("OPTIONAL" A1 A2)
|
||||
<RFALSE>>
|
||||
|
||||
<ROUTINE DOOR-ROOM (RM DR "AUX" (P 0) TBL)
|
||||
<REPEAT ()
|
||||
<COND (<OR <0? <SET P <NEXTP .RM .P>>>
|
||||
<L? .P ,LOW-DIRECTION>>
|
||||
<RFALSE>)
|
||||
(<AND <==? ,DEXIT <PTSIZE <SET TBL <GETPT .RM .P>>>>
|
||||
<==? .DR <GET-DOOR-OBJ .TBL>>>
|
||||
<RETURN <GET-REXIT-ROOM .TBL>>)>>>
|
||||
|
||||
<ROUTINE DOOR-DIR (RM DR "AUX" (P 0) TBL)
|
||||
<REPEAT ()
|
||||
<COND (<OR <0? <SET P <NEXTP .RM .P>>>
|
||||
<L? .P ,LOW-DIRECTION>>
|
||||
<RFALSE>)
|
||||
(<AND <==? ,DEXIT <PTSIZE <SET TBL <GETPT .RM .P>>>>
|
||||
<==? .DR <GET-DOOR-OBJ .TBL>>
|
||||
<OR <EQUAL? .P ,P?NORTH ,P?EAST>
|
||||
<EQUAL? .P ,P?SOUTH ,P?WEST>>>
|
||||
<RETURN .P>)>>>
|
||||
|
||||
<ROUTINE FACE-DOOR (DR "AUX" PER)
|
||||
<COND (<AND <VERB? CLOSE KNOCK LOCK LOOK-THROUGH OPEN UNLOCK>
|
||||
;<NOT ,PLAYER-SEATED>
|
||||
;<NOT ,PLAYER-HIDING>
|
||||
<SET PER <DOOR-DIR ,HERE .DR>>>
|
||||
<SETG PLAYER-NOT-FACING <OPP-DIR .PER>>
|
||||
<COND (<NOT <==? ,PLAYER-NOT-FACING-OLD
|
||||
,PLAYER-NOT-FACING>>
|
||||
<TELL "[You're facing to ">
|
||||
<DIR-PRINT .PER ;<OPP-DIR ,PLAYER-NOT-FACING>>
|
||||
<TELL ".]" CR>)>)>>
|
||||
|
||||
<ROUTINE FIND-FLAG (RM FLAG "OPTIONAL" (EXCLUDED <>) "AUX" O CAR STA?)
|
||||
<SET O <FIRST? .RM>>
|
||||
<SET CAR <GETP ,WINNER ,P?CAR>>
|
||||
<SET STA? <ZMEMQ .RM ,STATION-ROOMS>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .O> <RETURN <>>)
|
||||
(<AND <FSET? .O .FLAG>
|
||||
<NOT <==? .O .EXCLUDED>>
|
||||
<OR .STA?
|
||||
<==? <GETP .O ,P?CAR> .CAR>>>
|
||||
<RETURN .O>)
|
||||
(T <SET O <NEXT? .O>>)>>>
|
||||
|
||||
<ROUTINE FIND-FLAG-CAR (RM CAR FLAG "AUX" O)
|
||||
<SET O <FIRST? .RM>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .O> <RETURN <>>)
|
||||
(<AND <FSET? .O .FLAG>
|
||||
<==? <GETP .O ,P?CAR> .CAR>>
|
||||
<RETURN .O>)
|
||||
(T <SET O <NEXT? .O>>)>>>
|
||||
|
||||
<ROUTINE FIND-FLAG-LG (RM FLAG "AUX" TBL O (CNT 0) SIZE)
|
||||
<COND (<SET TBL <GETPT .RM ,P?GLOBAL>>
|
||||
<SET SIZE <RMGL-SIZE .TBL>>
|
||||
<REPEAT ()
|
||||
<COND (<FSET? <SET O <GET/B .TBL .CNT>> .FLAG>
|
||||
<RETURN .O>)
|
||||
(<IGRTR? CNT .SIZE> <RFALSE>)>>)>>
|
||||
|
||||
<ROUTINE FIND-FLAG-HERE (FLAG "OPTIONAL" (NOT1 <>) (NOT2 <>) (NOT3 <>)
|
||||
"AUX" O CAR STA?)
|
||||
<SET O <FIRST? ,HERE>>
|
||||
<SET CAR <GETP ,WINNER ,P?CAR>>
|
||||
<SET STA? <ZMEMQ ,HERE ,STATION-ROOMS>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .O> <RETURN <>>)
|
||||
(<AND <FSET? .O .FLAG>
|
||||
<NOT <EQUAL? .O .NOT1 .NOT2 .NOT3>>
|
||||
<OR .STA?
|
||||
<==? <GETP .O ,P?CAR> .CAR>>>
|
||||
<RETURN .O>)
|
||||
(T <SET O <NEXT? .O>>)>>>
|
||||
|
||||
<ROUTINE FIND-FLAG-HERE-NOT (FLAG NFLAG "OPTIONAL" (NOT2 <>) "AUX" O CAR STA?)
|
||||
<SET O <FIRST? ,HERE>>
|
||||
<SET CAR <GETP ,WINNER ,P?CAR>>
|
||||
<SET STA? <ZMEMQ ,HERE ,STATION-ROOMS>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .O> <RETURN <>>)
|
||||
(<AND <FSET? .O .FLAG>
|
||||
<NOT <FSET? .O .NFLAG>>
|
||||
<NOT <EQUAL? .O .NOT2>>
|
||||
<OR .STA?
|
||||
<==? <GETP .O ,P?CAR> .CAR>>>
|
||||
<RETURN .O>)
|
||||
(T <SET O <NEXT? .O>>)>>>
|
||||
|
||||
"<ROUTINE FIND-FLAG-NOT (RM FLAG1 FLAG2 'AUX' (O <FIRST? .RM>))
|
||||
<REPEAT ()
|
||||
<COND (<NOT .O> <RETURN <>>)
|
||||
(<AND <FSET? .O .FLAG1> <NOT <FSET? .O .FLAG2>>>
|
||||
<RETURN .O>)
|
||||
(T <SET O <NEXT? .O>>)>>>"
|
||||
|
||||
<ROUTINE NEXT-ROOM (RM DIR "AUX" PT PTS)
|
||||
<COND (<SET PT <GETPT .RM .DIR>>
|
||||
<COND (<==? <SET PTS <PTSIZE .PT>> ,UEXIT>
|
||||
<GET-REXIT-ROOM .PT>)
|
||||
(<==? .PTS ,NEXIT>
|
||||
<RFALSE>)
|
||||
(<==? .PTS ,FEXIT>
|
||||
<APPLY <GET .PT ,FEXITFCN>>)
|
||||
(<==? .PTS ,CEXIT>
|
||||
<COND (<VALUE <GETB .PT ,CEXITFLAG>>
|
||||
<GET-REXIT-ROOM .PT>)>)
|
||||
(<==? .PTS ,DEXIT>
|
||||
<COND (T ;<FSET? <GET-DOOR-OBJ .PT> ,OPENBIT>
|
||||
<GET-REXIT-ROOM .PT>)>)>)>>
|
||||
|
||||
<ROUTINE OUTSIDE? (RM)
|
||||
<OR <EQUAL? .RM ,ROOF ,OTHER-ROOF ,BESIDE-TRACKS>
|
||||
<EQUAL? .RM ,SIDEWALK ,OTHER-BESIDE-TRACKS>>>
|
||||
|
||||
<ROUTINE WINDOW-IN? (RM) <FIND-FLAG-LG .RM ,WINDOWBIT>>
|
||||
|
||||
"<ROUTINE WINDOW-IN? (RM 'AUX' RMG RMGL (CNT 0))
|
||||
<COND (<SET RMG <GETPT .RM ,P?GLOBAL>>
|
||||
<SET RMGL <RMGL-SIZE .RMG>>
|
||||
<REPEAT ()
|
||||
<COND (<WORD-TYPE <GET/B .RMG .CNT> ,W?WINDOW>
|
||||
<RTRUE>)>
|
||||
<COND (<IGRTR? CNT .RMGL> <RFALSE>)>>)>>"
|
||||
|
||||
;<ROUTINE WORD-TYPE (OBJ WORD "AUX" SYNS)
|
||||
<ZMEMQ .WORD
|
||||
<SET SYNS <GETPT .OBJ ,P?SYNONYM>>
|
||||
<- </ <PTSIZE .SYNS> 2> 1>>>
|
||||
|
||||
"Other stuff"
|
||||
|
||||
<ROUTINE FRESH-AIR? (RM "AUX" P L TBL O)
|
||||
<SET P 0>
|
||||
<REPEAT ()
|
||||
<COND (<0? <SET P <NEXTP ,HERE .P>>>
|
||||
<RFALSE>)
|
||||
(<NOT <L? .P ,LOW-DIRECTION>>
|
||||
<SET TBL <GETPT ,HERE .P>>
|
||||
<SET L <PTSIZE .TBL>>
|
||||
<COND (<AND <EQUAL? .L ,DEXIT> ;"Door EXIT"
|
||||
<FSET? <SET O <GET-DOOR-OBJ .TBL>>
|
||||
,OPENBIT>>
|
||||
<TELL
|
||||
"There's a pleasant breeze coming through the " D .O "." CR>
|
||||
<RETURN>)>)>>>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,544 @@
|
|||
[Automatic transcript: User is JW]
|
||||
|
||||
Copyright (c) 1985 Infocom, Inc. All rights reserved.
|
||||
|
||||
Welcome to CHECKPOINT (TM) - interactive fiction from Infocom!
|
||||
|
||||
[Note to testers: this story has the command GO TO, and the concept of not
|
||||
being able to see things behind your back. The unit of currency in this story
|
||||
is the Frotzian slimpuk, whose symbol is "*".
|
||||
|
||||
Messages in square brackets [] will not be in the final release.
|
||||
Remember: you can shorten your words only to NINE (9) letters.
|
||||
But you can use C for COMPARTMENT, V for VESTIBULE, and F for FORWARD.]
|
||||
|
||||
Do you want the viewpoint of the traveler or the spy? >S
|
||||
|
||||
Do you want the short variation or the long one? >S
|
||||
|
||||
Then let the story begin!
|
||||
Why did you want to be a spy anyway? You could have had a nice restful job,
|
||||
like an air-traffic controller. You could have tended flowers behind a white
|
||||
picket fence around your country cottage. At least they could let you grab a
|
||||
few winks between one job and the next. But no -- you finish debriefing in some
|
||||
dirty little city in Frotzerland, and before you can even find a phone book,
|
||||
let alone a hotel, they volunteer you for another assignment.
|
||||
|
||||
"You've got to intercept a document!" they told you. "Then deliver it to our
|
||||
agent in Gola so the leak can be traced. We don't know where it is for sure,
|
||||
but we think it's in a briefcase that's leaving town on the next train. You're
|
||||
the only agent that's close enough and experienced enough to be sent after it.
|
||||
And at the end of the trip, there will be a plane ticket to home waiting for
|
||||
you."
|
||||
|
||||
So that's why you're climbing all over this stupid train. Finding the briefcase
|
||||
was easy enough, but the dude carrying it was something else. Even your
|
||||
well-placed bullet didn't make him drop. Now, if only he'll take the bait and
|
||||
follow you up here, you can .... Wait! Here he comes from the forward end! But
|
||||
he's not carrying the case!
|
||||
|
||||
CHECKPOINT
|
||||
Infocom interactive fiction - a story of intrigue
|
||||
Copyright (c) 1985 by Infocom, Inc. All rights reserved.
|
||||
CHECKPOINT is a trademark of Infocom, Inc.
|
||||
Release 14 / Serial number 850403 / Spy's viewpoint, short variation
|
||||
|
||||
(roof)
|
||||
You are on the roof of the train. The wind blows your hair, and the rocking,
|
||||
lurching train threatens to buck you right off. It occurs to you that this
|
||||
might not be the safest place to be right now.
|
||||
The other spy is here, preparing to knock you off.
|
||||
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>KICK
|
||||
|
||||
(What do you want to kick?)
|
||||
|
||||
>SPY
|
||||
|
||||
The train lurches a bit.
|
||||
You go for him, but he dodges. He hesitates, preparing his next move.
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
You go for him, but he dodges. He hesitates, preparing his next move.
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
You go for him, but he dodges. He hesitates, then lunges at you!
|
||||
He crouches low and prepares to lunge.
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
You go for him, but he dodges. He hesitates, preparing his next move.
|
||||
He slips but then regains his footing.
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
You lunge at him and almost miss, but he loses footing and falls off the edge
|
||||
of the roof! The train quickly leaves his body behind.
|
||||
|
||||
What next?
|
||||
>D
|
||||
|
||||
(rear vestibule)
|
||||
This is a small vestibule at the rear end of the car. There's a short flight of
|
||||
metal steps on the left side of the train leading down off the train, and a
|
||||
narrow metal ladder leading up to the roof. A small door leads to a restroom,
|
||||
and a big window is open to the outside. A red handle is hanging by a short
|
||||
length of cord from the ceiling, swinging in time to the train's rocking
|
||||
motion. The train is steaming along a barren stubble-plain.
|
||||
The clatter of the wheels on the track is almost deafening.
|
||||
A young man and an old couple are off to the rear.
|
||||
A cigarette machine stands in one corner, waiting to be either used or
|
||||
discarded -- it's hard to say which.
|
||||
|
||||
What next?
|
||||
>SAVE
|
||||
|
||||
(In this variation, 1 minute will pass in the story before you can type another
|
||||
command. Are you sure you want to SAVE now? >Y
|
||||
|
||||
Okay.)
|
||||
To file: START.CSS14.1Okay.
|
||||
|
||||
What next?
|
||||
>GO TO FRONT VESTIB
|
||||
|
||||
(Sorry, but this story doesn't recognize the word "vestib".)
|
||||
|
||||
(You won't see "What next?" any more.)
|
||||
|
||||
>GO TO FRONT VESTIBULE
|
||||
|
||||
The relative quiet here is welcome. The smell of food is unmistakable.
|
||||
The relative quiet here is welcome.
|
||||
The relative quiet here is welcome.
|
||||
The relative quiet here is welcome.
|
||||
(forward vestibule)
|
||||
[You're facing to the front.]
|
||||
This is a small vestibule at the forward end of the car. It's just like the
|
||||
rear vestibule, but with no steps or ladder.
|
||||
|
||||
>N
|
||||
|
||||
[Debugging info: you are entering car #2.]
|
||||
(rear vestibule)
|
||||
There's a young woman here, chewing gum.
|
||||
There's a boy here, reading a newspaper.
|
||||
|
||||
>N
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
The relative quiet here is welcome.
|
||||
(rear end)
|
||||
This is the rear end of the corridor. The floor and walls are covered with
|
||||
cream-colored linoleum, worn away in spots to reveal the original hardwood
|
||||
finish. A long series of windows, still framed by wood, runs along the corridor
|
||||
on the right-hand side of the train. On the left side of the train, behind a
|
||||
windowed door, lies the fifth compartment.
|
||||
An attractive woman is in the fifth compartment.
|
||||
A regal woman is off to the front.
|
||||
The girl, off to the front, opens the compartment door for a moment and enters
|
||||
the first compartment.
|
||||
|
||||
>W
|
||||
|
||||
(You open the compartment door and close it again.)
|
||||
(fifth compartment)
|
||||
[You're facing to the left side of the train.]
|
||||
This is a once-luxurious first-class compartment on the Znuk-Potrzebie Express.
|
||||
The plush red upholstery on the two facing seats, shiny and worn in spots, and
|
||||
the greasy lace on the headrests, give the car an air of faded elegance. A red
|
||||
handle is hanging by a short length of cord from the ceiling, swinging in time
|
||||
to the train's rocking motion. The corridor is outside, past a window with a
|
||||
red curtain on it.
|
||||
The train is steaming along a barren stubble-plain.
|
||||
The attractive woman is here, holding the briefcase and deep in thought.
|
||||
Your sharp eyes notice a spot of blood on the floor.
|
||||
|
||||
>EXAMINE SPOT
|
||||
|
||||
Yup. That's a spot of blood, all right.
|
||||
|
||||
>SAVE
|
||||
|
||||
(In this variation, 1 minute will pass in the story before you can type another
|
||||
command. Are you sure you want to SAVE now? >Y
|
||||
|
||||
Okay.)
|
||||
To file: CASETIME.CSS14.1Okay.
|
||||
|
||||
>HIT WOMAN
|
||||
|
||||
The train lurches a bit.
|
||||
She blocks your thrust and delivers a chop to your nose.
|
||||
|
||||
>G
|
||||
|
||||
She blocks your thrust and knocks you unconscious....
|
||||
|
||||
You shake your head and come to.
|
||||
|
||||
>RESTOR
|
||||
|
||||
From file: CASETIME.CSS14.1Okay.
|
||||
(fifth compartment)
|
||||
[You're facing to the left side of the train.]
|
||||
The attractive woman is here, still holding the briefcase and deep in thought.
|
||||
A spot of blood is still on the floor.
|
||||
|
||||
>HIT WOMAN
|
||||
|
||||
She drops the briefcase and slumps on the floor.
|
||||
|
||||
>TAKE CASE
|
||||
|
||||
You are now holding it.
|
||||
|
||||
>E
|
||||
|
||||
(You open the compartment door and close it again.)
|
||||
|
||||
(rear end)
|
||||
[You're facing to the right side of the train.]
|
||||
The conductor and the regal woman are off to the front.
|
||||
He punches her ticket.
|
||||
The girl, off to the front, opens the swinging door for a moment and disappears
|
||||
to the front.
|
||||
|
||||
>N
|
||||
|
||||
|
||||
(rear middle)
|
||||
[You're facing to the front.]
|
||||
This is the rear middle of the corridor. On the left side of the train, behind
|
||||
a windowed door, lies the fourth compartment.
|
||||
The conductor and the regal woman are off to the front.
|
||||
The conductor is off to the front, heading toward you.
|
||||
He, off to the front, stops to punch tickets.
|
||||
|
||||
>W
|
||||
|
||||
(You open the compartment door and close it again.)
|
||||
(fourth compartment)
|
||||
[You're facing to the left side of the train.]
|
||||
There's a young man here, smoking a cigarette.
|
||||
|
||||
>TURN LATCH
|
||||
|
||||
A mechanical click comes from within the briefcase.
|
||||
|
||||
>OPEN IT
|
||||
|
||||
(I assume you mean: the briefcase latch.)
|
||||
The metal latch snaps open. At the same time, a loud thump comes from within
|
||||
the briefcase.
|
||||
|
||||
The conductor appears and makes a gesture, asking for your ticket.
|
||||
|
||||
>GIVE CONDUC TICKET
|
||||
|
||||
(Whom do you want to give the conduc ticket to?)
|
||||
|
||||
>CONDUC
|
||||
|
||||
(You don't seem to be holding that!)
|
||||
|
||||
>GIVE CONDUCTOR TICKET
|
||||
|
||||
(Whom do you want to give the conductor ticket to?)
|
||||
|
||||
>GIVE TICKET TO CONDUCTOR
|
||||
|
||||
The conductor punches your ticket and then gives it back to you.
|
||||
He punches the young man's ticket.
|
||||
|
||||
>TURN LATCH
|
||||
|
||||
A mechanical click comes from within the briefcase.
|
||||
The conductor touches a finger to his cap and opens the compartment door for a
|
||||
moment and leaves.
|
||||
|
||||
>OPEN CASE
|
||||
|
||||
You open it a crack before you realize that everything inside would fall out.
|
||||
You quickly close it again.
|
||||
|
||||
>SIT
|
||||
|
||||
(on the train seat)
|
||||
You're now sitting on it.
|
||||
A young couple, just outside, disappear to the rear.
|
||||
Just outside the attractive woman appears from the rear end.
|
||||
|
||||
>OPEN CASE
|
||||
|
||||
Opening it reveals a document, a miniature camera, a cassette of film, a
|
||||
magnifying glass, and a scrap of newsprint.
|
||||
The attractive woman stops here.
|
||||
|
||||
>EXAMINE DOCUMENT
|
||||
|
||||
It's not a very handsome document, scrawled in a hurry by a hand that wouldn't
|
||||
win any prizes under the best of conditions. But it seems to contain crucial
|
||||
information -- times, places, a crude map, even code words -- about a plan to
|
||||
kidnap some high-ranking official. Were the plan to succeed, several
|
||||
governments would be embarrassed, if not in mortal danger, and the balance of
|
||||
power would become precarious.
|
||||
|
||||
>EXAMINE NEWSPRINT
|
||||
|
||||
There doesn't seem to be anything written on the scrap of newsprint.
|
||||
|
||||
>HOLD NEWSPRINT TO LIGHT
|
||||
|
||||
That doesn't seem to help at all.
|
||||
|
||||
>RUB NEWSPRINT
|
||||
|
||||
Fiddling with it is a waste of time.
|
||||
|
||||
>RESTORE
|
||||
|
||||
From file: CASETIME.CSS14.1Okay.
|
||||
(fifth compartment)
|
||||
[You're facing to the left side of the train.]
|
||||
The attractive woman is here, still holding the briefcase and deep in thought.
|
||||
A spot of blood is still on the floor.
|
||||
|
||||
>HIT WOMAN
|
||||
|
||||
She blocks your thrust and knocks you unconscious....
|
||||
|
||||
You shake your head and come to.
|
||||
|
||||
>RESTOR
|
||||
|
||||
From file: CASETIME.CSS14.1Okay.
|
||||
(fifth compartment)
|
||||
[You're facing to the left side of the train.]
|
||||
The attractive woman is here, still holding the briefcase and deep in thought.
|
||||
A spot of blood is still on the floor.
|
||||
|
||||
>HIT WOMAN
|
||||
|
||||
She drops the briefcase and slumps on the floor.
|
||||
|
||||
>TAKE CASE
|
||||
|
||||
You are now holding it.
|
||||
|
||||
>E
|
||||
|
||||
(You open the compartment door and close it again.)
|
||||
|
||||
(rear end)
|
||||
[You're facing to the right side of the train.]
|
||||
The conductor and the regal woman are off to the front.
|
||||
He punches her ticket.
|
||||
The girl is off to the front, heading toward you.
|
||||
|
||||
>S
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
(rear vestibule)
|
||||
[You're facing to the rear.]
|
||||
The young woman is here, still chewing gum.
|
||||
The boy is here, still reading a newspaper.
|
||||
|
||||
>IN
|
||||
|
||||
(You open the restroom door and close it again.)
|
||||
(rear restroom)
|
||||
As you'd expect, the restroom is tidy but small, almost too small for comfort.
|
||||
But it does have the usual fixtures.
|
||||
|
||||
>SAVE
|
||||
|
||||
(In this variation, 1 minute will pass in the story before you can type another
|
||||
command. Are you sure you want to SAVE now? >Y
|
||||
|
||||
Okay.)
|
||||
To file: HAVECASE.CSS14.1Okay.
|
||||
|
||||
>LOCK DOOR
|
||||
|
||||
[You're facing to the left side of the train.]
|
||||
Okay, it is now locked.
|
||||
|
||||
>DROP CASE
|
||||
|
||||
Okay, it is now on the floor.
|
||||
|
||||
>OPEN LATCH
|
||||
|
||||
The metal latch snaps open.
|
||||
|
||||
>OPEN CASE
|
||||
|
||||
Opening it reveals a document, a miniature camera, a cassette of film, a
|
||||
magnifying glass, and a scrap of newsprint.
|
||||
|
||||
>I
|
||||
|
||||
You are not holding anything. But there's something in your pocket.
|
||||
|
||||
>L IN POCKET
|
||||
|
||||
The train lurches a bit.
|
||||
Your pocket contains a gun, your ticket, a timetable, a traveler's check, and
|
||||
your passport.
|
||||
And some money.
|
||||
You hear a knock on the door.
|
||||
|
||||
>CLOSE CASE
|
||||
|
||||
Closed.
|
||||
|
||||
The conductor appears and makes a gesture, asking for your ticket.
|
||||
|
||||
>GIVE CONDUC TICKET
|
||||
|
||||
(Whom do you want to give the conduc ticket to?)
|
||||
|
||||
>GIVE CONDUC THE TICKET
|
||||
|
||||
The conductor punches your ticket and then gives it back to you.
|
||||
He touches a finger to his cap and opens the restroom door for a moment and
|
||||
leaves.
|
||||
|
||||
>LOCK DOOR
|
||||
|
||||
Okay, it is now locked.
|
||||
|
||||
>OPEN CASE
|
||||
|
||||
Opening it reveals a scrap of newsprint, a magnifying glass, a cassette of
|
||||
film, a miniature camera, and a document.
|
||||
|
||||
>TAKE NEWSPRINT
|
||||
|
||||
(You can't take it.)
|
||||
|
||||
>I
|
||||
|
||||
You're holding your ticket.
|
||||
And there's something in your pocket.
|
||||
|
||||
>HOLD NEWSPRINT TO LOGHT
|
||||
|
||||
(I don't know the word "loght".)
|
||||
|
||||
>TAKE SCRAPO
|
||||
|
||||
(I don't know the word "scrapo".)
|
||||
|
||||
>TAKE SCRAP
|
||||
|
||||
(You can't take it.)
|
||||
|
||||
>TAKE ALL FROM CASE
|
||||
|
||||
(Please be more specific.)
|
||||
|
||||
>L
|
||||
|
||||
(rear restroom)
|
||||
(You're facing to the left side of the train, but you look in all directions
|
||||
for a moment.)
|
||||
As you'd expect, the restroom is tidy but small, almost too small for comfort.
|
||||
But it does have the usual fixtures.
|
||||
A black briefcase with a chrome latch is here, open.
|
||||
|
||||
|
||||
>L IN CASE
|
||||
|
||||
The briefcase contains a scrap of newsprint, a magnifying glass, a cassette of
|
||||
film, a miniature camera, and a document.
|
||||
|
||||
>TAKE SCRAP
|
||||
|
||||
(You can't take it.)
|
||||
|
||||
>TAKE CASE
|
||||
|
||||
Too bad, but it is open.
|
||||
|
||||
>SIT
|
||||
|
||||
(on the toilet)
|
||||
The train lurches a bit.
|
||||
You're now sitting on it.
|
||||
|
||||
>TAKE CASE
|
||||
|
||||
(You stand up first.)
|
||||
Too bad, but it is open.
|
||||
|
||||
>CLOSE CASE
|
||||
|
||||
Closed.
|
||||
|
||||
>TAKE IT
|
||||
|
||||
(I assume you mean: the briefcase.)
|
||||
You are now holding it.
|
||||
The train is now racing past a dark, violent river.
|
||||
|
||||
>SIT
|
||||
|
||||
(on the toilet)
|
||||
You're now sitting on it.
|
||||
|
||||
>OPEN CASE
|
||||
|
||||
Opening it reveals a document, a miniature camera, a cassette of film, a
|
||||
magnifying glass, and a scrap of newsprint.
|
||||
|
||||
>TAKE SCRAP
|
||||
|
||||
You are now holding it.
|
||||
|
||||
>HOLD IT TO LIGHT
|
||||
|
||||
(I assume you mean: the scrap of newsprint.)
|
||||
That doesn't seem to help at all.
|
||||
|
||||
>EXAMINE IT CAREFULLY
|
||||
|
||||
(I assume you mean: the scrap of newsprint.)
|
||||
There are some shiny lines on the scrap of newsprint, maybe invisible ink.
|
||||
|
||||
>L IN POCKET
|
||||
|
||||
Your pocket contains a gun, a timetable, a traveler's check, and your passport.
|
||||
And some money.
|
||||
|
||||
>COUNT MONEY
|
||||
|
||||
You are carrying *49.
|
||||
|
||||
>COUNT SLIMPUKS
|
||||
|
||||
(Sorry, but the word "slimpuks" is not in the vocabulary that you can use.)
|
||||
|
||||
>LICK SCRAP
|
||||
|
||||
(I don't know the word "lick".)
|
||||
|
||||
>TURN ON WATER
|
||||
|
||||
(I don't know the word "water".)
|
||||
|
||||
>Q
|
||||
|
||||
(If you want to continue from this point at another time, you must "SAVE"
|
||||
first.)
|
||||
Do you want to stop the story now? >Y
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,812 @@
|
|||
[Automatic transcript: User is MD]
|
||||
|
||||
Copyright (c) 1985 Infocom, Inc. All rights reserved.
|
||||
|
||||
Welcome to CHECKPOINT (TM) - interactive fiction from Infocom!
|
||||
|
||||
[Note to testers: this story has the command GO TO, and the concept of not
|
||||
being able to see things behind your back. The unit of currency in this story
|
||||
is the Frotzian slimpuk, whose symbol is "*".
|
||||
|
||||
Messages in square brackets [] will not be in the final release.
|
||||
Remember: you can shorten your words only to NINE (9) letters.
|
||||
But you can use C for COMPARTMENT, V for VESTIBULE, and F for FORWARD.]
|
||||
|
||||
Do you want the viewpoint of the traveler or the spy? >t
|
||||
|
||||
Do you want the short variation or the long one? >S
|
||||
|
||||
Then let the story begin!
|
||||
|
||||
With your business deal behind you, you want only to get out of this bleak
|
||||
corner of Eastern Europe. The frontier is now only a few hours away, and from
|
||||
there it's not far to Vienna, and civilization....
|
||||
|
||||
The ride seems endless, and you're dozing off again. The wheels of the train
|
||||
are ticking like a clock, ticking off the segments of track you're passing, and
|
||||
the compartment is rocking you back and forth, back and forth, making your
|
||||
eyelids slowly close.
|
||||
|
||||
Your slumber is cut short as a man staggers into your compartment, panting
|
||||
strangely. From his demeanor, you guess that he has drunk too much. But before
|
||||
you can dismiss him, you notice that he's grasping a bright red spot on his
|
||||
shirt. He speaks quietly, but in a hurry.
|
||||
|
||||
"I've got only a moment, so listen carefully! Since you were reading the
|
||||
International Herald over lunch, I assume you're an American. I am an agent of
|
||||
our government, and I've been sent to deliver a document to our special agent
|
||||
in Gola. An enemy agent spotted me on the train, and I only barely managed to
|
||||
escape." He groans softly, examining his wound.
|
||||
|
||||
"The best I can do now is throw the enemy off the scent, but I need you, and
|
||||
your country needs you, to carry out my assignment." You start to interrupt, a
|
||||
thousand questions racing through your mind. "There's no time! Here! Take my
|
||||
briefcase, but be careful with it! Our enemies are all around us! My contact in
|
||||
Gola is an old woman, and I was to display a pen, then use the words 'red
|
||||
handkerchief' ...." Then he stops and listens. Before you can say anything, he
|
||||
checks the corridor and races out.
|
||||
|
||||
CHECKPOINT
|
||||
Infocom interactive fiction - a story of intrigue
|
||||
Copyright (c) 1985 by Infocom, Inc. All rights reserved.
|
||||
CHECKPOINT is a trademark of Infocom, Inc.
|
||||
Release 11 / Serial number 850402 / Traveler's viewpoint, short variation
|
||||
|
||||
(fourth compartment)
|
||||
This is a once-luxurious first-class compartment on the Znuk-Wien Express. The
|
||||
plush red upholstery on the two facing seats, shiny and worn in spots, and the
|
||||
greasy lace on the headrests, give the car an air of faded elegance. A red
|
||||
handle is hanging by a short length of cord from the ceiling, swinging in time
|
||||
to the train's rocking motion. The corridor is outside, past a window with a
|
||||
red curtain on it.
|
||||
The train is racing along a barren stubble-plain.
|
||||
You notice a worn spot on the floor.
|
||||
Sitting on the train seat is a briefcase.
|
||||
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>EXAMINE BRIEFCASE
|
||||
|
||||
The train lurches a bit.
|
||||
It's an expensive-looking case, built like a tank.
|
||||
You hear some kind of noise from the roof of the train.
|
||||
|
||||
What next?
|
||||
>OPEN THE BRIEFCASE
|
||||
|
||||
The latch is closed.
|
||||
|
||||
What next?
|
||||
>OPEN THE LATCH
|
||||
|
||||
The metal latch snaps open.
|
||||
Something outside the window catches your eye. It looks like the stranger
|
||||
falling off the roof of the train.
|
||||
|
||||
What next?
|
||||
>LOOK OUT WINDOW
|
||||
|
||||
The train is speeding along a barren stubble-plain.
|
||||
|
||||
What next?
|
||||
>OPEN THE BRIEFCASE
|
||||
|
||||
Opening it reveals a document, a miniature camera, a cassette of film, a
|
||||
magnifying glass, and a scrap of newsprint.
|
||||
|
||||
What next?
|
||||
>EXAMINE DOCUMENT
|
||||
|
||||
The train lurches a bit.
|
||||
It's not a very handsome document, scrawled in a hurry by a hand that wouldn't
|
||||
win any prizes under the best of conditions. But it seems to contain crucial
|
||||
information -- times, places, a crude map, even code words -- about a plan to
|
||||
kidnap some high-ranking official tomorrow. Were the plan to succeed, several
|
||||
governments would be embarrassed, if not in mortal danger, and the balance of
|
||||
power would become precarious.
|
||||
|
||||
What next?
|
||||
>EXAMINE NEWSPRINT
|
||||
|
||||
There doesn't seem to be anything written on the scrap of newsprint.
|
||||
Just outside an attractive woman appears from the middle.
|
||||
|
||||
What next?
|
||||
>EXAMINE FILM
|
||||
|
||||
The train lurches a bit.
|
||||
It looks like instant film, in a special miniature format.
|
||||
The attractive woman, just outside, disappears to the rear.
|
||||
|
||||
(You won't see "What next?" any more.)
|
||||
|
||||
>EXAMINE FILM THROUGH MAGNIFYING GLASS
|
||||
|
||||
(taking the cassette of film first)
|
||||
(taking the magnifying glass first)
|
||||
With the aid of the magnifying glass you can just make out what's on the film.
|
||||
The whole film is unexposed.
|
||||
|
||||
>EXAMINE NEWSPAPER THROUGH MAGNIFYING GLASS
|
||||
|
||||
(You can't see any newspaper here.)
|
||||
|
||||
>EXAMINE NEWSPRINT THROUGH MAGNIFYING GLASS
|
||||
|
||||
(taking the scrap of newsprint first)
|
||||
It looks the same, only much larger.
|
||||
|
||||
>I
|
||||
|
||||
You're holding a scrap of newsprint, a magnifying glass, and a cassette of
|
||||
film.
|
||||
And there's something in your pocket.
|
||||
|
||||
>TAKE THING FROM POCKET
|
||||
|
||||
(Sorry, but this story doesn't recognize the word "thing".)
|
||||
|
||||
>LOOK IN POCKET
|
||||
|
||||
Your pocket contains your ticket, a timetable, a traveler's check, and your
|
||||
passport.
|
||||
And some money.
|
||||
|
||||
>COUNT MONEY
|
||||
|
||||
You are carrying *49.
|
||||
Just outside a fat man appears from the rear end.
|
||||
|
||||
>PUT ALL IN BRIEFCASE
|
||||
|
||||
scrap of newsprint: Okay.
|
||||
magnifying glass: Okay.
|
||||
cassette of film: Okay.
|
||||
your ticket: Okay.
|
||||
timetable: There's not enough room.
|
||||
traveler's check: Okay.
|
||||
your passport: There's not enough room.
|
||||
The fat man enters, looks around, and sits down.
|
||||
Then he notices the briefcase and takes it.
|
||||
|
||||
>TAKE BRIEFCASE
|
||||
|
||||
(You stand up first.)
|
||||
The fat man holds it more tightly and looks at you defiantly.
|
||||
Just outside a young couple appear from the rear end.
|
||||
The fat man, carrying it, opens the compartment door for a moment and leaves.
|
||||
|
||||
>FOLLOW FAT MAN
|
||||
|
||||
The train lurches a bit.
|
||||
|
||||
(rear middle)
|
||||
[You're facing to the right side of the train.]
|
||||
This is the rear middle of the corridor. The floor and walls are covered with
|
||||
cream-colored linoleum, worn away in spots to reveal the original hardwood
|
||||
finish. A long series of windows, still framed by wood, runs along the corridor
|
||||
on the right-hand side of the train.
|
||||
The conductor is off to the front.
|
||||
The young couple are here, walking along. They head off to the front.
|
||||
The fat man is here, holding the briefcase and walking along. He heads off to
|
||||
the rear.
|
||||
|
||||
>FOLLOW FAT MAN
|
||||
|
||||
|
||||
(rear end)
|
||||
[You're facing to the rear.]
|
||||
This is the rear end of the corridor. On the left side of the train, behind a
|
||||
windowed door, lies the fifth compartment.
|
||||
The fat man is here, still holding the briefcase and walking along. He opens
|
||||
the swinging door for a moment and heads off to the rear.
|
||||
|
||||
>FOLLOW FAT MAN
|
||||
|
||||
(You can't see any fat man here.)
|
||||
|
||||
>OPEN DOOR
|
||||
|
||||
(Which door do you mean, the compartment door or the swinging door?)
|
||||
|
||||
>SWINGING
|
||||
|
||||
The swinging door swings noisily open.
|
||||
|
||||
>REAR
|
||||
|
||||
(rear vestibule)
|
||||
This is a small vestibule at the rear end of the car. There's a short flight of
|
||||
metal steps on the left side of the train leading down off the train, and a
|
||||
narrow metal ladder leading up to the roof. A small door leads to a restroom,
|
||||
and a big window is open to the outside. A red handle is hanging by a short
|
||||
length of cord from the ceiling, swinging in time to the train's rocking
|
||||
motion. The train is racing along a barren stubble-plain.
|
||||
The clatter of the wheels on the track is almost deafening.
|
||||
The swinging door automatically swings shut.
|
||||
The fat man, carrying the briefcase, off to the rear, opens the swinging door
|
||||
for a moment and disappears to the rear.
|
||||
|
||||
>OPEN DOOR
|
||||
|
||||
(Which door do you mean, the restroom door or the swinging door?)
|
||||
|
||||
>SWINGING
|
||||
|
||||
The swinging door swings noisily open.
|
||||
The conductor stops here to punch tickets.
|
||||
|
||||
>REAR
|
||||
|
||||
[Debugging info: you are entering car #3.]
|
||||
(forward vestibule)
|
||||
This is a small vestibule at the forward end of the car. It's just like the
|
||||
rear vestibule, but with no steps or ladder.
|
||||
|
||||
>REAR
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
The relative quiet here is welcome. The smell of food is unmistakable.
|
||||
(forward end)
|
||||
This is the forward end of the corridor. On the left side of the train lies the
|
||||
first booth.
|
||||
The fat man, carrying the briefcase, is off to the rear, heading away from you.
|
||||
|
||||
>REAR
|
||||
|
||||
The train lurches a bit.
|
||||
|
||||
(forward middle)
|
||||
This is the forward middle of the corridor. On the left side of the train lies
|
||||
the second booth.
|
||||
The fat man is off to the rear, heading away from you.
|
||||
|
||||
>REAR
|
||||
|
||||
(middle)
|
||||
This is the middle of the corridor. On the left side of the train lies the
|
||||
third booth.
|
||||
The attractive woman is in the third booth.
|
||||
The fat man, off to the rear, opens the swinging door for a moment and
|
||||
disappears to the rear.
|
||||
|
||||
>REAR
|
||||
|
||||
|
||||
(rear middle)
|
||||
This is the rear middle of the corridor. On the left side of the train lies the
|
||||
pantry.
|
||||
A waiter is in the pantry.
|
||||
|
||||
>REA
|
||||
|
||||
(I don't know the word "rea".)
|
||||
|
||||
>REAR
|
||||
|
||||
|
||||
(rear end)
|
||||
This is the rear end of the corridor. On the left side of the train lies the
|
||||
galley.
|
||||
A cook is in the galley.
|
||||
|
||||
>REAR
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
(rear vestibule)
|
||||
A cigarette machine stands in one corner, waiting to be either used or
|
||||
discarded -- it's hard to say which.
|
||||
|
||||
>REAR
|
||||
|
||||
[Debugging info: you are entering car #4.]
|
||||
(forward vestibule)
|
||||
|
||||
>REAR
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
The relative quiet here is welcome.
|
||||
(forward end)
|
||||
This is the forward end of the corridor. On the left side of the train, behind
|
||||
a windowed door, lies the first compartment.
|
||||
There's an attractive man here, gazing out the window.
|
||||
The fat man, carrying the briefcase, is off to the rear, heading away from you.
|
||||
|
||||
>REAR
|
||||
|
||||
|
||||
(forward middle)
|
||||
This is the forward middle of the corridor. On the left side of the train,
|
||||
behind a windowed door, lies the second compartment.
|
||||
The fat man is off to the rear, heading away from you.
|
||||
|
||||
>REAR
|
||||
|
||||
(middle)
|
||||
This is the middle of the corridor. On the left side of the train, behind a
|
||||
windowed door, lies the third compartment.
|
||||
The fat man, off to the rear, opens the swinging door for a moment and
|
||||
disappears to the rear.
|
||||
|
||||
>REAR
|
||||
|
||||
|
||||
(rear middle)
|
||||
|
||||
>REAR
|
||||
|
||||
|
||||
(rear end)
|
||||
|
||||
>REAR
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
(rear vestibule)
|
||||
A middle-aged couple are off to the rear.
|
||||
|
||||
>REAR
|
||||
|
||||
The train lurches a bit.
|
||||
[Debugging info: you are entering car #5.]
|
||||
(forward vestibule)
|
||||
The middle-aged couple are here, looking at you with suspicion.
|
||||
|
||||
>REAR
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
The relative quiet here is welcome.
|
||||
(forward end)
|
||||
A thin man is off to the rear.
|
||||
The fat man, carrying the briefcase, is off to the rear, heading away from you.
|
||||
|
||||
>REAR
|
||||
|
||||
|
||||
(forward middle)
|
||||
The thin man is off to the rear.
|
||||
The fat man is off to the rear, heading away from you.
|
||||
The train is now rocketing past a dark, violent river.
|
||||
|
||||
>REAR
|
||||
|
||||
(middle)
|
||||
An old couple are in the third compartment.
|
||||
The thin man is off to the rear.
|
||||
You notice marks and scratches on the walls.
|
||||
The fat man, off to the rear, opens the compartment door for a moment and
|
||||
enters the fifth compartment.
|
||||
|
||||
>REAR
|
||||
|
||||
|
||||
(rear middle)
|
||||
The thin man is here, reading a newspaper.
|
||||
Off to the rear the fat man, carrying the briefcase, appears.
|
||||
|
||||
>REAR
|
||||
|
||||
|
||||
(rear end)
|
||||
The fat man is here, holding the briefcase and walking along. He heads off to
|
||||
the front.
|
||||
|
||||
>FRONT
|
||||
|
||||
|
||||
(rear middle)
|
||||
[You're facing to the front.]
|
||||
The thin man is here, still reading a newspaper.
|
||||
Off to the front the conductor appears from the forward vestibule.
|
||||
The fat man is here, holding the briefcase and about to leave.
|
||||
He heads off to the rear.
|
||||
|
||||
>REAR
|
||||
|
||||
The train lurches a bit.
|
||||
|
||||
(rear end)
|
||||
[You're facing to the rear.]
|
||||
The fat man is here, holding the briefcase and looking in your direction.
|
||||
|
||||
>HIT FAT MAN
|
||||
|
||||
The train lurches a bit.
|
||||
He blocks your thrust and knocks you unconscious....
|
||||
|
||||
You shake your head and come to.
|
||||
|
||||
>L
|
||||
|
||||
(rear end)
|
||||
(You're facing to the rear, but you look in all directions for a moment.)
|
||||
This is the rear end of the corridor. The floor and walls are covered with
|
||||
cream-colored linoleum, worn away in spots to reveal the original hardwood
|
||||
finish. A long series of windows, still framed by wood, runs along the corridor
|
||||
on the right-hand side of the train. On the left side of the train, behind a
|
||||
windowed door, lies the fifth compartment.
|
||||
The thin man is off to the front.
|
||||
|
||||
|
||||
>ENTER FIFTH COMPARTMENT
|
||||
|
||||
(You stand up first.)
|
||||
(fifth compartment)
|
||||
[You're facing to the left side of the train.]
|
||||
There's an old couple here, talking quietly.
|
||||
|
||||
>EXAMINE COUPLE
|
||||
|
||||
The train lurches a bit.
|
||||
They are dressed for business, in shades of gray, with a strange odor. They
|
||||
have a birthmark on one cheek like a wine stain.
|
||||
|
||||
>SEARCH COUPLE
|
||||
|
||||
The train lurches a bit.
|
||||
They push you away and mutter, "Azit jon chofrp frobnoshbobnash lizjer?"
|
||||
|
||||
>HIT COUPLE
|
||||
|
||||
The train lurches a bit.
|
||||
They slap you right back. Wow, is your face red!
|
||||
The train is now rocketing along the edge of a rocky precipice.
|
||||
|
||||
>RESTART
|
||||
|
||||
Do you want to start over from the beginning? >Y
|
||||
|
||||
Copyright (c) 1985 Infocom, Inc. All rights reserved.
|
||||
|
||||
Welcome to CHECKPOINT (TM) - interactive fiction from Infocom!
|
||||
|
||||
[Note to testers: this story has the command GO TO, and the concept of not
|
||||
being able to see things behind your back. The unit of currency in this story
|
||||
is the Frotzian slimpuk, whose symbol is "*".
|
||||
|
||||
Messages in square brackets [] will not be in the final release.
|
||||
Remember: you can shorten your words only to NINE (9) letters.
|
||||
But you can use C for COMPARTMENT, V for VESTIBULE, and F for FORWARD.]
|
||||
|
||||
Do you want the viewpoint of the traveler or the spy? >T
|
||||
|
||||
Do you want the short variation or the long one? >S
|
||||
|
||||
Then let the story begin!
|
||||
|
||||
With your business deal behind you, you want only to get out of this bleak
|
||||
corner of Eastern Europe. The frontier is now only a few hours away, and from
|
||||
there it's not far to Vienna, and civilization....
|
||||
|
||||
The ride seems endless, and you're dozing off again. The wheels of the train
|
||||
are ticking like a clock, ticking off the segments of track you're passing, and
|
||||
the compartment is rocking you back and forth, back and forth, making your
|
||||
eyelids slowly close.
|
||||
|
||||
Your slumber is cut short as a man staggers into your compartment, panting
|
||||
strangely. From his demeanor, you guess that he has drunk too much. But before
|
||||
you can dismiss him, you notice that he's grasping a bright red spot on his
|
||||
shirt. He speaks quietly, but in a hurry.
|
||||
|
||||
"I've got only a moment, so listen carefully! Since you were reading the
|
||||
International Herald over lunch, I assume you're an American. I am an agent of
|
||||
our government, and I've been sent to deliver a document to our special agent
|
||||
in Gola. An enemy agent spotted me on the train, and I only barely managed to
|
||||
escape." He groans softly, examining his wound.
|
||||
|
||||
"The best I can do now is throw the enemy off the scent, but I need you, and
|
||||
your country needs you, to carry out my assignment." You start to interrupt, a
|
||||
thousand questions racing through your mind. "There's no time! Here! Take my
|
||||
briefcase, but be careful with it! Our enemies are all around us! My contact in
|
||||
Gola is an old woman, and I was to display a pen, then use the words 'red
|
||||
handkerchief' ...." Then he stops and listens. Before you can say anything, he
|
||||
checks the corridor and races out.
|
||||
|
||||
CHECKPOINT
|
||||
Infocom interactive fiction - a story of intrigue
|
||||
Copyright (c) 1985 by Infocom, Inc. All rights reserved.
|
||||
CHECKPOINT is a trademark of Infocom, Inc.
|
||||
Release 11 / Serial number 850402 / Traveler's viewpoint, short variation
|
||||
|
||||
(second compartment)
|
||||
This is a once-luxurious first-class compartment on the Znuk-Wien Express. The
|
||||
plush red upholstery on the two facing seats, shiny and worn in spots, and the
|
||||
greasy lace on the headrests, give the car an air of faded elegance. A red
|
||||
handle is hanging by a short length of cord from the ceiling, swinging in time
|
||||
to the train's rocking motion. The corridor is outside, past a window with a
|
||||
red curtain on it.
|
||||
The train is speeding along a barren stubble-plain.
|
||||
Sitting on the train seat is a briefcase.
|
||||
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>TAKE BRIEFCASE
|
||||
|
||||
The train lurches a bit.
|
||||
The train's lurching puts you off balance, and you miss it.
|
||||
You hear some kind of noise from the roof of the train.
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
The train lurches a bit.
|
||||
The train's lurching puts you off balance, and you miss it.
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
You are now holding it.
|
||||
Something outside the window catches your eye. It looks like the stranger
|
||||
falling off the roof of the train.
|
||||
|
||||
What next?
|
||||
>OUT
|
||||
|
||||
The train lurches a bit.
|
||||
(You stand up first.)
|
||||
(You open the compartment door and close it again.)
|
||||
|
||||
(forward middle)
|
||||
[You're facing to the right side of the train.]
|
||||
This is the forward middle of the corridor. The floor and walls are covered
|
||||
with cream-colored linoleum, worn away in spots to reveal the original hardwood
|
||||
finish. A long series of windows, still framed by wood, runs along the corridor
|
||||
on the right-hand side of the train.
|
||||
An old woman is off to the rear.
|
||||
|
||||
What next?
|
||||
>REAR
|
||||
|
||||
(middle)
|
||||
[You're facing to the rear.]
|
||||
This is the middle of the corridor. On the left side of the train, behind a
|
||||
windowed door, lies the third compartment.
|
||||
The old woman is here, gazing out the window.
|
||||
|
||||
What next?
|
||||
>EXAMINE WOMAN
|
||||
|
||||
She is dressed for an outing, in shades of purple, with a cane. She has a wart
|
||||
that's hard to avoid looking at.
|
||||
|
||||
What next?
|
||||
>REAR
|
||||
|
||||
The train lurches a bit.
|
||||
|
||||
(rear middle)
|
||||
This is the rear middle of the corridor. On the left side of the train, behind
|
||||
a windowed door, lies the fourth compartment.
|
||||
A boy is in the fourth compartment.
|
||||
|
||||
What next?
|
||||
>LOOK AT BOY
|
||||
|
||||
He is dressed for business, in shades of brown, with an umbrella.
|
||||
|
||||
(You won't see "What next?" any more.)
|
||||
|
||||
>REAR
|
||||
|
||||
|
||||
(rear end)
|
||||
This is the rear end of the corridor. On the left side of the train, behind a
|
||||
windowed door, lies the fifth compartment.
|
||||
|
||||
>REAR
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
(rear vestibule)
|
||||
This is a small vestibule at the rear end of the car. There's a short flight of
|
||||
metal steps on the left side of the train leading down off the train, and a
|
||||
narrow metal ladder leading up to the roof. A small door leads to a restroom,
|
||||
and a big window is open to the outside. A red handle is hanging by a short
|
||||
length of cord from the ceiling, swinging in time to the train's rocking
|
||||
motion. The train is speeding along a barren stubble-plain.
|
||||
The clatter of the wheels on the track is almost deafening.
|
||||
There's a middle-aged couple here, looking at you with suspicion.
|
||||
Off to the rear a fat man appears from the forward end.
|
||||
|
||||
>U
|
||||
|
||||
The rungs of the ladder are cold, the wind fierce, and the train bucks like a
|
||||
wild animal, but somehow you manage to make it to the roof. Your sense of
|
||||
satisfaction, however, is short-lived when you notice that the train is rapidly
|
||||
approaching a tunnel.
|
||||
(roof)
|
||||
You are on the roof of the train. The wind blows your hair, and the rocking,
|
||||
lurching train threatens to buck you right off. It occurs to you that this
|
||||
might not be the safest place to be right now.
|
||||
|
||||
>D
|
||||
|
||||
(rear vestibule)
|
||||
The fat man is here, walking along. The middle-aged couple are here, still
|
||||
looking at you with suspicion.
|
||||
He pauses a minute.
|
||||
An attractive man opens the swinging door for a moment and walks past you from
|
||||
the front.
|
||||
|
||||
>OPEN DOOR
|
||||
|
||||
(Which door do you mean, the restroom door or the swinging door?)
|
||||
|
||||
>RESTROOM
|
||||
|
||||
Too bad, but it is locked.
|
||||
The attractive man heads off to the rear.
|
||||
The train is now hurtling through a dark tunnel.
|
||||
|
||||
>EXAMINE COUPLE
|
||||
|
||||
They are dressed for an outing, in shades of blue, with a beret. Their teeth
|
||||
and fingers are well-stained with nicotine.
|
||||
The attractive man, off to the rear, opens the swinging door for a moment and
|
||||
disappears to the rear.
|
||||
|
||||
>PULL RED HANDLE
|
||||
|
||||
The air fills with the high-pitched whine of metal on metal, and you are thrown
|
||||
violently forward as the train comes to an emergency stop.
|
||||
|
||||
>FORWARD
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
|
||||
(rear end)
|
||||
[You're facing to the front.]
|
||||
The conductor, the girl and the old woman are off to the front.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>FORWARD
|
||||
|
||||
|
||||
(rear middle)
|
||||
The boy is in the fourth compartment.
|
||||
The conductor, the girl and the old woman are off to the front.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>WAIT
|
||||
|
||||
(I assume you mean: wait 10 minutes.)
|
||||
Time passes...
|
||||
A whistle sounds, and the train briefly shudders and starts moving again.
|
||||
The conductor punches the girl's ticket.
|
||||
The girl is off to the front, heading away from you.
|
||||
Do you want to keep waiting? >N
|
||||
|
||||
The time is now 13.41.
|
||||
|
||||
>F
|
||||
|
||||
(middle)
|
||||
The conductor is here, making his rounds. The old woman is here, still gazing
|
||||
out the window.
|
||||
He makes a gesture, asking for your ticket.
|
||||
The girl is off to the front, heading away from you.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>GIVE TICKET TO CONDUCTOR
|
||||
|
||||
The conductor punches your ticket and then gives it back to you.
|
||||
He punches the fat man's ticket.
|
||||
The girl, off to the front, opens the swinging door for a moment and disappears
|
||||
to the front.
|
||||
|
||||
>F
|
||||
|
||||
|
||||
(forward middle)
|
||||
The fat man pauses a minute.
|
||||
|
||||
>F
|
||||
|
||||
|
||||
(forward end)
|
||||
This is the forward end of the corridor. On the left side of the train, behind
|
||||
a windowed door, lies the first compartment.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>F
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
(forward vestibule)
|
||||
This is a small vestibule at the forward end of the car. It's just like the
|
||||
rear vestibule, but with no steps or ladder.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>F
|
||||
|
||||
[Debugging info: you are entering car #1.]
|
||||
(rear vestibule)
|
||||
The fat man walks past you from the rear.
|
||||
|
||||
>F
|
||||
|
||||
(You open the swinging door and close it again.)
|
||||
The relative quiet here is welcome.
|
||||
(rear end)
|
||||
An old couple are in the fifth compartment.
|
||||
The girl is off to the front, heading away from you.
|
||||
|
||||
>EXAMINE COUPLE
|
||||
|
||||
They are dressed for business, in shades of gray, with a strange odor.
|
||||
The girl is off to the front, heading away from you.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>F
|
||||
|
||||
|
||||
(rear middle)
|
||||
The girl, off to the front, opens the compartment door for a moment and enters
|
||||
the first compartment.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>F
|
||||
|
||||
(middle)
|
||||
A thin woman is in the third compartment.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>F
|
||||
|
||||
The train lurches a bit.
|
||||
|
||||
(forward middle)
|
||||
An old man is in the second compartment.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>F
|
||||
|
||||
The train lurches a bit.
|
||||
|
||||
(forward end)
|
||||
The girl is in the first compartment.
|
||||
The fat man pauses a minute.
|
||||
|
||||
>ENTER FIRST
|
||||
|
||||
(I couldn't find enough nouns in that sentence!)
|
||||
|
||||
>ENTER
|
||||
|
||||
The train lurches a bit.
|
||||
(You open the compartment door and close it again.)
|
||||
(first compartment)
|
||||
[You're facing to the left side of the train.]
|
||||
The girl is here, smoking a cigarette.
|
||||
The fat man enters and sits down.
|
||||
|
||||
>EXAMINE GIRL
|
||||
|
||||
She is dressed for a long trip, in shades of red, with a brown-paper package.
|
||||
Her glittering black eyes turn away whenever you try to look into them.
|
||||
|
||||
>TAKE PACKAGE
|
||||
|
||||
(You don't need to use the word "package" to finish this story.)
|
||||
|
||||
>EXIT
|
||||
|
||||
(You open the compartment door and close it again.)
|
||||
|
||||
(forward end)
|
||||
[You're facing to the right side of the train.]
|
||||
The fat man pauses a minute.
|
||||
|
||||
>;SHOULDN'T IT MENTION THAT THE FAT MAN GOT UP AND FOLLOWED ME?
|
||||
|
||||
GO TO THIRD CAR
|
||||
|
||||
(You can't see any third car here!)
|
||||
|
||||
>GO TO LADDER
|
||||
|
||||
(Please be more specific.)
|
||||
|
||||
>QUIT
|
||||
|
||||
(If you want to continue from this point at another time, you must "SAVE"
|
||||
first.)
|
||||
Do you want to stop playing now? >Y
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,802 @@
|
|||
[Automatic transcript: User is SWG]
|
||||
|
||||
Copyright (c) 1985 Infocom, Inc. All rights reserved.
|
||||
|
||||
Welcome to CHECKPOINT (TM) - interactive fiction from Infocom!
|
||||
|
||||
[Note to testers: this story has the command GO TO, and the concept of not
|
||||
being able to see things behind your back. The unit of currency in this story
|
||||
is the Frotzian slimpuk, whose symbol is "*".
|
||||
|
||||
Messages in square brackets [] will not be in the final release.
|
||||
Remember: you can shorten your words only to NINE (9) letters.
|
||||
But you can use C for COMPARTMENT, V for VESTIBULE, and F for FORWARD.]
|
||||
|
||||
Do you want the viewpoint of the traveler or the spy? >S
|
||||
|
||||
Do you want the short variation or the long one? >S
|
||||
|
||||
Then let the story begin!
|
||||
Why did you want to be a spy anyway? You could have had a nice restful job,
|
||||
like an air-traffic controller. You could have tended flowers behind a white
|
||||
picket fence around your country cottage. At least they could let you grab a
|
||||
few winks between one job and the next. But no -- you finish debriefing in some
|
||||
dirty little city in Frotzerland, and before you can even find a phone book,
|
||||
let alone a hotel, they volunteer you for another assignment.
|
||||
|
||||
"You've got to intercept a document!" they told you. "Then deliver it to our
|
||||
agent in Gola so the leak can be traced. We don't know where it is for sure,
|
||||
but we think it's in a briefcase that's leaving town on the next train. You're
|
||||
the only agent that's close enough and experienced enough to be sent after it.
|
||||
And at the end of the trip, there will be a plane ticket to home waiting for
|
||||
you."
|
||||
|
||||
So that's why you're climbing all over this stupid train. Finding the briefcase
|
||||
was easy enough, but the dude carrying it was something else. Even your
|
||||
well-placed bullet didn't make him drop. Now, if only he'll take the bait and
|
||||
follow you up here, you can .... Wait! Here he comes from the forward end! But
|
||||
he's not carrying the case!
|
||||
|
||||
CHECKPOINT
|
||||
Infocom interactive fiction - a story of intrigue
|
||||
Copyright (c) 1985 by Infocom, Inc. All rights reserved.
|
||||
CHECKPOINT is a trademark of Infocom, Inc.
|
||||
Release 15 / Serial number 850404 / Spy's viewpoint, short variation
|
||||
|
||||
(roof)
|
||||
You are on the roof of the train. The wind blows your hair, and the rocking,
|
||||
lurching train threatens to buck you right off. It occurs to you that this
|
||||
might not be the safest place to be right now.
|
||||
The other spy is here, preparing to knock you off.
|
||||
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>#DBG
|
||||
|
||||
Find them bugs, boss!
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>KILL SPY
|
||||
|
||||
(with the gun)
|
||||
[Perform: 93/other spy/gun]
|
||||
The train lurches a bit.
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: You go for him, but he dodges. He hesitates, then lunges at you!
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[The conductor punches a regal woman's ticket.]
|
||||
[GOAL: old couple at second booth (car #3) to first compartment (car #2).]
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
[Perform: 11]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
[Perform: 93/other spy/gun]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: He dodges away. A sudden lurch knocks you off balance, and your last
|
||||
sight is the ground speeding up to meet you.
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[conductor is in (car #1) the other forward end.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[old couple is in (car #3) the forward middle (diner).
|
||||
]
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
[Perform: 11]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
[Perform: 93/other spy/gun]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: You go for him, but he dodges. He hesitates, then lunges at you!
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: [The conductor stops to punch tickets.
|
||||
Handled]
|
||||
Handled]
|
||||
[conductor is in (car #1) the other forward middle.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[old couple is in (car #3) the forward end (diner).
|
||||
]
|
||||
[GOAL: regal woman at other front vestibule (car #1) to first booth (car #3).]
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
[Perform: 11]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
[Perform: 93/other spy/gun]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: You go for him, but he dodges. He hesitates, preparing his next move.
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Room (M-END): Not handled]
|
||||
[The conductor punches a thin man's ticket.]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[old couple is in (car #3) the forward vestibule (diner).
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[regal woman is in (car #1) the other forward end.
|
||||
]
|
||||
The other spy slips but then regains his footing.
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
[Perform: 11]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
[Perform: 93/other spy/gun]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: He dodges away. A sudden lurch knocks you off balance, and your last
|
||||
sight is the ground speeding up to meet you.
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Room (M-END): Not handled]
|
||||
[The conductor punches a boy's ticket.]
|
||||
[Reached: Not handled]
|
||||
[old couple is in (car #2) the diner forward limbo.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[regal woman is in (car #1) the other forward middle.
|
||||
]
|
||||
The other spy leaps at you and tries to kick your feet out from under you. You
|
||||
respond with your best moves. But after wrestling together for what seems like
|
||||
ages, you both reach the edge of the roof and plunge over it!
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
[Perform: 11]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
[Perform: 93/other spy/gun]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: You go for him, but he dodges. He hesitates, preparing his next move.
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: [The conductor stops to punch tickets.
|
||||
Handled]
|
||||
Handled]
|
||||
[conductor is in (car #1) the other middle.
|
||||
]
|
||||
[Enroute: Not handled]
|
||||
[old couple is in (car #2) the other rear end.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[regal woman is in (car #1) the other middle.
|
||||
]
|
||||
The other spy crouches low and prepares to lunge.
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
[Perform: 11]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
[Perform: 93/other spy/gun]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: You lunge at him and almost miss, but he loses footing and falls off the
|
||||
edge of the roof! The train quickly leaves his body behind.
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Room (M-END): Not handled]
|
||||
[The conductor punches a young couple's ticket.]
|
||||
[Enroute: Not handled]
|
||||
[old couple is in (car #2) the other rear middle.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[regal woman is in (car #1) the other rear middle.
|
||||
]
|
||||
|
||||
What next?
|
||||
>#GOAL
|
||||
|
||||
[Perform: 7]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
conductor: other rear limbo/I:0/Q:rear vestibule(car #5) (DISABLED)
|
||||
[I-WALK-TRAIN: [I-CONDUCTOR:
|
||||
old couple: other forward end/F:other first compartment/I:0 [I-EXTRA: [I-EXTRA:
|
||||
regal woman: other rear limbo/I:0/Q:first booth(car #3) [I-WALK-TRAIN:
|
||||
[STOP-WALKING-F:
|
||||
|
||||
(You won't see "What next?" any more.)
|
||||
|
||||
>
|
||||
|
||||
I beg your pardon?
|
||||
|
||||
>L
|
||||
|
||||
[Perform: 105]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
(roof)
|
||||
You are on the roof of the train. The wind blows your hair, and the rocking,
|
||||
lurching train threatens to buck you right off. It occurs to you that this
|
||||
might not be the safest place to be right now.
|
||||
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: [The conductor stops to punch tickets.
|
||||
Handled]
|
||||
Handled]
|
||||
[conductor is in (car #1) the other rear middle.
|
||||
]
|
||||
[Enroute: Not handled]
|
||||
[old couple is in (car #2) the other middle.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[regal woman is in (car #1) the other rear end.
|
||||
]
|
||||
|
||||
>D
|
||||
|
||||
[Perform: 185/58]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
(rear vestibule)
|
||||
This is a small vestibule at the rear end of the car. There's a short flight of
|
||||
metal steps on the left side of the train leading down off the train, and a
|
||||
narrow metal ladder leading up to the roof. A small door leads to a restroom,
|
||||
and a big window is open to the outside. A red handle is hanging by a short
|
||||
length of cord from the ceiling, swinging in time to the train's rocking
|
||||
motion. The train is hurtling along a barren stubble-plain.
|
||||
The clatter of the wheels on the track is almost deafening.
|
||||
A cigarette machine stands in one corner, waiting to be either used or
|
||||
discarded -- it's hard to say which.
|
||||
[Room (M-END): Not handled]
|
||||
[The conductor punches a young woman's ticket.]
|
||||
[Enroute: Not handled]
|
||||
[old couple is in (car #2) the other forward middle.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[regal woman is in (car #1) the other rear vestibule.
|
||||
]
|
||||
|
||||
>F
|
||||
|
||||
[Perform: 185/63]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
(You open the swinging door and close it again.)
|
||||
The relative quiet here is welcome. The smell of food is unmistakable.
|
||||
(rear end)
|
||||
[You're facing to the front.]
|
||||
This is the rear end of the corridor. The floor and walls are covered with
|
||||
cream-colored linoleum, worn away in spots to reveal the original hardwood
|
||||
finish. A long series of windows, still framed by wood, runs along the corridor
|
||||
on the right-hand side of the train. On the left side of the train lies the
|
||||
galley.
|
||||
A cook is in the galley.
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: [The conductor stops to punch tickets.
|
||||
Handled]
|
||||
Handled]
|
||||
[conductor is in (car #1) the other rear end.
|
||||
]
|
||||
[Enroute: Not handled]
|
||||
[old couple is in (car #2) the other forward end.
|
||||
]
|
||||
[Reached: Not handled]
|
||||
[regal woman is in (car #2) the other rear limbo.
|
||||
]
|
||||
|
||||
>IN
|
||||
|
||||
[Perform: 185/57]
|
||||
The train lurches a bit.
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
(galley)
|
||||
[You're facing to the left side of the train.]
|
||||
The galley is crowded with supplies and equipment. The locked cabinets are
|
||||
probably filled with food, kettles, and kitchen tools. There's a crowded
|
||||
counter for preparing food. If you want to find something, you'll have to
|
||||
search for it.
|
||||
[ndescbit] There's a knife on the floor.
|
||||
[ndescbit] There's a counter on the floor.
|
||||
[ndescbit] There's a plate of thin gruel on the floor.
|
||||
The cook is here, cooking.
|
||||
[Room (M-END): He makes a pushing motion with one hand and points forward with
|
||||
the other. He seems angry that you're invading his space.
|
||||
Not handled]
|
||||
[The conductor punches a young man's ticket.]
|
||||
[Reached: [CALL-FOR-EXTRA@third booth: boy
|
||||
Not handled]
|
||||
[old couple is in (car #2) the other first compartment.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[regal woman is in (car #2) the other forward end.
|
||||
]
|
||||
[GOAL: boy at third booth (car #3) to first compartment (car #4).]
|
||||
|
||||
>GIVE COOK *50
|
||||
|
||||
(You don't seem to be holding the number!)
|
||||
|
||||
>
|
||||
|
||||
I beg your pardon?
|
||||
|
||||
>
|
||||
|
||||
I beg your pardon?
|
||||
|
||||
>
|
||||
|
||||
I beg your pardon?
|
||||
|
||||
>RESTART
|
||||
|
||||
[Perform: 128]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
Do you want to start over from the beginning? >Y
|
||||
|
||||
Copyright (c) 1985 Infocom, Inc. All rights reserved.
|
||||
|
||||
Welcome to CHECKPOINT (TM) - interactive fiction from Infocom!
|
||||
|
||||
[Note to testers: this story has the command GO TO, and the concept of not
|
||||
being able to see things behind your back. The unit of currency in this story
|
||||
is the Frotzian slimpuk, whose symbol is "*".
|
||||
|
||||
Messages in square brackets [] will not be in the final release.
|
||||
Remember: you can shorten your words only to NINE (9) letters.
|
||||
But you can use C for COMPARTMENT, V for VESTIBULE, and F for FORWARD.]
|
||||
|
||||
Do you want the viewpoint of the traveler or the spy? >S
|
||||
|
||||
Do you want the short variation or the long one? >S
|
||||
|
||||
Then let the story begin!
|
||||
Why did you want to be a spy anyway? You could have had a nice restful job,
|
||||
like an air-traffic controller. You could have tended flowers behind a white
|
||||
picket fence around your country cottage. At least they could let you grab a
|
||||
few winks between one job and the next. But no -- you finish debriefing in some
|
||||
dirty little city in Frotzerland, and before you can even find a phone book,
|
||||
let alone a hotel, they volunteer you for another assignment.
|
||||
|
||||
"You've got to intercept a document!" they told you. "Then deliver it to our
|
||||
agent in Gola so the leak can be traced. We don't know where it is for sure,
|
||||
but we think it's in a briefcase that's leaving town on the next train. You're
|
||||
the only agent that's close enough and experienced enough to be sent after it.
|
||||
And at the end of the trip, there will be a plane ticket to home waiting for
|
||||
you."
|
||||
|
||||
So that's why you're climbing all over this stupid train. Finding the briefcase
|
||||
was easy enough, but the dude carrying it was something else. Even your
|
||||
well-placed bullet didn't make him drop. Now, if only he'll take the bait and
|
||||
follow you up here, you can .... Wait! Here he comes from the forward end! But
|
||||
he's not carrying the case!
|
||||
|
||||
CHECKPOINT
|
||||
Infocom interactive fiction - a story of intrigue
|
||||
Copyright (c) 1985 by Infocom, Inc. All rights reserved.
|
||||
CHECKPOINT is a trademark of Infocom, Inc.
|
||||
Release 15 / Serial number 850404 / Spy's viewpoint, short variation
|
||||
|
||||
(roof)
|
||||
You are on the roof of the train. The wind blows your hair, and the rocking,
|
||||
lurching train threatens to buck you right off. It occurs to you that this
|
||||
might not be the safest place to be right now.
|
||||
The other spy is here, preparing to knock you off.
|
||||
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>#DBG
|
||||
|
||||
Find them bugs, boss!
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>GET OFF OF ROOF
|
||||
|
||||
[Perform: 166/that thing]
|
||||
The train lurches a bit.
|
||||
[Not Here: (You can't see any roof here!)
|
||||
Fatal]
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>
|
||||
|
||||
I beg your pardon?
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>
|
||||
|
||||
I beg your pardon?
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>
|
||||
|
||||
I beg your pardon?
|
||||
|
||||
Okay, what do you want to do now?
|
||||
>L
|
||||
|
||||
[Perform: 105]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
(roof)
|
||||
You are on the roof of the train. The wind blows your hair, and the rocking,
|
||||
lurching train threatens to buck you right off. It occurs to you that this
|
||||
might not be the safest place to be right now.
|
||||
The other spy is here, still preparing to knock you off.
|
||||
|
||||
[Room (M-END): Not handled]
|
||||
[GOAL: young couple at first booth (car #3) to second compartment (car #4).]
|
||||
He leaps at you and tries to kick your feet out from under you. You respond
|
||||
with your best moves. But after wrestling together for what seems like ages,
|
||||
you both reach the edge of the roof and plunge over it!
|
||||
|
||||
What next?
|
||||
>D
|
||||
|
||||
[Perform: 185/58]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
The other spy blocks your way.
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[conductor is in (car #1) the other forward end.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[young couple is in (car #3) the forward end (diner).
|
||||
]
|
||||
He slips but then regains his footing.
|
||||
|
||||
What next?
|
||||
>SHOOT IM
|
||||
|
||||
(You don't need to use the word "im" to finish this story.)
|
||||
|
||||
What next?
|
||||
>SHOOT HIM
|
||||
|
||||
(with the gun)
|
||||
[Perform: 150/him(gl)/gun]
|
||||
[other spy:LO]
|
||||
(I assume you mean: the other spy.)
|
||||
[him=other spy]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Preaction: Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: Your shot goes wild. He hesitates, then lunges at you!
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: [The conductor stops to punch tickets.
|
||||
Handled]
|
||||
Handled]
|
||||
[conductor is in (car #1) the other forward middle.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[young couple is in (car #3) the forward middle (diner).
|
||||
]
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
[Perform: 11]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
[Perform: 150/him(gl)/gun]
|
||||
[conductor:NA]
|
||||
(I assume you mean: the conductor.)
|
||||
[him=conductor]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Preaction: Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: (He isn't here!)
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Room (M-END): Not handled]
|
||||
|
||||
What next?
|
||||
>SHOOT SPY
|
||||
|
||||
(with the gun)
|
||||
[Perform: 150/other spy/gun]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Preaction: Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: Your shot goes wild. He hesitates, then lunges at you!
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[The conductor punches an old woman's ticket.]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[young couple is in (car #3) the middle (diner).
|
||||
]
|
||||
|
||||
What next?
|
||||
>G
|
||||
|
||||
[Perform: 11]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
[Perform: 150/other spy/gun]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Preaction: Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: Your shot almost misses, but it wings him and he falls off the edge of
|
||||
the roof! The train quickly leaves his body behind.
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[conductor is in (car #1) the other middle.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[young couple is in (car #3) the rear middle (diner).
|
||||
]
|
||||
|
||||
What next?
|
||||
>VERSION
|
||||
|
||||
[Perform: 181]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
CHECKPOINT
|
||||
Infocom interactive fiction - a story of intrigue
|
||||
Copyright (c) 1985 by Infocom, Inc. All rights reserved.
|
||||
CHECKPOINT is a trademark of Infocom, Inc.
|
||||
Release 15 / Serial number 850404 / Spy's viewpoint, short variation
|
||||
|
||||
(You won't see "What next?" any more.)
|
||||
|
||||
>SAVE
|
||||
|
||||
[Perform: 135]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
(In this variation, 1 minute will pass in the story before you can type another
|
||||
command. Are you sure you want to SAVE now? >Y
|
||||
|
||||
Okay.)
|
||||
To file: ROOF.SPY.15Okay.
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[conductor is in (car #1) the other rear middle.
|
||||
]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[young couple is in (car #3) the rear end (diner).
|
||||
]
|
||||
|
||||
>D
|
||||
|
||||
[Perform: 185/58]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
(rear vestibule)
|
||||
This is a small vestibule at the rear end of the car. There's a short flight of
|
||||
metal steps on the left side of the train leading down off the train, and a
|
||||
narrow metal ladder leading up to the roof. A small door leads to a restroom,
|
||||
and a big window is open to the outside. A red handle is hanging by a short
|
||||
length of cord from the ceiling, swinging in time to the train's rocking
|
||||
motion. The train is rocketing along a barren stubble-plain.
|
||||
The clatter of the wheels on the track is almost deafening.
|
||||
A thin man is off to the rear.
|
||||
A cigarette machine stands in one corner, waiting to be either used or
|
||||
discarded -- it's hard to say which.
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: [The conductor stops to punch tickets.
|
||||
Handled]
|
||||
Handled]
|
||||
[conductor is in (car #1) the other rear end.
|
||||
]
|
||||
A young couple open the swinging door for a moment and walk past you from the
|
||||
front.
|
||||
[Enroute: [Enroute: Handled]
|
||||
Handled]
|
||||
[young couple is in (car #3) the rear vestibule (diner).
|
||||
]
|
||||
|
||||
>#WHERE
|
||||
|
||||
[Perform: 10]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
yourself is in (car #3) the rear vestibule (diner).
|
||||
conductor is in (car #1) the other rear end.
|
||||
waiter is in (car #3) the pantry (diner).
|
||||
cook is in (car #3) the galley (diner).
|
||||
young couple is in (car #3) the rear vestibule (diner).
|
||||
stranger is nowhere.
|
||||
thin man is in (car #4) the other front vestibule.
|
||||
fat man is in (car #2) the forward end.
|
||||
attractive man is in (car #4) the other rear vestibule.
|
||||
attractive woman is in (car #2) the other fifth compartment.
|
||||
regal woman is in (car #1) the other fifth compartment.
|
||||
thin woman is in (car #2) the forward middle.
|
||||
guard is in (car #2) the platform (1).
|
||||
large man is nowhere.
|
||||
small man is in (car #2) the third suite (fancy).
|
||||
old couple is in (car #5) the other fifth compartment.
|
||||
middle-aged couple is in (car #5) the other third compartment.
|
||||
young couple is in (car #3) the rear vestibule (diner).
|
||||
girl is in (car #2) the second compartment.
|
||||
boy is in (car #4) the other forward end.
|
||||
old woman is in (car #1) the other second compartment.
|
||||
old man is in (car #2) the rear restroom.
|
||||
young woman is in (car #2) the forward vestibule.
|
||||
young man is in (car #5) the other rear restroom.
|
||||
|
||||
>R
|
||||
|
||||
[Perform: 185/61]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
[Debugging info: you are entering car #4.]
|
||||
(forward vestibule)
|
||||
[You're facing to the rear.]
|
||||
This is a small vestibule at the forward end of the car. It's just like the
|
||||
rear vestibule, but with no steps or ladder.
|
||||
The thin man is here, looking at you with suspicion.
|
||||
There's a young woman here, reading a newspaper.
|
||||
[Room (M-END): Not handled]
|
||||
[The conductor punches a regal woman's ticket.]
|
||||
The young couple walk along with you.
|
||||
[Reached: Not handled]
|
||||
[young couple is in (car #4) the diner rear limbo.
|
||||
]
|
||||
|
||||
>SHOOT THIN MAN
|
||||
|
||||
(with the gun)
|
||||
[Perform: 150/thin man/gun]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Preaction: Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: He slumps on the floor.
|
||||
The young couple stare at him for a moment, not believing their eyes. Then they
|
||||
leave in a hurry.
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[GOAL: attractive man at rear vestibule (car #4) to second booth (car #3).]
|
||||
|
||||
>L
|
||||
|
||||
[Perform: 105]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Action:]
|
||||
(forward vestibule)
|
||||
(You're facing to the rear, but you look in all directions for a moment.)
|
||||
This is a small vestibule at the forward end of the car. It's just like the
|
||||
rear vestibule, but with no steps or ladder. A small door leads to a restroom,
|
||||
and a big window is open to the outside. A red handle is hanging by a short
|
||||
length of cord from the ceiling, swinging in time to the train's rocking
|
||||
motion. The train is speeding along a barren stubble-plain.
|
||||
The clatter of the wheels on the track is almost deafening.
|
||||
The thin man is here, dead.
|
||||
The young woman is here, still reading a newspaper.
|
||||
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[attractive man is in (car #4) the rear end.
|
||||
]
|
||||
|
||||
>TAKE THIN MAN
|
||||
|
||||
[Perform: 32/thin man]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Preaction: You try to pick up the body, but the gun keeps getting in the way.
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[attractive man is in (car #4) the rear middle.
|
||||
]
|
||||
|
||||
>PUT GUN IN POCKET
|
||||
|
||||
[Perform: 58/gun/your pocket]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Preaction: Not handled]
|
||||
[PRSI: Not handled]
|
||||
[PRSO: Not handled]
|
||||
[Action:]
|
||||
Okay.
|
||||
[Room (M-END): Not handled]
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[attractive man is in (car #4) the middle.
|
||||
]
|
||||
|
||||
>TAKE THIN MAN
|
||||
|
||||
[Perform: 32/thin man]
|
||||
[yourself=][Actor: Not handled]
|
||||
[Room (M-BEG): Not handled]
|
||||
[Preaction: You try to pick up the body, but your pocket keeps getting in the
|
||||
way.
|
||||
Handled]
|
||||
[Room (M-END): Not handled]
|
||||
|
||||
The conductor approaches, accompanied by two grim-faced soldiers armed with
|
||||
machine guns. They take things like homicide very seriously here. He isn't
|
||||
smiling as he says, "E qwamrkniglip glob floo gorm frobbobnosh."
|
||||
|
||||
After your arrest and a little gentle persuasion with beatings, cigarette burns
|
||||
and starvation, you confess to the crime of espionage. Within days your
|
||||
confession is front-page news around the world. And the Cold War gets a little
|
||||
bit hotter...
|
||||
[Enroute: [Enroute: Not handled]
|
||||
Not handled]
|
||||
[attractive man is in (car #4) the forward middle.
|
||||
]
|
||||
|
||||
>
|
|
@ -0,0 +1,146 @@
|
|||
|
||||
SCRIPTS FOR YOUR OPPONENT IN "CHECKPOINT"
|
||||
|
||||
Note: O = opponent, C = compartment, RV = rear vestibule, PO = passobject.
|
||||
|
||||
Rules:
|
||||
If you knock out O, script is suspended until O wakes up.
|
||||
If you kill O, script is suspended forever.
|
||||
If O is spy and you show McGuffin to him/her, O shoots you on the spot.
|
||||
|
||||
"S" script ("spy"):
|
||||
|
||||
0. If you take traveler's viewpoint, this begins when stranger is killed.
|
||||
1. O starts at RV in car just behind yours and heads for "your" C.
|
||||
(Reason: O is looking for case and saw stranger reach roof from your
|
||||
car.)
|
||||
2. If O reaches room where case is (and not hidden), O heads for that room.
|
||||
3. If O reaches room where blood spot is, O heads for that room.
|
||||
4. If O sees you and case is in same place as you, O heads for you and
|
||||
starts "FY" script.
|
||||
5. When O reaches destination,
|
||||
5a. If blood spot is on floor: If O can see you, O starts "FY"
|
||||
script. If O can see case, O "looks triumphant".
|
||||
5b. In any case: If you're holding case or O can't see it, O heads
|
||||
for C1 behind diner. Else O takes case and starts "WC" script.
|
||||
|
||||
"T" script ("traveler"):
|
||||
|
||||
0. If you take spy's viewpoint, this begins 10-15 minutes after story begins.
|
||||
1. If O isn't holding case:
|
||||
1a. If case is sitting on floor, O takes it.
|
||||
1b. If case is elsewhere in room, O "tries" to take it.
|
||||
1c. Otherwise, O heads for your location and starts "FY" script.
|
||||
2. O examines latch, turns it, opens it, opens case, examines scrap.
|
||||
(1 min each)
|
||||
3. O examines case. If McGuffin not in case, go to step 5.
|
||||
4. O takes camera, examines it, opens it, examines film, loads camera,
|
||||
closes it, cocks it, photographs McGuffin, opens camera, pockets film,
|
||||
puts away camera. (1 min each)
|
||||
5. O closes case, closes latch, turns latch (if long var.), takes case.
|
||||
(1 min each)
|
||||
6. If PO is knife, O heads for diner's RV and starts "SK" script.
|
||||
7. If PO is flower, O heads for RV (if O not in restroom) and starts
|
||||
"SF" script.
|
||||
8. Else, O heads for nearest restroom and starts "FM" script.
|
||||
|
||||
"AR" event ("train arrives at station"):
|
||||
|
||||
1. If you are spy and station is Frbz or Gola, O heads for platform and
|
||||
starts "FC" script.
|
||||
2. If you are spy and station is Knut and O has PO:
|
||||
2a. If you are not on train and O is on platform, O boards train,
|
||||
heads for C5 and continues "T" script.
|
||||
2b. Else, O heads for RV and starts "ST" script.
|
||||
3. If O is following "I" script, O heads for RV.
|
||||
|
||||
"DP" event ("train departs from station"):
|
||||
|
||||
1. If O has identified you, O (boards train and) heads for you.
|
||||
|
||||
"F" script ("flee"):
|
||||
|
||||
When O reaches destination, O continues "T" script.
|
||||
|
||||
"FC" script ("find contact"):
|
||||
|
||||
1. O walks from one end of platform to other, looking for contact.
|
||||
2. If and when O finds contact, O shows PO, and talks to contact (1
|
||||
min each).
|
||||
2a. If station is not Gola, contact whispers and O starts "RR" script.
|
||||
2b. If O has film, O gives it to contact, and story is over.
|
||||
|
||||
"FM" script ("flush McGuffin"):
|
||||
|
||||
When O reaches restroom, O flushes McGuffin (1 min) and waits.
|
||||
|
||||
"FY" script ("follow you"):
|
||||
|
||||
1. En route, if O discovers case and you're not holding it, O takes it
|
||||
and starts "WC" script. Else if O can't see you, O heads for you.
|
||||
2. If O reaches destination, O waits until you move again. But if you
|
||||
are still there, alone in a C or booth, O immediately threatens you with
|
||||
gun.
|
||||
3. While O waits: If you stay in a C or booth, O threatens you with gun.
|
||||
Else O heads for your location.
|
||||
4. After gun threat, if you don't leave immediately, O shoots you dead.
|
||||
|
||||
"I" script ("imitate"):
|
||||
|
||||
1. When O reaches RV, O leaves train and heads for north end of platform.
|
||||
2. When O reaches north end (not at checkpoint), O heads for south end.
|
||||
3. When O reaches north end (at checkpoint) or O reaches south end, O
|
||||
boards train and heads for C5 in car #5.
|
||||
4. En route, O searches the crowd.
|
||||
|
||||
"PC" script ("passed customs"):
|
||||
|
||||
1. When O reaches any destination but diner RV,
|
||||
1a. If PO is lighter, O heads for diner RV.
|
||||
1b. If PO is flower, O heads for RV and waits.
|
||||
2. When O reaches diner RV, O kicks machine, starts "SL" script and
|
||||
heads for front of train.
|
||||
|
||||
"RR" script ("restroom"):
|
||||
|
||||
1. O heads for restroom of contact's gender.
|
||||
|
||||
"SF" script ("seek flower"):
|
||||
|
||||
1. When O reaches destination, O waits.
|
||||
2. When train reaches meadow, train stops, O leaves restroom (if in
|
||||
one), leaves train, picks flower, boards train (1 min each), and waits.
|
||||
|
||||
"SK" script ("seek knife"):
|
||||
|
||||
1. When O reaches diner RV, O pulls stop cord and heads for galley.
|
||||
2. When O reaches galley, O takes knife and heads for C1 in next car rear.
|
||||
3. When O reaches C1, O waits.
|
||||
|
||||
"SL" script ("seek lighter"):
|
||||
|
||||
1. When O reaches front of train, O heads for rear of train, and vice
|
||||
versa. En route, O tries to acquire lighter from passenger.
|
||||
2. If O acquires lighter, O heads for rear of train.
|
||||
|
||||
"ST" script ("seek ticket"):
|
||||
|
||||
0. When train reaches Knut, O leaves restroom if in one.
|
||||
1. When O reaches RV, O leaves train and heads for ticket area.
|
||||
2. When O reaches ticket area, O buys ticket for Gola and heads for
|
||||
middle of platform.
|
||||
3. When O reaches there, O waits.
|
||||
|
||||
"WC" script ("with case"):
|
||||
|
||||
0. If you talk to O, O hurries away toward destination.
|
||||
1. O heads for C5 in car #5. When reached, O tries to open case. If case
|
||||
was open when O took it, no problem. Else:
|
||||
1a. If latch OK or long story:
|
||||
1a1. If McGuffin is in case, O just waits.
|
||||
1a2. If scrap is in case, O reads it and either heads for
|
||||
diner RV to start "SK" script, or heads for RV to start "SF"
|
||||
script, unless O already has PO.
|
||||
1a3. If O identified you, O starts "FY" script and heads for you.
|
||||
1a4. Else O starts "I" script.
|
||||
1b. Else O takes gas and dies. (So does anyone else in O's C.)
|
|
@ -0,0 +1,67 @@
|
|||
@style (spacing 2)
|
||||
@title (Spy Thriller - Spoilers)
|
||||
@pageheading (draft)
|
||||
|
||||
@majorheading (SPY THRILLER - SPOILERS AND INTERNALS)
|
||||
|
||||
@center (22 August 1984)
|
||||
@center (Comments to Stu Galley)
|
||||
@blankspace(5)
|
||||
|
||||
@heading (GEOGRAPHY)
|
||||
|
||||
Basic rule: the trains and stations should be as realistic as the
|
||||
technology and storage space will allow. Moving around should not in
|
||||
itself be a puzzle, but the limitations should be realistic. Example:
|
||||
you can move in one turn from one place to any other place in the same
|
||||
car (or in the station), provided you don't bump into another character;
|
||||
of course, you may overlook details along the way that you would see if
|
||||
you moved one ROOM at a time.
|
||||
|
||||
@heading (VARIATIONS ON ACTION)
|
||||
|
||||
At the beginning, if you try to follow the good spy out of your
|
||||
compartment, a bad spy might notice you and bother you during the
|
||||
rest of the trip.
|
||||
|
||||
Instead of (or in addition to) providing the MacGuffin in the briefcase,
|
||||
the good spy could provide you with a camera to photograph the
|
||||
MacGuffin. Then you might have to locate the MacGuffin and either
|
||||
steal it or photograph it secretly. Once you have the photo, you
|
||||
could let the bad guys keep (or find) the real MacGuffin and thus
|
||||
throw them off your trail.
|
||||
|
||||
The conductor himself and/or the customs agent could be a bad spy.
|
||||
|
||||
@heading (OBJECTS)
|
||||
|
||||
It would be nice if some of the "passobjects" were interdependent,
|
||||
so that obtaining one made it more difficult to perform some other
|
||||
crucial step.
|
||||
|
||||
Here's how you can improvise some of the "passobjects":
|
||||
|
||||
@begin (itemize)
|
||||
lighter - Find smoker in cafe or diner and steal it carefully.
|
||||
Or buy it in the store in a station.
|
||||
|
||||
flower - Take it from an empty table in cafe or diner without anyone noticing.
|
||||
Or pull emergency cord to stop train and pick it from beside the tracks.
|
||||
|
||||
camera - Buy it in the store in a station.
|
||||
|
||||
hat - Take it from an unguarded compartment.
|
||||
|
||||
pen - Buy it in the store in a station.
|
||||
|
||||
knife - Take it from kitchen when no one's looking.
|
||||
|
||||
ring - Use wrench to steal washer from faucet in rest room.
|
||||
|
||||
towel - All rest rooms have endless-loop towels, so use knife to cut
|
||||
a portion out. Or cut from diner tablecloth.
|
||||
|
||||
brass lantern (!) - Pull train's stop cord to create diversion, then
|
||||
steal lantern from conductor's compartment.
|
||||
|
||||
@end (itemize)
|
|
@ -0,0 +1,43 @@
|
|||
.lm 10;.rm 70;.paragraph 0, 0;.br;.lm 10;.rm 70;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.nj;.i 0;.sp 2;.title *DRAFT* Spy Thriller - Spoilers *DRAFT* 2/13/85 11:43
|
||||
.subtitle Proprietary Information of Infocom, Inc.#(Company Confidential)
|
||||
.pg;.sp 1;.s 4;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.nf;.c;^#SPY THRILLER - SPOILERS AND INTERNALS\#
|
||||
.sp 1;.s 3;.sp 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.c;22 August 1984
|
||||
.s 1;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.c;Comments to Stu Galley
|
||||
.s 1;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 4;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*GEOGRAPHY\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;Basic rule: the trains and stations should be as realistic as the
|
||||
technology and storage space will allow. Moving around should not in
|
||||
itself be a puzzle, but the limitations should be realistic. Example:
|
||||
you can move in one turn from one place to any other place in the same
|
||||
car (or in the station), provided you don't bump into another character_;
|
||||
of course, you may overlook details along the way that you would see if
|
||||
you moved one ROOM at a time.
|
||||
.sp 1;.s 3;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*VARIATIONS ON ACTION\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;At the beginning, if you try to follow the good spy out of your
|
||||
compartment, a bad spy might notice you and bother you during the
|
||||
rest of the trip.
|
||||
.sp 1;.s 1;.sp 2;Instead of (or in addition to) providing the MacGuffin in the briefcase,
|
||||
the good spy could provide you with a camera to photograph the
|
||||
MacGuffin. Then you might have to locate the MacGuffin and either
|
||||
steal it or photograph it secretly. Once you have the photo, you
|
||||
could let the bad guys keep (or find) the real MacGuffin and thus
|
||||
throw them off your trail.
|
||||
.sp 1;.s 1;.sp 2;The conductor himself and/or the customs agent could be a bad spy.
|
||||
.sp 1;.s 3;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*OBJECTS\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;It would be nice if some of the "passobjects" were interdependent,
|
||||
so that obtaining one made it more difficult to perform some other
|
||||
crucial step.
|
||||
.sp 1;.s 1;.sp 2;Here's how you can improvise some of the "passobjects":
|
||||
.sp 1;.s 1;.sp 2;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* lighter - Find smoker in cafe or diner and steal it carefully.
|
||||
Or buy it in the store in a station.
|
||||
.s 1;.i -4;* flower - Take it from an empty table in cafe or diner without anyone noticing.
|
||||
Or pull emergency cord to stop train and pick it from beside the tracks.
|
||||
.s 1;.i -4;* camera - Buy it in the store in a station.
|
||||
.s 1;.i -4;* hat - Take it from an unguarded compartment.
|
||||
.s 1;.i -4;* pen - Buy it in the store in a station.
|
||||
.s 1;.i -4;* knife - Take it from kitchen when no one's looking.
|
||||
.s 1;.i -4;* ring - Use wrench to steal washer from faucet in rest room.
|
||||
.s 1;.i -4;* towel - All rest rooms have endless-loop towels, so use knife to cut
|
||||
a portion out. Or cut from diner tablecloth.
|
||||
.s 1;.i -4;* brass lantern (!) - Pull train's stop cord to create diversion, then
|
||||
steal lantern from conductor's compartment.
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.j;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;
|
|
@ -0,0 +1,4 @@
|
|||
-date- -rel- -size- -pre- -obj- -glo- -voc-
|
||||
7/24 17 124816 29862 301 233 882
|
||||
7/24 17 124908 29862 301 233 882
|
||||
7/24 17 124900 29862 301 233 882
|
|
@ -0,0 +1,27 @@
|
|||
Assembling SPY.XZAP.7 on Wednesday, July 24, 1985 14:52:05
|
||||
Release: 17
|
||||
|
||||
64 Inserting SPYFREQ.XZAP.3 (646 bytes)
|
||||
710 Inserting SPYDAT.ZAP.17 (30388 bytes)
|
||||
31098 Inserting MACROS.ZAP.1 (906 bytes)
|
||||
32004 Inserting SYNTAX.ZAP.1 (0 bytes)
|
||||
32004 Inserting MAIN.ZAP.1 (3737 bytes)
|
||||
35741 Inserting PARSER.ZAP.2 (10731 bytes)
|
||||
46472 Inserting THINGS.ZAP.1 (5208 bytes)
|
||||
51680 Inserting PEOPLE.ZAP.1 (6659 bytes)
|
||||
58339 Inserting PLACES.ZAP.1 (636 bytes)
|
||||
58975 Inserting GLOBAL.ZAP.1 (3788 bytes)
|
||||
62763 Inserting CLOCK.ZAP.1 (214 bytes)
|
||||
62977 Inserting VERBS.ZAP.1 (19170 bytes)
|
||||
82147 Inserting TRAIN.ZAP.1 (11501 bytes)
|
||||
93648 Inserting CARS.ZAP.1 (1590 bytes)
|
||||
95238 Inserting STATION.ZAP.1 (2166 bytes)
|
||||
97404 Inserting GOAL.ZAP.1 (9810 bytes)
|
||||
107214 Inserting SPIES.ZAP.1 (11651 bytes)
|
||||
118865 Inserting SPYSTR.ZAP.17 (6035 bytes)
|
||||
301 objects.
|
||||
233 globals.
|
||||
882 word vocabulary.
|
||||
|
||||
124900 bytes (122K).
|
||||
29862 bytes of preload.
|
|
@ -0,0 +1,393 @@
|
|||
|
||||
|
||||
|
||||
|
||||
CHECKPOINT
__________
|
||||
|
||||
|
||||
|
||||
|
||||
14 January 1985
|
||||
|
||||
Comments to Stu Galley
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
RAISONS D'ETRE
_______ ______
|
||||
|
||||
|
||||
* This is a collection of stories in one product. Some of the
|
||||
stories should be short enough to finish in one session. All of
|
||||
the stories take place in the same general setting.
|
||||
|
||||
* The setting should justify some of the limitations of our current
|
||||
technology. Since it is hard to converse with characters, all or
|
||||
most of them don't understand English. Since "geography" is
|
||||
limited in scope, the setting is on trains and in stations, where
|
||||
movement is naturally restricted.
|
||||
|
||||
|
||||
|
||||
|
||||
SYNOPSES
________
|
||||
|
||||
|
||||
All of the stories are based on a similar plot; the difference among them is
|
||||
|
||||
which role you play in the story. I visualize printing the beginning of each
_____ ____
|
||||
|
||||
variation in the browsie, and continuing it on the screen. In each variation,
|
||||
|
||||
you can also choose between easier and harder levels of difficulty.
|
||||
|
||||
|
||||
|
||||
"Traveller" Variation:
___________ __________
|
||||
|
||||
|
||||
You're travelling alone, on business of some kind, on a train in the European
|
||||
|
||||
country of Frotzerland (see below). Suddenly a fellow passenger, recognizing
|
||||
|
||||
you as friendly, bursts into your compartment. He explains that he wants to
|
||||
|
||||
entrust his briefcase to you while he handles some dangerous business, but it's
|
||||
|
||||
*DRAFT* Checkpoint *DRAFT* 3/4/85 11:29 Page 2
|
||||
Proprietary Information of Infocom, Inc. (Company Confidential)
|
||||
|
||||
|
||||
vital that you follow his instructions, which vary depending on the level.
|
||||
|
||||
Then he dashes out, and a short time later you see his body falling from the
|
||||
|
||||
roof past your window. Obviously the "bad guys" are after his briefcase and/or
|
||||
|
||||
the "MacGuffin"! When you open the briefcase (which is in itself a puzzle),
|
||||
|
||||
you discover the MacGuffin or clue(s) as to how to acquire it.
|
||||
|
||||
|
||||
The easier level has these features:
|
||||
|
||||
* The briefcase contains the MacGuffin, as well as a camera and the
|
||||
name of an object (chosen by the program from a secret list),
|
||||
which is a password that you have to say to whoever meets the
|
||||
train. So you have to reach the frontier, pass customs with the
|
||||
MacGuffin, and deliver it to the contact (a "good guy") who will
|
||||
meet the train at the first station across the frontier -- all
|
||||
while avoiding the "bad guy(s)" and not attracting attention to
|
||||
yourself.
|
||||
|
||||
* The "bad" spy (who killed the "good" spy in the beginning) tries
|
||||
to get the MacGuffin from you, without explicit violence. You
|
||||
must avoid him/her, or you can get trapped and killed.
|
||||
|
||||
The harder level has the above features, plus these new ones:
|
||||
|
||||
* The briefcase contains the names of two objects, the password and
___
|
||||
a "passobject" that you have to display so the contact can
|
||||
recognize you. The "good" spy had such an object, but now he's
|
||||
gone, so you have to improvise the passobject somehow.
|
||||
|
||||
* The "bad" spy is more aggressive and smart, and he/she will force
|
||||
you to fight rather than flee. (Rated PG)
|
||||
|
||||
* You don't have the MacGuffin at the start; you must first contact
|
||||
an agent at the next train station down the line by displaying a
|
||||
second passobject in order to receive the MacGuffin.
|
||||
|
||||
* You're not on the right train for meeting the final contact. You
|
||||
must consult your timetable, change your itinerary, buy a new
|
||||
ticket, catch the right train at the right station, and proceed
|
||||
as before.
|
||||
|
||||
* There's also a pickpocket on the loose. If you bump into
|
||||
him/her, you may lose some item that you're carrying. (I suppose
|
||||
the briefcase is immune, but on the other hand it's a pain to
|
||||
keep things in it.)
|
||||
|
||||
|
||||
|
||||
*DRAFT* Checkpoint *DRAFT* 3/4/85 11:29 Page 3
|
||||
Proprietary Information of Infocom, Inc. (Company Confidential)
|
||||
|
||||
|
||||
"Spy" Variation:
_____ __________
|
||||
|
||||
|
||||
In this variation you play the role of the "bad" spy that goes after the
|
||||
|
||||
"innocent" traveller and the MacGuffin. Naturally, you think of yourself as a
|
||||
|
||||
"good" spy. Your goal is to find the MacGuffin and alter it so that the "bad
|
||||
|
||||
guys" receive false information. You begin on the roof of the train and
|
||||
|
||||
immediately fight the "bad" spy (who's "good" in the "traveller" variation).
|
||||
|
||||
Assuming that you win the fight, you next have to find the traveller with the
|
||||
|
||||
MacGuffin (or, in the harder level, the info to acquire it). You could try to
|
||||
|
||||
get the briefcase and snoop in it, observe the other passengers' behavior (or
|
||||
|
||||
speak to them in English, but they may not answer), and/or observe the platform
|
||||
|
||||
during stops. Once you locate the MacGuffin, you have to fight or trick the
|
||||
|
||||
courier, acquire the MacGuffin, alter it, and either return it to the courier
|
||||
|
||||
or deliver it yourself (using password and passobject).
|
||||
|
||||
|
||||
Any feature not mentioned in the following lists is like the previous
|
||||
|
||||
variation. The easier level has these features:
|
||||
|
||||
* The traveller carries the briefcase all the time, so you can tell
|
||||
who s/he is. But you can't acquire it without trickery or
|
||||
violence.
|
||||
|
||||
* You have limited means of aggression, e.g. just a gun and no
|
||||
special abilities.
|
||||
|
||||
|
||||
The harder level has the above features, plus these new ones:
|
||||
|
||||
* The traveller hides the briefcase whenever feasible, so you can't
|
||||
tell who s/he is. If you can find and open it, you may get
|
||||
clues.
|
||||
|
||||
* You have no weapon, but you can indulge in some unarmed violence
|
||||
(rated PG) or trickery (e.g. pose as contact, or acquire
|
||||
passobject and pose as traveller) to try to get what you want.
|
||||
|
||||
|
||||
|
||||
*DRAFT* Checkpoint *DRAFT* 3/4/85 11:29 Page 4
|
||||
Proprietary Information of Infocom, Inc. (Company Confidential)
|
||||
|
||||
|
||||
"Conductor" Variation:
___________ __________
|
||||
|
||||
|
||||
Your role is the conductor on the train, and your goal is to avoid getting
|
||||
|
||||
blamed for any trouble that occurs in your jurisdiction, like delays,
|
||||
|
||||
stowaways, violence, or smuggling. (Note: as a conductor, you can speak the
|
||||
|
||||
local language, which thus will be "dubbed" into English; but by the same taken
|
||||
|
||||
the "traveller," spy, etc. will be dubbed into Frotzian.) Your first duty is
|
||||
|
||||
to punch all passengers' tickets after each stop; if you miss one, he/she will
|
||||
|
||||
turn out to be a railway employee who is testing your performance, and you lose
|
||||
|
||||
your job. (This means you can't freely observe the suspect(s) during
|
||||
|
||||
ticket-punching time, so the McGuffin may change hands without your knowing
|
||||
|
||||
it.) Your second duty is to stand at the front end of the platform in each
|
||||
|
||||
station and give the order for the train to depart. At the frontier
|
||||
|
||||
checkpoint, you should stand by the customs agent and try to detect any
|
||||
|
||||
smuggling, such as the MacGuffin. If you observe the passengers while making
|
||||
|
||||
your rounds, you might be able to spot someone on a spy mission by their odd
|
||||
|
||||
behavior.
|
||||
|
||||
|
||||
Any feature not mentioned in the following lists is like the previous
|
||||
|
||||
variations. The easier level has these features:
|
||||
|
||||
* It is sufficient to catch either traveller or spy with the
|
||||
McGuffin in hand. At the checkpoint, all passengers empty their
|
||||
pockets to aid inspection.
|
||||
|
||||
|
||||
The harder level has the above features, plus these new ones:
|
||||
|
||||
* At the beginning, your train isn't headed for the frontier. But,
|
||||
if you report spy activity to a station guard, you will receive a
|
||||
new assignment on the train that the traveller and spy will use.
|
||||
(Your bosses will explain that a professional agent is replacing
|
||||
you in order to catch the spies; but -- by Murphy's Law -- the
|
||||
spies change trains too!)
|
||||
|
||||
* You get a better ending if you don't apprehend the smuggler at
|
||||
the checkpoint, but rather apprehend the contact also, at the
|
||||
*DRAFT* Checkpoint *DRAFT* 3/4/85 11:29 Page 5
|
||||
Proprietary Information of Infocom, Inc. (Company Confidential)
|
||||
|
||||
|
||||
station past the checkpoint.
|
||||
|
||||
|
||||
|
||||
Other features:
_____ _________
|
||||
|
||||
|
||||
For variety, the variations also differ in:
|
||||
|
||||
* which objects are the password and passobject (and in the harder
|
||||
levels the passobject is harder to obtain);
|
||||
|
||||
* which fellow passenger is the "bad" spy (this is especially
|
||||
appropriate for a spy story, since appearances deceive and all
|
||||
that);
|
||||
|
||||
* which person waiting at the station is your contact (ditto);
|
||||
|
||||
* and perhaps which train you begin on, thus changing your plan for
|
||||
catching the right connecting train (so it's vital to have the
|
||||
timetable and hence the package, in order to play).
|
||||
|
||||
|
||||
|
||||
|
||||
INNOVATIONS
___________
|
||||
|
||||
|
||||
Characters: Besides the "major" characters, with whom you can have some
|
||||
|
||||
meaningful interaction, there will be numerous "extras" appearing in the
|
||||
|
||||
"crowd" scenes, such as on the train and the platforms. (Other new products,
|
||||
|
||||
such as "Cutthroats" and "Suspect," have these to some extent.)
|
||||
|
||||
|
||||
Limited freedom of action: Since you're on a train most of the time, the
|
||||
|
||||
limited geography is more acceptable, as is the slow way you move about. Also,
|
||||
|
||||
it would be fun if the "bad guys" could capture you, bind and gag you, injure
|
||||
|
||||
you, etc. Then many verbs would not work, and you'd have to escape by some
|
||||
|
||||
cleverness.
|
||||
|
||||
|
||||
|
||||
|
||||
*DRAFT* Checkpoint *DRAFT* 3/4/85 11:29 Page 6
|
||||
Proprietary Information of Infocom, Inc. (Company Confidential)
|
||||
|
||||
|
||||
SETTING
_______
|
||||
|
||||
|
||||
Some people might think that the story should be set in a real country, like
|
||||
|
||||
Yugoslavia. It would immediately lend realism and a sense of "being there."
|
||||
|
||||
But there are problems. Would a player who happens to know Croatian complain
|
||||
|
||||
that the other characters don't understand it? Or, more likely, would the
|
||||
|
||||
story's timetable have to conform with a real one from that country? Would
|
||||
|
||||
everything have to be realistic: train layout, station layout, food menu, ...?
|
||||
|
||||
To avoid these problems, I'm assuming (for now) that the country is fictitious.
|
||||
|
||||
|
||||
Frotzerland is a country somewhere in the middle of Europe, with a neutral but
|
||||
|
||||
paranoid government. (Any similarity to actual countries living or dead is
|
||||
|
||||
just "tough noogies.") The Frotz National Railway ("Ferroglip Natsiolim
|
||||
|
||||
Frotzilim") tends to run on time, so you can usually depend on the printed
|
||||
|
||||
timetable. All action takes place on the trains and in the stations. A train
|
||||
|
||||
is made up of several identical passenger cars (technical note: single ROOMs
|
||||
|
||||
serve multiple locations), each with several compartments, a corridor, and two
|
||||
|
||||
rest rooms; also cars for baggage and dining. The stations are all identical
|
||||
|
||||
too, with these interesting rooms: platform, waiting room, cafe/store, rest
|
||||
|
||||
rooms, ticket/info window, baggage room. You can't leave a station without
|
||||
|
||||
boarding a train, since the police would take you in for an improper visa.
|
||||
|
||||
|
||||
|
||||
|
||||
CHARACTERS
__________
|
||||
|
||||
|
||||
The characters include:
|
||||
|
||||
|
||||
* The innocent traveller, who through pure chance gets mixed up in
|
||||
spy business
|
||||
|
||||
* The "good" spy (at the beginning) is a James Bond type, daring
|
||||
enough to go fight the "bad" spy and lose big.
|
||||
*DRAFT* Checkpoint *DRAFT* 3/4/85 11:29 Page 7
|
||||
Proprietary Information of Infocom, Inc. (Company Confidential)
|
||||
|
||||
|
||||
* The "bad" spy
|
||||
|
||||
* The train conductor -- helpful but suspicious, s/he doesn't want
|
||||
trouble in HIS (or HER) jurisdiction.
|
||||
|
||||
* The contact(s)
|
||||
|
||||
* Waiters, clerks, passengers, spear carriers, etc.
|
||||
|
||||
|
||||
Some of the characters will be chosen from the following list, depending on
|
||||
|
||||
which plot variation you choose. (Appearances will be randomly matched with
|
||||
|
||||
personalities.)
|
||||
|
||||
|
||||
* a devious "femme fatale"
|
||||
|
||||
* an attractive man
|
||||
|
||||
* a merciless, masculine woman
|
||||
|
||||
* a jovial, rotund, threatening man
|
||||
|
||||
* a regal older woman
|
||||
|
||||
* a tall, thin silent man
|
||||
|
||||
* and so on
|
||||
|
||||
|
||||
|
||||
|
||||
PACKAGE
_______
|
||||
|
||||
|
||||
* In the "browsie" could be a short prose introduction to each
|
||||
plot, in lieu of a long "boot screen."
|
||||
|
||||
* Timetable (and route map?) should be printed in a color(s) that
|
||||
can't easily be photocopied, and it should be a "feelie" so
|
||||
pirates can't read it in their local store.
|
||||
|
||||
* train ticket(s)
|
||||
|
||||
* "sound sheet" with useless phrases in Frotzian and English
|
||||
|
||||
* tourist guide to Frotzerland for "browsie"
|
||||
|
|
@ -0,0 +1,334 @@
|
|||
@style (spacing 2)
|
||||
@title (Checkpoint)
|
||||
@pageheading (draft)
|
||||
|
||||
@majorheading (CHECKPOINT)
|
||||
|
||||
@center (28 March 1985)
|
||||
@center (Comments to Stu Galley)
|
||||
@blankspace(5)
|
||||
|
||||
@heading (RAISONS D'ETRE)
|
||||
|
||||
@begin (itemize)
|
||||
This is a collection of stories in one product. Some of the stories
|
||||
should be short enough to finish in one session. All of the stories
|
||||
take place in the same general setting.
|
||||
|
||||
The setting should justify some of the limitations of our current
|
||||
technology. Since it is hard to converse with characters, all or most
|
||||
of them don't understand English. Since "geography" is limited in scope,
|
||||
the setting is on trains and in stations, where movement is naturally
|
||||
restricted.
|
||||
|
||||
The stories should convey a theme that Hitchcock used often in his
|
||||
movies: a very important mission can be delayed or even doomed by
|
||||
ordinary people that just happen to be in the way at the wrong time.
|
||||
@end (itemize)
|
||||
|
||||
@heading (SYNOPSES)
|
||||
|
||||
All of the stories are based on a similar plot; the difference among
|
||||
them is @U(which role) you play in the story.
|
||||
I visualize printing the beginning of each variation in the
|
||||
browsie, and continuing it on the screen.
|
||||
In each variation, you can also choose between easier and harder levels
|
||||
of difficulty.
|
||||
|
||||
@subheading ("Traveller" Variation:)
|
||||
You're travelling alone, on business of some kind, on a train
|
||||
in the European country of Frotzerland (see
|
||||
below). Suddenly a fellow passenger,
|
||||
recognizing you as friendly,
|
||||
bursts into your compartment. He explains that he wants
|
||||
to entrust his briefcase to you while he handles some dangerous
|
||||
business, but it's vital that
|
||||
@comment ( the contents reach N.A.T.O@. headquarters in Brussels without delay.
|
||||
If anything happens to him, would you please give the briefcase )
|
||||
you follow his instructions, which vary depending on the level.
|
||||
Then he dashes out, and a short time later
|
||||
you see his body falling from the roof past your window. Obviously
|
||||
the "bad guys" are after his briefcase and/or the "MacGuffin"!
|
||||
When you open the briefcase (which is in itself a puzzle), you discover
|
||||
@comment [ the MacGuffin; let's say it's a copy (small enough to conceal in your clothing -- say, in a pocket) of the "bad" guys' secret plan to kidnap the N.A.T.O@. Commander tomorrow. You also discover ]
|
||||
the MacGuffin or clue(s) as to how to acquire it.
|
||||
|
||||
The easier level has these features:
|
||||
@begin (itemize)
|
||||
The briefcase contains the MacGuffin, as well as
|
||||
a camera and the name
|
||||
of an object (chosen by the program from a secret
|
||||
list), which is a password that you have to say to whoever
|
||||
meets the train.
|
||||
So you have to reach the frontier, pass customs with
|
||||
the MacGuffin, and deliver it
|
||||
to the contact (a "good guy") who will meet the train at the
|
||||
first station across the frontier -- all
|
||||
while avoiding the "bad guy(s)" and not attracting attention to yourself.
|
||||
|
||||
The "bad" spy (who killed the "good" spy in the beginning)
|
||||
tries to get the MacGuffin from you, without explicit violence.
|
||||
You must avoid him/her, or you can get trapped and killed.
|
||||
@end (itemize)
|
||||
The harder level has the above features, plus these new ones:
|
||||
@begin (itemize)
|
||||
The briefcase contains the names of @u(two) objects, the password
|
||||
and a "passobject" that you have to display
|
||||
so the contact can recognize you. The "good" spy had such an object, but
|
||||
now he's gone, so you have to improvise the passobject somehow.
|
||||
|
||||
The "bad" spy is more aggressive and smart, and he/she will force you
|
||||
to fight rather than flee. (Rated PG)
|
||||
|
||||
You don't have the MacGuffin at the start; you must first
|
||||
contact an agent at the next train station down the line by displaying
|
||||
a second passobject in order to receive the MacGuffin.
|
||||
|
||||
You're not on the right train for meeting the final contact. You must
|
||||
consult your timetable, change your
|
||||
itinerary, buy a new ticket, catch the right train
|
||||
at the right station, and proceed as before.
|
||||
|
||||
There's also a pickpocket on the loose.
|
||||
If you bump into him/her, you may lose some item that you're carrying.
|
||||
(I suppose the briefcase is immune, but on the
|
||||
other hand it's a pain to keep things in it.)
|
||||
@end (itemize)
|
||||
|
||||
@comment [
|
||||
@U(Variation 2:)
|
||||
This plot differs from the first in that the "good" spy that enters
|
||||
at the beginning is actually, unknown to you, a bad spy.
|
||||
So your ostensible goal is the same, but you get the best ending only if
|
||||
(the information in) the MacGuffin is made useless before delivery.
|
||||
(If you don't deliver the MacGuffin as instructed, you learn that
|
||||
the bad guys just used another method for delivery and
|
||||
succeeded.) To avoid getting bogged down in the details of munging
|
||||
the MacGuffin, you have a helper: an actual "good" spy who will mung it
|
||||
for you. But you have to find this person (maybe the bad spy gives
|
||||
you a photo and instructs you to avoid him/her) and ask properly.]
|
||||
|
||||
@subheading ("Spy" Variation:)
|
||||
In this variation you play the role of the "bad" spy
|
||||
that goes after the "innocent" traveller and the MacGuffin.
|
||||
Naturally, you think of yourself as a "good" spy.
|
||||
Your goal is to find the MacGuffin and alter it so that the
|
||||
"bad guys" receive false information, or even better, deliver the
|
||||
original MacGuffin (not a photo) to your side for analysis
|
||||
to trace the leak of secret information.
|
||||
You begin on the roof of the train and immediately fight the
|
||||
"bad" spy (who's "good" in the "traveller" variation). Assuming that you win the
|
||||
fight, you next have to find the traveller with the MacGuffin (or, in the
|
||||
harder level,
|
||||
the info to acquire it). You could try to get the briefcase and snoop
|
||||
in it, observe
|
||||
the other passengers' behavior (or speak to them in English, but they
|
||||
may not answer), and/or observe the platform during stops.
|
||||
Once you locate the MacGuffin, you have to fight or trick the courier, and
|
||||
acquire the MacGuffin.
|
||||
Then you have a choice: you can alter it, and either return it to the courier
|
||||
or deliver it yourself (using password and passobject); or you can
|
||||
try to sneak it through customs and deliver it to your "team."
|
||||
|
||||
Any feature not mentioned in the following lists is like the previous
|
||||
variation. The easier level has these features:
|
||||
@begin (itemize)
|
||||
The traveller carries the briefcase all the time, so you can tell
|
||||
who s/he is. But you can't acquire it without trickery or violence.
|
||||
|
||||
You have limited means of aggression, e.g. just a gun and no special
|
||||
abilities.
|
||||
@end (itemize)
|
||||
|
||||
The harder level has the above features, plus these new ones:
|
||||
@begin (itemize)
|
||||
The traveller hides the briefcase whenever feasible, so you can't tell
|
||||
who s/he is. If you can find and open it, you may get clues.
|
||||
|
||||
You have no weapon, but you can indulge in some unarmed violence (rated PG)
|
||||
or trickery (e.g. pose as contact, or acquire passobject and pose as traveller)
|
||||
to try to get what you want.
|
||||
|
||||
If you succeed in delivering the MacGuffin itself, your contact will
|
||||
give you one more task: to help recapture a defector who's riding on the
|
||||
very same train.
|
||||
(The MacGuffin is in fact a copy of the secret plan to recapture him.)
|
||||
Your role in the recapture is simple, but it serves to make your final
|
||||
goal significantly different from your goal as "traveller."
|
||||
@end (itemize)
|
||||
|
||||
@subheading ("Conductor" Variation [deleted as of now]:)
|
||||
Your role is the conductor on the train, and your goal is to avoid
|
||||
getting blamed for any trouble that occurs in your jurisdiction,
|
||||
like delays, stowaways, violence, or smuggling.
|
||||
(Note: as a conductor, you can speak the local language, which thus
|
||||
will be "dubbed" into English; but by the same token the "traveller," spy,
|
||||
etc. will be dubbed into Frotzian.)
|
||||
Your first duty is to punch all passengers' tickets after each stop;
|
||||
if you miss one, he/she will turn out to be a railway employee
|
||||
who is testing your performance, and you lose your job.
|
||||
(This means you can't freely observe the suspect(s) during ticket-punching
|
||||
time, so the MacGuffin may change hands without your knowing it.)
|
||||
Your second duty is to stand at the front end of the platform
|
||||
in each station and give the order for the train to depart.
|
||||
At the frontier checkpoint, you should stand by the customs agent
|
||||
and try to detect any smuggling, such as the MacGuffin.
|
||||
If you observe the passengers while making your rounds, you
|
||||
might be able to spot someone on a spy mission by their odd behavior.
|
||||
|
||||
Any feature not mentioned in the following lists is like the previous
|
||||
variations. The easier level has these features:
|
||||
@begin (itemize)
|
||||
It is sufficient to catch either traveller or spy with the MacGuffin in
|
||||
hand. At the checkpoint, all passengers empty their pockets to aid
|
||||
inspection.
|
||||
@end (itemize)
|
||||
|
||||
The harder level has the above features, plus these new ones:
|
||||
@begin (itemize)
|
||||
At the beginning, your train isn't headed for the frontier.
|
||||
But, if you report spy activity to a station guard, you will receive
|
||||
a new assignment on the train that the traveller and spy will use.
|
||||
(Your bosses will explain that a professional agent is replacing you
|
||||
in order to catch the spies; but -- by Murphy's Law -- the spies
|
||||
change trains too!)
|
||||
|
||||
You get a better ending
|
||||
if you don't apprehend the smuggler at the checkpoint, but rather
|
||||
apprehend the contact also, at the station past the checkpoint.
|
||||
@end (itemize)
|
||||
|
||||
@subheading (Other features:)
|
||||
For variety, the variations also differ in:
|
||||
@begin (itemize)
|
||||
which objects are the password and passobject
|
||||
(and in the harder levels the passobject is harder to obtain);
|
||||
|
||||
which fellow passenger is the "bad" spy
|
||||
@comment (and what their cover stories are )
|
||||
(this is especially appropriate for
|
||||
a spy story, since appearances deceive and all that);
|
||||
|
||||
which person waiting at the station is your contact (ditto);
|
||||
|
||||
and perhaps which train you begin on, thus changing your plan for catching the
|
||||
right connecting train (so it's vital to have the timetable and hence
|
||||
the package, in order to play).
|
||||
@end (itemize)
|
||||
|
||||
@heading (INNOVATIONS)
|
||||
|
||||
Characters:
|
||||
Besides the "major" characters, with whom you can have some
|
||||
meaningful interaction, there will be numerous "extras" appearing
|
||||
in the "crowd" scenes, such as on the train and the platforms.
|
||||
(Other new products, such as "Cutthroats" and "Suspect," have
|
||||
these to some extent.)
|
||||
|
||||
@comment [
|
||||
Parser:
|
||||
To make the limitations on talking to
|
||||
characters more acceptable, all other characters will
|
||||
have limited knowledge of English; so if you give a bad
|
||||
command to a character, s/he will complain instead of the parser.
|
||||
Examples: "Please, I not know English word 'fooble'." "Please,
|
||||
to me simple English speak." "Buzbar frbz mrtzki."]
|
||||
|
||||
Limited freedom of action:
|
||||
Since you're on a train most of the time, the limited geography is
|
||||
more acceptable, as is the slow way you move about.
|
||||
Also, it would be fun if the "bad guys" could capture you, bind and gag you,
|
||||
injure you, etc. Then many verbs would not work,
|
||||
and you'd have to escape by some cleverness.
|
||||
|
||||
@heading (SETTING)
|
||||
|
||||
Some people might think that the story should be set in a real country,
|
||||
like Yugoslavia. It
|
||||
would immediately lend realism and a sense of "being there." But
|
||||
there are problems. Would a player who happens to know Croatian
|
||||
complain that the other characters don't understand it? Or, more
|
||||
likely, would the story's timetable have to conform with a real one
|
||||
from that country? Would everything have to be realistic: train
|
||||
layout, station layout, food menu, ...? To avoid these problems,
|
||||
I'm assuming (for now) that the country is fictitious.
|
||||
|
||||
Frotzerland is a country somewhere in the middle
|
||||
of Europe, with a neutral but paranoid
|
||||
government. (Any similarity to actual countries living or dead is just "tough
|
||||
noogies.") The Frotz National Railway ("Ferroglip Natsiolim Frotzilim")
|
||||
tends to run on time, so you can usually
|
||||
depend on the printed timetable. All action takes place on the trains
|
||||
and in the stations. A train is made up of several identical passenger
|
||||
cars (technical note: single ROOMs serve multiple locations),
|
||||
each with several compartments, a corridor, and two rest rooms;
|
||||
also cars for baggage and dining, and a special luxury car to carry
|
||||
the defector. The stations are all identical too,
|
||||
with these interesting rooms: platform, waiting room, cafe/store,
|
||||
rest rooms, ticket/info window, baggage room. You can't leave a station
|
||||
without boarding a train, since the police would
|
||||
take you in for an improper visa.
|
||||
|
||||
@heading (CHARACTERS)
|
||||
|
||||
The characters include:
|
||||
|
||||
@begin (itemize)
|
||||
|
||||
The innocent traveller, who through pure chance gets mixed up in spy business
|
||||
|
||||
The "good" spy (at the beginning) is a James Bond type, daring enough
|
||||
to go fight the "bad" spy and lose big.
|
||||
|
||||
The "bad" spy
|
||||
|
||||
The train conductor -- helpful but suspicious, s/he doesn't want trouble
|
||||
in HIS (or HER) jurisdiction.
|
||||
|
||||
The contact(s)
|
||||
|
||||
Waiters, clerks, passengers, spear carriers, etc.
|
||||
|
||||
@end (itemize)
|
||||
|
||||
Some of the characters will be chosen from the following list,
|
||||
depending on which plot variation you choose. (Appearances
|
||||
will be randomly matched with personalities.)
|
||||
|
||||
@begin (itemize)
|
||||
|
||||
a devious "femme fatale"
|
||||
|
||||
an attractive man
|
||||
|
||||
a merciless, masculine woman
|
||||
|
||||
a jovial, rotund, threatening man
|
||||
|
||||
a regal older woman
|
||||
|
||||
a tall, thin silent man
|
||||
|
||||
@comment ( and her innocent-eyed maid, a man with a fez or turban)
|
||||
|
||||
and so on
|
||||
@end (itemize)
|
||||
|
||||
@heading (PACKAGE)
|
||||
|
||||
@begin (itemize)
|
||||
In the "browsie" could be a
|
||||
short prose introduction to each plot, in lieu of a long "boot screen."
|
||||
|
||||
Timetable (and route map?) should be printed in a color(s) that
|
||||
can't easily be photocopied,
|
||||
and it should be a "feelie" so pirates can't read it in their local store.
|
||||
@comment (Or should it be part of the "browsie" so pirates can't call us up
|
||||
and claim they lost it?)
|
||||
|
||||
train ticket(s)
|
||||
|
||||
"sound sheet" with useless phrases in Frotzian and English
|
||||
|
||||
tourist guide to Frotzerland for "browsie"
|
||||
@end (itemize)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,221 @@
|
|||
.lm 10;.rm 70;.paragraph 0, 0;.br;.lm 10;.rm 70;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.nj;.i 0;.sp 2;.title *DRAFT* Checkpoint *DRAFT* 4/5/85 12:46
|
||||
.subtitle Proprietary Information of Infocom, Inc.#(Company Confidential)
|
||||
.pg;.sp 1;.s 4;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.nf;.c;^#CHECKPOINT\#
|
||||
.sp 1;.s 3;.sp 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.c;28 March 1985
|
||||
.s 1;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.c;Comments to Stu Galley
|
||||
.s 1;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 4;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*RAISONS D'ETRE\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* This is a collection of stories in one product. Some of the stories
|
||||
should be short enough to finish in one session. All of the stories
|
||||
take place in the same general setting.
|
||||
.s 1;.i -4;* The setting should justify some of the limitations of our current
|
||||
technology. Since it is hard to converse with characters, all or most
|
||||
of them don't understand English. Since "geography" is limited in scope,
|
||||
the setting is on trains and in stations, where movement is naturally
|
||||
restricted.
|
||||
.s 1;.i -4;* The stories should convey a theme that Hitchcock used often in his
|
||||
movies: a very important mission can be delayed or even doomed by
|
||||
ordinary people that just happen to be in the way at the wrong time.
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 3;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*SYNOPSES\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;All of the stories are based on a similar plot_; the difference among
|
||||
them is ^&which role\& you play in the story.
|
||||
I visualize printing the beginning of each variation in the
|
||||
browsie, and continuing it on the screen.
|
||||
In each variation, you can also choose between easier and harder levels
|
||||
of difficulty.
|
||||
.sp 1;.s 2;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*"Traveller" Variation:\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;You're travelling alone, on business of some kind, on a train
|
||||
in the European country of Frotzerland (see
|
||||
below). Suddenly a fellow passenger,
|
||||
recognizing you as friendly,
|
||||
bursts into your compartment. He explains that he wants
|
||||
to entrust his briefcase to you while he handles some dangerous
|
||||
business, but it's vital that
|
||||
you follow his instructions, which vary depending on the level.
|
||||
Then he dashes out, and a short time later
|
||||
you see his body falling from the roof past your window. Obviously
|
||||
the "bad guys" are after his briefcase and/or the "MacGuffin"!
|
||||
When you open the briefcase (which is in itself a puzzle), you discover
|
||||
the MacGuffin or clue(s) as to how to acquire it.
|
||||
.sp 1;.s 1;.sp 2;The easier level has these features:
|
||||
.br;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* The briefcase contains the MacGuffin, as well as
|
||||
a camera and the name
|
||||
of an object (chosen by the program from a secret
|
||||
list), which is a password that you have to say to whoever
|
||||
meets the train.
|
||||
So you have to reach the frontier, pass customs with
|
||||
the MacGuffin, and deliver it
|
||||
to the contact (a "good guy") who will meet the train at the
|
||||
first station across the frontier -- all
|
||||
while avoiding the "bad guy(s)" and not attracting attention to yourself.
|
||||
.s 1;.i -4;* The "bad" spy (who killed the "good" spy in the beginning)
|
||||
tries to get the MacGuffin from you, without explicit violence.
|
||||
You must avoid him/her, or you can get trapped and killed.
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;The harder level has the above features, plus these new ones:
|
||||
.br;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* The briefcase contains the names of ^&two\& objects, the password
|
||||
and a "passobject" that you have to display
|
||||
so the contact can recognize you. The "good" spy had such an object, but
|
||||
now he's gone, so you have to improvise the passobject somehow.
|
||||
.s 1;.i -4;* The "bad" spy is more aggressive and smart, and he/she will force you
|
||||
to fight rather than flee. (Rated PG)
|
||||
.s 1;.i -4;* You don't have the MacGuffin at the start_; you must first
|
||||
contact an agent at the next train station down the line by displaying
|
||||
a second passobject in order to receive the MacGuffin.
|
||||
.s 1;.i -4;* You're not on the right train for meeting the final contact. You must
|
||||
consult your timetable, change your
|
||||
itinerary, buy a new ticket, catch the right train
|
||||
at the right station, and proceed as before.
|
||||
.s 1;.i -4;* There's also a pickpocket on the loose.
|
||||
If you bump into him/her, you may lose some item that you're carrying.
|
||||
(I suppose the briefcase is immune, but on the
|
||||
other hand it's a pain to keep things in it.)
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 2;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*"Spy" Variation:\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;In this variation you play the role of the "bad" spy
|
||||
that goes after the "innocent" traveller and the MacGuffin.
|
||||
Naturally, you think of yourself as a "good" spy.
|
||||
Your goal is to find the MacGuffin and alter it so that the
|
||||
"bad guys" receive false information, or even better, deliver the
|
||||
original MacGuffin (not a photo) to your side for analysis
|
||||
to trace the leak of secret information.
|
||||
You begin on the roof of the train and immediately fight the
|
||||
"bad" spy (who's "good" in the "traveller" variation). Assuming that you win the
|
||||
fight, you next have to find the traveller with the MacGuffin (or, in the
|
||||
harder level,
|
||||
the info to acquire it). You could try to get the briefcase and snoop
|
||||
in it, observe
|
||||
the other passengers' behavior (or speak to them in English, but they
|
||||
may not answer), and/or observe the platform during stops.
|
||||
Once you locate the MacGuffin, you have to fight or trick the courier, and
|
||||
acquire the MacGuffin.
|
||||
Then you have a choice: you can alter it, and either return it to the courier
|
||||
or deliver it yourself (using password and passobject)_; or you can
|
||||
try to sneak it through customs and deliver it to your "team."
|
||||
.sp 1;.s 1;.sp 2;Any feature not mentioned in the following lists is like the previous
|
||||
variation. The easier level has these features:
|
||||
.br;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* The traveller carries the briefcase all the time, so you can tell
|
||||
who s/he is. But you can't acquire it without trickery or violence.
|
||||
.s 1;.i -4;* You have limited means of aggression, e.g. just a gun and no special
|
||||
abilities.
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 1;.sp 2;The harder level has the above features, plus these new ones:
|
||||
.br;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* The traveller hides the briefcase whenever feasible, so you can't tell
|
||||
who s/he is. If you can find and open it, you may get clues.
|
||||
.s 1;.i -4;* You have no weapon, but you can indulge in some unarmed violence (rated PG)
|
||||
or trickery (e.g. pose as contact, or acquire passobject and pose as traveller)
|
||||
to try to get what you want.
|
||||
.s 1;.i -4;* If you succeed in delivering the MacGuffin itself, your contact will
|
||||
give you one more task: to help recapture a defector who's riding on the
|
||||
very same train.
|
||||
(The MacGuffin is in fact a copy of the secret plan to recapture him.)
|
||||
Your role in the recapture is simple, but it serves to make your final
|
||||
goal significantly different from your goal as "traveller."
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 2;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*"Conductor" Variation [deleted as of now]:\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;Your role is the conductor on the train, and your goal is to avoid
|
||||
getting blamed for any trouble that occurs in your jurisdiction,
|
||||
like delays, stowaways, violence, or smuggling.
|
||||
(Note: as a conductor, you can speak the local language, which thus
|
||||
will be "dubbed" into English_; but by the same token the "traveller," spy,
|
||||
etc. will be dubbed into Frotzian.)
|
||||
Your first duty is to punch all passengers' tickets after each stop_;
|
||||
if you miss one, he/she will turn out to be a railway employee
|
||||
who is testing your performance, and you lose your job.
|
||||
(This means you can't freely observe the suspect(s) during ticket-punching
|
||||
time, so the MacGuffin may change hands without your knowing it.)
|
||||
Your second duty is to stand at the front end of the platform
|
||||
in each station and give the order for the train to depart.
|
||||
At the frontier checkpoint, you should stand by the customs agent
|
||||
and try to detect any smuggling, such as the MacGuffin.
|
||||
If you observe the passengers while making your rounds, you
|
||||
might be able to spot someone on a spy mission by their odd behavior.
|
||||
.sp 1;.s 1;.sp 2;Any feature not mentioned in the following lists is like the previous
|
||||
variations. The easier level has these features:
|
||||
.br;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* It is sufficient to catch either traveller or spy with the MacGuffin in
|
||||
hand. At the checkpoint, all passengers empty their pockets to aid
|
||||
inspection.
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 1;.sp 2;The harder level has the above features, plus these new ones:
|
||||
.br;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* At the beginning, your train isn't headed for the frontier.
|
||||
But, if you report spy activity to a station guard, you will receive
|
||||
a new assignment on the train that the traveller and spy will use.
|
||||
(Your bosses will explain that a professional agent is replacing you
|
||||
in order to catch the spies_; but -- by Murphy's Law -- the spies
|
||||
change trains too!)
|
||||
.s 1;.i -4;* You get a better ending
|
||||
if you don't apprehend the smuggler at the checkpoint, but rather
|
||||
apprehend the contact also, at the station past the checkpoint.
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 2;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*Other features:\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;For variety, the variations also differ in:
|
||||
.br;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* which objects are the password and passobject
|
||||
(and in the harder levels the passobject is harder to obtain)_;
|
||||
.s 1;.i -4;* which fellow passenger is the "bad" spy
|
||||
(this is especially appropriate for
|
||||
a spy story, since appearances deceive and all that)_;
|
||||
.s 1;.i -4;* which person waiting at the station is your contact (ditto)_;
|
||||
.s 1;.i -4;* and perhaps which train you begin on, thus changing your plan for catching the
|
||||
right connecting train (so it's vital to have the timetable and hence
|
||||
the package, in order to play).
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 3;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*INNOVATIONS\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;Characters:
|
||||
Besides the "major" characters, with whom you can have some
|
||||
meaningful interaction, there will be numerous "extras" appearing
|
||||
in the "crowd" scenes, such as on the train and the platforms.
|
||||
(Other new products, such as "Cutthroats" and "Suspect," have
|
||||
these to some extent.)
|
||||
.sp 1;.s 1;.sp 2;Limited freedom of action:
|
||||
Since you're on a train most of the time, the limited geography is
|
||||
more acceptable, as is the slow way you move about.
|
||||
Also, it would be fun if the "bad guys" could capture you, bind and gag you,
|
||||
injure you, etc. Then many verbs would not work,
|
||||
and you'd have to escape by some cleverness.
|
||||
.sp 1;.s 3;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*SETTING\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;Some people might think that the story should be set in a real country,
|
||||
like Yugoslavia. It
|
||||
would immediately lend realism and a sense of "being there." But
|
||||
there are problems. Would a player who happens to know Croatian
|
||||
complain that the other characters don't understand it_? Or, more
|
||||
likely, would the story's timetable have to conform with a real one
|
||||
from that country_? Would everything have to be realistic: train
|
||||
layout, station layout, food menu, ..._? To avoid these problems,
|
||||
I'm assuming (for now) that the country is fictitious.
|
||||
.sp 1;.s 1;.sp 2;Frotzerland is a country somewhere in the middle
|
||||
of Europe, with a neutral but paranoid
|
||||
government. (Any similarity to actual countries living or dead is just "tough
|
||||
noogies.") The Frotz National Railway ("Ferroglip Natsiolim Frotzilim")
|
||||
tends to run on time, so you can usually
|
||||
depend on the printed timetable. All action takes place on the trains
|
||||
and in the stations. A train is made up of several identical passenger
|
||||
cars (technical note: single ROOMs serve multiple locations),
|
||||
each with several compartments, a corridor, and two rest rooms_;
|
||||
also cars for baggage and dining, and a special luxury car to carry
|
||||
the defector. The stations are all identical too,
|
||||
with these interesting rooms: platform, waiting room, cafe/store,
|
||||
rest rooms, ticket/info window, baggage room. You can't leave a station
|
||||
without boarding a train, since the police would
|
||||
take you in for an improper visa.
|
||||
.sp 1;.s 3;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*CHARACTERS\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;The characters include:
|
||||
.sp 1;.s 1;.sp 2;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* The innocent traveller, who through pure chance gets mixed up in spy business
|
||||
.s 1;.i -4;* The "good" spy (at the beginning) is a James Bond type, daring enough
|
||||
to go fight the "bad" spy and lose big.
|
||||
.s 1;.i -4;* The "bad" spy
|
||||
.s 1;.i -4;* The train conductor -- helpful but suspicious, s/he doesn't want trouble
|
||||
in HIS (or HER) jurisdiction.
|
||||
.s 1;.i -4;* The contact(s)
|
||||
.s 1;.i -4;* Waiters, clerks, passengers, spear carriers, etc.
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 1;.sp 2;Some of the characters will be chosen from the following list,
|
||||
depending on which plot variation you choose. (Appearances
|
||||
will be randomly matched with personalities.)
|
||||
.sp 1;.s 1;.sp 2;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* a devious "femme fatale"
|
||||
.s 1;.i -4;* an attractive man
|
||||
.s 1;.i -4;* a merciless, masculine woman
|
||||
.s 1;.i -4;* a jovial, rotund, threatening man
|
||||
.s 1;.i -4;* a regal older woman
|
||||
.s 1;.i -4;* a tall, thin silent man
|
||||
.s 1;.i -4;* and so on
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.sp 1;.s 3;.sp 2;.tp 7;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;.nf;.i 0;^*PACKAGE\*
|
||||
.s 2;.f;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.lm 17;.rm 63;.ts 17,25,33,41,49,57,65,73,81,89;.sp 1;.i -4;* In the "browsie" could be a
|
||||
short prose introduction to each plot, in lieu of a long "boot screen."
|
||||
.s 1;.i -4;* Timetable (and route map_?) should be printed in a color(s) that
|
||||
can't easily be photocopied,
|
||||
and it should be a "feelie" so pirates can't read it in their local store.
|
||||
.s 1;.i -4;* train ticket(s)
|
||||
.s 1;.i -4;* "sound sheet" with useless phrases in Frotzian and English
|
||||
.s 1;.i -4;* tourist guide to Frotzerland for "browsie"
|
||||
.s 1;.rm 70;.lm 10;.ts 10,18,26,34,42,50,58,66,74,82;.sp 2;.j;.ts 10,18,26,34,42,50,58,66,74,82;.sp 1;
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
|||
371
|
|
@ -0,0 +1,92 @@
|
|||
;"The opening scene..."
|
||||
|
||||
"The business deal behind you, you wish only to be out of this bleak
|
||||
corner of Eastern Europe. The border to the West is now only a few
|
||||
hours away at Gola, and from there its a quick flight to Trieste, and then
|
||||
back to civilization...|
|
||||
|
|
||||
The ride is interminable, and it seems you're dozing off again. The wheels of
|
||||
the train are ticking like a clock, ticking off the segments of track you're
|
||||
passing, and the compartment is rocking you back and forth, back and forth,
|
||||
slowly closing your eyelids.|
|
||||
|
|
||||
Your slumber is cut short as a man staggers into your compartment, panting
|
||||
strangely. From his demeanor, you would guess he'd been drinking heavily.
|
||||
Before you can dismiss him, though, you notice a dark red spot beneath his
|
||||
coat which he grasps tightly. He speaks softly, but hurriedly.|
|
||||
|
|
||||
\"I've only got a moment, so listen carefully! Since you were reading a copy
|
||||
of the International Herald over lunch, I'll assume you're an American. I am
|
||||
an agent of our government and I've been sent to pick up <a vital microfilm>
|
||||
in Frbz and pass it along to our special agent in Gola. An enemy agent
|
||||
spotted me on the train, and I only barely managed to escape.\" He groans
|
||||
softly, examining his wound.|
|
||||
|
|
||||
\"The best I can do now is throw the enemy off the scent, but I need you, your
|
||||
country needs you, to carry out my assignment.\" You start to interrupt,
|
||||
a thousand questions racing through your mind. \"There's no time! My
|
||||
contact in Frbz is <an old man reading a newspaper> and I was to offer
|
||||
him a <light>, then say the words <'Fromzi remax uzbuz'>. He was to hand
|
||||
over the <film> and I was to take it to our contact in Gola, <a woman in
|
||||
white> who was to greet me at the station with the words <'Have you a
|
||||
train schedule?'>. Here! Take my briefcase - there are things you might
|
||||
find useful inside. And be careful! Our enemies are all around us!\" Before
|
||||
you can respond, he checks the corridor and races out."
|
||||
|
||||
;"Problems:
|
||||
1) Cleaning off the floor (blood stains will lead the enemy agents to
|
||||
you)
|
||||
|
||||
2) Checking out the briefcase and what's in it.
|
||||
|
||||
3) Finding the pass object (other compartments, making them out of
|
||||
crude devices, buying it, etc.)
|
||||
|
||||
4) Making the first rendezvous successfully. This will involve getting
|
||||
off the train, meeting the correct person, saying the magic words,
|
||||
and getting that person to meet you in a shop, w.c., etc. for the
|
||||
exchange. >SIT DOWN NEXT TO OLD MAN >OFFER HIM A LIGHT >SAY 'FRNZI
|
||||
BRNZI UZBUZ' >OLD MAN, MEET ME AT THE COFFEE SHOP >GIVE ME THE
|
||||
MICROFILM
|
||||
|
||||
5) Hiding the MacGuffin during the trip and especially at the border
|
||||
when your stuff is searched.
|
||||
|
||||
6) Avoiding the enemy agent(s) and delivering the goods to the contact
|
||||
at Gola
|
||||
"
|
||||
|
||||
;"Combinations of pass object and action on the part of the contact
|
||||
|
||||
Object Action
|
||||
|
||||
Lighter Pulls out a cigarette
|
||||
|
||||
Cigarette Feels within jacket for something
|
||||
|
||||
Dollar Bill Reaching on ground for something
|
||||
|
||||
"
|
||||
|
||||
;"Ways of getting the pass object:
|
||||
|
||||
1) From another character or that character's compartment (stealing)
|
||||
|
||||
2) Consing up a makeshift equivalent of the object
|
||||
|
||||
3) Buying the object at one of the train stations.
|
||||
|
||||
"
|
||||
|
||||
;"Complications:
|
||||
|
||||
1) The contact might be replaced by someone else (as you have replaced
|
||||
the original spy. The code word/object would remain the same, of course.
|
||||
There might be some giveaway (like someone with an unlighted cigarette
|
||||
in his mouth or searching the ground for something). Showing the pass
|
||||
object to the wrong people would arouse the suspicion of an enemy
|
||||
agent (guard) at the station.
|
||||
|
||||
2) The pass object might have to be manufactured, rather than obtained
|
||||
(stolen).
|
||||
"
|
|
@ -0,0 +1,21 @@
|
|||
.NEW
|
||||
.TIME
|
||||
.INSERT "SPYFREQ"
|
||||
.INSERT "SPYDAT"
|
||||
.INSERT "MACROS"
|
||||
.INSERT "SYNTAX"
|
||||
.INSERT "MAIN"
|
||||
.INSERT "PARSER"
|
||||
.INSERT "THINGS"
|
||||
.INSERT "PEOPLE"
|
||||
.INSERT "PLACES"
|
||||
.INSERT "GLOBAL"
|
||||
.INSERT "CLOCK"
|
||||
.INSERT "VERBS"
|
||||
.INSERT "TRAIN"
|
||||
.INSERT "CARS"
|
||||
.INSERT "STATION"
|
||||
.INSERT "GOAL"
|
||||
.INSERT "SPIES"
|
||||
.INSERT "SPYSTR"
|
||||
.END
|
|
@ -0,0 +1,53 @@
|
|||
|
||||
.NEW ; NEW ZIP INTERPRETER
|
||||
|
||||
.INSERT "SPYDAT" ; DATA IS IN THIS FILE
|
||||
|
||||
.INSERT "MACROS"
|
||||
|
||||
|
||||
.INSERT "SYNTAX"
|
||||
|
||||
|
||||
.INSERT "MAIN"
|
||||
|
||||
|
||||
.INSERT "THINGS"
|
||||
|
||||
|
||||
.INSERT "PEOPLE"
|
||||
|
||||
|
||||
.INSERT "PLACES"
|
||||
|
||||
|
||||
.INSERT "GLOBAL"
|
||||
|
||||
|
||||
.INSERT "CLOCK"
|
||||
|
||||
|
||||
.INSERT "PARSER"
|
||||
|
||||
|
||||
.INSERT "VERBS"
|
||||
|
||||
|
||||
.INSERT "TRAIN"
|
||||
|
||||
|
||||
.INSERT "CARS"
|
||||
|
||||
|
||||
.INSERT "STATION"
|
||||
|
||||
|
||||
.INSERT "GOAL"
|
||||
|
||||
|
||||
.INSERT "SPIES"
|
||||
|
||||
|
||||
.INSERT "SPYSTR"
|
||||
|
||||
.END
|
|
@ -0,0 +1,51 @@
|
|||
"COMPILE/LOAD FILE for SPY THRILLER
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<PRINC "Compiling">
|
||||
<SETG ZSTR-ON <SETG ZSTR-OFF ,TIME>>
|
||||
<ID 0>)
|
||||
(T <PRINC "Loading">)>
|
||||
|
||||
<PRINC " SPY THRILLER: interactive fiction from Infocom!
|
||||
">
|
||||
|
||||
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
||||
"<GLOBAL BIGFIX 10000>"
|
||||
|
||||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
|
||||
<INSERT-FILE .STR .FLOAD?>>
|
||||
|
||||
;<DIRECTIONS NORTH SOUTH EAST WEST NE NW SE SW UP DOWN IN OUT>
|
||||
<DIRECTIONS ;"Do not change the order of the first eight
|
||||
without consulting MARC! -- ENCHANTER"
|
||||
NORTH NE EAST SE SOUTH SW WEST NW UP DOWN IN OUT>
|
||||
|
||||
<IFILE "MACROS.ZEN" T>
|
||||
<IFILE "SYNTAX.ZEN" T>
|
||||
<IFILE "MAIN.ZEN" T>
|
||||
<IFILE "THINGS.ZEN" T>
|
||||
<IFILE "PEOPLE.ZEN" T>
|
||||
<IFILE "PLACES.ZEN" T>
|
||||
<IFILE "GLOBAL.ZEN" T>
|
||||
|
||||
<PROPDEF SIZE 5>
|
||||
<PROPDEF CAPACITY 0>
|
||||
|
||||
<IFILE "CLOCK.ZEN" T>
|
||||
;<ENDLOAD>
|
||||
<IFILE "PARSER.ZEN" T>
|
||||
<IFILE "VERBS.ZEN" T>
|
||||
<IFILE "TRAIN.ZEN" T>
|
||||
<IFILE "STATION.ZEN" T>
|
||||
<IFILE "GOAL.ZEN" T>
|
||||
<IFILE "SPIES.ZEN" T>
|
||||
|
||||
<GC-MON T>
|
||||
<GC 0 T 5>
|
|
@ -0,0 +1,15 @@
|
|||
.INSERT "MACROS"
|
||||
.INSERT "SYNTAX"
|
||||
.INSERT "MAIN"
|
||||
.INSERT "THINGS"
|
||||
.INSERT "PEOPLE"
|
||||
.INSERT "PLACES"
|
||||
.INSERT "GLOBAL"
|
||||
.INSERT "CLOCK"
|
||||
.INSERT "PARSER"
|
||||
.INSERT "VERBS"
|
||||
.INSERT "TRAIN"
|
||||
.INSERT "STATION"
|
||||
.INSERT "GOAL"
|
||||
.INSERT "SPIES"
|
||||
.END
|
|
@ -0,0 +1,61 @@
|
|||
"EXTENDED COMPILE/LOAD FILE for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<PRINC "Compiling">
|
||||
<SETG ZSTR-ON <SETG ZSTR-OFF ,TIME>>
|
||||
<ID 0>)
|
||||
(T <PRINC "Loading">)>
|
||||
|
||||
<PRINC " CHECKPOINT: interactive fiction from Infocom!
|
||||
">
|
||||
|
||||
ON!-INITIAL "for DEBUGR"
|
||||
OFF!-INITIAL
|
||||
ENABLE!-INITIAL
|
||||
DISABLE!-INITIAL
|
||||
|
||||
<COND (<GASSIGNED? MUDDLE>
|
||||
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>)>
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
||||
"<GLOBAL BIGFIX 10000>"
|
||||
|
||||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
|
||||
<INSERT-FILE .STR .FLOAD?>>
|
||||
|
||||
<DIRECTIONS ;"Do not change the order of the first eight
|
||||
without consulting MARC! -- ENCHANTER"
|
||||
NORTH ;NE EAST ;SE SOUTH ;SW WEST ;NW UP DOWN IN OUT>
|
||||
|
||||
<IFILE "MACROS" T>
|
||||
<IFILE "SYNTAX" T>
|
||||
<IFILE "MAIN" T>
|
||||
<IFILE "THINGS" T>
|
||||
<IFILE "PEOPLE" T>
|
||||
<IFILE "PLACES" T>
|
||||
<IFILE "GLOBAL" T>
|
||||
|
||||
<CONSTANT SERIAL 0>
|
||||
|
||||
<IFILE "CLOCK" T>
|
||||
<IFILE "PARSER" T>
|
||||
<IFILE "VERBS" T>
|
||||
<IFILE "TRAIN" T>
|
||||
<IFILE "CARS" T>
|
||||
<IFILE "STATION" T>
|
||||
<IFILE "GOAL" T>
|
||||
<IFILE "SPIES" T>
|
||||
|
||||
<PROPDEF SIZE 5>
|
||||
<PROPDEF CAPACITY 0>
|
||||
|
||||
<DEFINE ISL () <INIT-STATUS-LINE>>
|
||||
|
||||
<GC-MON T>
|
||||
<COND (<GASSIGNED? MUDDLE>
|
||||
<GC 0 T 5>)>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,200 @@
|
|||
.FSTR FSTR?1,"the " ;754 378
|
||||
.FSTR FSTR?2,"You " ;420 141
|
||||
.FSTR FSTR?3,", " ;353 354
|
||||
.FSTR FSTR?4,"you " ;334 168
|
||||
.FSTR FSTR?5,"and " ;326 164
|
||||
.FSTR FSTR?6,"can't " ;240 49
|
||||
.FSTR FSTR?7,"The " ;228 77
|
||||
.FSTR FSTR?8,"to " ;219 220
|
||||
.FSTR FSTR?9,"There's " ;216 28
|
||||
.FSTR FSTR?10,"your " ;201 68
|
||||
.FSTR FSTR?11,"that " ;189 64
|
||||
.FSTR FSTR?12,"You're " ;175 26
|
||||
.FSTR FSTR?13,"train " ;156 40
|
||||
.FSTR FSTR?14,"other " ;152 39
|
||||
.FSTR FSTR?15,". " ;141 142
|
||||
.FSTR FSTR?16,"with " ;138 47
|
||||
.FSTR FSTR?17,"It's " ;135 28
|
||||
.FSTR FSTR?18,"for " ;128 65
|
||||
.FSTR FSTR?19,"of " ;126 127
|
||||
.FSTR FSTR?20,"don't " ;115 24
|
||||
.FSTR FSTR?21,"forward " ;114 20
|
||||
.FSTR FSTR?22,"is " ;100 101
|
||||
.FSTR FSTR?23,"compartment" ;99 12
|
||||
.FSTR FSTR?24,"but " ;96 49
|
||||
.FSTR FSTR?25,"train" ;93 32
|
||||
.FSTR FSTR?26,"this " ;93 32
|
||||
.FSTR FSTR?27,"from " ;93 32
|
||||
.FSTR FSTR?28,"have " ;90 31
|
||||
.FSTR FSTR?29,"in " ;88 89
|
||||
.FSTR FSTR?30,"not " ;88 45
|
||||
.FSTR FSTR?31,"enough " ;85 18
|
||||
.FSTR FSTR?32,"looks " ;84 22
|
||||
.FSTR FSTR?33,"you're " ;84 15
|
||||
.FSTR FSTR?34,"compartment " ;80 9
|
||||
.FSTR FSTR?35,"luggage " ;78 14
|
||||
.FSTR FSTR?36,"nothing " ;72 13
|
||||
.FSTR FSTR?37,"can " ;66 34
|
||||
.FSTR FSTR?38,"want " ;66 23
|
||||
.FSTR FSTR?39,"here" ;64 33
|
||||
.FSTR FSTR?40,"something " ;64 9
|
||||
.FSTR FSTR?41,"briefcase " ;64 9
|
||||
.FSTR FSTR?42,"TRAVELER" ;63 10
|
||||
.FSTR FSTR?43,"on " ;60 61
|
||||
.FSTR FSTR?44,"under " ;60 16
|
||||
.FSTR FSTR?45,"waiting " ;60 11
|
||||
.FSTR FSTR?46,"platform" ;60 11
|
||||
.FSTR FSTR?47,"looking " ;60 11
|
||||
.FSTR FSTR?48,"already " ;60 11
|
||||
.FSTR FSTR?49,"find " ;57 20
|
||||
.FSTR FSTR?50,"anything " ;56 9
|
||||
.FSTR FSTR?51,"won't " ;55 12
|
||||
.FSTR FSTR?52,"restroom" ;54 10
|
||||
.FSTR FSTR?53,"Your " ;52 14
|
||||
.FSTR FSTR?54,"This " ;52 14
|
||||
.FSTR FSTR?55,"rear " ;51 18
|
||||
.FSTR FSTR?56,"into " ;51 18
|
||||
.FSTR FSTR?57,"around " ;50 11
|
||||
.FSTR FSTR?58,"vestibule" ;49 8
|
||||
.FSTR FSTR?59,"see " ;48 25
|
||||
.FSTR FSTR?60,"are " ;48 25
|
||||
.FSTR FSTR?61,"n't " ;48 17
|
||||
.FSTR FSTR?62,"like " ;48 17
|
||||
.FSTR FSTR?63,"through " ;48 9
|
||||
.FSTR FSTR?64,"you" ;47 48
|
||||
.FSTR FSTR?65,"Okay" ;45 16
|
||||
.FSTR FSTR?66,"station" ;45 10
|
||||
.FSTR FSTR?67,"window" ;44 12
|
||||
.FSTR FSTR?68,"seems " ;44 12
|
||||
.FSTR FSTR?69,"Sorry" ;44 12
|
||||
.FSTR FSTR?70,"it " ;42 43
|
||||
.FSTR FSTR?71,"look " ;42 15
|
||||
.FSTR FSTR?72,"holding " ;42 8
|
||||
.FSTR FSTR?73,"Please " ;42 8
|
||||
.FSTR FSTR?74,"You'll " ;42 7
|
||||
.FSTR FSTR?75,"would " ;40 11
|
||||
.FSTR FSTR?76,"What " ;40 11
|
||||
.FSTR FSTR?77,"points " ;40 9
|
||||
.FSTR FSTR?78,"some " ;39 14
|
||||
.FSTR FSTR?79,"only " ;39 14
|
||||
.FSTR FSTR?80,"good " ;39 14
|
||||
.FSTR FSTR?81,"first" ;39 14
|
||||
.FSTR FSTR?82,"out " ;38 20
|
||||
.FSTR FSTR?83,"his " ;36 19
|
||||
.FSTR FSTR?84,"right " ;36 10
|
||||
.FSTR FSTR?85,"middle" ;36 10
|
||||
.FSTR FSTR?86,"it's " ;36 10
|
||||
.FSTR FSTR?87,"gesture" ;35 8
|
||||
.FSTR FSTR?88,"before " ;35 8
|
||||
.FSTR FSTR?89,"standing " ;35 6
|
||||
.FSTR FSTR?90,"restroom " ;35 6
|
||||
.FSTR FSTR?91,"doesn't " ;35 6
|
||||
.FSTR FSTR?92,"dispenser" ;35 6
|
||||
.FSTR FSTR?93,"That's " ;35 6
|
||||
.FSTR FSTR?94,"seat" ;34 18
|
||||
.FSTR FSTR?95,"at " ;33 34
|
||||
.FSTR FSTR?96,"then " ;33 12
|
||||
|
||||
|
||||
;word frequency table of 96 most common words
|
||||
|
||||
WORDS:: .TABLE
|
||||
FSTR?1
|
||||
FSTR?2
|
||||
FSTR?3
|
||||
FSTR?4
|
||||
FSTR?5
|
||||
FSTR?6
|
||||
FSTR?7
|
||||
FSTR?8
|
||||
FSTR?9
|
||||
FSTR?10
|
||||
FSTR?11
|
||||
FSTR?12
|
||||
FSTR?13
|
||||
FSTR?14
|
||||
FSTR?15
|
||||
FSTR?16
|
||||
FSTR?17
|
||||
FSTR?18
|
||||
FSTR?19
|
||||
FSTR?20
|
||||
FSTR?21
|
||||
FSTR?22
|
||||
FSTR?23
|
||||
FSTR?24
|
||||
FSTR?25
|
||||
FSTR?26
|
||||
FSTR?27
|
||||
FSTR?28
|
||||
FSTR?29
|
||||
FSTR?30
|
||||
FSTR?31
|
||||
FSTR?32
|
||||
FSTR?33
|
||||
FSTR?34
|
||||
FSTR?35
|
||||
FSTR?36
|
||||
FSTR?37
|
||||
FSTR?38
|
||||
FSTR?39
|
||||
FSTR?40
|
||||
FSTR?41
|
||||
FSTR?42
|
||||
FSTR?43
|
||||
FSTR?44
|
||||
FSTR?45
|
||||
FSTR?46
|
||||
FSTR?47
|
||||
FSTR?48
|
||||
FSTR?49
|
||||
FSTR?50
|
||||
FSTR?51
|
||||
FSTR?52
|
||||
FSTR?53
|
||||
FSTR?54
|
||||
FSTR?55
|
||||
FSTR?56
|
||||
FSTR?57
|
||||
FSTR?58
|
||||
FSTR?59
|
||||
FSTR?60
|
||||
FSTR?61
|
||||
FSTR?62
|
||||
FSTR?63
|
||||
FSTR?64
|
||||
FSTR?65
|
||||
FSTR?66
|
||||
FSTR?67
|
||||
FSTR?68
|
||||
FSTR?69
|
||||
FSTR?70
|
||||
FSTR?71
|
||||
FSTR?72
|
||||
FSTR?73
|
||||
FSTR?74
|
||||
FSTR?75
|
||||
FSTR?76
|
||||
FSTR?77
|
||||
FSTR?78
|
||||
FSTR?79
|
||||
FSTR?80
|
||||
FSTR?81
|
||||
FSTR?82
|
||||
FSTR?83
|
||||
FSTR?84
|
||||
FSTR?85
|
||||
FSTR?86
|
||||
FSTR?87
|
||||
FSTR?88
|
||||
FSTR?89
|
||||
FSTR?90
|
||||
FSTR?91
|
||||
FSTR?92
|
||||
FSTR?93
|
||||
FSTR?94
|
||||
FSTR?95
|
||||
FSTR?96
|
||||
.ENDT
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,368 @@
|
|||
|
||||
|
||||
; STRINGS ARE DEFINED HERE
|
||||
|
||||
.GSTR STR?1,"is"
|
||||
.GSTR STR?2,"has"
|
||||
.GSTR STR?3,"do"
|
||||
.GSTR STR?4,"kiss"
|
||||
.GSTR STR?5,"push"
|
||||
.GSTR STR?6,"say"
|
||||
.GSTR STR?7,"It's your last $10 Mariners' Trust traveler's check, ""accepted and even revered the world over."""
|
||||
.GSTR STR?8,"nod"
|
||||
.GSTR STR?9,"display"
|
||||
.GSTR STR?10,"look"
|
||||
.GSTR STR?11,"It's not a very handsome document, scrawled in a hurry by a hand that wouldn't win any prizes under the best of conditions. But it seems to contain crucial information -- times, places, a crude map, even code words -- about a plan to kidnap some high-ranking official. Were the plan to succeed, several governments would be embarrassed, if not in mortal danger, and the balance of power would become precarious."
|
||||
.GSTR STR?12,"open"
|
||||
.GSTR STR?13,"closed"
|
||||
.GSTR STR?14,"A sign on the wall announces something in large, unfriendly letters."
|
||||
.GSTR STR?15,"written and directed by Stu Galley, with a little help from his friends"
|
||||
.GSTR STR?16,"with some narration by Bruce Schechter"
|
||||
.GSTR STR?17,"dedicated to the late Sir Alfred Hitchcock"
|
||||
.GSTR STR?18,"proofed by the Infocom Quality Assurance Dept"
|
||||
.GSTR STR?19,"It's all in some foreign language."
|
||||
.GSTR STR?20,"It's a small burst of color in this colorless country."
|
||||
.GSTR STR?21,"find"
|
||||
.GSTR STR?22,"You notice marks and scratches on the walls."
|
||||
.GSTR STR?23,"The scratches are dark but indistinct, probably from rubber-soled shoes, as if there had once been a desparate struggle here."
|
||||
.GSTR STR?24,"You notice a worn spot on the floor."
|
||||
.GSTR STR?25,"The linoleum is completely gone from this spot, leaving the floor itself exposed in a roundish shape, as if someone with itchy feet had stood or sat in the same place over and over again."
|
||||
.GSTR STR?26,"You notice some graffiti on the wall."
|
||||
.GSTR STR?27,"The graffiti artist made do with a lead pencil, since felt pens and spray paint are probably expensive here. As near as you can make out, the graffiti extol the artist's virtues, and recommend a phone number to call in a place called Zgrf."
|
||||
.GSTR STR?28,"homicide"
|
||||
.GSTR STR?29,"lying down"
|
||||
.GSTR STR?30,"sitting down"
|
||||
.GSTR STR?31,"hiding"
|
||||
.GSTR STR?32,"He's helpful but suspicious, and doesn't want trouble in HIS jurisdiction."
|
||||
.GSTR STR?33,"proper tickets"
|
||||
.GSTR STR?34,"smile"
|
||||
.GSTR STR?35,"His bushy black moustache and neatly combed hair go perfectly with his black formal jacket and bow tie, but his floor-length apron has seen better days and a few spills already on this trip."
|
||||
.GSTR STR?36,"hat fashioned out of a napkin"
|
||||
.GSTR STR?37,"torn T-shirt"
|
||||
.GSTR STR?38,"He has the uniform jacket of the Frotzian Railway, and a tie worn loosely with an open collar, but blue jeans below. It seems a sensible outfit for both selling tickets and hauling luggage."
|
||||
.GSTR STR?39,"For this guy, the word ""thin"" was invented: thin hair, narrow eyes, thin lips, pale bluish skin. If his expression weren't so pleasant, he'd look really menacing."
|
||||
.GSTR STR?40,"For this guy, the word ""fat"" was invented: oily hair, puffy eyes, fat lips, pudgy pink skin. If his expression weren't so menacing, he'd look rather pleasant."
|
||||
.GSTR STR?41,"He looks almost too good for a nowhere country like this: sparkling eyes, good bone structure, clear skin, tall and smooth. Of course, it's hard to tell whether or not he can think in complete sentences."
|
||||
.GSTR STR?42,"She looks almost too good for a nowhere country like this: sparkling eyes, good bone structure, clear skin, tall and smooth. Of course, it's hard to tell whether or not she can think in complete sentences."
|
||||
.GSTR STR?43,"She was clearly beautiful as a young woman. Now her heavy make-up and cologne, her fur piece and black net veil make her beauty a matter of personal preference."
|
||||
.GSTR STR?44,"For this gal, the word ""thin"" was invented: thin hair, narrow eyes, thin lips, pale bluish skin. If her expression weren't so pleasant, she'd look really menacing."
|
||||
.GSTR STR?45,"She wears a military-style uniform proudly, even though it fits her poorly. She seems to be watching for suspicious activities, such as people looking at her or at other people too much."
|
||||
.GSTR STR?46,"He seems almost too big to fit into normal clothes, yet his clothes are impeccably tailored and he wears them perfectly."
|
||||
.GSTR STR?47,"His small size makes him seem mostly harmless, yet there is something about the intensity of his glances that makes you uneasy."
|
||||
.GSTR STR?48,"Her wad of gum could choke a yak. In fact she's the only one here with anything decent to chew on."
|
||||
.GSTR STR?49,"Mikel Jaxon"
|
||||
.GSTR STR?50,"Ronald Raygun"
|
||||
.GSTR STR?51,"Jhon Lenin"
|
||||
.GSTR STR?52,"Magi Thacher"
|
||||
.GSTR STR?53,"Duglas Adamz"
|
||||
.GSTR STR?54,"Stevn Apple"
|
||||
.GSTR STR?55,"accept"
|
||||
.GSTR STR?56,"battery"
|
||||
.GSTR STR?57,"block"
|
||||
.GSTR STR?58,"deliver"
|
||||
.GSTR STR?59,"knock"
|
||||
.GSTR STR?60,"mutter"
|
||||
.GSTR STR?61,"carrying weapons"
|
||||
.GSTR STR?62,"lend"
|
||||
.GSTR STR?63,"point"
|
||||
.GSTR STR?64,"drop"
|
||||
.GSTR STR?65,"slump"
|
||||
.GSTR STR?66,"a holiday"
|
||||
.GSTR STR?67,"an outing"
|
||||
.GSTR STR?68,"business"
|
||||
.GSTR STR?69,"a long trip"
|
||||
.GSTR STR?70,"brown"
|
||||
.GSTR STR?71,"red"
|
||||
.GSTR STR?72,"green"
|
||||
.GSTR STR?73,"blue"
|
||||
.GSTR STR?74,"gray"
|
||||
.GSTR STR?75,"purple"
|
||||
.GSTR STR?76,"a brown-paper package"
|
||||
.GSTR STR?77,"a string bag"
|
||||
.GSTR STR?78,"a beret"
|
||||
.GSTR STR?79,"a strange odor"
|
||||
.GSTR STR?80,"facial sores"
|
||||
.GSTR STR?81,"a cane"
|
||||
.GSTR STR?82,"an umbrella"
|
||||
.GSTR STR?83,"looking at you with suspicion"
|
||||
.GSTR STR?84,"snoozing"
|
||||
.GSTR STR?85,"gazing out the window"
|
||||
.GSTR STR?86,"chewing gum"
|
||||
.GSTR STR?87,"smoking a cigarette"
|
||||
.GSTR STR?88,"reading a newspaper"
|
||||
.GSTR STR?89,"talking quietly"
|
||||
.GSTR STR?90,"exchanging kisses"
|
||||
.GSTR STR?91,"looking up and down the platform"
|
||||
.GSTR STR?92,"re-arranging luggage"
|
||||
.GSTR STR?93,"checking a timetable"
|
||||
.GSTR STR?94,"about to leave"
|
||||
.GSTR STR?95,"walking along"
|
||||
.GSTR STR?96,"waiting for the train to start"
|
||||
.GSTR STR?97,"waiting with him"
|
||||
.GSTR STR?98,"walking to the front of the train"
|
||||
.GSTR STR?99,"looking triumphant"
|
||||
.GSTR STR?100,"making his rounds"
|
||||
.GSTR STR?101,"searching out the window"
|
||||
.GSTR STR?102,"listening to you"
|
||||
.GSTR STR?103,"listening to you expectantly"
|
||||
.GSTR STR?104,"looking at you expectantly"
|
||||
.GSTR STR?105,"waiting for you"
|
||||
.GSTR STR?106,"waiting for your order"
|
||||
.GSTR STR?107,"waiting"
|
||||
.GSTR STR?108,"cooking"
|
||||
.GSTR STR?109,"hurrying away"
|
||||
.GSTR STR?110,"waiting for another order"
|
||||
.GSTR STR?111,"looking in your direction"
|
||||
.GSTR STR?112,"inspecting luggage and passports"
|
||||
.GSTR STR?113,"slumped on the floor"
|
||||
.GSTR STR?114,"preparing to knock you off"
|
||||
.GSTR STR?115,"out cold"
|
||||
.GSTR STR?116,"deep in thought"
|
||||
.GSTR STR?117,"dead"
|
||||
.GSTR STR?118," gorm"
|
||||
.GSTR STR?119,"nash"
|
||||
.GSTR STR?120," floo"
|
||||
.GSTR STR?121,"snap"
|
||||
.GSTR STR?122," nom"
|
||||
.GSTR STR?123,"nets"
|
||||
.GSTR STR?124," mush"
|
||||
.GSTR STR?125,"pro"
|
||||
.GSTR STR?126," frob"
|
||||
.GSTR STR?127,"zit"
|
||||
.GSTR STR?128," qwa"
|
||||
.GSTR STR?129,"mrk"
|
||||
.GSTR STR?130," vub"
|
||||
.GSTR STR?131,"ulp"
|
||||
.GSTR STR?132," liz"
|
||||
.GSTR STR?133,"ni"
|
||||
.GSTR STR?134," cho"
|
||||
.GSTR STR?135,"glip"
|
||||
.GSTR STR?136," quid"
|
||||
.GSTR STR?137,"zrk"
|
||||
.GSTR STR?138," fim"
|
||||
.GSTR STR?139,"nosh"
|
||||
.GSTR STR?140," glob"
|
||||
.GSTR STR?141,"frp"
|
||||
.GSTR STR?142," jon"
|
||||
.GSTR STR?143,"stu"
|
||||
.GSTR STR?144," dav"
|
||||
.GSTR STR?145,"bob"
|
||||
.GSTR STR?146," jef"
|
||||
.GSTR STR?147,"jer"
|
||||
.GSTR STR?148," bri"
|
||||
.GSTR STR?149,"stev"
|
||||
.GSTR STR?150,"It's a metal sink, a bit dented and scratched, with only one faucet."
|
||||
.GSTR STR?151,"spy"
|
||||
.GSTR STR?152,"traveler"
|
||||
.GSTR STR?153,"A sign on the wall has a long list of mysterious Frotzian phrases, printed in ornate letters. All you can decipher is unpleasant things like fish heads and lice, or rumpled stilt's skin. Wait! There's an American phrase: Eggs McGuffin!"
|
||||
.GSTR STR?154,"make"
|
||||
.GSTR STR?155,"Not Here"
|
||||
.GSTR STR?156,"Actor"
|
||||
.GSTR STR?157,"Room (M-BEG)"
|
||||
.GSTR STR?158,"Preaction"
|
||||
.GSTR STR?159,"PRSI"
|
||||
.GSTR STR?160,"PRSO"
|
||||
.GSTR STR?161,"Room (M-END)"
|
||||
.GSTR STR?162,"Container"
|
||||
.GSTR STR?163,"What charming language!"
|
||||
.GSTR STR?164,"Computers aren't impressed by naughty words!"
|
||||
.GSTR STR?165,"You ought to be ashamed of yourself!"
|
||||
.GSTR STR?166,"Hey, save that talk for the locker room!"
|
||||
.GSTR STR?167,"Step outside and say that!"
|
||||
.GSTR STR?168,"And so's your old man!"
|
||||
.GSTR STR?169,"(I don't know the word """
|
||||
.GSTR STR?170,""".)"
|
||||
.GSTR STR?171,"(Sorry, but the word """
|
||||
.GSTR STR?172,""" is not in the vocabulary that you can use.)"
|
||||
.GSTR STR?173,"(You don't need to use the word """
|
||||
.GSTR STR?174,""" to finish this story.)"
|
||||
.GSTR STR?175,"(Sorry, but this story doesn't recognize the word """
|
||||
.GSTR STR?176,"(I assume you mean:"
|
||||
.GSTR STR?177,"begin"
|
||||
.GSTR STR?178,"end"
|
||||
.GSTR STR?179,"brief"
|
||||
.GSTR STR?180,"superbrief"
|
||||
.GSTR STR?181,"verbose"
|
||||
.GSTR STR?182,"go"
|
||||
.GSTR STR?183,"turn off"
|
||||
.GSTR STR?184,"turn on"
|
||||
.GSTR STR?185," won't help any."
|
||||
.GSTR STR?186," is a waste of time."
|
||||
.GSTR STR?187,"hold"
|
||||
.GSTR STR?188,"take"
|
||||
.GSTR STR?189,"on"
|
||||
.GSTR STR?190,"off"
|
||||
.GSTR STR?191,"locked"
|
||||
.GSTR STR?192,"unlocked"
|
||||
.GSTR STR?193,"let"
|
||||
.GSTR STR?194,"seem"
|
||||
.GSTR STR?195,"n't appear interested"
|
||||
.GSTR STR?196,"n't care"
|
||||
.GSTR STR?197," out a loud yawn"
|
||||
.GSTR STR?198," impatient"
|
||||
.GSTR STR?199,"That's ridiculous!"
|
||||
.GSTR STR?200,"Surely you jest."
|
||||
.GSTR STR?201,"Not a chance."
|
||||
.GSTR STR?202,"Not bloody likely."
|
||||
.GSTR STR?203,"What a fruitcake!"
|
||||
.GSTR STR?204,"What a screwball!"
|
||||
.GSTR STR?205,"What a concept!"
|
||||
.GSTR STR?206,"Like, totally grody, for sure."
|
||||
.GSTR STR?207,"You can't be serious!"
|
||||
.GSTR STR?208,"attack"
|
||||
.GSTR STR?209,"catch"
|
||||
.GSTR STR?210,"stop"
|
||||
.GSTR STR?211,"turn"
|
||||
.GSTR STR?212,"ignore"
|
||||
.GSTR STR?213,"not wired for phoning"
|
||||
.GSTR STR?214,"get in"
|
||||
.GSTR STR?215,"climb onto"
|
||||
.GSTR STR?216,"on the roof"
|
||||
.GSTR STR?217,"on the ground"
|
||||
.GSTR STR?218,"on the floor"
|
||||
.GSTR STR?219,"empty"
|
||||
.GSTR STR?220,"bang"
|
||||
.GSTR STR?221,"too far away"
|
||||
.GSTR STR?222,"here"
|
||||
.GSTR STR?223,"Hello"
|
||||
.GSTR STR?224,"Good-bye"
|
||||
.GSTR STR?225,"applaud"
|
||||
.GSTR STR?226,"kill"
|
||||
.GSTR STR?227,"standing up"
|
||||
.GSTR STR?228,"look inside"
|
||||
.GSTR STR?229,"look outside"
|
||||
.GSTR STR?230,"look through"
|
||||
.GSTR STR?231,"Pushing"
|
||||
.GSTR STR?232,"pick up"
|
||||
.GSTR STR?233,"in"
|
||||
.GSTR STR?234,"Fiddling with"
|
||||
.GSTR STR?235,"talk into"
|
||||
.GSTR STR?236,"shoot"
|
||||
.GSTR STR?237,"slap"
|
||||
.GSTR STR?238,"smell"
|
||||
.GSTR STR?239,"holding it"
|
||||
.GSTR STR?240,"reach"
|
||||
.GSTR STR?241,"acknowledge"
|
||||
.GSTR STR?242,"duck"
|
||||
.GSTR STR?243,"om"
|
||||
.GSTR STR?244,"ich"
|
||||
.GSTR STR?245,"wait until"
|
||||
.GSTR STR?246,"not asleep"
|
||||
.GSTR STR?247,"go under"
|
||||
.GSTR STR?248,"being worn"
|
||||
.GSTR STR?249,"through a grade crossing."
|
||||
.GSTR STR?250,"by a grade crossing."
|
||||
.GSTR STR?251,"A country road crosses the tracks here, marked only by large ""X""-shaped signs. A cross-country vehicle is waiting."
|
||||
.GSTR STR?252,"past a dark, violent river."
|
||||
.GSTR STR?253,"on the bank of a violent river."
|
||||
.GSTR STR?254,"The river splashes and swirls around huge granite boulders. In the center a dark current carries bits of foam swiftly along."
|
||||
.GSTR STR?255,"through a dark tunnel."
|
||||
.GSTR STR?256,"in the middle of a long, dark tunnel."
|
||||
.GSTR STR?257,"The tunnel is really too dark to see anything clearly. You can bet that some nasty beasties inhabit it."
|
||||
.GSTR STR?258,"past a wild meadow."
|
||||
.GSTR STR?259,"at the edge of a wild meadow."
|
||||
.GSTR STR?260,"The meadow looks too full of knolls and bumps for farming, but livestock can graze in it. A wild flower grows here and there."
|
||||
.GSTR STR?261,"along a barren stubble-plain."
|
||||
.GSTR STR?262,"at the edge of a barren stubble-plain."
|
||||
.GSTR STR?263,"There's not enough water supply here to support much obvious life. Dry stems cover the plain like a four-day-old beard."
|
||||
.GSTR STR?264,"through a mysterious forest."
|
||||
.GSTR STR?265,"in the middle of a mysterious forest."
|
||||
.GSTR STR?266,"So many tree trunks fill the view that you can't really see the forest. There might be a sun-dappled glade not far away, but the undergrowth is too thick to tell."
|
||||
.GSTR STR?267,"along the edge of a rocky precipice."
|
||||
.GSTR STR?268,"on tracks that skirt the edge of a rocky precipice."
|
||||
.GSTR STR?269,"The view down the cliff is so steep that you can't bear to look at it."
|
||||
.GSTR STR?270,"past a small town."
|
||||
.GSTR STR?271,"near a small town."
|
||||
.GSTR STR?272,"Only a few poor souls walk the streets of this town at this hour. The nearest buildings look run-down and cold, and the farther ones blend together into a jumble of wooden shingles."
|
||||
.GSTR STR?273,"through a railway station."
|
||||
.GSTR STR?274,"in a railway station."
|
||||
.GSTR STR?275,"Glrp-Wien Express"
|
||||
.GSTR STR?276,"Znuk-Potrzebie Express"
|
||||
.GSTR STR?277,"hide"
|
||||
.GSTR STR?278,"rac"
|
||||
.GSTR STR?279,"hurtl"
|
||||
.GSTR STR?280,"steam"
|
||||
.GSTR STR?281,"rocket"
|
||||
.GSTR STR?282,"speed"
|
||||
.GSTR STR?283,"rear "
|
||||
.GSTR STR?284,"forward "
|
||||
.GSTR STR?285,"delaying trains"
|
||||
.GSTR STR?286,"If you want to jump, say so!"
|
||||
.GSTR STR?287,"This is a swinging metal door with a brass handle."
|
||||
.GSTR STR?288,"notice"
|
||||
.GSTR STR?289,"too big to fit"
|
||||
.GSTR STR?290,"platform #"
|
||||
.GSTR STR?291,"car #"
|
||||
.GSTR STR?292,"There seems to be something written on the window."
|
||||
.GSTR STR?293,"A cigarette machine stands in one corner, waiting to be either used or discarded -- it's hard to say which."
|
||||
.GSTR STR?294,"This is the end of the platform."
|
||||
.GSTR STR?295,"The place is crowded with people."
|
||||
.GSTR STR?296,"You are standing in the railway station. You can see a cafe on the north side and the ticket counter on the south. The street is west. The place is crowded with people."
|
||||
.GSTR STR?297,"This restroom is impressively tidy. That's a good thing, because it's one of the only pair in the whole station."
|
||||
.GSTR STR?298,"give"
|
||||
.GSTR STR?299,"Through a blue haze of cigarette smoke, you can see travelers sipping their food while waiting for their trains."
|
||||
.GSTR STR?300,"The station faces a small square, crowded with people."
|
||||
.GSTR STR?301,"south"
|
||||
.GSTR STR?302,"north"
|
||||
.GSTR STR?303,"east"
|
||||
.GSTR STR?304,"west"
|
||||
.GSTR STR?305,"up the steps"
|
||||
.GSTR STR?306,"down the steps"
|
||||
.GSTR STR?307,"out"
|
||||
.GSTR STR?308,"front"
|
||||
.GSTR STR?309,"rear"
|
||||
.GSTR STR?310,"right side of the train"
|
||||
.GSTR STR?311,"left side of the train"
|
||||
.GSTR STR?312,"up the ladder"
|
||||
.GSTR STR?313,"down the ladder"
|
||||
.GSTR STR?314,"Reached"
|
||||
.GSTR STR?315,"leave"
|
||||
.GSTR STR?316,"enter"
|
||||
.GSTR STR?317,"check"
|
||||
.GSTR STR?318,"head"
|
||||
.GSTR STR?319,"walk"
|
||||
.GSTR STR?320,"disappear"
|
||||
.GSTR STR?321,"appear"
|
||||
.GSTR STR?322,"Enroute"
|
||||
.GSTR STR?323,"bump"
|
||||
.GSTR STR?324,"get"
|
||||
.GSTR STR?325,"show"
|
||||
.GSTR STR?326," crouches low and prepares to lunge"
|
||||
.GSTR STR?327," slips but then regains his footing"
|
||||
.GSTR STR?328," creeps a little closer"
|
||||
.GSTR STR?329,"Impatient"
|
||||
.GSTR STR?330,"asleep"
|
||||
.GSTR STR?331,"busy"
|
||||
.GSTR STR?332," again"
|
||||
.GSTR STR?333," strongly"
|
||||
.GSTR STR?334," forcefully"
|
||||
.GSTR STR?335," wildly"
|
||||
.GSTR STR?336," frantically"
|
||||
.GSTR STR?337,"smuggling"
|
||||
.GSTR STR?338,"stare"
|
||||
.GSTR STR?339,"leav"
|
||||
.GSTR STR?340,"board"
|
||||
.GSTR STR?341,"pause"
|
||||
.GSTR STR?342,"passports"
|
||||
.GSTR STR?343," takes"
|
||||
.GSTR STR?344," tries to take"
|
||||
.GSTR STR?345," closes"
|
||||
.GSTR STR?346," examines"
|
||||
.GSTR STR?347," turns"
|
||||
.GSTR STR?348," opens"
|
||||
.GSTR STR?349," loads"
|
||||
.GSTR STR?350," cocks"
|
||||
.GSTR STR?351," pockets"
|
||||
.GSTR STR?352," puts away"
|
||||
.GSTR STR?353," picks up"
|
||||
.GSTR STR?354," finds and picks "
|
||||
.GSTR STR?355," buys"
|
||||
.GSTR STR?356," kicks"
|
||||
.GSTR STR?357," acquires "
|
||||
.GSTR STR?358," pulls"
|
||||
.GSTR STR?359," finds"
|
||||
.GSTR STR?360," shows"
|
||||
.GSTR STR?361," talks to"
|
||||
.GSTR STR?362," hands over"
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,352 @@
|
|||
|
||||
;COMPARISON OF PS:<SWG>STATION.ZAP.1 AND PS:<SWG>STATION.ZAP.3
|
||||
;OPTIONS ARE /1
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-10 (163)
|
||||
EQUAL? PRSA,V?WALK-TO \?ELS5
|
||||
ZERO? ON-TRAIN /?ELS5
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-10 (163)
|
||||
EQUAL? PRSA,V?WALK-TO \?ELS4
|
||||
ZERO? ON-TRAIN /?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-14 (256)
|
||||
?ELS5: CALL ON-PLATFORM?,HERE
|
||||
ZERO? STACK /?ELS9
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-14 (256)
|
||||
?ELS4: CALL ON-PLATFORM?,HERE
|
||||
ZERO? STACK /?ELS6
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-18 (359)
|
||||
?ELS9: CALL ZMEMQ,HERE,STATION-ROOMS
|
||||
ZERO? STACK \?THN12
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-18 (359)
|
||||
?ELS6: CALL ZMEMQ,HERE,STATION-ROOMS
|
||||
ZERO? STACK \?THN7
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-24 (526)
|
||||
?THN12: GETP HERE,P?CAR
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-24 (525)
|
||||
?THN7: GETP HERE,P?CAR
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-31 (657)
|
||||
ZERO? CUSTOMS-SWEEP \?ELS5
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-31 (655)
|
||||
ZERO? CUSTOMS-SWEEP \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-33 (706)
|
||||
?ELS5: FSET? PASSPORT,LOCKED \?ELS7
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-33 (704)
|
||||
?ELS4: FSET? PASSPORT,LOCKED \?ELS5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-42 (928)
|
||||
?ELS7: ZERO? BRIEFCASE-PASSED \?ELS11
|
||||
IN? BRIEFCASE,PLAYER \?ELS11
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-42 (926)
|
||||
?ELS5: ZERO? BRIEFCASE-PASSED \?ELS8
|
||||
IN? BRIEFCASE,PLAYER \?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-48 (1124)
|
||||
FSET? BRIEFCASE,OPENBIT \?ELS18
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-48 (1120)
|
||||
FSET? BRIEFCASE,OPENBIT \?ELS13
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-54 (1236)
|
||||
?ELS18: PRINTI "as if to say, ""Open"
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-54 (1232)
|
||||
?ELS13: PRINTI "as if to say, ""Open"
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-59 (1332)
|
||||
?ELS11: FIRST? POCKET \?ELS26
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-59 (1328)
|
||||
?ELS8: FIRST? POCKET \?ELS18
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-68 (1557)
|
||||
?ELS26: IN? MCGUFFIN,PLAYER \?ELS30
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-68 (1552)
|
||||
?ELS18: IN? MCGUFFIN,PLAYER \?ELS21
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-76 (1738)
|
||||
?ELS30: IN? BRIEFCASE,PLAYER /?CND35
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-76 (1733)
|
||||
?ELS21: IN? BRIEFCASE,PLAYER /?CND24
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-78 (1803)
|
||||
?CND35: CALL QUEUE,I-DEPART-WARNING,5
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-78 (1798)
|
||||
?CND24: CALL QUEUE,I-DEPART-WARNING,5
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-84 (1908)
|
||||
ZERO? CUSTOMS-SWEEP /?ELS5
|
||||
ZERO? IN-STATION /?ELS5
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-84 (1903)
|
||||
ZERO? CUSTOMS-SWEEP /?ELS4
|
||||
ZERO? IN-STATION /?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-90 (2059)
|
||||
?ELS5: RETURN PLATFORM-B
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-90 (2054)
|
||||
?ELS4: RETURN PLATFORM-B
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-94 (2118)
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-94 (2113)
|
||||
EQUAL? RARG,M-LOOK \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-101 (2310)
|
||||
EQUAL? HERE,PLATFORM-A \?ELS10
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-101 (2305)
|
||||
EQUAL? HERE,PLATFORM-A \?ELS8
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-103 (2375)
|
||||
JUMP ?CND8
|
||||
?ELS10: EQUAL? HERE,PLATFORM-E \?ELS14
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-103 (2369)
|
||||
JUMP ?CND7
|
||||
?ELS8: EQUAL? HERE,PLATFORM-E \?ELS11
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-106 (2460)
|
||||
JUMP ?CND8
|
||||
?ELS14: PRINTI "on "
|
||||
?CND8: PRINTI "the platform of the "
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-106 (2453)
|
||||
JUMP ?CND7
|
||||
?ELS11: PRINTI "on "
|
||||
?CND7: PRINTI "the platform of the "
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-111 (2604)
|
||||
EQUAL? HERE,PLATFORM-A \?ELS25
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-111 (2597)
|
||||
EQUAL? HERE,PLATFORM-A \?ELS19
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-113 (2656)
|
||||
JUMP ?CND23
|
||||
?ELS25: EQUAL? HERE,PLATFORM-E \?ELS27
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-113 (2649)
|
||||
JUMP ?CND18
|
||||
?ELS19: EQUAL? HERE,PLATFORM-E \?ELS20
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-116 (2732)
|
||||
JUMP ?CND23
|
||||
?ELS27: EQUAL? HERE,PLATFORM-C \?ELS32
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-116 (2725)
|
||||
JUMP ?CND18
|
||||
?ELS20: EQUAL? HERE,PLATFORM-C \?ELS22
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-119 (2810)
|
||||
JUMP ?CND30
|
||||
?ELS32: PRINTI "wall of "
|
||||
?CND30: PRINTI "the station house"
|
||||
?CND23: PRINTI ". To the east "
|
||||
ZERO? IN-STATION /?ELS45
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-119 (2803)
|
||||
JUMP ?CND21
|
||||
?ELS22: PRINTI "wall of "
|
||||
?CND21: PRINTI "the station house"
|
||||
?CND18: PRINTI ". To the east "
|
||||
ZERO? IN-STATION /?ELS32
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-126 (3004)
|
||||
EQUAL? HERE,PLATFORM-A \?CND43
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-126 (2997)
|
||||
EQUAL? HERE,PLATFORM-A \?CND31
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-128 (3080)
|
||||
JUMP ?CND43
|
||||
?ELS45: PRINTI "are the train tracks"
|
||||
?CND43: PRINTR ". The place is crowded with people."
|
||||
?ELS5: EQUAL? RARG,M-BEG \?ELS61
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-128 (3073)
|
||||
JUMP ?CND31
|
||||
?ELS32: PRINTI "are the train tracks"
|
||||
?CND31: PRINTR ". The place is crowded with people."
|
||||
?ELS4: EQUAL? RARG,M-BEG \?ELS43
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-136 (3328)
|
||||
EQUAL? P,GUARD \?CND72
|
||||
ZERO? GUARD-SUSPICION /?CND72
|
||||
FSET? GUARD,TOUCHBIT \?CND72
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-136 (3321)
|
||||
EQUAL? P,GUARD \?CND51
|
||||
ZERO? GUARD-SUSPICION /?CND51
|
||||
FSET? GUARD,TOUCHBIT \?CND51
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-143 (3516)
|
||||
?CND72: FSET P,NDESCBIT
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-143 (3509)
|
||||
?CND51: FSET P,NDESCBIT
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-145 (3551)
|
||||
?ELS61: EQUAL? RARG,M-END \?ELS80
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-145 (3544)
|
||||
?ELS43: EQUAL? RARG,M-END \?ELS56
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-148 (3622)
|
||||
?ELS80: EQUAL? RARG,M-ENTER \?ELS82
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-148 (3615)
|
||||
?ELS56: EQUAL? RARG,M-ENTER \?ELS57
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-157 (3856)
|
||||
?ELS82: ZERO? RARG \FALSE
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-157 (3849)
|
||||
?ELS57: ZERO? RARG \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-176 (4228)
|
||||
ZERO? STACK /?ELS5
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-176 (4221)
|
||||
ZERO? STACK /?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-182 (4342)
|
||||
?ELS5: ZERO? IN-STATION \?THN10
|
||||
EQUAL? HERE,BESIDE-TRACKS \?ELS9
|
||||
?THN10: SET 'ON-TRAIN,TRUE-VALUE
|
||||
ZERO? PULLED-STOP-CORD /?CND12
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-182 (4335)
|
||||
?ELS4: ZERO? IN-STATION \?THN7
|
||||
EQUAL? HERE,BESIDE-TRACKS \?ELS8
|
||||
?THN7: SET 'ON-TRAIN,TRUE-VALUE
|
||||
ZERO? PULLED-STOP-CORD /?CND9
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-187 (4499)
|
||||
?CND12: FSET? PEN,TOUCHBIT /?CND16
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-187 (4489)
|
||||
?CND9: FSET? PEN,TOUCHBIT /?CND11
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-190 (4573)
|
||||
?CND16: ZERO? IN-STATION /?CND19
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-190 (4562)
|
||||
?CND11: ZERO? IN-STATION /?CND13
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-193 (4667)
|
||||
?CND19: CALL V-REAR,CAR-HERE
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-193 (4656)
|
||||
?CND13: CALL V-REAR,CAR-HERE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-195 (4707)
|
||||
?ELS9: PRINTI "Walking on the tracks is not a good idea."
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-195 (4696)
|
||||
?ELS8: PRINTI "Walking on the tracks is not a good idea."
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-201 (4815)
|
||||
ZERO? ARG \?THN8
|
||||
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?THN8
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-201 (4804)
|
||||
ZERO? ARG \?THN4
|
||||
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?THN4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-204 (4937)
|
||||
?THN8: SET 'OBJ,GOOD-SPY
|
||||
IN? OBJ,HERE \?ELS18
|
||||
FSET? OBJ,NDESCBIT /?THN15
|
||||
?ELS18: SET 'OBJ,GUARD
|
||||
IN? OBJ,HERE \?ELS20
|
||||
FSET? OBJ,NDESCBIT /?THN15
|
||||
?ELS20: CALL CALL-FOR-EXTRA,HERE,FALSE-VALUE >OBJ
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-204 (4926)
|
||||
?THN4: SET 'OBJ,GOOD-SPY
|
||||
PUSH 1
|
||||
IN? STACK,HERE \?ELS11
|
||||
FSET? OBJ,NDESCBIT /?THN10
|
||||
?ELS11: SET 'OBJ,GUARD
|
||||
PUSH 1
|
||||
IN? STACK,HERE \?ELS12
|
||||
FSET? OBJ,NDESCBIT /?THN10
|
||||
?ELS12: CALL CALL-FOR-EXTRA,HERE,FALSE-VALUE >OBJ
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-212 (5161)
|
||||
?THN15: CALL THIS-IS-IT,OBJ
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-214 (5172)
|
||||
?THN10: CALL THIS-IS-IT,OBJ
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-226 (5444)
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-228 (5455)
|
||||
EQUAL? RARG,M-ENTER \?ELS4
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-229 (5509)
|
||||
?ELS5: EQUAL? RARG,M-FLASH \FALSE
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-231 (5520)
|
||||
?ELS4: EQUAL? RARG,M-FLASH \FALSE
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-239 (5803)
|
||||
ZERO? STACK \?CND10
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-241 (5814)
|
||||
ZERO? STACK \?CND7
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-241 (5847)
|
||||
?PRG13: GET EXTRA-TABLE,N >X
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-243 (5857)
|
||||
?PRG9: GET EXTRA-TABLE,N >X
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-243 (5910)
|
||||
ZERO? STACK /?ELS17
|
||||
JUMP ?CND10
|
||||
?ELS17: DLESS? 'N,1 \?PRG13
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-245 (5919)
|
||||
ZERO? STACK /?ELS12
|
||||
JUMP ?CND7
|
||||
?ELS12: DLESS? 'N,1 \?PRG9
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-247 (5988)
|
||||
JUMP ?PRG13
|
||||
?CND10: CALL START-SENTENCE,GOOD-SPY
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-249 (5995)
|
||||
JUMP ?PRG9
|
||||
?CND7: CALL START-SENTENCE,GOOD-SPY
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-256 (6229)
|
||||
EQUAL? PASSWORD,CAMERA,HANKY,SCARF \?CND22
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-258 (6234)
|
||||
EQUAL? PASSWORD,CAMERA,HANKY,SCARF \?CND16
|
||||
***************
|
||||
|
||||
**** FILE PS:<SWG>STATION.ZAP.1, 1-258 (6287)
|
||||
?CND22: PRINTI " '"
|
||||
**** FILE PS:<SWG>STATION.ZAP.3, 1-260 (6292)
|
||||
?CND16: PRINTI " '"
|
||||
***************
|
||||
|
|
@ -0,0 +1,407 @@
|
|||
|
||||
|
||||
.FUNCT ON-PLATFORM?,RM
|
||||
EQUAL? RM,PLATFORM-A,PLATFORM-B,PLATFORM-C /?THN6
|
||||
EQUAL? RM,PLATFORM-D,PLATFORM-E \FALSE
|
||||
?THN6: GETP RM,P?CAR
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PLATFORM-GLOBAL-F,P
|
||||
EQUAL? PRSA,V?WALK-TO \?ELS5
|
||||
ZERO? ON-TRAIN /?ELS5
|
||||
CALL PERFORM,V?LEAVE,TRAIN
|
||||
RTRUE
|
||||
?ELS5: CALL2 ON-PLATFORM?,HERE
|
||||
ZERO? STACK /?ELS9
|
||||
CALL DO-INSTEAD-OF,HERE,PLATFORM-GLOBAL
|
||||
RTRUE
|
||||
?ELS9: CALL ZMEMQ,HERE,STATION-ROOMS
|
||||
ZERO? STACK /?ELS11
|
||||
GETP HERE,P?CAR
|
||||
GET STATION-ROOMS,STACK
|
||||
CALL DO-INSTEAD-OF,STACK,PLATFORM-GLOBAL
|
||||
RTRUE
|
||||
?ELS11: ZERO? ON-TRAIN /FALSE
|
||||
ZERO? IN-STATION /FALSE
|
||||
CALL GLOBAL-IN?,SCENERY-LEFT,HERE
|
||||
ZERO? STACK /FALSE
|
||||
GET STATION-ROOMS,CAR-HERE
|
||||
CALL DO-INSTEAD-OF,STACK,PLATFORM-GLOBAL
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT PASS-CUSTOMS-F
|
||||
ZERO? CUSTOMS-SWEEP \?ELS5
|
||||
GETP PLATFORM-A,P?CAR
|
||||
CALL NEXT-CAR-SWITCHEROO,CAR-HERE,STACK
|
||||
RETURN PLATFORM-A
|
||||
?ELS5: FSET? PASSPORT,LOCKED \?ELS7
|
||||
CALL2 START-SENTENCE,CUSTOMS-AGENT
|
||||
PRINTI " makes a gesture, asking for "
|
||||
PRINTD PASSPORT
|
||||
PRINTI "."
|
||||
CRLF
|
||||
CALL2 THIS-IS-IT,PASSPORT
|
||||
CALL2 THIS-IS-IT,CUSTOMS-AGENT
|
||||
RFALSE
|
||||
?ELS7: ZERO? BRIEFCASE-PASSED \?ELS11
|
||||
IN? BRIEFCASE,PLAYER \?ELS11
|
||||
CALL2 START-SENTENCE,CUSTOMS-AGENT
|
||||
PRINTI " makes a gesture, "
|
||||
FSET? BRIEFCASE,OPENBIT \?ELS18
|
||||
PRINTI "pointing at"
|
||||
CALL2 HIM-HER-IT,BRIEFCASE
|
||||
PRINTI "."
|
||||
CRLF
|
||||
JUMP ?CND16
|
||||
?ELS18: PRINTI "as if to say, ""Open"
|
||||
CALL2 HIM-HER-IT,BRIEFCASE
|
||||
PRINTI "."""
|
||||
CRLF
|
||||
?CND16: CALL2 THIS-IS-IT,BRIEFCASE
|
||||
CALL2 THIS-IS-IT,CUSTOMS-AGENT
|
||||
RFALSE
|
||||
?ELS11: FIRST? POCKET \?ELS26
|
||||
CALL2 START-SENTENCE,CUSTOMS-AGENT
|
||||
PRINTI " makes a gesture, as if to say, ""Empty "
|
||||
PRINTD POCKET
|
||||
PRINTI "."""
|
||||
CRLF
|
||||
CALL2 THIS-IS-IT,POCKET
|
||||
CALL2 THIS-IS-IT,CUSTOMS-AGENT
|
||||
RFALSE
|
||||
?ELS26: IN? MCGUFFIN,PLAYER \?ELS30
|
||||
CALL2 START-SENTENCE,CUSTOMS-AGENT
|
||||
PRINTI " confiscates"
|
||||
CALL2 HIM-HER-IT,MCGUFFIN
|
||||
PRINTI " and arrests you!"
|
||||
CRLF
|
||||
CALL1 FINISH
|
||||
RSTACK
|
||||
?ELS30: IN? GUN,PLAYER \?ELS34
|
||||
CALL2 START-SENTENCE,CUSTOMS-AGENT
|
||||
PRINTI " confiscates"
|
||||
CALL2 HIM-HER-IT,GUN
|
||||
PRINTI " and arrests you!"
|
||||
CRLF
|
||||
CALL1 FINISH
|
||||
RSTACK
|
||||
?ELS34: CALL FLUSH?,CAR-ROOMS,FALSE-VALUE,FALSE-VALUE,FALSE-VALUE
|
||||
CALL FLUSH?,CAR-ROOMS,TRUE-VALUE,FALSE-VALUE,FALSE-VALUE
|
||||
CALL FLUSH?,CAR-ROOMS-DINER,FALSE-VALUE,FALSE-VALUE,FALSE-VALUE
|
||||
CALL FLUSH?,CAR-ROOMS-FANCY,FALSE-VALUE,FALSE-VALUE,FALSE-VALUE
|
||||
CALL QUEUE,I-DEPART-WARNING,5
|
||||
PUT STACK,0,1
|
||||
GETP PLATFORM-A,P?CAR
|
||||
CALL NEXT-CAR-SWITCHEROO,CAR-HERE,STACK
|
||||
CALL HE-SHE-IT,CUSTOMS-AGENT,TRUE-VALUE,STR?34
|
||||
PRINTI " approvingly."
|
||||
CRLF
|
||||
RETURN PLATFORM-A
|
||||
|
||||
|
||||
.FUNCT UNPASS-CUSTOMS-F
|
||||
ZERO? CUSTOMS-SWEEP /?ELS5
|
||||
ZERO? IN-STATION /?ELS5
|
||||
CALL2 START-SENTENCE,GUARD
|
||||
PRINTI " prevents you and points to the train."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS5: GETP PLATFORM-B,P?CAR
|
||||
CALL NEXT-CAR-SWITCHEROO,CAR-HERE,STACK
|
||||
RETURN PLATFORM-B
|
||||
|
||||
|
||||
.FUNCT NEXT-PLATFORM-TO-REAR-F
|
||||
CALL2 NEXT-PLATFORM-F,1
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NEXT-PLATFORM-TO-FWD-F
|
||||
CALL2 NEXT-PLATFORM-F,-1
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NEXT-PLATFORM-F,D,N
|
||||
GETP HERE,P?CAR
|
||||
ADD D,STACK >N
|
||||
CALL NEXT-CAR-SWITCHEROO,CAR-HERE,N
|
||||
GET STATION-ROOMS,N
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PLATFORM-F,RARG=0,P
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
FSET PLATFORM-A,TOUCHBIT
|
||||
FSET PLATFORM-B,TOUCHBIT
|
||||
FSET PLATFORM-C,TOUCHBIT
|
||||
FSET PLATFORM-D,TOUCHBIT
|
||||
FSET PLATFORM-E,TOUCHBIT
|
||||
PRINTI "You are standing "
|
||||
EQUAL? HERE,PLATFORM-A \?ELS10
|
||||
PRINTI "at the north end of "
|
||||
JUMP ?CND8
|
||||
?ELS10: EQUAL? HERE,PLATFORM-E \?ELS14
|
||||
PRINTI "at the south end of "
|
||||
JUMP ?CND8
|
||||
?ELS14: PRINTI "on "
|
||||
?CND8: PRINTI "the concrete platform of the "
|
||||
PRINTD SCENERY-OBJ
|
||||
PRINTI " railway station. A cantilevered roof looms overhead, with occasional drops of rain water falling from its edge. To the west is the "
|
||||
EQUAL? HERE,PLATFORM-A \?ELS25
|
||||
PRINTD REST-ROOM-MEN
|
||||
JUMP ?CND23
|
||||
?ELS25: EQUAL? HERE,PLATFORM-B \?ELS27
|
||||
PRINTD REST-ROOM-WOMEN
|
||||
JUMP ?CND23
|
||||
?ELS27: EQUAL? HERE,PLATFORM-E \?ELS29
|
||||
PRINTD LUGGAGE-ROOM
|
||||
JUMP ?CND23
|
||||
?ELS29: EQUAL? HERE,PLATFORM-C \?ELS34
|
||||
PRINTI "entrance to "
|
||||
JUMP ?CND32
|
||||
?ELS34: PRINTI "wall of "
|
||||
?CND32: PRINTI "the station house"
|
||||
?CND23: PRINTI ". To the east "
|
||||
ZERO? IN-STATION /?ELS47
|
||||
PRINTI "is a passenger train, the "
|
||||
PRINT TRAIN-NAME
|
||||
PRINTI ", hissing and blowing off steam"
|
||||
JUMP ?CND45
|
||||
?ELS47: PRINTI "are the train tracks"
|
||||
?CND45: PRINTR ". The place is crowded with people milling about, searching for a certain passenger or the right car, or simply waiting."
|
||||
?ELS5: EQUAL? RARG,M-BEG \?ELS63
|
||||
CALL1 EXIT-VERB?
|
||||
ZERO? STACK /FALSE
|
||||
EQUAL? VARIATION,2,4 \?ELS71
|
||||
CALL FIND-FLAG-HERE,PERSONBIT,PLAYER >P
|
||||
JUMP ?CND69
|
||||
?ELS71: CALL FIND-FLAG-HERE,PERSONBIT,PLAYER,CONTACT,BAD-SPY >P
|
||||
?CND69: ZERO? P /FALSE
|
||||
CALL IN-MOTION?,P,TRUE-VALUE
|
||||
ZERO? STACK \FALSE
|
||||
EQUAL? P,GUARD \?CND79
|
||||
ZERO? GUARD-SUSPICION /?CND79
|
||||
FSET? GUARD,TOUCHBIT \?CND79
|
||||
FCLEAR GUARD,TOUCHBIT
|
||||
PUTP GUARD,P?LDESC,10
|
||||
PRINTI "You lose the guard in the crowd."
|
||||
CRLF
|
||||
?CND79: FSET P,NDESCBIT
|
||||
RFALSE
|
||||
?ELS63: EQUAL? RARG,M-END \?ELS87
|
||||
CALL2 CROWD-F,TRUE-VALUE
|
||||
RFALSE
|
||||
?ELS87: EQUAL? RARG,M-ENTER \?ELS89
|
||||
ZERO? CUSTOMS-SWEEP /FALSE
|
||||
ZERO? IN-STATION /FALSE
|
||||
LOC CONDUCTOR
|
||||
CALL2 ON-PLATFORM?,STACK
|
||||
ZERO? STACK \FALSE
|
||||
CALL2 QUEUED?,I-TRAIN-ARREST
|
||||
ZERO? STACK \FALSE
|
||||
GET GOAL-TABLES,CONDUCTOR-C
|
||||
CALL CONDUCTOR-OFF,STACK,FALSE-VALUE
|
||||
RFALSE
|
||||
?ELS89: ZERO? RARG \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
IN? CONTACT,HERE /FALSE
|
||||
CALL2 CALL-FOR-EXTRA,HERE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT NO-EMBARK-TEST
|
||||
ZERO? IN-STATION /FALSE
|
||||
ZERO? CUSTOMS-SWEEP /FALSE
|
||||
FSET? PASSPORT,LOCKED /TRUE
|
||||
EQUAL? HERE,PLATFORM-A \TRUE
|
||||
ZERO? BRIEFCASE-PASSED \FALSE
|
||||
IN? BRIEFCASE,WINNER /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT EMBARK-F
|
||||
CALL1 NO-EMBARK-TEST
|
||||
ZERO? STACK /?ELS5
|
||||
PRINTI "You have to pass"
|
||||
CALL2 HIM-HER-IT,CUSTOMS-AGENT
|
||||
PRINTI " first."
|
||||
CRLF
|
||||
RFALSE
|
||||
?ELS5: ZERO? IN-STATION \?THN10
|
||||
EQUAL? HERE,BESIDE-TRACKS \?ELS9
|
||||
?THN10: SET 'ON-TRAIN,TRUE-VALUE
|
||||
ZERO? PULLED-STOP-CORD /?CND12
|
||||
CALL1 I-TRAIN-ARREST
|
||||
?CND12: FSET? PEN,TOUCHBIT /?CND16
|
||||
FSET PEN,NDESCBIT
|
||||
?CND16: CALL2 V-REAR,CAR-HERE
|
||||
RSTACK
|
||||
?ELS9: PRINTI "Walking on the tracks looks too dangerous!"
|
||||
CRLF
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT CROWD-F,ARG=0,OBJ
|
||||
ZERO? ARG \?THN8
|
||||
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?THN8
|
||||
EQUAL? PRSA,V?LOOK-THROUGH,V?LOOK-INSIDE,V?EXAMINE \?ELS5
|
||||
?THN8: SET 'OBJ,CONTACT
|
||||
IN? OBJ,HERE \?ELS18
|
||||
FSET? OBJ,NDESCBIT /?THN15
|
||||
?ELS18: SET 'OBJ,GUARD
|
||||
IN? OBJ,HERE \?ELS20
|
||||
FSET? OBJ,NDESCBIT /?THN15
|
||||
?ELS20: CALL CALL-FOR-EXTRA,HERE,FALSE-VALUE >OBJ
|
||||
ZERO? OBJ /FALSE
|
||||
?THN15: FCLEAR OBJ,NDESCBIT
|
||||
PRINTI "One part of the crowd catches your eye: "
|
||||
CALL2 DESCRIBE-PERSON,OBJ
|
||||
CALL2 THIS-IS-IT,OBJ
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?THROUGH \?ELS24
|
||||
PRINTR "You do your best to mingle with the crowd, but you can't help feeling like a conspicuous foreigner."
|
||||
?ELS24: EQUAL? PRSA,V?LISTEN \FALSE
|
||||
PRINTR "Familiar crowd noises: the buzz of conversations, the clunk of luggage and parcels, and echoes from the bare surfaces."
|
||||
|
||||
|
||||
.FUNCT LUGGAGE-ROOM-F,RARG=0
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
MOVE CLERK,LUGGAGE-ROOM
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT REST-ROOM-STATION-TEST,RARG
|
||||
LOC CONTACT
|
||||
EQUAL? STACK,REST-ROOM-MEN,REST-ROOM-WOMEN \FALSE
|
||||
EQUAL? VARIATION,3,4 \?ELS7
|
||||
EQUAL? RARG,M-OTHER \FALSE
|
||||
RTRUE
|
||||
?ELS7: EQUAL? RARG,M-FLASH \FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT REST-ROOM-STATION-F,RARG=0,X,Y,N,V
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
MOVE PAPER-FIXTURE,HERE
|
||||
RFALSE
|
||||
?ELS5: CALL2 REST-ROOM-STATION-TEST,RARG
|
||||
ZERO? STACK /FALSE
|
||||
CALL2 RANDOM-PER-VAR,CONTACT-MAX
|
||||
GET EXTRA-TABLE,STACK >X
|
||||
CALL MOVE-EXTRA?,X,LIMBO-FWD,1
|
||||
ZERO? STACK \?CND8
|
||||
SET 'N,CONTACT-MAX
|
||||
?PRG11: GET EXTRA-TABLE,N >X
|
||||
CALL MOVE-EXTRA?,X,LIMBO-FWD,1
|
||||
ZERO? STACK /?ELS15
|
||||
JUMP ?CND8
|
||||
?ELS15: DLESS? 'N,1 \?PRG11
|
||||
CALL1 V-FOO
|
||||
JUMP ?PRG11
|
||||
?CND8: CALL2 VISIBLE?,CONTACT >V
|
||||
EQUAL? RARG,M-FLASH \?ELS20
|
||||
CALL1 GUARD-NOTICES
|
||||
FCLEAR MCGUFFIN,NDESCBIT
|
||||
MOVE MCGUFFIN,PLAYER
|
||||
CALL2 SET-PASSES,3
|
||||
FSET MCGUFFIN,TAKEBIT
|
||||
CALL HE-SHE-IT,CONTACT,TRUE-VALUE,STR?298
|
||||
PRINTI " you the "
|
||||
PRINTD MCGUFFIN
|
||||
JUMP ?CND18
|
||||
?ELS20: SET 'TRAVELER-CHECKED-CASE,FALSE-VALUE
|
||||
SET 'N,0
|
||||
GET BRIEFCASE-TBL,0 >Y
|
||||
?PRG25: IGRTR? 'N,Y \?ELS29
|
||||
MOVE MCGUFFIN,BAD-SPY
|
||||
JUMP ?REP26
|
||||
?ELS29: GET BRIEFCASE-TBL,N
|
||||
ZERO? STACK \?PRG25
|
||||
PUT BRIEFCASE-TBL,N,MCGUFFIN
|
||||
?REP26: CALL2 SET-PASSES,2
|
||||
ZERO? V /?CND18
|
||||
CALL2 START-SENTENCE,BAD-SPY
|
||||
PRINTI " enters, looking very nervous. "
|
||||
CALL2 START-SENTENCE,CONTACT
|
||||
PRINTI " gives something to"
|
||||
CALL2 THIS-IS-IT,BAD-SPY
|
||||
CALL2 HIM-HER-IT,BAD-SPY
|
||||
?CND18: ZERO? V /?CND40
|
||||
PRINTI " and whispers, "
|
||||
EQUAL? VARIATION,3,4 \?ELS48
|
||||
CALL2 PRODUCE-GIBBERISH,4
|
||||
PRINTI "(Fortunately, you can translate two phrases: """
|
||||
PRINTD PASSWORD
|
||||
PRINTI """ and """
|
||||
PRINTD PASSOBJECT
|
||||
PRINTI "."")"
|
||||
CRLF
|
||||
JUMP ?CND46
|
||||
?ELS48: PRINTI """No time. Meet agent, "
|
||||
CALL2 PRINTA,X
|
||||
PRINTI ", in Gola; display "
|
||||
CALL2 PRINTA,PASSOBJECT
|
||||
PRINTI "; use word"
|
||||
EQUAL? PASSWORD,CAMERA,HANKY,SCARF \?CND55
|
||||
PRINTI "s"
|
||||
?CND55: PRINTI " '"
|
||||
PRINTD PASSWORD
|
||||
PRINTI "'."" "
|
||||
?CND46: PRINTI "Then"
|
||||
CALL2 HE-SHE-IT,CONTACT
|
||||
PRINTI " is gone."
|
||||
CRLF
|
||||
?CND40: CALL2 NEW-CONTACT,X
|
||||
EQUAL? RARG,M-FLASH /TRUE
|
||||
ZERO? V \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT NEW-CONTACT,X
|
||||
FCLEAR CONTACT,TOUCHBIT
|
||||
PUTP CONTACT,P?LDESC,0
|
||||
MOVE CONTACT,LIMBO-FWD
|
||||
PUTP CONTACT,P?ACTION,CONTACT-DEFAULT-F
|
||||
SET 'CONTACT,X
|
||||
GETP CONTACT,P?ACTION >CONTACT-DEFAULT-F
|
||||
PUTP CONTACT,P?ACTION,CONTACT-F
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT COUNTER-CAFE-F
|
||||
EQUAL? PRSA,V?SIT-AT \FALSE
|
||||
CALL PERFORM,V?SIT,CHAIR
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TICKET-AREA-F,RARG=0
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
MOVE CLERK,TICKET-AREA
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT TOWN-F
|
||||
PRINTI "As you start to venture into the town,"
|
||||
CALL2 HE-SHE-IT,OFFICER
|
||||
CALL2 THIS-IS-IT,OFFICER
|
||||
PRINTI " recognizes you as an unauthorized foreigner and takes a step in your direction. As you stop walking, so does"
|
||||
CALL2 HE-SHE-IT,OFFICER
|
||||
PRINTI "."
|
||||
CRLF
|
||||
FSET OFFICER,SEENBIT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT SIDEWALK-F,RARG=0
|
||||
EQUAL? RARG,M-END \?ELS5
|
||||
CALL2 CROWD-F,TRUE-VALUE
|
||||
RFALSE
|
||||
?ELS5: ZERO? RARG \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
IN? CONTACT,HERE /FALSE
|
||||
CALL2 CALL-FOR-EXTRA,HERE
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,614 @@
|
|||
"STATION for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<ROUTINE ON-PLATFORM? (RM)
|
||||
<COND (<OR <EQUAL? .RM ,PLATFORM-A ,PLATFORM-B ,PLATFORM-C>
|
||||
<EQUAL? .RM ,PLATFORM-D ,PLATFORM-E>>
|
||||
<GETP .RM ,P?CAR>)>>
|
||||
|
||||
<OBJECT PLATFORM-GLOBAL
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "platform")
|
||||
(SYNONYM PLATFORM)
|
||||
(ACTION PLATFORM-GLOBAL-F)>
|
||||
|
||||
<ROUTINE PLATFORM-GLOBAL-F ("AUX" P)
|
||||
<COND (<AND <VERB? WALK-TO> ,ON-TRAIN>
|
||||
<PERFORM ,V?LEAVE ,TRAIN>
|
||||
<RTRUE>)
|
||||
(<ON-PLATFORM? ,HERE>
|
||||
<DO-INSTEAD-OF ,HERE ,PLATFORM-GLOBAL>
|
||||
<RTRUE>)
|
||||
(<ZMEMQ ,HERE ,STATION-ROOMS>
|
||||
<DO-INSTEAD-OF <GET ,STATION-ROOMS <GETP ,HERE ,P?CAR>>
|
||||
,PLATFORM-GLOBAL>
|
||||
<RTRUE>)
|
||||
(<AND ,ON-TRAIN ,IN-STATION <GLOBAL-IN? ,SCENERY-LEFT ,HERE>>
|
||||
<DO-INSTEAD-OF <GET ,STATION-ROOMS ,CAR-HERE>
|
||||
,PLATFORM-GLOBAL>
|
||||
<RTRUE>)>>
|
||||
|
||||
<ROOM PLATFORM-A
|
||||
(LOC ROOMS)
|
||||
(CAR 1)
|
||||
(FLAGS ONBIT SURFACEBIT)
|
||||
(DESC "platform")
|
||||
(SYNONYM PLATFORM)
|
||||
;(LDESC "You are standing on the platform of the railway station.")
|
||||
(UP PER EMBARK-F)
|
||||
(EAST PER EMBARK-F)
|
||||
(NORTH SORRY "This is the end of the platform.")
|
||||
(SOUTH PER UNPASS-CUSTOMS-F)
|
||||
(WEST TO REST-ROOM-MEN ;"ENTER-STATION-F")
|
||||
(IN TO REST-ROOM-MEN ;"ENTER-STATION-F")
|
||||
(GLOBAL ;WINDOW-0 WINDOW-1 WINDOW-2 WINDOW-3
|
||||
WINDOW-4 WINDOW-5 ;WINDOW-N CROWD)
|
||||
(CORRIDOR 4)
|
||||
(LINE 4)
|
||||
(STATION PLATFORM-A)
|
||||
(DESCFCN PLATFORM-F)
|
||||
(ACTION PLATFORM-F)>
|
||||
|
||||
<ROUTINE PASS-CUSTOMS-F ()
|
||||
<COND (<NOT ,CUSTOMS-SWEEP>
|
||||
<NEXT-CAR-SWITCHEROO ,CAR-HERE <GETP ,PLATFORM-A ,P?CAR>>
|
||||
,PLATFORM-A)
|
||||
(<FSET? ,PASSPORT ,LOCKED>
|
||||
<TELL
|
||||
CTHE ,CUSTOMS-AGENT " makes a gesture, asking for " D ,PASSPORT "." CR>
|
||||
<THIS-IS-IT ,PASSPORT>
|
||||
<THIS-IS-IT ,CUSTOMS-AGENT>
|
||||
<RFALSE>)
|
||||
(<AND <NOT ,BRIEFCASE-PASSED> <IN? ,BRIEFCASE ,PLAYER>>
|
||||
<TELL CTHE ,CUSTOMS-AGENT " makes a gesture, ">
|
||||
<COND (<FSET? ,BRIEFCASE ,OPENBIT>
|
||||
<TELL "pointing at" HIM ,BRIEFCASE "." CR>)
|
||||
(T
|
||||
<TELL "as if to say, \"Open" HIM ,BRIEFCASE ".\"" CR>)>
|
||||
<THIS-IS-IT ,BRIEFCASE>
|
||||
<THIS-IS-IT ,CUSTOMS-AGENT>
|
||||
<RFALSE>)
|
||||
(<FIRST? ,POCKET>
|
||||
<TELL
|
||||
CTHE ,CUSTOMS-AGENT " makes a gesture, as if to say, \"Empty " D ,POCKET ".\""
|
||||
CR>
|
||||
<THIS-IS-IT ,POCKET>
|
||||
<THIS-IS-IT ,CUSTOMS-AGENT>
|
||||
<RFALSE>)
|
||||
(<IN? ,MCGUFFIN ,PLAYER>
|
||||
<START-SENTENCE ,CUSTOMS-AGENT>
|
||||
<TELL " confiscates" HIM ,MCGUFFIN " and arrests you!" CR>
|
||||
<FINISH>)
|
||||
(<IN? ,GUN ,PLAYER>
|
||||
<START-SENTENCE ,CUSTOMS-AGENT>
|
||||
<TELL " confiscates" HIM ,GUN " and arrests you!" CR>
|
||||
<FINISH>)
|
||||
(T
|
||||
<FLUSH? ,CAR-ROOMS <> <> <>>
|
||||
<FLUSH? ,CAR-ROOMS T <> <>>
|
||||
<FLUSH? ,CAR-ROOMS-DINER <> <> <>>
|
||||
<FLUSH? ,CAR-ROOMS-FANCY <> <> <>>
|
||||
;<COND (<NOT <FSET? <LOC ,BRIEFCASE> ,PERSONBIT>>
|
||||
<NOT <IN? ,BRIEFCASE ,PLAYER>>
|
||||
<MOVE ,BRIEFCASE ,LIMBO-FWD>)>
|
||||
<ENABLE <QUEUE I-DEPART-WARNING 5 ;<GETP ,SCENERY-OBJ ,P?SIZE>>>
|
||||
<NEXT-CAR-SWITCHEROO ,CAR-HERE <GETP ,PLATFORM-A ,P?CAR>>
|
||||
<TELL CHE ,CUSTOMS-AGENT smile " approvingly." CR>
|
||||
,PLATFORM-A)>>
|
||||
|
||||
<ROUTINE UNPASS-CUSTOMS-F ()
|
||||
<COND (<AND ,CUSTOMS-SWEEP ,IN-STATION>
|
||||
<TELL CTHE ,GUARD " prevents you and points to the train." CR>
|
||||
<RFALSE>)
|
||||
(T
|
||||
<NEXT-CAR-SWITCHEROO ,CAR-HERE <GETP ,PLATFORM-B ,P?CAR>>
|
||||
,PLATFORM-B)>>
|
||||
|
||||
<ROOM PLATFORM-B
|
||||
(LOC ROOMS)
|
||||
(CAR 2)
|
||||
(FLAGS ONBIT SURFACEBIT)
|
||||
(DESC "platform")
|
||||
(SYNONYM PLATFORM)
|
||||
;(LDESC "You are standing on the platform of the railway station.")
|
||||
(UP PER EMBARK-F)
|
||||
(EAST PER EMBARK-F)
|
||||
(NORTH PER PASS-CUSTOMS-F)
|
||||
(SOUTH PER NEXT-PLATFORM-TO-REAR-F)
|
||||
(WEST TO REST-ROOM-WOMEN ;"ENTER-STATION-F")
|
||||
(IN TO REST-ROOM-WOMEN ;"ENTER-STATION-F")
|
||||
(GLOBAL ;WINDOW-0 WINDOW-1 WINDOW-2 WINDOW-3
|
||||
WINDOW-4 WINDOW-5 ;WINDOW-N CROWD)
|
||||
(CORRIDOR 4 ;*14*)
|
||||
(LINE 4)
|
||||
(STATION PLATFORM-B)
|
||||
(DESCFCN PLATFORM-F)
|
||||
(ACTION PLATFORM-F)>
|
||||
|
||||
<ROUTINE NEXT-PLATFORM-TO-REAR-F () <NEXT-PLATFORM-F +1>>
|
||||
|
||||
<ROUTINE NEXT-PLATFORM-TO-FWD-F () <NEXT-PLATFORM-F -1>>
|
||||
|
||||
<ROUTINE NEXT-PLATFORM-F (D "AUX" N)
|
||||
<SET N <+ .D <GETP ,HERE ,P?CAR> ;<ZMEMQ ,HERE ,STATION-ROOMS>>>
|
||||
<NEXT-CAR-SWITCHEROO ,CAR-HERE .N>
|
||||
<GET ,STATION-ROOMS .N>>
|
||||
|
||||
<ROOM PLATFORM-C
|
||||
(LOC ROOMS)
|
||||
(CAR 3)
|
||||
(FLAGS ONBIT SURFACEBIT)
|
||||
(DESC "platform")
|
||||
(SYNONYM PLATFORM)
|
||||
;(LDESC "You are standing on the platform of the railway station.")
|
||||
(UP PER EMBARK-F)
|
||||
(EAST PER EMBARK-F)
|
||||
(NORTH PER NEXT-PLATFORM-TO-FWD-F)
|
||||
(SOUTH PER NEXT-PLATFORM-TO-REAR-F)
|
||||
(WEST TO WAITING-ROOM ;"ENTER-STATION-F")
|
||||
(IN TO WAITING-ROOM ;"ENTER-STATION-F")
|
||||
(GLOBAL ;WINDOW-0 WINDOW-1 WINDOW-2 WINDOW-3
|
||||
WINDOW-4 WINDOW-5 ;WINDOW-N CROWD)
|
||||
(CORRIDOR *24* ;*34*)
|
||||
(LINE 4)
|
||||
(STATION PLATFORM-C)
|
||||
(DESCFCN PLATFORM-F)
|
||||
(ACTION PLATFORM-F)>
|
||||
|
||||
<ROOM PLATFORM-D
|
||||
(LOC ROOMS)
|
||||
(CAR 4)
|
||||
(FLAGS ONBIT SURFACEBIT)
|
||||
(DESC "platform")
|
||||
(SYNONYM PLATFORM)
|
||||
;(LDESC "You are standing on the platform of the railway station.")
|
||||
(UP PER EMBARK-F)
|
||||
(EAST PER EMBARK-F)
|
||||
(NORTH PER NEXT-PLATFORM-TO-FWD-F)
|
||||
(SOUTH PER NEXT-PLATFORM-TO-REAR-F)
|
||||
;(WEST PER ENTER-STATION-F)
|
||||
;(IN PER ENTER-STATION-F)
|
||||
(GLOBAL ;WINDOW-0 WINDOW-1 WINDOW-2 WINDOW-3
|
||||
WINDOW-4 WINDOW-5 ;WINDOW-N CROWD)
|
||||
(CORRIDOR *20* ;*30*)
|
||||
(LINE 4)
|
||||
(STATION PLATFORM-D)
|
||||
(DESCFCN PLATFORM-F)
|
||||
(ACTION PLATFORM-F)>
|
||||
|
||||
<ROOM PLATFORM-E
|
||||
(LOC ROOMS)
|
||||
(CAR 5)
|
||||
(FLAGS ONBIT SURFACEBIT)
|
||||
(DESC "platform")
|
||||
(SYNONYM PLATFORM)
|
||||
(UP PER EMBARK-F)
|
||||
(EAST PER EMBARK-F)
|
||||
(NORTH PER NEXT-PLATFORM-TO-FWD-F)
|
||||
(SOUTH SORRY "This is the end of the platform.")
|
||||
(WEST TO LUGGAGE-ROOM ;"ENTER-STATION-F")
|
||||
(IN TO LUGGAGE-ROOM ;"ENTER-STATION-F")
|
||||
(GLOBAL ;WINDOW-0 WINDOW-1 WINDOW-2 WINDOW-3
|
||||
WINDOW-4 WINDOW-5 ;WINDOW-N CROWD)
|
||||
(CORRIDOR *20*)
|
||||
(LINE 4)
|
||||
(STATION PLATFORM-E)
|
||||
(DESCFCN PLATFORM-F)
|
||||
(ACTION PLATFORM-F)>
|
||||
|
||||
<CONSTANT PLATFORM-MIN 1>
|
||||
<CONSTANT PLATFORM-STA 3>
|
||||
<CONSTANT PLATFORM-MAX 5>
|
||||
|
||||
<ROUTINE PLATFORM-F ("OPTIONAL" (RARG <>) P)
|
||||
<COND (<EQUAL? .RARG ,M-LOOK>
|
||||
<FSET ,PLATFORM-A ,TOUCHBIT>
|
||||
<FSET ,PLATFORM-B ,TOUCHBIT>
|
||||
<FSET ,PLATFORM-C ,TOUCHBIT>
|
||||
<FSET ,PLATFORM-D ,TOUCHBIT>
|
||||
<FSET ,PLATFORM-E ,TOUCHBIT>
|
||||
<TELL "You are standing ">
|
||||
<COND (<==? ,HERE ,PLATFORM-A>
|
||||
<TELL "at the north end of ">)
|
||||
(<==? ,HERE ,PLATFORM-E>
|
||||
<TELL "at the south end of ">)
|
||||
(T <TELL "on ">)>
|
||||
<TELL
|
||||
"the concrete platform of the " D ,SCENERY-OBJ " railway station. A
|
||||
cantilevered roof looms overhead, with occasional drops of rain water
|
||||
falling from its edge. To the west is the ">
|
||||
<COND (<==? ,HERE ,PLATFORM-A>
|
||||
<PRINTD ,REST-ROOM-MEN>)
|
||||
(<==? ,HERE ,PLATFORM-B>
|
||||
<PRINTD ,REST-ROOM-WOMEN>)
|
||||
(<==? ,HERE ,PLATFORM-E>
|
||||
<PRINTD ,LUGGAGE-ROOM>)
|
||||
(T
|
||||
<COND (<==? ,HERE ,PLATFORM-C>
|
||||
<TELL "entrance to ">)
|
||||
(T <TELL "wall of ">)>
|
||||
<TELL "the station house">)>
|
||||
<TELL ". To the east ">
|
||||
<COND (,IN-STATION
|
||||
<TELL "is a passenger train, the " ,TRAIN-NAME>
|
||||
<COND (T ;<==? ,HERE ,PLATFORM-A>
|
||||
<TELL ", hissing and blowing off steam">)>)
|
||||
(T <TELL "are the train tracks">)>
|
||||
<TELL
|
||||
". The place is crowded with people milling about, searching
|
||||
for a certain passenger or the right car, or simply waiting." CR>)
|
||||
(<EQUAL? .RARG ,M-BEG>
|
||||
<COND (<EXIT-VERB?>
|
||||
<COND (<HARD?>
|
||||
<SET P <FIND-FLAG-HERE ,PERSONBIT
|
||||
,PLAYER>>)
|
||||
(T
|
||||
<SET P <FIND-FLAG-HERE ,PERSONBIT
|
||||
,PLAYER ,CONTACT ,BAD-SPY>>)>
|
||||
<COND (<AND .P
|
||||
<NOT <IN-MOTION? .P T>>
|
||||
;<==? ,EXTRA-C <GETP .P ,P?CHARACTER>>>
|
||||
<COND (<AND <EQUAL? .P ,GUARD>
|
||||
<NOT <ZERO? ,GUARD-SUSPICION>>
|
||||
<FSET? ,GUARD ,TOUCHBIT>>
|
||||
<FCLEAR ,GUARD ,TOUCHBIT>
|
||||
<PUTP ,GUARD ,P?LDESC 10 ;"looking up and down">
|
||||
<TELL "You lose the guard in the crowd." CR>)>
|
||||
<FSET .P ,NDESCBIT>)>
|
||||
<RFALSE>)>)
|
||||
(<EQUAL? .RARG ,M-END>
|
||||
<CROWD-F T>
|
||||
<RFALSE>)
|
||||
(<EQUAL? .RARG ,M-ENTER>
|
||||
<COND (<AND ,CUSTOMS-SWEEP
|
||||
,IN-STATION
|
||||
<NOT <ON-PLATFORM? <LOC ,CONDUCTOR>>>
|
||||
<NOT <QUEUED? ,I-TRAIN-ARREST>>>
|
||||
<CONDUCTOR-OFF <GET ,GOAL-TABLES ,CONDUCTOR-C> <>>
|
||||
<RFALSE>)>)
|
||||
(.RARG <RFALSE>)
|
||||
(<VERB? EXAMINE ;LOOK-INSIDE>
|
||||
<COND (<NOT <IN? ,CONTACT ,HERE>>
|
||||
<CALL-FOR-EXTRA ,HERE>)>
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROUTINE NO-EMBARK-TEST ()
|
||||
<COND (<NOT ,IN-STATION> <RFALSE>)
|
||||
(<NOT ,CUSTOMS-SWEEP> <RFALSE>)
|
||||
(<FSET? ,PASSPORT ,LOCKED> <RTRUE>)
|
||||
;(<FIRST? ,POCKET> <RTRUE>)
|
||||
(<NOT <==? ,HERE ,PLATFORM-A>> <RTRUE>)
|
||||
(,BRIEFCASE-PASSED <RFALSE>)
|
||||
(<IN? ,BRIEFCASE ,WINNER>
|
||||
;<==? ,HERE <META-LOC ,BRIEFCASE>>
|
||||
<RTRUE>)>>
|
||||
|
||||
<ROUTINE EMBARK-F ()
|
||||
<COND (<NO-EMBARK-TEST>
|
||||
<TELL "You have to pass" HIM ,CUSTOMS-AGENT " first." CR>
|
||||
<RFALSE>)
|
||||
(<OR ,IN-STATION <==? ,HERE ,BESIDE-TRACKS>>
|
||||
<SETG ON-TRAIN T>
|
||||
<COND (,PULLED-STOP-CORD ;"JIGS-UP!"
|
||||
<I-TRAIN-ARREST>)>
|
||||
<COND (<NOT <FSET? ,PEN ,TOUCHBIT>>
|
||||
<FSET ,PEN ,NDESCBIT>
|
||||
;<MOVE ,PEN ,WAITER>)>
|
||||
;<COND (,IN-STATION
|
||||
<NEXT-CAR-SWITCHEROO ,CAR-HERE <GETP ,HERE ,P?CAR>>)>
|
||||
<RETURN <V-REAR ,CAR-HERE>>)
|
||||
(T
|
||||
<TELL "Walking on the tracks looks too dangerous!" CR>
|
||||
<RFALSE>)>>
|
||||
|
||||
<OBJECT CROWD
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "crowd of people")
|
||||
(SYNONYM CROWD PEOPLE PASSENGER)
|
||||
(LDESC "The place is crowded with people.")
|
||||
(ACTION CROWD-F)>
|
||||
|
||||
<ROUTINE CROWD-F ("OPTIONAL" (ARG <>) "AUX" OBJ)
|
||||
<COND (<OR .ARG <VERB? EXAMINE LOOK-INSIDE LOOK-THROUGH SEARCH SEARCH-FOR>>
|
||||
<COND (<OR <AND <IN? <SET OBJ ,CONTACT> ,HERE>
|
||||
<FSET? .OBJ ,NDESCBIT>>
|
||||
<AND <IN? <SET OBJ ,GUARD> ,HERE>
|
||||
<FSET? .OBJ ,NDESCBIT>>
|
||||
<SET OBJ <CALL-FOR-EXTRA ,HERE <>>>>
|
||||
<FCLEAR .OBJ ,NDESCBIT>
|
||||
<TELL "One part of the crowd catches your eye: ">
|
||||
<DESCRIBE-PERSON .OBJ>
|
||||
<THIS-IS-IT .OBJ>
|
||||
<RTRUE>)>)
|
||||
(<VERB? THROUGH>
|
||||
<TELL
|
||||
"You do your best to mingle with the crowd, but you can't help feeling
|
||||
like a conspicuous foreigner." CR>)
|
||||
(<VERB? LISTEN>
|
||||
<TELL
|
||||
"Familiar crowd noises: the buzz of conversations, the clunk of luggage
|
||||
and parcels, and echoes from the bare surfaces." CR>)>>
|
||||
|
||||
<ROOM WAITING-ROOM
|
||||
(LOC ROOMS)
|
||||
(CAR 3)
|
||||
(FLAGS ONBIT ;RLANDBIT)
|
||||
(DESC "waiting room")
|
||||
(ADJECTIVE WAITING)
|
||||
(SYNONYM ROOM AREA)
|
||||
(LDESC
|
||||
"You are standing in the railway station. You can see a cafe on the
|
||||
north side and the ticket counter on the south. The street is west.
|
||||
The place is crowded with people.")
|
||||
(NORTH TO CAFE)
|
||||
(WEST TO SIDEWALK)
|
||||
(SOUTH TO TICKET-AREA)
|
||||
(EAST TO PLATFORM-C)
|
||||
(OUT TO PLATFORM-C)
|
||||
(GLOBAL CROWD CHAIR)
|
||||
(LINE 5)
|
||||
(STATION WAITING-ROOM)
|
||||
;(ACTION WAITING-ROOM-F)>
|
||||
|
||||
;<OBJECT SEAT-WAITING-ROOM
|
||||
(LOC WAITING-ROOM)
|
||||
(SYNONYM SEAT CHAIR BENCH)
|
||||
(GENERIC GENERIC-SEAT-F)
|
||||
(FLAGS SURFACEBIT OPENBIT NDESCBIT VEHBIT)
|
||||
(CAPACITY 100)
|
||||
(DESC "bench")>
|
||||
|
||||
<ROOM LUGGAGE-ROOM
|
||||
(LOC ROOMS)
|
||||
(CAR 5)
|
||||
(FLAGS ONBIT ;RLANDBIT)
|
||||
(DESC "luggage room")
|
||||
(ADJECTIVE LUGGAGE)
|
||||
(SYNONYM ROOM)
|
||||
(EAST TO PLATFORM-E)
|
||||
(OUT TO PLATFORM-E)
|
||||
(LINE 4)
|
||||
(STATION PLATFORM-E)
|
||||
(ACTION LUGGAGE-ROOM-F)>
|
||||
|
||||
<ROUTINE LUGGAGE-ROOM-F ("OPTIONAL" (RARG <>))
|
||||
<COND (<==? .RARG ,M-ENTER>
|
||||
<MOVE ,CLERK ,LUGGAGE-ROOM>
|
||||
<RFALSE>)>>
|
||||
|
||||
<OBJECT ROOM-LUGGAGE
|
||||
(LOC LUGGAGE-ROOM)
|
||||
(DESC "bunch of luggage")
|
||||
(SYNONYM BUNCH LUGGAGE)
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<ROOM REST-ROOM-MEN
|
||||
(LOC ROOMS)
|
||||
(CAR 1)
|
||||
(FLAGS ONBIT ;RLANDBIT)
|
||||
(DESC "men's restroom")
|
||||
(LDESC
|
||||
"This restroom is impressively tidy. That's a good thing, because it's
|
||||
one of the only pair in the whole station.")
|
||||
(ADJECTIVE REST MALE MEN\'S)
|
||||
(SYNONYM RESTROOM BATHROOM LAVATORY TOILET ROOM)
|
||||
(GENERIC GENERIC-REST-ROOM-F)
|
||||
(EAST TO PLATFORM-A)
|
||||
(OUT TO PLATFORM-A)
|
||||
(GLOBAL TOILET SINK TOWEL-FIXTURE TOWEL-LOOP MIRROR ;PAPER-FIXTURE)
|
||||
(LINE 4)
|
||||
(STATION PLATFORM-A)
|
||||
(ACTION REST-ROOM-STATION-F)>
|
||||
|
||||
<ROOM REST-ROOM-WOMEN
|
||||
(LOC ROOMS)
|
||||
(CAR 2)
|
||||
(FLAGS ONBIT ;RLANDBIT)
|
||||
(DESC "women's restroom")
|
||||
(LDESC
|
||||
"This restroom is impressively tidy. That's a good thing, because it's
|
||||
one of the only pair in the whole station.")
|
||||
(ADJECTIVE REST FEMALE WOMEN\'S)
|
||||
(SYNONYM RESTROOM BATHROOM LAVATORY TOILET ROOM)
|
||||
(GENERIC GENERIC-REST-ROOM-F)
|
||||
(EAST TO PLATFORM-B)
|
||||
(OUT TO PLATFORM-B)
|
||||
(GLOBAL TOILET SINK TOWEL-FIXTURE TOWEL-LOOP MIRROR ;PAPER-FIXTURE)
|
||||
(LINE 4)
|
||||
(STATION PLATFORM-B)
|
||||
(ACTION REST-ROOM-STATION-F)>
|
||||
|
||||
<ROUTINE REST-ROOM-STATION-TEST (RARG)
|
||||
<COND (<NOT <EQUAL? <LOC ,CONTACT> ,REST-ROOM-MEN ,REST-ROOM-WOMEN>>
|
||||
<RFALSE>)
|
||||
(<SPY?>
|
||||
<COND (<==? .RARG ,M-OTHER> <RTRUE>)
|
||||
(T <RFALSE>)>)
|
||||
(T ;<ZERO? ,EGO>
|
||||
<COND (<==? .RARG ,M-FLASH> <RTRUE>)
|
||||
(T <RFALSE>)>)
|
||||
;(T <RFALSE>)>>
|
||||
|
||||
<ROUTINE REST-ROOM-STATION-F ("OPTIONAL" (RARG <>) "AUX" X Y N V)
|
||||
<COND (<==? .RARG ,M-ENTER>
|
||||
<MOVE ,PAPER-FIXTURE ,HERE>
|
||||
<RFALSE>)
|
||||
(<REST-ROOM-STATION-TEST .RARG>
|
||||
<SET X <GET ,EXTRA-TABLE <RANDOM-PER-VAR ,CONTACT-MAX>>>
|
||||
<COND (<NOT <MOVE-EXTRA? .X ,LIMBO-FWD 1>>
|
||||
<SET N ,CONTACT-MAX>
|
||||
<REPEAT ()
|
||||
<SET X <GET ,EXTRA-TABLE .N>>
|
||||
<COND (<MOVE-EXTRA? .X ,LIMBO-FWD 1>
|
||||
<RETURN>)
|
||||
(<DLESS? N 1>
|
||||
<V-FOO>)>>)>
|
||||
<SET V <VISIBLE? ,CONTACT>>
|
||||
<COND (<==? .RARG ,M-FLASH> ;<AND ,PASSOBJECT-GIVEN ,PASSWORD-GIVEN>
|
||||
<GUARD-NOTICES>
|
||||
<FCLEAR ,MCGUFFIN ,NDESCBIT>
|
||||
<MOVE ,MCGUFFIN ,PLAYER>
|
||||
<SET-PASSES 3>
|
||||
<FSET ,MCGUFFIN ,TAKEBIT>
|
||||
<TELL CHE ,CONTACT give " you the " D ,MCGUFFIN>)
|
||||
(T
|
||||
<SETG TRAVELER-CHECKED-CASE <>>
|
||||
<SET N 0>
|
||||
<SET Y <GET ,BRIEFCASE-TBL 0>>
|
||||
<REPEAT ()
|
||||
<COND (<IGRTR? N .Y>
|
||||
<MOVE ,MCGUFFIN ,BAD-SPY>
|
||||
<RETURN>)
|
||||
(<ZERO? <GET ,BRIEFCASE-TBL .N>>
|
||||
<PUT ,BRIEFCASE-TBL .N ,MCGUFFIN>
|
||||
<RETURN>)>>
|
||||
<SET-PASSES 2>
|
||||
<COND (.V
|
||||
<TELL
|
||||
CTHE ,BAD-SPY " enters, looking very nervous. " CTHE ,CONTACT " gives
|
||||
something to">
|
||||
<THIS-IS-IT ,BAD-SPY>
|
||||
<TELL HIM ,BAD-SPY>)>)>
|
||||
<COND (.V
|
||||
<TELL " and whispers, ">
|
||||
<COND (<SPY?> ;<NOT <ZERO? ,EGO>>
|
||||
<PRODUCE-GIBBERISH 4>
|
||||
<TELL
|
||||
"(Fortunately, you can translate two phrases: \"" D ,PASSWORD "\" and \""
|
||||
D ,PASSOBJECT ".\")" CR>)
|
||||
(T
|
||||
<TELL
|
||||
"\"No time. Meet agent, "A .X ", in Gola; display " A ,PASSOBJECT "; use word">
|
||||
<COND (<EQUAL? ,PASSWORD ,CAMERA ,HANKY ,SCARF>
|
||||
<TELL "s">)>
|
||||
<TELL " '" D ,PASSWORD "'.\" ">)>
|
||||
<TELL "Then" HE ,CONTACT " is gone." CR>)>
|
||||
<NEW-CONTACT .X>
|
||||
<COND (<OR <==? .RARG ,M-FLASH> .V>
|
||||
<RTRUE>)>)>>
|
||||
|
||||
<ROUTINE NEW-CONTACT (X)
|
||||
<FCLEAR ,CONTACT ,TOUCHBIT>
|
||||
<PUTP ,CONTACT ,P?LDESC 0>
|
||||
<MOVE ,CONTACT ,LIMBO-FWD>
|
||||
;<MOVE ,CONTACT ,GLOBAL-OBJECTS>
|
||||
<PUTP ,CONTACT ,P?ACTION ,CONTACT-DEFAULT-F>
|
||||
<SETG CONTACT .X>
|
||||
<SETG CONTACT-DEFAULT-F <GETP ,CONTACT ,P?ACTION>>
|
||||
<PUTP ,CONTACT ,P?ACTION ,CONTACT-F>>
|
||||
|
||||
<ROOM CAFE
|
||||
(LOC ROOMS)
|
||||
(CAR 3)
|
||||
(FLAGS ONBIT ;RLANDBIT)
|
||||
(DESC "cafe")
|
||||
(SYNONYM CAFE)
|
||||
(LDESC
|
||||
"Through a blue haze of cigarette smoke, you can see travelers
|
||||
sipping their food while waiting for their trains."
|
||||
;"The place is crowded with people. But you can see a few items for sale
|
||||
besides food.")
|
||||
(SOUTH TO WAITING-ROOM)
|
||||
(OUT TO WAITING-ROOM)
|
||||
(GLOBAL CROWD MENU ITEMS CHAIR)
|
||||
(LINE 5)
|
||||
(STATION CAFE)
|
||||
;(ACTION CAFE-F)>
|
||||
|
||||
;<ROUTINE CAFE-F ("OPTIONAL" (RARG <>))
|
||||
<COND (<==? .RARG ,M-END>
|
||||
<RFALSE>)
|
||||
;(<VERB? BUY>
|
||||
<COND (<DOBJ? DRINK-GLOBAL FOOD FOOD-GLOBAL FOOD-1 FOOD-2 FOOD-CAFE>
|
||||
<RFALSE>)
|
||||
;(<ZMEMQ ,PRSO ,PASS-TABLE> <RFALSE>)
|
||||
(T <TELL "You can't buy " A ,PRSO " here." CR>)>)>>
|
||||
|
||||
<OBJECT COUNTER-CAFE
|
||||
(LOC CAFE)
|
||||
(DESC "counter")
|
||||
(SYNONYM COUNTER)
|
||||
(FLAGS SEARCHBIT SURFACEBIT OPENBIT NDESCBIT ;VEHBIT)
|
||||
(CAPACITY 200)
|
||||
(ACTION COUNTER-CAFE-F)>
|
||||
|
||||
<ROUTINE COUNTER-CAFE-F ()
|
||||
<COND (<VERB? SIT-AT>
|
||||
<PERFORM ,V?SIT ,CHAIR ;,SEAT-CAFE>
|
||||
<RTRUE>)>>
|
||||
|
||||
;<OBJECT SEAT-CAFE
|
||||
(LOC CAFE)
|
||||
(SYNONYM SEAT CHAIR BENCH STOOL)
|
||||
(GENERIC GENERIC-SEAT-F)
|
||||
(FLAGS SURFACEBIT OPENBIT NDESCBIT VEHBIT)
|
||||
(CAPACITY 100)
|
||||
(DESC "stool")>
|
||||
|
||||
<ROOM TICKET-AREA
|
||||
(LOC ROOMS)
|
||||
(CAR 3)
|
||||
(FLAGS ONBIT ;RLANDBIT)
|
||||
(DESC "ticket area")
|
||||
(ADJECTIVE TICKET)
|
||||
(SYNONYM AREA COUNTER WINDOW PLACE)
|
||||
;(LDESC "")
|
||||
(NORTH TO WAITING-ROOM)
|
||||
(OUT TO WAITING-ROOM)
|
||||
(LINE 5)
|
||||
(STATION WAITING-ROOM)
|
||||
(ACTION TICKET-AREA-F)>
|
||||
|
||||
<ROUTINE TICKET-AREA-F ("OPTIONAL" (RARG <>))
|
||||
<COND (<==? .RARG ,M-ENTER>
|
||||
<MOVE ,CLERK ,TICKET-AREA>
|
||||
<RFALSE>)>>
|
||||
|
||||
<OBJECT COUNTER-TICKET
|
||||
(LOC TICKET-AREA)
|
||||
(DESC "counter")
|
||||
(SYNONYM COUNTER)
|
||||
(FLAGS SURFACEBIT NDESCBIT)
|
||||
(CAPACITY 200)>
|
||||
|
||||
<ROOM SIDEWALK
|
||||
(LOC ROOMS)
|
||||
(CAR 3)
|
||||
(FLAGS ONBIT ;RLANDBIT)
|
||||
(DESC "sidewalk")
|
||||
(SYNONYM SIDEWALK STREET)
|
||||
(LDESC "The station faces a small square, crowded with people.")
|
||||
(NORTH PER TOWN-F)
|
||||
(WEST PER TOWN-F)
|
||||
(SOUTH PER TOWN-F)
|
||||
(EAST TO WAITING-ROOM)
|
||||
(IN TO WAITING-ROOM)
|
||||
(GLOBAL CROWD)
|
||||
(LINE 5)
|
||||
(STATION WAITING-ROOM)
|
||||
(ACTION SIDEWALK-F)>
|
||||
|
||||
<ROUTINE TOWN-F ()
|
||||
<TELL "As you start to venture into the town," HE ,OFFICER>
|
||||
<THIS-IS-IT ,OFFICER>
|
||||
<TELL
|
||||
" recognizes you as an unauthorized foreigner and takes a step in your
|
||||
direction. As you stop walking, so does" HE ,OFFICER "." CR>
|
||||
<FSET ,OFFICER ,SEENBIT>
|
||||
<RFALSE>>
|
||||
|
||||
<ROUTINE SIDEWALK-F ("OPTIONAL" (RARG <>))
|
||||
<COND (<EQUAL? .RARG ,M-END>
|
||||
<CROWD-F T>
|
||||
<RFALSE>)
|
||||
(.RARG <RFALSE>)
|
||||
(<VERB? EXAMINE ;LOOK-INSIDE>
|
||||
<COND (<NOT <IN? ,CONTACT ,HERE>>
|
||||
<CALL-FOR-EXTRA ,HERE>)>
|
||||
<RFALSE>)>>
|
||||
|
||||
<GLOBAL STATION-ROOMS
|
||||
<PLTABLE PLATFORM-A PLATFORM-B PLATFORM-C PLATFORM-D PLATFORM-E
|
||||
PLATFORM-E PLATFORM-E ;"for last cars on long train"
|
||||
WAITING-ROOM CAFE TICKET-AREA SIDEWALK
|
||||
LUGGAGE-ROOM REST-ROOM-MEN REST-ROOM-WOMEN>>
|
|
@ -0,0 +1,2 @@
|
|||
|
||||
.ENDI
|
|
@ -0,0 +1,848 @@
|
|||
"SYNTAX for CHECKPOINT
|
||||
Copyright (C) 1985 Infocom, Inc. All rights reserved."
|
||||
|
||||
<SYNONYM PHOTO PICTURE PHOTOGRAPH SNAPSHOT>
|
||||
<SYNONYM WITH USING BY>
|
||||
<SYNONYM THROUGH THRU>
|
||||
<SYNONYM IN INSIDE INTO>
|
||||
<SYNONYM ON ONTO>
|
||||
<SYNONYM OUT OUTSIDE>
|
||||
<SYNONYM UNDER BELOW UNDERNEATH BENEATH>
|
||||
|
||||
<SYNONYM NORTH N FORWARD FRONT F FORE>
|
||||
<SYNONYM EAST E RIGHT>
|
||||
<SYNONYM SOUTH S REAR R AFT ;"BACK B">
|
||||
<SYNONYM WEST W LEFT>
|
||||
<SYNONYM DOWN D>
|
||||
<SYNONYM UP U>
|
||||
<SYNONYM NW NORTHWEST>
|
||||
<SYNONYM NE NORTHEAST>
|
||||
<SYNONYM SW SOUTHWEST>
|
||||
<SYNONYM SE SOUTHEAST>
|
||||
|
||||
<BUZZ A AN THE AND OF THEN \. \, \" \! \?
|
||||
NOW SOON WELL THERE PLEASE MAYBE BACK
|
||||
CAREFULLY CLOSELY ;THOROUGHLY QUIETLY SLOWLY QUICKLY BRIEFLY
|
||||
NE SE SW NW ALL BOTH BUT EXCEPT FUCKING CHOMPING>
|
||||
|
||||
<SYNTAX $ID = V-$ID>
|
||||
<SYNTAX $VERIFY = V-$VERIFY>
|
||||
<SYNTAX $VERIFY OBJECT = V-$VERIFY>
|
||||
|
||||
<SYNTAX \#DBG = V-DEBUG>
|
||||
<SYNTAX \#DBG OBJECT = V-DEBUG>
|
||||
;<SYNTAX \#AGAIN = V-$AGAIN>
|
||||
<SYNTAX \#ANSWER = V-$ANSWER>
|
||||
"<SYNTAX \#CUSTOM = V-$CUSTOMS>"
|
||||
<SYNTAX \#FCLEAR OBJECT OBJECT = V-$FCLEAR>
|
||||
<SYNONYM \#QFSET \#FSET?>
|
||||
<SYNTAX \#QFSET OBJECT OBJECT = V-$QFSET>
|
||||
<SYNTAX \#FSET OBJECT OBJECT = V-$FSET>
|
||||
<SYNTAX \#GOAL = V-$GOAL>
|
||||
<SYNTAX \#QUEUE = V-$QUEUE>
|
||||
<SYNTAX \#STATION OBJECT = V-$STATION>
|
||||
<SYNTAX \#WHERE = V-$WHERE>
|
||||
<SYNTAX \#WHERE OBJECT = V-$WHERE>
|
||||
<SYNTAX \#WHERE OBJECT OBJECT = V-$WHERE>
|
||||
|
||||
<SYNONYM POINT AIM>
|
||||
<SYNTAX POINT OBJECT AT OBJECT = V-AIM ;PRE-AIM>
|
||||
<SYNTAX POINT OBJECT TO OBJECT = V-AIM ;PRE-AIM>
|
||||
<SYNTAX POINT OBJECT OBJECT = V-AIM ;PRE-AIM>
|
||||
<SYNTAX POINT AT OBJECT = V-SSHOW PRE-SSHOW
|
||||
;"V-ASK-CONTEXT-FOR PRE-ASK-CONTEXT-FOR">
|
||||
<SYNTAX POINT AT OBJECT WITH OBJECT = V-SAIM PRE-SAIM>
|
||||
<SYNTAX POINT TO OBJECT = V-SSHOW PRE-SSHOW
|
||||
;"V-ASK-CONTEXT-FOR PRE-ASK-CONTEXT-FOR">
|
||||
|
||||
<SYNONYM CHECK TEST ANALYSE ANALYZE ;DUST TROUBLESHOOT>
|
||||
<SYNTAX CHECK OBJECT = V-ANALYZE PRE-ANALYZE>
|
||||
<SYNTAX CHECK OBJECT ;(FIND RMUNGBIT) FOR OBJECT = V-ANALYZE PRE-ANALYZE>
|
||||
<SYNTAX CHECK OUT OBJECT = V-ANALYZE PRE-ANALYZE>
|
||||
<SYNTAX CHECK UNDER OBJECT = V-LOOK-UNDER>
|
||||
<SYNTAX CHECK OBJECT IN OBJECT = V-LOOK-UP>
|
||||
<SYNTAX CHECK OBJECT ON OBJECT = V-SANALYZE PRE-SANALYZE>
|
||||
|
||||
<SYNONYM ANSWER REPLY RESPOND>
|
||||
<SYNTAX ANSWER = V-ANSWER>
|
||||
<SYNTAX ANSWER OBJECT = V-REPLY>
|
||||
|
||||
"<SYNONYM ARREST CAPTURE>
|
||||
<SYNTAX ARREST OBJECT (FIND PERSONBIT) = V-ARREST PRE-ARREST>
|
||||
<SYNTAX ARREST OBJECT FOR OBJECT = V-ARREST PRE-ARREST>"
|
||||
|
||||
<SYNONYM ASK QUESTION INQUIRE CONSULT>
|
||||
<SYNTAX ASK OBJECT (FIND PERSONBIT) = V-ASK PRE-ASK>
|
||||
<SYNTAX ASK ABOUT OBJECT = V-ASK-CONTEXT-ABOUT PRE-ASK-CONTEXT-ABOUT>
|
||||
<SYNTAX ASK FOR OBJECT = V-ASK-CONTEXT-FOR PRE-ASK-CONTEXT-FOR>
|
||||
<SYNTAX ASK OBJECT ABOUT OBJECT = V-ASK-ABOUT PRE-ASK-ABOUT>
|
||||
<SYNTAX ASK OBJECT FOR OBJECT = V-ASK-FOR PRE-ASK-FOR>
|
||||
|
||||
<SYNONYM ATTACK FIGHT RAPE MOLEST ASSAULT REPEL>
|
||||
<SYNTAX ATTACK OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
|
||||
<SYNTAX ATTACK OFF OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
|
||||
<SYNTAX ATTACK OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT ;(FIND WEAPONBIT) (HELD ;CARRIED HAVE TAKE)
|
||||
= V-ATTACK>
|
||||
|
||||
<SYNTAX BRIEF = V-BRIEF>
|
||||
|
||||
<SYNTAX BRIBE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (MANY HELD HAVE TAKE)
|
||||
= V-SGIVE PRE-SGIVE>
|
||||
|
||||
<SYNONYM BRING FETCH>
|
||||
<SYNTAX BRING OBJECT = V-BRING PRE-BRING>
|
||||
<SYNTAX BRING OBJECT OBJECT = V-SBRING PRE-SBRING>
|
||||
<SYNTAX BRING OBJECT TO OBJECT = V-BRING PRE-BRING>
|
||||
|
||||
<SYNONYM BRUSH CLEAN WIPE>
|
||||
<SYNTAX BRUSH OBJECT ;(HELD CARRIED ON-GROUND IN-ROOM) = V-BRUSH>
|
||||
<SYNTAX BRUSH OBJECT ;(HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (HELD CARRIED TAKE HAVE)
|
||||
= V-BRUSH>
|
||||
"<SYNTAX BRUSH OFF OBJECT (HELD CARRIED) = V-BRUSH>"
|
||||
<SYNTAX BRUSH UP OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
|
||||
= V-TAKE PRE-TAKE>
|
||||
|
||||
<SYNONYM BURN INCINERATE IGNITE>
|
||||
<SYNTAX BURN OBJECT ;(FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE TAKE)
|
||||
WITH OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE TAKE)
|
||||
= V-BURN PRE-BURN>
|
||||
<SYNTAX BURN DOWN OBJECT (HELD CARRIED ON-GROUND IN-ROOM HAVE TAKE)
|
||||
WITH OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE TAKE)
|
||||
= V-BURN PRE-BURN>
|
||||
|
||||
<SYNONYM BUY PURCHASE ORDER>
|
||||
<SYNTAX BUY OBJECT (IN-ROOM ON-GROUND) (MANY)= V-BUY PRE-BUY>
|
||||
<SYNTAX BUY OBJECT (IN-ROOM ON-GROUND) (MANY)
|
||||
FROM OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-BUY PRE-BUY>
|
||||
<SYNTAX BUY OBJECT FOR OBJECT = V-BUY-TICKET PRE-BUY-TICKET>
|
||||
<SYNTAX BUY OBJECT TO OBJECT = V-BUY-TICKET PRE-BUY-TICKET>
|
||||
|
||||
<SYNONYM CALL ;HEY PHONE SUMMON SIGNAL CONTACT>
|
||||
"<SYNTAX CALL = V-CALL-LOSE>"
|
||||
<SYNTAX $CALL OBJECT = V-$CALL>
|
||||
<SYNTAX CALL OBJECT = V-PHONE PRE-PHONE>
|
||||
<SYNTAX CALL OBJECT BY OBJECT = V-PHONE PRE-PHONE>
|
||||
"<SYNTAX CALL OBJECT FOR OBJECT = V-CALL-FOR>"
|
||||
<SYNTAX CALL OBJECT ON OBJECT = V-PHONE PRE-PHONE>
|
||||
<SYNTAX CALL FOR OBJECT = V-PHONE PRE-PHONE>
|
||||
<SYNTAX CALL TO OBJECT = V-$CALL>
|
||||
<SYNTAX CALL UP OBJECT = V-PHONE PRE-PHONE>
|
||||
|
||||
<SYNONYM CHANGE ALTER>
|
||||
<SYNTAX CHANGE OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
WITH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-CHANGE>
|
||||
|
||||
<SYNONYM CLIMB BOARD>
|
||||
<SYNTAX CLIMB OBJECT (ON-GROUND IN-ROOM) = V-BOARD> "(FIND CLIMBBIT)"
|
||||
<SYNTAX CLIMB DOWN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>"(FIND CLIMBBIT)"
|
||||
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD>
|
||||
<SYNTAX CLIMB OFF OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
|
||||
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
|
||||
<SYNTAX CLIMB OUT OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
|
||||
<SYNTAX CLIMB THROUGH OBJECT (FIND DOORBIT) = V-THROUGH ;PRE-THROUGH>
|
||||
<SYNTAX CLIMB UP OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP> "(FIND CLIMBBIT)"
|
||||
|
||||
<SYNONYM CLOSE DRAW>
|
||||
<SYNTAX CLOSE OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-CLOSE>
|
||||
<SYNTAX CLOSE OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT
|
||||
= V-CLOSE>
|
||||
|
||||
<SYNTAX COME OBJECT = V-WALK-TO ;V-COME>
|
||||
<SYNTAX COME TO OBJECT = V-WALK-TO ;V-COME>
|
||||
<SYNTAX COME WITH OBJECT = V-FOLLOW>
|
||||
<SYNTAX COME WITH OBJECT TO OBJECT = V-COME-WITH PRE-COME-WITH>
|
||||
|
||||
"<SYNONYM COMPARE MATCH>
|
||||
<SYNTAX COMPARE OBJECT (MANY) = V-COMPARE PRE-COMPARE>
|
||||
<SYNTAX COMPARE OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
TO OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-COMPARE>
|
||||
<SYNTAX COMPARE OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-COMPARE>"
|
||||
|
||||
<SYNTAX CONFRONT OBJECT (FIND PERSONBIT) WITH OBJECT = V-CONFRONT>
|
||||
|
||||
<SYNTAX COUNT OBJECT = V-COUNT>
|
||||
|
||||
<SYNONYM CUT ;INTERRUPT SLICE PIERCE>
|
||||
<SYNTAX CUT OBJECT WITH OBJECT (FIND WEAPONBIT) (CARRIED HELD) = V-CUT>
|
||||
|
||||
<SYNONYM DAMAGE DESTROY BREAK SMASH CRUSH CRUMBLE KICK>
|
||||
<SYNTAX DAMAGE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-MUNG>
|
||||
<SYNTAX DAMAGE UP OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-MUNG>
|
||||
<SYNTAX DAMAGE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH OBJECT (HELD CARRIED HAVE TAKE)
|
||||
= V-MUNG>
|
||||
<SYNTAX DAMAGE DOWN OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH OBJECT (HELD CARRIED HAVE TAKE)
|
||||
= V-MUNG>
|
||||
|
||||
"<SYNONYM DEVELOP PROCESS>
|
||||
<SYNTAX DEVELOP OBJECT = V-DEVELOP>"
|
||||
|
||||
<SYNTAX DIAGNOSE = V-DIAGNOSE>
|
||||
<SYNTAX DIAGNOSE OBJECT = V-DIAGNOSE>
|
||||
|
||||
<SYNTAX DISCUSS OBJECT = V-DISCUSS PRE-DISCUSS>
|
||||
<SYNTAX DISCUSS OBJECT WITH OBJECT = V-DISCUSS PRE-DISCUSS>
|
||||
|
||||
<SYNONYM DRINK SWALLOW SIP>
|
||||
<SYNTAX DRINK OBJECT ;(FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-DRINK>
|
||||
|
||||
<SYNONYM DROP LOWER>
|
||||
<SYNTAX DROP OBJECT (HELD MANY ;HAVE) = V-DROP>
|
||||
<SYNTAX DROP OBJECT (CARRIED HELD MANY HAVE TAKE) DOWN ;ON OBJECT
|
||||
= V-PUT PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (CARRIED HELD MANY HAVE TAKE) IN OBJECT
|
||||
= V-PUT-IN PRE-PUT-IN>
|
||||
<SYNTAX DROP OBJECT (CARRIED HELD MANY HAVE TAKE) ON OBJECT
|
||||
= V-PUT PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (CARRIED HELD MANY HAVE TAKE)
|
||||
THROUGH OBJECT (ON-GROUND IN-ROOM)
|
||||
= V-THROW-THROUGH>
|
||||
|
||||
<SYNONYM EAT DINE TASTE CONSUME>
|
||||
<SYNTAX EAT OBJECT ;(FIND FOODBIT)
|
||||
(HELD CARRIED ON-GROUND IN-ROOM HAVE TAKE ;MANY)
|
||||
= V-EAT>
|
||||
|
||||
<SYNONYM EMPTY DRAIN BLOW>
|
||||
<SYNTAX EMPTY OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-EMPTY PRE-EMPTY>
|
||||
|
||||
<SYNTAX ENTER = V-ENTER>
|
||||
<SYNTAX ENTER OBJECT = V-THROUGH ;PRE-THROUGH>
|
||||
|
||||
<SYNONYM EXAMINE EXAMIN DESCRIBE INSPECT SCRUTINIZE STUDY OBSERVE EXPLORE>
|
||||
<SYNTAX EXAMINE OBJECT (FIND READBIT) (HELD CARRIED IN-ROOM ON-GROUND ;MANY)
|
||||
= V-EXAMINE PRE-EXAMINE>
|
||||
<SYNTAX EXAMINE OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
THROUGH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNTAX EXAMINE OBJECT ;(FIND READBIT) (HELD CARRIED IN-ROOM ON-GROUND ;MANY)
|
||||
WITH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNTAX EXAMINE UNDER OBJECT = V-LOOK-UNDER>
|
||||
|
||||
<SYNONYM EXTINGUISH DOUSE>
|
||||
<SYNTAX EXTINGUISH
|
||||
OBJECT (FIND LIGHTBIT) (MANY HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
= V-LAMP-OFF>
|
||||
|
||||
<SYNONYM HEAD FACE>
|
||||
<SYNTAX HEAD OBJECT = V-FACE>
|
||||
"<SYNTAX HEAD TO OBJECT = V-FACE>"
|
||||
<SYNTAX \#FACE = V-$FACE>
|
||||
|
||||
<SYNONYM FAINT SLEEP NAP SNOOZE>
|
||||
<SYNTAX FAINT = V-FAINT>
|
||||
|
||||
<SYNONYM FILL FLOOD>
|
||||
<SYNTAX FILL OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-FILL PRE-FILL>
|
||||
<SYNTAX FILL OBJECT ;(FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT
|
||||
= V-FILL PRE-FILL>
|
||||
|
||||
<SYNONYM FIND DETECT LOCATE>
|
||||
<SYNTAX FIND OBJECT (;"HELD CARRIED HAVE" MANY) = V-FIND PRE-FIND>
|
||||
<SYNTAX FIND OBJECT (;"HELD CARRIED HAVE" MANY) WITH OBJECT = V-FIND-WITH>
|
||||
<SYNTAX FIND OBJECT ;(HELD CARRIED HAVE) IN OBJECT
|
||||
= V-SSEARCH-FOR PRE-SSEARCH-FOR>
|
||||
<SYNTAX FIND OBJECT ;(HELD CARRIED HAVE) ON OBJECT
|
||||
= V-SSEARCH-FOR PRE-SSEARCH-FOR>
|
||||
<SYNTAX FIND OUT OBJECT = V-ASK-CONTEXT-ABOUT PRE-ASK-CONTEXT-ABOUT>
|
||||
|
||||
<SYNONYM FIX REPAIR>
|
||||
<SYNTAX FIX OBJECT = V-FIX>
|
||||
<SYNTAX FIX OBJECT WITH OBJECT ;(FIND TOOLBIT) = V-FIX>
|
||||
|
||||
<SYNTAX FLUSH OBJECT (ON-GROUND IN-ROOM) (FIND VEHBIT) = V-FLUSH>
|
||||
<SYNTAX FLUSH AWAY OBJECT (HELD CARRIED TAKE HAVE) = V-FLUSH-AWAY>
|
||||
<SYNTAX FLUSH OBJECT (HELD CARRIED TAKE HAVE)
|
||||
DOWN OBJECT (ON-GROUND IN-ROOM) (FIND VEHBIT) = V-FLUSH-DOWN>
|
||||
|
||||
<SYNONYM FOLLOW PURSUE CHASE TRACE>
|
||||
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
|
||||
<SYNTAX FOLLOW OBJECT OBJECT = V-FOLLOW> "Follow me north."
|
||||
<SYNTAX FOLLOW OBJECT TO OBJECT = V-FOLLOW> "F. me to office."
|
||||
|
||||
<SYNTAX GESTURE = V-GESTURE PRE-GESTURE>
|
||||
"? <SYNTAX GESTURE FOR OBJECT = V-GESTURE-FOR PRE-GESTURE-FOR>"
|
||||
<SYNTAX GESTURE TO OBJECT (FIND PERSONBIT) = V-GESTURE PRE-GESTURE>
|
||||
|
||||
<SYNTAX GET OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (IN-ROOM CARRIED MANY)
|
||||
FROM OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (IN-ROOM CARRIED MANY)
|
||||
IN OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (CARRIED IN-ROOM MANY)
|
||||
OFF OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (CARRIED IN-ROOM MANY)
|
||||
OUT ;OF OBJECT ;(FIND CONTBIT)
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (MANY TAKE) TO OBJECT = V-TAKE-TO>
|
||||
<SYNTAX GET OBJECT ;(FIND TAKEBIT) (ON-GROUND MANY)
|
||||
WITH OBJECT = V-TAKE-WITH PRE-TAKE-WITH>
|
||||
<SYNTAX GET IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD>
|
||||
<SYNTAX GET OFF OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
|
||||
<SYNTAX GET ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
|
||||
<SYNTAX GET OUT ;OF OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-DISEMBARK>
|
||||
<SYNTAX GET RID ;OF OBJECT = V-DROP>
|
||||
<SYNTAX GET UP OBJECT (FIND RMUNGBIT) = V-STAND>
|
||||
|
||||
<SYNONYM HAND GIVE DONATE OFFER ;"ASSIGN" FEED>
|
||||
<SYNTAX HAND UP OBJECT (FIND RMUNGBIT) = V-QUIT>
|
||||
<SYNTAX HAND OBJECT (MANY HELD HAVE TAKE ;"CARRIED ON-GROUND IN-ROOM")
|
||||
TO OBJECT (FIND PERSONBIT) (ON-GROUND)
|
||||
= V-GIVE PRE-GIVE>
|
||||
<SYNTAX HAND OBJECT ;(FIND PERSONBIT) (ON-GROUND)
|
||||
OBJECT (MANY HELD HAVE TAKE)
|
||||
= V-SGIVE PRE-SGIVE>
|
||||
|
||||
<SYNONYM GOODBYE GOOD-BYE BYE>
|
||||
<SYNTAX GOODBYE = V-GOODBYE PRE-GOODBYE>
|
||||
<SYNTAX GOODBYE OBJECT = V-GOODBYE PRE-GOODBYE>
|
||||
|
||||
<SYNTAX HANG UP OBJECT (FIND RMUNGBIT) = V-HANGUP PRE-HANGUP>
|
||||
|
||||
<SYNTAX HEAT OBJECT (HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
WITH OBJECT ;(FIND FLAMEBIT) (HELD CARRIED TAKE HAVE)
|
||||
= V-HEAT PRE-HEAT>
|
||||
|
||||
<SYNONYM HELLO HI GREET GREETINGS HOWDY>
|
||||
<SYNTAX HELLO = V-HELLO PRE-HELLO>
|
||||
<SYNTAX HELLO OBJECT = V-HELLO PRE-HELLO>
|
||||
|
||||
"<SYNTAX HELP = V-HELP>"
|
||||
<SYNTAX HELP OBJECT (FIND PERSONBIT) = V-HELP>
|
||||
|
||||
<SYNONYM HIDE ;CROUCH>
|
||||
<SYNTAX HIDE = V-HIDE>
|
||||
<SYNTAX HIDE BEHIND OBJECT = V-HIDE-BEHIND>
|
||||
<SYNTAX HIDE IN OBJECT = V-THROUGH ;PRE-THROUGH>
|
||||
<SYNTAX HIDE ON OBJECT = V-THROUGH ;PRE-THROUGH>
|
||||
<SYNTAX HIDE UNDER OBJECT = V-THROUGH ;PRE-THROUGH>
|
||||
<SYNTAX HIDE OBJECT (CARRIED HELD MANY HAVE TAKE) UNDER OBJECT
|
||||
= V-PUT-UNDER>
|
||||
<SYNTAX HIDE OBJECT (CARRIED HELD MANY HAVE TAKE) BEHIND OBJECT
|
||||
= V-HIDE-BEHIND>
|
||||
<SYNTAX HIDE OBJECT (CARRIED HELD MANY HAVE TAKE) IN OBJECT
|
||||
= V-PUT-IN PRE-PUT-IN>
|
||||
|
||||
<SYNTAX HOLD OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX HOLD OBJECT (IN-ROOM ON-GROUND CARRIED HELD TAKE HAVE)
|
||||
OVER OBJECT (IN-ROOM ON-GROUND CARRIED HELD TAKE HAVE)
|
||||
= V-HOLD-OVER PRE-HOLD-OVER>
|
||||
<SYNTAX HOLD OBJECT (IN-ROOM CARRIED TAKE HAVE) TO OBJECT = V-HOLD-UP>
|
||||
<SYNTAX HOLD OBJECT (IN-ROOM ON-GROUND CARRIED HELD TAKE HAVE)
|
||||
UNDER OBJECT(IN-ROOM ON-GROUND CARRIED HELD TAKE HAVE) = V-HOLD-UNDER>
|
||||
<SYNTAX HOLD OBJECT (IN-ROOM CARRIED TAKE HAVE) UP ;TO OBJECT = V-HOLD-UP>
|
||||
<SYNTAX HOLD UP OBJECT (IN-ROOM CARRIED TAKE HAVE) = V-HOLD-UP>
|
||||
|
||||
"<SYNONYM I INVENT>"
|
||||
<SYNTAX I = V-INVENTORY>
|
||||
<SYNTAX INVENT = V-INVENTORY>
|
||||
|
||||
<SYNTAX JUMP = V-LEAP>
|
||||
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP FROM OBJECT = V-DISEMBARK>
|
||||
<SYNTAX JUMP IN OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP OFF OBJECT = V-DISEMBARK>
|
||||
<SYNTAX JUMP OVER OBJECT = V-LEAP>
|
||||
|
||||
<SYNONYM KILL MURDER STAB WASTE STRANGLE>
|
||||
"<SYNTAX KILL OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-KILL>"
|
||||
<SYNTAX KILL OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE TAKE)
|
||||
= V-KILL>
|
||||
|
||||
<SYNONYM KISS HUG>
|
||||
<SYNTAX KISS OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-KISS>
|
||||
|
||||
<SYNONYM KNOCK RAP>
|
||||
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
|
||||
<SYNTAX KNOCK AT OBJECT = V-KNOCK>
|
||||
<SYNTAX KNOCK DOWN OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
|
||||
<SYNTAX KNOCK OFF OBJECT (FIND PERSONBIT) (IN-ROOM ON-GROUND) = V-PUSH>
|
||||
<SYNTAX KNOCK OUT OBJECT (FIND PERSONBIT) (IN-ROOM ON-GROUND) = V-SLAP>
|
||||
<SYNTAX KNOCK OBJECT (IN-ROOM ON-GROUND MANY) OFF ;OF OBJECT (FIND RMUNGBIT)
|
||||
= V-PUSH>
|
||||
<SYNTAX KNOCK OBJECT ;(FIND PERSONBIT) (IN-ROOM ON-GROUND) ON OBJECT = V-SLAP>
|
||||
|
||||
<SYNTAX LEARN OBJECT = V-LEARN>
|
||||
|
||||
<SYNONYM LEAVE EMERGE ABANDON EVACUATE DETRAIN DEBARK DISEMBARK EXIT SCRAM>
|
||||
<SYNTAX LEAVE = V-LEAVE>
|
||||
<SYNTAX LEAVE OBJECT = V-LEAVE>
|
||||
<SYNTAX LEAVE FROM OBJECT = V-LEAVE>
|
||||
|
||||
<SYNTAX LIE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-LIE PRE-LIE>
|
||||
<SYNTAX LIE DOWN ;ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-LIE PRE-LIE>
|
||||
|
||||
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT)(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
= V-LAMP-ON>
|
||||
<SYNTAX LIGHT OBJECT (FIND LIGHTBIT)(HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
WITH OBJECT ;(FIND FLAMEBIT) (HELD CARRIED TAKE HAVE)
|
||||
= V-BURN PRE-BURN>
|
||||
|
||||
<SYNTAX LISTEN TO OBJECT = V-LISTEN>
|
||||
<SYNTAX LISTEN AT OBJECT = V-LISTEN>
|
||||
|
||||
<SYNTAX LOAD OBJECT (HELD HAVE TAKE) WITH OBJECT (CARRIED HELD HAVE TAKE)
|
||||
= V-SPUT-IN PRE-SPUT-IN>
|
||||
|
||||
<SYNTAX LOCK OBJECT (ON-GROUND IN-ROOM) = V-LOCK>
|
||||
|
||||
<SYNONYM LOOK L STARE GAZE PEEK SEE>
|
||||
<SYNTAX LOOK = V-LOOK>
|
||||
<SYNTAX LOOK OBJECT = V-CHASTISE>
|
||||
<SYNTAX LOOK AROUND OBJECT (FIND RMUNGBIT) = V-LOOK>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY)
|
||||
= V-EXAMINE PRE-EXAMINE>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED MANY)
|
||||
THROUGH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED MANY)
|
||||
WITH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND>
|
||||
<SYNTAX LOOK DOWN OBJECT (FIND RMUNGBIT) = V-LOOK-DOWN>
|
||||
<SYNTAX LOOK FOR OBJECT (MANY) = V-FIND PRE-FIND>
|
||||
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM) (FIND RMUNGBIT)
|
||||
= V-LOOK-INSIDE PRE-LOOK-INSIDE>
|
||||
"<SYNTAX LOOK NEAR OBJECT = V-SEARCH-AROUND>"
|
||||
<SYNTAX LOOK ON OBJECT (ON-GROUND IN-ROOM) = V-LOOK-ON>
|
||||
<SYNTAX LOOK OUT OBJECT (FIND RMUNGBIT) = V-LOOK-OUTSIDE>
|
||||
<SYNTAX LOOK OVER OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-EXAMINE PRE-EXAMINE>
|
||||
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER>
|
||||
<SYNTAX LOOK UP OBJECT (FIND RMUNGBIT) = V-LOOK-UP>
|
||||
<SYNTAX LOOK UP OBJECT IN OBJECT = V-LOOK-UP>
|
||||
<SYNTAX LOOK THROUGH OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-LOOK-THROUGH>
|
||||
|
||||
<SYNTAX LUNGE AT OBJECT (FIND PERSONBIT) = V-ATTACK>
|
||||
|
||||
<SYNONYM MAKE BUILD PREPARE>
|
||||
<SYNTAX MAKE OBJECT = V-MAKE>
|
||||
<SYNTAX MAKE OBJECT TO OBJECT (ON-GROUND IN-ROOM) = V-MAKE>
|
||||
<SYNTAX MAKE OBJECT FROM OBJECT (ON-GROUND IN-ROOM) = V-MAKE>
|
||||
<SYNTAX MAKE OBJECT ;WITH OBJECT (ON-GROUND IN-ROOM) = V-MAKE>
|
||||
|
||||
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) OBJECT = V-MOVE-DIR PRE-MOVE-DIR>
|
||||
|
||||
<SYNONYM NO NAY NEGATIVE NOPE>
|
||||
<SYNTAX NO = V-NO>
|
||||
|
||||
<SYNTAX NOD OBJECT = V-NOD>
|
||||
<SYNTAX NOD AT OBJECT = V-HELLO PRE-HELLO>
|
||||
<SYNTAX NOD TO OBJECT = V-HELLO PRE-HELLO>
|
||||
|
||||
<SYNTAX OPEN OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-OPEN>
|
||||
<SYNTAX OPEN UP OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-OPEN>
|
||||
<SYNTAX OPEN OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT ;(FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-OPEN-WITH PRE-OPEN-WITH>
|
||||
|
||||
<SYNTAX PASS OBJECT = V-PASS>
|
||||
<SYNTAX PASS OUT OBJECT (FIND RMUNGBIT) = V-FAINT>
|
||||
|
||||
<SYNTAX PICK OBJECT (FIND TAKEBIT) (ON-GROUND MANY)
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX PICK OBJECT ;(FIND TAKEBIT) (ON-GROUND MANY) WITH OBJECT
|
||||
= V-TAKE-WITH PRE-TAKE-WITH>
|
||||
<SYNTAX PICK UP OBJECT (FIND TAKEBIT) (ON-GROUND MANY)
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX PICK UP OBJECT ;(FIND TAKEBIT) (ON-GROUND MANY) WITH OBJECT
|
||||
= V-TAKE-WITH PRE-TAKE-WITH>
|
||||
|
||||
<SYNTAX PLAY OBJECT = V-PLAY>
|
||||
<SYNTAX PLAY WITH OBJECT = V-PLAY>
|
||||
|
||||
<SYNTAX POCKET OBJECT (HELD CARRIED HAVE TAKE) = V-POCKET PRE-POCKET>
|
||||
|
||||
<SYNONYM POUR SPILL>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED HAVE TAKE) = V-POUR ;V-DROP>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED HAVE TAKE) FROM OBJECT = V-POUR ;V-DROP>
|
||||
<SYNTAX POUR OBJECT (CARRIED HELD MANY HAVE TAKE) IN OBJECT
|
||||
= V-PUT-IN PRE-PUT-IN>
|
||||
<SYNTAX POUR OBJECT (CARRIED HELD MANY HAVE TAKE) ON OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX POUR OBJECT (CARRIED HELD MANY HAVE TAKE) OVER OBJECT = V-PUT PRE-PUT>
|
||||
|
||||
<SYNONYM PULL TUG>
|
||||
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) OBJECT = V-MOVE-DIR PRE-MOVE-DIR>
|
||||
<SYNTAX PULL ON OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
|
||||
<SYNONYM PUSH PRESS SHOVE>
|
||||
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
|
||||
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) OBJECT
|
||||
= V-MOVE-DIR PRE-MOVE-DIR>
|
||||
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) OFF ;OF OBJECT (FIND RMUNGBIT)
|
||||
= V-PUSH>
|
||||
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) TO OBJECT
|
||||
= V-MOVE-DIR PRE-MOVE-DIR>
|
||||
<SYNTAX PUSH OBJECT (CARRIED HELD MANY HAVE TAKE) UNDER OBJECT = V-PUT-UNDER>
|
||||
<SYNTAX PUSH ON OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
|
||||
|
||||
<SYNONYM PLACE PUT STUFF INSERT INSTALL DEPOSIT DIP>
|
||||
<SYNTAX PLACE OBJECT (CARRIED HELD MANY HAVE TAKE) ON OBJECT (FIND SURFACEBIT)
|
||||
= V-PUT PRE-PUT>
|
||||
<SYNTAX PLACE OBJECT (CARRIED HELD MANY HAVE TAKE) DOWN ;ON OBJECT
|
||||
= V-PUT PRE-PUT>
|
||||
<SYNTAX PLACE OBJECT (CARRIED HELD MANY HAVE TAKE) IN OBJECT ;(FIND CONTBIT)
|
||||
= V-PUT-IN PRE-PUT-IN>
|
||||
<SYNTAX PLACE OBJECT (HELD MANY HAVE TAKE) THROUGH OBJECT (ON-GROUND IN-ROOM)
|
||||
= V-THROW-THROUGH>
|
||||
<SYNTAX PLACE OBJECT (CARRIED HELD MANY HAVE TAKE) UNDER OBJECT
|
||||
= V-PUT-UNDER>
|
||||
<SYNTAX PLACE DOWN OBJECT (HELD MANY HAVE TAKE) = V-DROP>
|
||||
<SYNTAX PLACE ON OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR> "PUT ON OBJ"
|
||||
|
||||
<SYNONYM QUIT Q LOGOUT LOGOFF>
|
||||
<SYNTAX QUIT = V-QUIT>
|
||||
|
||||
<SYNONYM RAISE LIFT>
|
||||
<SYNTAX RAISE OBJECT = V-RAISE>
|
||||
<SYNTAX RAISE UP OBJECT = V-RAISE>
|
||||
"<SYNTAX RAISE OBJECT OFF OBJECT = V-TAKE>"
|
||||
|
||||
<SYNONYM READ SKIM PERUSE>
|
||||
<SYNTAX READ OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNTAX READ OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
OBJECT = V-READ PRE-READ>
|
||||
<SYNTAX READ OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
THROUGH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNTAX READ OBJECT ;(FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
WITH OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNTAX READ ABOUT OBJECT
|
||||
IN OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-LOOK-UP>
|
||||
|
||||
<SYNONYM REMOVE DOFF SHED>
|
||||
<SYNTAX REMOVE OBJECT (FIND WORNBIT) = V-REMOVE>
|
||||
<SYNTAX REMOVE OBJECT ;(FIND TAKEBIT) (IN-ROOM CARRIED MANY)
|
||||
FROM OBJECT = V-TAKE PRE-TAKE>
|
||||
|
||||
<SYNTAX REQUEST OBJECT = V-ASK-CONTEXT-FOR PRE-ASK-CONTEXT-FOR>
|
||||
|
||||
<SYNTAX RESTART = V-RESTART>
|
||||
|
||||
<SYNONYM RESTORE RESTOR ;CONTINUE RESUME>
|
||||
<SYNTAX RESTORE = V-RESTORE>
|
||||
|
||||
<SYNONYM RING PEAL>
|
||||
<SYNTAX RING OBJECT (FIND RMUNGBIT) = V-RING>
|
||||
<SYNTAX RING OBJECT WITH OBJECT = V-RING>
|
||||
|
||||
<SYNONYM RIP TEAR>
|
||||
<SYNTAX RIP OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-RIP>
|
||||
<SYNTAX RIP UP OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-RIP>
|
||||
|
||||
<SYNONYM RISE ASCEND>
|
||||
<SYNTAX RISE = V-RISE>
|
||||
<SYNTAX RISE OBJECT = V-CLIMB-UP>
|
||||
<SYNTAX RISE BY OBJECT = V-CLIMB-UP>
|
||||
<SYNTAX RISE TO OBJECT = V-RISE>
|
||||
|
||||
<SYNONYM RUB TOUCH FEEL SHADE ;"PAT PET">
|
||||
<SYNTAX RUB OBJECT = V-RUB>
|
||||
<SYNTAX RUB OBJECT (TAKE HAVE) ON OBJECT = V-RUB-OVER PRE-RUB-OVER>
|
||||
<SYNTAX RUB OBJECT (TAKE HAVE) OVER OBJECT = V-RUB-OVER PRE-RUB-OVER>
|
||||
<SYNTAX RUB OBJECT WITH OBJECT (TAKE HAVE) = V-RUB>
|
||||
|
||||
<SYNONYM SAVE SUSPEND PAUSE>
|
||||
<SYNTAX SAVE = V-SAVE>
|
||||
<SYNTAX SAVE OBJECT ;(FIND PERSONBIT) = V-HELP>
|
||||
|
||||
<SYNONYM SAY TALK SPEAK WHISPER STATE EXPLAIN>
|
||||
<SYNTAX SAY = V-SAY>
|
||||
<SYNTAX SAY OBJECT = V-TALK-ABOUT PRE-TALK-ABOUT>
|
||||
<SYNTAX SAY OBJECT TO OBJECT = V-STELL-ABOUT PRE-STELL-ABOUT>
|
||||
<SYNTAX SAY ABOUT OBJECT = V-TALK-ABOUT PRE-TALK-ABOUT>
|
||||
<SYNTAX SAY IN OBJECT = V-SAY-INTO PRE-SAY-INTO>
|
||||
<SYNTAX SAY TO OBJECT (IN-ROOM) = V-TELL>
|
||||
<SYNTAX SAY TO OBJECT (IN-ROOM) ABOUT OBJECT
|
||||
= V-TELL-ABOUT PRE-TELL-ABOUT>
|
||||
<SYNTAX SAY WITH OBJECT (IN-ROOM) = V-TELL>
|
||||
|
||||
<SYNTAX SCRIPT = V-SCRIPT>
|
||||
|
||||
<SYNONYM SEARCH DIG>
|
||||
<SYNTAX SEARCH OBJECT = V-SEARCH PRE-SEARCH>
|
||||
<SYNTAX SEARCH OBJECT FOR OBJECT ;(HELD CARRIED HAVE)
|
||||
= V-SEARCH-FOR PRE-SEARCH-FOR>
|
||||
<SYNTAX SEARCH FOR OBJECT (MANY) = V-FIND PRE-FIND>
|
||||
<SYNTAX SEARCH IN OBJECT = V-SEARCH PRE-SEARCH>
|
||||
<SYNTAX SEARCH UP OBJECT = V-SEARCH PRE-SEARCH>
|
||||
|
||||
<SYNTAX SEND OBJECT = V-SEND>
|
||||
"<SYNTAX SEND FOR OBJECT = V-SEND-FOR>"
|
||||
<SYNTAX SEND OUT OBJECT = V-SEND-OUT>
|
||||
<SYNTAX SEND OBJECT OBJECT = V-SSEND PRE-SSEND>
|
||||
<SYNTAX SEND OBJECT TO OBJECT = V-SEND-TO PRE-SEND-TO>
|
||||
|
||||
<SYNTAX SET OBJECT (CARRIED HELD MANY HAVE TAKE) ON OBJECT (FIND RMUNGBIT)
|
||||
= V-PUT PRE-PUT>
|
||||
|
||||
<SYNTAX SHAKE OBJECT = V-SHAKE>
|
||||
|
||||
<SYNONYM FIRE SHOOT BLAST>
|
||||
<SYNTAX FIRE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE TAKE)
|
||||
= V-SHOOT PRE-SHOOT>
|
||||
<SYNTAX FIRE OBJECT ;(FIND WEAPONBIT) (HELD CARRIED HAVE TAKE)
|
||||
AT OBJECT ;(FIND PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
= V-SSHOOT PRE-SSHOOT>
|
||||
|
||||
<SYNONYM SHOW DISPLAY>
|
||||
<SYNTAX SHOW OBJECT (TAKE HAVE HELD CARRIED) TO OBJECT (FIND PERSONBIT)
|
||||
= V-SSHOW PRE-SSHOW>
|
||||
<SYNTAX SHOW OBJECT ;(FIND PERSONBIT) OBJECT (TAKE HAVE HELD CARRIED)
|
||||
= V-SHOW>
|
||||
|
||||
<SYNTAX SHUT OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-CLOSE>
|
||||
<SYNTAX SHUT OBJECT ;(FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH OBJECT
|
||||
= V-CLOSE>
|
||||
<SYNTAX SHUT OFF OBJECT(FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM MANY)
|
||||
= V-LAMP-OFF>
|
||||
<SYNTAX SHUT OFF OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY)
|
||||
WITH OBJECT
|
||||
= V-LAMP-OFF>
|
||||
|
||||
<SYNTAX SIGN OBJECT (TAKE HAVE HELD CARRIED)
|
||||
WITH OBJECT (TAKE HAVE HELD CARRIED) = V-SIGN>
|
||||
|
||||
<SYNONYM SIT CROUCH HUNKER SQUAT STOOP>
|
||||
<SYNTAX SIT ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-SIT PRE-SIT>
|
||||
<SYNTAX SIT AT OBJECT (ON-GROUND IN-ROOM) = V-SIT-AT>
|
||||
<SYNTAX SIT BESIDE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-SIT-AT>
|
||||
<SYNTAX SIT DOWN ;ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-SIT PRE-SIT>
|
||||
<SYNTAX SIT IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-SIT PRE-SIT>
|
||||
|
||||
<SYNONYM SLAP HURT INJURE HIT PUNCH STRIKE ;"KICK BITE" BEAT>
|
||||
<SYNTAX SLAP OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-SLAP>
|
||||
<SYNTAX SLAP OBJECT (ON-GROUND IN-ROOM) AROUND OBJECT (FIND RMUNGBIT)= V-SLAP>
|
||||
<SYNTAX SLAP OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (HELD CARRIED ON-GROUND IN-ROOM HAVE TAKE) = V-SLAP>
|
||||
|
||||
<SYNTAX SLIDE OBJECT = V-SLIDE>
|
||||
<SYNTAX SLIDE OBJECT (CARRIED HELD MANY HAVE TAKE) UNDER OBJECT
|
||||
= V-PUT-UNDER>
|
||||
<SYNTAX SLIDE OBJECT (CARRIED HELD MANY HAVE TAKE) IN OBJECT
|
||||
= V-PUT-IN PRE-PUT-IN>
|
||||
|
||||
<SYNONYM SMELL SNIFF>
|
||||
<SYNTAX SMELL OBJECT = V-SMELL>
|
||||
|
||||
<SYNONYM SMILE GRIN WINK>
|
||||
<SYNTAX SMILE AT OBJECT (FIND PERSONBIT) = V-SMILE>
|
||||
|
||||
<SYNTAX SMOKE OBJECT (HELD CARRIED TAKE HAVE) = V-SMOKE>
|
||||
|
||||
"<SYNONYM PHOTO PHOTOGRAPH ;SNAP SNAPSHOT>"
|
||||
<SYNTAX PHOTO OBJECT = V-PHOTO PRE-PHOTO>
|
||||
<SYNTAX PHOTO OBJECT WITH OBJECT(HELD ;CARRIED TAKE HAVE) = V-PHOTO PRE-PHOTO>
|
||||
|
||||
<SYNTAX STAND = V-STAND>
|
||||
<SYNTAX STAND UP OBJECT (FIND RMUNGBIT) = V-STAND>
|
||||
|
||||
<SYNONYM START ACTIVATE ENGAGE>
|
||||
<SYNTAX START OBJECT = V-LAMP-ON>
|
||||
<SYNTAX START OVER OBJECT (FIND RMUNGBIT) = V-RESTART>
|
||||
|
||||
<SYNTAX STOP OBJECT (FIND RMUNGBIT) = V-STOP>
|
||||
|
||||
<SYNONYM SUPER SUPERB SUPERBRIEF>
|
||||
<SYNTAX SUPER = V-SUPER-BRIEF>
|
||||
|
||||
<SYNONYM SWIM BATHE WADE>
|
||||
<SYNTAX SWIM = V-SWIM>
|
||||
<SYNTAX SWIM IN OBJECT = V-SWIM>
|
||||
|
||||
<SYNONYM TAKE ;GET CARRY ;REMOVE LEAD STEAL SEIZE GRAB CONFISCATE>
|
||||
<SYNTAX TAKE OBJECT (FIND TAKEBIT) (ON-GROUND IN-ROOM MANY)
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (IN-ROOM CARRIED MANY)
|
||||
FROM OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (IN-ROOM CARRIED MANY)
|
||||
IN OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (CARRIED IN-ROOM MANY)
|
||||
OFF OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (CARRIED IN-ROOM MANY)
|
||||
OUT ;OF OBJECT ;(FIND CONTBIT)
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (MANY TAKE) TO OBJECT = V-TAKE-TO>
|
||||
<SYNTAX TAKE OBJECT (IN-ROOM CARRIED TAKE HAVE) UP ;TO OBJECT = V-HOLD-UP>
|
||||
"<SYNTAX TAKE OBJECT ;WITH OBJECT = V-TAKE-PHOTO PRE-TAKE-PHOTO>"
|
||||
<SYNTAX TAKE OBJECT ;(FIND TAKEBIT) (ON-GROUND MANY)
|
||||
WITH OBJECT = V-TAKE-WITH PRE-TAKE-WITH>
|
||||
<SYNTAX TAKE OFF OBJECT (FIND WORNBIT) ;(HAVE) = V-TAKE-OFF>
|
||||
"What about TAKE THE COOK'S PICTURE ?"
|
||||
<SYNTAX TAKE PHOTO ;OF OBJECT = V-PHOTO PRE-PHOTO>
|
||||
|
||||
<SYNTAX TELL OBJECT (FIND PERSONBIT) (IN-ROOM) = V-TELL>
|
||||
<SYNTAX TELL OBJECT (IN-ROOM) OBJECT = V-TELL-ABOUT PRE-TELL-ABOUT>
|
||||
<SYNTAX TELL ABOUT OBJECT = V-TALK-ABOUT PRE-TALK-ABOUT>
|
||||
<SYNTAX TELL OBJECT (IN-ROOM) ABOUT OBJECT = V-TELL-ABOUT PRE-TELL-ABOUT>
|
||||
|
||||
<SYNONYM THANKS THANK>
|
||||
<SYNTAX THANKS = V-THANKS>
|
||||
<SYNTAX THANKS OBJECT = V-THANKS>
|
||||
|
||||
<SYNONYM THROW HURL CHUCK TOSS>
|
||||
<SYNTAX THROW AWAY OBJECT (HELD CARRIED HAVE) = V-DROP>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE TAKE)
|
||||
AT OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
= V-THROW-AT>
|
||||
<SYNTAX THROW OBJECT (CARRIED HELD MANY HAVE TAKE) IN OBJECT
|
||||
= V-PUT-IN PRE-PUT-IN>
|
||||
<SYNTAX THROW OBJECT (CARRIED HELD MANY HAVE TAKE) ON OBJECT
|
||||
= V-PUT PRE-PUT>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED MANY HAVE TAKE) OFF ;OF OBJECT
|
||||
= V-THROW-OFF>
|
||||
<SYNTAX THROW OBJECT (HELD MANY HAVE TAKE) OUT ;OF OBJECT (ON-GROUND IN-ROOM)
|
||||
= V-THROW-THROUGH>
|
||||
<SYNTAX THROW OBJECT (CARRIED HELD MANY HAVE TAKE) OVER OBJECT
|
||||
= V-PUT PRE-PUT>
|
||||
<SYNTAX THROW OBJECT (HELD MANY HAVE TAKE)
|
||||
THROUGH OBJECT (ON-GROUND IN-ROOM)
|
||||
= V-THROW-THROUGH>
|
||||
|
||||
<SYNONYM TIE FASTEN SECURE ATTACH>
|
||||
<SYNTAX TIE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
TO OBJECT ;(FIND FURNITURE) (ON-GROUND IN-ROOM)
|
||||
= V-TIE-TO PRE-TIE-TO>
|
||||
<SYNTAX TIE UP OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
TO OBJECT ;(FIND FURNITURE) (ON-GROUND IN-ROOM)
|
||||
= V-TIE-TO PRE-TIE-TO>
|
||||
<SYNTAX TIE OBJECT ;(FIND PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-TIE-WITH PRE-TIE-WITH>
|
||||
<SYNTAX TIE UP OBJECT ;(FIND PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
WITH OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE TAKE)
|
||||
= V-TIE-WITH PRE-TIE-WITH>
|
||||
|
||||
<SYNONYM TIME T>
|
||||
<SYNTAX TIME = V-TIME>
|
||||
|
||||
"<SYNTAX OFFER OBJECT FOR OBJECT>"
|
||||
"<SYNTAX TRADE OBJECT FOR OBJECT>" "?"
|
||||
|
||||
<SYNONYM SWITCH TURN FLIP SWING>
|
||||
<SYNTAX SWITCH OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-TURN>
|
||||
"<SYNTAX SWITCH OBJECT IN ;FOR OBJECT (FIND RMUNGBIT) = V-ARREST PRE-ARREST>"
|
||||
<SYNTAX SWITCH AROUND OBJECT (FIND RMUNGBIT) = V-TURN-AROUND>
|
||||
<SYNTAX SWITCH OFF OBJECT(FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM MANY)
|
||||
= V-LAMP-OFF>
|
||||
<SYNTAX SWITCH OFF OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY)
|
||||
WITH OBJECT
|
||||
= V-LAMP-OFF>
|
||||
<SYNTAX SWITCH ON OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM MANY)
|
||||
= V-LAMP-ON>
|
||||
<SYNTAX SWITCH ON OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY)
|
||||
WITH OBJECT
|
||||
= V-LAMP-ON> "? IS MANY O.K.?"
|
||||
<SYNTAX SWITCH TO OBJECT (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-TURN>
|
||||
|
||||
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM) = V-UNLOCK>
|
||||
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT = V-UNLOCK>
|
||||
|
||||
<SYNTAX UNSCRIPT = V-UNSCRIPT>
|
||||
|
||||
"<SYNTAX UNSPACE = V-UNSPACE>"
|
||||
|
||||
<SYNONYM UNTIE FREE UNFASTEN UNATTACH UNHOOK UNCUFF>
|
||||
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-UNTIE>
|
||||
<SYNTAX UNTIE OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
FROM OBJECT
|
||||
= V-UNTIE>
|
||||
|
||||
<SYNONYM USE CASH>
|
||||
<SYNTAX USE OBJECT = V-USE>
|
||||
<SYNTAX USE OBJECT AGAINST OBJECT = V-USE-AGAINST>
|
||||
|
||||
<SYNTAX VERBOSE = V-VERBOSE>
|
||||
|
||||
<SYNONYM RELEASE REVISION VERSION EDITION VARIATION>
|
||||
<SYNTAX RELEASE = V-VERSION>
|
||||
<SYNTAX RELEASE OBJECT = V-UNTIE>
|
||||
|
||||
<SYNONYM WAIT Z STAY MEDITATE RELAX ;REST>
|
||||
"<SYNTAX WAIT = V-WAIT>"
|
||||
<SYNTAX WAIT OBJECT (FIND RMUNGBIT) = V-WAIT-FOR>
|
||||
<SYNTAX WAIT FOR OBJECT (FIND RMUNGBIT) = V-WAIT-FOR>
|
||||
<SYNTAX WAIT TILL OBJECT = V-WAIT-UNTIL>
|
||||
<SYNTAX WAIT UNTIL OBJECT = V-WAIT-UNTIL>
|
||||
|
||||
<SYNONYM WAKE AWAKE SURPRISE STARTLE>
|
||||
<SYNTAX WAKE OBJECT (FIND PERSONBIT) (ON-GROUND IN-ROOM) = V-ALARM>
|
||||
<SYNTAX WAKE UP OBJECT (FIND RMUNGBIT ;PERSONBIT) (ON-GROUND IN-ROOM)
|
||||
= V-ALARM>
|
||||
|
||||
<SYNONYM WALK GO RUN PROCEED STEER DRIVE>
|
||||
<SYNTAX WALK OBJECT = V-WALK>
|
||||
<SYNTAX WALK AROUND OBJECT = V-WALK-AROUND>
|
||||
<SYNTAX WALK BEHIND OBJECT = V-THROUGH ;PRE-THROUGH>
|
||||
<SYNTAX WALK DOWN OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-DOWN> "(FIND CLIMBBIT)"
|
||||
<SYNTAX WALK IN OBJECT = V-THROUGH ;PRE-THROUGH>
|
||||
<SYNTAX WALK OUT ;OF OBJECT = V-LEAVE>
|
||||
<SYNTAX WALK THROUGH OBJECT = V-THROUGH ;PRE-THROUGH>
|
||||
<SYNTAX WALK TO OBJECT = V-WALK-TO>
|
||||
<SYNTAX WALK UNDER OBJECT = V-WALK-UNDER>
|
||||
<SYNTAX WALK UP OBJECT (ON-GROUND IN-ROOM) = V-CLIMB-UP> "(FIND CLIMBBIT)"
|
||||
<SYNTAX WALK WITH OBJECT = V-FOLLOW>
|
||||
<SYNTAX WALK OBJECT OVER OBJECT = V-RUN-OVER>
|
||||
|
||||
<SYNTAX WATCH OBJECT = V-EXAMINE>
|
||||
|
||||
<SYNONYM WEAR DON>
|
||||
<SYNTAX WEAR OBJECT (FIND WEARBIT) (HAVE TAKE) = V-WEAR>
|
||||
|
||||
<SYNONYM WIND COCK ADVANCE>
|
||||
<SYNTAX WIND OBJECT (TAKE HAVE HELD CARRIED) = V-WIND>
|
||||
|
||||
<SYNONYM NAME IDENTIFY>
|
||||
<SYNTAX NAME OBJECT ;(HELD CARRIED HAVE) = V-WHAT>
|
||||
|
||||
<SYNTAX WRITE ON OBJECT (TAKE HAVE HELD CARRIED)
|
||||
WITH OBJECT (TAKE HAVE HELD CARRIED) = V-SIGN>
|
||||
|
||||
<SYNONYM YELL SCREAM SHOUT>
|
||||
<SYNTAX YELL = V-YELL>
|
||||
<SYNTAX YELL AT OBJECT (ON-GROUND IN-ROOM) = V-TELL>
|
||||
<SYNTAX YELL FOR OBJECT = V-YELL-FOR>
|
||||
<SYNTAX YELL IN OBJECT = V-SAY-INTO PRE-SAY-INTO>
|
||||
<SYNTAX YELL TO OBJECT (ON-GROUND IN-ROOM) = V-TELL>
|
||||
|
||||
<SYNONYM YES Y AYE ROGER WILCO OK OKAY 10-4 SURE YUP YEAH AFFIRM>
|
||||
<SYNTAX YES = V-YES>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,949 @@
|
|||
|
||||
|
||||
.FUNCT RANDOM-PSEUDO
|
||||
PRINTR "You can't do anything useful with that."
|
||||
|
||||
|
||||
.FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ
|
||||
EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3
|
||||
EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3
|
||||
PRINTI "(Those things aren't here!)"
|
||||
CRLF
|
||||
RETURN 2
|
||||
?ELS3: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS11
|
||||
SET 'TBL,P-PRSO
|
||||
JUMP ?CND1
|
||||
?ELS11: SET 'TBL,P-PRSI
|
||||
SET 'PRSO?,FALSE-VALUE
|
||||
?CND1: EQUAL? PRSA,V?SEARCH-FOR,V?ASK-FOR,V?ASK-ABOUT \?CND14
|
||||
FSET? PRSO,PERSONBIT \?CND14
|
||||
IN? PRSO,GLOBAL-OBJECTS \?CND14
|
||||
CALL2 NOT-HERE-PERSON,PRSO
|
||||
RETURN 2
|
||||
?CND14: ZERO? PRSO? /?ELS27
|
||||
CALL1 PRSO-VERB?
|
||||
ZERO? STACK \?THN24
|
||||
?ELS27: ZERO? PRSO? \?CND21
|
||||
CALL1 PRSI-VERB?
|
||||
ZERO? STACK /?CND21
|
||||
?THN24: CALL FIND-NOT-HERE,TBL,PRSO? >OBJ
|
||||
ZERO? OBJ /FALSE
|
||||
EQUAL? OBJ,NOT-HERE-OBJECT /?CND30
|
||||
RETURN 2
|
||||
?CND30:
|
||||
?CND21: PRINTI "(You can't see any"
|
||||
CALL1 NOT-HERE-PRINT
|
||||
PRINTI " here!)"
|
||||
CRLF
|
||||
RETURN 2
|
||||
|
||||
|
||||
.FUNCT PRSO-VERB?,V=0,W=0
|
||||
ZERO? V \?CND1
|
||||
SET 'V,PRSA
|
||||
?CND1: ZERO? W \?CND4
|
||||
SET 'W,WINNER
|
||||
?CND4: CALL2 SPEAKING-VERB?,V
|
||||
ZERO? STACK \TRUE
|
||||
EQUAL? V,V?$WHERE,V?ASK-CONTEXT-ABOUT,V?ASK-CONTEXT-FOR /TRUE
|
||||
EQUAL? V,V?$FCLEAR,V?$FSET,V?$QFSET /TRUE
|
||||
EQUAL? V,V?BOARD,V?BUY,V?DISEMBARK /TRUE
|
||||
EQUAL? V,V?EXAMINE,V?FIND,V?FOLLOW /TRUE
|
||||
EQUAL? V,V?LEAVE,V?PHONE,V?THROUGH /TRUE
|
||||
EQUAL? V,V?USE,V?WAIT-FOR,V?WALK-TO /TRUE
|
||||
EQUAL? V,V?WHAT,V?PASS /TRUE
|
||||
EQUAL? V,V?SHOOT,V?SIT,V?LIE /TRUE
|
||||
EQUAL? W,PLAYER /FALSE
|
||||
EQUAL? V,V?BRING,V?TAKE,V?SSHOW /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT PRSI-VERB?,V=0,W=0
|
||||
ZERO? V \?CND1
|
||||
SET 'V,PRSA
|
||||
?CND1: ZERO? W \?CND4
|
||||
SET 'W,WINNER
|
||||
?CND4: EQUAL? V,V?$WHERE,V?ASK-ABOUT,V?ASK-FOR /TRUE
|
||||
EQUAL? V,V?SEARCH-FOR,V?TAKE-TO,V?TELL-ABOUT /TRUE
|
||||
EQUAL? V,V?SSHOOT /TRUE
|
||||
EQUAL? W,PLAYER /FALSE
|
||||
EQUAL? V,V?SBRING,V?SHOW /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT GEN-TEST,OBJ
|
||||
IN? OBJ,HERE /TRUE
|
||||
CALL2 CORRIDOR-LOOK,OBJ
|
||||
ZERO? STACK \TRUE
|
||||
EQUAL? PRSA,V?FOLLOW /?THN12
|
||||
CALL1 REMOTE-VERB?
|
||||
ZERO? STACK /FALSE
|
||||
?THN12: FSET? OBJ,PERSONBIT \FALSE
|
||||
FSET? OBJ,SEENBIT /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ,LEN,CNT,LOCAL=0
|
||||
CALL2 MOBY-FIND,TBL >M-F
|
||||
ZERO? DEBUG /?CND1
|
||||
PRINTI "[Found "
|
||||
PRINTN M-F
|
||||
PRINTI " objects]"
|
||||
CRLF
|
||||
EQUAL? 1,M-F /?CND1
|
||||
PRINTI "[Namely: "
|
||||
SET 'CNT,1
|
||||
GET TBL,P-MATCHLEN >LEN
|
||||
?PRG12: DLESS? 'LEN,0 \?ELS16
|
||||
JUMP ?REP13
|
||||
?ELS16: GET TBL,CNT
|
||||
PRINTD STACK
|
||||
PRINTI ", "
|
||||
?CND14: INC 'CNT
|
||||
JUMP ?PRG12
|
||||
?REP13: PRINTI "]"
|
||||
CRLF
|
||||
?CND1: GRTR? M-F,1 \?CND23
|
||||
SET 'CNT,0
|
||||
?PRG26: IGRTR? 'CNT,M-F \?CND28
|
||||
JUMP ?REP27
|
||||
?CND28: GET TBL,CNT >OBJ
|
||||
CALL2 GEN-TEST,OBJ
|
||||
ZERO? STACK /?PRG26
|
||||
IGRTR? 'LOCAL,1 \?ELS36
|
||||
JUMP ?REP27
|
||||
?ELS36: SET 'P-MOBY-FOUND,OBJ
|
||||
JUMP ?PRG26
|
||||
?REP27: EQUAL? LOCAL,1 \?CND23
|
||||
SET 'M-F,1
|
||||
?CND23: EQUAL? 1,M-F \?ELS46
|
||||
ZERO? DEBUG /?CND47
|
||||
PRINTI "[Namely: "
|
||||
PRINTD P-MOBY-FOUND
|
||||
PRINTI "]"
|
||||
CRLF
|
||||
?CND47: CALL1 REMOTE-VERB?
|
||||
ZERO? STACK \?CND53
|
||||
EQUAL? PRSA,V?$CALL /?CND53
|
||||
CALL2 VISIBLE?,P-MOBY-FOUND
|
||||
ZERO? STACK \?CND53
|
||||
CALL2 NOT-HERE,P-MOBY-FOUND
|
||||
RETURN TRUE-VALUE
|
||||
?CND53: ZERO? PRSO? /?ELS60
|
||||
SET 'PRSO,P-MOBY-FOUND
|
||||
RFALSE
|
||||
?ELS60: SET 'PRSI,P-MOBY-FOUND
|
||||
RFALSE
|
||||
?ELS46: LESS? 1,M-F \?ELS65
|
||||
GET TBL,1 >OBJ
|
||||
FSET? OBJ,PERSONBIT \?ELS65
|
||||
SET 'CNT,1
|
||||
GET TBL,P-MATCHLEN >LEN
|
||||
?PRG68: GET TBL,CNT >OBJ
|
||||
CALL2 GEN-TEST,OBJ
|
||||
ZERO? STACK \?CND70
|
||||
DEC 'LEN
|
||||
CALL ELIMINATE,TBL,CNT,LEN
|
||||
GRTR? CNT,LEN /?CND70
|
||||
JUMP ?PRG68
|
||||
?CND70: IGRTR? 'CNT,LEN \?PRG68
|
||||
PUT TBL,P-MATCHLEN,LEN
|
||||
ZERO? LEN \?ELS81
|
||||
RETURN NOT-HERE-OBJECT
|
||||
?ELS81: EQUAL? LEN,1 /?CND79
|
||||
CALL WHICH-PRINT,0,LEN,TBL
|
||||
EQUAL? TBL,P-PRSO \?ELS88
|
||||
PUSH P-NC1
|
||||
JUMP ?CND84
|
||||
?ELS88: PUSH P-NC2
|
||||
?CND84: SET 'P-ACLAUSE,STACK
|
||||
SET 'P-AADJ,P-ADJ
|
||||
SET 'P-ANAM,P-NAM
|
||||
CALL ORPHAN,FALSE-VALUE,FALSE-VALUE
|
||||
SET 'P-OFLAG,TRUE-VALUE
|
||||
RTRUE
|
||||
?CND79: ZERO? DEBUG /?CND91
|
||||
PRINTI "[Corridor: "
|
||||
PRINTD OBJ
|
||||
PRINTI "]"
|
||||
CRLF
|
||||
?CND91: ZERO? PRSO? /?ELS99
|
||||
SET 'PRSO,OBJ
|
||||
RFALSE
|
||||
?ELS99: SET 'PRSI,OBJ
|
||||
RFALSE
|
||||
?ELS65: LESS? 1,M-F \?ELS104
|
||||
GET TBL,1 >OBJ
|
||||
GETP OBJ,P?GENERIC
|
||||
CALL STACK,TBL >OBJ
|
||||
ZERO? OBJ /?ELS104
|
||||
ZERO? DEBUG /?CND107
|
||||
PRINTI "[Generic: "
|
||||
PRINTD OBJ
|
||||
PRINTI "]"
|
||||
CRLF
|
||||
?CND107: EQUAL? OBJ,NOT-HERE-OBJECT /TRUE
|
||||
ZERO? PRSO? /?ELS117
|
||||
SET 'PRSO,OBJ
|
||||
RFALSE
|
||||
?ELS117: SET 'PRSI,OBJ
|
||||
RFALSE
|
||||
?ELS104: ZERO? PRSO? \?ELS126
|
||||
IN? PRSO,HERE \?ELS126
|
||||
EQUAL? PRSA,V?TELL-ABOUT,V?ASK-FOR,V?ASK-ABOUT /?THN131
|
||||
?ELS126: ZERO? PRSO? /?ELS128
|
||||
CALL1 QCONTEXT-GOOD?
|
||||
ZERO? STACK /?ELS128
|
||||
EQUAL? PRSA,V?ASK-CONTEXT-FOR,V?ASK-CONTEXT-ABOUT /?THN131
|
||||
?ELS128: EQUAL? WINNER,PLAYER /?ELS122
|
||||
EQUAL? PRSA,V?SGIVE /?THN131
|
||||
EQUAL? PRSA,V?GIVE,V?WHAT,V?FIND \?ELS122
|
||||
?THN131: EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT \?ELS135
|
||||
SET 'LEN,PRSO
|
||||
JUMP ?CND133
|
||||
?ELS135: CALL1 QCONTEXT-GOOD?
|
||||
ZERO? STACK /?ELS137
|
||||
SET 'LEN,QCONTEXT
|
||||
JUMP ?CND133
|
||||
?ELS137: EQUAL? WINNER,PLAYER /?ELS139
|
||||
SET 'LEN,WINNER
|
||||
JUMP ?CND133
|
||||
?ELS139: CALL FIND-FLAG,HERE,PERSONBIT,WINNER >OBJ
|
||||
ZERO? OBJ /?ELS141
|
||||
SET 'LEN,OBJ
|
||||
JUMP ?CND133
|
||||
?ELS141: SET 'LEN,GAME
|
||||
?CND133: CALL2 START-SENTENCE,LEN
|
||||
CALL HE-SHE-IT,LEN,-1,STR?6
|
||||
PRINTI ", "
|
||||
CALL1 PRODUCE-GIBBERISH
|
||||
RTRUE
|
||||
?ELS122: ZERO? PRSO? \?ELS147
|
||||
PRINTI "You wouldn't find any"
|
||||
CALL1 NOT-HERE-PRINT
|
||||
PRINTR " there."
|
||||
?ELS147: RETURN NOT-HERE-OBJECT
|
||||
|
||||
|
||||
.FUNCT NOT-HERE-PRINT,?TMP1
|
||||
ZERO? P-OFLAG \?THN6
|
||||
ZERO? P-MERGED /?ELS5
|
||||
?THN6: ZERO? P-XADJ /?CND8
|
||||
PRINTI " "
|
||||
PRINTB P-XADJ
|
||||
?CND8: ZERO? P-XNAM /FALSE
|
||||
PRINTI " "
|
||||
PRINTB P-XNAM
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS23
|
||||
GET P-ITBL,P-NC1 >?TMP1
|
||||
GET P-ITBL,P-NC1L
|
||||
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
|
||||
RSTACK
|
||||
?ELS23: GET P-ITBL,P-NC2 >?TMP1
|
||||
GET P-ITBL,P-NC2L
|
||||
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT GIVE-SHOW,P1,P2
|
||||
EQUAL? PRSA,V?GIVE \?ELS5
|
||||
EQUAL? PRSI,P1,P2 \FALSE
|
||||
RETURN PRSO
|
||||
?ELS5: EQUAL? PRSA,V?SHOW \FALSE
|
||||
EQUAL? PRSO,P1,P2 \FALSE
|
||||
RETURN PRSI
|
||||
|
||||
|
||||
.FUNCT TICKET-F,COST,OBJ,TKT
|
||||
EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \?ELS5
|
||||
PRINTI "All you can make out is the destination: "
|
||||
GETP PRSO,P?CAPACITY
|
||||
PRINTD STACK
|
||||
EQUAL? PRSO,TICKET \?ELS10
|
||||
ZERO? TICKET-VIA /?ELS10
|
||||
PRINTI " via "
|
||||
PRINTD TICKET-VIA
|
||||
JUMP ?CND8
|
||||
?ELS10: EQUAL? PRSO,TICKET-OTHER \?CND8
|
||||
ZERO? TICKET-OTHER-VIA /?CND8
|
||||
PRINTI " via "
|
||||
PRINTD TICKET-OTHER-VIA
|
||||
?CND8: PRINTR "."
|
||||
?ELS5: CALL GIVE-SHOW,CONDUCTOR,GUARD >TKT
|
||||
ZERO? TKT /?ELS24
|
||||
EQUAL? TKT,PRSO \?ELS27
|
||||
SET 'OBJ,PRSI
|
||||
JUMP ?CND25
|
||||
?ELS27: EQUAL? TKT,PRSI \?ELS29
|
||||
SET 'OBJ,PRSO
|
||||
JUMP ?CND25
|
||||
?ELS29: PRINTI "[BUG #1]"
|
||||
CRLF
|
||||
?CND25: ZERO? ON-TRAIN \FALSE
|
||||
CALL2 START-SENTENCE,OBJ
|
||||
PRINTI " looks at"
|
||||
CALL2 HIM-HER-IT,TKT
|
||||
PRINTR " and points to this train track."
|
||||
?ELS24: EQUAL? PRSA,V?BUY-TICKET,V?BUY \FALSE
|
||||
EQUAL? PRSO,TICKET-OTHER,TICKET \FALSE
|
||||
EQUAL? HERE,TICKET-AREA /?ELS47
|
||||
CALL1 YOU-CANT
|
||||
RTRUE
|
||||
?ELS47: EQUAL? PRSA,V?BUY /?THN50
|
||||
ZERO? PRSI \?CND45
|
||||
?THN50: SET 'CLOCK-WAIT,TRUE-VALUE
|
||||
PRINTR "(You didn't say where the ticket is for.)"
|
||||
?CND45: GETP PRSI,P?NORTH >COST
|
||||
GRTR? COST,0 \?THN57
|
||||
FSET? PRSI,PERSONBIT \?ELS56
|
||||
?THN57: PRINTI "You can't buy a ticket to"
|
||||
CALL2 PRINTT,PRSI
|
||||
PRINTR "."
|
||||
?ELS56: GETP PLAYER,P?SOUTH
|
||||
GRTR? COST,STACK \?CND54
|
||||
PRINTR "You don't have enough money."
|
||||
?CND54: GETP PLAYER,P?SOUTH
|
||||
SUB STACK,COST
|
||||
PUTP PLAYER,P?SOUTH,STACK
|
||||
PUTP PRSO,P?CAPACITY,PRSI
|
||||
CALL ZMEMZ,PRSI,TRAIN-TABLE
|
||||
ZERO? STACK \?ELS67
|
||||
EQUAL? SCENERY-OBJ,STATION-KNUT /?ELS67
|
||||
EQUAL? PRSO,TICKET \?ELS72
|
||||
SET 'TICKET-VIA,STATION-KNUT
|
||||
JUMP ?CND65
|
||||
?ELS72: EQUAL? PRSO,TICKET-OTHER \?CND65
|
||||
SET 'TICKET-OTHER-VIA,STATION-KNUT
|
||||
JUMP ?CND65
|
||||
?ELS67: EQUAL? PRSO,TICKET \?ELS79
|
||||
SET 'TICKET-VIA,FALSE-VALUE
|
||||
JUMP ?CND65
|
||||
?ELS79: EQUAL? PRSO,TICKET-OTHER \?CND65
|
||||
SET 'TICKET-OTHER-VIA,FALSE-VALUE
|
||||
?CND65: MOVE PRSO,PLAYER
|
||||
CALL2 START-SENTENCE,CLERK
|
||||
PRINTI " takes your money and stamps "
|
||||
PRINTD PRSO
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT PASSPORT-F
|
||||
EQUAL? PRSA,V?OPEN,V?READ \FALSE
|
||||
CALL PERFORM,V?EXAMINE,PRSO,PRSI
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CHECK-F,P
|
||||
EQUAL? PRSA,V?ANALYZE \?ELS5
|
||||
CALL PERFORM,V?EXAMINE,PRSO,PRSI
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?SHOW \?ELS7
|
||||
EQUAL? PRSO,CLERK,WAITER \?ELS12
|
||||
FSET? PEN,TOUCHBIT /?ELS12
|
||||
MOVE PEN,PRSO
|
||||
FCLEAR PEN,NDESCBIT
|
||||
FSET PEN,TAKEBIT
|
||||
CALL HE-SHE-IT,PRSO,TRUE-VALUE,STR?8
|
||||
PRINTI " and"
|
||||
CALL HE-SHE-IT,PRSO,-1,STR?9
|
||||
PRINTI " "
|
||||
CALL2 PRINTA,PEN
|
||||
PRINTR "."
|
||||
?ELS12: EQUAL? PRSO,WAITRESS,GUARD,CONDUCTOR \FALSE
|
||||
CALL HE-SHE-IT,PRSO,TRUE-VALUE
|
||||
PRINTI " shakes"
|
||||
CALL HIM-HER-IT,PRSO,FALSE-VALUE,TRUE-VALUE
|
||||
PRINTI " head and points "
|
||||
EQUAL? HERE,CAFE \?ELS25
|
||||
PRINTI "toward"
|
||||
CALL2 HIM-HER-IT,TICKET-AREA
|
||||
PRINTR "."
|
||||
?ELS25: ZERO? ON-TRAIN \?ELS29
|
||||
PRINTR "into the station."
|
||||
?ELS29: LESS? CAR-HERE,DINER-CAR \?ELS33
|
||||
PRINTR "to the rear."
|
||||
?ELS33: GRTR? CAR-HERE,DINER-CAR \?ELS37
|
||||
PRINTR "forward."
|
||||
?ELS37: PRINTR "to a booth."
|
||||
?ELS7: EQUAL? PRSA,V?USE,V?SIGN \FALSE
|
||||
SET 'P,WAITER
|
||||
IN? P,HERE /?THN51
|
||||
SET 'P,CLERK
|
||||
IN? P,HERE \FALSE
|
||||
?THN51: EQUAL? PRSI,PEN /?THN58
|
||||
FSET? PEN,TOUCHBIT \?THN58
|
||||
LOC PEN
|
||||
EQUAL? STACK,PLAYER,POCKET \?ELS57
|
||||
?THN58: CALL2 START-SENTENCE,P
|
||||
FSET? PEN,TOUCHBIT /?CND62
|
||||
PRINTI " lends you a pen and then"
|
||||
MOVE PEN,PLAYER
|
||||
FCLEAR PEN,NDESCBIT
|
||||
FSET PEN,TOUCHBIT
|
||||
?CND62: MOVE CHECK,P
|
||||
FCLEAR CHECK,TAKEBIT
|
||||
GETP PLAYER,P?SOUTH
|
||||
ADD 20,STACK
|
||||
PUTP PLAYER,P?SOUTH,STACK
|
||||
PRINTI " gives you "
|
||||
PRINTC CURRENCY-SYMBOL
|
||||
PRINTR "20 in exchange for the check."
|
||||
?ELS57: CALL2 START-SENTENCE,P
|
||||
PRINTR " shakes his head and shrugs his shoulders."
|
||||
|
||||
|
||||
.FUNCT CAMERA-F
|
||||
IN? CAMERA,POCKET \?CND1
|
||||
EQUAL? PRSA,V?WIND /?THN6
|
||||
EQUAL? PRSA,V?SHOOT,V?OPEN,V?LOOK-THROUGH /?THN6
|
||||
EQUAL? PRSA,V?EXAMINE,V?CLOSE,V?AIM \?CND1
|
||||
?THN6: MOVE CAMERA,PLAYER
|
||||
?CND1: EQUAL? PRSA,V?AIM \?ELS12
|
||||
EQUAL? PRSO,CAMERA \FALSE
|
||||
PRINTR "Okay, then what?"
|
||||
?ELS12: EQUAL? PRSA,V?EXAMINE \?ELS21
|
||||
FSET? PRSO,OPENBIT /FALSE
|
||||
IN? FILM,CAMERA \?ELS28
|
||||
ZERO? CAMERA-COCKED \?ELS28
|
||||
PRINTR "It looks as if it needs to be cocked."
|
||||
?ELS28: PRINTI "Ah! Is this the masterwork of some paranoid genius in ""Q"" Section? A product of years of technological innovation, bordering on magic? Nah, it's just an ordinary "
|
||||
PRINTD CAMERA
|
||||
PRINTR " -- no weapons, no motors, nothing to break down. And it's closed."
|
||||
?ELS21: EQUAL? PRSA,V?LOOK-THROUGH \?ELS38
|
||||
PRINTR "Everything appears normal."
|
||||
?ELS38: EQUAL? PRSA,V?OPEN \?ELS42
|
||||
ZERO? CAMERA-COCKED /FALSE
|
||||
PUT FILM-TBL,PICTURE-NUMBER,-1
|
||||
RFALSE
|
||||
?ELS42: EQUAL? PRSA,V?SHOOT \?ELS50
|
||||
EQUAL? PRSI,CAMERA \FALSE
|
||||
CALL PERFORM,V?PHOTO,PRSO,PRSI
|
||||
RTRUE
|
||||
?ELS50: EQUAL? PRSA,V?WIND \FALSE
|
||||
FSET? CAMERA,OPENBIT /?THN61
|
||||
IN? FILM,CAMERA \?THN61
|
||||
ZERO? CAMERA-COCKED \?THN61
|
||||
GRTR? PICTURE-NUMBER,3 \?ELS60
|
||||
?THN61: PRINTR "You try to cock it, but the lever won't move."
|
||||
?ELS60: INC 'PICTURE-NUMBER
|
||||
SET 'CAMERA-COCKED,TRUE-VALUE
|
||||
PRINTR "Okay."
|
||||
|
||||
|
||||
.FUNCT FILM-F
|
||||
EQUAL? PRSA,V?WIND \?ELS5
|
||||
CALL PERFORM,PRSA,CAMERA
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
||||
PRINTR "It looks like instant-developing film, in a special miniature format."
|
||||
|
||||
|
||||
.FUNCT GLASS-F,X,CNT
|
||||
EQUAL? PRSA,V?LOOK-THROUGH \?ELS5
|
||||
PRINTR "Everything appears bigger."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE,V?READ \?ELS9
|
||||
EQUAL? PRSI,GLASS \?ELS9
|
||||
EQUAL? PRSO,FILM \?ELS16
|
||||
PRINTI "With the aid of the magnifying glass you can just make out what's on the film."
|
||||
ZERO? PICTURE-NUMBER \?CND19
|
||||
PRINTR " The whole film is unexposed."
|
||||
?CND19: CRLF
|
||||
SET 'CNT,1
|
||||
?PRG24: PRINTI "Picture "
|
||||
PRINTN CNT
|
||||
PRINTI " is "
|
||||
GET FILM-TBL,CNT >X
|
||||
ZERO? X \?ELS30
|
||||
PRINTI "unexposed."
|
||||
JUMP ?CND28
|
||||
?ELS30: EQUAL? -1,X \?ELS34
|
||||
PRINTI "fogged."
|
||||
JUMP ?CND28
|
||||
?ELS34: PRINTI "a picture of "
|
||||
EQUAL? X,GLOBAL-OBJECTS \?ELS43
|
||||
PRINTI "something you can't make out."
|
||||
JUMP ?CND28
|
||||
?ELS43: FSET? X,WINDOWBIT \?ELS47
|
||||
PRINTI "a window."
|
||||
JUMP ?CND28
|
||||
?ELS47: ZERO? X /?ELS51
|
||||
CALL2 PRINTA,X
|
||||
PRINTI "."
|
||||
JUMP ?CND28
|
||||
?ELS51: PRINTI "nothing."
|
||||
?CND28: CRLF
|
||||
IGRTR? 'CNT,4 \?PRG24
|
||||
RTRUE
|
||||
?ELS16: EQUAL? PRSO,GLASS \?ELS63
|
||||
CALL1 HAR-HAR
|
||||
RSTACK
|
||||
?ELS63: EQUAL? PRSO,PLAYER,MIRROR \?ELS65
|
||||
PRINTR "You see yourself, only bigger and uglier than ever. Ugh!"
|
||||
?ELS65: CALL HE-SHE-IT,PRSO,TRUE-VALUE,STR?10
|
||||
PRINTR " the same, only much larger."
|
||||
?ELS9: EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
||||
EQUAL? PRSO,GLASS \FALSE
|
||||
ZERO? PRSI /FALSE
|
||||
CALL PERFORM,V?READ,PRSI,PRSO
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MCGUFFIN-F
|
||||
EQUAL? PRSA,V?MUNG \?ELS5
|
||||
SET 'CLOCK-WAIT,TRUE-VALUE
|
||||
PRINTR "(How do you want to do that?)"
|
||||
?ELS5: EQUAL? PRSA,V?CHANGE \FALSE
|
||||
EQUAL? PRSI,PEN \FALSE
|
||||
FSET MCGUFFIN,LOCKED
|
||||
PRINTI "With a deft hand, you alter"
|
||||
CALL2 HIM-HER-IT,MCGUFFIN
|
||||
PRINTR " in a subtle way so that it conveys serious disinformation."
|
||||
|
||||
|
||||
.FUNCT SPY-LIST-F,X
|
||||
EQUAL? PRSA,V?EAT \?ELS5
|
||||
MOVE PRSO,LIMBO-FWD
|
||||
PRINTR "Gulp!"
|
||||
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \?ELS9
|
||||
ZERO? LIST-RUBBED /?ELS14
|
||||
PRINTI "Examining the "
|
||||
PRINTD SPY-LIST
|
||||
CALL1 PAD-READ
|
||||
RSTACK
|
||||
?ELS14: EQUAL? P-ADVERB,W?CAREFULLY \?ELS19
|
||||
PRINTI "There are some shiny lines on the "
|
||||
PRINTD SPY-LIST
|
||||
PRINTR ", maybe invisible ink."
|
||||
?ELS19: PRINTI "There doesn't seem to be anything written on the "
|
||||
PRINTD SPY-LIST
|
||||
PRINTR "."
|
||||
?ELS9: EQUAL? PRSA,V?HEAT \FALSE
|
||||
ZERO? PRSI \?ELS32
|
||||
PRINTR "It heats up like ordinary newsprint."
|
||||
?ELS32: EQUAL? PRSI,LIGHTER \?ELS36
|
||||
SET 'LIST-RUBBED,TRUE-VALUE
|
||||
PRINTI "Heating"
|
||||
CALL2 HIM-HER-IT,SPY-LIST
|
||||
PRINTI " with"
|
||||
CALL2 HIM-HER-IT,PRSI
|
||||
CALL1 PAD-READ
|
||||
RSTACK
|
||||
?ELS36: PRINTI "Nothing "
|
||||
ZERO? LIST-RUBBED /?CND43
|
||||
PRINTI "new "
|
||||
?CND43: PRINTR "appears."
|
||||
|
||||
|
||||
.FUNCT PAD-READ,CNT,OBJ
|
||||
FSET? SPY-LIST,MUNGBIT \?CND1
|
||||
PRINTR " reveals nothing intelligible."
|
||||
?CND1: PRINTI " shows two things written on it"
|
||||
EQUAL? VARIATION,3,4 \?CND8
|
||||
PRINTI ", which you easily translate into English"
|
||||
?CND8: PRINTI ":
|
||||
"
|
||||
SET 'CNT,6
|
||||
?PRG15: GET PASS-TABLE,CNT >OBJ
|
||||
EQUAL? OBJ,PASSWORD,PASSOBJECT \?CND17
|
||||
PRINTI " "
|
||||
PRINTD OBJ
|
||||
CRLF
|
||||
?CND17: DLESS? 'CNT,1 \?PRG15
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT BRIEFCASE-F,RARG=0
|
||||
EQUAL? RARG,M-OBJDESC \?ELS5
|
||||
PRINTI "A black briefcase with a chrome latch is here, "
|
||||
FSET? BRIEFCASE,SURFACEBIT \?ELS12
|
||||
PRINTR "closed."
|
||||
?ELS12: PRINTR "open."
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS20
|
||||
PRINTI "It's an expensive-looking case, built as sturdy as a tank."
|
||||
EQUAL? P-ADVERB,W?CAREFULLY \?CND23
|
||||
CALL1 CASE-CAREFUL
|
||||
?CND23: CRLF
|
||||
RTRUE
|
||||
?ELS20: CALL1 REMOTE-VERB?
|
||||
ZERO? STACK \FALSE
|
||||
EQUAL? PRSA,V?MOVE,V?TAKE \?ELS29
|
||||
EQUAL? PRSO,BRIEFCASE \?ELS29
|
||||
LOC BRIEFCASE
|
||||
FSET? STACK,PERSONBIT /FALSE
|
||||
?ELS29: LOC BRIEFCASE
|
||||
FSET? STACK,PERSONBIT \?ELS33
|
||||
CALL2 NOT-HOLDING?,BRIEFCASE
|
||||
ZERO? STACK \TRUE
|
||||
?ELS33: EQUAL? PRSA,V?MOVE,V?TAKE \?ELS37
|
||||
EQUAL? PRSO,BRIEFCASE \?ELS37
|
||||
FSET? BRIEFCASE,OPENBIT \?ELS44
|
||||
ZERO? PLAYER-SEATED \?ELS44
|
||||
CALL TOO-BAD-BUT,BRIEFCASE,STR?12
|
||||
RTRUE
|
||||
?ELS44: FSET? BRIEFCASE,SURFACEBIT \FALSE
|
||||
CALL2 OBJS-SLIDE-OFF,BRIEFCASE
|
||||
RFALSE
|
||||
?ELS37: EQUAL? PRSA,V?OPEN \?ELS50
|
||||
FSET? BRIEFCASE-LATCH,OPENBIT /?ELS55
|
||||
CALL2 THIS-IS-IT,BRIEFCASE-LATCH
|
||||
PRINTR "The latch is closed."
|
||||
?ELS55: IN? BRIEFCASE,PLAYER \?ELS59
|
||||
ZERO? PLAYER-SEATED \?ELS59
|
||||
CALL2 TBL-FIRST?,BRIEFCASE-TBL
|
||||
ZERO? STACK /?ELS59
|
||||
PRINTR "You open it a crack before you realize that everything inside would fall out. You quickly close it again."
|
||||
?ELS59: ZERO? LATCH-TURNED \?ELS65
|
||||
FSET? BRIEFCASE,SURFACEBIT \?ELS65
|
||||
CALL1 TELL-GAS
|
||||
RSTACK
|
||||
?ELS65: FSET BRIEFCASE,OPENBIT
|
||||
CALL TBL-TO-INSIDE,BRIEFCASE,BRIEFCASE-TBL
|
||||
RTRUE
|
||||
?ELS50: EQUAL? PRSA,V?CLOSE \?ELS71
|
||||
FCLEAR BRIEFCASE,OPENBIT
|
||||
CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE
|
||||
RSTACK
|
||||
?ELS71: EQUAL? PRSA,V?LOOK-INSIDE \?ELS73
|
||||
FSET? BRIEFCASE,OPENBIT /FALSE
|
||||
CALL TOO-BAD-BUT,BRIEFCASE,STR?13
|
||||
RTRUE
|
||||
?ELS73: EQUAL? PRSA,V?SHAKE \FALSE
|
||||
GET BRIEFCASE-TBL,1
|
||||
ZERO? STACK /FALSE
|
||||
PRINTR "Hmm. Something's in there."
|
||||
|
||||
|
||||
.FUNCT TELL-GAS,YOU?=1
|
||||
ZERO? YOU? /?ELS3
|
||||
PRINTI "As the lid is lifted, you hear an explosion from inside the case. P"
|
||||
JUMP ?CND1
|
||||
?ELS3: PRINTI "Too late, you notice that the compartment is filled with p"
|
||||
?CND1: PRINTI "ale yellow gas, practically invisible"
|
||||
ZERO? YOU? /?CND13
|
||||
PRINTI ", hisses out of tiny vents set into the briefcase's spine"
|
||||
?CND13: PRINTI ". Holding your breath will not help: this cunning creation of the chemical warfare chaps is absorbed through the skin. Well, ""only the good die young."""
|
||||
CRLF
|
||||
CRLF
|
||||
CALL1 FINISH
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT LATCH-F
|
||||
CALL2 VISIBLE?,BRIEFCASE
|
||||
ZERO? STACK \?ELS5
|
||||
CALL2 NOT-HERE,BRIEFCASE-LATCH
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
|
||||
PRINTI "The latch on the briefcase is operated by sliding a short metal bar that points "
|
||||
ZERO? LATCH-TURNED \?ELS12
|
||||
PRINTI "away from "
|
||||
JUMP ?CND10
|
||||
?ELS12: PRINTI "toward "
|
||||
?CND10: PRINTI "the handle of the briefcase. The latch is "
|
||||
FSET? BRIEFCASE-LATCH,OPENBIT /?ELS23
|
||||
PRINTI "closed."
|
||||
JUMP ?CND21
|
||||
?ELS23: PRINTI "open."
|
||||
?CND21: EQUAL? P-ADVERB,W?CAREFULLY \?CND30
|
||||
CALL1 CASE-CAREFUL
|
||||
?CND30: CRLF
|
||||
RTRUE
|
||||
?ELS7: CALL1 REMOTE-VERB?
|
||||
ZERO? STACK \FALSE
|
||||
LOC BRIEFCASE
|
||||
FSET? STACK,PERSONBIT \?ELS36
|
||||
CALL2 NOT-HOLDING?,BRIEFCASE
|
||||
ZERO? STACK \TRUE
|
||||
?ELS36: EQUAL? PRSA,V?TAKE,V?REMOVE \?ELS40
|
||||
CALL1 YOU-CANT
|
||||
RSTACK
|
||||
?ELS40: EQUAL? PRSA,V?AIM,V?TURN \?ELS42
|
||||
EQUAL? PRSO,BRIEFCASE-LATCH \?ELS42
|
||||
ZERO? LATCH-TURNED \?PRD45
|
||||
PUSH 1
|
||||
JUMP ?PRD46
|
||||
?PRD45: PUSH 0
|
||||
?PRD46: SET 'LATCH-TURNED,STACK
|
||||
PRINTR "A mechanical click comes from within the briefcase."
|
||||
?ELS42: EQUAL? PRSA,V?CLOSE \?ELS50
|
||||
FSET? BRIEFCASE,OPENBIT \?ELS55
|
||||
CALL TOO-BAD-BUT,BRIEFCASE,STR?12
|
||||
RTRUE
|
||||
?ELS55: FSET? BRIEFCASE-LATCH,OPENBIT /?ELS57
|
||||
CALL ALREADY,BRIEFCASE-LATCH,STR?13
|
||||
RTRUE
|
||||
?ELS57: CALL OKAY,BRIEFCASE-LATCH,STR?13
|
||||
RSTACK
|
||||
?ELS50: EQUAL? PRSA,V?RUB,V?SLIDE,V?MOVE /?THN64
|
||||
EQUAL? PRSA,V?RAISE,V?OPEN,V?PUSH \FALSE
|
||||
?THN64: EQUAL? PRSO,BRIEFCASE-LATCH \FALSE
|
||||
FSET? BRIEFCASE-LATCH,OPENBIT /?ELS70
|
||||
FSET BRIEFCASE-LATCH,OPENBIT
|
||||
PRINTI "The metal latch snaps open."
|
||||
ZERO? LATCH-TURNED \?CND73
|
||||
PRINTI " At the same time, a loud thump comes from within the briefcase."
|
||||
?CND73: CRLF
|
||||
RTRUE
|
||||
?ELS70: CALL ALREADY,PRSO,STR?12
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT CASE-CAREFUL
|
||||
PRINTI " A careful examination shows that the latch can be turned as well as opened. And there are tiny vents set into the briefcase's spine."
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT BRIEFCASE-HANDLE-F
|
||||
CALL1 REMOTE-VERB?
|
||||
ZERO? STACK \FALSE
|
||||
CALL2 VISIBLE?,BRIEFCASE
|
||||
ZERO? STACK \?ELS7
|
||||
CALL2 NOT-HERE,BRIEFCASE-HANDLE
|
||||
RSTACK
|
||||
?ELS7: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
CALL1 NOTHING-SPECIAL
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PLAQUE-F
|
||||
EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
||||
PRINTI "If you could read the language, it would say:
|
||||
""This is the CHECKPOINT. All passengers who are crossing the frontier must pass through customs inspection before boarding the train.
|
||||
CHECKPOINT is also a trademark and product of Infocom, Inc., "
|
||||
GET CREDITS,0
|
||||
SUB STACK,1
|
||||
MOD VARIATION,STACK
|
||||
ADD 1,STACK
|
||||
CALL PICK-ONE-NEW,CREDITS,STACK
|
||||
PRINT STACK
|
||||
PRINTR "."""
|
||||
|
||||
|
||||
.FUNCT TBL-FIRST?,TBL,OFFS=0,THING,MAX
|
||||
GET TBL,0 >MAX
|
||||
?PRG1: IGRTR? 'OFFS,MAX /FALSE
|
||||
GET TBL,OFFS >THING
|
||||
EQUAL? 0,THING /?PRG1
|
||||
RETURN THING
|
||||
|
||||
|
||||
.FUNCT TBL-TO-INSIDE,OBJ,TBL,STR=0,THING,OFFS=0,MAX
|
||||
FSET? OBJ,SURFACEBIT /?CND1
|
||||
CALL ALREADY,OBJ,STR?12
|
||||
RTRUE
|
||||
?CND1: FIRST? OBJ \?CND4
|
||||
CALL2 OBJS-SLIDE-OFF,OBJ
|
||||
?CND4: GET TBL,0 >MAX
|
||||
ZERO? DEBUG \?THN10
|
||||
ZERO? STR \?ELS9
|
||||
?THN10: ZERO? STR /?CND7
|
||||
PRINTC 91
|
||||
PRINTI "Opened."
|
||||
CRLF
|
||||
JUMP ?CND7
|
||||
?ELS9: EQUAL? STR,1 /?CND7
|
||||
PRINT STR
|
||||
CRLF
|
||||
?CND7: FCLEAR OBJ,SURFACEBIT
|
||||
?PRG22: IGRTR? 'OFFS,MAX \?ELS26
|
||||
JUMP ?REP23
|
||||
?ELS26: GET TBL,OFFS >THING
|
||||
ZERO? THING /?PRG22
|
||||
IN? OBJ,PLAYER \?CND29
|
||||
FSET THING,TAKEBIT
|
||||
?CND29: MOVE THING,OBJ
|
||||
PUT TBL,OFFS,0
|
||||
JUMP ?PRG22
|
||||
?REP23: EQUAL? STR,1 /TRUE
|
||||
FIRST? OBJ \TRUE
|
||||
PRINTI "Opening"
|
||||
CALL2 HIM-HER-IT,OBJ
|
||||
PRINTI " reveals "
|
||||
CALL2 PRINT-CONTENTS,OBJ
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT INSIDE-OBJ-TO,TBL,OBJ,STR=0,OFFS=0,F,N
|
||||
FSET? OBJ,SURFACEBIT \?CND1
|
||||
CALL ALREADY,OBJ,STR?13
|
||||
RTRUE
|
||||
?CND1: FSET OBJ,SURFACEBIT
|
||||
ZERO? DEBUG \?THN7
|
||||
ZERO? STR \?ELS6
|
||||
?THN7: ZERO? STR /?CND9
|
||||
PRINTC 91
|
||||
?CND9: PRINTI "Closed."
|
||||
CRLF
|
||||
JUMP ?CND4
|
||||
?ELS6: EQUAL? STR,1 /?CND4
|
||||
PRINT STR
|
||||
CRLF
|
||||
?CND4: FIRST? OBJ >F \TRUE
|
||||
?PRG22: ZERO? F /TRUE
|
||||
SET 'N,F
|
||||
NEXT? N >F /?KLU37
|
||||
?KLU37: MOVE N,LIMBO-FWD
|
||||
?PRG32: INC 'OFFS
|
||||
GET TBL,OFFS
|
||||
ZERO? STACK \?PRG32
|
||||
PUT TBL,OFFS,N
|
||||
JUMP ?PRG22
|
||||
|
||||
|
||||
.FUNCT OBJS-SLIDE-OFF,OBJ,SLIDE=0,THERE,F,N
|
||||
LOC OBJ >THERE
|
||||
EQUAL? THERE,WINNER \?CND1
|
||||
SET 'THERE,HERE
|
||||
?CND1: FIRST? OBJ >F /?KLU22
|
||||
?KLU22:
|
||||
?PRG4: ZERO? F \?ELS8
|
||||
JUMP ?REP5
|
||||
?ELS8: SET 'N,F
|
||||
NEXT? N >F /?KLU23
|
||||
?KLU23: MOVE N,THERE
|
||||
SET 'SLIDE,TRUE-VALUE
|
||||
JUMP ?PRG4
|
||||
?REP5: FIRST? OBJ >F /?KLU24
|
||||
?KLU24: ZERO? SLIDE /FALSE
|
||||
PRINTI "Everything on"
|
||||
CALL2 HIM-HER-IT,OBJ
|
||||
PRINTI " falls off."
|
||||
CRLF
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT NEWSPAPER-F
|
||||
EQUAL? PRSA,V?OPEN \FALSE
|
||||
PRINTR "You flip through the pages but find nothing readable."
|
||||
|
||||
|
||||
.FUNCT CIGARETTE-F
|
||||
EQUAL? PRSA,V?BUY \?ELS5
|
||||
IN? MACHINE,HERE \FALSE
|
||||
GETP PLAYER,P?SOUTH
|
||||
GRTR? STACK,0 /?CND11
|
||||
PRINTI "You dig in "
|
||||
PRINTD POCKET
|
||||
PRINTR " but find no cash."
|
||||
?CND11: SET 'P-DOLLAR-FLAG,TRUE-VALUE
|
||||
SET 'P-AMOUNT,1
|
||||
CALL PERFORM,V?PUT-IN,INTNUM,MACHINE
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-ON,V?SMOKE \FALSE
|
||||
PRINTR "You think it over and decide that this mission is dangerous enough already."
|
||||
|
||||
|
||||
.FUNCT LIGHTER-F
|
||||
EQUAL? PRSA,V?HOLD-UNDER \?ELS5
|
||||
EQUAL? PRSO,LIGHTER \FALSE
|
||||
CALL PERFORM,V?HEAT,PRSI,PRSO
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-OFF \?ELS12
|
||||
PRINTR "It stays off by itself!"
|
||||
?ELS12: EQUAL? PRSA,V?LAMP-ON \FALSE
|
||||
PRINTR "The lighter spurts to life for a minute until you turn it off again."
|
||||
|
||||
|
||||
.FUNCT FLOWER-F
|
||||
FSET? FLOWER-1,NDESCBIT \?ELS5
|
||||
CALL2 SEARCHING-FOR?,FLOWER-1
|
||||
RSTACK
|
||||
?ELS5: FSET? FLOWER-2,NDESCBIT \FALSE
|
||||
CALL2 SEARCHING-FOR?,FLOWER-2
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT SEARCHING-FOR?,OBJ
|
||||
EQUAL? PRSA,V?EXAMINE /?THN6
|
||||
CALL2 SNEAKY-TAKE?,OBJ
|
||||
ZERO? STACK /?ELS5
|
||||
?THN6: PRINTI "You haven't found "
|
||||
CALL2 PRINTA,OBJ
|
||||
PRINTR " yet!"
|
||||
?ELS5: IN? OBJ,HERE \FALSE
|
||||
EQUAL? PRSA,V?FIND /?THN14
|
||||
EQUAL? PRSA,V?SEARCH-FOR \FALSE
|
||||
EQUAL? PRSI,OBJ \FALSE
|
||||
?THN14: FCLEAR OBJ,NDESCBIT
|
||||
FSET OBJ,TAKEBIT
|
||||
MOVE OBJ,WINNER
|
||||
PRINTI "You find "
|
||||
CALL2 PRINTA,OBJ
|
||||
PRINTR " in short order and take it."
|
||||
|
||||
|
||||
.FUNCT BLOOD-SPOT-DESC,X
|
||||
IN? BLOOD-SPOT,COMPARTMENT-START \FALSE
|
||||
FSET? BLOOD-SPOT,TOUCHBIT \?ELS7
|
||||
PRINTR "A spot of blood is still on the floor."
|
||||
?ELS7: FSET BLOOD-SPOT,TOUCHBIT
|
||||
PRINTR "Your sharp eyes notice a spot of blood on the floor."
|
||||
|
||||
|
||||
.FUNCT FIND-SEARCH
|
||||
EQUAL? PRSA,V?FIND \?ELS5
|
||||
RETURN PRSO
|
||||
?ELS5: EQUAL? PRSA,V?SEARCH-FOR \FALSE
|
||||
RETURN PRSI
|
||||
|
||||
|
||||
.FUNCT BLOOD-SPOT-F,OBJ
|
||||
CALL1 FIND-SEARCH >OBJ
|
||||
ZERO? OBJ /?ELS5
|
||||
LOC OBJ
|
||||
EQUAL? HERE,STACK \FALSE
|
||||
FSET? OBJ,NDESCBIT \FALSE
|
||||
FCLEAR OBJ,NDESCBIT
|
||||
CALL HE-SHE-IT,WINNER,TRUE-VALUE,STR?21
|
||||
PRINTR " it in short order."
|
||||
?ELS5: EQUAL? PRSA,V?TAKE \?ELS16
|
||||
PRINTI "You can't pick"
|
||||
CALL2 HIM-HER-IT,PRSO
|
||||
PRINTR " up with your bare hands!"
|
||||
?ELS16: EQUAL? PRSA,V?BRUSH,V?TAKE-WITH \FALSE
|
||||
EQUAL? PRSI,SPY-LIST /?THN26
|
||||
ZERO? PRSI \FALSE
|
||||
IN? SPY-LIST,WINNER \FALSE
|
||||
?THN26: MOVE PRSO,SPY-LIST
|
||||
FCLEAR PRSO,NDESCBIT
|
||||
PRINTR "Okay."
|
||||
|
||||
|
||||
.FUNCT KNIFE-F
|
||||
CALL KNIFE-NAPKIN-F,KNIFE,COOK
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT KNIFE-NAPKIN-F,OBJ,PER
|
||||
FSET? OBJ,NDESCBIT \FALSE
|
||||
IN? PER,HERE \?ELS10
|
||||
CALL2 BRIBED?,PER
|
||||
ZERO? STACK \?ELS10
|
||||
FCLEAR PER,TOUCHBIT
|
||||
PUTP PER,P?LDESC,1
|
||||
CALL2 START-SENTENCE,PER
|
||||
PRINTI " says, "
|
||||
CALL1 PRODUCE-GIBBERISH
|
||||
RSTACK
|
||||
?ELS10: CALL2 SEARCHING-FOR?,OBJ
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NAPKIN-F
|
||||
CALL KNIFE-NAPKIN-F,NAPKIN,WAITER
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT SNEAKY-TAKE?,OBJ
|
||||
EQUAL? PRSO,OBJ \?ELS5
|
||||
EQUAL? PRSA,V?TAKE /TRUE
|
||||
GETB P-SYNTAX,P-SLOC1
|
||||
BTST STACK,STAKE /TRUE
|
||||
?ELS5: EQUAL? PRSI,OBJ \FALSE
|
||||
GETB P-SYNTAX,P-SLOC2
|
||||
BTST STACK,STAKE /TRUE
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue