checkpoint/cars.zil
historicalsource 8ae301e53b Final Revision
2019-04-13 22:12:44 -04:00

747 lines
20 KiB
Plaintext

"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>)>>