bureaucracy/jet.zil
historicalsource c6e21a6a2e Final Revision
2019-04-13 22:29:36 -04:00

1371 lines
38 KiB
Plaintext

"JET for
BUREAUCRACY
(c) Copyright 1985 Infocom, Inc. All Rights Reserved."
;"ON-FLIGHT = 1 -> HIJACKED
2 -> NO VISA
3 -> PARACHUTE TEAM
This GLOBAL is set up in AIRPORT, depending on your gate. The ON-FLIGHT will
determine descriptions of almost everything, as well as what happens on the
flight.
"
;"The generic airplane"
<GLOBAL A-INIT <>>
<ROOM A-ENTRANCE
(LOC ROOMS)
(DESC "Airplane Entrance")
(EAST TO A-GALLEY)
(FLAGS AIRPLANEBIT)
(ACTION A-ENTRANCE-F)>
<ROUTINE A-ENTRANCE-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "Default description of " D ,HERE "." CR>)
(<AND <EQUAL? .RARG ,M-ENTER> <NOT ,A-INIT>>
<QUEUE I-TERMINAL 0>
<SETG A-INIT T>
<INIT-AIRPLANE>
<RTRUE>)>>
<ROUTINE INIT-AIRPLANE ()
<RTRUE>>
<ROOM A-COCKPIT
(LOC ROOMS)
(DESC "Cockpit")
(OUT TO A-GALLEY IF A-COCKPIT-DOOR IS OPEN)
(SOUTH TO A-GALLEY IF A-COCKPIT-DOOR IS OPEN)
(FLAGS AIRPLANEBIT)
(GLOBAL A-COCKPIT-DOOR)
(ACTION A-COCKPIT-F)>
<OBJECT A-COCKPIT-DOOR
(LOC LOCAL-GLOBALS)
(DESC "cockpit door")
(SYNONYM DOOR)
(ADJECTIVE COCKPIT)
(FLAGS DOORBIT)>
<ROUTINE A-COCKPIT-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "Default description of " D ,HERE "." CR>)>>
<ROOM A-GALLEY
(LOC ROOMS)
(DESC "Galley")
(NORTH TO A-COCKPIT IF A-COCKPIT-DOOR IS OPEN)
(SOUTH TO A-1)
(WEST TO A-ENTRANCE)
(GLOBAL A-COCKPIT-DOOR)
(ACTION A-GALLEY-F)>
<ROUTINE A-GALLEY-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "Default description of " D ,HERE "." CR>)>>
<ROOM A-1
(LOC ROOMS)
(DESC "Aisle 1")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-GALLEY)
(SOUTH TO A-2)
(FLAGS AIRPLANEBIT)
(AISLE 1)
(ACTION A-AISLE-F)>
<ROUTINE A-AISLE-F (RARG "AUX" ST A (CNT 0) (NS 0))
<COND (<EQUAL? .RARG ,M-LOOK>
<SET A <GETP ,HERE ,P?AISLE>>
<TELL
"You are ">
<COND (,SEATED?
<TELL "in seat " N .A>
<PRINTC <+ 64 </ ,SEATED? 1000>>>)
(T
<TELL "standing in the middle of aisle " N .A>)>
<TELL ". ">
<SET ST <SEAT-INFO .A>>
<REPEAT ()
;"What about seat you're in?"
<COND (<G? .CNT 4> <RETURN>)>
<COND (<0? <GET .ST .CNT>>
<COND (<0? .NS>
<TELL "Seat ">)
(T
<TELL " and seat ">)>
<SET NS <+ .NS 1>>
<TELL N .A>
<PRINTC <+ 65 .CNT>>)>
<SET CNT <+ .CNT 1>>>
<COND (<0? .NS>
<TELL "All of the seats in this aisle are taken.">)
(<1? .NS>
<TELL " is the only unoccupied one here.">)
(T
<TELL " are unoccupied.">)>
<COND (,SEATED?
<TELL " The seat pocket in front of you
contains the usual printed materials.">)>
<CRLF>)>>
<ROUTINE SEAT-INFO (A)
<REST ,SEATING-TBL <* <- .A 1> 8>>>
<ROUTINE A-SEAT-EXIT ()
<TELL
"If you want to sit down here, simply indicate the seat you're interested
in (e.g. 13B)." CR>
<RFALSE>>
<ROOM A-2
(LOC ROOMS)
(DESC "Aisle 2")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-1)
(SOUTH TO A-3)
(FLAGS AIRPLANEBIT)
(AISLE 2)
(ACTION A-AISLE-F)>
<ROOM A-3
(LOC ROOMS)
(DESC "Aisle 3")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-2)
(SOUTH TO A-4)
(FLAGS AIRPLANEBIT)
(AISLE 3)
(ACTION A-AISLE-F)>
<ROOM A-4
(LOC ROOMS)
(DESC "Aisle 4")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-3)
(SOUTH TO A-5)
(FLAGS AIRPLANEBIT)
(AISLE 4)
(ACTION A-AISLE-F)>
<ROOM A-5
(LOC ROOMS)
(DESC "Aisle 5")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-4)
(SOUTH TO A-6)
(FLAGS AIRPLANEBIT)
(AISLE 5)
(ACTION A-AISLE-F)>
<ROOM A-6
(LOC ROOMS)
(DESC "Aisle 6")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-5)
(SOUTH TO A-7)
(FLAGS AIRPLANEBIT)
(AISLE 6)
(ACTION A-AISLE-F)>
<ROOM A-7
(LOC ROOMS)
(DESC "Aisle 7")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-6)
(SOUTH TO A-8)
(FLAGS AIRPLANEBIT)
(AISLE 7)
(ACTION A-AISLE-F)>
<ROOM A-8
(LOC ROOMS)
(DESC "Aisle 8")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-7)
(SOUTH TO A-9)
(FLAGS AIRPLANEBIT)
(AISLE 8)
(ACTION A-AISLE-F)>
<ROOM A-9
(LOC ROOMS)
(DESC "Aisle 9")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-8)
(SOUTH TO A-10)
(FLAGS AIRPLANEBIT)
(AISLE 9)
(ACTION A-AISLE-F)>
<ROOM A-10
(LOC ROOMS)
(DESC "Aisle 10")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-9)
(SOUTH TO A-11)
(FLAGS AIRPLANEBIT)
(AISLE 10)
(ACTION A-AISLE-F)>
<ROOM A-11
(LOC ROOMS)
(DESC "Aisle 11")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-10)
(SOUTH TO A-12)
(FLAGS AIRPLANEBIT)
(AISLE 11)
(ACTION A-AISLE-F)>
<ROOM A-12
(LOC ROOMS)
(DESC "Aisle 12")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-11)
(SOUTH TO A-13)
(FLAGS AIRPLANEBIT)
(AISLE 12)
(ACTION A-AISLE-F)>
<ROOM A-13
(LOC ROOMS)
(DESC "Aisle 13")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-12)
(SOUTH TO A-14)
(FLAGS AIRPLANEBIT)
(AISLE 13)
(ACTION A-AISLE-F)>
<ROOM A-14
(LOC ROOMS)
(DESC "Aisle 14")
(EAST PER A-SEAT-EXIT)
(WEST PER A-SEAT-EXIT)
(NORTH TO A-13)
(SOUTH TO A-REAR)
(FLAGS AIRPLANEBIT)
(AISLE 14)
(ACTION A-AISLE-F)>
<ROOM A-REAR
(LOC ROOMS)
(DESC "Airplane, near Tail")
(EAST TO A-REAR-E)
(WEST TO A-REAR-W)
(NORTH TO A-14)
(SOUTH TO A-LAVATORY IF A-LAVATORY-DOOR IS OPEN)
(IN TO A-LAVATORY IF A-LAVATORY-DOOR IS OPEN)
(FLAGS AIRPLANEBIT)
(GLOBAL A-LAVATORY-DOOR)
(ACTION A-REAR-F)>
<ROUTINE A-REAR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "Default description of " D ,HERE "." CR>)>>
<ROOM A-LAVATORY
(LOC ROOMS)
(DESC "Lavatory")
(OUT TO A-REAR IF A-LAVATORY-DOOR IS OPEN)
(NORTH TO A-REAR IF A-LAVATORY-DOOR IS OPEN)
(FLAGS AIRPLANEBIT)
(GLOBAL A-LAVATORY-DOOR)
(ACTION A-LAVATORY-F)>
<ROUTINE A-LAVATORY-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "Not described yet." CR>)>>
<OBJECT A-LAVATORY-DOOR
(LOC LOCAL-GLOBALS)
(DESC "lavatory door")
(SYNONYM DOOR)
(ADJECTIVE LAVATORY)
(FLAGS DOORBIT)
(ACTION A-LAVATORY-DOOR-F)>
<ROUTINE A-LAVATORY-DOOR-F ()
<TELL "Place holder." CR>>
<ROOM A-REAR-E
(LOC ROOMS)
(DESC "East Emergency Exit")
(WEST TO A-REAR)
(OUT TO FREE-FALL IF A-EMERGENCY-DOOR IS OPEN)
(FLAGS AIRPLANEBIT)
(GLOBAL A-EMERGENCY-DOOR)
(ACTION A-REAR-EW-F)>
<ROUTINE A-REAR-EW-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL "Default description of " D ,HERE "." CR>)>>
<ROOM A-REAR-W
(LOC ROOMS)
(DESC "West Emergency Exit")
(EAST TO A-REAR)
(OUT TO FREE-FALL IF A-EMERGENCY-DOOR IS OPEN)
(FLAGS AIRPLANEBIT)
(GLOBAL A-EMERGENCY-DOOR)
(ACTION A-REAR-EW-F)>
<OBJECT A-EMERGENCY-DOOR
(LOC LOCAL-GLOBALS)
(DESC "emergency door")
(SYNONYM DOOR)
(ADJECTIVE EMERGENCY)
(FLAGS DOORBIT)>
<OBJECT MOVIE
(LOC GLOBAL-OBJECTS)
(DESC "in-flight movie")
(SYNONYM MOVIE FILM FLICK)
(ADJECTIVE IN-FLIGHT)
(ACTION MOVIE-F)>
<ROUTINE MOVIE-F ()
<COND (<NOT <FSET? ,HERE ,AIRPLANEBIT>>
<TELL
"There's certainly no movie around here." CR>)
(<VERB? EXAMINE>
<COND (<EQUAL? ,MOVIE-TIME 0>
<TELL
"There's no movie playing at this time." CR>)
(T
<TELL <GET <GET ,MOVIE-TBL ,ON-FLIGHT>
,MOVIE-TIME> CR>
<COND (<EQUAL? ,MOVIE-TIME 5>
<SETG MOVIE-TIME -1>
<QUEUE I-MOVIE 0>
<TELL
"The in-flight movie ends, the lights come up, and the stewardess pulls
up the screen at the front of the plane." CR>
<START-AIRPLANE-FUN>)
(T
<V-WAIT 10 T>)>
<RTRUE>)>)>>
<ROUTINE START-AIRPLANE-FUN ()
<COND (<EQUAL? ,ON-FLIGHT 1>
<START-HIJACK>)
(<EQUAL? ,ON-FLIGHT 2>
<START-VISA>)
(T
<START-JUMP>)>>
<ROUTINE START-JUMP () <RTRUE>>
<ROUTINE START-VISA ()
<ENABLE <QUEUE I-VISA-MESSAGE 3>>
<RTRUE>>
<ROUTINE I-VISA-MESSAGE ()
<TELL
"A message comes over the PA system in Zalagasan and then English: \"This
is your Captain speaking. We are making our initial descent into Bananareeve.
At this time, our cabin attendants will be passing out Immigration Forms which
must be completed prior to landing. Thank you for your cooperation and we hope
you have enjoyed your flight thus far.\"" CR>
<ENABLE <QUEUE I-VISA-1 3>>
<RTRUE>>
<ROUTINE I-VISA-1 ()
<TELL
"A stewardess approaches you and hands you a form." CR>
<MOVE ,IMMIGRATION-FORM ,WINNER>
<ENABLE <QUEUE I-VISA-2 10>>
<RTRUE>>
<ROUTINE I-VISA-2 ()
<TELL
"The stewardess returns and asks for your completed immigration form." CR>
<MOVE ,A-ATTENDANT ,HERE>
<ENABLE <QUEUE I-VISA-3 -1>>
<PUTP ,PROTAGONIST ,P?ACTION ,A-FORM-WAIT>
<RTRUE>>
<GLOBAL FORM-WAIT 0>
<GLOBAL VISA-WAIT 0>
<ROUTINE ASK-TO-LEAVE ()
<TELL CR
"\"I'm sorry, sir, but I'm going to have to ask you to leave.\" She
motions to the purser who motions you toward the back of the plane." CR>
<QUEUE I-VISA-3 0>
<PUTP ,PROTAGONIST ,P?ACTION ,WALK-THE-PLANK>
<ENABLE <QUEUE I-VISA-4 -1>>
<RTRUE>>
<ROUTINE I-VISA-4 ()
<COND (<EQUAL? ,HERE ,A-REAR-W ,A-REAR-E>
<TELL CR
"The purser politely places a parachute on your back and, as he lifts
the large red handle on the emergency exit, those nice plastic oxygen
masks you've seen demonstrated hundreds of times come out. The captain
comes on the PA, explaining \"Ladies and Gentlemen, one of our passengers
is deplaining at this time, so we would suggest that you use the oxygen
masks until we can again close the rear door. Thank you.\"|
|
A rush of cold air fills the cabin as the door opens. As the purser
politely but firmly ejects you from the plane, he speaks: \"It has
been our pleasure serving you today, and if your future plans call for
air travel to Bananareeve, we hope you will again think of Air
Zalagasa.\" You start your fall into the African night...." CR CR>
<PUTP ,PROTAGONIST ,P?ACTION 0>
<GOTO ,A-MIDAIR>
<QUEUE I-VISA 0>
<RTRUE>)
(T
<RFALSE>)>>
<ROOM A-MIDAIR
(LOC ROOMS)
(DESC "Midair")
(DOWN SORRY "Inevitable.")
(ACTION A-MIDAIR-F)>
<OBJECT AIRPLANE-EXIT
(LOC A-MIDAIR)
(DESC "emergency exit")
(SYNONYM EXIT DOOR WINDOW)
(ADJECTIVE AIRPLANE EMERGENCY)
(FLAGS NDESCBIT)
(ACTION AIRPLANE-EXIT-F)>
<ROUTINE AIRPLANE-EXIT-F ()
<COND (,AT-AIRPLANE-DOOR?
<COND (<VERB? OPEN UNLOCK>
<TELL
"There's no way to open it from this side when it's locked from the
inside." CR>)
(<VERB? KNOCK>
<TELL
"After a few moments violent knocking, the stewardess turns around, revealing
a strange, suspicious-looking man carrying a yellow walkie-talkie behind her.
She seems terribly pleased to be able to serve you yet again. She cheerfully
opens the door, inquires \"May I help you?\", and thoughtfully waves goodbye
as you once again plunge headlong into the night..." CR CR>
<SETG AT-AIRPLANE-DOOR? <>>
<SETG FLY-HACK? <>>
<V-LOOK>
<RTRUE>)
(<VERB? EXAMINE>
<TELL
"Your appreciation of doors is not exceptionally high at present, but you
judge it nonetheless to be quite a servicable one." CR>)>)
(,FLY-HACK?
<TELL
"Unfortunately for you, you can't possibly get near it from here." CR>)
(T
<TELL
"Sadly, you've left the airplane and it's various means of ingress and
egress thousands of feet behind." CR>)>>
<GLOBAL MIDAIR-COUNT 0>
<GLOBAL FLY-HACK? <>>
<GLOBAL CHUTE-DEPLOYED? <>>
<GLOBAL AT-AIRPLANE-DOOR? <>>
<ROUTINE A-MIDAIR-F (RARG)
<COND (<EQUAL? .RARG ,M-LOOK>
<COND (,AT-AIRPLANE-DOOR?
<TELL
"You now have a fine view through the window of the plane's emergency exit.
Inside, the passengers and crew seem to be doing very little of the sort
of freezing and suffocating that you are starting to become accustomed to.
The stewardess who was kind enough to help with your airborne departure is
standing with her back to the window." CR>)
(,FLY-HACK?
<TELL
"You are currently freezing to death from the -20 degree temperature,
suffocating from the rarified 30,000 ft air, and, if that wasn't bad
enough, you're trailing about fifteen feet behind the emergency exit of
your flight to Bananareeve." CR>)
(,CHUTE-DEPLOYED?
<TELL
"You are falling serenely through the African night. It might be possible
to enjoy the scenery were it not for the total darkness which envelopes
you. You are suspended by a multi-colored parachute which is strapped
to your back." CR>)
(T
<TELL
"You are in free-fall somewhere above the African continent, presumably
near Bananareeve. It's pretty deserted on the ground, judging by the fact
that nothing is lighted. You are wearing a parachute on your back. A red
handle attached to a long cord hangs over your right shoulder." CR>)>)
(<EQUAL? .RARG ,M-BEG>
<COND (,FLY-HACK?
<COND (<G? <SETG FLY-HACK? <+ ,FLY-HACK? 1>> 4>
<TELL
"Your body, in its final spasms, seems unable to decide upon whether your
cause of death will be the lack of air or the frosty temperature. It is
finally decided that a toss of a coin will decide (There is a great deal
of literary licence here. In fact, the decision was to poll a few hundred
thousand synapses at random.) The winner, though, is ">
<COND (<PROB 50> <TELL "suffocation">)
(T <TELL "freezing to death">)>
<JIGS-UP ".">
<RTRUE>)>)>
<COND (<AND <EQUAL? ,MIDAIR-COUNT 0>
<VERB? WALK>
<EQUAL? ,PRSO ,P?UP>>
<TELL
"Of course, it's absurd to think you can fly, and maybe it's just the
effect of not much oxygen on not much grey matter, but you seem to have
broken your fall. This illusion is quickly broken as you notice that one
of the straps on the parachute is caught in the door of the airplane." CR>
<SETG FLY-HACK? 1>)
(<AND <VERB? WALK> <NOT <EQUAL? ,PRSO ,P?DOWN>>>
<TELL
"Your sense of direction never was very good, and the fact that you have
no visual references is not helping. You might as well get used to
\"down\"." CR>
<RTRUE>)>)
(<EQUAL? .RARG ,M-END>
<COND (<NOT ,FLY-HACK?>
<SETG MIDAIR-COUNT <+ ,MIDAIR-COUNT 1>>)>
<COND (<AND <EQUAL? ,MIDAIR-COUNT 1> <NOT ,FLY-HACK?>>
<SETG FLY-HACK? 1>
<TELL CR
"Just when you were getting used to the idea of falling to your death,
you find that one of the straps on your parachute is caught in the
emergency exit of the airplane." CR>)
(<G? ,MIDAIR-COUNT 5>
<COND (<NOT ,CHUTE-DEPLOYED?>
<JIGS-UP
"Your fall comes to a rather abrupt stop as your body makes contact with
terra firma. Although you're dead, it might interest you to know that you
landed in a tree filled with aye-ayes, which, had you managed to take
their picture, would have brought you fame and fortune.">)
(T
<TELL
"The ground becomes visible when you are about a few hundred feet up, so
you are able to watch as your chute grabs hold of a passing branch, sending
you into a near-perfect backflip. The end result is that you are now hanging
upside-down, some twenty-odd feet above the ground, suspended by what remains
of your parachute. Your philisophical side tells you \"It could be worse - it
could be raining.\", while your rational side tells you that, in fact, it is."
CR>
<GOTO ,IN-A-TREE>
<RTRUE>)>)
(<AND ,FLY-HACK? <G? ,FLY-HACK? 1>>
<TELL
"I don't mean to worry you, but do you realize that you are freezing to death
even as you suffocate?" CR>)
(,CHUTE-DEPLOYED?
<TELL
"You continue your leisurely descent, pleased that things seem to be getting
a bit under control." CR>)
(T
<TELL
"You continue your precipitous descent through the night sky." CR>)>)>>
<OBJECT PARACHUTE
(LOC A-MIDAIR)
(DESC "parachute")
(SYNONYM STRAP PARACHUTE CHUTE)
(ADJECTIVE MULTI-COLORED)
(FLAGS CONTBIT TRANSBIT NDESCBIT)
(ACTION PARACHUTE-F)>
<OBJECT RIP-CORD
(LOC PARACHUTE)
(DESC "red handle")
(SYNONYM CORD HANDLE)
(ADJECTIVE RIP RED)
(FLAGS NDESCBIT)
(ACTION RIP-CORD-F)>
<ROUTINE RIP-CORD-F ()
<COND (<VERB? MOVE>
<COND (,CHUTE-DEPLOYED?
<TELL "Nothing happens this time." CR>)
(,FLY-HACK?
<JIGS-UP
"Things were bad enough with one of the parachute straps stuck in the
emergency exit. Pulling the cord, as you might have expected, has added
the complication of a deployed parachute as well. The various straps,
cords, and other parachute paraphenalia, each going its own way, sends
you flying in a number of unpleasant pieces.">)
(T
<SETG CHUTE-DEPLOYED? T>
<TELL
"Your luck seems to be changing. Instead of simply falling off in
your hand, the cord actually appears to have been attached to the
chute and pulling it has caused the chute to deploy. This results
in a greatly slowed rate of descent." CR>)>)
(<VERB? EXAMINE>
<TELL
"It's just a red handle attached to a cord. All in all, it looks like the
sort of thing one pulls to cause a parachute to deploy." CR>)>>
<ROUTINE PARACHUTE-F ()
<COND (<AND <VERB? MOVE> ,FLY-HACK?>
<TELL
"Using all the strength you can muster, you pull yourself toward the
emergency exit of the plane." CR CR>
<SETG AT-AIRPLANE-DOOR? T>
<V-LOOK>
<RTRUE>)
(<VERB? EXAMINE>
<COND (,FLY-HACK?
<TELL
"The chute is strapped to your back, which is good, and to the emergency
exit of the airplane, which is bad." CR>)
(,CHUTE-DEPLOYED?
<TELL
"Although you can tell it's above you somewhere, the thickness of the night
and clouds prevent you from seeing it." CR>)
(T
<TELL
"It's on your back, you know, so you can't tell much. A red handle attached
to a cord, though, flutters nearby." CR>)>)>>
<ROUTINE WALK-THE-PLANK ()
<COND (<VERB? WALK>
<COND (<EQUAL? ,HERE ,A-REAR>
<COND (<EQUAL? ,PRSO ,P?WEST ,P?EAST>
<TELL
"The purser and stewardess follow you toward the emergency exit." CR>
<RFALSE>)
(T
<FORCE-WALK ,P?EAST "east">
<RFALSE>)>)
(<EQUAL? ,PRSO ,P?SOUTH>
<TELL
"The purser and stewardess follow closely as you walk rearward." CR>
<RFALSE>)
(T
<FORCE-WALK ,P?SOUTH "south">
<RFALSE>)>)
(T
;"Will handle some more stuff here"
<FORCE-WALK ,P?SOUTH "south">
<PERFORM ,V?WALK ,PRSO>
<RTRUE>)>>
<ROUTINE FORCE-WALK (DIR STR)
<SETG SEATED? <>>
<TELL
"The purser has a different idea, and pushes you toward the " .STR>
<SETG P-WALK-DIR .DIR>
<SETG PRSO .DIR>
<EOS>
<CRLF>>
<ROUTINE I-VISA-3 ()
<COND (<G? <SETG FORM-WAIT <+ ,FORM-WAIT 1>> 5>
<ASK-TO-LEAVE>)
(<AND <G? ,VISA-WAIT 0>
<G? <SETG VISA-WAIT <+ ,VISA-WAIT 1>> 5>>
<ASK-TO-LEAVE>)
(<EQUAL? ,VISA-WAIT 0>
<TELL CR <GET ,FORM-WAITS ,FORM-WAIT> CR>
<COND (<G? ,FORM-WAIT 4>
<MOVE ,A-PURSER ,HERE>)>
<RTRUE>)
(T
<TELL CR <GET ,VISA-WAITS ,VISA-WAIT> CR>
<COND (<G? ,VISA-WAIT 4>
<MOVE ,A-PURSER ,HERE>)>
<RTRUE>)>>
<OBJECT A-ATTENDANT
(DESC "stewardess")
(LDESC
"A stewardess is here, waiting for you.")
(SYNONYM STEWARDESS ATTENDANT)
(ADJECTIVE CABIN)
(FLAGS ACTORBIT)
(ACTION A-ATTENDANT-F)>
<ROUTINE A-ATTENDANT-F ()
<COND (<NOT <RUNNING? I-VISA-3>>
<COND (<AND <VERB? GIVE SHOW> <EQUAL? ,PRSO ,ME>>
<TELL "." CR>)
(<AND <VERB? GIVE SHOW> <EQUAL? ,PRSO ,A-ATTENDANT>>
<TELL
"The " D ,PRSO " isn't really interested in your " D ,PRSI "." CR>)>)
(<AND <VERB? GIVE SHOW>
<EQUAL? ,PRSO ,IMMIGRATION-FORM>>
<COND (,VISA-FILLED?
<TELL
"She looks carefully at your form, then returns it. \"I don't know
if this is some kind of joke, but that's not a valid visa number.
Now, please, just fill in the form.\"" CR>)
(,IMMIGRATION-FILLED?
<TELL
"She looks over the form and hands it back to you. \"You must have
forgotten to complete your visa number. I'll just wait here while
you fill it in." CR>)
(T
<TELL
"She sees that you haven't filled in the form and returns it to
you. \"I'll just wait here until you've completed the form.\"" CR>)>)
(<OR <AND <EQUAL? ,PRSO ,APOLOGY <VERB? MAKE-TO>>>
<VERB? APOLOGIZE>>
<TELL
"She doesn't seem interested in any apologies or excuses." CR>)>>
<OBJECT GLOBAL-ATTENDANT
(LOC GLOBAL-OBJECTS)
(DESC "stewardess")
(SYNONYM STEWARD STEWARDESS ATTENDANT)
(ADJECTIVE CABIN)
(ACTION GLOBAL-ATTENDANT-F)>
<ROUTINE MAKE-ATTENDANT-APPEAR ()
<MOVE ,A-ATTENDANT ,HERE>
<TELL
"Responding to your call, an attendant appears." CR>
<ENABLE <QUEUE I-ATTENDANT-LEAVES 3>>
<RTRUE>>
<ROUTINE I-ATTENDANT-LEAVES ()
<TELL
"\"I'm sorry, but I'll have to be leaving now." CR>
<REMOVE ,A-ATTENDANT>>
<ROUTINE GLOBAL-ATTENDANT-F ()
<COND (<FSET? ,HERE ,AIRPLANEBIT>
<COND (<VERB? WAIT-FOR CALL>
<COND (<QUEUED? I-VISA-2>
<QUEUE I-VISA-2 2>
<TELL
"A stewardess, noticing your impatience, walks toward you." CR>)
(T
<MAKE-ATTENDANT-APPEAR>)>)>)
(<EQUAL? ,HERE ,A-MIDAIR>
<COND (<VERB? WAVE-AT>
<PERFORM ,V?KNOCK ,AIRPLANE-EXIT>
<RTRUE>)
(<VERB? HELLO>
<TELL "Unlikely she can hear you." CR>)
(<VERB? WAIT-FOR>
<TELL "You'd die first." CR>)
(T
<TELL
"She's inside and you're outside, if you haven't noticed." CR>)>)
(T
<TELL
"You can't see any stewardess here." CR>)>>
<OBJECT A-PURSER
(DESC "purser")
(LDESC
"The purser, a large, burly man, is here, waiting impatiently.")
(SYNONYM PURSER)
(ADJECTIVE BURLY)
(FLAGS ACTORBIT)
(ACTION A-PURSER-F)>
<GLOBAL FORM-WAITS <LTABLE
"\"It's very important, sir, that you return the form.\""
"\"Without the form, sir, I'm afraid that we will be unable to land.\""
"\"The authorities are very explicit about this, sir. No plane may land
in Zalagasa without the forms having been completed.\""
"\"There are no exceptions, sir.\" You notice that the stewardess makes
a head motion to someone you can't see."
"\"I'm afraid that I must ask for that form now, sir.\" A rather burly
gentleman, introduced as the purser, arrives at your side.">>
<GLOBAL VISA-WAITS <LTABLE
"\"I'm sorry, sir, but we do require your visa number.\""
"\"I'm sorry, sir, but we're not allowed to land until everyone submits
completed forms. Now please fill in your visa number.\""
"\"The authorities will not allow the plane to land without all forms
being filled out, and that includes your visa number.\""
"\"We're running out of time, sir.\" She motions to someone who you
can't see."
"\"I shall have to insist on your visa number NOW.\" A rather burly
gentleman, introduced as the purser, arrives at your side.">>
<ROUTINE A-FORM-WAIT ()
<COND (<VERB? WALK>
<TELL
"The stewardess stands in your way. \"I'm sorry, sir, but I'll need that
form now.\"" CR>)>>
<OBJECT IMMIGRATION-FORM
(DESC "immigration form")
(SYNONYM FORM)
(ADJECTIVE IMMIGRATION)
(FLAGS READBIT TAKEBIT CONTBIT TRANSBIT)
(ACTION IMMIGRATION-FORM-F)>
<OBJECT VISA-NUMBER
(LOC IMMIGRATION-FORM)
(DESC "visa number")
(SYNONYM NUMBER)
(ADJECTIVE VISA)
(FLAGS NDESCBIT)
(ACTION VISA-NUMBER-F)>
<ROUTINE VISA-NUMBER-F ()
<COND (<VERB? FILL-IN MAKE-UP>
<COND (<EQUAL? ,VISA-WAIT 0>
<SETG VISA-WAIT 1>)>
<COND (,VISA-FILLED?
<TELL
"You erase the visa number you had tried before and attempt a different
one." CR>)
(T
<SETG VISA-FILLED? T>
<TELL
"You make up some visa number or other and write it in the appropriate
space on the form." CR>)>)>>
<GLOBAL IMMIGRATION-FILLED? <>>
<GLOBAL VISA-FILLED? <>>
<ROUTINE IMMIGRATION-FORM-F ()
<COND (<VERB? EXAMINE READ>
<TELL
"The form is a simple one, in which you are asked to supply your name,
passport number, visa number, and length of stay." CR>)
(<VERB? FILL-IN>
<COND (,IMMIGRATION-FILLED?
<TELL
"You've already filled in the form (except for the visa number). If you
want to fill in the visa number, just say so." CR>)
(T
<SETG IMMIGRATION-FILLED? T>
<TELL
"You fill in the form, except, of course, for the visa number, which
you haven't got since your travel plans didn't call for a trip to
Bananareeve today." CR>)>)>>
<ROUTINE START-HIJACK ()
<TELL
"You are startled at a commotion behind you. You turn around to find
yourself looking down the barrel of a large revolver. Attached to the
revolver is the hand and arm of a man around whose waist are a string
of hand grenades and sticks of dynamite. \"You! Up!\" he shouts." CR>
<MOVE ,HIJACKER ,HERE>
<ENABLE <QUEUE I-HIJACK 2>>
<RTRUE>>
<ROUTINE I-HIJACK ()
<TELL CR
"The hijacker forces you to the cockpit of the plane." CR>>
<OBJECT HIJACKER
(DESC "hijacker")
(SYNONYM MAN HIJACKER)
(FLAGS ACTORBIT TRANSBIT CONTBIT)
(ACTION HIJACKER-F)>
<ROUTINE HIJACKER-F ()
<COND (<EQUAL? ,WINNER ,HIJACKER>
<COND (<IN? ,GRENADE ,HERE>
<TELL
"\"Oh, leave me alone.\"" CR>)
(<EXPLODES?> <RTRUE>)
(T
<TELL
"\"Shut up or I'll blow your brains out.\"" CR>)>)
(<VERB? OPEN CLOSE LOOK-INSIDE>
<TELL "Don't be silly." CR>)
(<VERB? EXAMINE>
<TELL
"He is a man of medium height, with a few days growth of beard on his
chin. Around his waist are strapped a couple of hand grenades, a couple
of sticks of dynamite, and an antenna-bearning yellow device which would
appear to be a transmitter of some sort. He is holding a gun which is
aimed between your eyes." CR>)>>
<OBJECT GUN
(LOC HIJACKER)
(SYNONYM PISTOL GUN HANDGUN)
(ADJECTIVE HAND)
(FLAGS NDESCBIT)
(ACTION GUN-F)>
<ROUTINE GUN-F ()
<COND (<VERB? TAKE PULL>
<EXPLOSIVES-F>)
(<VERB? EXAMINE>
<TELL
"You've never before witnessed the insides of the barrel of a gun, but
this is exactly the view you get looking at the gun." CR>)>>
<OBJECT EXPLOSIVES
(LOC HIJACKER)
(DESC "explosives")
(SYNONYM GRENADE GRENADES STICKS DYNAMITE STICK)
(FLAGS NDESCBIT)
(ACTION EXPLOSIVES-F)>
<ROUTINE EXPLOSIVES-F ()
<COND (<VERB? TAKE PULL>
<COND (<EXPLODES?>
<RTRUE>)
(T
<TELL
"\"I'll kill you, I swear it, if you go near me!\"" CR>)>)
(<VERB? EXAMINE>
<TELL
"These appear to be the real thing." CR>)>>
<GLOBAL BLOW-UP 0>
<ROUTINE EXPLODES? ()
<COND (<G? <SETG BLOW-UP <+ ,BLOW-UP 1>> 5>
<TELL
"\"Ok, that's it!\" He raises the gun and pulls the trigger. Nothing happens.
\"Damned guns!\" he explains, as he pulls the trigger again. Nothing happens
again. \"Wouldn't surprise me if none of this stuff works.\" he spits. He
attemps to prove this by pulling the pin on one of his grenades. \"See ...
nothing. Damned grenade.\" He dejectedly tosses the grenade aside." CR>
<MOVE ,GRENADE ,HERE>
<ENABLE <QUEUE I-BLOW-UP 3>>)>>
<OBJECT GRENADE
(DESC "grenade")
(SYNONYM GRENADE)
(ADJECTIVE HAND)
(FLAGS TAKEBIT)
(ACTION GRENADE-F)>
<ROUTINE GRENADE-F ()
<COND (<VERB? EXAMINE>
<TELL
"It's an ordinary grenade, except that its pin has been pulled. Few people
experience this sight for more than a few moments." CR>)>>
<ROUTINE I-BLOW-UP ()
<CRLF>
<JIGS-UP
"It will no doubt interest you to learn that the hijacker was wrong about
the grenade. It dutifully explodes, ending your rather unpleasant flight.">>
<OBJECT WALKIE-TALKIE
(LOC HIJACKER)
(DESC "yellow device")
(SYNONYM ANTENNA DEVICE WALKIE-TALKIE TALKIE TRANSMITTER)
(ADJECTIVE YELLOW WALKIE)
(FLAGS NDESCBIT)
(ACTION WALKIE-TALKIE-F)>
<ROUTINE WALKIE-TALKIE-F ()
<COND (<VERB? TAKE PULL>
<EXPLOSIVES-F>)
(<VERB? EXAMINE>
<TELL
"You can't tell too much about it, though on inspection it's more clearly
a walkie-talkie of some sort." CR>)>>
<GLOBAL MOVIE-TIME 0>
<GLOBAL T-MOVIE 1035>
<GLOBAL T-MEAL 795>
<ROUTINE I-MOVIE ()
<SETG MOVIE-TIME <+ ,MOVIE-TIME 1>>
<COND (<EQUAL? ,MOVIE-TIME 1>
<TELL
"A flight attendant pulls down a screen in the front of the plane, the
lights are dimmed, and the in-flight movie starts." CR>
<QUEUE I-MOVIE 10>
<RTRUE>)
(<G? ,MOVIE-TIME 5>
<TELL
"The movie ends, the lights go up, and the stewardess pulls the screen
back up." CR>
<START-AIRPLANE-FUN>)
(T
<QUEUE I-MOVIE 10>
<RFALSE>)>>
<GLOBAL MOVIE-TBL <LTABLE
;"Hijack"
<LTABLE
"The movie is a new French comedy film, although you can't understand the
language very well. In the opening scene, the protagonist is packing his
bags."
"In this scene, he is arriving at what must be his new house, on a street
very similar to your own. His place is deserted, except for some boxes which
are piled nearly to the ceiling. The audience laughs heartily as his best
things are crushed by the boxes."
"In this scene, our hero is running from house to house on his street,
for all appearances trying to break into them, frantically looking for
something."
"In this scene, our hero is rushing to the airport to catch his plane.
Naturally, everything at the airport is contradictory and confusing. He
does manage, however, to get on his flight."
"In this scene, a disturbance or scuffle of some kind is happening in
the cabin. The film breaks here....">
;"Zalagasa"
<LTABLE
"Part I"
"Part II"
"Part III"
"Part IV"
"Part V">
;"Parachute"
<LTABLE
"This film would appear to be a documentary of some kind and you notice that
all of the people around you are watching with the utmost interest. The only
recognizable thing on the screen are maps of unfamiliar terrain"
"In this \"scene\", various types of weather patterns are described. Many
clouds are displayed along with a variety of frontal weather."
"Now, the scene jumps to a gymnasium of some sort, in which people are
jumping from a height of about ten feet to the ground. They would seem to
be practicing something."
"Here the film begins to get some tension, as a demonstration is made of
how a parachute is folded and how it is deployed."
"A moment of levity, as a few examples are displayed of people jumping
from planes and getting themselves into trouble. The silliest of these
involves a novice getting stuck upside down in a tree. It is greeted with
howls of laughter from the otherwise-quiet audience.">>>
<ROUTINE V-$VISA ()
<START-VISA>
<TELL "[Visa problem starts.]" CR>>
<ROUTINE V-$MOVIE ()
<ENABLE <QUEUE I-MOVIE 2>>
<TELL "[Enjoy the movie!]" CR>>
<ROUTINE V-$AIRPLANE ()
<COND (<NOT <EQUAL? ,PRSO ,INTNUM>>
<TELL "[Illegal $AIRPLANE]" CR>)
(<AND <G? ,P-NUMBER 0> <L? ,P-NUMBER 4>>
<SETG ON-FLIGHT ,P-NUMBER>
<SETG CURRENT-TIME 735>
<GOTO ,A-1>
<TELL "[On airplane #" N ,ON-FLIGHT "]" CR>)>>
;"Things to ask for, in general, and global type things."
<OBJECT GLOBAL-DINNER
(LOC GLOBAL-OBJECTS)
(DESC "meal")
(SYNONYM DINNER LUNCH BREAKFAST SNACK FOOD)
(ADJECTIVE SOME)
(ACTION GLOBAL-DINNER-F)>
<OBJECT GLOBAL-DRINK
(LOC GLOBAL-OBJECTS)
(DESC "drink")
(SYNONYM DRINK)
(ACTION GLOBAL-DRINK-F)>
<OBJECT GLOBAL-BLANKET
(LOC GLOBAL-OBJECTS)
(DESC "blanket")
(SYNONYM BLANKET)
(ACTION GLOBAL-BLANKET-F)>
<OBJECT GLOBAL-PILLOW
(LOC GLOBAL-OBJECTS)
(DESC "pillow")
(SYNONYM PILLOW)
(ACTION GLOBAL-PILLOW-F)>
<OBJECT GLOBAL-WINDOW
(LOC GLOBAL-OBJECTS)
(DESC "window")
(SYNONYM PILLOW)
(ACTION GLOBAL-WINDOW-F)>
<ROUTINE GLOBAL-WINDOW-F ()
<COND (<FSET? ,HERE ,AIRPLANEBIT>
<COND (<EQUAL? ,HERE ,A-LAVATORY ,A-REAR ,A-GALLEY>
<TELL
"There's no window you can see through from here." CR>)
(<G? ,PRESENT-TIME 950>
<TELL
"You can see a beautiful blue sky, with white puffy clouds below." CR>)
(T
<TELL
"It's dark outside the airplane, so you can't see much." CR>)>)
(T
<TELL "You can't see any window here." CR>)>>
<OBJECT GLOBAL-AIRPLANE
(LOC GLOBAL-OBJECTS)
(DESC "airplane")
(SYNONYM AIRPLANE PLANE JET AIRCRAFT)
(FLAGS VOWELBIT)
(ACTION GLOBAL-AIRPLANE-F)>
;"Seating, etc."
<GLOBAL SEATING-TBL <TABLE
1 0 1 0
1 1 1 0
1 1 1 1
0 1 0 1
1 1 0 1
1 1 1 1
1 1 1 1
1 0 1 1
0 1 0 1
1 1 1 1
1 0 1 0
1 1 1 1
1 1 0 1
1 1 1 1>>
<OBJECT GLOBAL-SEAT
(LOC GLOBAL-OBJECTS)
(DESC "seat")
(SYNONYM SEAT SEATS CHAIR CHAIRS)
(ACTION GLOBAL-SEAT-F)>
<ROUTINE GLOBAL-SEAT-F ("AUX" A S)
<COND (<NOT <FSET? ,HERE ,AIRPLANEBIT>>
<TELL
"You can't see any seat here." CR>)
(<VERB? WALK-TO>
<TELL
"It shouldn't be so hard for you to get to any seat, since there are
only 14 rows and they are conveniently numbered in order." CR>)
(<VERB? EXAMINE LOOK-INSIDE>
<SET S </ ,P-NUMBER 1000>>
<SET A <MOD ,P-NUMBER 1000>>
<COND (<NOT <GETP ,HERE ,P?AISLE>>
<TELL
"You can't see that seat from here." CR>)
(<NOT <EQUAL? <GETP ,HERE ,P?AISLE> .A>>
<COND (,SEATED?
<TELL
"It's hard tell, since you're seated." CR>)
(T
<TELL
"You can't tell much, but there ">
<COND (<0? <FIND-SEAT .A .S>>
<TELL "doesn't seem">)
(T
<TELL "seems">)>
<TELL " to be somebody sitting in it." CR>)>)>)
(<VERB? SIT BOARD CLIMB-ON>
<COND (<OR <L? ,P-NUMBER 0> <NOT <FSET? ,HERE ,AIRPLANEBIT>>>
<TELL
"What on earth are you talking about?" CR>)
(,SEATED?
<TELL
"You are already seated, if you remember." CR>)
(T
<SET S </ ,P-NUMBER 1000>>
<SET A <MOD ,P-NUMBER 1000>>
<COND (<OR <0? .A> <G? .A 14>>
<TELL
"There's no such aisle number on this plane." CR>)
(<G? .S 4>
<TELL
"There's no such seating location on this plane; all of the seats are
labelled A, B, C, or D." CR>)
(<NOT <GETP ,HERE ,P?AISLE>>
<TELL
"You're not in a seating area." CR>)
(<NOT <EQUAL? <GETP ,HERE ,P?AISLE> .A>>
<TELL
"You're in the wrong aisle, I'm afraid." CR>)
(<0? <FIND-SEAT .A .S>>
<TELL
"You make your way to seat " N .A>
<PRINTC <+ .S 64>>
<TELL " and sit down." CR>
<SETG SEATED? ,P-NUMBER>)
(T
<TELL
"There's somebody sitting in that seat already." CR>)>)>)>>
<ROUTINE UNSEAT-CHECK ()
<SETG SEATED? <>>
<COND (<OR <NOT <IN? ,SAFETY-CARD ,SEAT-POCKET>>
<NOT <IN? ,BARF-BAG ,SEAT-POCKET>>
<NOT <IN? ,AIRLINE-MAGAZINE ,SEAT-POCKET>>>
<MOVE ,SAFETY-CARD ,SEAT-POCKET>
<MOVE ,BARF-BAG ,SEAT-POCKET>
<MOVE ,AIRLINE-MAGAZINE ,SEAT-POCKET>
<FCLEAR ,BARF-BAG ,OPENBIT>
<TELL
"You remember before you get up to replace everything you took from
the seat pocket." CR CR>)>>
<GLOBAL SEATED? <>>
<ROUTINE FIND-SEAT ("OPTIONAL" (A <>) (S <>))
<COND (<NOT .A> <SET A <MOD ,SEATED? 1000>>)>
<COND (<NOT .S> <SET S </ ,SEATED? 1000>>)>
<GET ,SEATING-TBL <+ <* <- .A 1> 4> <- .S 1>>>>
<OBJECT SEAT-POCKET
(LOC GLOBAL-OBJECTS)
(DESC "seat pocket")
(SYNONYM POCKET)
(ADJECTIVE SEAT)
(FLAGS CONTBIT OPENBIT)
(CAPACITY 15)
(ACTION SEAT-POCKET-F)>
<ROUTINE SEAT-POCKET-F ()
<COND (<NOT <FSET? ,HERE ,AIRPLANEBIT>>
<TELL
"What seat pocket?" CR>)
(<NOT ,SEATED?>
<TELL
"You can't get at any seat pocket unless you're seated." CR>)
(<VERB? OPEN CLOSE>
<TELL "It's a pocket, not a box." CR>)
(<AND <VERB? PUT>
<EQUAL? ,PRSI ,SEAT-POCKET>
<OR <NOT <FSET? ,PRSO ,TAKEBIT>>
<NOT <FSET? ,PRSO ,READBIT>>>>
<TELL
"You can't put that into the seat pocket." CR>)
(T
<RFALSE>)>>
<OBJECT AIRLINE-MAGAZINE
(LOC SEAT-POCKET)
(DESC "airline magazine")
(SYNONYM MAGAZINE AIRLINE)
(FLAGS VOWELBIT TAKEBIT READBIT)
(SIZE 4)
(ACTION AIRLINE-MAGAZINE-F)>
<ROUTINE AIRLINE-MAGAZINE-F ()
<COND (<VERB? EXAMINE READ>
<COND (<EQUAL? ,ON-FLIGHT 1>
<TELL
"This is an issue of Air Gaul Express, the official airline magazine
of Air Gaul. Among the articles of interest here are..." CR>)
(<EQUAL? ,ON-FLIGHT 2>
<TELL
"This is an issue of Zalagasan Odyssey, the official airline magazine of
Air Zalagasa. There are a few articles listed here, including..." CR>)
(T
<TELL
"This is an issue of Charter Holidays, the official airline magazine
of World Charters. Among the items which catch your eye are..." CR>)>)>>
<OBJECT SAFETY-CARD
(LOC SEAT-POCKET)
(DESC "safety card")
(SYNONYM CARD)
(ADJECTIVE SAFETY)
(FLAGS TAKEBIT READBIT)
(SIZE 3)
(ACTION SAFETY-CARD-F)>
<ROUTINE SAFETY-CARD-F ()
<COND (<VERB? READ EXAMINE>
<TELL
"This is the safety card for your aircraft, an Aerocom IF-47, your
56-passenger transatlantic airliner. It's like most you've seen before,
and includes helpful information about the emergency use of oxygen and
life rafts, and contains a diagram highlighting the emergency exits located
on both sides of the aircraft at the tail end." CR>)>>
<OBJECT BARF-BAG
(LOC SEAT-POCKET)
(DESC "discomfort bag")
(SYNONYM BAG)
(ADJECTIVE DISCOMFORT BARF)
(FLAGS READBIT TAKEBIT CONTBIT)
(SIZE 8)
(CAPACITY 8)
(ACTION BARF-BAG-F)>
<GLOBAL MEAL-EATEN? <>>
<ROUTINE BARF-BAG-F ()
<COND (<VERB? READ EXAMINE>
<TELL
"The bag, cheerfully labelled \"Convenience Bag\", is a rather simple white
bag which is considerably more capable of holding an airline meal than your
stomach is." CR>)
(<AND <VERB? PUT> <EQUAL? ,PRSI ,BARF-BAG>>
<COND (<FIRST? ,PRSI>
<TELL
"It's already got something inside." CR>)
(<FSET? ,PRSO ,FOODBIT>
<TELL
"Just as well; it'll probably end up there anyway." CR>
<MOVE ,PRSO ,PRSI>
<RTRUE>)
(<L? <GETP ,PRSO ,P?SIZE> 8>
<TELL
"It's not meant for that sort of thing, but ok..." CR>
<MOVE ,PRSO ,PRSI>
<RTRUE>)
(T
<TELL
"It won't fit." CR>)>)>>
<ROUTINE AIRPLANE-SLEEP ()
<COND (<QUEUED? I-MEAL>
<QUEUE I-MEAL 2>
<TELL
"You sleep for a while but then you are startled awake..." CR CR>
<SETG CURRENT-TIME ,T-MEAL>
<RTRUE>)
(<AND <QUEUED? I-MOVIE> <EQUAL? ,MOVIE-TIME 0>>
<QUEUE I-MOVIE 2>
<TELL
"You sleep for a while but then you are startled awake..." CR CR>
<SETG CURRENT-TIME ,T-MOVIE>
<RTRUE>)
(<AND <QUEUED? I-MOVIE> <G? ,MOVIE-TIME 0>>
<SETG MOVIE-TIME 5>
<QUEUE I-MOVIE 2>
<TELL
"You sleep for a while but then you are startled awake..." CR CR>
<SETG CURRENT-TIME <+ ,T-MOVIE 60>>
<RTRUE>)>>
<ROUTINE I-MEAL ()
<TELL
"This will be the meal episode..." CR>>
<OBJECT KNIFE
(LOC MEAL-PLATTER)
(DESC "knife")
(SYNONYM KNIFE)
(FLAGS TAKEBIT)>
<OBJECT FORK
(LOC MEAL-PLATTER)
(DESC "fork")
(SYNONYM FORK)
(FLAGS TAKEBIT)>
<OBJECT SPOON
(LOC MEAL-PLATTER)
(DESC "spoon")
(SYNONYM SPOON)
(FLAGS TAKEBIT)>
<OBJECT MEAL-PLATTER
(DESC "tray")
(SYNONYM PLATTER TRAY)
(FLAGS TAKEBIT)>