Final Revision

master
historicalsource 2019-04-13 22:27:27 -04:00
parent f9f770f8c7
commit d4f87d5e34
17 changed files with 3072 additions and 505 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,7 @@
"CLOCK for
STARCROSS
(c) Copyright 1981 Infocom, Inc. All Rights Reserved.
"
<CONSTANT C-TABLELEN 180>

View File

@ -1,17 +1,3 @@
"CRUFTY2 for
Zork: The Wizard of Frobozz
The Great Underground Empire (Part 2)
(c) Copyright 1981 Infocom, Inc. All Rights Reserved.
"
"(c) Copyright 1983 Infocom, Inc. All Rights Reserved."
<ROUTINE THIS-IT? (OBJ TBL "AUX" SYNS)
#DECL ((OBJ) OBJECT (TBL) TABLE (SYNS) <OR FALSE TABLE>)
<AND <NOT <FSET? .OBJ ,INVISIBLE>>
<OR <NOT ,P-NAM>
<ZMEMQ ,P-NAM
<SET SYNS <GETPT .OBJ ,P?SYNONYM>>
<- </ <PTSIZE .SYNS> 2> 1>>>
<OR <NOT ,P-ADJ>
<AND <SET SYNS <GETPT .OBJ ,P?ADJECTIVE>>
<ZMEMQB ,P-ADJ .SYNS <- <PTSIZE .SYNS> 1>>>>
<OR <0? ,P-GWIMBIT> <FSET? .OBJ ,P-GWIMBIT>>>>

View File

@ -15,7 +15,7 @@
(FLAGS RMUNGBIT INVISIBLE TOUCHBIT SURFACEBIT TRYTAKEBIT
SEARCHBIT TRANSBIT WEARBIT)>
<OBJECT LOCAL-GLOBALS (IN GLOBAL-OBJECTS) (SYNONYM MGCKJK)>
<OBJECT LOCAL-GLOBALS (IN GLOBAL-OBJECTS) (SYNONYM ZZMGCK)>
;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
<OBJECT ROOMS>
@ -134,7 +134,7 @@ Constructed in 2178, Luna City Docks|
<OBJECT ALARM
(IN LOCAL-GLOBALS)
(SYNONYM ALARM BELL)
(DESC "mass-detector alarm")
(DESC "alarm")
(FLAGS NDESCBIT)
(ACTION ALARM-FCN)>
@ -171,7 +171,7 @@ Constructed in 2178, Luna City Docks|
(TEXT
"The output shows major mass concentrations in the vicinity, each with
a code designation and the appropriate R, Theta, and Phi to describe its
location relative to your course.")>
location relative to yours.")>
<OBJECT COURSE
(IN GLOBAL-OBJECTS)
@ -356,7 +356,7 @@ location relative to your course.")>
<OBJECT CONTROLS
(IN LOCAL-GLOBALS)
(SYNONYM CONTROL PANEL CONSOLE INSTRUMENTS)
(SYNONYM CONTROL PANEL CONSOLE)
(DESC "control")
(FLAGS NDESCBIT)
(ACTION CONTROLS-FCN)>
@ -371,7 +371,7 @@ location relative to your course.")>
<ROOM SPACESHIP-QUARTERS
(IN ROOMS)
(LDESC "This cubicle is your rather spartan living quarters,
(LDESC "This nook is your spartan living quarters,
containing only a bunk and a bureau. The only exit is to starboard.")
(DESC "Living Quarters")
(EAST TO SPACESHIP-BRIDGE)
@ -399,7 +399,7 @@ containing only a bunk and a bureau. The only exit is to starboard.")
(IN SPACESHIP-STORES)
(SYNONYM SPACES SUIT)
(ADJECTIVE SPACE PRESSURE MY GOOD)
(FDESC "Hanging on the rack is your space suit.")
(FDESC "Hanging on a rack is your space suit.")
(DESC "space suit")
(FLAGS TAKEBIT TRYTAKEBIT)
(SIZE 20)
@ -481,11 +481,33 @@ containing only a bunk and a bureau. The only exit is to starboard.")
<OBJECT COMPUTER
(IN SPACESHIP-BRIDGE)
(SYNONYM COMPUTER POWER)
(ADJECTIVE NAVIGATIONAL)
(ADJECTIVE NAVIGATIONAL FROBOZZCO)
(DESC "computer")
(FLAGS NDESCBIT VICBIT)
(ACTION COMPUTER-FCN)>
<OBJECT INSTRUCTIONS
(IN SPACESHIP-BRIDGE)
(SYNONYM SHEET INSTRUCTIONS PAPER)
(ADJECTIVE FADED)
(FDESC
"Taped to the wall is a slightly faded instruction sheet for the computer.")
(DESC "instruction sheet")
(FLAGS READBIT TAKEBIT)
(TEXT
"|
\"Your Frobozzco FB-69105 Computer|
|
For your safety, this voice-activated computer will not respond unless
directly addressed by the operator. Prefix all commands with the word
'computer,' as in 'Computer, Set course for Mars.' Navigational
commands may also be given in terms of the R, theta, and phi of the
destination, as in 'Computer, R is 100. Theta is 200. Phi is 300.'
Following these instructions will ensure full satisfaction from your new
Frobozzco Computer.\"|
")>
<OBJECT TAPE-PLAYER
(IN SPACESHIP-QUARTERS)
(SYNONYM RECORDER PLAYER VCR LIBRARY)
@ -514,7 +536,7 @@ containing only a bunk and a bureau. The only exit is to starboard.")
<ROOM RED-LOCK
(IN ROOMS)
(DESC "Red Airlock")
(FLAGS RLANDBIT ONBIT)
(FLAGS RLANDBIT ONBIT SPACEBIT)
(OUT TO RED-DOCK IF RED-OUTER IS OPEN)
(DOWN TO RED-DOCK IF RED-OUTER IS OPEN)
(UP TO RED-THREE IF RED-INNER IS OPEN)
@ -544,10 +566,10 @@ containing only a bunk and a bureau. The only exit is to starboard.")
(ADJECTIVE METAL SILVER)
(DESC "metal relief")
(LDESC
"A round metal sculpture or relief covers part of the airlock door. You notice
that it is made up of thousands of tiny hexagonal columns which extend various
lengths from the surface, making a three-dimensional representation. You will
have to examine it more closely to see the details.")
"A round metal sculpture or relief covers part of the airlock door. It is
made up of thousands of tiny hexagonal columns which extend various lengths
from the surface, making a three-dimensional representation. You can examine
it more closely to see the details.")
(FLAGS OPENBIT CONTBIT SEARCHBIT)
(ACTION RELIEF-FCN)>
@ -602,7 +624,7 @@ spaceship is aft of here. There is a hook by the airlock.")
(IN ROOMS)
(DESC "Bubbles")
(LDESC
"This is a series of large plastic bubbles connecting the blue airlock
"This is a series of plastic bubbles connecting the blue airlock
with a spherical spaceship docked aft of here. The bubbles are made of
a thick material which is nonetheless transparent.")
(NORTH TO BLUE-DOCK)
@ -616,12 +638,11 @@ a thick material which is nonetheless transparent.")
(IN ROOMS)
(DESC "Spherical Ship")
(LDESC
"You are within a huge bubble that is somehow transparent from this
side. The interior is crisscrossed with wire webbing, so that a
sufficiently agile creature could move around using only the wires. Many
objects are stuck in the wires in various out-of-reach places. The whole
impression is of a rather untidy spiderweb. The connection to the
artifact is at the forward end of the sphere.")
"You are within a huge bubble, transparent from this side. The interior is
crisscrossed with wire webbing, so that an agile creature could move around
using only the wires. Objects are stuck in the wires in various out-of-reach
places. The whole impression is of a rather untidy spiderweb. The connection
to the artifact is at the forward end of the sphere.")
(NORTH TO BUBBLE-ROOM)
(OUT TO BUBBLE-ROOM)
(ACTION SPHERE-SHIP-FCN)
@ -634,11 +655,11 @@ artifact is at the forward end of the sphere.")
(DESC "giant spider")
(FLAGS VILLAIN OPENBIT CONTBIT VICBIT SEARCHBIT)
(LDESC
"Crouched in the center of the sphere, where all the wires converge, is a
creature which resembles a giant spider. A closer look reveals that it is not
"Crouched in the center of the sphere, where the wires converge, is a
creature resembling a giant spider. A closer look reveals that it is not
an insect, but rather a multi-legged, endoskeletal mammal. It has huge eyes
and impressive grinding teeth. It grips the wires with many tiny fingers. As
you watch it, it gazes back with almost hypnotic intensity.")
and impressive grinding teeth. It grips the wires with many tiny fingers, and
gazes at you with almost hypnotic intensity.")
(ACTION SPIDER-FCN)>
<OBJECT YELLOW-KEY
@ -727,11 +748,11 @@ tentacle housings have been destroyed. To starboard is the airlock dome.")
(SYNONYM ALIEN REPTILE)
(ADJECTIVE SCORCHED)
(LDESC
"Entangled in the wreckage is the scorched body of a creature which appears
to have been a large reptile, almost a miniature allosaurus. It is clad in
the remains of a space suit.")
"Entangled in the wreckage is the scorched body of a creature resembling a
large reptile, almost a miniature allosaurus, clad in the remains of a space
suit.")
(DESC "scorched alien")
(FLAGS VILLAIN OPENBIT CONTBIT VICBIT SEARCHBIT)>
(FLAGS VILLAIN OPENBIT CONTBIT SEARCHBIT)>
<OBJECT PINK-KEY
(IN SCORCHED-ALIEN)
@ -852,7 +873,7 @@ corridor at right angles. The plant boxes here are empty.")
<ROOM RED-FIVE
(IN ROOMS)
(LDESC
"This the end of the red hall where it T's with the aft-most ring corridor.
"This is the end of the red hall where it T's with the aft-most ring corridor.
The lighting is poor and the plant boxes here are empty and battered.")
(DESC "Red Hall")
(NORTH TO RED-FOUR)
@ -899,8 +920,8 @@ port. The main corridor continues fore and aft.")
(SYNONYM FRAGMENT PIECE)
(ADJECTIVE SMOKED BLACK GLASS VISOR)
(FDESC
"A large fragment of black smoked glass from the visor of the alien chief's
helmet lies on the floor.")
"A large fragment of black smoked glass from the chief's
helmet visor lies on the floor.")
(DESC "black visor fragment")
(FLAGS TAKEBIT TRANSBIT)
(SIZE 2)>
@ -934,7 +955,7 @@ in the light path.")
(ADJECTIVE LASER LIGHT)
(DESC "light beam")
(ACTION LASER-BEAM-FCN)
(FLAGS NDESCBIT VICBIT)>
(FLAGS NDESCBIT VILLAIN)>
<OBJECT MODEL
(IN OBSERVATORY)
@ -1115,11 +1136,10 @@ starboard.")
<ROOM VILLAGE
(IN ROOMS)
(LDESC
"This section of the hall has been made into an encampment, with primitive
huts of various sizes filling the passage. They are so close they almost form
a single large structure with many small entrances and exits. Many aliens are
milling about, of all sizes and colors of fur. The only way to continue down
the corridor is through the warren.")
"This section of the hall is filled with primitive huts of various sizes.
They are so close they almost form a single large warren with many entrances.
The only way to continue down the corridor is through this warren. Many aliens
are milling about, of all sizes and colors of fur.")
(DESC "Village Center")
(EAST PER ENTER-WARREN)
(WEST TO VILLAGE-NW-EDGE)
@ -1135,10 +1155,10 @@ the corridor is through the warren.")
<ROOM MAZE
(IN ROOMS)
(LDESC
"This is an earth and reed burrow within the warren. There are many
aliens here, going about their business. Some of the littler ones
stare at you and make funny noises. There are passages all over the
place, and a constant traffic in and out.")
"This is an earth and reed burrow within the warren. There are many aliens
here, going about their business. The younger ones stare at you and make
funny noises. There are passages all over the place, and a constant traffic
in and out.")
(DESC "In the Warren")
(UP TO MAZE)
(DOWN TO MAZE)
@ -1155,14 +1175,12 @@ place, and a constant traffic in and out.")
<ROOM GREEN-THREE
(IN ROOMS)
(LDESC
"This burrow is deep within the warren and the aliens seem to avoid it.
An exit to port leads back into the warren. The walls are covered with
crude but vibrant paintings depicting a huge spider, a gigantic mouse,
man-sized lizards, and in the center, in ochre pigment, a being in a
space suit. A close look reveals that this room is the center of the
green hall's junction with the ring corridor. In fact, a ladder leads
down to the green airlock.")
man-sized lizards, and in the center, a being in a space suit. You realize
that this room is the center of the green hall's junction with the ring
corridor. In fact, a ladder leads down to the green airlock.")
(DESC "Center of the Warren")
(IN TO MAZE)
(WEST TO MAZE)
@ -1215,9 +1233,9 @@ built of mud and wood which completely blocks the corridor.")
<OBJECT ALIENS
(IN LOCAL-GLOBALS)
(SYNONYM ALIENS ALIEN WEASEL HUNTER)
(ADJECTIVE GREY)
(DESC "weasel-like alien")
(SYNONYM ALIENS ALIEN WEASEL)
(ADJECTIVE GREY HUNTER TRIBESMAN)
(DESC "alien tribesmen")
(FLAGS VILLAIN VICBIT)
(ACTION ALIENS-FCN)>
@ -1226,7 +1244,7 @@ built of mud and wood which completely blocks the corridor.")
(SYNONYM PALISADE WALL)
(ADJECTIVE MUD WOOD)
(DESC "palisade")
(FLAGS VICBIT CLIMBBIT)
(FLAGS VILLAIN CLIMBBIT)
(ACTION PALISADE-FCN)>
<ROOM VILLAGE-N-EDGE
@ -1328,7 +1346,7 @@ area for dirt and discarded junk.")
(SYNONYM MOUSE SWEEPER RECEPTACLE TRAY)
(ADJECTIVE MAINTENANCE)
(DESC "maintenance mouse")
(FLAGS CONTBIT SURFACEBIT OPENBIT TRANSBIT SEARCHBIT)
(FLAGS VEHBIT CONTBIT SURFACEBIT OPENBIT TRANSBIT SEARCHBIT)
(DESCFCN MOUSE-FCN)
(ACTION MOUSE-FCN)
(CONTFCN MOUSE-CONT)
@ -1451,7 +1469,7 @@ area for dirt and discarded junk.")
(ADJECTIVE ENERGY)
(DESC "beam of energy")
(ACTION BEAM-FCN)
(FLAGS NDESCBIT VICBIT)>
(FLAGS NDESCBIT VILLAIN)>
<OBJECT BLUE-KEY
(IN FORCE-FIELD-1)
@ -1479,19 +1497,19 @@ damaged to port. The illumination dims to starboard.")
(LDESC
"This is the garage for Maintenance Mice. There are several stalls in
which non-functional mice are rusting away. Other stalls are empty.
There is a hole through which trash could be dumped, and a large bin nearby.
There is a chute into which trash could be dumped, and a large bin nearby.
A maintenance-mouse-sized door is in the forward wall.")
(NORTH TO BLUE-RED-FOUR)
(OUT TO BLUE-RED-FOUR)
(FLAGS RLANDBIT ONBIT)
(PSEUDO "HOLE" HOLE-PSEUDO "DOOR" DOOR-PSEUDO)>
(PSEUDO "CHUTE" HOLE-PSEUDO "DOOR" DOOR-PSEUDO)>
<OBJECT TRASH-BIN
(IN GARAGE)
(SYNONYM BIN)
(ADJECTIVE TRASH JUNK)
(DESC "trash bin")
(FLAGS RLANDBIT OPENBIT CONTBIT)
(FLAGS RLANDBIT OPENBIT CONTBIT SEARCHBIT)
(LDESC
"There is a trash bin full of junk of all sorts here. Someone appears to have
been dumping things for years (decades? centuries?) and never cleaning them
@ -1516,15 +1534,13 @@ out.")
(FLAGS RLANDBIT ONBIT)
(LDESC
"This was the control room of the ship which originally carried the
now-primitive aliens to the artifact. They must have been at about the
human level of technology, as the controls and style of the room are
familiar. The control panel was obviously destroyed by a fire or explosion
long ago, although the lights here still glow dimly.|
now-primitive aliens to the artifact. The control panel was obviously
destroyed by a fire or explosion long ago, although the lights here still
glow dimly.|
Outside you can see the surface of the artifact. Gazing longingly at that
view are the empty eyesockets of a skeleton; the skeleton of one of the
aliens. It is dressed in the shreds of a space suit and sitting in the
control couch. Scattered around the couch are fresh offerings of fruit and
vegetables.")
view are the empty eyesockets of a skeleton, the skeleton of an alien weasel.
It is dressed in the shreds of a space suit and sitting in the control couch.
Scattered around the couch are fresh offerings of fruit and vegetables.")
(SOUTH TO CARGO-ROOM)
(GLOBAL COUCH WINDOW CONTROLS TOTEMS)>
@ -1634,7 +1650,7 @@ obviously underestimated their nastiness.")
(DESC "chewed sign")
(FLAGS NDESCBIT READBIT)
(TEXT
"The sign is a liquid crystal display, and even more oddly, is in English:|
"The sign, a liquid crystal display, is oddly in English:|
|
\" Common Grues (Grue Vulgaris)|
|
@ -1643,7 +1659,7 @@ forgotten planet, is here exhibited for your pleasure in a typical family
group. Note particularly the slavering fangs which reach such impressive
size in the adults. Feeding the grues is not recommended.\"")>
<OBJECT GRUE ;"was GRUE"
<OBJECT GRUE
(IN GLOBAL-OBJECTS)
(SYNONYM GRUE)
(ADJECTIVE LURKING SINISTER HUNGRY SILENT)
@ -1664,7 +1680,7 @@ size in the adults. Feeding the grues is not recommended.\"")>
(SYNONYM NEST)
(ADJECTIVE MUD)
(DESC "nest")
(FLAGS NDESCBIT OPENBIT CONTBIT VICBIT VILLAIN SEARCHBIT)
(FLAGS NDESCBIT OPENBIT CONTBIT VILLAIN SEARCHBIT)
(ACTION NEST-FCN)
(CONTFCN NEST-CONT)
(CAPACITY 1000)>
@ -1673,7 +1689,7 @@ size in the adults. Feeding the grues is not recommended.\"")>
(SYNONYM NEST)
(ADJECTIVE SMASHED)
(DESC "smashed nest")
(FLAGS NDESCBIT OPENBIT CONTBIT VICBIT VILLAIN SEARCHBIT)
(FLAGS NDESCBIT OPENBIT CONTBIT VILLAIN SEARCHBIT)
(ACTION NEST-FCN)
(CONTFCN SMASHED-NEST-CONT)
(CAPACITY 1000)>
@ -1790,7 +1806,7 @@ fully charged.")
(IN ROOMS)
(DESC "Weapons Deck")
(LDESC
"This was the armory of the artifact. A massive bulkhead melted and burned
"This was the armory of the artifact. A massive bulkhead has been burned
away, giving free access to the weaponry. Unfortunately, it appears that the
vast stock of futuristic armaments has been mostly destroyed. Gigantic
projectors are scorched and shattered, strange battle armor is reduced to
@ -1830,11 +1846,11 @@ the hatch now, and the way is open.")
(IN ROOMS)
(DESC "Base of Tree")
(LDESC
"You are in a primeval forest, standing at the base of a giant tree.
The trunk is thick, perhaps 40 meters in diameter, and the height is
incredible. The forest is very thick, so you can't see exactly how tall
it is, but extending all the way to the axis isn't out of the question.
The bark is so rough that climbing would be no problem.")
"You are in a primeval forest, near the base of a giant tree. The trunk is
thick, perhaps 40 meters in diameter, and the height is incredible. The
forest is dense, so you can't see exactly how tall it is, but extending all
the way to the axis isn't out of the question. The bark is so rough that
climbing would be no problem.")
(UP PER UP-A-TREE-EXIT)
(NORTH TO SCRUB-2)
(EAST TO FOREST)

View File

@ -20,34 +20,32 @@ computer starts up." CR>
<COND (<AND <IN? ,CARD ,SLOT> <NOT ,FRIED?>>
<COND (,GOT-KEY?
<TELL
"The main display blinks once and then displays the word \"Ready\"." CR>)
"The main display blinks and displays the word \"Ready\"." CR>)
(ELSE
<SETG GOT-KEY? T>
<MOVE ,GOLD-KEY ,HERE>
<FCLEAR ,ENUNCIATOR ,INVISIBLE>
<TELL
"The main display blinks twice, a bell rings, and out of the output
hopper onto the floor is extruded a gold rod! A moment later, a
previously unseen enunciator panel comes on." CR>
"The main display blinks twice, a bell rings, and a gold rod falls from the
output hopper onto the floor! A moment later, a previously unseen enunciator
panel comes on." CR>
<PERFORM ,V?EXAMINE ,ENUNCIATOR>
<RTRUE>)>)
(ELSE
<TELL
"On the main display lights blink insistently and the word \"Fault\"
appears." CR>)>)>)
"Lights blink on the main display and the word \"Fault\" appears." CR>)>)>)
(<VERB? LAMP-OFF>
<SETG SWITCH-ON? <>>
<FSET ,ENUNCIATOR ,INVISIBLE>
<TELL
"The computer is off." CR>)>>
<TELL "The computer is off." CR>)>>
<ROUTINE COMPUTER-ROOM-FCN (RARG)
<COND (<==? .RARG ,M-LOOK>
<TELL
"This is the main computer room. The builders of this ship were obviously
still wedded to large mainframes: this one stretches off in all directions
and is thirty meters high. There is an overlarge switch at about eye-level
and an access panel below it, which is ">
still wedded to large mainframes: this one fills the room and is thirty
meters high. There is an overlarge switch at about eye-level and an access
panel below it, which is ">
<COND (<FSET? ,PANEL ,OPENBIT>
<TELL "open">)
(ELSE <TELL "closed">)>
@ -56,7 +54,7 @@ and an access panel below it, which is ">
(ELSE <TELL "off." CR>)>
<COND (,FRIED? <TELL
"There is a strong smell of burning components here." CR>)>
"There is a strong smell of burning components." CR>)>
<RTRUE>)>>
<OBJECT ENUNCIATOR
@ -72,15 +70,15 @@ and an access panel below it, which is ">
<COND (<VERB? EXAMINE>
<COND (,SWITCH-ON?
<TELL
"On the left are three banks of four colored lights: red, yellow, green, and
"The panel has three banks of four colored lights: red, yellow, green, and
blue. The first is labelled with a symbol of the emission of rays: of the
lights underneath, the red one is flashing and the yellow one is brightly
lit. The second column is labelled with a stylized docking port and the third
with an airlock. The only indications on these two banks are the yellow ones,
the first of which is brightly lit and the other of which is flashing. On the
right are six other lights, each bearing a stylized picture. The first four,
all dark, represent navigation, engine, library, and defenses. A fifth,
bearing the picture of a cage, is brightly lit. The sixth is "
lit. The second bank is labelled with a stylized docking port and the third
with an airlock. Of these two banks, the first yellow one is brightly lit and
the other yellow one is flashing. The panel also contains six other lights,
each bearing a stylized picture. The first four, all dark, represent
navigation, engine, library, and defenses. A fifth, picturing a cage, is
brightly lit. The sixth is "
<GET ,AIR-FLASH ,AIR-COUNT> ". It" ,REPAIR-PANEL CR>)
(ELSE <TELL "The panel is dark." CR>)>)>>
@ -108,10 +106,9 @@ wavy lines.">
<ROUTINE REPAIR-ROOM-FCN (RARG)
<COND (<==? .RARG ,M-LOOK>
<TELL
"This is a bright room taken up by two large pieces of machinery. On the
leftmost one is a symbol depicting the emission of rays and beside it a
yellow slot. The other machine" ,REPAIR-PANEL " Beside it are three diagrams;
under each one is a
"This room is taken up by two large pieces of machinery. The leftmost has a
symbol depicting the emission of rays beside a yellow slot. The other
machine" ,REPAIR-PANEL " Beside it are three diagrams; under each one is a
red slot. The first diagram shows four single dots equally spaced around a
six-dot cluster. The second shows two eight-dot clusters in close proximity.
The third has three single dots equally spaced around a seven-dot cluster.
@ -137,7 +134,7 @@ The only exit is up some stairs." CR>)>>
(ELSE <WONT-FIT>)>)>>
<ROUTINE WONT-FIT ()
<TELL "The " D ,PRSO " doesn't fit." CR>>
<TELL "The " D ,PRSO " doesn't fit in the " D ,PRSI "." CR>>
<OBJECT RED-SLOT
(IN REPAIR-ROOM)
@ -160,7 +157,7 @@ The only exit is up some stairs." CR>)>>
<REMOVE ,RED-KEY>
<RIGHT-KEY>
<TELL
" You hear the subdued hum of some machinery coming to life." CR>
" You hear a subdued hum of machinery coming to life." CR>
<COND (<==? .NUM 2>
<ENABLE <QUEUE I-FRESH-AIR 30>>
<DISABLE <INT I-BAD-AIR>>)
@ -201,11 +198,7 @@ The only exit is up some stairs." CR>)>>
<COND (<NOT ,IN-ARTIFACT?>
<ENABLE <QUEUE I-POISON-AIR 1>>)
(,SUIT-ON?
<JIGS-UP
"Suddenly, you notice everything around you going dark, as though
the artifact was shutting down. The lights are dimming everywhere,
and a faint thrumming vibration stops; one you didn't even notice
until it ceased.">)
<JIGS-UP ,STUPID-AIRGONE-MESSAGE>)
(T <JIGS-UP
"You are overcome by noxious gases and slump to the floor, dead.">)>)
(T
@ -213,6 +206,11 @@ until it ceased.">)
<DESCRIBE-AIR "The air here has become ">)>
<QUEUE I-POISON-AIR 30>)>>
<GLOBAL STUPID-AIRGONE-MESSAGE
"Suddenly, everything begins going dark, as though the artifact was
shutting down. A thrumming vibration stops; one you didn't even notice
until it ceased.">
<ROUTINE I-BAD-AIR ()
<COND (<G? <SETG AIR-COUNT <+ ,AIR-COUNT 1>> 3>
<SETG POISON-COUNT 4>
@ -220,13 +218,9 @@ until it ceased.">)
<ENABLE <QUEUE I-BAD-AIR 1>>)
(<NOT ,SUIT-ON?>
<JIGS-UP
"You gasp for air, but there is none left, and slump to the ground, dead.">)
"You gasp for air, but there is none left, and slump to the floor, dead.">)
(T
<JIGS-UP
"Suddenly, you notice everything around you going dark, as though
the artifact was shutting down. The lights are dimming everywhere,
and a faint thrumming vibration stops; one you didn't even notice
until it ceased.">)>)
<JIGS-UP ,STUPID-AIRGONE-MESSAGE>)>)
(T
<COND (<AND <NOT ,SUIT-ON?> ,IN-ARTIFACT?>
<DESCRIBE-AIR "You notice that the air has become ">)>
@ -238,7 +232,7 @@ until it ceased.">)>)
<COND (<==? ,POISON-COUNT 4>
<COND (<==? ,AIR-COUNT 4>
<JIGS-UP
"You gasp for air, but there is none left, and slump to the ground, dead.">)
"You gasp for air, but there is none left, and slump to the floor, dead.">)
(T
<JIGS-UP
"You are overcome by noxious gases and slump to the floor, dead.">)>)

1161
invisicluessc.mss Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,8 @@
"MACROS for
STARCROSS
(c) Copyright 1981 Infocom, Inc. All Rights Reserved.
"
<SETG C-ENABLED? 0>
<SETG C-ENABLED 1>
<SETG C-DISABLED 0>
@ -36,26 +41,49 @@
<MAPRET
<FORM PRINT
<FORM GETP .O .E>>>)>)>)
(<TYPE? .E STRING>
(<TYPE? .E STRING ZSTRING>
<MAPRET <FORM PRINTI .E>>)
(<TYPE? .E FORM>
<MAPRET <FORM PRINT .E>>)
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
<DEFMAC VERB? ("TUPLE" ATMS "AUX" (O ()) (L ()))
<DEFMAC VERB? ("ARGS" ATMS)
<MULTIFROB PRSA .ATMS>>
<DEFMAC PRSO? ("ARGS" ATMS)
<MULTIFROB PRSO .ATMS>>
<DEFMAC PRSI? ("ARGS" ATMS)
<MULTIFROB PRSI .ATMS>>
<DEFMAC ROOM? ("ARGS" ATMS)
<MULTIFROB HERE .ATMS>>
<ZSTR-OFF>
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM)
<REPEAT ()
<COND (<EMPTY? .ATMS>
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
(ELSE <FORM OR !.O>)>>)>
<RETURN!- <COND (<LENGTH? .OO 1> <ERROR .X>)
(<LENGTH? .OO 2> <NTH .OO 2>)
(ELSE <CHTYPE .OO FORM>)>>)>
<REPEAT ()
<COND (<EMPTY? .ATMS> <RETURN!->)>
<SET ATM <NTH .ATMS 1>>
<SET L
(<FORM GVAL <PARSE <STRING "V?" <SPNAME .ATM>>>>
(<COND (<TYPE? .ATM ATOM>
<FORM GVAL
<COND (<==? .X PRSA>
<PARSE
<STRING "V?"
<SPNAME .ATM>>>)
(ELSE .ATM)>>)
(ELSE .ATM)>
!.L)>
<SET ATMS <REST .ATMS>>
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
<SET O (<FORM EQUAL? ',PRSA !.L> !.O)>
<SET O <REST <PUTREST .O (<FORM EQUAL? <FORM GVAL .X> !.L>)>>>
<SET L ()>>>
<DEFMAC RFATAL ()

View File

@ -25,6 +25,7 @@
<CONSTANT M-OBJDESC 5>
<ROUTINE GO ()
<PUTB ,P-LEXV 0 59>
;"put interrupts on clock chain"
;<QUEUE I-LAMP 200>
<ENABLE <QUEUE I-NIGHT 128>>
@ -126,8 +127,10 @@ be the break you've been waiting for.
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
(T
<SETG P-CONT <>>)>
<COND (,P-WON
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE SCORE> T)
<COND (<NOT ,NOT-AGAIN> <RETURN .V>)
(,P-WON
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION
QUIT RESTART SCORE SCRIPT UNSCRIPT RESTORE> T)
(T <SET V <CLOCKER>>)>)>>>
<GLOBAL L-PRSA <>>

821
manual.rno Normal file
View File

@ -0,0 +1,821 @@
.fg 10
.C;REVISED STARCROSS MANUAL
.s 5
.c;Version 3 (Final)
.s
.c;4/5/84
.s
.c;Comments to SEM
.pg
.c;I. INTRODUCTION
.S 2
All it takes is one final command. Then the surge of power, the thrust,
and thousands of miles of empty space go racing into the background.
.s
Rocketing through the Asteroid Belt, you still get the thrill of first
flight, but with it comes the uneasiness of total solitude. The ship's
computer has taken over the functions of navigation and routine
maintenance. You watch the sophisticated mass detector as it unceasingly
scans your vicinity for uncharted masses. To assuage the tedium of your
long trip, you browse through the compact tape library - a compendium of
the knowledge and culture of humanity. But the drone of the ship's
systems gradually lulls you into a deep sleep.
.s
The year is 2186. Humanity has established colonies on the Moon, Mars,
and several of the larger asteroids. Earth's sky is dotted with space
habitats, and the spaceways always hum and zoom with activity. As
always, there is the urgent need for energy to power this advanced
civilization. Based on theories which began as early as the 1970's, it
has been determined that quantum black holes can provide an
inexhaustible source of power. These phenomena resulted from the Big
Bang, and they are extremely rare; approximately one 5mm-diameter hole
is found per year.
.s
Finding and harnessing a single black hole can make a person's fortune.
It is a lonely business, fraught with the known and unknown hazards of the
space frontier. You've equipped your ship, the mining vessel Starcross,
with the best gear you could afford. You've got a good mass detector to
spot the hole, and the right apparatus to bring it under control
and haul it back to a containment tank at the base on Ceres. You've put
everything into this venture, and though you've tried before, you somehow
sense that this time will be different.
.s
As you sleep, you dream of the riches that would be yours if your search
for a quantum black hole is successful. Little do you suspect that the
alarm on your mass detector is about to jolt you out of your dream - but
not to grapple with the long-sought black hole. Your quest has taken an
unexpected turn, for you are destined to rendezvous with a gargantuan
alien spaceship from the outer fringes of the galaxy.
.pg
.c;II: RULES AND STRATEGIES
.s 2
Once you have boarded the alien craft, you will find yourself in an
unknown environment full of dangerous creatures and diabolical puzzles.
You had best equip yourself with a spacesuit and safety line (for
conditions in space frequently include both weightlessness and vacuum) and
stay out of dark areas (as unknown dangers may lurk there). You may be
lucky enough to find, and clever enough to use, various tools and pieces
of equipment. Labels and signs may offer clues along the way.
.s
As you explore the alien spaceship, it is a good idea to make a map of the
geography. Such a map should include each of the locations you visit, the
directions that connect it to adjoining locations, and any interesting
objects there. (You may notice STARCROSS occasionally refer to a location
in the game as a "room", even when your location is something other than
a room.)
.s
In STARCROSS, time passes only in response to your input. You might
imagine a giant clock that ticks once per move, and the story progresses
only at each tick. Nothing happens in the story while you are thinking
and planning your next move, so you can plot your moves slowly and
carefully if you choose.
.s
Starcross keeps track of your score as a rough measure of your progress
in unraveling the mysteries of the alien probe and in gaining mastery of
the vessel itself. You will get points for acquiring certain objects,
performing certain actions, and visiting certain locations. There is
also a penalty for getting "killed".
.pg
.c;III: COMMANDS FOR EXPLORING
.s 2
When you begin playing an interactive fiction game such as Starcross, you
should first become familiar with your surroundings. Explore every location,
reading each description carefully. Take note of interesting objects and
all exits from the location. Don't forget to make a map.
.s
The best way to move from place to place is to type the direction you
want to travel. Acceptable directions are FORE (or F), AFT, PORT (or P),
STARBOARD (or SB), UP (or U), and DOWN (or D). ENTER and EXIT (also known
as IN and OUT) may work in some places.
.s
When you enter a location for the first time, STARCROSS usually displays
the name of the location and a description of it. STARCROSS will then
mention any interesting objects in the location with which you might want
to interact. When you return to a location, STARCROSS normally displays
only the name of the location and the names of the objects in it.
.s
The VERBOSE command tells STARCROSS to show the full descriptions of locations
and objects every time you see them, not just the first time. The BRIEF
command tells the game to describe fully only newly encountered locations
and objects. The game starts in this mode. The SUPERBRIEF command tells
STARCROSS to show only the name of the location, even on your first visit
there, and not even to mention which objects are present. You can still
get full descriptions by typing LOOK. In SUPERBRIEF mode, a blank line
will not appear between each of your moves. This mode is recommended
only for those adventurers who already know their way around.
.pg
.c;IV: CONCEPTS FOR EXPLORING
.s 2
The essence of interactive fiction is puzzle-solving. A locked door or a
ferocious beast shouldn't loom as a permanent obstacle to a dauntless
adventurer, but merely as a puzzle to be tackled. Solving the puzzles you
encounter will frequently involve bringing a certain item with you,
and then using it in the proper way. Some ways that objects behave may
not be immediately obvious to you.
.s
Containers and Surfaces: Some objects, called containers, can hold other
objects. Some can be opened or closed, such as a box. Others are always
open, such as a bowl. Some containers are transparent, and the objects
within can be seen even when the container is closed.
.s
Similarly, some objects have surfaces on which other objects can be
placed, such as a table. Most containers and surfaces have a limited
capacity, and all objects have sizes.
.s
Another note about containers: TAKE ALL will attempt to take only those
objects which are on the ground in your current location. It will not
attempt to take objects which are present but in containers or on surfaces.
.s
Characters: You can talk to some of the characters you meet in STARCROSS,
or even order them around in a simple way. See the section titled "Talking
to Starcross" for details. Characters will usually fight back when
attacked, and may, in some cases, attack you unprovoked. However,
communication and trade are always better than fighting. Remember that
you are, in effect, an ambassador for the entire human race during this
"first contact" with life from beyond our solar system.
.s
Vehicles: There may be objects in the story that you can board. Perhaps
such an object is a vehicle that will transport you to regions that are
inaccessible on foot. When you are in a vehicle, you usually can't reach
things outside the vehicle. In addition, you'd have to stand up before
you could walk around. Furniture, such as your bunk aboard the Starcross,
also acts in this way.
.pg
.c;V: LOADING STARCROSS
.s 2
Now that you know a little bit about what to expect when you venture
into STARCROSS, it's time for you to load your diskette. To do
so, follow the instructions on your Reference Card.
.s
Following the copyright notice and the release number of the game, you
will see a description of the starting location.
.s
Whenever you see the prompt (>), STARCROSS is waiting for you to type in your
instructions. When you have finished typing a command, press the RETURN
(or ENTER) key. STARCROSS will respond to your command, and then the prompt
(>) will reappear.
.s
Here are a couple of quick exercises to help you get accustomed to interacting
with STARCROSS. First, load your game according to the instructions on your
Reference Card. Then, try typing the following next to the prompt (>):
GET OUT OF THE BUNK
.s
When you press the RETURN (or ENTER) key, STARCROSS will respond with:
You are on your own feet again.
The alarm on the mass detector is ringing stridently.
.s
Now try typing:
TURN OFF THE ALARM
.s
After you press the RETURN (or ENTER) key, STARCROSS will respond:
The alarm is on the bridge, not here.
.s
Note that there are often many different ways to word the same command. For
example, to get out of the bunk, all of the following would work:
STAND
STAND UP
GET OUT OF THE BUNK
GET OFF THE BED
.pg
.c;VI: TALKING TO STARCROSS
.s 2
When you play STARCROSS, you "talk" to it in plain English,
typing your requests on your keyboard each time you see the prompt (>).
When you have finished typing a command, press the RETURN (or ENTER) key
and STARCROSS will process your request.
.s
STARCROSS usually acts as though your sentence begins with "I want to....",
although you should not type those words explicitly. STARCROSS then displays
a response that tells you whether what you want to do is possible in the
current situation, and if it is, whether anything interesting happened
as a result.
.s
All words that you type are distinguished by their first six letters,
and all subsequent letters are ignored. Therefore, SPACESuit, SPACEShip, and
SPACESickness would all be treated as the same word by STARCROSS.
.s
STARCROSS understands many different kinds of sentences. Here are some
examples, some of which don't actually occur in STARCROSS:
PICK UP THE SPACESUIT
PUT ON THE SPACESUIT.
TAKE IT OFF.
DROP THE SPACESUIT.
PICK UP SUIT THEN PUT IT ON.
GO STARBOARD.
WALK AFT.
SB.
GO COUNTERCLOCKWISE.
FORE.
DOWN.
D.
WALK AROUND THE AIRLOCK.
OPEN THE DOOR.
PUSH THE RED BUTTON.
EXAMINE THE ALIEN STATUE.
LOOK AT THE SCREEN.
LOOK UNDER THE TABLE.
LOOK INSIDE THE BROKEN CAGE.
LOOK BEHIND THE PANEL.
READ THE PLAQUE.
TAKE PLAQUE.
TAKE ALL PLAQUES EXCEPT THE TARNISHED PLAQUE.
FIRE THE RAY GUN AT THE PLAQUE.
DROP ALL.
DROP ALL BUT RAY GUN.
TAKE ALL FROM MONSTER.
KILL THE MONSTER WITH THE RAY GUN.
SHOOT THE RAY GUN AT THE MONSTER.
BREAK GLASS WITH ROCK.
.S
You are allowed to use multiple objects with certain verbs. You must
separate multiple objects of a verb by the word AND or by a comma. Some
examples:
TAKE ALL BUT THE RAY GUN AND THE TIME MACHINE.
DROP THE AIR TANK, PLIERS, AND UNIVERSAL TOOL.
PUT THE RADIOACTIVE INGOT AND THE FILMSTRIP IN THE JAR.
GIVE WIRE, JAR, AND BATTER TO ROBOT.
.S
You can include several sentences in one input line if you separate them
by the word THEN or by a period. You don't need to type a period at the
end of an input line. For example, you could input all of the following at
once, before pressing the RETURN (or ENTER) key.
TAKE LASER. EXAMINE IT.P.SHOOT LOCK THEN OPEN DOOR.AFT
.S
There are only two kinds of questions that STARCROSS understands: WHAT and
WHERE. Here are two examples that you can try in STARCROSS:
WHERE IS THE CHIEF?
WHAT IS A GRUE?
.s
You can talk to the other characters in the game, and even ask them to
do something. (Some of them may even obey your requests.) The proper
format for talking to a character is CHARACTER, DO THIS. Here are some
examples:
COMPUTER, LAND ON MARS
COMPUTER, THETA IS 320. PHI IS 48.
DOCTOR, WAIT HERE
COMPUTER, SET COURSE FOR CERES THEN REPORT STATUS
ROBOT, F.TAKE BATTERY.AFT.
.S
You can use quotes to answer a question or say something "out
loud". For example:
SAY "HELLO COMPUTER"
ANSWER "A LASER"
SHOUT "CLOSE THE DOOR"
.s
STARCROSS tries to be clever about what you really mean when you don't give
enough information. If you say that you want to do something, but don't
say what you want to do it to or with, STARCROSS will sometimes decide that
there was only one possible object that you could have meant. When it
does so, it will tell you. For example:
.no fill
.s
.lm 15
>TURN OFF
(the force field)
The shimmering curtain around you fades and vanishes.
.s
>KILL THE ALIEN
(with the ray gun)
The alien dodges the blast, and you end up putting a large hole
in the wall.
.s
.fill
.lm 10
If your sentence is ambiguous, STARCROSS will ask what you really meant. You
can answer most of these questions briefly by supplying the missing
information, rather than re-typing the entire sentence. You only have one
chance to supply the missing information; if you don't answer the question at
the very next prompt, you will have to re-type the entire command. Some
examples:
.no fill
.lm 15
.s
>TIE THE SAFETY LINE
What do you want to tie the safety line to?
>THE SPACESUIT
The safety line is now tied to the spacesuit.
.s
>CLOSE THE PANEL
Which panel do you mean, the green panel or the blue panel?
>GREEN
The green panel is now closed.
.fill
.lm 10
.s
STARCROSS uses many more words than it recognizes. For example, a
description of a location might read "Through the viewport is a
staggering panorama of stars and nebulae." However, if STARCROSS doesn't
recognize the words STARS or NEBULAE in your input, you can assume that
the stars and nebulae are not important to your completion of the game, and
are included only to enhance your mental imagery of the location.
STARCROSS recognizes nearly 600 words, almost every word that you
are likely to use when conversing with STARCROSS. If you encounter a
word that STARCROSS does not understand, you might try rephrasing or
using some synonyms of the word. More likely, your action is not
important in playing the game.
.s
Completely mystifying sentences will cause STARCROSS to complain in one way
or another. After making the complaint, STARCROSS will ignore the rest of the
input line. Unusual events, such as being attacked, will also cause STARCROSS
to ignore the rest of the sentences you typed, since the event may have
changed your situation drastically. For a complete list of these
responses, see the section entitled "STARCROSS RESPONSES."
.pg
.c;VII: TIPS FOR NOVICES
.s 2
It is extremely helpful to draw a map. The geography of the alien
artifact is quite unusual, to say the least, and mapping it will make
things much less confusing. Remember that there are 6 possible directions
as well as ENTER (or IN) and EXIT (or OUT).
.s
Read everything carefully. There are clues in many of the descriptions
of locations and objects, as well as in labels, books, signs, etc.
.s
Most objects in the game that you can pick up are important, as keys to
reaching the goal of the game or as solutions to the puzzles you will
encounter along the way.
.s
Unlike other "adventure games" that you may have played, there are many
possible routes to the completion of STARCROSS. There is no "correct" order
for solving the puzzles. Some puzzles have more than one solution,
other puzzles don't need to be solved at all.
.s
It is often helpful to play STARCROSS with another person. Different people
may find different puzzles easy, and can often complement each other.
.s
Don't be afraid to try something bold or strange -- you can always SAVE
your state first if you want (see the next section). Trying the bizarre
can be fun and will often give you a clue. Here's a nonsense example:
.s
.no fill
.lm 15
>PUT ON THE GREEN CALICO DRESS
Donning the green dress fails to convince the munchkins
that you are a witch.
.fill
.lm 10
.s
You have just learned that there is probably something you could wear
that would convince the munchkins that you are a witch, and possibly even
get them to give you their enchanted broom. Perhaps if you wore that
blue dress you saw earlier in the game...
.s
Read through the sample game transcript in the next chapter to get a feel
for how interactive fiction works.
.pg
.c;VIII: SAMPLE GAME TRANSCRIPT
.s
The following transcript is not from STARCROSS, but does show many of the most
common interactions that you will use while playing. It contains several
simple puzzles and their solutions, and will give the novice player a
good idea of how a game like STARCROSS works.
.s
.no fill
.ts 14, 18, 22
Engine Room
This large, cylindrical area houses the controls for the fusion
drive of the ship. The drive itself lies below the deck you're
standing on. A hatchway, closed, leads down toward the drive.
Open doorways lie to port and starboard, and a ladder leads up
through an opening in the deck above.
.s
>PORT
Storage
This is a tiny space for storing tools and supplies. The food
dispenser is set into the wall.
There is a Frobizzmus Wrench here.
.s
>SB
Engine Room
.s
>SB
Cargo Hold
This space is for storing the ship's cargo, which on this particular
trip is a large crate containing radioactive isotopes.
.s
>P
Engine Room
From the deck above you hear Sven McGillicuddy, your navigator,
calling down to you.
.s
>U
Bridge
This is the bridge of the Moonshine, a trading vessel commissioned
nearly a decade ago. Through the viewport you can see the surface
of Luna, Earth's moon, sliding by a hundred kilometers below. Beneath
the viewport is the ship's navigation computer.
Sven is sitting in the navigator's couch; the captain's couch is empty.
Sven holds up a print-out from the communications port. "Message from
Tycho Station."
.s
>TAKE THE PRINT-OUT. READ IT
Taken.
.s
"Divert to Clavius Station. Cargo urgently needed there."
.s
>SVEN, SET COURSE TO CLAVIUS STATION
"I can give you the co-ordinates, but you'll have to tell them to
the computer yourself. You know that it's keyed only to your voice."
.s
>EXAMINE THE COMPUTER
It is a typical navigational computer with standard features such as
the ability to give it verbal commands. It was programmed by a friend
of yours from California, who has since left the programming biz to
buy an alfalfa farm.
.s
>SVEN, GIVE ME THE CO-ORDINATES
The navigator fiddles with his instruments for a moment. "Co-ordinates
for Clavius Station are: Longitude 15 West, Latitude 58 South."
.s
>COMPUTER, LONGITUDE IS 15 WEST
Lights blink across the front of the computer. "Okay, man," says the
computer. "I've got the longitute set. Wanna lay the latitude on me?"
.s
>COMPUTER, LATITUDE IS 58 SOUTH
Lights blink across the front of the computer. "Okay, man," says the
computer. "Course set. Great bunch of coordinates. Totally. Like,
awaiting confirmation, you know?."
.s
>COMPUTER, CONFIRM
"Okay. Better buckle up, man. Burn in, like, uh, around 30 seconds."
.s
>GET IN THE COUCH
Which couch do you mean, the navigator's couch or the captain's couch?
.s
>CAPTAIN'S
You are now lying in the couch.
.s
>FASEN HARNESS
I don't know the word "fasen".
.s
>FASTEN HARNESS
You are now belted securely into the couch.
.s
>WAIT
Time passes...
Suddenly you are pressed into the couch as the computer activates the
ship's powerful thrusters. The burn lasts around 20 seconds, and then
suddenly you are weightless again.
.s
>INVENTORY
You are carrying:
a print-out
.s
>GIVE PRINT-OUT TO SVEN
You can't reach him from the couch.
The computer speaks. "Hey, man...I hate to drop something like this on
you, but it looks like the reactor has, like, it's gone out. Without the
next burn we'll ram into Luna in, uh...Gag me! Just over 3 minutes!"
.s
>DOWN
You'll have to stand up, first.
.s
>UNFASTEN HARNESS. STAND UP. D
Unfastened.
.s
You are on your own feet again.
.s
Engine Room.
A red light on the controls is blinking "Reactor Malfunction--Damaged
Fuel Cylinder."
.s
>LOOK
Engine Room
This large, cylindrical area houses the controls for the fusion
drive of the ship. The drive itself lies below the deck you're
standing on. A hatchway, closed, leads down toward the drive.
Open doorways lie to port and starboard, and a ladder leads up
through an opening in the deck above.
.s
>DOWN
The hatchway is closed.
.s
>OPEN IT
It won't open by hand.
.s
>EXAMINE THE HATCH
The hatchway is closed. You'll need a Frobizzmus Wrench to open it.
.s
>P
Storage
There is a Frobizzmus Wrench here.
.s
>TAKE
(Frobizzmus Wrench)
Taken.
.s
>SB
Engine Room
.s
>OPEN THE HATCH WITH THE WRENCH
The hatch opens. A steep gangway leads downward.
.s
>D
Reactor Room
This room houses the ship's powerful fusion drive. An access panel,
labelled "Fuel Cylinder Housing", is closed.
There is a spare fuel cylinder here.
.s
>OPEN THE PANEL
Opening the panel reveals a damaged fuel cylinder.
The computer's voice comes over a speaker in the ceiling. "Hate to
bug you, man, but only a minute and a half until impact, and all
the indicators are still red to the max."
.s
>TAKE DAMAGED CYLINDER. PUT SPARE CYLINDER IN PANEL
Taken. There is now a space inside the panel for another cylinder.
.s
You're not holding the spare fuel cylinder.
.s
>TAKE SPARE CYLINDER THEN PUT IT IN THE PANEL
Taken.
.s
The spare fuel cylinder is now mounted in the reactor.
.s
>CLOSE THE PANEL
The panel is now closed.
"Way to go, man! Everything looks cool, now. Final burn in 30 seconds!"
.s
>U.U.GET IN CAPTAIN'S COUCH.FASTEN HARNESS
Engine Room
.s
Bridge
.s
You are now lying in the couch.
.s
You are now belted securely into the couch.
The ships thrusters burn long and hard, pressing you deeply into the
cushions of the couch. After what seems like an eternity, the great
weight is suddenly lifted from you, leaving you lying comfortably in
the one-sixth gravity of Luna.
.fill
.pg
.c;IX: SAVING, RESTORING, RESTARTING, AND QUITTING
.s 2
It will take you a good deal of time to play STARCROSS through to the end
of the game. You will almost certainly not finish the game in a single
session. STARCROSS allows you to continue playing at a later time without
having to start over from the beginning, just as you can place a
bookmark in a book you are reading. There is a command, called SAVE,
that makes a "snapshot" of your position in the game. If you are a
prudent player, you may want to SAVE your position before you embark
upon (or after you complete) any particularly tricky or dangerous part
of your journey. Having taken this snapshot, you can go back to that
position whenever you want, even though you may have gotten lost or
"killed" afterward.
.s
In order to SAVE your position, type SAVE at the prompt (>), and then
press the RETURN (or ENTER) key. Then follow the instructions on you
Reference Card for Saving and Restoring. ^&Note that many systems require a
blank diskette, already initialized and formatted, for a SAVE. Using a
disk with data on it may result in the loss of that data, depending on
your system.\&
.s
When you want to continue playing from where you made a snapshot, follow
the RESTORE procedure. You can RESTORE a snapshot at any time during play.
To do so, type RESTORE at the prompt (>), and press the RETURN (or ENTER)
key. Then follow the instructions on your Reference Card for Saving and
Restoring. STARCROSS will now let you continue playing from your
SAVEd position. You can type LOOK for a description of where you are.
.s
If you want to abandon your current position, but you want to continue
playing, you can use the RESTART command. STARCROSS will tell you your
current score and the number of moves you have taken. Then it will ask
if you really want to start over from the beginning of the game. If you
do, type Y and hit the RETURN (or ENTER) key.
.s
If you want to stop playing, type QUIT. STARCROSS will respond with your
score and moves, and ask if you really want to leave the game. If you
do, type Y and hit the RETURN (or ENTER) key.
.s
Remember, when you RESTART or QUIT, that if you ever want to return to
your current position you must first do a SAVE.
.pg
.c;X: STARCROSS COMMANDS
.s 2
To simplify your adventuring, there are a number of one-word commands
that order STARCROSS to give you specific information. You can use these
over and over as needed. Some of them may constitute a move, others will
not. Type the command after the prompt (>) and hit the RETURN (or ENTER) key.
.s
AGAIN - STARCROSS will usually respond as if you had repeated your previous
sentence. Among the cases where AGAIN will not work is the case where you
were just talking to another character.
.s
BRIEF - This commands STARCROSS to describe fully only newly encountered
locations and objects. STARCROSS will describe a location already visited by
displaying only its name and any objects found there. This is the initial
mode of STARCROSS.
.s
DIAGNOSE - STARCROSS will give you a medical report of your physical
condition.
.s
INVENTORY - STARCROSS lists your current possessions. You can abbreviate
INVENTORY to I.
.s
LOOK - This command will cause STARCROSS to describe your surroundings in full
detail. You can abbreviate LOOK to L.
.s
QUIT - This command, which can be shortened to Q, gives you the option
to quit playing. If you want to SAVE your position first, follow the
instructions for doing so in the previous section.
.s
RESTART - This ends the game and starts it over from the beginning.
.s
RESTORE - This restores a game position made using the SAVE command. See the
previous section for more details.
.s
SAVE - This makes a snapshot of your current game position onto your storage
diskette. You can return to a SAVEd position in the future using the
RESTORE command. See the previous section for details.
.s
SCORE - STARCROSS will show your current score and the number of moves you
have made. SCORE will also display your rank, which is your rating as a
STARCROSS player and is based on the number of points you have.
.s
SCRIPT - This command assumes that you have a printer. It commands the
printer to begin printing a transcript of your game session. This option
is not required for playing STARCROSS, and is only available on some systems;
consult your Reference Card for details.
.s
SUPERBRIEF - This command tells STARCROSS to display only the name of a
location you have entered, even if you have never been there before.
When you are in SUPERBRIEF mode, STARCROSS will not mention which objects
are present unless you type LOOK.
.s
UNSCRIPT - This commands your printer to stop printing.
.s
VERBOSE - This command tells STARCROSS to show you the full description of
each location, and the objects in it, every time you enter it.
.s
VERSION - STARCROSS responds by showing you the Release number and the Serial
number of your copy of the game. You should include this information if
you ever report bugs in the game or problems with your disk.
.s
WAIT - This command causes time in the game to pass. Normally, between
moves, no time is passing as far as STARCROSS is concerned. You could leave
your computer, take a nap, and return to the game to find that nothing
has changed. WAIT is used when you want to find out what will happen in
the game if you do absolutely nothing while time passes. For example, if
you encounter an alien being, you could WAIT and see what it will do.
Or, if you are in a moving vehicle, you could WAIT to see where it will
go.
.pg
.c;XI: USEFUL VERBS
.s 2
The following list includes only some of the verbs that STARCROSS
understands. Keep in mind that these verbs can be combined with a
variety of prepositions. For example, LOOK can become LOOK INSIDE,
LOOK BEHIND, LOOK UNDER, LOOK THROUGH, LOOK AT and so on.
.s
.ts 15, 30, 45, 60
ATTACK FLY PICK STAND
BOARD FOLLOW POINT STEP
BREAK GIVE PULL SWIM
CANCEL JUMP PUSH TAKE
CLIMB KICK PUT TELL
CLOSE KILL RAISE THROW
CONFIRM KNOCK READ TIE
DIG LAND REMOVE TOUCH
DRINK LAUNCH SEARCH TURN
DROP LEAVE SET UNLOCK
EAT LOCK SHAKE UNTIE
ENTER LOOK SHOOT WAKE
EXAMINE LOWER SLIDE WALK
EXIT MOVE SMELL WAVE
FIND OPEN SMILE WEAR
.pg
.c;XII: STARCROSS RESPONSES
.s 2
STARCROSS may occasionally have a few words for you when it wants you to
clarify your instruction. Some of STARCROSS's responses are:
.s
I DON'T KNOW THE WORD "[your word]". The word you typed is not in the
game's vocabulary. Sometimes a synonym or rephrasing will be understood.
If not, STARCROSS probably doesn't know the idea you were trying to get
across, and you can assume that it isn't necessary for completing the game.
.s
I CAN'T USE THE WORD "[your word]" HERE. STARCROSS knows the word you typed,
but couldn't use it in that sense. Most commonly, this is because STARCROSS
knows the word as a different part of speech. For example, if you said PRESS
THE LOWER BUTTON, STARCROSS might recognize LOWER only as a verb, not as an
adjective as it is used in your sentence.
.s
I CAN'T FIND A VERB IN THAT SENTENCE! Unless you are answering a
question, each sentence must have a verb (or a command) in it somewhere.
.s
I THINK THAT SENTENCE WAS MISSING A NOUN. This usually
indicates an incomplete sentence, such as PUT THE LAMP IN THE, where
STARCROSS expected a noun and couldn't find one.
.s
I FOUND TOO MANY NOUNS IN THAT SENTENCE. An example is PUT THE SOUP IN
THE BOWL WITH THE LADLE. A valid STARCROSS sentence has, at most, one
direct object and one indirect object.
.s
I BEG YOUR PARDON? You did not type anything after the prompt (>) and
before hitting the RETURN (or ENTER) key.
.s
IT IS TOO DARK HERE TO SEE. In the story, there was not enough light to see
the objects you referred to.
.s
YOU CAN'T SEE ANY "[object]" HERE. The object you referred to was not
present, or was not accessible to you (for example, it was present but
inside a closed container).
.s
YOU CAN'T GO THAT WAY. There was no passage or exit in the direction
you tried to move.
.s
I CAN'T USE MULTIPLE (IN)DIRECT OBJECTS WITH "[your verb]". You can use
multiple objects (that is, nouns or noun phrases separated by
AND or a comma) only with certain verbs. Among the more useful of these
verbs are TAKE, DROP, PUT, and EXAMINE. This restriction also applies to
the use of ALL, as in DROP ALL. An example of a verb that will not work
with multiple objects is ATTACK; you couldn't say ATTACK ALL or ATTACK
THE ROBOT AND THE ANDROID.
.s
I DON'T UNDERSTAND THAT SENTENCE. The sentence you typed was gibberish,
such as GIVE ALIEN WITH LASER. Or, you may have typed a reasonable sentence
but used a syntax that STARCROSS does not understand, such as SMELL UNDER
THE BUNK. Try rephrasing the sentence.
.pg
.c;XIII: SENTENCE SYNTAX
.s 2
A STARCROSS sentence must contain a verb or a command (such as AGAIN).
.s
You must separate multiple objects of the verb by the word AND
or by a comma.
.s
You must separate several sentences typed to STARCROSS at one time by a
period or by the word THEN. A period is not needed at the end of a line
of input.
.s
You can ask only two kinds of questions, WHERE and WHAT.
.s
You can abbreviate compass directions to N, E, S, W, NE, NW, SE, SW. UP
and DOWN may be shortened to U and D, respectively.
.s
Other abbreviations include L for LOOK and I for INVENTORY.
.pg
.c;XIV: COMMAND SUMMARY
.s 2
You can enter the following commands when the prompt (>) has appeared
on the screen. For an explanation of these commands, see the section
entitled Starcross Commands.
.s
.TS 15, 40
AGAIN SAVE
BRIEF SCORE
DIAGNOSE SCRIPT
INVENTORY (or I) SUPERBRIEF
LOOK (or L) UNSCRIPT
QUIT (or Q) VERBOSE
RESTART VERSION
RESTORE WAIT
.pg
.c;XV: WE'RE NEVER SATISFIED
.s 2
Here at Infocom, we take great pride in the quality of our games. Even
after they're "out the door", we're constantly improving, honing and
perfecting.
.s
Your input is important. No matter how much testing we do, it seems that
there are some bugs that never crawl into view until thousands of you begin
doing all those wild and crazy things to the game. If you find a bug, or if
you have a suggestion for some additional sentence syntaxes and vocabulary
words, or if you found a certain puzzle too hard or too easy, or if
you'd just like to tell us what you thought of the game, drop us a note!
We love every excuse to stop working and fool around for a while, and a
letter from you is just such an excuse! Write to:
.s
.lm 15
.no fill
INFOCOM, INC.
55 WHEELER STREET
CAMBRIDGE, MA 02138
.S
Attn: GURTHARK
.s
.lm 10
.fill
You can call the Infocom Technical Support Team to report bugs and
technical problems by dialing (617) 576-3190. Note that this is NOT a
hint line. If you develop a problem with your diskette within 90 days
after purchase, we will replace your diskette at no charge. Otherwise,
there is a replacement fee of $5 (U.S. currency). Please return your
registration card if you'd like to be on our mailing list and receive
our customer newsletter, The New Zork Times.

View File

@ -48,6 +48,14 @@
<GLOBAL P-INBUF <ITABLE BYTE 100>>
;"Parse-cont variable"
;"AGAIN globals"
<GLOBAL A-LEXV <ITABLE BYTE 120>>
<GLOBAL A-INBUF <ITABLE BYTE 100>>
<GLOBAL A-PTR 0>
<GLOBAL A-PTR2 0>;"need to save 2 pointers back"
<GLOBAL NOT-AGAIN 2>;"values: <> if V-AGAIN is calling MAIN-LOOP
1 if AGAIN was last verb; 2 otherwise"
<GLOBAL P-CONT <>>
<GLOBAL P-IT-OBJECT <>>
@ -124,6 +132,13 @@
<GLOBAL QUOTE-FLAG <>>
<ROUTINE TABLE-COPY (SRC DEST CNT)
<SET CNT <* .CNT 2>>
<REPEAT ()
<COND (<DLESS? CNT 0> <RETURN>)
(T <PUTB .DEST .CNT <GETB .SRC .CNT>>)>>>
" Grovel down the input finding the verb, prepositions, and noun clauses.
If the input is <direction> or <walk> <direction>, fall out immediately
setting PRSA to ,V?WALK and PRSO to <direction>. Otherwise, perform
@ -154,6 +169,9 @@
<SETG QUOTE-FLAG <>>
<COND (<NOT <FSET? <LOC ,WINNER> ,VEHBIT>>
<SETG HERE <LOC ,WINNER>>)>
<COND (<==? ,NOT-AGAIN 2>
<TABLE-COPY ,P-INBUF ,A-INBUF 50 ;100>
<TABLE-COPY ,P-LEXV ,A-LEXV 60 ;120>)>
<SET SCNT ,P-SPACE>
<REPEAT ()
<COND (<L? <SET SCNT <- .SCNT 1>> 0> <RETURN>)
@ -165,7 +183,16 @@
<SET LEN ,P-LEN>
<SETG P-DIR <>>
<SETG P-NCN 0>
<SETG P-GETFLAGS 0>
<SETG P-GETFLAGS 0>
;"3/25/83: Next statement added."
<PUT ,P-ITBL ,P-VERBN 0>
<COND (<==? ,NOT-AGAIN 2>
<SETG A-PTR ,A-PTR2>
<COND (<NOT <==? .PTR ,P-LEXSTART>>
<TABLE-COPY ,P-INBUF ,A-INBUF 50 ;100>
<TABLE-COPY ,P-LEXV ,A-LEXV 60 ;120>)>)
(<==? ,NOT-AGAIN 1> <SETG NOT-AGAIN 2>)>
<SETG A-PTR2 .PTR>
<REPEAT ()
<COND (<L? <SETG P-LEN <- ,P-LEN 1>> 0>
<SETG QUOTE-FLAG <>>
@ -180,10 +207,10 @@
<PUT ,P-ITBL ,P-VERB ,ACT?TELL>
<PUT ,P-ITBL ,P-VERBN 0>
<SET WORD ,W?QUOTE>)>
<COND ;(<AND <EQUAL? .WORD ,W?.>
<COND ;(<AND <EQUAL? .WORD ,W?PERIOD>
<EQUAL? .LW ,W?MRS ,W?MR ,W?MS>>
<SET LW 0>)
(<OR <EQUAL? .WORD ,W?THEN ,W?.>
(<OR <EQUAL? .WORD ,W?THEN ,W?PERIOD>
<EQUAL? .WORD ,W?QUOTE>>
<COND (<EQUAL? .WORD ,W?QUOTE>
<COND (,QUOTE-FLAG
@ -206,7 +233,7 @@
,W?QUOTE>
<==? .VERB ,ACT?WALK>
<G? .LEN 2>>
<AND <EQUAL? .NW ,W?.>
<AND <EQUAL? .NW ,W?PERIOD>
<EQUAL? .VERB ,ACT?WALK <>>
<G? .LEN 1>>
<AND ,QUOTE-FLAG
@ -235,7 +262,6 @@
<PUTB ,P-VTBL 3 <GETB ,P-LEXV <+ .NUM 1>>>)
(<OR <SET VAL <WT? .WORD ,PS?PREPOSITION 0>>
<AND <OR <EQUAL? .WORD ,W?ALL ,W?ONE ,W?A>
<EQUAL? .WORD ,W?BOTH>
<WT? .WORD ,PS?ADJECTIVE>
<WT? .WORD ,PS?OBJECT>>
<SET VAL 0>>>
@ -246,12 +272,11 @@
;<NOT <EQUAL? .VERB ,ACT?ACCUSE>>
<0? .VAL>
<NOT
<EQUAL? .WORD ,W?ALL ,W?ONE ,W?A>>
<NOT <EQUAL? .WORD ,W?BOTH>>>)
<EQUAL? .WORD ,W?ALL ,W?ONE ,W?A>>>)
(<AND <NOT <0? .VAL>>
<OR <0? ,P-LEN>
<EQUAL? <GET ,P-LEXV <+ .PTR 2>>
,W?THEN ,W?.>>>
,W?THEN ,W?PERIOD>>>
<COND (<L? ,P-NCN 2>
<PUT ,P-ITBL ,P-PREP1 .VAL>
<PUT ,P-ITBL ,P-PREP1N .WORD>)>)
@ -332,15 +357,15 @@
<==? <GET ,P-ITBL ,P-VERB> ,ACT?ACCUSE>>
<PUT ,P-LEXV .PTR ,W?WITH>
<SET WORD ,W?WITH>)>
<COND ;(<AND <EQUAL? .WORD ,W?.>
<COND ;(<AND <EQUAL? .WORD ,W?PERIOD>
<EQUAL? .LW ,W?MRS ,W?MR ,W?MS>>
<SET LW 0>)
(<EQUAL? .WORD ,W?AND ,W?COMMA> <SET ANDFLG T>)
(<EQUAL? .WORD ,W?ALL ,W?BOTH ,W?ONE>
(<EQUAL? .WORD ,W?ALL ,W?ONE>
<COND (<==? .NW ,W?OF>
<SETG P-LEN <- ,P-LEN 1>>
<SET PTR <+ .PTR ,P-LEXELEN>>)>)
(<OR <EQUAL? .WORD ,W?THEN ,W?.>
(<OR <EQUAL? .WORD ,W?THEN ,W?PERIOD>
<AND <WT? .WORD ,PS?PREPOSITION>
<NOT .FIRST??>>>
<SETG P-LEN <+ ,P-LEN 1>>
@ -621,7 +646,7 @@
(T
<COND (.NOSP <SET NOSP <>>)
(T <TELL " ">)>
<COND (<==? <SET WRD <GET .BEG 0>> ,W?.> <SET NOSP T>)
<COND (<==? <SET WRD <GET .BEG 0>> ,W?PERIOD> <SET NOSP T>)
;(<==? .WRD ,W?MRS> <TELL "Mrs."> <SET PN T>)
;(<==? .WRD ,W?MS> <TELL "Ms."> <SET PN T>)
;(<==? .WRD ,W?MR> <TELL "Mr."> <SET PN T>)
@ -795,7 +820,7 @@
<COND (<==? .PTR .EPTR> <RETURN <GET-OBJECT <OR .BUT .TBL>>>)
(T
<SET NW <GET .PTR ,P-LEXELEN>>
<COND (<EQUAL? .WORD ,W?ALL ,W?BOTH>
<COND (<EQUAL? .WORD ,W?ALL>
<SETG P-GETFLAGS ,P-ALL>
<COND (<==? .NW ,W?OF>
<SET PTR <REST .PTR ,P-WORDLEN>>)>)
@ -1175,4 +1200,19 @@
<COND (<OR ,P-MERGED
<==? <GET <SET PTR <GET ,P-ITBL ,P-NC2>> 0> ,W?IT>>
<TELL " " D ,PRSO>)
(T <BUFFER-PRINT .PTR <GET ,P-ITBL ,P-NC2L> <>>)>>
(T <BUFFER-PRINT .PTR <GET ,P-ITBL ,P-NC2L> <>>)>>
<ROUTINE THIS-IT? (OBJ TBL "AUX" SYNS)
<COND (<FSET? .OBJ ,INVISIBLE> <RFALSE>)
(<AND ,P-NAM
<NOT <ZMEMQ ,P-NAM
<SET SYNS <GETPT .OBJ ,P?SYNONYM>>
<- </ <PTSIZE .SYNS> 2> 1>>>>
<RFALSE>)
(<AND ,P-ADJ
<OR <NOT <SET SYNS <GETPT .OBJ ,P?ADJECTIVE>>>
<NOT <ZMEMQB ,P-ADJ .SYNS <- <PTSIZE .SYNS> 1>>>>>
<RFALSE>)
(<AND <NOT <0? ,P-GWIMBIT>> <NOT <FSET? .OBJ ,P-GWIMBIT>>>
<RFALSE>)>
<RTRUE>>

189
starcross.txt Normal file
View File

@ -0,0 +1,189 @@
THE SHIP FROM THE STARS
Dave Lebling
November, 1981
-Synopsis-
Space-based tracking radars discover a small asteroid (or huge
starship) hurtling into the solar system. Although they don't know it,
the ship is an enormous gift and test sent by an advanced race to the
primitive cultures of the galactic arm. The ship contains secrets which
wish to be discovered, but only by a race advanced enough (and clever
enough and lucky enough) to penetrate its mysteries.
The ultimate goal is to gain control of the ship's instruments and
thereby bring it into orbit around the Sun, so that it can be studied
and exploited. The radar tracking makes clear that there is only a
limited amount of time available, as the orbit takes it through the
solar system almost perpendicular to the plane of the ecliptic.
Further, control of the ship is vested in "magic" devices (keys, if you
will) which collectively activate the main control panel. Each key is
obtained by solving a problem.
Other attempts have been made to stop the ship: our system is not the
first it has visited. Relics of those attempts, including adventurers
or their descendants, remain aboard. On the other hand, they may know
about how to obtain keys or even have some themselves.
The player is in the role of the "lucky" asteroid miner who is the only
earth-based ship with an orbit close enough to the cylinder's path to
have a chance to intercept it.
-Ship Layout-
The ship is an enormous cylinder (roughly -- it was obviously a hacked
up asteroid). At one end are the engines, at the other the control
room. Much of the interior is airspace. Around the rim are four
docking ports, three of which are occupied when the Earth ship arrives!
Main gangways run the length of the ship, main lifts near the docking
ports run from the outside rim to the airspace. There are ring corridors
leading around the ship as well. The engine end of the airspace supports a
jungle environment which replenishes the air supply. The center of the
jungle end sports the drive bubble (engine room), which is not visible
from the ground because of the jungle. The center of the other end
sports the control bubble. There is a fence midway to keep the jungle
at its end.
-Docking Ports-
There are four of these. Two are already occupied by the ships of
previous adventurers, and one was destroyed (almost) by the blast-off of
a third. Each port has flexible grapples which catch incoming ships,
deccelerate them and hold them. Nearby is a port with airlock which is
opened by pushing the "earth" symbol in a stylized solar system. In the
airlock is found the first key and a device which allows limited use of
the ship's computer.
-Keys-
The keys are translucent crystals of various colors. To make the test
fair, one is found in your airlock. Several others have already been
found by previous adventurers, and some of these are same color as your
airlock one (they crumble to dust when confronted with yours).
-Translator-
Ship has been listening to radio/TV broadcasts from Earth (that's how it
decided to come here). Translator connects to central computer, which
watches and observes all goings on. Doesn't work perfectly though, and
it's not omniscient. Will answer some questions, but not all. The
translator is somewhat fragile, and can get broken in a fight, for
example.
-Jungle-
You can gain access to the drive bubble by climbing trees (bubble is
invisible from floor). No trees at control bubble end. Drive bubble
will open into weightless area, but you can't push off with enough
impulse to get to control end. Jump plus assist from several blasts
from the zap gun will be enough to get there (note that you thus can't
overuse the zap gun, as it has limited charges. One of the keys
opens the control bubble.
-Aliens-
There were three previous attempts to take over the ship:
1) The Immortal. A hugely long-lived alien, he still lives in his ship.
He looks like an enormous spider (but he isn't -- remember the square-
cube law). The intent is that he should look fierce and nasty, but not
be. He knows a lot, may give you information and a key.
Profoundly bored, he has been here a long time. You should give him
your entertainment cassettes. He has a translator of his own.
2) The Savages. These are descendents of a larger expedition which
contained both sexes. The chieftain wears the ancient ruins of a
spacesuit, carries a key as a token. If you are in a spacesuit as well
he will trade the key for your much more interesting spacesuit. You can
also blow it and get him or his tribe to fight you. Zap gun may destroy
key. He will also lead you into the ship in which his ancestors arrived,
and there you can find another key! This ship is on the other side of
a more-or-less unmappable maze; unmappable because the young of this
species will steal anything you drop to aid in mapping.
3) The Departed. This alien tried to get away after finding at least
one key. He didn't make it. The corpse is tethered to the ship.
Perhaps he was waiting for another ship to take him off, or his companions
abandoned him. He has a key.
-Teleportation Disks-
These flip to the other if something touches them. They are activated
by pressure (e.g., dropping them) on one side (the red side). Whatever
is within their range is transported. They are found hanging
side-by-side on the wall near the Force Shield.
-Force Shield-
Has four settings, lowest of which reveals a key imbedded in the field.
Place something on the shield at a middle setting, then put a T.D. on
the floor beneath. Then set the shield to the highest setting, which
leaves the object unsupported, and it drops onto the T.D., transporting
it and the key to the other disk.
-Maintenance Mice-
These carry off any object left on the floor. Can be found in the
Maintenance Center. They go in and out of holes in walls, so you can't
follow them. You can use the Teleportation Disks to get into the
maintenance center, though! Just leave one somewhere and a mouse will
pick it up sooner or later.
-Zoo-
Most of the animals have died, escaped, or been released. A hive of
rat-ants (name is self-explanatory) remains. They build nests out of
junk, including a key they found somewhere. If you break the nest,
they will rebuild it further away from you, but you can get the key
before they reuse it.
-Computer Room-
A non-working computer is here, which you can reactivate by plugging
a replacement board in; but be sure to power it off first or you fry
the board. The computer will extrude a key if you do the right thing
here.
-Observation Deck-
A clear key here produces a prism which you can see before you see the
key itself.
-Weapons Deck-
You find a zap gun here, which has an enormous recoil to it (you can
use it to propel you to the control room). It has only a certain number
of charges, of course. It also has a key in its barrel which tints the
blast its color. None of the other weapons works.
-Engine Room-
-Maintenance Center-
Maintenance mice return here, and they drop anything they've picked up
that might not be real trash. There is a rather full bin of such stuff,
since no one has checked it recently. If you root around long enough
you will find a key, plus anything else you may have dropped that the mice
recovered.
-Dropshaft-
Most dropshafts (air conditioning?) are covered with an invulnerable
mesh. One is not. You must stop at each level going out you will
splat.
-Control Bubble-
Something nasty lives in it. The normal exits are blocked.
-Control Panel-
This is very complicated. Basically it a control panel for illiterates,
all symbolic. There is a key for each control without which the control
won't activate. The labelling is not even there until the keys are
inserted. There are View Select controls, Speed select controls, a
Target Select board and viewer, and a Course Select board. There is
also an execute key. You have to figure out how to direct the ship into
a circular Earth orbit...

40
starcross.xzap Normal file
View File

@ -0,0 +1,40 @@
.INSERT "STARCROSSFREQ"
.INSERT "STARCROSSDAT" ; DATA IS IN THIS FILE
.INSERT "DUNGEON"
.INSERT "SYNTAX"
ENDLOD::
.INSERT "MACROS"
.INSERT "CLOCK"
.INSERT "MAIN"
.INSERT "PARSER"
.INSERT "CRUFTY"
.INSERT "VERBS"
.INSERT "ACTIONS"
.INSERT "EMERG"
.INSERT "STARCROSSSTR"
.END

53
starcross.zil Normal file
View File

@ -0,0 +1,53 @@
"SF for
Zork SF Game
(c) Copyright 1981 Infocom, Inc. All Rights Reserved.
"
<SNAME "STARCROSS">
<BLOAT 70000 0 0 2700 0 0 0 0 0 256>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !\= !,WBREAKS>>>
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <IFILE .STR T>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "Starcross: Interlogic Science Fiction
">
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "DUNGEON" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
<IFILE "SYNTAX" T>
<ENDLOAD>
<IFILE "MACROS" T>
<IFILE "CLOCK" T>
<IFILE "PARSER" T>
<IFILE "MAIN" T>
;<INSERT-CRUFTY "CRUFTY">
<IFILE "VERBS" T>
<IFILE "ACTIONS" T>
<IFILE "EMERG" T>
<GC 0 T>
<DEFINE CNT (STR OBL)
<PRINC .STR>
<PRIN1 <MAPF ,+ ,LENGTH .OBL>>
<CRLF>>
<IMAGE 7><IMAGE 7><IMAGE 7>

BIN
starcross.zip Normal file

Binary file not shown.

200
starcrossfreq.xzap Normal file
View File

@ -0,0 +1,200 @@
.FSTR FSTR?1,"the " ;1784 892
.FSTR FSTR?2,"The " ;1164 388
.FSTR FSTR?3,"and " ;670 335
.FSTR FSTR?4,", " ;603 603
.FSTR FSTR?5,"You " ;585 195
.FSTR FSTR?6,"is " ;474 474
.FSTR FSTR?7,"you " ;442 221
.FSTR FSTR?8,"There " ;440 88
.FSTR FSTR?9,". " ;425 425
.FSTR FSTR?10,"of " ;393 393
.FSTR FSTR?11,"are " ;350 175
.FSTR FSTR?12,"can't " ;290 58
.FSTR FSTR?13,"with " ;276 92
.FSTR FSTR?14,"This " ;260 65
.FSTR FSTR?15,"to " ;254 254
.FSTR FSTR?16,"which " ;244 61
.FSTR FSTR?17,"your " ;237 79
.FSTR FSTR?18,"have " ;222 74
.FSTR FSTR?19,"that " ;207 69
.FSTR FSTR?20,"corridor " ;189 27
.FSTR FSTR?21,"from " ;177 59
.FSTR FSTR?22,"into " ;174 58
.FSTR FSTR?23,"in " ;168 168
.FSTR FSTR?24,"maintenance " ;160 16
.FSTR FSTR?25,"artifact" ;156 26
.FSTR FSTR?26,"computer " ;147 21
.FSTR FSTR?27,"for " ;146 73
.FSTR FSTR?28,"space " ;144 36
.FSTR FSTR?29,"nothing " ;138 23
.FSTR FSTR?30,"here" ;136 68
.FSTR FSTR?31,"but " ;132 66
.FSTR FSTR?32,"It's " ;130 26
.FSTR FSTR?33,"already " ;126 21
.FSTR FSTR?34,"cylinder" ;120 20
.FSTR FSTR?35,"large " ;116 29
.FSTR FSTR?36,"through " ;114 19
.FSTR FSTR?37,"around " ;110 22
.FSTR FSTR?38,"crystal " ;108 18
.FSTR FSTR?39,"artifact " ;105 15
.FSTR FSTR?40,"small " ;104 26
.FSTR FSTR?41,"something " ;104 13
.FSTR FSTR?42,"this " ;102 34
.FSTR FSTR?43,"don't " ;100 20
.FSTR FSTR?44,"mouse " ;96 24
.FSTR FSTR?45,"chief " ;96 24
.FSTR FSTR?46,"about " ;96 24
.FSTR FSTR?47,"surface " ;96 16
.FSTR FSTR?48,"airlock " ;96 16
.FSTR FSTR?49,"It " ;88 44
.FSTR FSTR?50,"there " ;88 22
.FSTR FSTR?51,"some " ;87 29
.FSTR FSTR?52,"has " ;86 43
.FSTR FSTR?53,"out " ;84 42
.FSTR FSTR?54,"not " ;84 42
.FSTR FSTR?55,"seems " ;84 21
.FSTR FSTR?56,"controls " ;84 12
.FSTR FSTR?57,"Unfortunately" ;84 7
.FSTR FSTR?58,"here " ;81 27
.FSTR FSTR?59,"almost " ;80 16
.FSTR FSTR?60,"aliens " ;80 16
.FSTR FSTR?61,"mass " ;78 26
.FSTR FSTR?62,"blue " ;78 26
.FSTR FSTR?63,"strange " ;78 13
.FSTR FSTR?64,"outside " ;78 13
.FSTR FSTR?65,"starboard" ;77 11
.FSTR FSTR?66,"floating " ;77 11
.FSTR FSTR?67,"at " ;76 76
.FSTR FSTR?68,"would " ;76 19
.FSTR FSTR?69,"bubble" ;76 19
.FSTR FSTR?70,"it " ;75 75
.FSTR FSTR?71,"been " ;75 25
.FSTR FSTR?72,"yellow " ;75 15
.FSTR FSTR?73,"airlock" ;75 15
.FSTR FSTR?74,"as " ;72 72
.FSTR FSTR?75,"one " ;72 36
.FSTR FSTR?76,"end " ;72 36
.FSTR FSTR?77,"area " ;72 24
.FSTR FSTR?78,"other " ;72 18
.FSTR FSTR?79,"metal " ;72 18
.FSTR FSTR?80,"looks " ;72 18
.FSTR FSTR?81,"They " ;72 18
.FSTR FSTR?82,"wearing " ;72 12
.FSTR FSTR?83,"appears " ;72 12
.FSTR FSTR?84,"projector " ;72 9
.FSTR FSTR?85,"on " ;71 71
.FSTR FSTR?86,"safety " ;70 14
.FSTR FSTR?87,"rotation " ;70 10
.FSTR FSTR?88,"attached " ;70 10
.FSTR FSTR?89,"like " ;69 23
.FSTR FSTR?90,"then " ;66 22
.FSTR FSTR?91,"corridor" ;66 11
.FSTR FSTR?92,"control " ;66 11
.FSTR FSTR?93,"rather " ;65 13
.FSTR FSTR?94,"bubble " ;65 13
.FSTR FSTR?95,"expressionless " ;65 5
.FSTR FSTR?96,"I " ;64 64
;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

View File

@ -11,7 +11,7 @@
<SYNONYM WITH USING THROUGH>
<SYNONYM IN INSIDE INTO>
<SYNONYM ALL BOTH>
<SYNONYM UNDER UNDERNEATH BENEATH>
<SYNONYM NORTH N FORE FORWARD FOREWARD F>
<SYNONYM SOUTH S AFT>
@ -70,8 +70,6 @@
= V-ATTACK>
<SYNONYM ATTACK FIGHT HURT INJURE HIT>
<SYNTAX BACK = V-BACK>
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
= V-BOARD PRE-BOARD>
@ -175,6 +173,7 @@
<SYNTAX JUMP IN OBJECT = V-LEAP>
<SYNTAX JUMP FROM OBJECT = V-LEAP>
<SYNTAX JUMP OFF OBJECT = V-LEAP>
<SYNTAX JUMP TO OBJECT = V-LEAP>
<SYNONYM JUMP LEAP>
<SYNTAX KICK OBJECT = V-KICK>
@ -231,7 +230,9 @@
<SYNTAX SEARCH FOR OBJECT = V-FIND>
<SYNTAX SEARCH WITH OBJECT = V-SEARCH> ;"THROUGH"
<SYNONYM SEARCH EMPTY RUMMAGE SORT SIFT>
<SYNONYM SEARCH RUMMAGE SORT SIFT>
<SYNTAX EMPTY OBJECT = V-EMPTY>
<SYNTAX LOWER OBJECT = V-LOWER>

135
verbs.zil
View File

@ -1,4 +1,4 @@
"VERBS for
"VERBS for
Interlogic SF Game
(c) Copyright 1981,1982 Infocom, Inc. All Rights Reserved
"
@ -53,7 +53,7 @@
<SET V? <OR .LOOK? ,VERBOSE>>
<COND (<NOT ,LIT>
<TELL
"It is pitch black. You are likely to be eaten by a grue." CR>
"It is pitch black. You are likely to be eaten by a grue." CR>
<RETURN <>>)>
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
<FSET ,HERE ,TOUCHBIT>
@ -250,9 +250,10 @@ long description (fdesc or ldesc), otherwise will print short."
<ROUTINE V-VERSION ("AUX" (CNT 17))
<TELL
"STARCROSS: INTERLOGIC Science Fiction|
"STARCROSS|
Infocom interactive fiction - a science-fiction story|
Copyright (c) 1982 by Infocom, Inc. All rights reserved.|
STARCROSS and INTERLOGIC are trademarks of Infocom, Inc.|
STARCROSS is a registered trademark of Infocom, Inc.|
Release ">
<PRINTN <BAND <GET 0 1> *3777*>>
<TELL " / Serial number ">
@ -263,7 +264,7 @@ Release ">
<PRINTC <GETB 0 .CNT>>)>>
<CRLF>>
<ROUTINE V-AGAIN ("AUX" OBJ)
;<ROUTINE V-AGAIN ("AUX" OBJ)
<COND (<==? ,L-PRSA ,V?WALK>
<DO-WALK ,L-PRSO>)
(T
@ -278,6 +279,32 @@ Release ">
(T
<PERFORM ,L-PRSA ,L-PRSO ,L-PRSI>)>)>>
;"Hopefully improved AGAIN"
<ROUTINE V-AGAIN ("AUX" CONT LEXV INBUF V)
<SET LEXV <TABLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>>
<SET INBUF <TABLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0>>
<COND (<0? ,P-LEN> <SET CONT <>>)
(T <SET CONT ,P-CONT>)>
<TABLE-COPY ,P-LEXV .LEXV 60 ;120>
<TABLE-COPY ,P-INBUF .INBUF 50 ;100>
<TABLE-COPY ,A-LEXV ,P-LEXV 60 ;120>
<TABLE-COPY ,A-INBUF ,P-INBUF 50 ;100>
<SETG P-CONT ,A-PTR>
<SETG NOT-AGAIN <>>
<SET V <MAIN-LOOP>>
<SETG NOT-AGAIN 1>
<SETG PRSA ,V?AGAIN>
<COND (<==? .V ,M-FATAL>
<SETG P-CONT <>>)
(T <SETG P-CONT .CONT>)>
<TABLE-COPY .LEXV ,P-LEXV 60 ;120>
<TABLE-COPY .INBUF ,P-INBUF 50 ;100>
<RETURN .V>>
\
"SUBTITLE DEATH AND TRANSFIGURATION"
@ -286,17 +313,7 @@ Release ">
<GLOBAL LUCKY 1>
<ROUTINE JIGS-UP (DESC "OPTIONAL" (PLAYER? <>))
#DECL ((DESC) STRING (PLAYER?) <OR ATOM FALSE>)
<TELL .DESC CR>
<COND (<NOT <==? ,ADVENTURER ,WINNER>>
<TELL "
| **** The " D ,WINNER " has died ****
|
|">
<REMOVE ,WINNER>
<SETG WINNER ,ADVENTURER>
<SETG HERE <LOC ,WINNER>>
<RFATAL>)>
<PROG ()
<SCORE-UPD -10>
<TELL "
@ -307,8 +324,8 @@ Release ">
<COND (<==? ,DEATHS 4>
<COND (,DOCKED?
<TELL
"The expressionless voice seems despairing as it says \"Four failures.
They would not be pleased. Such promising candidates, too. If only...\"
"The expressionless voice seems despairing. \"Four failures. They would not
be pleased. Such promising candidates, too. If only...\"
The voice trails off into background hiss. Nothing more happens, ever." CR>)
(ELSE
<TELL
@ -435,8 +452,6 @@ you have been given another chance." CR>)>
<RETURN <GET .TBL <+ .CNT 1>>>)>)>>>
<ROUTINE V-WALK ("AUX" PT PTS STR OBJ RM)
#DECL ((PT) <OR FALSE TABLE> (PTS) FIX (STR) <OR STRING FALSE>
(OBJ) OBJECT (RM) <OR FALSE OBJECT>)
<COND (<NOT ,P-WALK-DIR>
<PERFORM ,V?WALK-TO ,PRSO>
<RTRUE>)
@ -542,7 +557,7 @@ you have been given another chance." CR>)>
;"This must go! Chomping compiler strikes again"
<TELL
"Oh, no. The " D .OBJ " slips from your arms while taking the "
D ,PRSO " and both tumble to the ground." CR>
D ,PRSO " and both tumble to the floor." CR>
<SET WLOC <LOC ,WINNER>>
<COND (<==? ,PRSO ,UNDER-GLOBE>
<SETG UNDER-GLOBE <>>
@ -665,7 +680,10 @@ D ,PRSO " and both tumble to the ground." CR>
<ROUTINE V-THROW () <COND (<IDROP> <TELL "Thrown." CR>)>>
<ROUTINE IDROP ()
<COND (<NOT <HELD? ,PRSO>>
<COND (<EQUAL? <LOC ,PRSO> ,GLOBAL-OBJECTS ,LOCAL-GLOBALS>
<TELL "You can't throw that." CR>
<RFALSE>)
(<NOT <HELD? ,PRSO>>
<TELL "You're not carrying the " D ,PRSO "." CR>
<RFALSE>)
(<AND <NOT <IN? ,PRSO ,WINNER>>
@ -752,13 +770,19 @@ D ,PRSO " and both tumble to the ground." CR>
<COND (<NOT <SET CONT <NEXT? .CONT>>> <RETURN>)>>)>
<+ .WT <GETP .OBJ ,P?SIZE>>>
<GLOBAL COPR-NOTICE
" a transcript of interaction with STARCROSS.|
STARCROSS is a registered trademark of Infocom, Inc.|
Copyright (c) 1982 Infocom, Inc. All rights reserved.|">
<ROUTINE V-SCRIPT ()
<PUT 0 8 <BOR <GET 0 8> 1>>
<TELL "Ok." CR>>
<PUT 0 8 <BOR <GET 0 8> 1>>
<TELL "Here begins" ,COPR-NOTICE CR>>
<ROUTINE V-UNSCRIPT ()
<PUT 0 8 <BAND <GET 0 8> -2>>
<TELL "Ok." CR>>
<TELL "Here ends" ,COPR-NOTICE CR>
<PUT 0 8 <BAND <GET 0 8> -2>>
<RTRUE>>
<ROUTINE PRE-MOVE
()
@ -810,15 +834,10 @@ D ,PRSO " and both tumble to the ground." CR>
<ROUTINE PRE-BOARD ("AUX" AV)
<SET AV <LOC ,WINNER>>
<COND (<FSET? ,PRSO ,VEHBIT>
<COND ;(<NOT <HERE?? ,PRSO>>
<TELL "The "
D
,PRSO
" must be on the ground to be boarded." CR>)
(<FSET? .AV ,VEHBIT>
<COND (<FSET? .AV ,VEHBIT>
<TELL "You are already in it!" CR>)
(T <RFALSE>)>)
(<EQUAL? ,PRSO ,SPACESUIT ,JUNK-SPACESUIT>
(<EQUAL? ,PRSO ,SPACESUIT ,JUNK-SPACESUIT ,MOUSE>
<RFALSE>)
(T
<TELL "I suppose you have a theory on boarding a "
@ -865,11 +884,6 @@ D ,PRSO " and both tumble to the ground." CR>
<SCORE-OBJ .RM>
<RTRUE>>
<ROUTINE V-BACK
()
<TELL
"Sorry, my memory isn't that good. You'll have to give a direction." CR>>
<ROUTINE V-DRINK ()
<V-EAT>>
@ -882,7 +896,7 @@ D ,PRSO " and both tumble to the ground." CR>
<ROUTINE V-CURSES ()
<COND (,PRSO
<COND (<FSET? ,PRSO ,VILLAIN>
<TELL "Insults of this nature won't help you." CR>)
<TELL "Insults won't help you." CR>)
(T
<TELL "What a loony!" CR>)>)
(T
@ -895,7 +909,7 @@ D ,PRSO " and both tumble to the ground." CR>
<ROUTINE V-FOLLOW ()
<TELL "You're nuts!" CR>>
<ROUTINE V-LEAP ("AUX" T S)
<ROUTINE V-LEAP ("AUX" TX S)
#DECL ((T) <OR FALSE TABLE>)
<COND (,PRSO
<COND (<IN? ,PRSO ,HERE>
@ -906,13 +920,13 @@ D ,PRSO " and both tumble to the ground." CR>
" is too big to jump over." CR>)
(T <V-SKIP>)>)
(T <TELL "That would be a good trick." CR>)>)
(<SET T <GETPT ,HERE ,P?DOWN>>
<SET S <PTSIZE .T>>
(<SET TX <GETPT ,HERE ,P?DOWN>>
<SET S <PTSIZE .TX>>
<COND (<OR <==? .S 2> ;NEXIT
<AND <==? .S 4> ;CEXIT
<NOT <VALUE <GETB .T 1>>>>>
<NOT <VALUE <GETB .TX 1>>>>>
<TELL
"This was not a very safe place to try jumping." CR>
"This was not a safe place to try jumping." CR>
<JIGS-UP "You should have looked before you leaped.">)
(T <V-SKIP>)>)
(ELSE <V-SKIP>)>>
@ -926,12 +940,12 @@ D ,PRSO " and both tumble to the ground." CR>
<ROUTINE V-HELLO ()
<COND (,PRSO
<TELL
"I think that only schizophrenics say \"Hello\" to a " D ,PRSO "." CR>)
"Only schizophrenics say \"Hello\" to a " D ,PRSO "." CR>)
(ELSE <TELL <PICK-ONE ,HELLOS> CR>)>>
<GLOBAL HELLOS
<LTABLE "Hello."
"Nice weather we've been having lately."
"Nice weather we're having."
"Goodbye.">>
<GLOBAL WHEEEEE
@ -987,7 +1001,7 @@ D ,PRSO " and both tumble to the ground." CR>
()
<COND (<NOT <FSET? ,PRSO ,TURNBIT>> <TELL "You can't turn that!" CR>)
(<NOT <FSET? ,PRSI ,TOOLBIT>>
<TELL "You certainly can't turn it with a " D ,PRSI "." CR>)>>
<TELL "You can't turn it with a " D ,PRSI "." CR>)>>
<ROUTINE V-TURN () <TELL "That doesn't work." CR>>
@ -1001,7 +1015,6 @@ D ,PRSO " and both tumble to the ground." CR>
<IKILL "kill">>
<ROUTINE IKILL (STR)
#DECL ((STR) STRING)
<COND (<NOT ,PRSO> <TELL "There is nothing here to " .STR "." CR>)
(<AND <NOT <FSET? ,PRSO ,VILLAIN>>
<NOT <FSET? ,PRSO ,VICBIT>>>
@ -1056,7 +1069,6 @@ D ,PRSO " and both tumble to the ground." CR>
<ROUTINE HACK-HACK
(STR)
#DECL ((STR) STRING)
<TELL .STR D ,PRSO <PICK-ONE ,HO-HUM> CR>>
<GLOBAL HO-HUM
@ -1112,10 +1124,9 @@ D ,PRSO " and both tumble to the ground." CR>
<SETG PRSO ,SPACESUIT>)>
<TELL "It smells just like a " D ,PRSO "." CR>>
<ROUTINE GLOBAL-IN? (OBJ1 OBJ2 "AUX" T)
#DECL ((OBJ1 OBJ2) OBJECT (T) <OR FALSE TABLE>)
<COND (<SET T <GETPT .OBJ2 ,P?GLOBAL>>
<ZMEMQB .OBJ1 .T <- <PTSIZE .T> 1>>)>>
<ROUTINE GLOBAL-IN? (OBJ1 OBJ2 "AUX" TX)
<COND (<SET TX <GETPT .OBJ2 ,P?GLOBAL>>
<ZMEMQB .OBJ1 .TX <- <PTSIZE .TX> 1>>)>>
<ROUTINE HERE?? (OBJ)
<OR <IN? .OBJ ,HERE> <GLOBAL-IN? .OBJ ,HERE>>>
@ -1123,8 +1134,8 @@ D ,PRSO " and both tumble to the ground." CR>
<ROUTINE V-SWIM ()
<COND (<FSET? ,HERE ,RAIRBIT>
<TELL
"Waving your arms and legs about doesn't help much. You move a little, but
some stronger impulse would be much more useful." CR>)
"Waving your limbs doesn't help much. You move a little, but some stronger
impulse is needed." CR>)
(ELSE
<TELL "You can't swim here!" CR>)>>
@ -1224,7 +1235,7 @@ some stronger impulse would be much more useful." CR>)
<RTRUE>>
<ROUTINE V-REPLY ()
<TELL "It is hardly likely that the " D ,PRSO " is interested." CR>
<TELL "It is doubtful that the " D ,PRSO " is interested." CR>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<RTRUE>>
@ -1306,6 +1317,8 @@ some stronger impulse would be much more useful." CR>)
<SETG UNDER-GLOBE <>>)>
<COND (<EQUAL? .X ,RED-DISK ,BLUE-DISK>
<DISK-SWITCH .X <>>)>
<COND (<AND <EQUAL? .X ,SPACESUIT ,SAFETY-LINE> ,THAT-END>
<RTRUE>)>
<COND (.WHERE <MOVE .X .WHERE>)
(ELSE <REMOVE .X>)>
<RTRUE>)>>
@ -1341,12 +1354,15 @@ some stronger impulse would be much more useful." CR>)
<ROUTINE V-REPORT ()
<TELL
"Report? Why don't you wait until you've accomplished something..." CR>>
"Report?!? Wait until you've accomplished something..." CR>>
<ROUTINE V-LOOK-SAFELY ()
<COND (<FSET? ,PRSI ,TRANSBIT>
<TELL "The " D ,PRSO " looks as before, only tinged by the
color of the " D ,PRSI "." CR>)
<TELL "The " D ,PRSO " looks as before">
<COND (<NOT <==? ,PRSI ,CLEAR-KEY>>
<TELL ", only tinged by the
color of the " D ,PRSI>)>
<TELL "." CR>)
(ELSE <TELL "The " D ,PRSI " isn't transparent." CR>)>>
<ROUTINE V-REACH ()
@ -1378,3 +1394,6 @@ color of the " D ,PRSI "." CR>)
<ROUTINE V-SMILE ()
<TELL "How pleasant!" CR>>
<ROUTINE V-EMPTY ()
<TELL "There's nothing to empty." CR>>