Play Live Overview Routines Objects Global Vars Properties
"GLOBALS for
SUSPENSION
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
"
<DIRECTIONS NORTH EAST WEST SOUTH UP DOWN IN OUT SE SW NE NW>
"SUBTITLE GLOBAL OBJECTS"

The location of the WINNER.

<GLOBAL WINNER-HERE <>>
<GLOBAL LOAD-ALLOWED 100>

The weight limit that the current robot is allowed to carry. This changes every time a robot executes a command.

<GLOBAL LOAD-MAX 0>
<OBJECT GLOBAL-OBJECTS

This is a container for scenery objects like MONITOR, which is visible from many locations in the game.

<OBJECT LOCAL-GLOBALS
(SYNONYM MGCKJK)
(DESCFCN 0)
(GLOBAL GLOBAL-OBJECTS)
(PSEUDO 0)
(CONTFCN 0)
(SIZE 0)>

This refers to the word MGCKJK in LOCAL-GLOBALS, above.

Why is this synonym necessary? Not clear! Most Infocom games have it (or a variation), but some say “No, this synonym doesn’t need to exist” instead.

If you type EXAMINE MGCKJK, the parser finds LOCAL-GLOBALS. But that object is nameless, so you get an empty or garbage reply. Go on, try AUDA, EXAMINE MGCKJK.

;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
<OBJECT ROOMS>
<OBJECT INTNUM
(SYNONYM INTNUM)
(DESC "number")>
<OBJECT LISTENING
(SYNONYM LISTEN)
(DESC "listening")>
<OBJECT DRAGGING
(SYNONYM DRAGGI)
(DESC "dragging")>
<OBJECT LEFT
(SYNONYM LEFT BACK BACKWA)
(DESC "left")>
<OBJECT RIGHT
(SYNONYM RIGHT FORWARD)
(DESC "right")>
<OBJECT LOCATION
(SYNONYM LOCATION LOC)
(DESC "location")>
<OBJECT PSEUDO-OBJECT
(DESC "pseudo")
(ACTION CRETIN)>
<OBJECT IT ;"was IT"
(SYNONYM IT THAT HER HIM)
(DESC "random object")
(FLAGS NDESCBIT TOUCHBIT)>
<OBJECT COMPLEX
(SYNONYM COMPLEX)
(ADJECTIVE UNDERG)
(DESC "underground complex")
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "underground complex" "underground complex" "underground complex" "underground complex" "underground complex" "underground complex" 0 0 0 0 0 0>)
(CLC-TXT <PLTABLE 0 0 "The Complex was started on this terraformed planet to provide the surface-side dwellers with a simpler, easier life. The Complex was built 122 years after the planet was settled, and was designed to operate on its own, with human intervention required only by emergency situations.">)>
<OBJECT PLANET
(DESC "planetary surface")
(SYNONYM CONTRA)
(ADJECTIVE SURFACE)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "planetary surface" "planetary surface" "planetary surface" "planetary surface" "planetary surface" "planetary surface" 0 0 0 0 0 0>)
(CLC-TXT <PLTABLE "Access to the surface is through the Sterilization Chamber." "The three Filtering Computers must be brought into balance for there to be a surface much longer." "The surface systems were originally controlled by the people living on the surface, but this situation changed once long-term terraforming had been accomplished.">)>
<OBJECT ZORK
(DESC "Zork")
(SYNONYM ZORK)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "Zork""Zork""Zork""Zork""Zork""Zork"
0 0 0 0 0 0>)>
<OBJECT FRANKLIN
(DESC "Franklin")
(SYNONYM GREGOR FRANKL)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "Gregory""Gregory""Gregory""Gregory""Gregory""Gregory" 0 0 0 0 0 0>)
(CLC-TXT <PLTABLE 0 0 "Refer to your manual for futher data.">)>
<OBJECT FCS
(DESC "Filtering Computers")
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "FCs""FCs""FCs""FCs""FCs""FCs" 0 0 0 0 0 0>)
(SYNONYM FC FCS COMPUTER)
(ADJECTIVE FILTERING)
(CLC-TXT <PLTABLE "The three Filtering Computers are kept in balance by two series of four cables. Four cables run through the Primary Channel, while another four run through the Secondary Channel." "All defective cables should be replaced, then the reset code should be entered at the machine in the Main Supply Room." "The Filtering Computers have long provided Contra with surface-side maintenance, providing the surface-dwellers with an easy lifestyle.">)>
<OBJECT CLONES
(DESC "clones")
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "clones""clones""clones""clones""clones""clones" 0 0 0 0 0 0>)
(SYNONYM CLONES)
(CLC-TXT <PLTABLE 0 0 "These clones are clones of you and are your replacements.">)>
<OBJECT GROUND ;"was GROUND"
(SYNONYM FLOOR)
(DESC "floor")
(OBJDESCS <PLTABLE 1 1 1 1 1 1
"floor""floor""floor""floor""floor""floor"
0 0 0 0 0 0>)>
<OBJECT WALLS
(DESC "wall")
(SYNONYM WALL WALLS)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "wall""wall""wall""wall""wall""wall" 0 0 0 0 0 0>)>
<OBJECT CEILING
(DESC "ceiling")
(SYNONYM CEILIN)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "ceiling""ceiling""ceiling""ceiling""ceiling""ceiling" 0 0 0 0 0 0>)>
<OBJECT HANDS ;"was HANDS"
(SYNONYM EXTENS)
(ADJECTIVE GRASPING)
(DESC "extensions")
(OBJDESCS <PLTABLE
1 1 1 1 1 1 "grasping extension""grasping extension""grasping extension"
"grasping extension""grasping extension""grasping extension" 0 0 0 0 0 0>)>

Notionally you, the corpsicle (I mean Central Mentality), are inside the column. But nothing can directly interact with you; opening the column ends the game immediately. You can only QUERY ABOUT ME. So ME exists as a global object.

<OBJECT ME
(SYNONYM ME MYSELF SELF WE)
(DESC "cylinder occupant")
(FLAGS VILLAIN TOUCHBIT)
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "cylinder occupant" "cylinder occupant" "cylinder occupant" "cylinder occupant" "cylinder occupant" "cylinder occupant" 0 0 0 0 0 0>)
(ACTION CRETIN)>

This is the action routine for ME. The name is a remnant of the original Zork games, in which the printed name of the ADVENTURER was “cretin.”

<ROUTINE CRETIN ()
<COND (<VERB? GIVE>
<TELL "FC: I think you're a little confused." CR>
<RTRUE>)
(<VERB? KILL MUNG>
<COND (<IN? ,WINNER ,CPU-ROOM>
<ROBOT-TELL "I'll open the " <>>
<TELL D ,HOME " and see what I can do." CR>
<PERFORM ,V?OPEN ,HOME>)
(T
<ROBOT-TELL "I'll consider it only after I'm in the
Central Chamber.">
<RTRUE>)>)
(<VERB? TAKE>
<ROBOT-TELL "Hey, let's do the job we're supposed to, okay?">)
(<VERB? DISEMBARK>
<ROBOT-TELL "You'll have to do that on your own.">)
(<VERB? EXAMINE>
<ROBOT-TELL "That's difficult unless the " <>>
<TELL D ,HOME " has been opened." CR>)
(<VERB? FIND>
<COND (<NOT <IN? ,WINNER ,CPU-ROOM>>
<PERFORM ,V?WALK-TO ,CPU-ROOM>)
"You're right here, inside the " <>>
<TELL D ,HOME "." CR>)>
<RTRUE>)>>
;"LOCAL-GLOBALS start here for easier hunting of all ridiculousness which must
be included in the game for sadistic game-testers."
<OBJECT SIGNPOST
(DESC "sign")
(OBJDESCS <PLTABLE 1 1 1 0 1 1 "little sign" "recessed sign" "sign" "buzzing sign" "signpost" "ACS" 0 0 0 0 0 0>)
(CLC-TXT <PLTABLE "This sign shows the access code needed for resetting the Filtering Computers." "You should be able to get Iris to see it somehow." 0>)
(SYNONYM SIGN SIGNPOST ACS)
(ADJECTIVE BUZZIN LITTLE RECESS)>
<OBJECT CONTROL-PANELS
(DESC "panel")
(OBJDESCS <PLTABLE 1 1 1 1 1 "panel""panel""panel""panel""panel""panel" 0 0 0 0 0 0>)
(SYNONYM PANEL CONSOL)
(ADJECTIVE SMALL)>
<OBJECT AIRCON
(DESC "air conditioning")
(SYNONYM CONDIT AIRCON)
(ADJECTIVE AIR)
(OBJDESCS <PLTABLE 0 0 0 1 0 0
"air conditioning""air conditioning""air conditioning"
"air conditioning""air conditioning""air conditioning"
0 0 0 0 0 0>)>
<OBJECT DEBRIS
(SYNONYM DEBRIS JUNK RUBBLE)
(DESC "debris")
(OBJDESCS <PLTABLE 1 1 0 0 1 0 "debris""debris""debris""debris""debris"
"debris" 0 0 0 0 0 0>)>
<OBJECT CABLES
(SYNONYM TUBES CABLES)
(ADJECTIVE CONNECTING)
(DESC "cables")
(OBJDESCS <PLTABLE
1 1 1 1 1 1
"cables""cables""cables""cables""cables""cables"
"The first, second, third and fourth cables are of all different colors."
"The first, second, third and fourth cables are of all different lengths.""The first, second, third and fourth cables are of all different lengths.""The first, second, third and fourth cables are of all different lengths.""The first, second, third and fourth cables are of all different lengths.""The first, second, third and fourth cables are of all different lengths."
>)
(CLC-TXT <PLTABLE "These cables were designed for easy replacement. Each is equipped with a simple snap connector so replacement is virtually automatic. All cables of the same color conduct the same voltage charges and are totally interchangeable." "Be careful of removing or replacing active cables." "When this complex was built, a color-coding scheme was agreed upon for the sake of standardization.">)>
<OBJECT WIRING
(SYNONYM WIRING CIRCUI)
(DESC "wiring")
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "wiring""wiring""wiring""wiring""wiring""wiring" 0 0 0 0 0 0>)>
<OBJECT TVHOLE
(SYNONYM PLUG HOLE PL-1)
(ADJECTIVE SMALL)
(DESC "hole")
(OBJDESCS <PLTABLE
1 1 1 1 1 1 "plug with a cable in it""plug""plug""plug""plug""plug"
0
"Its diameter may fit a small cable."
"It is a female receptacle."
0
"Its depth just cannot compare to mine."
"This PL-1 forms a link for the TV-1.">)
(FLAGS NDESCBIT TOUCHBIT)>
<OBJECT STEP
(DESC "step")
(SYNONYM STEP STAIR DROPOF)
(ADJECTIVE SMALL)
(ACTION STEP-FCN)
(OBJDESCS <PLTABLE
1 1 1 0 1 1 "step" "step" "step" "step" "step" "step" 0 0 0 0 0 0 >)>
<ROUTINE STEP-FCN ()
<COND (<AND <VERB? PUT-AGAINST>
<EQUAL? ,PRSO ,WEDGE>
<OR <IN? ,WEDGE ,WINNER>
<IN? ,WEDGE ,WINNER-HERE>>>
<COND (<NOT <EQUAL? ,WEDGE-PLACED 0>>
<ROBOT-TELL "It's already in position.">
<RTRUE>)>
<COND (<EQUAL? ,WINNER-HERE ,REPAIR1>
<SETG WEDGE-PLACED 1>)
<SETG WEDGE-PLACED 2>)
(ELSE
<SETG WEDGE-PLACED 0>)>
<MOVE ,WEDGE ,WINNER-HERE>
<TELL "The " D ,WEDGE " has been positioned at the "
D ,PRSI "." CR>
<RTRUE>)>>
<OBJECT STAIRS
(SYNONYM STAIRS STEPS LADDER STAIRWAY)
(DESC "stairs")
(OBJDESCS <PLTABLE
1 1 1 1 1 1 "stairs""stairs""stairs""stairs""stairs""stairs" 0 0 0 0 0 0>)>
<OBJECT MONITOR
(SYNONYM MONITO METERS UNITS)
(ADJECTIVE SMALL)
(DESC "monitor")
(OBJDESCS <PLTABLE 1 1 1 1 1 1 "monitor""monitor""small unit""monitor""monitor""monitor"0 0 "The unit is active." 0 0 0 "The monitor has been diagnosed as working properly.">)>
;"GLOBAL ATOMS START HERE"

The number of arms on the current robot, and thus the maximum number of items it can carry. This changes every time a robot executes a command.

<GLOBAL NUM-EXT 0>
<GLOBAL CAR-FULL 0>
<GLOBAL WEDGE-PLACED 0>
<GLOBAL PLUGGED-IN <>>
<GLOBAL IRIS-FIXED <>>

The surface temperature. Under 40, people die.

(Apparently Contra uses Fahrenheit, and people are immune to heatstroke.)

<GLOBAL DEGREES 60>

The wind speed on the surface. If this goes over 20, people die. Over 50 is worse.

<GLOBAL WINDS 10>
<GLOBAL PRESSURE1 55>
<GLOBAL PRESSURE2 50>
<GLOBAL PRESSURE3 55>

The array of robots in ROFF order. (With PEOPLE as the seventh entry.) This actually lists object values; the names are in ROBOT-NAMES.

<GLOBAL NAME-TBL
<TABLE IRIS

Whether the current location has light. (They all do.) Set by calling the LIT? routine.

<GLOBAL LIT T>
<GLOBAL MOVES 0>

The number of kilodeaths this turn, as calculated in I-SCORE.

In Deadline the interpreter was customized to display the SCORE and HERE variables as a clock time. No such attempt has been made here; you have to read the manual to learn that the “Score” going up is bad.

(A later update to the Z-machine allowed the game to print any text it liked in the status line. A development version of the Suspended source took advantage of this, but it was never released.)

<GLOBAL SCORE 3>
<GLOBAL WON-FLAG <>>
<GLOBAL INDENTS
<TABLE ""
" "
" "
" "
" "
" ">>
<GLOBAL ON-WEDGE <>>
<GLOBAL DIALSETS
<LTABLE 55 55 55 70 30 50>> ;"First 3 dials, 2nd 3 are Hydro Levers"

The amount that the second weather control dial (WDIAL2) is off-kilter. See I-WEATHER.

<GLOBAL DECAY 6>
<GLOBAL TV-ON <>>
<GLOBAL REDSET <>>
<GLOBAL ORANGESET <>>
<GLOBAL AUDA-LISTENS <>>
<GLOBAL CAR-GONE 0>
<GLOBAL ACID-FIXED T>
<GLOBAL RTHIEF 0>
<GLOBAL TAKE-BACK 0>

The counter for the PEOPLE’s nap. See I-STEAL.

<GLOBAL SLEEPERS 0>
<GLOBAL BELT-ON <>>

The accumulated value of SCORE each turn. Which is to say, the total surface death count, in thousands.

<GLOBAL TOTAL-SCORE 3>

A counter for how long the PEOPLE have played Starcross in the REC-AREA. See I-STARCROSS.

<GLOBAL PLAY-STARCROSS 0>
<GLOBAL WATER-LEVEL 70>
<GLOBAL MINERALS 30>
<GLOBAL WATTS 50>

How much food is produced by hydroponics this turn. The optimal value is 100. If it falls below 50, some people die of starvation this turn. If it reaches zero, everybody dies, o the embarrassment.

<GLOBAL FOOD-TONS 100>
<GLOBAL FLOATERS 1>
<GLOBAL TAXIS 3>
<GLOBAL RAMP-SPEED 30>
<GLOBAL CRASH-RATE 0>
<GLOBAL COLLISIONS 0>
<GLOBAL RAMP-KILLS 0>
<CONSTANT WATER-OPT 70>
<CONSTANT MINERALS-OPT 30>
<CONSTANT WATTS-OPT 50>
<CONSTANT FOOD-OPT 100>
<GLOBAL CODE1 CIRCLE1>
<GLOBAL CODE2 CIRCLE1>
<GLOBAL CODE-TBL
<GLOBAL CODE-SET1 <>>
<GLOBAL CODE-SET2 <>>
<GLOBAL IRIS-HINTS 0>
<GLOBAL DYING1 3>
<GLOBAL DYING2 5>
<GLOBAL DYING3 7>
<GLOBAL ADVANCED-FLAG <>>
<GLOBAL WAITING-QUIP <>>