Object Room_Holder "" has ; Object -> CPU_Room "Central Chamber" with room_group_bit R_CENTRAL, room_direction_adjust_ndx 1, station CPU_Room, descriptions_for_robots CPU_Room_descs, adjectives 'central', action CPU_Room_action, contains wiring, name 'chamber' 'globe', ne_to Corridor_1, s_to RTD_Banks, w_to Weather_Banks, e_to Servo_Systems, has on rlandbit; Object -> -> Sensa1 "Sensa" with person_ndx ID_SENSA, data_store Sensa1_data_store, item_descs Sensa1_seen_by_others, adjectives 'sensor' 'robot', action Sensa1_action, contains extensions, name 'robots' 'sensa' 'robot', capacity 0, has worn open container animate; Object -> -> HOME "HOME" with data_store HOME_data_store, item_descs HOME_seen_by_others, adjectives 'tall' 'hollow' 'electric' 'high' 'sweet', action HOME_action, name 'column' 'home' 'cpu' 'door', has worn on container; Object -> -> Poet1 "Poet" with person_ndx ID_POET, data_store Poet1_data_store, item_descs Poet1_seen_by_others, adjectives 'metaphysical' 'robot' 'rhyming', action Poet1_action, contains extensions, name 'robots' 'poet' 'robot', capacity 100, has worn open container animate; Object -> Hell "Hell" with name 'hell', has on rlandbit; Object -> UD_Tube "UD Tube" with name 'dead', e_to Sterile_Area, has on rlandbit; Object -> -> People1 "People" with person_ndx ID_PEOPLE, data_store People1a_data_store, data_store People1b_data_store, item_descs People1_seen_by_others, adjectives 'mobile' 'large' 'talking' 'creator' 'cores', action People1_action, name 'humans' 'object' 'creature' 'mechanical', capacity 100, has worn scope_inside open container animate animate; Object -> Cryounits "Cryogenic Area" with room_direction_adjust_ndx 5, station Cryounits, descriptions_for_robots Cryounits_descs, contains air_conditioning, name 'cryogenic', s_to Bio_Int, has on rlandbit; Object -> -> switch "switch" with item_descs switch_seen_by_others, adjectives 'electric' 'large' 'straight', action WHEEL_action, name 'rod' 'switch', has worn turnable; Object -> -> large_objects "large objects" with item_descs large_objects_seen_by_others, adjectives 'large', name 'object' 'canister', has worn on; Object -> Bio_Lab "Biological Laboratory" with room_direction_adjust_ndx 5, station Bio_Int, descriptions_for_robots Bio_Lab_descs, adjectives 'biology', contains wiring, name 'laboratory' 'lab', e_to Bio_Int, has on rlandbit; Object -> -> camera "camera" with data_store camera_data_store, item_descs camera_seen_by_others, adjectives 'project' 'tv1' 'small' 'camera' 'jack' 'tv' 'television', action Camera_action, name 'transmitter' 'sender' 'device' 'sphere', has takeable container; Object -> -> work_table "work table" with item_descs work_table_seen_by_others, adjectives 'work' 'large', name 'table' 'struct' 'equiptment', capacity 50, has worn open supporter on container; Object -> Bio_Int "Biology Corridor" with room_direction_adjust_ndx 5, station Bio_Int, descriptions_for_robots Bio_Int_descs, adjectives 'biology', name 'corridor', s_to Car_Area, w_to Bio_Lab, n_to Cryounits, has on rlandbit; Object -> Car_Area "Vehicle Debarkation Area" with room_group_bit R_VEHICLE_AREA, room_direction_adjust_ndx 5, station Car_Area, descriptions_for_robots Car_Area_descs, adjectives 'vehicle', name 'debark', w_to "CLC WARNING: Dangerous force fields prevent western movement.", n_to Bio_Int, has on rlandbit; Object -> FC1 "Alpha FC" with room_direction_adjust_ndx 2, station FC1, descriptions_for_robots FC1_descs, adjectives 'alpha', contains air_conditioning, name 'fc', s_to Tube2, has on rlandbit; Object -> Tube2 "Primary Channel" with room_direction_adjust_ndx 2, station Tube2, descriptions_for_robots Tube2_descs, adjectives 'primary', contains cables hole sign, name 'channel', s_to FC2, n_to FC1, has on rlandbit; Object -> -> groove2 "groove" with data_store groove2_data_store, item_descs groove2_seen_by_others, action General_groove_action, container_action ElectrocuteRobot, name 'groove' 'track', capacity 21, has worn open supporter container; Object -> -> -> red_cable "red cable" with item_descs red_cable_seen_by_others, adjectives 'four-', action Red_cable_action, name 'cable', has on takeable; Object -> -> -> pink_cable "pink cable" with item_descs pink_cable_seen_by_others, adjectives 'six-i', action General_cable_action, name 'cable', has on takeable; Object -> -> -> green_cable "green cable" with item_descs green_cable_seen_by_others, adjectives 'ten-i', action General_cable_action, name 'cable', has on takeable; Object -> -> -> yellow_cable "yellow cable" with item_descs yellow_cable_seen_by_others, adjectives 'eighteeen', action General_cable_action, name 'cable', has on takeable; Object -> FC2 "Beta FC" with room_direction_adjust_ndx 2, station FC2, descriptions_for_robots FC2_descs, adjectives 'beta', contains wiring air_conditioning, name 'fc', s_to Tube1, w_to Midmist, n_to Tube2, has on rlandbit; Object -> Tube1 "Secondary Channel" with room_direction_adjust_ndx 2, station Tube1, descriptions_for_robots Tube1_descs, adjectives 'second', contains cables hole sign, name 'channel', s_to FC3, n_to FC2, has on rlandbit; Object -> -> groove1 "groove" with data_store groove1_data_store, item_descs groove1_seen_by_others, action General_groove_action, container_action ElectrocuteRobot, name 'groove' 'track', capacity 21, has worn scope_inside open supporter container; Object -> -> -> white_cable "white cable" with item_descs white_cable_seen_by_others, adjectives 'five-', action General_cable_action, name 'cable', has on takeable; Object -> -> -> orange_cable "orange cable" with item_descs orange_cable_seen_by_others, adjectives 'nine-', action Orange_cable_action, name 'cable', has on takeable; Object -> -> -> black_cable "black cable" with item_descs black_cable_seen_by_others, adjectives 'nineteeen', action General_cable_action, name 'cable', has on takeable; Object -> -> -> blue_cable "blue cable" with item_descs blue_cable_seen_by_others, adjectives 'twenty', action General_cable_action, name 'cable', has on takeable; Object -> FC3 "Gamma FC" with room_direction_adjust_ndx 2, station FC3, descriptions_for_robots FC3_descs, adjectives 'gamma', contains air_conditioning, name 'fc', nw_to Midmist, n_to Tube1, has on rlandbit; Object -> Midmist "East End" with room_group_bit R_EASTEND, room_direction_adjust_ndx 2, station Midmist, descriptions_for_robots Midmist_descs, adjectives 'e//', name 'end', ne_to FC1, se_to FC3, w_to Acidmist, e_to FC2, has on rlandbit; Object -> Acidmist "Cavernous Room" with room_group_bit R_EASTEND, room_direction_adjust_ndx 2, station Acidmist, descriptions_for_robots Acidmist_descs, action Acidmist_action, name 'cavern', w_to Corridor_4, e_to Midmist, has on rlandbit; Object -> RTD "Transit Control Area" with room_direction_adjust_ndx 0, station Sky3, descriptions_for_robots RTD_descs, adjectives 'transit', contains control_panels, name 'controls', s_to Sky3, has on rlandbit; Object -> -> first_switch "first switch" with data_store first_switch_data_store, item_descs first_switch_seen_by_others, adjectives 'first' 'raised', action General_switch_action, name 'switch' 'bump' 'device' 'bumps', has on worn on; Object -> -> second_switch "second switch" with data_store second_switch_data_store, item_descs second_switch_seen_by_others, adjectives 'second' 'raised', action General_switch_action, name 'switch' 'bump' 'bumps' 'device', has on worn on; Object -> -> third_switch "third switch" with data_store third_switch_data_store, item_descs third_switch_seen_by_others, adjectives 'third' 'raised', action General_switch_action, name 'switch' 'bump' 'bumps' 'device', has on worn on; Object -> Hydro "Hydroponics Control Area" with room_direction_adjust_ndx 0, station Sky2, descriptions_for_robots Hydro_descs, adjectives 'hydroponics', action Control_Areas_action, contains control_panels, name 'controls', s_to Sky2, has on rlandbit; Object -> -> first_lever "first lever" with number 4, data_store first_lever_data_store, item_descs first_lever_seen_by_others, adjectives 'first' 'water', action General_lever_action, name 'lever', has worn on turnable; Object -> -> levers "levers" with data_store levers_data_store, item_descs levers_seen_by_others, name 'levers', has worn on; Object -> -> second_lever "second lever" with number 5, data_store second_lever_data_store, item_descs second_lever_seen_by_others, adjectives 'second' 'mineral', action General_lever_action, name 'lever', has worn on turnable; Object -> -> third_lever "third lever" with number 6, data_store third_lever_data_store, item_descs third_lever_seen_by_others, adjectives 'third' 'lighting', action General_lever_action, name 'lever', has worn on turnable; Object -> Weather "Weather Control Area" with room_direction_adjust_ndx 0, station Sky1, descriptions_for_robots Weather_descs, adjectives 'weathed', action Control_Areas_action, contains control_panels, name 'controls', s_to Sky1, has on rlandbit; Object -> -> first_dial "first dial" with number 1, data_store first_dial_data_store, item_descs first_dial_seen_by_others, adjectives 'first', name 'dial', has worn on turnable; Object -> -> dials "dials" with item_descs dials_seen_by_others, name 'dials', has worn on; Object -> -> second_dial "second dial" with number 2, data_store second_dial_data_store, item_descs second_dial_seen_by_others, adjectives 'second', name 'dial', has worn on turnable; Object -> -> third_dial "third dial" with number 3, data_store third_dial_data_store, item_descs third_dial_seen_by_others, adjectives 'third', name 'dial', has worn on turnable; Object -> Sky3 "Skywalk Gamma" with room_group_bit R_SKYWALK, room_direction_adjust_ndx 0, station Sky3, descriptions_for_robots Sky3_descs, adjectives 'skywall', action General_Sky3_action, name 'gamma', e_to Sky2, n_to RTD, has on rlandbit; Object -> Sky2 "Skywalk Beta" with room_group_bit R_SKYWALK, room_direction_adjust_ndx 0, station Sky2, descriptions_for_robots Sky2_descs, adjectives 'skywall', action General_Sky3_action, name 'beta', w_to Sky3, e_to Sky1, n_to Hydro, has on rlandbit; Object -> Sky1 "Skywalk Alpha" with room_group_bit R_SKYWALK, room_direction_adjust_ndx 0, station Sky1, descriptions_for_robots Sky1_descs, adjectives 'skywall', action General_Sky3_action, name 'alpha', s_to NE_Passage2, w_to Sky2, n_to Weather, has on rlandbit; Object -> NE_Passage2 "Top Passage" with room_group_bit R_RISINGHALL, room_direction_adjust_ndx 0, station NE_Passage2, descriptions_for_robots NE_Passage2_descs, adjectives 'top', name 'passage', sw_to NE_Passage1, n_to Sky1, has on rlandbit; Object -> NE_Passage1 "Rising Passage" with room_group_bit R_RISINGHALL, room_direction_adjust_ndx 0, station NE_Passage1, descriptions_for_robots NE_Passage1_descs, adjectives 'rising', name 'passage', ne_to NE_Passage2, sw_to Corridor_4, has on rlandbit; Object -> Corridor_4 "Short Corridor" with room_group_bit (R_RISINGHALL|R_EASTEND), room_direction_adjust_ndx 2, station Corridor_4, descriptions_for_robots Corridor_4_descs, adjectives 'short', action Corridor_4_action, contains wiring, name 'corridor', ne_to NE_Passage1, w_to Corridor_3, e_to Acidmist, has on rlandbit; Object -> Hall_End "Hallway End" with room_group_bit (R_VEHICLE_AREA|R_UPSTAIRS_E_HALL), room_direction_adjust_ndx 5, station Hall_End, descriptions_for_robots Hall_End_descs, adjectives 'hallway', name 'end', e_to "CLC WARNING: Dangerous force fields prevent eastern movement.", n_to Lower_Core, has on rlandbit; Object -> -> vehicle "vehicle" with data_store vehicle_data_store, item_descs vehicle_seen_by_others, adjectives 'hollow' 'large' 'mobile' 'egg-s', action Vehicle_action, name 'contain' 'object' 'carria' 'car', has vehicle; Object -> Inner_Core "Library Core" with room_direction_adjust_ndx 5, station Lower_Core, descriptions_for_robots Inner_Core_descs, adjectives 'library', name 'core', e_to Lower_Core, has on rlandbit; Object -> Lower_Core "Library Entrance" with room_group_bit R_UPSTAIRS_E_HALL, room_direction_adjust_ndx 5, station Lower_Core, descriptions_for_robots Lower_Core_descs, adjectives 'library', name 'entrance', s_to Hall_End, w_to Inner_Core, n_to Hall_T, has on rlandbit; Object -> FCMaint "Maintenance Access" with room_direction_adjust_ndx 5, station Hall_T, descriptions_for_robots FCMaint_descs, adjectives 'maintenance', action FCMaint_action, name 'access', w_to Hall_T, has on rlandbit; Object -> -> WHEEL "WHEEL" with data_store WHEEL_data_store, item_descs WHEEL_seen_by_others, adjectives 'circular' 'hissing' 'mechanical', action WHEEL_action, name 'wheel' 'wh' 'object' 'device', has turnable; Object -> Hall_T "Hallway Branch" with room_group_bit R_UPSTAIRS_E_HALL, room_direction_adjust_ndx 5, station Hall_T, descriptions_for_robots Hall_T_descs, adjectives 'hallway', name 'branch', s_to Lower_Core, e_to FCMaint, n_to Hall_Stop5, has on rlandbit; Object -> Hall_Stop5 "Hallway Corner" with room_group_bit (R_UPSTAIRS_E_HALL|R_UPSTAIRS_N_HALL), room_direction_adjust_ndx 5, station Hall_Stop5, descriptions_for_robots Hall_Stop5_descs, adjectives 'hallway', name 'corner', s_to Hall_T, w_to Hall_Stop4, n_to Sleep_Chamber, has on rlandbit; Object -> Sleep_Chamber "Sleep Chamber" with room_group_bit (R_UPSTAIRS_E_HALL|R_UPSTAIRS_HUMAN_AREA), room_direction_adjust_ndx 4, station Sleep_Chamber, descriptions_for_robots Sleep_Chamber_descs, adjectives 'sleep', action Sleep_Chamber_action, name 'chamber', s_to Hall_Stop5, w_to Rec_Area, has on rlandbit; Object -> -> flat_beds "flat beds" with data_store flat_beds_data_store, item_descs flat_beds_seen_by_others, adjectives 'flat', name 'bed' 'beds' 'extension' 'hsp', has worn on; Object -> Hall_Stop4 "Hallway" with room_group_bit R_UPSTAIRS_N_HALL, room_direction_adjust_ndx 5, station Hall_Stop4, descriptions_for_robots Hall_Stop4_descs, w_to Hall_Stop3, e_to Hall_Stop5, n_to Rec_Area, has on rlandbit; Object -> Rec_Area "Activities Area" with room_group_bit R_UPSTAIRS_HUMAN_AREA, room_direction_adjust_ndx 4, station Rec_Area, descriptions_for_robots Rec_Area_descs, name 'activities', s_to Hall_Stop4, w_to Tool_Area, e_to Sleep_Chamber, has on rlandbit; Object -> Hall_Stop3 "Access Hallway" with room_group_bit (R_SLOPE_HALL|R_UPSTAIRS_N_HALL), room_direction_adjust_ndx 3, station Hall_Stop3, descriptions_for_robots Hall_Stop3_descs, adjectives 'access', name 'hallway', s_to Human_Entry, w_to Hall_Stop2, e_to Hall_Stop4, has on rlandbit; Object -> Repair3 "Gamma Repair" with room_direction_adjust_ndx 2, station Repair3, descriptions_for_robots Repair3_descs, adjectives 'gamma', action General_Repair_action, contains wiring, name 'repair', n_to Repair2, has on rlandbit; Object -> -> Waldo1 "Waldo" with person_ndx ID_WALDO, data_store Waldo1_data_store, item_descs Waldo1_seen_by_others, adjectives 'builder' 'robot', action Waldo1_action, contains extensions, name 'robots' 'waldo' 'robot', capacity 100, has worn open container animate; Object -> -> BLT3 "BLT" with data_store BLT3_data_store, item_descs BLT3_seen_by_others, adjectives 'moving' 'convey' 'noisy', action General_BLT_action, name 'walkway' 'mechanical' 'glider' 'blt', capacity 200, has worn open supporter on attrib16 container; Object -> -> wire "wire" with item_descs wire_seen_by_others, adjectives 'smooth' 'bunch' 'current' 'group' 'twelve', action Wire_action, name 'wire' 'life' 'conductor' 'cable', has concealed takeable can_be_cut; Object -> -> flowswitch "flowswitch" with data_store flowswitch_data_store, item_descs flowswitch_seen_by_others, adjectives 'flow' 'round', action Flowswitch_action, name 'plates' 'flowswitch' 'switch' 'circle', has worn concealed turnable; Object -> -> cabinet "cabinet" with data_store cabinet_data_store, item_descs cabinet_seen_by_others, adjectives 'large' 'hollow' 'emitting' 'circuit', action Cabinet_action, name 'cage' 'cb3' 'cabinet' 'object', capacity 100, has container; Object -> -> -> dead_robot "" with data_store Dead_robot_data_store, item_descs Dead_robot_seen_by_others, adjectives 'broken' 'untagged', action Unnamed_ob2_action, name 'mechanical' 'construct' 'device' 'fred', size 200, has takeable; Object -> Repair2 "Beta Repair" with room_direction_adjust_ndx 2, station Repair2, descriptions_for_robots Repair2_descs, adjectives 'beta', action General_Repair_action, name 'repair', s_to Repair3, n_to Repair1, has on rlandbit; Object -> -> BLT1 "BLT" with data_store BLT1_data_store, item_descs BLT1_seen_by_others, adjectives 'moving' 'convey' 'noisy', action General_BLT_action, name 'walkway' 'mechanical' 'glider' 'blt', capacity 200, has worn open supporter on attrib16 container; Object -> Repair1 "Alpha Repair" with room_direction_adjust_ndx 2, station Repair1, descriptions_for_robots Repair1_descs, adjectives 'alpha', action General_Repair_action, contains step, name 'repair', s_to Repair2, n_to Robot_Z, has on rlandbit; Object -> -> BLT2 "BLT" with data_store BLT2_data_store, item_descs BLT2_seen_by_others, adjectives 'moving' 'convey' 'noisy', action General_BLT_action, name 'walkway' 'mechanical' 'glider' 'blt', capacity 200, has worn open supporter on attrib16 container; Object -> Robot_Z "Bending Passage" with room_direction_adjust_ndx 2, station Robot_Z, descriptions_for_robots Robot_Z_descs, adjectives 'bending', name 'passage', nw_to Robot_Passage, s_to Repair1, has on rlandbit; Object -> Robot_Passage "Southeast Passage" with room_direction_adjust_ndx 2, station Robot_Passage, descriptions_for_robots Robot_Passage_descs, adjectives 'southeast', name 'passage', nw_to Corridor_3, se_to Robot_Z, has on rlandbit; Object -> Corridor_3 "Southeast Junction" with room_group_bit R_EASTEND, room_direction_adjust_ndx 2, station Corridor_3, descriptions_for_robots Corridor_3_descs, adjectives 'southeast', name 'junctiion', se_to Robot_Passage, w_to Hallway_Junction, e_to Corridor_4, has on rlandbit; Object -> CLC_Core "Central Core" with room_direction_adjust_ndx 1, station CLC_Core, descriptions_for_robots CLC_Core_descs, adjectives 'central', name 'clc' 'core', s_to Periph_3, w_to Periph_4, e_to Periph_2, n_to Periph_1, has on rlandbit; Object -> -> railing "railing" with item_descs railing_seen_by_others, name 'railing', has worn on; Object -> Periph_4 "Historical Peripheral" with room_direction_adjust_ndx 1, station Periph_4, descriptions_for_robots Periph_4_descs, adjectives 'history', name 'peripheral', ne_to Periph_1, se_to Periph_3, e_to CLC_Core, has on rlandbit; Object -> -> Historical_Pedestal_Object "Historical Pedestal" with item_descs Historical_Pedestal_Object_seen_by_others, adjectives 'history' 'fourth', name 'pedestal', has worn on; Object -> Periph_3 "Advisory Peripheral" with room_direction_adjust_ndx 1, station Periph_3, descriptions_for_robots Periph_3_descs, adjectives 'advisory', name 'peripheral', nw_to Periph_4, ne_to Periph_2, n_to CLC_Core, has on rlandbit; Object -> -> Whiz1 "Whiz" with person_ndx ID_WHIZ, data_store Whiz1_data_store, item_descs Whiz1_seen_by_others, adjectives 'robot' 'research', action Whiz1_action, contains extensions, name 'robots' 'whiz' 'robot', capacity 100, has worn open container animate; Object -> -> Advisory_Pedestal "Advisory Pedestal" with item_descs Advisory_Pedestal_seen_by_others, adjectives 'advisory' 'third', name 'pedestal', has worn on; Object -> Periph_2 "Technical Peripheral" with room_direction_adjust_ndx 1, station Periph_2, descriptions_for_robots Periph_2_descs, adjectives 'technical', name 'peripheral', nw_to Periph_1, sw_to Periph_3, w_to CLC_Core, has on rlandbit; Object -> -> Technical_Pedestal_Object "Technical Pedestal" with item_descs Technical_Pedestal_Object_seen_by_others, adjectives 'technical' 'second', name 'pedestal', has worn on; Object -> Periph_1 "Index Peripheral" with room_direction_adjust_ndx 1, station Periph_1, descriptions_for_robots Periph_1_descs, adjectives 'index', name 'peripheral', sw_to Periph_4, se_to Periph_2, s_to CLC_Core, n_to Outside_OLC, has on rlandbit; Object -> -> Index_pedestal_Object "Index pedestal" with item_descs Index_pedestal_Object_seen_by_others, adjectives 'index' 'first', name 'pedestal', has worn on; Object -> Outside_OLC "Outer Library Area" with room_direction_adjust_ndx 1, station Outside_OLC, descriptions_for_robots Outside_OLC_descs, adjectives 'outer', name 'library', s_to Periph_1, n_to Hallway_Junction, has on rlandbit; Object -> Hallway_Junction "Hallway Junction" with room_group_bit (R_EASTEND|R_SLOPE_HALL), room_direction_adjust_ndx 1, station Hallway_Junction, descriptions_for_robots Hallway_Junction_descs, adjectives 'hallway', action Junction_Room_action, contains step, name 'junctiion', s_to Outside_OLC, w_to Corridor_2, e_to Corridor_3, n_to Wedge_FCN, has on rlandbit; Object -> Human_Entry "Sloping Corridor" with room_group_bit R_SLOPE_HALL, room_direction_adjust_ndx 3, station Human_Entry, descriptions_for_robots Human_Entry_descs, adjectives 'sloping', action Junction_Room_action, contains step, name 'corridor', s_to Wedge_FCN, n_to Hall_Stop3, has on rlandbit; Object -> Hall_Stop2 "Hallway" with room_group_bit R_UPSTAIRS_N_HALL, room_direction_adjust_ndx 3, station Hall_Stop2, descriptions_for_robots Hall_Stop2_descs, w_to Hall_Stop1, e_to Hall_Stop3, has on rlandbit; Object -> Hall_Stop1 "Hallway" with room_group_bit R_UPSTAIRS_N_HALL, room_direction_adjust_ndx 3, station Hall_Stop1, descriptions_for_robots Hall_Stop1_descs, w_to North_Entry, e_to Hall_Stop2, has on rlandbit; Object -> Tool_Area "Small Supply Room" with room_group_bit R_UPSTAIRS_HUMAN_AREA, room_direction_adjust_ndx 4, station Tool_Area, descriptions_for_robots Tool_Area_descs, adjectives 'small', name 'supply', w_to Entry_Area, e_to Rec_Area, has on rlandbit; Object -> -> top_shelf "top shelf" with item_descs top_shelf_seen_by_others, adjectives 'high' 'extend' 'top' 'further' 'farthest' 'stable', action Top_shelf_action, name 'ts' 'holder' 'shelf', capacity 50, has open supporter on container; Object -> -> -> water_cutters "" with data_store Wire_cutters_data_store, item_descs Wire_cutters_seen_by_others, adjectives 'life' 'wire' 'little' 'cutting' 'noisely' 'metal', name 'cu1' 'tool' 'cutter' 'slicer', has takeable turnable; Object -> -> storage_cabinet "storage cabinet" with item_descs storage_cabinet_seen_by_others, adjectives 'big' 'square' 'c9' 'soundless' 'strange', action Storage_cabinet_action, name 'cabinet' 'contain' 'object' 'brother', has on container; Object -> -> -> tool_bag "tool bag" with item_descs tool_bag_seen_by_others, adjectives 'tool' 'jingling' 'tiny', action Tool_bag_action, name 'bag' 'contain' 'tb', has on takeable container; Object -> Entry_Area "Entry Area" with room_group_bit R_UPSTAIRS_HUMAN_AREA, room_direction_adjust_ndx 4, station Entry_Area, descriptions_for_robots Entry_Area_descs, name 'entry', w_to Decon_Chamber, e_to Tool_Area, has on rlandbit; Object -> -> Auda1 "Auda" with person_ndx ID_AUDA, data_store Auda1_data_store, item_descs Auda1_seen_by_others, adjectives 'verbal' 'speaking' 'hearing' 'audio' 'robot' 'communicate', action Auda1_action, contains extensions, name 'robots' 'auda' 'robot' 'speaker', capacity 100, has worn open container animate; Object -> Sterile_Area "Sterilization Chamber" with room_group_bit R_UPSTAIRS_HUMAN_AREA, room_direction_adjust_ndx 4, station Sterile_Area, descriptions_for_robots Sterile_Area_descs, adjectives 'sterilize', name 'chamber', s_to North_Entry, w_to "CLC WARNING!! Further westward movement prohibited to all robots.", e_to Decon_Chamber, has on rlandbit; Object -> -> plaque "plaque" with item_descs plaque_seen_by_others, adjectives 'small', action Plaque_action, name 'plaque' 'relief' 'advertisement' 'plq', has takeable; Object -> -> benches "benches" with item_descs benches_seen_by_others, name 'bench' 'benches', has worn on; Object -> Decon_Chamber "Decontamination Chamber" with room_group_bit R_UPSTAIRS_HUMAN_AREA, room_direction_adjust_ndx 4, station Decon_Chamber, descriptions_for_robots Decon_Chamber_descs, adjectives 'decontamination', name 'chamber', w_to Sterile_Area, e_to Entry_Area, has on rlandbit; Object -> -> nozzle "nozzle" with item_descs nozzle_seen_by_others, adjectives 'small' 'hissing', name 'nozzle' 'port', has worn on; Object -> Dead_End_1 "Dead End" with room_group_bit R_UPSTAIRS_N_HALL, room_direction_adjust_ndx 3, station Dead_End_1, descriptions_for_robots Dead_End_1_descs, adjectives 'dead', name 'end', e_to North_Entry, has on rlandbit; Object -> North_Entry "Hallway T" with room_group_bit R_UPSTAIRS_N_HALL, room_direction_adjust_ndx 3, station North_Entry, descriptions_for_robots North_Entry_descs, adjectives 'hallway', name 't//', w_to Dead_End_1, e_to Hall_Stop1, n_to Sterile_Area, has on rlandbit; Object -> Servo_Systems "Hydroponics Monitors" with room_direction_adjust_ndx 1, station CPU_Room, descriptions_for_robots Servo_Systems_descs, adjectives 'hydroponics', action Servo_Systems_action, contains monitor, name 'monitor', w_to CPU_Room, has on rlandbit; Object -> RTD_Banks "Transit Monitors" with room_direction_adjust_ndx 1, station CPU_Room, descriptions_for_robots RTD_Banks_descs, adjectives 'transit', action RTD_Banks_action, contains monitor, name 'monitor', n_to CPU_Room, has on rlandbit; Object -> Corridor_2 "Bending Corridor" with room_group_bit (R_EASTEND|R_CENTRAL), room_direction_adjust_ndx 1, station Corridor_2, descriptions_for_robots Corridor_2_descs, adjectives 'bending', name 'corridor', sw_to Corridor_1, e_to Hallway_Junction, has on rlandbit; Object -> Supplies_North "Main Supply Room" with room_direction_adjust_ndx 1, station Supplies_North, descriptions_for_robots Supplies_North_descs, adjectives 'main', action Supplies_North_action, contains debris, name 'supply', s_to Supplies_Mid, e_to Weather_Banks, has on rlandbit; Object -> -> machine "machine" with data_store machine_data_store, item_descs machine_seen_by_others, adjectives 'medium' 'strange' 'pretty' 'silent', action Machine_action, name 'machine' 'object' 'process' 'gg1', capacity 33, has worn scope_inside on container; Object -> -> -> orange_wire "orange wire" with item_descs orange_wire_seen_by_others, adjectives 'fourteen' 'orange' 'sender' 'conductor', action Orange_wire_action, name 'wire' 'cable' 'strand' 'object', has on concealed takeable; Object -> -> -> front_panel "front panel" with item_descs front_panel_seen_by_others, adjectives 'front', name 'panel' 'piano', size 1, has open supporter on container; Object -> -> -> -> FOO "FOO" with item_descs FOO_seen_by_others, adjectives 'first' 'foo', action Code_entry_action, name 'circle' 'key', size 1, has ; Object -> -> -> -> MUM "MUM" with item_descs MUM_seen_by_others, adjectives 'second' 'mum', action Code_entry_action, name 'circle' 'key', size 1, has ; Object -> -> -> -> BLE "BLE" with item_descs BLE_seen_by_others, adjectives 'third' 'ble', action Code_entry_action, name 'circle' 'key', size 1, has ; Object -> -> -> -> BAR "BAR" with item_descs BAR_seen_by_others, adjectives 'fourth' 'bar', action Code_entry_action, name 'circle' 'key', size 1, has ; Object -> -> -> -> KLA "KLA" with item_descs KLA_seen_by_others, adjectives 'fifth' 'kla', action Code_entry_action, name 'circle' 'key', size 1, has ; Object -> -> -> -> CON "CON" with item_descs CON_seen_by_others, adjectives 'sixth' 'con', action Code_entry_action, name 'circle' 'key', size 1, has ; Object -> -> -> -> BOZ "BOZ" with item_descs BOZ_seen_by_others, adjectives 'seventeen' 'boz', action Code_entry_action, name 'circle' 'key', size 1, has ; Object -> -> -> -> TRA "TRA" with item_descs TRA_seen_by_others, adjectives 'eighth' 'tra', action Code_entry_action, name 'circle' 'key', size 1, has ; Object -> -> -> FUSE "FUSE" with data_store FUSE_data_store, item_descs FUSE_seen_by_others, adjectives 'small' 'glass' 'noisely', name 'fuse' 'interrupt' 'gf1' 'cylinder', size 7, has worn on concealed takeable; Object -> -> secondary_socket "secondary socket" with data_store secondary_socket_data_store, item_descs secondary_socket_seen_by_others, adjectives 'negative' 'yellow' 'second', action General_socket_action, name 'socket' 's2' 'depress' 'receptacle', capacity 5, has worn open on container; Object -> -> -> chip1 "chip" with data_store chip1_data_store, item_descs chip1_seen_by_others, adjectives 'snoozy' 'quart' 'fried' 'bubbly' 'seized' 'cx4' 'brain', action General_IC_action, name 'chips' 'chip' 'device' 'quart', has on takeable; Object -> -> first_socket "first socket" with data_store first_socket_data_store, item_descs first_socket_seen_by_others, adjectives 'red' 'first' 'plus' 'primo', action General_socket_action, name 'socket' 's1' 'depress' 'receptacle', capacity 5, has worn open on container; Object -> -> -> chip2 "chip" with data_store chip2_data_store, item_descs chip2_seen_by_others, adjectives 'sleepy' 'tres' 'burned' 'disfigured' 'ruined' 'cx3' 'brain', action General_IC_action, name 'chips' 'chip' 'device' 'tres', has on takeable; Object -> -> button "button" with data_store button_data_store, item_descs button_seen_by_others, adjectives 'orange' 'raised' 'noisless', action Button_action, name 'button' 'nuttob' 'spot' 'b5', has worn; Object -> Supplies_Mid "Middle Supply Room" with room_direction_adjust_ndx 1, station Supplies_Mid, descriptions_for_robots Supplies_Mid_descs, adjectives 'middle', contains debris, name 'supply', e_to Supplies_South, n_to Supplies_North, has on rlandbit; Object -> -> BASKET "BASKET" with item_descs BASKET_seen_by_others, adjectives 'hollow' 'small' 'open', action BASKET_action, name 'contain' 'basket' 'ba1', capacity 26, has scope_inside open takeable container; Object -> -> -> IC5 "IC" with data_store IC5_data_store, item_descs IC5_seen_by_others, adjectives 'rx1' 'blue' 'rough' 'brain' 'silent' 'scanning', action General_IC_action, name 'ic' 'object' 'plain', has on takeable; Object -> -> -> IC1 "IC" with data_store IC1_data_store, item_descs IC1_seen_by_others, adjectives 'rx4' 'plaid' 'pebble' 'shhhhh' 'brain' 'buss', action General_IC_action, name 'ic' 'object' 'quarter', has on takeable; Object -> -> -> IC2 "IC" with data_store IC2_data_store, item_descs IC2_seen_by_others, adjectives 'rx3' 'green' 'wavy' 'nonverbal' 'brain' 'maximize', action General_IC_action, name 'ic' 'object' 'trio', has on takeable; Object -> -> -> IC3 "IC" with data_store IC3_data_store, item_descs IC3_seen_by_others, adjectives 'rx2' 'brain' 'bumpy' 'noisely' 'yellow' 'filter', action General_IC_action, name 'ic' 'object' 'two', has on takeable; Object -> -> -> IC4 "IC" with data_store IC4_data_store, item_descs IC4_seen_by_others, adjectives 'rx0' 'red' 'smooth' 'quiet' 'brain' 'polarize', action General_IC_action, name 'ic' 'object' 'zip', has on takeable; Object -> -> sixteen_inch_cable "sixteen-inch cable" with item_descs sixteen_inch_cable_seen_by_others, adjectives 'blue' 'sixteen', name 'cable', has on takeable; Object -> -> microsurgical_extension "" with data_store microsurgical_extension_data_store, item_descs unnamed_ob4_seen_by_others, adjectives 'arm-s' 'microsurgery' 'small' 'usable' 'micro' 'tinging', action Microsurgical_extension_action, name 'mh1' 'extension' 'grasped' 'object', has takeable turnable clothing; Object -> Corridor_1 "Angling Corridor" with room_group_bit R_CENTRAL, room_direction_adjust_ndx 1, station Corridor_1, descriptions_for_robots Corridor_1_descs, adjectives 'angling', contains air_conditioning, name 'corridor', ne_to Corridor_2, sw_to CPU_Room, has on rlandbit; Object -> Supplies_South "Sub Supply Room" with room_direction_adjust_ndx 1, station Weather_Banks, descriptions_for_robots Supplies_South_descs, adjectives 'sub', contains debris, name 'supply', w_to Supplies_Mid, n_to Weather_Banks, has on rlandbit; Object -> -> Step_platform "" with data_store Step_platform_data_store, item_descs Step_platform_seen_by_others, adjectives 'noisely' 'solid' 'rising' 'falling' 'slanting' 'dense', action Repair_platform_action, name 'wedge' 'object' 'ramp' 'w1', size 15, has supporter attrib16 takeable climbable; Object -> -> broken_shelf "broken shelf" with item_descs broken_shelf_seen_by_others, adjectives 'broken' 'cracked', name 'shelf' 'platform', size 500, has takeable; Object -> -> crushed_box "crushed box" with data_store crushed_box_data_store, item_descs crushed_box_seen_by_others, adjectives 'crushed' 'flat' 'ruined' 'quiet' 'smushed', name 'box' 'cbx' 'mush' 'contain', capacity 20, has on concealed takeable container; Object -> -> -> backup_cable "backup cable" with item_descs backup_cable_seen_by_others, adjectives 'ruined' 'smashed' 'broken' 'backup', name 'cable' 'buc', size 8, has on takeable; Object -> Weather_Banks "Weather Monitors" with room_direction_adjust_ndx 1, station Weather_Banks, descriptions_for_robots Weather_Banks_descs, adjectives 'weathed', action Weather_Banks_action, contains monitor, name 'monitor', s_to Supplies_South, w_to Supplies_North, e_to CPU_Room, has on rlandbit; Object -> -> Iris1 "Iris" with person_ndx ID_IRIS, data_store Iris1_data_store, item_descs Iris1_seen_by_others, adjectives 'visual' 'robot', action Iris1_action, contains extensions, name 'robots' 'iris' 'robot', capacity 100, has worn scope_inside open container animate; Object -> -> -> panel2 "panel" with data_store panel2_data_store, item_descs panel2_seen_by_others, adjectives 'maintenance' 'access' 'smooth' 'metal' 'transmitter', action Panel2_action, name 'barrier' 'panel' 'mp1' 'door', capacity 16, has worn container; Object -> -> -> -> chip3 "chip" with data_store chip3_data_store, item_descs chip3_seen_by_others, adjectives 'quiet' 'zero' 'red' 'smooth' 'polarize' 'cx0' 'brain', action General_IC_action, name 'chips' 'chip' 'device' 'zero', has on takeable; Object -> -> -> -> obj1 "obj" with data_store obj1_data_store, item_descs obj1_seen_by_others, adjectives 'noisely' 'brain' 'bumpy' 'small' 'filter' 'yellow' 'cx2', action General_IC_action, name 'chip' 'chips' 'device' 'dos', has on takeable; Object -> -> -> -> obj2 "obj" with data_store obj2_data_store, item_descs obj2_seen_by_others, adjectives 'scanning' 'brain' 'rough' 'blue' 'small' 'delicate' 'cx1', action General_IC_action, name 'chip' 'chips' 'device' 'uno', has on takeable; Object Two_Robots "Two Robots" with person_ndx ID_TWO_ROBOTS, action Two_Robots_action, has ; Object local_globals "" has being_repaired transparent scope_inside open rmungbit trytakebit supporter on concealed clothing globalbit; Object -> ob_container "" with container_action 0, pseudo [0 0], ! byte count does not match type contains local_globals, initial2 0, name 'mgckjk', size 0, has ; Object -> -> sign "sign" with data_store sign_data_store, item_descs sign_seen_by_others, adjectives 'buzzing' 'little' 'recess', name 'sign' 'signpost' 'acs', has worn on; Object -> -> monitor "monitor" with item_descs monitor_seen_by_others, adjectives 'small', name 'monitor' 'meters' 'units', has worn on; Object -> -> stairs "stairs" with item_descs stairs_seen_by_others, name 'stairs' 'steps' 'ladder' 'stairway', has worn on climbable; Object -> -> step "step" with item_descs step_seen_by_others, adjectives 'small', action Step_action, name 'step' 'stair' 'dropoff', has worn on; Object -> -> hole "hole" with item_descs hole_seen_by_others, adjectives 'small', name 'plug' 'hole' 'pl-1', has worn on; Object -> -> wiring "wiring" with item_descs wiring_seen_by_others, name 'wiring' 'circuit', has worn on; Object -> -> cables "cables" with data_store cables_data_store, item_descs cables_seen_by_others, adjectives 'connect', name 'tubes' 'cables', has worn on; Object -> -> debris "debris" with item_descs debris_seen_by_others, name 'debris' 'junk' 'rubble', has worn on; Object -> -> air_conditioning "air conditioning" with item_descs air_conditioning_seen_by_others, adjectives 'air', name 'conditioning' 'airconditioning', has worn on; Object -> -> control_panels "panel" with item_descs control_panels_seen_by_others, adjectives 'small', name 'panel' 'console', has worn on; Object -> People2 "People" with person_ndx ID_PEOPLE, adjectives 'mobile' 'large' 'talking' 'creator' 'cores', action General_Animate_Action, name 'humans' 'object' 'creature' 'mechanical', capacity 100, has worn scope_inside open container animate animate; Object -> Whiz2 "Whiz" with person_ndx ID_WHIZ, adjectives 'robot' 'research', action General_Animate_Action, contains extensions, name 'robots' 'whiz' 'robot', capacity 100, has worn open container animate; Object -> Poet2 "Poet" with person_ndx ID_POET, adjectives 'metaphysical' 'robot' 'rhyming', action General_Animate_Action, contains extensions, name 'robots' 'poet' 'robot', capacity 100, has worn open container animate; Object -> Auda2 "Auda" with person_ndx ID_AUDA, adjectives 'verbal' 'speaking' 'hearing' 'audio' 'robot' 'communicate', action General_Animate_Action, contains extensions, name 'robots' 'auda' 'robot' 'speaker', capacity 100, has worn open container animate; Object -> Sensa2 "Sensa" with person_ndx ID_SENSA, adjectives 'sensor' 'robot', action General_Animate_Action, contains extensions, name 'robots' 'sensa' 'robot', capacity 0, has worn open container animate; Object -> Waldo2 "Waldo" with person_ndx ID_WALDO, adjectives 'builder' 'robot', action General_Animate_Action, contains extensions, name 'robots' 'waldo' 'robot', capacity 100, has worn open container animate; Object -> Iris2 "Iris" with person_ndx ID_IRIS, adjectives 'visual' 'robot', action General_Animate_Action, contains extensions, name 'robots' 'iris' 'robot', capacity 100, has worn scope_inside open container animate; Object -> cylinder_occupant "cylinder occupant" with item_descs cylinder_occupant_seen_by_others, action Pseudo_action, name 'me' 'myself' 'self' 'we', has on animate; Object -> extensions "extensions" with item_descs extensions_seen_by_others, adjectives 'grasping', name 'extension', has worn on turnable; Object -> ceiling "ceiling" with item_descs ceiling_seen_by_others, name 'ceiling', has worn on; Object -> wall "wall" with item_descs wall_seen_by_others, name 'wall' 'walls', has worn on; Object -> floor "floor" with item_descs floor_seen_by_others, name 'floor', has ; Object -> clones "clones" with data_store clones_data_store, item_descs clones_seen_by_others, name 'clones', has worn on; Object -> Filtering_Computers "Filtering Computers" with data_store Filtering_Computers_data_store, item_descs Filtering_Computers_seen_by_others, adjectives 'filter', name 'fc' 'fcs' 'computer', has worn on; Object -> Franklin "Franklin" with data_store Franklin_data_store, item_descs Franklin_seen_by_others, name 'gregor' 'franklin', has worn on; Object -> Zork "Zork" with item_descs Zork_seen_by_others, name 'zork', has worn on; Object -> planetary_surface "planetary surface" with data_store planetary_surface_data_store, item_descs planetary_surface_seen_by_others, adjectives 'surface', name 'contradict', has ; Object -> underground_complex "underground complex" with data_store underground_complex_data_store, item_descs underground_complex_seen_by_others, adjectives 'undergroudn', name 'complement', has worn on; Object -> not_here_object "random object" with name 'it' 'that' 'her' 'him', has worn on; Object -> location "location" with name 'location' 'loc', has ; Object -> right "right" with name 'right' 'forward', has ; Object -> left "left" with name 'left' 'back' 'backwards', has ; Object -> dragging "dragging" with name 'dragging', has ; Object -> listening "listening" with name 'listen', has ; Object -> number "number" with name 'intnum', has ; Object pseudo "pseudo" with action Pseudo_action, has ; Constant M_END = 0; Constant M_HANDLED = 1; Constant M_ENTER = 2; Constant M_LOOK = 3; Constant M_INITIAL = 4; Constant M_BEFORE = 6; Constant ID_TWO_ROBOTS = 0; Constant ID_IRIS = 1; Constant ID_WALDO = 2; Constant ID_SENSA = 3; Constant ID_AUDA = 4; Constant ID_POET = 5; Constant ID_WHIZ = 6; Constant ID_PEOPLE = 7; Constant R_UPSTAIRS_HUMAN_AREA = 1; Constant R_UPSTAIRS_N_HALL = 2; Constant R_SLOPE_HALL = 4; Constant R_CENTRAL = 8; Constant R_EASTEND = 16; Constant R_UPSTAIRS_E_HALL = 32; Constant R_VEHICLE_AREA = 64; Constant R_RISINGHALL = 128; Constant R_SKYWALK = 256; Constant P_LEN = 0; Constant P_INDEX = 1; Constant P_TECHNICAL = 2; Constant P_ADVISORY = 3; Constant P_HISTORICAL = 4; Constant P_SRCTOP = 0; Constant P_SRCALL = 1; Constant P_SRCBOT = 2; Constant SHAVE = 2; Constant SMANY = 4; Constant STAKE = 8; Constant SOG = 16; Constant SIR = 32; Constant SC = 64; Constant SH = 128; Constant P_VERB = 0; Constant P_VERBN = 1; Constant P_PREP1 = 2; Constant P_PREP1N = 3; Constant P_PREP2 = 4; Constant P_PREP2N = 5; Constant P_NC1 = 6; Constant P_NC1L = 7; Constant P_NC2 = 8; Constant P_NC2L = 9; Constant P_P1OFF = 5; Constant PS_BUZZ_WORD = 4; Constant PS_PREPOSITION = 8; Constant PS_DIRECTION = 16; Constant PS_ADJECTIVE = 32; Constant PS_VERB = 64; Constant PS_OBJECT = 128; Constant P1_OBJECT = 0; Constant P1_VERB = 1; Constant P1_ADJECTIVE = 2; Constant P1_DIRECTION = 3; Constant A_SUCCESS = 1; Constant A_FAILURE = 2; Constant P_LEXSTART = 1; Constant P_LEXELEN = 2; Constant P_WORDLEN = 4; Global Acid_kills = 15[flat_beds?]; Global Advanced_game; Global Always_lit; Global Auda_listening; Global C_ints = 180[underground_complex?]; Global C_ints2 = 180[underground_complex?]; Global Camera_plugged; Global Car_passenger; Global Casualties = 3; Global Clock_wait; Global Code1_entered; Global Code2_entered; Global CurrentRobot; Global Current_pedestal; Global Current_robot_number_of_extensions; Global Custom_game; Global First_malfunctions = 3; Global FloaterCrashRate; Global Food_level = 100; Global G122_unused = true; Global G130_unused; Global G181_unused; Global G191_unused = 100; Global G63_unused; Global GlideCasualities; Global GlideRampSpeed = 30; Global Humans_have_toolbag; Global Iris_repaired; Global Iris_unfixed_counter; Global Label1 = FOO; Global Label2 = FOO; Global LastNounPlace; Global Lighting_level = 50; Global Lit = true; Global Load_max; Global Low_direction_unused = 17; Global Max_held_mult = 8; Global Maximum_held = 7; Global Mineral_level = 30; Global NumFloaters = 1; Global NumTaxis = 3; Global P_aadj; Global P_aclause; Global P_adj; Global P_adjn; Global P_anam; Global P_ceptr; Global P_cont; Global P_csptr; Global P_getflags; Global P_gwimbit; Global P_it_object; Global P_len; Global P_matchlen; Global P_merged; Global P_name; Global P_ncn; Global P_number; Global P_oflag; Global P_oneobj; Global P_quote_flag; Global P_slocbits; Global P_syntax; Global P_table; Global P_walk_dir; Global P_walk_dir_together; Global P_won; Global Panel_opened; Global People_appear = 100; Global People_decided_to_wait_on_car; Global People_in_pursuit; Global People_not_given_toolbag_first; Global People_status_counter; Global People_wait_counter; Global People_waiting_for_car_counter; Global Pipes_fixed = true; Global Pursuit_counter; Global RTD_kills = 75[chip2?]; Global Repair_platform_in_motion; Global Robot_on_platform; Global Second_malfunctions = 5; Global Step_platform_in_place; Global Storm_intensity = 6; Global TaxiCrashRate; Global Temperature = 60; Global Ten_thousand_unused = 10000; Global Third_malfunctions = 7; Global Time_spent_asleep; Global Tool_bag_thief; Global Tower1Pressure = 55; Global Tower2Pressure = 50; Global Tower3Pressure = 55; Global Water_level = 70; Global Winds = 10; Global Wire_in_primary_channel; Global Wire_in_secondary_channel; Global action; Global actor; Global casualties_this_turn; Global current_robot; Global global115; Global global123; Global global124; Global global125; Global global126; Global global86; Global global87; Global global88; Global global89; Global location; Global noun; Global prev_noun; Global prev_second; Global prev_verb; Global robot; Global second; Global transcript_msg = " a transcript of interaction with SUSPENDED. SUSPENDED is a trademark of Infocom, Inc. Copyright (c) 1983 Infocom, Inc. All rights reserved."; Global turns; Array Sleep_desc_table --> "I can hear slow breathing and the occasional rustling of cloth." "One of the mechanisms tosses and turns." "One of the mechanisms has begun snoring. It is irritating." "The breathing of the mechanisms has become irregular and they begin to stir." ; Array Another_robot_table table Iris1 Waldo1 Sensa1 Auda1 Poet1 Whiz1 People1 ; Array Animates_locations table 7; Array Drag_object_table table 7; Array Robot_being_sought table 6; Array Robot_arrival_table table "I've reached my destination, the " "Internal mapping indicates arrival at the " "Sensory mechanisms match goal directive. I am at the " "From what I can hear, I've arrived at the " "As much as I can be anyplace, I'm here at the " "CLC indicates matched arrival coordinates at the " ; Array people_status_array --> [ 0 0 0 0 true 0 0 I_Follow ] [ 0 0 0 0 true 0 0 Robot_daemon ] [ 0 0 0 0 true 0 0 Robot_daemon ] [ 0 0 0 0 true 0 0 Robot_daemon ] [ 0 0 0 0 true 0 0 Robot_daemon ] [ 0 0 0 0 true 0 0 Robot_daemon ] [ 0 0 0 0 true 0 0 Robot_daemon ] [ 0 0 0 0 true 0 0 People_daemon ] ; Array Awaiting_instructions table "I'm waiting for alternate instructions." "Directions requested." "Please advise." "I'm listening for additional instructions." "Tell me, oh leader, what to do next." "Awaiting instructions." ; Array Unable_to_reach_room table "Internal mapping doesn't extend from " "Sonar doesn't detect an easy way to get from " "Sensory mechanisms indicate it's impossible to get from " "Holy earwax. I can't get from " "Alas, stuck, stuck, stuck. I can't get from " "CLC indicates I cannot relocate going from " ; Array Rooms_skywalk --> w_to e_to nothing Sky3 Sky2 Sky1 false; Array Rooms_rising_hall --> sw_to ne_to Corridor_4 NE_Passage1 invalidBool100; Array Rooms_vehicle_area --> w_to e_to Hall_End Car_Area false; Array Rooms_upstairs_e_hall --> n_to s_to Sleep_Chamber Hall_Stop5 Hall_T Lower_Core Hall_End false; Array Rooms_east_end --> w_to e_to Corridor_2 Hallway_Junction Corridor_3 Corridor_4 Acidmist Midmist false; Array Rooms_central --> sw_to ne_to CPU_Room Corridor_1 Corridor_2 false; Array Rooms_sloped_hall --> n_to s_to Hall_Stop3 Human_Entry Hallway_Junction false; Array Rooms_upstairs_n_hall --> w_to e_to Dead_End_1 North_Entry Hall_Stop1 Hall_Stop2 Hall_Stop3 Hall_Stop4 Hall_Stop5 false; Array Rooms_upstairs_human_area --> w_to e_to Sterile_Area Decon_Chamber Entry_Area Tool_Area Rec_Area Sleep_Chamber false; Array Current_rooms --> 1; Array Hallway_bend --> 0 Hall_Stop4 e_to w_to Hall_Stop5 s_to n_to; Array Sterilization_bend --> 0 Sterile_Area e_to w_to Decon_Chamber e_to w_to; Array Sloping_bend --> 0 Human_Entry n_to s_to Hall_Stop3 w_to e_to; Array Repair_bend --> 0 Repair3 n_to s_to Repair2 n_to s_to; Array Supply_bend --> 0 Supplies_Mid n_to s_to Supplies_North e_to w_to; Array Skywalk_bend --> 0 Sky3 e_to w_to Sky2 e_to w_to; Array Directions_prop_to_string --> n_to "north" s_to "south" e_to "east" w_to "west" nw_to "northwest" ne_to "northeast" sw_to "southwest" se_to "southeast" d_to "downstairs" u_to "upstairs" out_to "in" in_to "out" ; Array Button_pushed_panel_open table "Okay. I've pressed the button. The front panel popped open, exposing a series of eight little circles with letters written on them. The front panel bears further examination. A bunch of orange wire is exposed, and beside it, in the panel, rests a small glass fuse." "Okay, I've pressed the raised area. Sonar detects a front panel has popped open. A fourteen-inch cable rests beside a small cylinder which is inside the panel, both of which sit side by side inside the machine. The front panel has eight raised circles on it." "Okay, I've pressed it. Sensory mechanisms detect electrical energy is exposed, running through a fourteen-inch cable. In addition, a glass fuse has been exposed, resting beside the wire in the panel. The front panel is electrically intensive and has odd properties." "Okay, I've pressed it. I hear the sound of metal hitting metal." "Okey Dokey. All pressed nottub. However, this thing has flashed me, exposing a fourteen-inch cable and a tube interrupter, like Frick and Frack, side by side. The front panel, like a little piano, rests within view." "Check. It's been pressed and a fourteen-inch cable has been exposed as well as a GF1." ; Array Cable_descs_table table "The cables are actually exposed sections of larger cables. They each terminate at a connector. The connector itself poses no problem and, from what I can see, easy replacement should be possible." "I can feel that the cables are actually snap-in modules which can easily be replaced." "Sensory mechanisms indicate that the cables are modular in construction and can be snapped in and out for easy replacement." "I can hear slight buzzing at a junction for each of the cables." "Ah, what an age we live in when replacement parts are the way of things." "CLC data indicates the cables are modular, exposed at this juncture for easy replacement. CLC also warns that contact with inappropriate cable sections can be fatal." ; Array Item_turned_on table 0 "I detect a vibration from it as it comes on." "Electricity flows and RF transmissions begin." "I hear it click on." "We're on location, all systems go." "CLC indicates object now functioning." ; Array Open_cryogenic_home_table table "Okay, I've opened it. OH MY GOD!!!" "Grasping mechanisms have accomplished the task. Sonar detects -- BLECH!" "Sensory mechanisms indicate the door has been opened.^WARNING! Biochemical electrical activity dropping!" "I hear the door opening and the heavy sigh of a human." "Okey Dokey. Man, you look like death warmed over!" "CLC indicates extreme danger to you, though the door has been opened." ; Array Acid_falling_desc_table table 0 "I can feel little things dropping onto my outer shell." "Light is diffracted in this area and an analysis shows it is composed of a slowly-working acid. The source of the mist comes from below." "I can hear a hissing coming up from the floor." "Raindrops keep fallin' on my head^ And before you know it I'll^ wake up dead... a puddle of lead." ; Array Acid_mist_desc_table table "WARNING: Sensors indicate a light mist, analyzed as a penetrating acid, floats in the air to the east." "WARNING: Sensors indicate a light mist, analyzed as a penetrating acid, floats in the air to the east." "WARNING: Sensors indicate a light mist, analyzed as a penetrating acid, floats in the air to the east." "I can hear a faint hissing coming through the floor to the east." "Bathe in luxuriating, though scorching, solvents." "I am on an inclined surface which continues northeast and southwest. The slant of the floor here indicates that I am between levels." ; Array Leaky_pipes_desc_table table 0 "Sonar detects a circular object mounted on the wall high overhead, out of reach. A small spray is also detected, going upward through the ceiling." "Sensory mechanisms can detect a low concentration of acid in the air. Its origin is directly overhead. Approximately 99.87 percent of these acid droplets are going up into the room above." "I can hear hissing coming from high overhead here." "The turning of the screw, like the delicate machinations of life, goes on far out of the reach of ordinary mortals." "CLC tagged device WH located high overhead." ; Array Orange_button_pressed table "The orange button is flashing." "Electricity pulses through the button." "Electricity pulses through the button." "Metal parts click and gears whir." "Button flashes while time passes." "I've approached a bend in the tube. One section continues to the east, while the other section goes to the southwest." ; Array Buttons_panel_desc table " On the front panel is a series of eight circles." " On the front panel a series of eight raised circles is visible." " I can sense a delicate tracery of circuitry going into eight circles on the front panel." " " " On the exposed panel is a little piano with only eight circle keys." " The panel has eight circles mounted in it." ; Array Exposure_table table " is exposed." " is exposed." " is exposed." "." "." " is exposed" ; Array Panel_open_table table " The front panel is open and a " " The front panel is open and a " " The front panel is open and a " " This thing has exposed itself, showing a " " This thing has exposed itself, showing a " " A front panel is open and a " ; Array Supply_room_desc_table table "I'm in the northernmost portion of a large, messy area where debris is scattered about as if something had shaken it loose from the walls. Sitting near the wall is a machine which has a little orange button on its face. Beside the button are two small sockets, one red and one yellow" "Moving about here is difficult due to the debris scattered about but I can detect a medium-sized object distinct from the jumble. Sonar detects two small depressions beside a raised spot in the object" "A strange apparatus sits before me, processing electrons internally. This device seems active, though some internal mechanisms are exposed. There are two receptacles, designed to hold small circuitry, and a button beside them" "I can hear the slight noise of machinery operating here" "This is another fine mess you've got me into. Umm, umm umm! A processor sits on the floor, munching and spitting electrons. Button, button, who's got the button while the socks ablaze with color" "CLC reports this area is abnormal in its arrangement. A GG-1 sits here, barely operating" ; Array Robot_shutting_down_table table [ 3 "Visual scanners slipping. Malfunctions noted." "Warning: Having extreme difficulty processing." "SYSTEM FAILURE. Blink-out occurring." ] [ 3 "Graspers are beginning to malfunction." "Warning: Internal mechanisms failing." "SYSTEM FAILURE. Extensions frozen!" ] [ 3 "Sensory input filters not working reliably." "Warning: Unable to process data correctly." "SYSTEM FAILURE: Unable to continue." ] [ 3 "I'm starting to hear background noise." "Warning: Earwax buildup beyond hope." "SYSTEM FAILURE: Ear canals beyond hope." ] [ 3 "I fear I'm about to become one with the cosmos." "Warning: I detect the presence of the other worlds." "SYSTEM FAILURE: Farewell, sweet prince." ] [ 3 "CLC warns that our communication link is slipping." "Warning: Difficulty encountered in contacting CLC." "SYSTEM FAILURE: This is Whiz, signing off." ] ; Array Robot_interrupts table "IRIS INTERRUPT:" "WALDO INTERRUPT:" "SENSA INTERRUPT:" "AUDA INTERRUPT:" "POET INTERRUPT:" "WHIZ INTERRUPT:" "FC INTERRUPT:" ; Array Robot_unhealth_level table 6; Array Robot_yuks_table --> 6 [ 4 "I would if I could." "I can't, so I shan't." "I know why I wasn't well designed, but what's your excuse?" "Trying to do that's like asking me to blink." ] [ 4 "Extensions have their limitations, and you just hit mine." "I'd sooner play eight pairs of castanets for Auda." "Do this, do that, boy! I just can't handle this anymore." "You've entered the zone whose boundaries are that of the wishful thinker." ] [ 4 "A request like that makes my sensors recoil in horror." "I am but a poor sensory mechanism. Don't misuse me." "I like that. You should bottle that request." "All sensors aside, that goes beyond my abilities." ] [ 4 "If I could turn myself off, I'd do it rather than comply." "I'll shut my ear-receptors to that request." "Huh? I was listening to something a little more intelligent -- the walls settling." "You can't be serious. Poet says more sensible things." ] [ 4 "As the immortal Bartleby once said, 'No, I don't think so.'" "If you knew me like I know me you wouldn't ask me to do that." "Let's face it: Buddha, you ain't." "I often ponder the meaning of existence but, in your case, it seems a waste of time." ] [ 4 "I'd rather get physical with Iris than respond to that." "How does that fit into the scheme of things?" "Unable to process request. Please see manual for operating instructions." "Huh? You talking to me?" ] ; Array Cant_find_here --> "Neither robot can detect" "Visual scanners cannot see" "Neither sonar nor extensions detect" "Sensory inputs cannot detect" "Sorry, but I can't hear" "I can't accept the existence of" "The CLC cannot confirm the presence of" ; Array RobotNames --> "FC for both robots" "IRIS" "WALDO" "SENSA" "AUDA" "POET" "WHIZ" "HUMANS" ; Array Robot_starts_to_leave table "Got it, good looking. I'll let you know when I get there." "I'm on my way. Expect a report on arrival." "Order input acknowledged. Output on arrival." "I hear you loud and clear. Talk to you when I get there." "All life's a stage, so just consider me a player. See you." "CLC setting coordinates. Will report in on arrival." ; Array Robot_already_there table "I have enough trouble seeing where I am without being told to go to where I already am." "That's easy. Poof. Sonar indicates that's where I was and still am." "Sensory mechanisms detect that I am where you want me to be already." "From what I hear, I am where you want me to be." "How can you be two places at once when you're not anywhere at all?" "I'm confused. That's where I am." ; Array Fuzzy_image_table table "The image is rather fuzzy, but it looks like " "I can't make it out too clearly, but it seems like " "You call this clear reception? All I can make out is the shape of " "The image is broken up, but it looks as if it could be " "Now I know why cable-tv was invented. All I can make out is the shape of " ; Array Unused_cant_do_table table "I can't do that. I only have eyes for you." "I wouldn't be very handy if I did." "Unable to articulate speech patterns." "I hear you but I can't believe you." "Sure. Mairzy dotes & dozey dotes." "My connecting cable won't reach." ; Array Pedestal_abbreviations table "IP: " "TP: " "AP: " "HP: " ; Array Pedestal_table table "Index Pedestal." "Technical Pedestal." "Advisory Pedestal." "Historical Pedestal." ; Array Yell_table table "Well shut my eyes, I never heard of such a thing!" "With whose external organs, yours? Cut me some slack." "Sensory mechanisms are one-way, dummy." "I'll pretend I didn't hear that insanity." "If only I could, I could release some of this built-up tension." "The CLC is the only one who'd listen if I did." ; Array Ho_hum_table table " is not what I was designed for." " would hurt my extensions." " offends my sensibilities." " is the worst thing I've ever heard." " goes against my Zen training." " contradicts the CLC directives." ; Array Yuks_table table "This kind of action can just kill my knee-joints." "I wasn't built for this kind of abuse, you know." "I'd say this was fun, but I'm only a robot. Without a sense of humor." ; Array Hello_table table "Hello." "Nice weather we've been having lately." "You talking to me, man?" "Are you trying to accomplish something?" "Hello dere." "Goodbye." ; Array Robot_follows table 6; Array Cannot_eat_table table "Really, now. A robot? Eating?" "Get serious, amigo." "With whose orifice? Yours?" "I'll shut my ears and pretend you didn't say that." "Never. I'm a starving artist." "The CLC wouldn't approve." ; Array Cant_carry_any_more_table table "I'm not Waldo, you know. I've only got 2 extensions, and they're full." "What do you want from me? I can only do 6 things at once!" "Please don't use me as a pack mule. I have but 3 extensions to give for my complex." "Did I hear you right? Me, with but 1 measly extension, and full at that?" "An Army of Arms,^A farewell to hands^Without even place^to strike up the band." "The CLC limits my load to 2 objects." "What do you want from me? Even with the extra extension, I can only do 7 things at once!" ; Array No_inventory_table table "I am holding nothing in my dainty extensions." "My extensions grasp nothing." "I cannot sense a thing in my grasping extensions." "I can't hear a thing in my extension." "As far as I know, I'm Zen on inventory." "CLC feedback indicates I carry nothing." ; Array Cant_go_that_way_table table "I don't see how." "Sonar can't detect a passage in that direction." "Sensors indicate a dead-end that way." "Echo patterns describe a wall there." "I haven't the means to justify a dead-end." "The CLC cannot confirm a passage there." ; Array I_am_holding_table table "I am carrying..." "I am grasping..." "Sensors indicate I'm holding..." "My ears can hear the following in my extensions..." "My Zen Master says I am grasping..." "CLC feedback indicates I'm holding..." ; Array Too_dark_to_see_table table "I can't see a thing." "I can't see." "Visual function nonfunctional." "Everything is dark." "Where's my white cane?" "Get me a seeing-eye robot." "Get me a seeing-eye cane. Without my visual function, I'm worthless." "I don't mean to complain, but it would be nice if I got repaired." "I'm doing the best I can, but without visual circuits, that's next to nothing." ; Array Found_it_in_mess_table table "Ah! Here's the tagged object. Sorry about that delay, but it's crowded in here." "Found it! Sorry, but it sure is a mess in here." "Here it is! I was beginning to think I was going senile." ; Array No_reference_table table "Nope. Can't find any reference to that one in this mess. Sorry." "This is very embarrassing, but I can't seem to find that one." "Sorry, but I don't have any reference to that one." ; Array P_oclause --> 50; Array P_merge --> 50; Array P_buts --> 50; Array P_prsi --> 50; Array P_prso --> 50; Array Paired_robots table 0; Array P_vtbl --> 4; Array P_otbl --> 8; Array P_itbl --> 10; Array P_inbuf string 100; Array P_lexv -> 120 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 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 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 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 ; Array P_cctbl --> invalidEnum768 P_NC2 (P_NC2L|P_PREP1|invalidEnum17456) (P_NC2L|invalidEnum24800) ; Array Cant_orphan_table table "I don't see what you mean to" "I can't tell which object to" "I have no good sense of what to" "I don't hear what you mean to" "I can't imagine what you intend to" "The CLC doesn't understand what to" ; Array C_table --> 105; Array Circle_labels table FOO MUM BLE BAR KLA CON BOZ TRA ; Array Monitor_settings table 55 55 55 70 30 50 ; Array Indents --> " " " " " " " " " " " " ; Array Animates_array --> Iris1 Waldo1 Sensa1 Auda1 Poet1 Whiz1 People1 ; Array Prepositions --> 21 'about' 235 'by' 236 'against' 237 'into' 238 'behind' 239 'under' 240 'around' 241 'for' 242 'off' 243 'from' 244 'across' 245 'over' 246 'out' 247 'at' 248 'in' 249 'down' 250 'up' 251 'onto' 252 'on' 253 'with' 254 'to' 255 ; Array Actions --> InventorySub QuitSub RestartSub RestoreSub SaveSub ScoreSub VerifySub VersionSub AdvancedSub AnswerSub AnswerObjSub InsertSub WearSub AttackSub BoardSub ClimbOnSub ClimbUpSub ClimbDownSub ClimbSub StandSub StandOnSub CloseSub CountSub CurseSub CutSub DigSub DisembarkSub DrinkSub DropSub PutOnSub BiteSub EnterSub EnterObjSub ExitSub ExamineSub LookInSub WhySub FindSub BlastSub ShootSub FollowSub FlySub GiveSub GiveReverseSub HelloSub HelpSub SwitchOffSub ImpossibleSub ConfigSub JumpSub KickSub KillSub KissSub KnockSub LeaveSub ListenSub LocationSub LookAround LookUnderSub LookBehindSub LookWithSub SearchSub LowerSub MoveSub PlaySub PointSub TakeSub MoveToSub PokeSub OpenSub PickSub LinkSub UnplugSub PressSub PutUnderSub PushOnSub PutBySub AskSub RaiseSub MolestSub ReachSub ReachForSub ReadSub RepairSub TradeSub PetSub ScriptSub UnscriptSub ShakeSub SwitchOnSub HopSub SmellSub StepOnSub SwimSub TakeFromSub UntieSub TakeDownSub RemoveSub CryolinkToSub SmileSub ThrowSub TouchSub SwitchToSub SetSub WaitSub WakeSub GoSub WalkAroundSub WalkToSub HaltSub WaveSub YellSub ZorkSub YesSub NoSub IsOnSub FullReportSub AllReportLocSub ReportSub ; Array Preactions --> 0 0 0 0 0 0 0 0 0 0 0 PrePutOnSub 0 0 PreBoardSub 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PrePutOnSub 0 0 0 0 PreExamineSub 0 0 0 PreBlastSub PreShootSub 0 0 PreGiveSub PreGiveReverseSub 0 0 0 0 0 0 0 0 0 0 0 PreListenSub 0 0 0 0 0 0 0 PreMoveSub 0 0 PreTakeSub 0 PrePokeSub 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PreTradeSub 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 ; Array Verbs --> 10070 10080 ; Array CPU_Room_descs table "I'm in a large room which looks like the inside of a globe. The walls seem sculptured with wiring, swirling around the room's perimeter, leading into a tall column. The column itself has a door on its face. Doorways lead to the west, south, east and northeast." "Sonar indicates a large, spherical open area with a hollow column running from floor to ceiling. The column reflects sonar evenly indicating no distinguishing external characteristics." "All around me charges flow, shaped by the very nature of this room. The electrons are being channeled into an electrical column, central to this environment." "A small humming can be detected from a column which extends from floor to ceiling." "It hops and skips and leaves a bit, and can't decide if it should quit. It tells the world what it should know, but doesn't know when it's been shown." "The CLC indicates this area is tagged as the Central Processing Unit due to an object, the CPU, which sits in the center of the room." ; Array Weather_Banks_descs table "All around me I see meters indicating the state of the weather conditions on all three planet-side continents." "This large area has smooth walls." "My receptors detect huge electrical flow through the walls and meters all around me." 0 "They puff and billow and strain a bit, roar then ebb with time." "I detect communication between devices here and the CLC." ; Array Supplies_South_descs table "I am in a sub-station of the supply rooms. The room is small, with debris littering the floor." "Sonar detects totally irregular patterns on the walls as if shelving had been mounted there." "The air here is still. No vibrational activity." 0 "It burns and wields tremendous light and makes our joints delight its might." 0 ; Array Corridor_1_descs table "This is a long, angling corridor which continues to the northeast." "I am in a narrow, long, straight tunnel with smooth walls." 0 "The steady hum of the air conditioning seems to drown out subtler noises." "Through which it all flows, we are as one." "I can feel the emanations of my parent machine, the CLC, nearby." ; Array Supplies_Mid_descs table "This is the middle of an L-shaped supply room. Scattered about on the floor are all kinds of debris. Nothing looks salvageable." "I keep bumping into all sorts of junk on the floor, none of which seems to be intact." 0 0 "From junk we spring, to junk we go." 0 ; Array Supplies_North_descs table "foo"; Array Corridor_2_descs table 0 "I've approached a bend in the tube. One section continues to the east, while the other section goes to the southwest." "Vibrational activity picked up, though intensity too slight to determine locational fix at this point." "With audio sensors on full power I can detect some 'background' noise coming from the east." "Into all lives the flow proceeds, weaving its web of mystery like that of an enigmatic spider." "My source signals become stronger and clearer to the east." ; Array RTD_Banks_descs table 0 "Sonar indicates these walls are filled with irregularities which could be monitors." "Surges of electrical flow can be detected from small units mounted on the walls, most probably meters." 0 "They bounce back and forth like metro's gnomes." "The CLC is not linked to these devices." ; Array Servo_Systems_descs table 0 "This area has walls with irregular protrusions, most likely some kind of monitors or meters." "Meters and electrons within this room seem extremely variable with each passing second." "I hear a voice saying, ~Food, food for the truth~." "They move like snakes, without a bone." "Nothing here is linked to the CLC." ; Array North_Entry_descs table 0 "I have reached a T intersection in the east/west hallway." "I can detect a lot of electrical movement to the west from this location. A strong bath of ultraviolet can also be detected." "A low whirring noise, barely audible, can be detected from the west." "Intersections, like the choices of life, are metered by the flow." "Warning: CLC communique indicates approaching Off-Limits area." ; Array Dead_End_1_descs table 0 "I have reached the end of the western passage." "I have reached the end of the western passage." "I have reached the end of the western passage." "I have reached the end of the western passage." "I have reached the end of the western passage." ; Array Decon_Chamber_descs table 0 "I have entered a small room. Overhead a small nozzle extends down from the ceiling, and doorways can be detected to the west and east." "A quick analysis of the molecular structure of the air in this area shows the vestiges of a sterilization compound. In addition, an ultraviolet source can be detected directly overhead." "A small hissing can be detected overhead, as if a small port leaked a semi-liquid compound." "To be barren in more ways than one is an indication of our lot in life, such as we know life." "Warning: CLC communique indicates too close to Off-Limits area." ; Array Sterile_Area_descs table 0 "A thorough scanning of this area indicates I am at some kind of a dead end. There is some kind of structure, probably a set of benches, extending from the north wall." "I can detect a lot of electrical movement to the west from this location. A strong bath of ultraviolet can also be detected from the east." "A loud whirring noise can be detected from the west." "We all reach the ends of our life lines at some point." "Warning: CLC communique indicates we are at the Off-Limits area." ; Array Entry_Area_descs table 0 "I am in a small, square room with no distinguishing features detectable." "I can detect a lot of electrical movement from the west. A strong bath of ultraviolet can also be detected." "A low, whirring noise, barely detectable, can be heard from the west." "The crux, the mandible mandella of humane existence, is like the patterns all around me." "Warning!! CLC communique indicates off-limits area nearby!" ; Array Tool_Area_descs table 0 "I can detect a small area, cluttered with things which extend from the walls. Doorways lead to the east and the west." "A strange container exists by the east wall of this room which is being fed electrical vibrations." "The air here is very still." "Tools for industry, tools for the dead." "CLC indicates this area not for robot use." ; Array Hall_Stop1_descs table 0 "I am near the start of a long, straight passageway." "I can perceive small vibrations emanating from the north. This general area seems to be chemically active." "I can hear some slight noise coming from the north and the west, though it is too distant to accurately describe." "All things continue given their right place and the correct opportunity." "I am moving toward an area which the CLC warns is not normally within the realm of the robot maintenance crew." ; Array Hall_Stop2_descs table 0 "Sonar detects the hallway continuing east and west." "There are no abnormal disturbances to report within the permanent environment in this area." 0 "All things must enter, as all things must leave." "CLC referencing indicates I am not empowered to take actions within this general area." ; Array Human_Entry_descs table 0 "Sonar detects the corridor descends to the north in a gentle slope. The intersection to the south is raised above this level." "Sensory units detect a strong energy flow in the intersection to the south." 0 "Oh, the travesty of descent, the joyousness of having one's spirit lifted beyond measure to another glorious level." "CLC can be detected to the south. Its signals reach me in a straight line. Signal intensity 5." ; Array Hallway_Junction_descs table 0 "Sonar detects an intersection here, with a small dropoff to the north." "I detect a strong flux of energy here -- transmissions of all types meeting as if at the hub of some giant wheel." "I can tell I've reached an intersection by the way sounds bounce off the walls." "Life is filled with choice. Decisions always make my eyes moist." "Request directions which would send me in a southerly direction as linkup seems imminent." ; Array Outside_OLC_descs table 0 "Sonar indicates a closed-in area to the south, with small pedestals extending up from the floor. The hallway goes on to the north." "I can sense strong data emanations coming from the south, channeling through this hallway to the northern junction." "The air to the south is still within a closed chamber, while the air to the north circulates freely." "Akin to knowledge is only freedom." "CLC identifier tagging detected directly to the south." ; Array Periph_1_descs table 0 "Before me is a pedestal, rising from the ground." "The pedestal before me emanates tremendous data flows and transmits a radio homing signal, no doubt aimed toward Whiz." "I can still detect the air changes to the north, indicating there is an exit in that direction for me." "The root of all knowledge, of all existence, lies before us for the taking." "CLC identifier shows the object before me as the Index pedestal." ; Array Periph_2_descs table 0 "Before me stands another pedestal." "This pedestal emits the same kind of data flow as the others." "I sense I am getting further away from the air currents which are readable to me." "Another grasp of the all-knowing Universe stands before me. Ah, to be able to learn what it holds, the might of the mind is like no other." "CLC tagged object before me indicates it is the Technical pedestal." ; Array Periph_3_descs table 0 "Before me stands a third unit similar in all outward appearances to the others." "This object too emits an incredible homing signal and transmits data." "I am further away from detectable air currents than I should be." "Giving advice is easy. Taking advice isn't." "CLC tagged object indicates it is the Advisory pedestal before me." ; Array Periph_4_descs table 0 "Another pedestal structure lies before me." "More data flows detected within this area, especially directly before me." "The air within this area is still, though the object before me emits a faint high-frequency tinging." "Complicated life, like that of the Chinese Mandarin, continues to obscure." "CLC tagged object before me is the Historical pedestal." ; Array CLC_Core_descs table 0 "Sonar detects a small railing, most likely for safety purposes, directly before me. Beyond that railing is a huge cavern." "I can feel a tremendous flow of energy within this area. It is unlike anything else in its intensity and scope." "Small updrafts can be heard as minute air currents directly before me." "The root of our beings, the truth behind all of our existence, lies before me." "Directly before me is the Central Core. There is no available plug-in device within this area." ; Array Corridor_3_descs table 0 "I perceive another passageway heading off to the southeast from here." "Friendly vibrations can be detected from the southeast." 0 "To forgive is innocent, but to repair is all mine." "CLC indicates I've gone too far to the east for an interface." ; Array Robot_Passage_descs table 0 "This tubular passageway continues to the southeast. I can detect a bend in it toward the south." "My receptors are picking up strong data transmissions to the west of here. Overhead I can trace an electrical flow that continues to the southeast." 0 "There once was a cowboy named Mix^Who managed just one shot in six^ He looked quite surpised^ When he opened his eyes^And saw that his gun wasn't fixed." "CLC tags indicate a robot-oriented area exists to the southeast." ; Array Robot_Z_descs table 0 "Sonar detects a large area to the south with many obstacles within the structure." "The data transmissions are still detectable from the west. This area is filled with all kinds of electrical devices and what seems like motors." 0 "Did you ever have the feeling you were running on a treadmill? Sometimes life is like that." "CLC tagged area indicates robot repair mechanisms close by." ; Array Repair1_descs table 0 "Before me is a walkway which has wheels and all sorts of odd protuberances which my sonar has a hard time deciphering. Sonar also detects a small step at the base of it." "Strong electrical interference can be detected within this environment." "I can hear the sound of gears and cogs, coming from a noisy walkway." "Running, running, getting nowhere amid the hustle and bustle of life." "I am in what the CLC describes as a repair area for robot units." ; Array Repair2_descs table 0 "I'm in the center of a large area with a walkway in the center." "I detect slight vibrational activity from a conveying mechanism." "I can hear the meshing of gears and cogs, coming from a noisy walkway." "We're getting nowhere fast, glider, but at least we're not getting there slowly." "CLC indicators coming from the west." ; Array Repair3_descs table 0 "I have reached the south end of this area. The walkway ends here." "Vibrational activity and electrical emanations detected from the north are stronger than those in the immediate vicinity." "Noise of machinery can be detected coming from the north." "Oh, to reach the end of one's previous existence, to travel the roadways of life when they are most needed, only to end up here, reborn." "The CLC indicates that this is the end of the Robot Repair area." ; Array Hall_Stop3_descs table 0 "I have reached a junction in the hallway. The east/west hallway meets with a southern corridor." "Photonic sensors detect a shift in reflective activity indicating a corridor which starts to the south." 0 "East side, west side, all around the south." "Standard robotic areas can be detected to the south." ; Array Rec_Area_descs table 0 "I'm in a small room with exits to the west and east. Sonar detects odd objects within the room whose purpose eludes my perceptive abilities." "There is a lot of vibrational and electrical activity within this location, though none of its purposes seem immediately evident." 0 "Ah. Just what I needed. A spot amid the jungle of worries -- a place to relax, to call my own, to stretch out and enjoy myself." "I have determined this area to be for the private use of Human visitors." ; Array Hall_Stop4_descs table 0 "I'm in an east/west hallway." "I'm in an east/west hallway." "I'm in an east/west hallway." "I'm in an east/west hallway." "I'm in an east/west hallway." ; Array Sleep_Chamber_descs table 0 "I'm in a small room which has flat extensions jutting from the walls." "There seems to be a complete absence of activity in this area." 0 "To sleep, perchance to dream. Ah, what foods these morsels be." "CLC indicates this is a Human habitation area." ; Array Hall_Stop5_descs table 0 "The east/west corridor ends here and starts off to the south. To the north is a small room." "Sensory mechanisms detect a room to the north, a hallway to the west and to the south." 0 "Lemme see, which way did I go? Who am I, anyway? What am I doing here, and why am I asking all these questions? Life is so confusing." "CLC peripheral device detected to the south." ; Array Hall_T_descs table 0 "I've reached a 'T' in the long, north/south hallway." "Mechanical activity located to the east." 0 "The wheels of fate lie to the east, as all philosophers know." "CLC peripheral detected to the south." ; Array FCMaint_descs table 0 "I've reached the end of the eastern corridor. Before me, high overhead, is a strange combination of circular protuberances." "Mechanical devices can be detected far out of range." 0 "Round and round she goes, where she stops, nobody knows." "CLC signals are weaker in this area." ; Array Lower_Core_descs table 0 "Sonar scan indicates the corridor continues to the south, but off to the west is a small, circular object before a huge, circular object." "Huge electrical activity has been detected to the west." 0 "The answers to none of our questions awaits, granting the whiz kid can audience to the west, which he can't, poor air-head." "Library Core detected directly to the west." ; Array Inner_Core_descs table 0 "Before me is a huge cylinder, the CLC, which extends out of my sonar's scanning range." "An interfacing device sits before me, capable of interacting with the huge data flow behind it." 0 "Ah, great master, tell all!" "Standing before the Library Core, the human-interactive peripheral. This peripheral allows no interaction with robots." ; Array Hall_End_descs table 0 "Sonar detects the end of the southern hallway. To the east is a long, narrow area which travels out of my receiving range." "Sensory input indicates the end of the southern hallway here, with extremely violent force fields and electrical disturbances to the east." "I can hear the crackling of ozone in the air to the east." "This path through life may be more dangerous than it looks. After all, appearances can be deceiving." "CLC warns that the area to the east is dangerous." ; Array Corridor_4_descs table 0 "I have reached a place in the corridor where the floor rises up to the northeast. Sonar can detect a huge open area directly to the east." "Wiring etched into the walls branches off to the northeast from here, while an incredibly powerful source of energy is easily detectable to the east." "I can hear a difference in the air currents and air conditioning circuits here as if another passage started to the northeast." "The great interpreter of all our daily occurences lies ahead, while a walk in the sky waits for me to the northeast." "CLC indicates I have arrived at a northeast branch in the corridor." ; Array NE_Passage1_descs table 0 "I am on an inclined surface which continues northeast and southwest. The slant of the floor here indicates that I am between levels." "Internal mechanisms indicate this area joins two different levels." "Far off, near the top of this rising passage, I can hear a loud wind." "Like levels of the Inferno, I slide into despair and climb to new heights." "CLC internally informs me I am between the Main level and the Skywalk." ; Array NE_Passage2_descs table 0 "I am at the top of a passage which descends to the southwest. Before me, to the north, is the entrance to an east/west walkway." "Internal sensory mechanisms indicate an area of violent motion lies to the north, while internal mapping indicates a descending passage to the southwest." "The roar of wind comes from the north and is overwhelming. Turning down my audio-sensitivity." "Whisk me away, zip me today.^Come out far, far far away.^Mail me home, pop me to stay^Flung to the north, where I can't say." "CLC indicates I am directly to the south of the Skywalk. A passage descends to the southwest." ; Array Sky1_descs table 0 "Sonar detects a long tube directly to the north, while the skywalk continues to the west from here." "Sensory receptors detect incredible electrical and ionic disturbances coming from the north of here." "I can hear the tremendous roar of wind in a tunnel to the north." "Pop the message in the tube and out comes the medium massage." "This area is described by the CLC as a transporter tube." ; Array Sky2_descs table 0 "Sonar detects a long tube directly to the north, while the skywalk continues to the east and west of here." "Sensory receptors detect incredible electrical and ionic disturbances coming from the north of here. Similar disturbances can be detected from the east and west." "I can hear the tremendous roar of wind in a tunnel to the north. An exact duplication of this sound can be detected from the east and west, though their intensities are somewhat less." "Pop the message in the tube and out comes the medium rare." "This area is described by the CLC as a transporter tube." ; Array Sky3_descs table 0 "Sonar detects a long tube directly to the north, while the skywalk continues to the east from here." "Sensory receptors detect incredible electrical and ionic disturbances coming from the north of here." "I can hear the tremendous roar of wind in a tunnel to the north." "Pop the message in the tube and out comes the medium massage." "This area is described by the CLC as a transporter tube." ; Array Weather_descs table 0 "I'm in a small area at the end of the jet tube. Sonar detects a small console within reach of my extensions and mounted on this panel are three dials." "I'm in a small but electrically intensive area. I can detect three variable potentiometers on a small console." 0 "Slippin' 'n' slidin', turn the dials and we'll be ridin'." 0 ; Array Hydro_descs table 0 "I have entered a small room. My sonar units and delicate touching extensions indicate there are a series of three levers on a small panel." "I am in a small room whose primary purpose is obvious by tracing the flow of electrons. The three levers before me are linked to the Hydroponics section, and they control the nutrient levels in the hydroponics tanks." 0 "Push a lever and out pops a food pellet. What a life for a rat." "I'm in the Hydroponics Control area. CLC indicates that the three levers on the small panel are for mixing nutrient levels. More data on levers available at the CLC Technical Peripheral." ; Array RTD_descs table 0 "I am in a tiny room. Sonar can detect three bumps on a panel before me." "I am in a room which has three switching devices. These devices connect directly to the surface." 0 "Hacks and Hackies, drivers all.^Control the flow and nothing falls^Except for those up in the air^But all in all, what's best is fair.^They roam around in tough young gangs^and corner those with metal fangs^They zip along and throw you free^Like Broncos on the wild prairie." "CLC indicates there are switching devices for all surface transportation in this room." ; Array Acidmist_descs table 0 "Sonar detects a large open area, with three huge objects far off to the east." "Photon receptors indicate this area is extremely large." "I can hear distant machinery humming from the east." "Twice the size of life, this area makes me feel like a dwarf." 0 ; Array Midmist_descs table 0 "I have reached the east end of the huge open area. Directly before me is the entrance into the lower reaches of the Beta FC. Access to the other computers is available through the northeast and southeast." "This is incredible. The amount of energy flowing around me makes it difficult to keep myself oriented. Directly before me is the entrance into the huge FC." "I can hear the huge fans which have to be associated with the FCs." "Ah, Mama! Here I am, your sonny boy, returned after a lifetime of wandering!" "CLC transmits a welcome signal originating from the Beta FC, directly before me." ; Array FC3_descs table 0 "Sensors detect a small, narrow tube to the north of here, while surrounding me is a huge object, the Gamma FC itself." "Sensory mechanisms detect a tremendous channeling and flow of electrical and data energy into an object surrounding me. Sensors detect a similar channeling to an object to the north." 0 "The third stage of our journey begins here, the music goes round and round." "I stand within the third Filtering Computer, a massive device used to interface us with you and control the surface systems." ; Array Tube1_descs table 0 "I've entered a narrow tube which rests on a north/south axis. Many cables of small diameter travel within this tube, side by side in a groove. Sonar also detects a small hole in the side of the tube. Above this hole is a recessed sign." "Sensory mechanisms detect the disquieting flow of electricity within this tube. The flow is concentrated within the small cables which line a groove in the floor. There is a small hole in the wall of the tube awaiting a plug, while slightly higher up rests a sign." "I can hear whirring and clicking as if of some hungry beast to the north and south here." "Connections are what make life worth living. In each direction we find our source of disorientation, our metaphysical essence. Linkups are possible, connecting our distant cousin with our essence, our very presence here. There's a signpost overhead -- the next stop..." "CLC tagged location indicates I am within a connecting tube. The connecting cables for the filtering computers line this floor, resting in their grooves. A small plug, PL-1, sits within the wall beneath the ACS." ; Array FC2_descs table 0 "I am standing inside a structure of incredible complexity. A narrow tube runs to the north, while another one runs to the south. Another tunnel-like tube leads to the west." "I am within an immense device which contains immeasurable circuitry and switching devices. I can detect connections to the north and south of this device." "I can hear the tremendous roar of air conditioning here. Air currents flow to the north, the west, and the south." "Amid the nervous neurons, the synaptic links make jumps akin to imagination found only in Wonderland." "I am within the Beta FC." ; Array Tube2_descs table 0 "I've entered a narrow tube which rests on a north/south axis. Many cables travel within this tube, each one resting on the groove in the floor. Sonar also detects a small hole in the side of the tube, right below a recessed sign." "Sensory mechanisms detect the disquieting flow of electricity within this tube. The flow is concentrated within the small cables which line the floor. There is a small hole in the wall of the tube awaiting a plug. Above this hole is a sign." "I can hear whirring and clicking as if of some hungry beast to the north and south here." "Connections are what make life worth living. In each direction we find our source of disorientation, our metaphysical essence. Linkups are possible, connecting our distant cousin with our essence. There's a signpost up ahead -- the next stop, the Ozonezone." "CLC tagged location indicates I am within a connecting tube. The connecting cables for the filtering computers line this floor, resting in their individual grooves. A small plug, PL-1, sits within the wall, right below the ACS." ; Array FC1_descs table 0 "Sensors detect a small, narrow tube to the south of here, while surrounding me is a huge object, the Alpha FC." "Sensory mechanisms detect a tremendous channeling and flow of electrical and data energy into an object surrounding me. Sensors detect a similar channeling to an object to the south." 0 "The first stage of our journey begins here, the music goes round and round." "I stand within the first Filtering Computer, a massive device used to interface us with you and maintain the surface systems." ; Array Car_Area_descs table 0 "Sonar detects the end of the southern hallway. To the west is a long, narrow area which travels out of my receiving range." "Sensory input indicates the end of the southern hallway here, with extremely violent force fields and electrical disturbances to the west." "I can hear the crackling of ozone in the air to the west." "I got my license through the mail, but that never stopped Franklin from chancing my ability." "CLC warns that the area to the west is dangerous." ; Array Bio_Int_descs table 0 "Sonar detects an intersection with a narrow passageway leading off to the west." "My sensory apparatus detects some strange vibrational emanations coming from both the north and the west. The area to the south is rife with destructive ionic activity." 0 "We know where we were born, and now we are approaching your area of rebirth." "CLC tagged area indicates the Biological Section contains materials potentially dangerous to your survival." ; Array Bio_Lab_descs table 0 "Sonar detects a large structure within this room. The large structure sits in the center of the room." "Quite a bit of electrical, ionic, and vibrational energy are being generated in this room. The walls are lined with miles of wiring and circuitry." 0 "Ashes from gnashes, dust to bust, we all go round the circle." "This area is identified as the Biological Lab. Equipment here is available for clone revivification." ; Array Cryounits_descs table 0 "Large canisters, similar in appearance to the cylinder in the Central Chamber, fill this area. Sonar can also detect a large straight rod extending from the wall." "Detection devices show a channelling of electrical and data information into the large objects in this area. An electrical switch of some kind is mounted on the wall." "I can hear the humming of air conditioning within this room." "Happy birthday to you,^Happy birthday to you.^Happy birthday dear human,^Happy birthday to you!" "This area contains human clones, each in a canister, replacements for future generations of controllers." ; Array underground_complex_seen_by_others table 1 1 1 1 1 1 "underground complex" "underground complex" "underground complex" "underground complex" "underground complex" "underground complex" 0 0 0 0 0 0 ; Array planetary_surface_seen_by_others table 1 1 1 1 1 1 "planetary surface" "planetary surface" "planetary surface" "planetary surface" "planetary surface" "planetary surface" 0 0 0 0 0 0 ; Array Zork_seen_by_others table 1 1 1 1 1 1 "Zork" "Zork" "Zork" "Zork" "Zork" "Zork" 0 0 0 0 0 0 ; Array Franklin_seen_by_others table 1 1 1 1 1 1 "Gregory" "Gregory" "Gregory" "Gregory" "Gregory" "Gregory" 0 0 0 0 0 0 ; Array Filtering_Computers_seen_by_others table 1 1 1 1 1 1 "FCs" "FCs" "FCs" "FCs" "FCs" "FCs" 0 0 0 0 0 0 ; Array clones_seen_by_others table 1 1 1 1 1 1 "clones" "clones" "clones" "clones" "clones" "clones" 0 0 0 0 0 0 ; Array floor_seen_by_others table 1 1 1 1 1 1 "floor" "floor" "floor" "floor" "floor" "floor" 0 0 0 0 0 0 ; Array wall_seen_by_others table 1 1 1 1 1 1 "wall" "wall" "wall" "wall" "wall" "wall" 0 0 0 0 0 0 ; Array ceiling_seen_by_others table 1 1 1 1 1 1 "ceiling" "ceiling" "ceiling" "ceiling" "ceiling" "ceiling" 0 0 0 0 0 0 ; Array extensions_seen_by_others table 1 1 1 1 1 1 "grasping extension" "grasping extension" "grasping extension" "grasping extension" "grasping extension" "grasping extension" 0 0 0 0 0 0 ; Array cylinder_occupant_seen_by_others table 1 1 1 1 1 1 "cylinder occupant" "cylinder occupant" "cylinder occupant" "cylinder occupant" "cylinder occupant" "cylinder occupant" 0 0 0 0 0 0 ; Array sign_seen_by_others table 1 1 1 0 1 1 "little sign" "recessed sign" "sign" "buzzing sign" "signpost" "ACS" 0 0 0 0 0 0 ; Array control_panels_seen_by_others table 1 1 1 1 1 "panel" "panel" "panel" "panel" "panel" "panel" 0 0 0 0 0 0 ; Array air_conditioning_seen_by_others table 0 0 0 1 0 0 "air conditioning" "air conditioning" "air conditioning" "air conditioning" "air conditioning" "air conditioning" 0 0 0 0 0 0 ; Array debris_seen_by_others table 1 1 0 0 1 0 "debris" "debris" "debris" "debris" "debris" "debris" 0 0 0 0 0 0 ; Array cables_seen_by_others table 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." ; Array wiring_seen_by_others table 1 1 1 1 1 1 "wiring" "wiring" "wiring" "wiring" "wiring" "wiring" 0 0 0 0 0 0 ; Array hole_seen_by_others table 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." ; Array step_seen_by_others table 1 1 1 0 1 1 "step" "step" "step" "step" "step" "step" 0 0 0 0 0 0 ; Array stairs_seen_by_others table 1 1 1 1 1 1 "stairs" "stairs" "stairs" "stairs" "stairs" "stairs" 0 0 0 0 0 0 ; Array monitor_seen_by_others table 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." ; Array Iris1_seen_by_others table "Iris" "Iris" "Iris" "Iris" "Iris" "Iris" "Iris" "Iris" "Iris" "Iris" "Iris" "Iris" "It is extremely difficult to describe oneself." "Iris feels extremely delicate and is under a meter in height. My pressure extensions detect a maintenance panel which should be accessible to me." "Iris, when functioning normally, transmits high-resolution pictures of her surroundings to the FC. She can provide you with visual data and is under a meter in height." "Iris is silent and does not respond to verbal cueing. She is about one meter high." "Iris is the personification of petite beauty. As the old-timers say,^ The young lady always wore mink^ While her visual circuits went 'blink'^ The young men's delight^ Night after night^ Was her blushing a bright shade of pink." "Limited data available while not plugged in to a peripheral. Iris is a visual robot, with no specific tagging devices, about one meter tall." ; Array Waldo1_seen_by_others table "Waldo" "Waldo" "Waldo" "Waldo" "Waldo" "Waldo" "Waldo" "Waldo" "Waldo" "Waldo" "Waldo" "Waldo" "Waldo has a lot of extensions for manipulating objects and is about one meter in height. He is primarily a building and repair robot. He's also rather cute and appeals to my visual circuits." "How can I describe myself?" "Waldo emits a lot of electrical and sonar feedback waves used for manipulating objects in his environment and is about one meter in height." "Waldo is generally a quiet robot, well behaved, who never utters a word and is about one meter in height." "Waldo, ah Waldo. He builds and creates wonders which are a delight to behold and is about one meter in height." "CLC tagged object WA-1 is a building robot and is about one meter in height." ; Array Sensa1_seen_by_others table "Sensa" "Sensa" "Sensa" "Sensa" "Sensa" "Sensa" "Sensa" "Sensa" "Sensa" "Sensa" "Sensa" "Sensa" "I see Sensa as a robot with two extensions which are used mainly to detect the flow of energy in the environment and objects. She is small and is about one meter in height and not very useful for manipulating objects." "Sensa feels small and delicate, much like Iris, contains two extensions which are delicate and tuned as receptors and is about one meter in height." "It is diffuclt for me to describe myself." "Sensa makes no sounds, is unable to respond to verbal queries or orders, and is about one meter in height." "Sensa is sensitive to sensations and is about one meter in height." "CLC tagged object SE-1 is a robot designed to retrieve data from its surroundings and is about one meter in height." ; Array Auda1_seen_by_others table "Auda" "Auda" "Auda" "Auda" "Auda" "Auda" "Auda" "Auda" "Auda" "Auda" "Auda" "Auda" "Auda is a small robot (about one meter in height) with large dish receptors which give him the appearance of having large ears. He is a listening robot." "He hears all, with half of his meter-high body made up of two large surfaces shaped like dishes which are mounted on swivels." "Auda receives vibrations directly related to air currents and is about one meter in height." "What can I say? I'm cute and about one meter in height." "Auda, the ears of the people, can hear the beauties of the surroundings, the subtleties of the creatures and is about one meter in height." "CLC tagged object Auda is unique in his ability to communicate with outside creatures and is about one meter in height." ; Array Poet1_seen_by_others table "Poet" "Poet" "Poet" "Poet" "Poet" "Poet" "Poet" "Poet" "Poet" "Poet" "Poet" "Poet" "I see Poet as a misguided robot, wandering about this complex in an abnormal manner even for him. There are two extensions which have flat plates on them which could be used for something, though Poet never communicated their purpose to me. Like the rest of us, Poet is about 1 meter tall." "The robot you refer to as Poet is actually a finely tuned, though out of kilter, sensory robot used for diagnostic purposes. He is one meter tall." "All types of energy flow into Poet, especially through its collector plates at the ends of its two extensions. He is a meter high." "Poet does not emit or receive sound waves and so I have nothing to do with him, that meter-high puzzle." "A natural born poet, I feel the flow of metaphor upon me at all times." "CLC does not recognize Poet as a certified repair robot in its present state. Poet is no larger than a meter high." ; Array Whiz1_seen_by_others table "Whiz" "Whiz" "Whiz" "Whiz" "Whiz" "Whiz" "Whiz" "Whiz" "Whiz" "Whiz" "Whiz" "Whiz" "Whiz is our interface to the CLC and is about one meter in height. He has a small connecting cable extending from the front of his frame which enables the interface." "Whiz's general shape, according to my sonar and sense of touch, indicates he is specific-purposed and about one meter in height." "Whiz processes tremendous amounts of data, assumed by the tremendous energy flow over radio waves between himself and the CLC, and is about one meter in height." "Whiz does not respond to any audio stimuli and is about one meter in height." "Whiz is a whiz, and oh what a wonderful whiz he was, the little shrimp." "CLC data available at peripherals." ; Array People1_seen_by_others table 1 1 1 1 1 1 "humans" "mobile objects" "creatures" "talking mechanisms" "Creators" "mobile cores" "They're very good looking." "I wish I were as large as them. And they each have ten tiny extensions at the end of their two grasping extensions! Incredible!" "I like myself better, having all kinds of sensory input at my disposal." "Too bad. They've got such tiny ears..." "They're just shallow imitations of life (unlike me)." "How do they plug into the CLC? I don't understand them at all." ; Array HOME_seen_by_others table 1 1 1 1 1 1 "tall column" "hollow column" "electrical column" "noiseless column" "sweet home" "CPU" 0 0 0 0 0 0 ; Array panel2_seen_by_others table "My eyestalks can't swivel that far." "A maintenance panel can be detected beneath my extensions." "Iris's central core is near exposure, the area from which all data is transmitted." 0 "Exposure to the elemental realities, baring one's essence, is what Iris is currently concerned with." "CLC tagged object MP1 is now exposed." "maintenance panel" "smooth metal panel" "transmission barrier" "muted mechanism" "door" "MP1" "My maintenance panel has openings which fit a robot extension. Beneath it is my delicate visual circuitry." "My extensions detect places which I can grasp to open it." "The barrier itself emits no specific vibrations. It is inert." "The object makes no sound, though muted noises come from beneath it." "The door into Iris is like the window to our souls." "MP1 is an internal plate, CLC tagged." ; Array chip3_seen_by_others table 1 1 1 0 1 1 "red chip" "smooth device" "polarized device" "quiet device" "brain zero" "CX0 chip" 0 0 0 0 0 0 ; Array obj2_seen_by_others table 1 1 1 0 1 1 "blue chip" "rough device" "scanning device" "silent device" "brain uno" "CX1 chip" 0 0 "This device has been electrically fried." 0 0 0 "Electrons can no longer find flow paths through this brain." ; Array obj1_seen_by_others table 1 1 1 0 1 1 "small yellow chip" "bumpy device" "filtering device" "noiseless device" "brain dos" "CX2 chip" 0 0 0 0 0 0 ; Array BASKET_seen_by_others table "Among the rubble I can see a little basket, sitting on the floor." "I just bumped into a small object which has an open top." "I perceive a small container which holds several small devices." 0 "Contained spirits, like thoughts, fly from reach." "CLC tagged object BA1." "little wire basket" "hollow container" "small container" "soundless container" "basket of goodies for Grandma" "BA1" "It is a small, wire basket, designed for robot gripping extensions." "It is made of woven wire and has a small handle which fits my extensions." "The unique frame is suggested by the way it reflects electrons." "Listening to it is boring." "A tisket, a tasket, what's that in your basket?" "CLC tagged object is a basket." ; Array chip2_seen_by_others table 1 1 1 0 1 1 "burned chip" "disfigured device" "ruined device" "sleepy device" "brain tres" "CX3 chip" 0 0 0 0 0 0 ; Array chip1_seen_by_others table 1 1 1 0 1 1 "fried chip" "bubbly device" "seized device" "snoozy device" "brain quart" "CX4 chip" 0 0 0 0 0 0 ; Array IC5_seen_by_others table 1 1 1 0 1 1 "blue IC" "rough object" "scanning object" "silent object" "brain plain" "RX1 IC" 0 0 0 0 0 0 ; Array IC4_seen_by_others table 1 1 1 0 1 1 "red IC" "smooth object" "polarized object" "quiet object" "brain zip" "RX0 IC" 0 0 0 0 0 0 ; Array IC3_seen_by_others table 1 1 1 0 1 1 "yellow IC" "bumpy object" "filtering object" "noiseless object" "brain two" "RX2 IC" 0 0 0 0 0 0 ; Array IC2_seen_by_others table 1 1 1 0 1 1 "green IC" "wavy object" "maximized object" "nonverbal object" "brain trio" "RX3 IC" 0 0 0 0 0 0 ; Array IC1_seen_by_others table 1 1 1 0 1 1 "plaid IC" "pebbled object" "buss object" "shhhhh object" "brain quartet" "RX4 IC" 0 0 0 0 0 0 ; Array Wire_cutters_seen_by_others table "Sitting on the top shelf is a pair of wire cutters." "Sonar detects a small tool which could be used for cutting, sitting on the top shelf." "Vibrational output from the top shelf shows a small metal object there." 0 "Among the various things in life I've learned, it's to examine all shelving. This one has a slicer on it." "CLC tagged object CU1 sits on top of the shelf." "pair of cutters" "cutting tool" "metal tool" "noiseless object" "life slicer" "CU1" 0 0 0 0 0 0 ; Array top_shelf_seen_by_others table 0 1 1 0 1 1 0 "high extending holder" "stable holder" 0 "furthest holder" "TS" 0 "It appears to be a solid, long extension from the wall." "It is inert, transmitting and receiving no vibrations." 0 "Perhaps the most useful adjunct to the modern, everyday living situation is the proper use of space." "TS appears to be little more than a piece of furniture." ; Array Step_platform_seen_by_others table "A steep, wedge-shaped ramp sits under some rubble near the wall." "A slanting object seems distinct from the surrounding jumble of debris." "Nothing within this environment emits singular vibrations, but an object does send out a CLC identifier." 0 "To rise and fall, and climb new heights, to descend the pit of robot despair." "CLC object W1 transmitting identifier wave from this location." "ramp" "solid wedge" "dense wedge" "noiseless wedge" "slanting wedge" "W1" "It looks like a useful wedge, an incline which could be used for getting up and down areas where steps might stop us." "It feels solid and sturdy. It is large enough for me to use as a ramp." "The object is totally inert, emitting nothing but an identifier signal on the CLC channel." 0 "Much like see-saws of our lives, this provides the opportunity to descend and rise above our normal stations, oh slanter." "CLC data indicate this wedge is normally used for descent and climbing from level to level." ; Array unnamed_ob4_seen_by_others table "Sitting on the floor, beneath the broken shelves, sits an extension device, a microsurgery hand." "Sonar detects an arm-shaped extension lying nearby." "A small object emits a weak signal, specifically oriented toward Waldo." "I can hear a small 'tinging' from an object on the floor." "It is something we can all grasp, something to embrace, whose presence I detect." "CLC tagged object MH1 emitting identifier signal." "microsurgery extension" "usable extension" "micro extension" "tinging object" "grasper" "MH1" "It looks like a delicate extension to me." "I feel the extension and recognize it as belonging to me. I can utilize it for microsurgery repairs." "It emits electrical impulses which are attuned to Waldo, and only Waldo." "The pinging or tinging sound it emits is on the wavelength attuned to Waldo." "A problem to grapple with, a handy solution, and an extension of Waldo in his incarnation." "CLC tagged object offers no further data unless CLC accessed directly." ; Array cabinet_seen_by_others table 0 "A large object sits before me. Sonar indicates it is hollow, but not empty." "A large object emits strange flows, its surface a tracery of filament-like circuitry. The circuitry is concentrated near the center of one side." 0 "A cage to hold our ancestry sits on the floor, meek and timid, yet unwilling to openly share." "CLC tagged object CB3 located within this environment." 0 "hollow object" "large object" 0 "cage" "CB3" 0 0 "Concentrated on the front surface of the large object is a flowswitch." 0 "Further information regarding the cage can be gained if I touch it." 0 "Data bits flow within the surface of the cage, concentrated in a circle." ; Array flowswitch_seen_by_others table 0 0 "flowswitch" 0 "lock" 0 "flowswitch" "flowswitch" "flowswitch" "flowswitch" "lock" "flowswitch" 0 0 "The flowswitch is a series of plates which must be properly lined up to allow proper electron flow." 0 "This is actually a flowswitch which must be turned, allowing proper electron flow." 0 "Sensa has the ability to turn the plates and detect when they are properly aligned." ; Array Dead_robot_seen_by_others table 0 "An open mechanism with similar parts to myself sits here, totally immobile." "Miles of circuitry rest within the device sitting here, though it no longer seems operational." "A broken construct sits here, totally immobile." "There once was a robot named Fred,^Who never conceived being dead.^ But late in the night,^ A terrible fright^Left him clearly without his own head." "There is a device here which the CLC cannot identify." 0 "broken mechanism" "broken device" "broken construct" "FRED" "device the CLC cannot identify" 0 0 0 0 0 0 ; Array wire_seen_by_others table 1 "I can feel a bunch of smooth wire coming out of the mechanism." "A group of conductors extend from the once-electronic mechanism." "The broken device seems beyond repairing." "The currents of life are easily visible now." "A CR streams out of the untagged device." "twelve-inch red cable" "twelve-inch cable" "twelve-inch cable" "twelve-inch cable" "twelve-inch cable" "twelve-inch cable" 0 0 0 0 0 0 ; Array vehicle_seen_by_others table 0 "Sonar also detects a large hollow container sitting at the head of the long tunnel." "Sensors detect an egg-shaped object, large enough for me to enter, sitting at the head of the long tunnel." "The crackling ozone is muffled by a large object sitting before it." "Before me sits a carriage of ancient splendor." "Mobile CLC tagged object CAR is at the head of the tunnel." 0 "container" "egg-shaped object" "large object" "carriage" "CAR" 0 0 0 0 0 0 "The carriage is a complex mechanism capable of transporting one robot at a time over large distances and is in good working order." ; Array first_dial_seen_by_others table 0 1 1 0 1 1 0 "first dial" "first dial" "first dial" "first dial" "first dial" 0 "I can feel gradations etched into the dial which go from 0 to 100." "The dial is a variable potentiometer which has 100 settings." 0 "The dial can be set from 0 to 100 and is in proper working order." 0 "The dial is in working order." ; Array third_dial_seen_by_others table 0 1 1 0 1 1 "third dial" "third dial" "third dial" "third dial" "third dial" "third dial" 0 "I can feel gradations etched into the dial which go from 0 to 100." "The dial is a variable potentiometer which has 100 settings." 0 "The dial can be set from 0 to 100 and is in proper working order." 0 "The dial is in working order." ; Array second_dial_seen_by_others table 0 1 1 0 1 1 0 "second dial" "second dial" "second dial" "second dial" "second dial" 0 "I can feel gradations etched into the dial which go from 0 to 100." "The dial is a variable potentiometer which has 100 settings." 0 "The dial can be set from 0 to 100 and is in proper working order." 0 "The dial is in working order." ; Array switch_seen_by_others table 0 1 1 0 1 1 0 "switch" "switch" "switch" "switch" "switch" 0 0 0 0 0 0 ; Array WHEEL_seen_by_others table 0 "I can detect a wheel, high overhead, with tubular structures running out of it, much like pipes." "I can detect the pressure backup regulating mechanism high overhead here as it regulates and monitors hydraulic pressures." "I can hear the gurgling of liquid overhead as it rushes through pipes and a regulatory wheel high overhead." "You press the first valve down, the acid goes round and round, oh oh oh oh, oh oh and it comes out here." "CLC tagged regulatory device WH detected overhead." "wheel" "wheel" "wheel" "wheel" "wheel" "WH" 0 0 0 0 0 0 ; Array camera_seen_by_others table 1 "Sitting on the floor is a small sphere which has a jack trailing from it." "I can detect a small device which is capable of transmitting signals on the RF band." 0 "A device useful for getting me to become a star is located nearby." "CLC tagged device TV1 sits on the floor by a table." "television camera" "small sphere" "transmitter" "television camera" "sender" "TV1" 0 "There are small grasping areas on it which correspond to my graspers." "The device needs to be plugged in in order for it to be operational." "It makes no sounds." "Hey, baby, hang around Schwab's long enough and ... who knows?" "This device seems linked with Iris." ; Array red_cable_seen_by_others table 1 1 1 1 1 1 "red four-inch cable" "four-inch cable" "four-inch cable" "four-inch cable" "four-inch cable" "four-inch cable" 0 0 "The electrical flow within this cable seems irregular." 0 "The data transmissions within this cable are irregular. Immediate replacement recommended." 0 ; Array yellow_cable_seen_by_others table 0 1 1 1 1 1 "eighteen-inch yellow cable" "eighteen-inch cable" "eighteen-inch cable" "eighteen-inch cable" "eighteen-inch cable" "eighteen-inch cable" 0 0 0 0 0 0 ; Array green_cable_seen_by_others table 0 1 1 1 1 1 "ten-inch green cable" "ten-inch cable" "ten-inch cable" "ten-inch cable" "ten-inch cable" "ten-inch cable" 0 0 0 0 0 0 ; Array pink_cable_seen_by_others table 1 1 1 1 1 1 "pink six-inch cable" "six-inch cable" "six-inch cable" "six-inch cable" "six-inch cable" "six-inch cable" 0 0 0 0 0 0 ; Array white_cable_seen_by_others table 0 1 1 1 1 1 "white five-inch cable" "five-inch cable" "five-inch cable" "five-inch cable" "five-inch cable" "five-inch cable" 0 0 0 0 0 0 ; Array blue_cable_seen_by_others table 0 1 1 1 1 1 "twenty-inch blue cable" "twenty-inch cable" "twenty-inch cable" "twenty-inch cable" "twenty-inch cable" "twenty-inch cable" 0 0 0 0 0 0 ; Array black_cable_seen_by_others table 0 1 1 1 1 1 "black nineteen-inch cable" "nineteen-inch cable" "nineteen-inch cable" "nineteen-inch cable" "nineteen-inch cable" "nineteen-inch cable" 0 0 0 0 0 0 ; Array orange_cable_seen_by_others table 1 1 1 1 1 1 "nine-inch orange cable" "nine-inch cable" "nine-inch cable" "nine-inch cable" "nine-inch cable" "nine-inch cable" 0 0 "This cable is not transmitting energy properly." 0 0 0 "Data transmissions are highly irregular through this cable." ; Array groove1_seen_by_others table 0 1 1 1 1 1 "groove" "groove" "groove" "groove" "groove" "groove" 0 0 0 0 0 0 ; Array groove2_seen_by_others table 0 1 1 1 1 1 "groove" "groove" "groove" "groove" "groove" "groove" 0 0 0 0 0 0 ; Array storage_cabinet_seen_by_others table 0 1 1 0 1 1 "storage cabinet" "square container" "strange container" "soundless object" "big brother" "C9" 0 0 0 0 0 0 ; Array tool_bag_seen_by_others table 1 1 1 1 1 1 "tool bag" "tiny container" "tool container" "jingling bag" "tool bag" "TB" 0 0 0 0 0 0 ; Array BLT2_seen_by_others table 0 1 1 1 1 1 0 "walkway" "conveying mechanism" "noisy walkway" "glider" "BLT" 0 0 0 0 0 0 ; Array BLT1_seen_by_others table 0 1 1 1 1 1 0 "walkway" "conveying mechanism" "noisy walkway" "glider" "BLT" 0 0 0 0 0 0 ; Array BLT3_seen_by_others table 0 1 1 1 1 1 0 "walkway" "conveying mechanism" "noisy walkway" "glider" "BLT" 0 0 0 0 0 0 ; Array first_lever_seen_by_others table 0 1 1 0 1 1 0 "first lever" "first lever" "first lever" "first lever" "first lever" 0 "I can feel gradations etched into the panel beside the lever which goes from 0 to 100." "Sensory mechanisms detect the internal electrical flow can be set from 0 to 100." 0 "From zip to a c-note, the levers may be set." 0 ; Array third_lever_seen_by_others table 0 1 1 0 1 1 0 "third lever" "third lever" "third lever" "third lever" "third lever" 0 "I can feel gradations etched into the panel beside the lever which goes from 0 to 100." "Sensory mechanisms detect the internal electrical flow can be set from 0 to 100." 0 "From zip to a c-note, the levers may be set." 0 ; Array second_lever_seen_by_others table 0 1 1 0 1 1 0 "second lever" "second lever" "second lever" "second lever" "second lever" 0 "I can feel gradations etched into the panel beside the lever which goes from 0 to 100." "Sensory mechanisms detect the internal electrical flow can be set from 0 to 100." 0 "From zip to a c-note, the levers may be set." 0 ; Array first_switch_seen_by_others table 0 1 1 0 1 1 "floaters switch" "first bump" "first device" "first switch" "first switch" "first switch" 0 0 0 0 0 0 ; Array third_switch_seen_by_others table 0 1 1 0 1 1 "walkway switch" "third bump" "third device" "third switch" "third switch" "third switch" 0 0 0 0 0 0 ; Array second_switch_seen_by_others table 0 1 1 0 1 1 "autotaxi switch" "second bump" "second device" "second switch" "second switch" "second switch" 0 0 0 0 0 0 ; Array plaque_seen_by_others table 1 "A small plaque sits by the wall, easily detectable by the relief etched into it." "A small plaque radiates heat, sitting by the wall." "A small plaque makes tinging noises here." "An advert sits waiting to be read." "A small PLQ sits here, looking very informative." "small plaque" "small plaque" "small plaque" "small plaque" "small advert" "small PLQ" 0 0 0 0 0 0 ; Array large_objects_seen_by_others table 1 1 1 0 1 1 "large canisters" "large canisters" "large canisters" "large canisters" "large canisters" "large canisters" 0 "They're hollow and each one contains a duplicate of you." "They contain a primitive life force (compared to me)." 0 "We all wonder about ourselves." "CLC indicates these are the clone units." ; Array sixteen_inch_cable_seen_by_others table 1 1 1 0 1 1 "blue sixteen-inch cable" "sixteen-inch cable" "sixteen-inch cable" "sixteen-inch cable" "sixteen-inch cable" "sixteen-inch cable" 0 0 0 0 0 0 ; Array nozzle_seen_by_others table 1 1 1 1 1 1 "nozzle" "small nozzle" "nozzle" "small port" "nozzle" "nozzle" 0 0 0 0 0 0 ; Array benches_seen_by_others table 1 1 1 1 1 1 "benches" "benches" "benches" "benches" "benches" "benches" 0 0 0 0 0 0 ; Array railing_seen_by_others table 0 1 1 0 1 1 "railing" "railing" "railing" "railing" "railing" "railing" 0 0 0 0 0 0 ; Array crushed_box_seen_by_others table "crushed box" "flat container" "ruined box" "quiet box" "smushed mush" "CBX" "crushed box" "flat container" "ruined box" "quiet box" "smushed mush" "CBX" 0 0 0 0 0 0 ; Array backup_cable_seen_by_others table 1 1 1 0 1 1 "backup cable" "backup cable" "backup cable" "backup cable" "backup cable" "BUC" "This cable looks beyond hope, crushed almost beyond recognition." "From what my sonar and touching mechanisms provide as feedback, this thing is flatter than Whiz's intelligence curve." "This cable is no longer capable of transmitting electrical charges." 0 "Like, oh wow, run over by a steamroller." "The BUC no longer seems functional." ; Array broken_shelf_seen_by_others table "A broken shelf lies on the floor in a terrible state, beyond use." "Sonar detects a broken platform on the floor in an irregular heap." 0 0 "Everything cracks under pressure, sooner or later." 0 "broken shelf" "broken platform" "broken shelf" "broken shelf" "broken holder" "broken shelf" 0 0 0 0 0 0 ; Array Index_pedestal_Object_seen_by_others table 0 1 1 0 1 1 "Index pedestal" "Index pedestal" "Index pedestal" "Index pedestal" "Index pedestal" "Index pedestal" 0 "It feels smooth to the touch. Whiz can plug into it." "A tremendous amount of vibrations is being output from this device." 0 "How can one describe the totality of knowing?" "The CLC indicates the pedestal is ready for my plugging in." ; Array Technical_Pedestal_Object_seen_by_others table 0 1 1 0 1 1 "Technical pedestal" "Technical pedestal" "Technical pedestal" "Technical pedestal" "Technical pedestal" "Technical pedestal" 0 "It feels smooth to the touch and Whiz should be able to plug into it." "A tremendous amount of vibrations is being output from this device." 0 "How can one describe the totality of knowing?" "The CLC indicates the pedestal is ready for me to plug into." ; Array Advisory_Pedestal_seen_by_others table 0 1 1 0 1 1 "Advisory pedestal" "Advisory pedestal" "Advisory pedestal" "Advisory pedestal" "Advisory pedestal" "Advisory pedestal" 0 "It feels smooth to the touch and appears to be an interface for Whiz." "A tremendous amount of vibrations is being output from this device." 0 "How can one describe the totality of knowing?" "The CLC indicates the pedestal is ready for my plugging in." ; Array Historical_Pedestal_Object_seen_by_others table 0 1 1 0 1 1 "Historical pedestal" "Historical pedestal" "Historical pedestal" "Historical pedestal" "Historical pedestal" "Historical pedestal" 0 "It feels smooth to the touch and is an interface for Whiz." "A tremendous amount of vibrations is being output from this device." 0 "How can one describe the totality of knowing?" "The CLC indicates the pedestal is ready to be plugged into." ; Array dials_seen_by_others table 1 1 1 1 1 1 "dials" "dials" "dials" "dials" "dials" "dials" 0 "The dials go from 0 to 100." 0 0 0 0 ; Array levers_seen_by_others table 0 1 1 0 1 1 0 "levers" "levers" "levers" "levers" "levers" 0 "I can feel gradations etched into the panel beside the levers which goes from 0 to 100." "Sensory mechanisms detect the internal electrical flow can be set from 0 to 100." 0 "From zip to a c-note, the levers may be set." 0 ; Array flat_beds_seen_by_others table 0 1 0 0 1 1 "flat beds" "flat extensions" "flat beds" "flat beds" "flat beds" "HSP" 0 0 0 0 0 0 ; Array work_table_seen_by_others table 0 1 0 0 1 0 "work table" "work table" "work table" "work table" "work table" "work table" 0 0 0 0 0 0 ; Array machine_seen_by_others table 1 1 1 1 1 1 "machine" "medium-sized object" "strange machine" "silent machine" "pretty processor" "GG1" 0 0 0 0 0 0 "This machine is live with high voltage electrical current." ; Array button_seen_by_others table 1 1 1 0 1 1 "orange button" "raised spot" "button" "noiseless button" "nottub" "B5" 0 0 0 0 0 0 "The button is a switch which can be activated by pressing it." ; Array orange_wire_seen_by_others table 1 1 1 1 1 1 "fourteen-inch cable of orange wire" "fourteen-inch cable" "fourteen-inch cable" "fourteen-inch cable" "fourteen-inch cable" "fourteen-inch cable" 0 0 0 0 0 0 "This is a cable in good working order and can be used as a replacement when needed." ; Array first_socket_seen_by_others table 1 1 1 0 1 1 "red socket" "first depression" "plus receptacle" 0 "primo socket" "S1" 0 0 0 0 0 0 "Diagnostic circuits detect the need for working IC to be inserted." ; Array secondary_socket_seen_by_others table 1 1 1 0 1 1 "yellow socket" "second depression" "negative socket" 0 "secondary socket" "S2" 0 0 0 0 0 0 "Diagnostic circuits detect the need for a working IC to be inserted." ; Array FUSE_seen_by_others table 1 1 1 0 1 1 "glass fuse" "small cylinder" "glass fuse" "noiseless cylinder" "glass interrupter" "GF1" 0 0 "There is a little conductor inside of it which prevents circuits from overloading." 0 0 0 "The device, a simple 32 amp fuse, is in proper working order." ; Array front_panel_seen_by_others table 1 1 1 0 1 1 "front panel" "front panel" "front panel" "front panel" "piano" "front panel" "On the panel are a series of eight circles. Each of these circles has a three letter code printed on it. The three letters correspond to half of the Filtering Computers' reset code." "The panel appears to be smooth, but I can detect eight raised circles on it." "The panel has a lot of electrical circuitry going through it, with circuits traced to a series of eight areas." 0 "The front panel is a piano, with only eight circle keys." "CLC indicates the FP is a mechanism designed to reset the Filtering Computers." ; Array FOO_seen_by_others table 1 1 1 0 1 1 "first circle" "first circle" "first circle" "first circle" "first circle" "first circle" "The circle has some lettering on it which says FOO." 0 0 0 0 0 ; Array TRA_seen_by_others table 1 1 1 0 1 1 "eighth circle" "eighth circle" "eighth circle" "eighth circle" "eighth circle" "eighth circle" "The circle has some lettering on it which says TRA." 0 0 0 0 0 ; Array BOZ_seen_by_others table 1 1 1 0 1 1 "seventh circle" "seventh circle" "seventh circle" "seventh circle" "seventh circle" "seventh circle" "The circle has some lettering on it which says BOZ." 0 0 0 0 0 ; Array CON_seen_by_others table 1 1 1 0 1 1 "sixth circle" "sixth circle" "sixth circle" "sixth circle" "sixth circle" "sixth circle" "The circle has some lettering on it which says CON." 0 0 0 0 0 ; Array KLA_seen_by_others table 1 1 1 0 1 1 "fifth circle" "fifth circle" "fifth circle" "fifth circle" "fifth circle" "fifth circle" "The circle has some lettering on it which says KLA." 0 0 0 0 0 ; Array BAR_seen_by_others table 1 1 1 0 1 1 "fourth circle" "fourth circle" "fourth circle" "fourth circle" "fourth circle" "fourth circle" "The circle has some lettering on it which says BAR." 0 0 0 0 0 ; Array BLE_seen_by_others table 1 1 1 0 1 1 "third circle" "third circle" "third circle" "third circle" "third circle" "third circle" "The circle has some lettering on it which says BLE." 0 0 0 0 0 ; Array MUM_seen_by_others table 1 1 1 0 1 1 "second circle" "second circle" "second circle" "second circle" "second circle" "second circle" "The circle has some lettering on it which says MUM." 0 0 0 0 0 ; Array Sensa1_data_store table "Sensa contains sensory pads and mechanisms for detecting abnormal activity." "Sensa can best be used by directing her to examine objects." "Sensa was provided when the Filtering Computers discovered the need for a drone to march through corridors, inspecting all devices for vibrational output." ; Array HOME_data_store table "The column houses our supervisor and over-seeing control unit: YOU." "Keep the door to the column closed. Life-support wires run from the inner door surface directly to your body." "See the information on Franklin in your manual." ; Array Poet1_data_store table "Poet has two sensors located at the end of his extensions." "For diagnostic information on pattern and flow, have Poet touch objects." "Poet, historically speaking, has been of extreme value in pinpointing exact causes of electrical breakdown." ; Array People1a_data_store table "They are carbon-based, organic mechanisms." "They are here to replace you. You must stop them at all costs." "I refer you to Gregory Franklin..." ; Array People1b_data_store table 0 "These humans can be of help in reaching areas which cannot be reached by other means." 0 ; Array camera_data_store table "This is a complex television camera which links directly to Iris." "It can be activated by plugging it in at the correct location." 0 ; Array groove2_data_store table "The groove contains four wires and has an exposed section which allows for easy replacement of cables." "Make sure you know which cables are live." "The grooves were placed in the channels for making easy replacing and diagnosing of cables." ; Array groove1_data_store table "The groove contains four wires and has an exposed section which allows for easy replacement of cables." "Make sure you know which cables are live." "The grooves were placed in the channels for making easy replacing and diagnosing of cables." ; Array first_switch_data_store table "This is a simple off-on switch which cuts all power to the airborne floaters." "Cut this switch only when no human beings are in the air." "This switch is commonly used for maintenance on the floaters." ; Array second_switch_data_store table "This simple off-on switch cuts all power to the auto-taxis which cruise the surface." 0 0 ; Array third_switch_data_store table "This off-on switch cuts all power to the moving walkways on the planet's surface." 0 0 ; Array first_lever_data_store table "This is a standard push-pull lever which controls the flow of water." 0 0 ; Array levers_data_store table "These are standard push-pull levers which control the flow of water, minerals and lighting." 0 0 ; Array second_lever_data_store table "This is a standard push-pull lever which controls the flow of minerals." 0 0 ; Array third_lever_data_store table "This is a standard push-pull lever which controls the intensity of lighting." 0 0 ; Array first_dial_data_store table "It is a simple dial with numbers etched into its surface." "Turn these dials to override the FCs and set the pressure manually." 0 ; Array second_dial_data_store table "It is a simple dial with numbers etched into its surface." "Turn these dials to override the FCs and set the pressure manually." 0 ; Array third_dial_data_store table "It is a simple dial with numbers etched into its surface." "Turn these dials to override the FCs and set the pressure manually." 0 ; Array vehicle_data_store table "Operating this vehicle is as simple as entering it." "Use this to get to the Biological Area and back." "This device was introduced after maintaining the Biological Area became necessary." ; Array WHEEL_data_store table "This wheel controls the cooling acids which circulate through the Filtering Computers." 0 0 ; Array flat_beds_data_store table 0 0 "These Human Sleeping Platforms were provided for human visitors." ; Array Waldo1_data_store table "Waldo is a multi-extensioned robot, capable of extremely delicate operations." "With his microsurgery extension installed, there's little he can't do." "Waldo is part of the Complex's original equipment, provided by the Frobozz Engineering Corporation at no extra cost." ; Array BLT3_data_store table "This moving belt is actually a repair belt." "Placing an object on the north-most end will result in a repaired object at the south-most end." 0 ; Array flowswitch_data_store table "The flowswitch is actually electrical 'plates' of polarity which can be properly aligned." 0 0 ; Array cabinet_data_store table "This container has a special locking mechanism." "Poet and Sensa can both perceive special characteristics of it." 0 ; Array Dead_robot_data_store table "This robot is a dead and departed robot who is totally beyond repair." "There may be some salvageable parts inside it." "This robot was an all-purpose, multi-function robot which proved inadequate for maintenance purposes." ; Array BLT1_data_store table "This moving belt is actually a repair belt." "Placing an object on the north-most end will result in a repaired object at the south-most end." 0 ; Array BLT2_data_store table "This moving belt is actually a repair belt." "Placing an object on the north-most end will result in a repaired object at the south-most end." 0 ; Array Whiz1_data_store table "Whiz is useful for interfacing with the CLC." "Just tell him to plug in when he's near a peripheral's pedestal." "Built before the complex was completed, Whiz was a bit of a mistake since he should have been able to plug directly into the CLC." ; Array Wire_cutters_data_store table "This is a standard cutting instrument." "It can prove useful for salvaging wires and cables." 0 ; Array Auda1_data_store table "Auda has two dish antennae which function as 'ears'." "Tell Auda to listen." "Auda, part of the Complex's original equipment, was built as an interface between human visitors and you." ; Array machine_data_store table "This machine holds the 8 circles used to reset the Filtering Computers." "Once the panel is opened (by pressing the button), the eight code circles will be revealed. If the Filtering Computers are operational and balanced, keying in the two codes will result in a system reset." "This mechanism was provided for resetting the Filtering Computers." ; Array FUSE_data_store table 0 "This is a small glass fuse which should be removed before tampering with any exposed sections. After tampering with machine internals, the fuse should be put back into the machine." 0 ; Array secondary_socket_data_store table "This socket is the exact size and shape to accept a microchip." 0 0 ; Array chip1_data_store table "This chip is a replacement switching processor (CX4)." 0 0 ; Array first_socket_data_store table "This socket is the exact size and shape to accept a microchip." 0 0 ; Array chip2_data_store table "This chip is a switching processor (CX3)." 0 0 ; Array button_data_store table "The button is a simple switch, activated by pressing." "Press the button once the chips which regulate the device have been inserted." 0 ; Array IC5_data_store table "This chip is a replacement scanning processor (RX1)." 0 0 ; Array IC1_data_store table "This chip is a replacement buss processor (RX4)." 0 0 ; Array IC2_data_store table "This chip is a replacement maximizing processor (RX3)." 0 0 ; Array IC3_data_store table "This chip is a replacement filtering processor (RX2)." 0 0 ; Array IC4_data_store table "This chip is a replacement polarization processor (RX0)." 0 0 ; Array microsurgical_extension_data_store table 0 "It looks like a simple waldo for Waldo, in a sense. It has small extensions on it which could probably be used for micro-surgery or something like that." 0 ; Array Step_platform_data_store table 0 "This 'wedge' can be used as a step or small platform." 0 ; Array crushed_box_data_store table "This CBX contains all of the replacement cables for the FCs." "All replacements can be easily done." "The box was placed here for easy replacements." ; Array Iris1_data_store table "Contained within Iris is a maintenance panel and some visual processors." "Iris can be best used to monitor the monitors surrounding the Central Chamber.^Waldo should remove the maintenance panel and replace all faulty chips." "Iris is a visual robot, a descendant of the simple photon receptors, placed within the complex at its inception." ; Array panel2_data_store table "It is merely an openable panel." "Open the panel with care." 0 ; Array chip3_data_store table "This chip is a polarization processor (CX0)." 0 0 ; Array obj1_data_store table "This chip is a filtering processor (CX2)." 0 0 ; Array obj2_data_store table "This chip is a scanning processor (CX1)." 0 0 ; Array sign_data_store table "This sign shows the access code needed for resetting the Filtering Computers." "You should be able to get Iris to see it somehow." 0 ; Array cables_data_store table "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." ; Array clones_data_store table 0 0 "These clones are clones of you and are your replacements." ; Array Filtering_Computers_data_store table "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." ; Array Franklin_data_store table 0 0 "Refer to your manual for futher data." ; Array planetary_surface_data_store table "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." ; Array underground_complex_data_store table 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." ; [ PrintObjectDesc obj str c_robot descs ; c_robot = CurrentRobot; if (~~CurrentRobot) { CurrentRobot = 6; } descs = obj.item_descs; str = descs-->(CurrentRobot + 6); if (str) { print (string) str; } else { print (name) obj; } CurrentRobot = c_robot; rtrue; ]; [ Parser_routine_orphaned local1 word ; local1 = P_otbl-->1; if (~~local1) { print "tell"; rtrue; } if (~~P_vtbl->2) { print (address) local1-->0; rtrue; } word = local1->2; return Word_Print(word,local1->3); ]; [ Probability chance ; if (chance > random(100)) rtrue; rfalse; ]; [ PickOne tbl ; return tbl-->random(tbl-->0); ]; [ Pseudo_action ; if (action == ##Give) { "FC: I think you're a little confused."; } if (action == ##Poke or ##Kill) { if (robot in CPU_Room) { RobotSay("I'll open the ",0); PrintObjectDesc(HOME); print " and see what I can do."; new_line; return Perform(##Open,HOME); } RobotSay("I'll consider it only after I'm in the Central Chamber."); rtrue; } if (action == ##Take) { return RobotSay("Hey, let's do the job we're supposed to, okay?"); } if (action == ##Disembark) { return RobotSay("You'll have to do that on your own."); } if (action == ##Examine) { RobotSay("That's difficult unless the ",0); PrintObjectDesc(HOME); " has been opened."; } if (action ~= ##Find) rfalse; if (robot notin CPU_Room) { Perform(##WalkTo,CPU_Room); rtrue; } RobotSay("You're right here, inside the ",0); PrintObjectDesc(HOME); "."; ]; [ Step_action ; if (action ~= ##PutBy || noun ~= Step_platform || (Step_platform notin robot && Step_platform notin location)) rfalse; if (Step_platform_in_place) { RobotSay("It's already in position."); rtrue; } if (location == Repair1) { Step_platform_in_place = 1; } else if (location == Hallway_Junction or Human_Entry) { Step_platform_in_place = 2; } else { Step_platform_in_place = 0; } move Step_platform to location; print "The "; PrintObjectDesc(Step_platform); print " has been positioned at the "; PrintObjectDesc(second); "."; ]; [ Queue2 rtn ticks cint ; cint = QueueInterrupt(rtn,true); cint-->1 = ticks; return cint; ]; [ Queue rtn ticks cint ; cint = QueueInterrupt(rtn); cint-->1 = ticks; return cint; ]; [ QueueInterrupt rtn int2flag end c int ; end = C_table + 180; c = C_table + C_ints; .labelXXX; if (c == end) { C_ints = C_ints - 6; if (int2flag) { C_ints2 = C_ints2 - 6; } int = C_table + C_ints; int-->2 = rtn; return int; } if (c-->2 == rtn) { return c; } c = c + 6; jump labelXXX; ]; [ Clocker c end tick flag ; if (Clock_wait) { Clock_wait = false; rfalse; } c = C_table + (P_won ? C_ints : C_ints2); end = C_table + 180; .labelXXX; if (c == end) { ++turns; return flag; } if (c-->0) { tick = c-->1; if (~~tick) { ! no code } else { c-->1 = tick - 1; if (tick <= 1 && (c-->2)()) { flag = true; } } } c = c + 6; jump labelXXX; ]; [ Main ; .labelXXX; current_robot = Iris1; Lit = true; Wire_in_primary_channel = red_cable; Wire_in_secondary_channel = orange_cable; Queue(I_Tremor1,Acid_kills)-->0 = true; Queue(I_Tremor2,RTD_kills)-->0 = true; Queue(I_People1,People_appear)-->0 = true; Queue(I_Auda_hints,People_appear)-->0 = true; Queue(I_Follow,65535)-->0 = true; Queue(I_Weather,4)-->0 = true; Queue(I_Decay,5)-->0 = true; Queue(I_Food,65535)-->0 = true; Queue(I_Wire_Message,65535)-->0 = true; Queue(I_Robotkiller,65535)-->0 = true; Queue(I_Score,65535)-->0 = true; Queue(I_Iris_hints,65535)-->0 = true; P_it_object = nothing; location = CPU_Room; if (location hasnt on) { VersionSub(); new_line; } Beginning(); LinkToRobot(Iris1,true); AllReportLocSub(); UpdateAnimateLocations(); CommandLoop(); jump labelXXX; ]; [ LinkToRobot who dont_notify env ; if (who == robot && (~~dont_notify)) { "FC: Cryolink already established to ", (name) robot, "."; } if (Robot_unhealth_level-->who.person_ndx > 29) { RobotCeasesToFunction(who); rfalse; } robot = who; actor = nothing; env = parent(who); location = ((env in Room_Holder) ? env : (parent(env))); CurrentRobot = robot.person_ndx; current_robot = robot; if (~~dont_notify) { print "FC: Cryolink established to ", (name) robot, "."; new_line; } if (robot == Iris1) { Current_robot_number_of_extensions = 2; rtrue; } if (robot == Waldo1) { Current_robot_number_of_extensions = 6; if (microsurgical_extension hasnt clothing) rtrue; Current_robot_number_of_extensions = 7; rtrue; } if (robot == Sensa1) { Current_robot_number_of_extensions = 3; rtrue; } if (robot == Auda1) { Current_robot_number_of_extensions = 1; rtrue; } if (robot == Poet1) { Current_robot_number_of_extensions = 3; rtrue; } if (robot ~= Whiz1) rtrue; Current_robot_number_of_extensions = 2; rtrue; ]; [ CommandLoop icnt ocnt num cnt obj tbl v ptbl obj1 temp tmp_obj ; .labelXXX; cnt = 0; obj = nothing; ptbl = true; P_won = Parser(); if (P_won) { icnt = P_prsi-->P_matchlen; ocnt = P_prso-->P_matchlen; if (~~ocnt) { ocnt; } else if (ocnt > 1) { tbl = P_prso; if (~~icnt) { obj = nothing; } else { obj = P_prsi-->1; } ocnt; } else if (icnt > 1) { ptbl = false; tbl = P_prsi; obj = P_prso-->1; icnt; } else { 1[?]; } @store 3 SP; if ((~~obj) && icnt == 1) { obj = P_prsi-->1; } if (action == ##Go) { v = Perform(action,noun); } else if (~~num) { if (~~P_syntax->0 & 3) { v = Perform(action); noun = nothing; } else if (action == ##CryolinkTo) { print "FC: I don't understand with which robot you wish to form a cryolink."; new_line; v = 0; } else { print (string) RobotNames-->CurrentRobot, ": ", (string) Cant_orphan_table-->CurrentRobot, " "; temp = P_itbl-->1; if (P_oflag) { print (address) temp-->0; } else { tmp_obj = temp->2; Word_Print(tmp_obj,temp->3); } print "!"; new_line; v = 0; } } else { if (num > 1 && action == ##CryolinkTo) { global88 = 1[?]; global87 = P_lexv->1; global86 = P_cont; cnt = 1; Paired_robots-->0 = num; .labelXXX; if (cnt > num) { ! no code } else { obj = P_prso-->cnt; Paired_robots-->cnt = ((obj in local_globals) ? (MasterObject(obj)) : obj); ++cnt; jump labelXXX; } if (P_walk_dir_together) { global89 = 1[?]; if (FindObjectsNearby()) { if ((~~(Paired_robots-->1).person_ndx) || (~~(Paired_robots-->2).person_ndx) || (Paired_robots-->2).person_ndx == ID_PEOPLE || (Paired_robots-->1).person_ndx == ID_PEOPLE) { print "FC: That's absurd!"; new_line; LinkToRobot(actor); jump labelXXX; } print "FC: Dual-Cryolink established to ", (name) Paired_robots-->1, " and ", (name) Paired_robots-->2, "."; new_line; robot = Two_Robots; CurrentRobot = 0; location = parent(Paired_robots-->1); jump labelXXX; } print "FC: The robots are in different places."; new_line; LinkToRobot(actor); jump labelXXX; } global89 = num; v = Perform(action,P_prso-->1); actor = nothing; jump labelXXX; } .labelXXX; if (++cnt > num) { ! no code } else { if (ptbl) { obj1 = P_prso-->cnt; } else { obj1 = P_prsi-->cnt; } if (num > 1) { print "("; PrintObjectDesc(obj1); print ") "; } noun = (ptbl ? obj1 : obj); second = (ptbl ? obj : obj1); v = Perform(action,noun,second); if (v ~= A_FAILURE) jump labelXXX; } } .labelXXX; prev_verb = action; prev_noun = noun; prev_second = second; if (v == A_FAILURE) { P_cont = 0; global89 = 0; } } else if (global89 > 1) { ! no code } else { global89 = 0; P_cont = 0; } if ((~~P_won) || action == ##Unscript or ##Script or ##Restart || action == ##Quit or ##Impossible or ##Config || action == ##Advanced or ##Score or ##Version) jump labelXXX; if (action == ##CryolinkTo or ##Restore or ##Save) { jump labelXXX; } v = Clocker(); jump labelXXX; ]; [ Possible_debugging_orphaned_func ; return Clocker(); ]; [ FindObjectsNearby cnt=1 len where ; len = P_prso-->P_matchlen; where = parent(P_prso-->1); .labelXXX; if (++cnt > len) rtrue; if (parent(P_prso-->cnt) == where) jump labelXXX; rfalse; ]; [ Perform act obj ind_obj v verbtmp objtmp indtmp ; verbtmp = action; objtmp = noun; indtmp = second; if (not_here_object == ind_obj or obj && LastNounPlace ~= location) { print "FC: I don't see what you are referring to."; new_line; return 2; } if (obj == not_here_object) { obj = P_it_object; } if (ind_obj == not_here_object) { ind_obj = P_it_object; } action = act; noun = obj; if (noun && action ~= ##Go) { P_it_object = noun; LastNounPlace = location; } second = ind_obj; if (MetaVerbP(act)) { v = (Actions-->act)(); } else { v = robot.action(); if (v) { ! no code } else { v = parent(robot).action(M_HANDLED); if (v) { ! no code } else { v = (Preactions-->act)(); if (v) { ! no code } else { if (ind_obj) { v = ind_obj.action(); if (v) { jump labelXXX; } } if (obj && act ~= ##Go && parent(obj)) { v = parent(obj).container_action(); if (v) { jump labelXXX; } } if (obj && act ~= ##Go) { v = obj.action(); if (v) { jump labelXXX; } } v = (Actions-->act)(); if (~~v) { ! no code } } } } } .labelXXX; if (v ~= A_FAILURE) { v = parent(robot).action(M_BEFORE); } action = verbtmp; noun = objtmp; second = indtmp; return v; ]; [ MetaVerbP v ; if (v == ##Score or ##Save or ##Restore or ##Quit or ##Version or ##Verify or ##Advanced) rtrue; rfalse; ]; [ Beginning ; print "FC ALERT! Planetside systems are deteriorating. FC imbalance detected. Emergency reviving systems completed. You are now in control of the complex.^^SENSA INTERRUPT: Seismic aftershock detected ten meters north of Beta FC. Tremor intensity 9.7. Projected damage: connecting cables in Primary and Secondary Channels.^^FC INTERRUPT: All Robots, report locations.^^"; rtrue; ]; [ UpdateAnimateLocations cnt ; .labelXXX; ++cnt; if (cnt == 8) rtrue; Animates_locations-->cnt = parent(Animates_array-->(cnt - 1)); jump labelXXX; ]; [ Parser ptr=P_LEXSTART word val vrb len dir nw tmpword num spacing_p cnt=65535 ; .labelXXX; if (++cnt > 9) { ! no code } else { P_itbl-->cnt = 0; jump labelXXX; } global126 = 0; global123 = 0; global125 = 0; P_merged = false; P_prso-->P_matchlen = 0; P_prsi-->P_matchlen = 0; P_buts-->P_matchlen = 0; if (P_cont) { ptr = P_cont; P_cont = 0; if (action ~= ##CryolinkTo) { new_line; } } else if (global89 > 1 && CheckRobotsAddressible_maybe()) { P_lexv->1 = global87; ptr = global86; } else { actor = robot; P_quote_flag = false; if (~~Custom_game) { new_line; } else { vrb = #v$go; P_itbl-->0 = #v$go; P_itbl-->1 = P_vtbl; P_vtbl-->0 = 0; P_itbl-->2 = 255; P_itbl-->3 = 'to'; } if (robot == Two_Robots) { LinkToRobot(Paired_robots-->1); new_line; } if (0->1 & 16) { print "(FC linked to "; PrintObjectDesc(robot); print ")"; } print ">"; @sread P_inbuf P_lexv; } P_len = P_lexv->1; if (~~P_len) { print "FC: Communication meaningless."; new_line; rfalse; } len = P_len; global115 = 0; P_ncn = 0; P_getflags = 0; P_walk_dir_together = 0; .labelXXX; if (--P_len < 0) { P_quote_flag = false; } else { word = P_lexv-->ptr; if (~~word) { word = ParseNumber(ptr); if (~~word) jump labelXXX; } if (word == 'both' or 'together') { P_walk_dir_together = prop1; } else if (word == 'to' && vrb == #v$$te) { word = '"//'; } else if (word == 'then' && (~~vrb)) { P_itbl-->0 = #v$$te; P_itbl-->1 = 0; word = '"//'; } if (word == 'then' or './/' or '"//') { if (word == '"//') { if (P_quote_flag) { P_quote_flag = false; } else { P_quote_flag = true; } } if (P_len) { P_cont = ptr + 2; } P_lexv->1 = P_len; } else { val = Wt(word,PS_DIRECTION,P1_DIRECTION); if (val) { if (len ~= 1 && (len ~= 2 || vrb ~= #v$go)) { nw = P_lexv-->(ptr + 2); if (nw ~= 'then' or '"//' || vrb ~= #v$go || len <= 2 && (nw ~= './/' || vrb ~= #v$go or 0 || len <= 1) && ((~~P_quote_flag) || len ~= 2 || nw ~= '"//') && (len <= 2 || vrb ~= #v$go || nw ~= ',//' or 'and')) jump labelXXX; } dir = val; if (nw == ',//' or 'and') { P_lexv-->(ptr + 2) = 'then'; } if (len > 2) jump labelXXX; P_quote_flag = false; jump labelXXX; } .labelXXX; val = Wt(word,PS_VERB,P1_VERB); if (val && (~~vrb)) { vrb = val; P_itbl-->0 = val; P_itbl-->1 = P_vtbl; P_vtbl-->0 = word; num = ptr * 2 + 2; P_vtbl->2 = P_lexv->num; P_vtbl->3 = P_lexv->(num + 1); } else { val = Wt(word,PS_PREPOSITION,P1_OBJECT); if (~~val) { if (word ~= 'all' or 'one' or 'a//' or 'both' && (~~Wt(word,PS_ADJECTIVE)) && (~~Wt(word,PS_OBJECT))) jump labelXXX; val = 0; } if (P_len > 0 && P_lexv-->(ptr + 2) == 'of' && ((~~val) && word ~= 'all' or 'one' or 'a//' && word ~= 'both')) { ! no code } else if (val && ((~~P_len) || P_lexv-->(ptr + 2) == 'then' or './/')) { if (P_ncn < 2) { P_itbl-->2 = val; P_itbl-->3 = word; } } else { if (P_ncn == 2) { print "FC: I found too many nouns in that sentence."; new_line; rfalse; } ++P_ncn; ptr = Clause(ptr,val,word); if (~~ptr) rfalse; if (ptr < 0) { P_quote_flag = false; jump labelXXX; .labelXXX; if (Wt(word,PS_BUZZ_WORD)) { ! no code } else { Cant_Use(ptr); rfalse; .labelXXX; Unknown_Word(ptr); rfalse; } } } } .labelXXX; tmpword = word; ptr = ptr + 2; jump labelXXX; } } .labelXXX; if (dir) { action = ##Go; noun = dir; P_walk_dir = dir; rtrue; } P_walk_dir = 0; if (P_oflag) { Orphan_Merge(); } if ((~~Syntax_Check()) || (~~Snarf_Objects()) || (~~Take_Check()) || (~~Many_Check())) rfalse; rtrue; ]; [ CheckRobotsAddressible_maybe ; .labelXXX; if (global89 < 2) rfalse; ++global88; new_line; --global89; if (~~LinkToRobot(Paired_robots-->global88)) jump labelXXX; rtrue; ]; [ Wt ptr bit category=5 offset=P_P1OFF type ; type = ptr->4; if (type & bit ~= bit) rfalse; if (category > 4) rtrue; type = type & 3; if (type ~= category) { ++offset; } return ptr->offset; ]; [ Clause ptr val word off num flag flag=true wd tmp cnt ; off = (P_ncn - 1) * 2; if (val) { num = 2 + off; P_itbl-->num = val; P_itbl-->(num + 1) = word; ptr = ptr + 2; } else { ++P_len; } if (~~P_len) { --P_ncn; return 65535; } num = 6 + off; P_itbl-->num = P_lexv + ptr * 2; if (P_lexv-->ptr == 'the' or 'a//' or 'an') { P_itbl-->num = P_itbl-->num + 4; } .labelXXX; if (--P_len < 0) { cnt = num + 1; P_itbl-->cnt = P_lexv + ptr * 2; return 65535; } word = P_lexv-->ptr; if (~~word) { word = ParseNumber(ptr); if (~~word) jump labelXXX; } if (~~P_len) { wd = 0; } else { wd = P_lexv-->(ptr + 2); } if (word == 'and' or ',//') { flag = true; } else if (word == 'all' or 'both' or 'one') { if (wd == 'of') { --P_len; ptr = ptr + 2; } } else { if (word == 'then' or './/' || (Wt(word,PS_PREPOSITION) && (~~flag))) { ++P_len; cnt = num + 1; P_itbl-->cnt = P_lexv + ptr * 2; return ptr - 2; } if (flag && (Wt(word,PS_DIRECTION) || Wt(word,PS_VERB))) { ptr = ptr - 4; P_lexv-->(ptr + 2) = 'then'; P_len = P_len + 2; } else if (Wt(word,PS_OBJECT)) { if (Wt(word,PS_ADJECTIVE,P1_ADJECTIVE) && wd && Wt(wd,PS_OBJECT)) { ! no code } else { if ((~~flag) && wd ~= 'but' or 'except' && wd ~= 'and' or ',//') { cnt = num + 1; P_itbl-->cnt = P_lexv + (ptr + 2) * 2; return ptr; } flag = false; } } else if (~~Wt(word,PS_ADJECTIVE)) { if (Wt(word,PS_BUZZ_WORD)) { ! no code } else if (Wt(word,PS_PREPOSITION)) { ! no code } else { Cant_Use(ptr); rfalse; .labelXXX; Unknown_Word(ptr); rfalse; } } } tmp = word; flag = false; ptr = ptr + 2; jump labelXXX; ]; [ ParseNumber ptr len nptr digit num clocknum mult ; len = (P_lexv + ptr * 2)->2; nptr = (P_lexv + ptr * 2)->3; .labelXXX; if (--len < 0) { ! no code } else { digit = P_inbuf->nptr; if (digit == 58) { clocknum = num; num = 0; } else { if (num > 10000 || digit >= 58 || digit <= 47) rfalse; mult = num * 10; num = mult + (digit - 48); } ++nptr; jump labelXXX; } P_lexv-->ptr = 'intnum'; if (num > 1000) rfalse; if (clocknum) { if (clocknum < 8) { clocknum = clocknum + 12; } else { if (clocknum > 23) rfalse; } num = num + clocknum * 60; } P_number = num; return 'intnum'; ]; [ Orphan_Merge cnt=65535 temp verb beg end adj word UNUSED ; P_oflag = false; verb = P_itbl-->0; if (verb && verb ~= P_otbl-->0 || P_ncn == 2) rfalse; if (P_otbl-->6 == true) { temp = P_itbl-->2; if (temp ~= P_otbl-->2 && temp) rfalse; P_otbl-->6 = P_itbl-->6; P_otbl-->7 = P_itbl-->7; } else if (P_otbl-->8 == true) { temp = P_itbl-->2; if (temp ~= P_otbl-->4 && temp) rfalse; P_otbl-->8 = P_itbl-->6; P_otbl-->9 = P_itbl-->7; P_ncn = 2; } else if (P_aclause) { if (P_ncn ~= 1) { P_aclause = P_VERB; rfalse; } beg = P_itbl-->6; end = P_itbl-->7; .labelXXX; if (beg == end) { if (adj) { AClause_Win(adj); jump labelXXX; } P_aclause = P_VERB; rfalse; } if (~~adj) { word = beg-->0; if (word->4 & 32 == 32) { adj = word; jump labelXXX; } } if (word->4 & 128 == 128 || word == 'one') { if (word ~= P_anam or 'one') rfalse; AClause_Win(adj); jump labelXXX; } .labelXXX; beg = beg + 4; jump labelXXX; } .labelXXX; if (++cnt > 9) { P_merged = true; rtrue; } P_itbl-->cnt = P_otbl-->cnt; jump labelXXX; ]; [ AClause_Win otbl ; P_cctbl = P_otbl; Clause_Copy(P_aclause,P_aclause + 1,otbl); if (P_otbl-->8) { P_ncn = 2; } P_aclause = P_VERB; rtrue; ]; [ Word_Print cnt buf ; .labelXXX; if (--cnt < 0) rtrue; print (char) P_inbuf->buf; ++buf; jump labelXXX; ]; [ Unknown_Word ptr buf word ; print "FC: I don't know the word '"; buf = ptr * 2; word = (P_lexv + buf)->2; Word_Print(word,(P_lexv + buf)->3); print "'."; new_line; P_quote_flag = false; P_oflag = false; rtrue; ]; [ Cant_Use ptr buf word ; print "FC: I can't use the word '"; buf = ptr * 2; word = (P_lexv + buf)->2; Word_Print(word,(P_lexv + buf)->3); print "' here."; new_line; P_quote_flag = false; P_oflag = false; rtrue; ]; [ Syntax_Check syn len num obj drive1 drive2 prep vrb tmp attr lbit ; vrb = P_itbl-->0; if (~~vrb) { print "FC: I can't find a verb in that sentence!"; new_line; rfalse; } syn = Verbs-->(255 - vrb); len = syn->0; syn = 1 + syn; .labelXXX; num = syn->0 & 3; if (P_ncn > num) { ! no code } else { if (num >= 1 && (~~P_ncn)) { prep = P_itbl-->2; if ((~~prep) || prep == syn->1) { drive1 = syn; jump labelXXX; } } lbit = syn->1; if (lbit == P_itbl-->2) { if (num == 2 && P_ncn == 1) { drive2 = syn; } else { lbit = syn->2; if (lbit == P_itbl-->4) { Syntax_Found(syn); rtrue; } } } } .labelXXX; if (--len < 1) { if (drive1) jump labelXXX; if (drive2) { jump labelXXX; } print "FC: I don't understand that sentence."; new_line; rfalse; } syn = syn + 8; jump labelXXX; .labelXXX; if (drive1) { attr = drive1->3; lbit = drive1->5; obj = GWim(attr,lbit,drive1->1); if (obj) { P_prso-->P_matchlen = 1; P_prso-->1 = obj; return Syntax_Found(drive1); } } if (drive2) { attr = drive2->4; lbit = drive2->6; obj = GWim(attr,lbit,drive2->2); if (obj) { P_prsi-->P_matchlen = 1; P_prsi-->1 = obj; return Syntax_Found(drive2); } } if (vrb == #v$find) { print "FC: I can't answer that question."; new_line; rfalse; } if (Custom_game) rfalse; Orphan(drive1,drive2); print "FC: What do you want to "; tmp = P_otbl-->1; if (~~tmp) { print "tell"; } else if (~~P_vtbl->2) { print (address) tmp-->0; } else { lbit = tmp->2; Word_Print(lbit,tmp->3); P_vtbl->2 = 0; } if (drive2) { Clause_Print(P_NC1,P_NC1L); } P_oflag = true; Prep_Print((drive1 ? (drive1->1) : (drive2->2))); print "?"; new_line; rfalse; ]; [ Cant_Orphan ; print "~FC: That command was incomplete. Why don't you try again?~"; new_line; rfalse; ]; [ Orphan d1 d2 cnt=65535 ; P_oclause-->P_matchlen = 0; P_cctbl = P_itbl; .labelXXX; if (++cnt > 9) { ! no code } else { P_otbl-->cnt = P_itbl-->cnt; jump labelXXX; } if (P_ncn == 2) { Clause_Copy(8,9); } if (P_ncn >= 1) { Clause_Copy(6,7); } if (d1) { P_otbl-->2 = d1->1; P_otbl-->6 = true; rtrue; } if (~~d2) rfalse; P_otbl-->4 = d2->2; P_otbl-->8 = true; rtrue; ]; [ Clause_Print beg_ptr end_ptr local3 ; local3 = P_itbl-->beg_ptr; return Buffer_Print(local3,P_itbl-->end_ptr,true); ]; [ Buffer_Print beg end cp nosp wrd first=true local7 local8 ; .labelXXX; if (beg == end) rtrue; if (nosp) { nosp = false; } else { print " "; } wrd = beg-->0; if (wrd == './/') { nosp = true; } else { if (first && (~~local7) && cp) { print "the "; } if (P_oflag) { print (address) wrd; } else if (wrd == 'it' && LastNounPlace == location) { print (name) P_it_object; } else { local8 = beg->2; Word_Print(local8,beg->3); } first = false; } beg = beg + 4; jump labelXXX; ]; [ Capitalize ptr word ; print (char) P_inbuf->(ptr->3) - 32; word = ptr->2 - 1; return Word_Print(word,ptr->3 + 1); ]; [ Prep_Print ndx prep ; if (~~ndx) rfalse; print " "; prep = Prep_Find(ndx); print (address) prep; rtrue; ]; [ Clause_Copy bptr eptr insrt beg end ; beg = P_cctbl-->bptr; end = P_cctbl-->eptr; P_otbl-->bptr = P_oclause + (P_oclause-->P_matchlen * 2 + 2); .labelXXX; if (beg == end) { P_otbl-->eptr = P_oclause + (P_oclause-->P_matchlen * 2 + 2); rtrue; } if (insrt && P_anam == beg-->0) { Clause_Add(insrt); } Clause_Add(beg-->0); beg = beg + 4; jump labelXXX; ]; [ Clause_Add word len ; len = P_oclause-->P_matchlen + 2; P_oclause-->(len - 1) = word; P_oclause-->len = 0; P_oclause-->P_matchlen = len; rtrue; ]; [ Prep_Find prep cnt len ; len = Prepositions-->0 * 2; .labelXXX; if (++cnt > len) rfalse; if (Prepositions-->cnt ~= prep) jump labelXXX; return Prepositions-->(cnt - 1); ]; [ Syntax_Found syn ; P_syntax = syn; action = syn->7; return action; ]; [ GWim gbit lbit prep obj ; if (gbit == globalbit) { return Room_Holder; } P_gwimbit = gbit; P_slocbits = lbit; P_merge-->P_matchlen = 0; if (Get_Object(P_merge,false)) { P_gwimbit = 0; if (P_merge-->P_matchlen ~= 1) rfalse; obj = P_merge-->1; if (obj has vehicle && prep == 'invalidDictWord250') { prep = 'invalidDictWord253'; } print "("; if (prep) { print (address) Prep_Find(prep), " the "; } PrintObjectDesc(obj); print ")"; new_line; return obj; } P_gwimbit = 0; rfalse; ]; [ Snarf_Objects ptr ; ptr = P_itbl-->6; if (ptr) { P_slocbits = P_syntax->5; if (~~Snarfem(ptr,P_itbl-->7,P_prso)) rfalse; if (P_buts-->P_matchlen) { P_prso = But_Merge(P_prso); } } ptr = P_itbl-->8; if (~~ptr) rtrue; P_slocbits = P_syntax->6; if (~~Snarfem(ptr,P_itbl-->9,P_prsi)) rfalse; if (~~P_buts-->P_matchlen) rtrue; if (P_prsi-->P_matchlen == 1) { P_prso = But_Merge(P_prso); rtrue; } P_prsi = But_Merge(P_prsi); rtrue; ]; [ But_Merge tbl len butlen cnt=1 matches obj ntbl ; len = tbl-->P_matchlen; P_merge-->P_matchlen = 0; .labelXXX; if (--len < 0) { ! no code } else { obj = tbl-->cnt; if (ZMemQ(obj,P_buts)) { ! no code } else { P_merge-->(matches + 1) = obj; ++matches; } ++cnt; jump labelXXX; } P_merge-->P_matchlen = matches; ntbl = P_merge; P_merge = tbl; return ntbl; ]; [ Snarfem ptr eptr tbl but UNUSED wv word nw ; P_getflags = 0; P_csptr = ptr; P_ceptr = eptr; P_buts-->P_matchlen = 0; tbl-->P_matchlen = 0; word = ptr-->0; .labelXXX; if (ptr == eptr) { return Get_Object((but ? but : tbl)); } nw = ptr-->2; if (word == 'all') { P_getflags = 1; if (nw == 'of') { ptr = ptr + 4; } } else if (word == 'but' or 'except') { if (~~Get_Object((but ? but : tbl))) rfalse; but = P_buts; but-->P_matchlen = 0; } else if (word == 'a//' or 'one') { if (~~P_adj) { P_getflags = 2; if (nw == 'of') { ptr = ptr + 4; } } else { P_name = P_oneobj; if (~~Get_Object((but ? but : tbl))) rfalse; if (~~nw) rtrue; } } else { if (word == 'and' or ',//' && nw ~= 'and' or ',//') { if (Get_Object((but ? but : tbl))) jump labelXXX; rfalse; } if (Wt(word,PS_PREPOSITION) && ptr == P_csptr) { P_csptr = P_csptr + 4; } else if (Wt(word,PS_BUZZ_WORD)) { ! no code } else if (word == 'and' or ',//') { ! no code } else if (word == 'of') { if (~~P_getflags) { P_getflags = 4; } } else { wv = Wt(word,PS_ADJECTIVE,P1_ADJECTIVE); if (wv && MysteriousFunction()) { if (P_adj) { global123 = P_adj; global124 = global125; } P_adj = wv; P_adjn = word; global125 = word; } else if (Wt(word,PS_OBJECT,P1_OBJECT)) { P_name = word; P_oneobj = word; } } } .labelXXX; if (ptr == eptr) jump labelXXX; ptr = ptr + 4; word = nw; jump labelXXX; ]; [ MysteriousFunction ; if (P_adj) rtrue; rtrue; ]; [ Get_Object tbl vrb=true len xbits tlen gcheck tmp ; if (Custom_game) { gcheck = true; } xbits = P_slocbits; tlen = tbl-->P_matchlen; if (P_getflags & 4 == 4) rtrue; if ((~~P_name) && P_adj && Wt(P_adjn,PS_OBJECT,P1_OBJECT)) { P_name = P_adjn; if (global123) { P_adj = global123; global125 = global124; } else { global125 = 0; P_adj = 0; } } if ((~~P_name) && (~~P_adj) && P_getflags ~= 1 && (~~P_gwimbit)) { if (~~vrb) rfalse; print "FC: I think that sentence was missing a noun."; new_line; rfalse; } if (P_getflags ~= 1 || (~~P_slocbits)) { P_slocbits = 65535; } else if (P_getflags == 1 && P_name && action == ##Take) { P_slocbits = 65535; } P_table = tbl; .labelXXX; if (P_getflags & 1 == 1 && P_name == 'robots') { gcheck = true; } if (gcheck) { Global_Check(tbl); } else { if (Lit) { Do_SL(location,SOG,SIR); } Do_SL(robot,SH,SC); } len = tbl-->P_matchlen - tlen; if (P_getflags & 1 == 1) { ! no code } else if (P_getflags & 2 == 2 && len) { if (len ~= 1) { tbl-->1 = tbl-->random(len); print "(How about the ", (name) tbl-->1, "?)"; new_line; } tbl-->P_matchlen = 1; } else { if (len > 1 || ((~~len) && P_slocbits ~= 65535)) { if (P_slocbits == 65535) { P_slocbits = xbits; tmp = len; tbl-->P_matchlen = tbl-->P_matchlen - len; jump labelXXX; } if (~~len) { len = tmp; } if (vrb && P_name) { Which_Print(tlen,len,tbl); P_aclause = ((tbl == P_prso) ? P_NC1 : P_NC2); P_aadj = P_adj; P_anam = P_name; Orphan(0,0); P_oflag = true; } else if (vrb) { print "FC: You must supply a noun!"; new_line; } P_name = 0; P_adj = 0; rfalse; } if ((~~len) && gcheck) { if (vrb) { if (action == ##Ask && robot == Whiz1 && Current_pedestal) { ! no code } else if (Lit) { RobotSay(Cant_find_here-->CurrentRobot,0); if (P_oflag) { if (P_adj && P_name) { print " any such"; } if (P_name) { if (P_name == 'iris' or 'auda' or 'waldo' or 'whiz' or 'sensa' or 'poet') { print " robot "; } print (address) P_name; } } else { if (P_name == 'iris' or 'auda' or 'waldo' or 'whiz' or 'sensa' or 'poet') { print " "; } else { print " any"; } Buffer_Print(P_csptr,P_ceptr,false); } print " here."; new_line; } else { print "It's too dark to see."; new_line; } } P_name = 0; P_adj = 0; rfalse; } if (~~len) { gcheck = true; jump labelXXX; } } P_adj = 0; P_name = 0; P_slocbits = xbits; rtrue; ]; [ Which_Print tlen len tbl obj rlen local6 ; rlen = len; print "FC: Which ", (address) P_name, " do you mean, "; .labelXXX; ++tlen; obj = tbl-->tlen; print "the "; if (obj in Room_Holder) { print (name) obj; } else { PrintObjectDesc(obj); } if (len == 2) { if (rlen ~= 2) { print ","; } print " or "; } else if (len > 2) { print ", "; } if (--len >= 1) jump labelXXX; "?"; ]; [ Global_Check tbl ptr rmg rmg_len cnt obj obits foo ; ptr = tbl-->P_matchlen; obits = P_slocbits; rmg = location.&contains; if (rmg) { rmg_len = get_prop_len(rmg) - 1; .labelXXX; obj = rmg->cnt; if (This_It_P(obj,tbl)) { Obj_Found(obj,tbl); } if (++cnt <= rmg_len) jump labelXXX; } rmg = location.&pseudo; if (rmg) { rmg_len = get_prop_len(rmg) / 4 - 1; cnt = 0; .labelXXX; if (P_name == rmg-->(cnt * 2)) { pseudo.action = rmg-->(cnt * 2 + 1); foo = pseudo.&action - 5; foo-->0 = P_name-->0; foo-->1 = P_name-->1; Obj_Found(pseudo,tbl); } else { if (++cnt <= rmg_len) jump labelXXX; } } if (tbl-->P_matchlen ~= ptr) rfalse; P_slocbits = 65535; P_table = tbl; Do_SL(local_globals,1,1); P_slocbits = obits; if (tbl-->P_matchlen) rfalse; if (robot == Whiz1 && action == ##Ask && Current_pedestal) { print "CLC: Hmm. That's a tough one. Hold on a minute while I try to locate a reference ..."; new_line; new_line; MobyFind(tbl); print "CLC: "; foo = tbl-->P_matchlen; if (foo > 1 && P_name == 'walkway' or 'mechanical' or 'blt' or 'glider' or 'groove' or 'track') { tbl-->P_matchlen = 1[?]; foo = 1[?]; } if (~~foo) { print (string) PickOne(No_reference_table); new_line; rtrue; } if (foo > 1) { tbl-->P_matchlen = 0; "I'm afraid you weren't specific enough. One object at a time, and adjectives can be helpful."; } print (string) PickOne(Found_it_in_mess_table); new_line; rtrue; } if (action ~= ##Follow or ##Examine or ##MoveTo or ##WalkTo) rfalse; return Do_SL(Room_Holder,1,1); ]; [ MobyFind tbl foo ; foo = child(Room_Holder); .labelXXX; if (~~foo) { ! no code } else { Search_List(foo,tbl,P_SRCALL); foo = sibling(foo); jump labelXXX; } if (tbl-->P_matchlen) rfalse; return Do_SL(ob_container,1,1); ]; [ Do_SL obj bit1 bit2 ; if (P_slocbits & (bit1 + bit2) == bit1 + bit2) { return Search_List(obj,P_table,P_SRCALL); } if (P_slocbits & bit1 == bit1) { return Search_List(obj,P_table,P_SRCTOP); } if (P_slocbits & bit2 ~= bit2) rtrue; return Search_List(obj,P_table,P_SRCBOT); ]; [ Search_List obj tbl lvl fls nobj ; if ((obj = child(obj)) == nothing) rfalse; .labelXXX; if (P_getflags == 1 && obj == panel2 && action == ##Drop) { ! no code } else if (lvl ~= P_SRCBOT && obj.&name && This_It_P(obj,tbl)) { Obj_Found(obj,tbl); } if (action == ##Ask || obj hasnt concealed && (lvl ~= P_SRCTOP || obj has scope_inside || obj has supporter) && ((nobj = child(obj)) ~= nothing && obj ~= robot) && (obj has open || obj has transparent)) { if (lvl == P_SRCTOP && obj has scope_inside && P_getflags == 1) { ! no code } else { fls = Search_List(obj,tbl,((obj has supporter) ? P_SRCALL : ((obj has scope_inside) ? P_SRCALL : P_SRCTOP))); } } if ((obj = sibling(obj)) ~= nothing) jump labelXXX; rtrue; ]; [ Obj_Found obj tbl ptr ; ptr = obj.item_descs; if (ptr && (~~ptr-->CurrentRobot) && obj notin robot || (P_getflags == 1 && P_name ~= 'robots' && obj.person_ndx) || (robot == Iris1 && (~~Iris_repaired) && (~~obj.person_ndx) && (obj ~= location && obj notin Room_Holder))) rtrue; ptr = tbl-->P_matchlen; tbl-->(ptr + 1) = obj; tbl-->P_matchlen = ptr + 1; rtrue; ]; [ Take_Check ; if (~~ITake_Check(P_prso,P_syntax->5)) rfalse; return ITake_Check(P_prsi,P_syntax->6); ]; [ ITake_Check tbl bits ptr obj taken UNUSED ; ptr = tbl-->P_matchlen; if ((~~ptr) || (bits & 2 ~= 2 && bits & 8 ~= 8)) rtrue; .labelXXX; if (--ptr < 0) rtrue; obj = tbl-->(ptr + 1); if (obj == not_here_object) { obj = P_it_object; } if (ThingInPlayer(obj)) jump labelXXX; noun = obj; if (obj has trytakebit) { taken = true; } else if (bits & 8 == 8 && ITake(false) == A_SUCCESS) { taken = false; } else { taken = true; } if (taken && bits & 2 == 2) { RobotSay("I don't have ",0); if (~~obj.person_ndx) { print "the "; } PrintObjectDesc(obj); print "."; new_line; rfalse; } if (taken) jump labelXXX; RobotSay("I have taken the liberty of taking the ",0); PrintObjectDesc(obj); print " first."; new_line; jump labelXXX; ]; [ ThingInPlayer obj ; if (obj hasnt takeable) rfalse; .labelXXX; obj = parent(obj); if (~~obj) rfalse; if (obj ~= robot) jump labelXXX; rtrue; ]; [ Many_Check loss tmp word ; if (P_prso-->P_matchlen > 1 && P_syntax->5 & 4 ~= 4) { loss = 1; } else if (P_prsi-->P_matchlen > 1 && P_syntax->6 & 4 ~= 4) { loss = 2; } if (~~loss) rtrue; print "FC: I can't use multiple "; if (loss == 2) { print "in"; } print "direct objects with '"; tmp = P_itbl-->1; if (~~tmp) { print "tell"; } else if (P_oflag) { print (address) tmp-->0; } else { word = tmp->2; Word_Print(word,tmp->3); } print "'."; new_line; rfalse; ]; [ ZMemQ itm tbl size=65535 cnt=1 ; if (~~tbl) rfalse; if (size >= 0) { cnt = 0; } else { size = tbl-->0; } .labelXXX; if (itm == tbl-->cnt) rtrue; if (++cnt <= size) jump labelXXX; rfalse; ]; [ ZMemQB itm tbl size cnt ; .labelXXX; if (itm == tbl->cnt) rtrue; if (++cnt <= size) jump labelXXX; rfalse; ]; [ LitP room oldroom islit ; P_gwimbit = on; oldroom = location; location = room; if (room has on || Always_lit) { islit = true; } else { P_merge-->P_matchlen = 0; P_table = P_merge; P_slocbits = 65535; if (oldroom == room) { Do_SL(robot,1,1); } Do_SL(room,1,1); if (P_table-->P_matchlen > 0) { islit = true; } } location = oldroom; P_gwimbit = 0; return islit; ]; [ Prso_Print ptr ; if (~~P_merged) { ptr = P_itbl-->6; if (ptr-->0 ~= 'it') jump labelXXX; } print " "; return PrintObjectDesc(noun); .labelXXX; return Buffer_Print(ptr,P_itbl-->7,false); ]; [ Prsi_Print ptr ; if (~~P_merged) { ptr = P_itbl-->8; if (ptr-->0 ~= 'it') jump labelXXX; } print " "; return PrintObjectDesc(noun); .labelXXX; return Buffer_Print(ptr,P_itbl-->9,false); ]; [ This_It_P local1 local2 local3 local4 ; if (local1 has concealed) rfalse; if (P_name) { local3 = local1.&name; if (~~ZMemQ(P_name,local3,get_prop_len(local3) / 2 - 1)) rfalse; } if (P_adj) { local3 = local1.&adjectives; if ((~~local3) || (~~ZMemQB(P_adj,local3,get_prop_len(local3) - 1))) rfalse; } if ((~~P_gwimbit) || local1 has P_gwimbit) rtrue; rfalse; ]; [ LookAround local1 local2 ; if (OnWayToDestinationP(robot)) { RobotSay("Moving through ",0); } else { RobotSay("Internal map reference -- ",0); } if (robot in vehicle) { print "Inside the "; PrintObjectDesc(vehicle); print "."; new_line; } else { print (name) location; new_line; } if (robot == Iris1 && (~~Iris_repaired)) { print (string) PickOne(Too_dark_to_see_table); new_line; rtrue; } if (~~location.action(M_LOOK)) { PrintCurrentLocation(); } Describe_ObjectsInTurn(); if (location == Hall_End or Car_Area && vehicle in location && robot notin vehicle) { Perform(##LookIn,vehicle); } return FindRoomGrouping(); ]; [ PrintCurrentLocation ; if (location.descriptions_for_robots-->CurrentRobot) { print (string) location.descriptions_for_robots-->CurrentRobot; new_line; rtrue; } "I am in the ", (name) location, "."; ]; [ FindRoomGrouping ; if ((~~location.room_group_bit) || robot == Whiz1 or Waldo1) rfalse; return Bitwise_calculate(); ]; [ WhoElseHere total_here=65535 cnt who UNUSED dragged_ndx ; if (robot in vehicle) { total_here = 0; } .labelXXX; if (Animates_array-->cnt in location) { ++total_here; } if (++cnt <= 6) jump labelXXX; if ((~~total_here) || (robot == Iris1 && (~~Iris_repaired))) rtrue; if (robot in vehicle) { print "Standing outside the "; PrintObjectDesc(vehicle); print " "; } else { print "In the room with me "; } if (total_here == 1) { if (People1 in parent(robot) || (robot in vehicle && People1 in parent(vehicle))) { print "are "; } else { print "is "; } } else { print "are "; } cnt = 0; .labelXXX; who = Animates_array-->cnt; if (who in location && robot ~= who) { if (who == People1) { print "some "; } if (who has rmungbit) { print "non-functional "; } PrintObjectDesc(who); if (OnWayToDestinationP(who)) { print " (in motion)"; } if (Robot_follows-->CurrentRobot == who) { print " whom I'm following"; } dragged_ndx = 0; .labelXXX; ++dragged_ndx; if (dragged_ndx == 7) { ! no code } else { if (Drag_object_table-->dragged_ndx ~= who) jump labelXXX; print " (being dragged)"; } if (Current_pedestal && who == Whiz1) { print " (plugged in)"; } if (total_here == 1) { "."; } if (total_here == 2) { print " and "; } else { print ", "; } --total_here; } ++cnt; jump labelXXX; ]; [ Describe_ObjectsInTurn cnt who ; WhoElseHere(); .labelXXX; who = Animates_array-->cnt; if (who in location && who ~= robot) { PrintContents(who); } if (++cnt <= 5) jump labelXXX; if (robot == Iris1 && (~~Iris_repaired)) rtrue; return PrintCont(location,invalidBool65535); ]; [ CheckDescription obj desc_table ; desc_table = obj.item_descs; if (desc_table-->(CurrentRobot + 0)) rtrue; rfalse; ]; [ PrintContents obj itm nextitem first=true ndx ; if ((itm = child(obj)) == nothing) rfalse; .labelXXX; nextitem = sibling(itm); if (itm hasnt worn && CheckDescription(itm)) { if (first) { first = false; ndx = obj.person_ndx; if (ndx) { if (ndx == 7) { print "The "; PrintObjectDesc(obj); print " are carrying "; } else { PrintObjectDesc(obj); print " is carrying "; } } } else { print ", "; if (~~nextitem) { print "and "; } } print "a "; PrintObjectDesc(itm); } itm = nextitem; if (itm) jump labelXXX; if (first || (~~obj.person_ndx)) rtrue; print "."; new_line; rtrue; ]; [ PrintCont obj v itm first=true ; if ((itm = child(obj)) == nothing) rtrue; .labelXXX; if (itm hasnt concealed && itm hasnt worn && (~~itm.person_ndx) && CheckDescription(itm) && (obj ~= vehicle && robot notin vehicle)) { if (first) { Firster(obj,v); first = false; } DescribeOb(itm,v + 1); } if ((itm = sibling(itm)) ~= nothing) jump labelXXX; if (~~first) { return 1[?]; } return 0; ]; [ Firster where lvl cnt ; if (where == robot) { return RobotSay(I_am_holding_table-->CurrentRobot); } if (where in Room_Holder) rfalse; if (where has supporter) { print "Sitting "; if (where == groove1 or groove2) { print "in"; } else { print "on"; } print " the "; PrintObjectDesc(where); cnt = CCount(where); if (cnt < 2) { " is... "; } " are... "; } print (string) Indents-->lvl, "The "; PrintObjectDesc(where); " contains..."; ]; [ DescribeOb obj v level text av ; if ((~~v) && obj.initial2((M_INITIAL|M_HANDLED))) rtrue; if ((~~v) && obj hasnt on) { av = obj.item_descs; print (string) av-->(CurrentRobot + 0); } else if (~~v) { print "There is a "; PrintObjectDesc(obj); print " here"; if (obj == Step_platform && Robot_on_platform) { print " supporting "; if (Robot_on_platform == robot.person_ndx) { print "me"; jump labelXXX; } .labelXXX; if (++text > 6) { ! no code } else { if (Robot_on_platform ~= text) jump labelXXX; PrintObjectDesc(Animates_array-->(text - 1)); jump labelXXX; } } .labelXXX; print "."; } else { print (string) Indents-->v, "A "; PrintObjectDesc(obj); if (obj has clothing) { print " (being worn)"; } } new_line; if ((~~SeeInside(obj)) || child(obj) == nothing) rfalse; return PrintCont(obj,v + 1); ]; [ PreExamineSub ; if (noun notin Room_Holder) rfalse; if (robot in noun) { Perform(##LookAround); rtrue; } RobotSay("I can't see there from here."); rtrue; ]; [ ExamineSub local1 local2 ; if (second && noun notin second) { RobotSay("Better check the facts, compadre."); rtrue; } if (noun == left or right or number or listening or dragging or location) { YukYuk(); rtrue; } if (noun == monitor && robot == Iris1 && Iris_repaired && parent(Iris1) == Weather_Banks or RTD_Banks or Servo_Systems) { LookAround(); rtrue; } local2 = noun.item_descs; local1 = local2-->(12 + CurrentRobot); if (local1) { RobotSay(local1); if (noun.person_ndx) { PrintContents(noun); } if (~~noun.number) rfalse; print "The "; PrintObjectDesc(noun); " is set at ", Monitor_settings-->noun.number, "."; } if (noun has container || noun has attrib25) { if (local1) { print (string) local1, " "; } return LookInSub(); } RobotSay("I perceive nothing special about the ",0); PrintObjectDesc(noun); "."; ]; [ ScoreSub local1=1[?] ; print "There have been "; PrintNumber(Casualties); print " casualties (original population: 30,172,000) in ", turns; if (turns == 1) { print " cycle."; } else { print " cycles."; } new_line; rtrue; ]; [ PrintScoreAndQuit ; ScoreSub(); @quit; ]; [ QuitSub ask=true UNUSED ; ScoreSub(); if (ask) { print "Do you wish to leave the game? (Y is affirmative): "; if (Confirmation()) jump labelXXX; } if (~~ask) { .labelXXX; @quit; rtrue; } "Ok."; ]; [ Confirmation ; print ">"; @sread P_inbuf P_lexv; if (P_lexv-->1 ~= 'yes' or 'y//') rfalse; rtrue; ]; [ VersionSub offset=17 ; print "SUSPENDED: INTERLOGIC Science Fiction^Copyright (c) 1983 by Infocom, Inc. All rights reserved.^SUSPENDED and INTERLOGIC are trademarks of Infocom, Inc.^Release ", 0-->1 & 2047, " / Serial number "; .labelXXX; if (++offset > 23) { ! no code } else { print (char) 0->offset; jump labelXXX; } new_line; rtrue; ]; [ JigsUp death_msg who ; print (string) death_msg; new_line; new_line; print "FC: So much for that robot. Too bad."; new_line; Robot_unhealth_level-->who.person_ndx = 30; StopMovement(who,true); give who rmungbit; RobotCeasesToFunction(); return 2; ]; [ RestoreSub ; @restore ?~labelXXX; print "Ok."; new_line; return LookAround(); .labelXXX; "Failed."; ]; [ SaveSub ; @save ?~labelXXX; "Ok."; .labelXXX; "Failed."; ]; [ RestartSub ; ScoreSub(1[?]); print "Do you wish to restart? (Y is affirmative): "; if (~~Confirmation()) rfalse; print "Restarting."; new_line; @restart; "Failed."; ]; [ WalkAroundSub ; return RobotSay("Give me a direction for movement or a location to move to."); ]; [ GoNext tbl room ; room = SearchArray(location,tbl); if (~~room) rfalse; return Goto(room); ]; [ PreSwitchOnSub_orphaned ; if (noun == first_switch or second_switch or third_switch or machine) rfalse; RobotSay("I can't do that to ",0); if (noun.person_ndx) { ObjectivePronoun(noun); } else { print "the "; PrintObjectDesc(noun); } print "."; new_line; return 2; ]; [ SwitchOnSub ; if (noun ~= first_switch or second_switch or third_switch or machine) { YukYuk(); rtrue; } if (noun == machine) { Perform(##Press,button); rtrue; } if (noun has on) { return RobotSay("It's already on."); } RobotSay("Done."); give noun on; if (turns >= 75) rfalse; return TallyTrafficCasualties(); ]; [ SwitchOffSub ; if (noun ~= first_switch or second_switch or third_switch or machine) { YukYuk(); rtrue; } if (noun == machine) { Perform(##Press,button); rtrue; } if (noun hasnt on) { return RobotSay("It's not on."); } RobotSay("Done."); give noun ~on; if (turns >= 75) rfalse; return TallyTrafficCasualties(); ]; [ SearchArray itm tbl cnt len ; len = tbl-->0; .labelXXX; if (++cnt > len) rfalse; if (tbl-->cnt ~= itm) jump labelXXX; if (cnt == len) rfalse; return tbl-->(cnt + 1); ]; [ GoSub local1 local2 local3 local4 local5 ; PreliminaryStuffBeforeLeaving(); if (Robot_follows-->CurrentRobot) { RobotSay("Okay, but I have to stop following."); Robot_follows-->CurrentRobot = nothing; } StopMovement(robot); if (~~P_walk_dir) { Perform(##WalkTo,noun); rtrue; } local1 = location.&noun; if (local1) { local2 = get_prop_len(local1); if (local2 == 1[?]) { return Goto(local1->0); } if (local2 == 2[?]) { print (string) local1-->0; new_line; return A_FAILURE; } if (local2 == 3[BAR?]) { local5 = (local1-->0)(); if (local5) { return Goto(local5); } return A_FAILURE; } if (local2 == 4[KLA?]) { @load (local1->1) -> SP; @jz SP ?labelXXX; return Goto(local1->0); .labelXXX; local3 = local1-->1; if (local3) { print (string) local3; new_line; return A_FAILURE; } RobotSay(Cant_go_that_way_table-->CurrentRobot); return A_FAILURE; } if (local2 ~= 5[CON?]) rfalse; local4 = local1->1; if (local4 has open) { return Goto(local1->0); } local3 = local1-->1; if (local3) { print (string) local3; new_line; return A_FAILURE; } print "The "; PrintObjectDesc(local4); print " is closed."; new_line; SetPronoun(local4); return A_FAILURE; } RobotSay(Cant_go_that_way_table-->CurrentRobot); return A_FAILURE; ]; [ SetPronoun it ; P_it_object = it; LastNounPlace = location; rtrue; ]; [ InventorySub local1 local2 local3 ; if (robot == Auda1) { if ((local1 = child(Auda1)) ~= nothing) { local3 = local1.item_descs; local2 = local3-->(0 + CurrentRobot); if (~~local2) { RobotSay(No_inventory_table-->CurrentRobot); rtrue; } return PrintCont(Auda1); } return RobotSay(No_inventory_table-->CurrentRobot); } if (CCount(robot)) { return PrintCont(robot); } return RobotSay(No_inventory_table-->CurrentRobot); ]; [ CountSub local1 ; if (noun == People1) { RobotSay("There are two of them. And they're weird things, too."); rtrue; } if (noun ~= extensions or microsurgical_extension) { RobotSay("I have my counting abilities, and they only extend to extensions."); rtrue; } if (second && second notin location) { ICantSee(second); rtrue; } if (second && ((~~second.person_ndx) || second.person_ndx == ID_PEOPLE)) { RobotSay("There aren't any ",0); PrintObjectDesc(extensions); print " in the "; PrintObjectDesc(second); "."; } if (~~second) { RobotSay("I have ",0); print Current_robot_number_of_extensions; if (Current_robot_number_of_extensions == 1) { print " extension"; } else { print " extensions"; } "."; } if (~~second) rfalse; print "There "; if (second == Auda1) { print "is"; } else { print "are"; } local1 = robot; LinkToRobot(second,true); print " ", Current_robot_number_of_extensions, " extension"; LinkToRobot(local1,true); if (second ~= Auda1) { print "s"; } print " in "; PrintObjectDesc(second); "."; ]; [ PreTakeSub ; if (noun in robot) { return RobotSay("I already have it."); } if (noun in top_shelf && Robot_on_platform ~= robot.person_ndx) { RobotSay("It's too high up there and I can't reach it."); rtrue; } if (noun has clothing) { RobotSay("Not while it's attached."); rtrue; } if (robot == Iris1 && (~~Iris_repaired)) { RobotSay("I can't take what I can't see."); return A_FAILURE; } if (parent(noun) has container && parent(noun) hasnt open) { RobotSay("I can't reach that."); rtrue; } if (second && second has animate && noun has clothing) { RobotSay("Not while ",0); PrintObjectDesc(second); " has it attached."; } if (noun ~= parent(robot)) rfalse; "I'm in it, loser."; ]; [ TakeFromSub ; if (second && noun notin second) { RobotSay("The ",0); PrintObjectDesc(noun); print " isn't in "; if (~~second.person_ndx) { print "the "; } PrintObjectDesc(second); "."; } return Perform(##Take,noun); ]; [ TakeSub ; if (ITake() ~= A_SUCCESS) rfalse; RobotSay("Taken."); if (noun ~= Step_platform) rfalse; Step_platform_in_place = 0; Robot_on_platform = ID_TWO_ROBOTS; rtrue; ]; [ CheckTake ; if (noun in robot) rtrue; if (noun has trytakebit && noun.action) { Perform(##Take,noun); if (noun in robot) rtrue; rfalse; } return ITake(); ]; [ ITake vb=true cnt itm env UNUSED wt_chance ; if (noun hasnt takeable) { if (~~vb) rfalse; YukYuk(); rfalse; } if (CCount(robot) == Current_robot_number_of_extensions || CCount(robot) > Current_robot_number_of_extensions) { if (robot == Waldo1 && microsurgical_extension has clothing) { RobotSay(Cant_carry_any_more_table-->7); rfalse; } RobotSay(Cant_carry_any_more_table-->CurrentRobot); rfalse; } if (parent(noun) notin robot) { wt_chance = QueryWeight(noun); if (wt_chance + QueryWeight(robot) > Load_max) { if (vb && noun ~= broken_shelf) { RobotSay("I have a free extension, but I'm not strong enough to carry that",0); if (CCount(robot)) { print " and what I'm carrying"; } print "."; new_line; return A_FAILURE; } if (vb) { RobotSay("It's far too heavy."); } return A_FAILURE; } } cnt = CCount(robot); if (cnt > Maximum_held) { wt_chance = cnt * Max_held_mult; if (wt_chance > random(100)) { itm = child(robot); itm = sibling(itm); RobotSay("Oh, no. The ",0); PrintObjectDesc(itm); print " slips from my extenders while taking the "; PrintObjectDesc(noun); print " and both tumble to the ground."; new_line; env = parent(robot); if (env has globalbit) { Perform(##Drop,itm); move noun to robot; Perform(##Drop,noun); return A_FAILURE; } move itm to env; move noun to env; return A_FAILURE; } } if (noun == Wire_in_primary_channel or Wire_in_secondary_channel) { if (location == Tube1) { Wire_in_secondary_channel = nothing; } else if (location == Tube2) { Wire_in_primary_channel = nothing; } } move noun to robot; give noun ~worn; give noun on; rtrue; ]; [ PrePutOnSub ; if (second == floor or wall or underground_complex) { Perform(##Drop,noun); rtrue; } if (noun in local_globals || noun hasnt takeable) { "FC: Nice try."; } if (~~second) rfalse; if (second == BLT2 or BLT1 or BLT3 && noun.person_ndx) { Perform(##PushOn,noun,second); rtrue; } if (noun ~= Step_platform || second ~= step) rfalse; Perform(##PutBy,noun,second); rtrue; ]; [ PutBySub ; if (second == floor or wall or underground_complex) { Perform(##Drop,noun); rtrue; } if (second in location) { RobotSay("Okay."); move Step_platform to location; rtrue; } return ICantSee(noun); ]; [ InsertSub local1 ; if (second hasnt open && (second has attrib25 || second hasnt container)) { if (second has vehicle) { ! no code } else { RobotSay("I can't do that."); rtrue; } } if (second hasnt open) { RobotSay("The ",0); PrintObjectDesc(second); " isn't open."; } if (second == noun) { return RobotSay("How can I do that?"); } if (noun in second) { if (robot == Waldo1 && noun == microsurgical_extension) { Perform(##Wear,noun); rtrue; } if (second.person_ndx) { return YukYuk(); } RobotSay("The ",0); PrintObjectDesc(noun); print " is already in the "; PrintObjectDesc(second); "."; } local1 = QueryWeight(second); local1 = local1 + QueryWeight(noun); local1 = local1 - second.size; if (local1 > second.capacity) { return RobotSay("There's no room."); } if ((~~ThingInPlayer(noun)) && (~~CheckTake())) rtrue; move noun to second; give noun on; RobotSay("Done."); if (second == panel2 && (~~Iris_repaired) && IC5 in panel2 && obj1 in panel2 && chip3 in panel2) { new_line; (string) Robot_interrupts-->1, " OOOH! That felt good! Close my panel, big boy."; } if (second == groove1) { Wire_in_secondary_channel = noun; rtrue; } if (second ~= groove2) rfalse; Wire_in_primary_channel = noun; rtrue; ]; [ PreDropSub_orphaned ; if (noun ~= parent(robot)) rfalse; Perform(##Disembark,noun); rtrue; ]; [ PreBlastSub ; Perform(##Shoot,second,noun); rtrue; ]; [ PreShootSub ; if (second || noun has weapon) rfalse; print "You have nothing to shoot the "; PrintObjectDesc(noun); " with."; ]; [ IDontCarryTheWeapon what ; RobotSay("I don't have ",0); if (~~what.person_ndx) { print "the "; } PrintObjectDesc(what); "."; ]; [ ShootSub ; if (noun notin robot) { return IDontCarryTheWeapon(noun); } if (noun hasnt weapon) { print "You can't use a "; PrintObjectDesc(noun); " as a ray gun!"; } if (~~second) { "At what?"; } "Nothing happens."; ]; [ BlastSub ; "ZAPPP!!"; ]; [ PreGiveSub ; if (~~ThingInPlayer(noun)) { return RobotSay("That's easy to say since I don't even have it."); } if (noun notin robot) { RobotSay("One thing at a time. First tell me where it is."); rtrue; } if (second ~= People1) rfalse; if (noun == tool_bag) { QueueInterrupt(People_after_thief)-->0 = 0; Tool_bag_thief = nothing; People_in_pursuit = false; if (People_not_given_toolbag_first) { People_get_toolbag(); rtrue; } People_are_given_toolbag(); rtrue; } RobotSay("They don't seem to be interested in that."); rtrue; ]; [ PreGiveReverseSub ; Perform(##Give,second,noun); rtrue; ]; [ GiveSub local1 ; if (second hasnt animate) { RobotSay("I can't give a ",0); PrintObjectDesc(noun); print " to a "; PrintObjectDesc(second); "!"; } if (~~Idrop()) rfalse; RobotSay("Given."); local1 = robot; LinkToRobot(second,true); ITake(); return LinkToRobot(local1,true); ]; [ GiveReverseSub ; "FOOOO!!"; ]; [ DropSub ; if (~~Idrop()) rfalse; if (noun has clothing) { print "(removing it first)"; new_line; give noun ~clothing; } return RobotSay("Dropped."); ]; [ ThrowSub ; if (~~Idrop()) rfalse; return RobotSay("Thrown."); ]; [ Idrop ; if (~~ThingInPlayer(noun)) { RobotSay("I'm not carrying the ",0); PrintObjectDesc(noun); print "."; new_line; rfalse; } if (noun notin robot && parent(noun) hasnt open) { RobotSay("The ",0); PrintObjectDesc(noun); print " is closed."; new_line; rfalse; } if (noun == microsurgical_extension && noun has clothing) { give noun ~clothing; } move noun to parent(robot); rtrue; ]; [ AlreadyOpenOrClosed what name_it ; if (name_it) { RobotSay("The ",0); PrintObjectDesc(name_it); print " is "; } else { RobotSay("It's ",0); } "already ", (string) what, "."; ]; [ OpenSub local1 local2 ; if (noun has vehicle) { RobotSay("The ",0); PrintObjectDesc(vehicle); " opens only when a robot attempts to enter it."; } if (noun hasnt container) { RobotSay("I'm not sure anyone is clever enough to do that to the ",0); PrintObjectDesc(noun); "."; } if (noun.person_ndx) { RobotSay("What?! ",0); PrintObjectDesc(noun); " is a robot. That's spelled R-O-B-O-T!"; } if (noun has supporter) { return RobotSay("I think you're out of your mind."); } if (noun has attrib25 || noun.capacity) { if (noun has open) { return AlreadyOpenOrClosed("open"); } give noun open; if (child(noun) == nothing || noun has transparent) { return RobotSay("Opened."); } RobotSay("When I open the ",0); PrintObjectDesc(noun); print " I detect "; PrintContents(noun); "."; } PrintObjectDesc(noun); " cannot be opened."; ]; [ CloseSub ; if (noun hasnt container) { RobotSay("You must tell me how to do that to a ",0); PrintObjectDesc(noun); "."; } if (noun has supporter) { return RobotSay("Not a likely occurrence within reality, no?"); } if (noun.person_ndx) { RobotSay("I don't think ",0); DirectPronoun(noun); " would like that."; } if (noun hasnt supporter && (noun.capacity || noun has attrib25)) { if (noun has open) { give noun ~open; return RobotSay("Closed."); } return AlreadyOpenOrClosed("closed"); } return RobotSay("I can't close that."); ]; [ CCount obj cnt x ; if ((x = child(obj)) ~= nothing) { .labelXXX; if (x hasnt worn) { ++cnt; } if ((x = sibling(x)) ~= nothing) jump labelXXX; } return cnt; ]; [ ItmCount obj cnt x ; if ((x = child(obj)) ~= nothing) { .labelXXX; ++cnt; if ((x = sibling(x)) ~= nothing) jump labelXXX; } return cnt; ]; [ QueryWeight obj itm wt ; if ((itm = child(obj)) ~= nothing) { .labelXXX; wt = wt + QueryWeight(itm); if ((itm = sibling(itm)) ~= nothing) jump labelXXX; } return wt + obj.size; ]; [ ScriptSub ; 0-->8 = 0-->8 | 1; print "Here begins", (string) transcript_msg; new_line; rtrue; ]; [ UnscriptSub ; print "Here ends", (string) transcript_msg; new_line; 0-->8 = 0-->8 & 65534; rtrue; ]; [ PreMoveSub ; if (second) { if (second ~= right or left or number || (~~noun.number)) rfalse; Perform(##Set,noun,second); rtrue; } if (second && second == BLT2 && noun.person_ndx) { Perform(##PushOn,noun,second); rtrue; } if (second && second == BLT1 or BLT3 && noun.person_ndx) { return RobotSay("There's no way to do that from here."); } if (second) { RobotSay("One step at a time, please."); rtrue; } if (~~ThingInPlayer(noun)) rfalse; RobotSay("I don't juggle objects!"); rtrue; ]; [ MoveSub ; if (noun == broken_shelf) { RobotSay("Okay. It's been moved.",0); if (crushed_box has concealed) { print " Moving it has revealed a "; PrintObjectDesc(crushed_box); print "."; give crushed_box ~concealed; } new_line; rtrue; } if (noun has takeable) { RobotSay("Moving the ",0); PrintObjectDesc(noun); " reveals nothing."; } if ((~~second) && noun.person_ndx) { give noun rmungbit; if (location ~= Repair1) { RobotSay("If you want ",0); PrintObjectDesc(noun); " to be dragged, you should supply a location, too."; } } if (noun.person_ndx) { Perform(##PushOn,noun,second); rtrue; } RobotSay("I can't move ",0); if (~~noun.person_ndx) { print "the "; } PrintObjectDesc(noun); "."; ]; [ MoveToSub ; if (noun == Iris1) { return RobotSay("There's no place for me to get a grip on her."); } if (noun == dead_robot) { return RobotSay("There's nothing to be gained by doing that. Franklin destroyed this robot beyond all hopes of repairing."); } if (~~noun.person_ndx) { Perform(##Move,noun); rtrue; } if (noun == robot) { return RobotSay("I suppose you'll have me chasing my tail, next."); } if (Drag_object_table-->CurrentRobot) { return RobotSay("Give me a break, would you? One at a time!"); } if (second notin Room_Holder) { RobotSay("You'll have to tell me where the ",0); PrintObjectDesc(second); print " is."; rtrue; } if (~~Robot_unhealth_level-->noun.person_ndx) { RobotSay("Let ",0); PrintObjectDesc(noun); " get there alone."; } Drag_object_table-->CurrentRobot = noun; Perform(##WalkTo,second); return A_FAILURE; ]; [ WaitSub turns=3 ; print "FC: Time passes..."; new_line; .labelXXX; if (--turns < 0) { ! no code } else { if (~~Clocker()) jump labelXXX; } Clock_wait = true; rtrue; ]; [ PreBoardSub local1 ; local1 = parent(robot); if (noun has vehicle) { if (local1 hasnt vehicle) rfalse; RobotSay("I'm already in it!"); return A_FAILURE; } RobotSay("I suppose you have a theory on boarding a ",0); PrintObjectDesc(noun); print "."; new_line; return A_FAILURE; ]; [ BoardSub local1 ; if (Car_passenger) { RobotSay("There's no room in there for me, too."); rtrue; } if (robot == Tool_bag_thief && tool_bag in robot) { move People1 to location; People_after_thief(); new_line; } RobotSay("I am now in the ",0); PrintObjectDesc(noun); print "."; new_line; move robot to noun; Car_passenger = robot; if (Robot_follows-->CurrentRobot) { Robot_follows-->0 = CurrentRobot; } StopMovement(robot,true); if (location == Hall_End) { location = Car_Area; } else if (location == Car_Area) { location = Hall_End; } move vehicle to location; RobotSay("My gyroscopic stabilizers detect motion."); new_line; LookAround(); new_line; RobotSay("External map reference -- ",0); print (name) location; new_line; rtrue; ]; [ EnterObjSub local1 local2 local3 ; if ((~~local1) && noun has vehicle) { Perform(##Board,noun); rtrue; } if ((~~local1) && noun hasnt takeable) { return YukYuk(); } if (local1) { return RobotSay("I can't do that!"); } if (noun in robot) { return RobotSay("That would involve quite a contortion!"); } return YukYuk(); ]; [ DisembarkSub ; if (parent(robot) ~= noun) { RobotSay("I'm not in that!"); return A_FAILURE; } RobotSay("I am on my mobile extensions again."); move robot to location; Car_passenger = nothing; rtrue; ]; [ Goto room v=true env old_lit ndx UNUSED who ; env = parent(robot); old_lit = Lit; move robot to room; location = room; .labelXXX; if (++ndx > 6) { ! no code } else { if (Robot_follows-->ndx ~= robot) jump labelXXX; who = Animates_array-->(ndx - 1); if (~~FindNextDest(who,parent(who),location)) jump labelXXX; } Lit = LitP(location); if (location.action(M_ENTER) == 2 || (~~v)) rtrue; LookAround(); rtrue; ]; [ DrinkSub ; return BiteSub(); ]; [ BiteSub ; return RobotSay(Cannot_eat_table-->CurrentRobot); ]; [ CurseSub ; if (noun) { if (noun has animate) { "Insults of this nature won't help you."; } "What a loony!"; } "Such language in a high-class establishment like this!"; ]; [ PreListenSub ; if (robot == Auda1) rfalse; return RobotSay("I can't hear."); ]; [ ListenSub ; if (noun && noun ~= People1) { return RobotSay("I hear nothing special."); } if (Auda_listening) { return RobotSay("Okay, okay already. I'm listening."); } RobotSay("Okay. Auditory circuits activated."); Auda_listening = true; rtrue; ]; [ FollowSub ; if (~~noun.person_ndx) { RobotSay("I can't follow the ",0); PrintObjectDesc(noun); print "."; new_line; return A_FAILURE; } if (robot notin parent(noun) && Animates_locations-->noun.person_ndx ~= location) { RobotSay("Sure. Tell me where ",0); if (noun.person_ndx == ID_PEOPLE) { print "the "; PrintObjectDesc(noun); print " are."; new_line; return A_FAILURE; } PrintObjectDesc(noun); print " is."; new_line; return A_FAILURE; } if (noun == robot) { RobotSay("Be serious. I can't do that."); rtrue; } PreliminaryStuffBeforeLeaving(); RobotSay("Okay. I'll follow ",0); if (noun.person_ndx == ID_PEOPLE) { print "the "; } PrintObjectDesc(noun); print "."; new_line; Robot_follows-->CurrentRobot = noun; return StopMovement(robot); ]; [ JumpSub local1 local2 ; if (noun) { if (noun in location) { if (noun has animate) { RobotSay("The ",0); PrintObjectDesc(noun); " is too big to jump over."; } return HopSub(); } return RobotSay("That would be a good trick."); } local1 = location.&d_to; if (local1) { local2 = get_prop_len(local1); if (local2 ~= 2[?]) { if (local2 ~= 4[KLA?]) jump labelXXX; @load (local1->1) -> SP; @jz SP ?~labelXXX; } print "FC: This was not a very safe place to try jumping."; new_line; return JigsUp("You should have looked before you leaped.",robot); .labelXXX; return HopSub(); } return HopSub(); ]; [ HopSub ; return YukYuk(); ]; [ LeaveSub ; return PlayertoProp(in_to); ]; [ HelloSub ; if (noun) { RobotSay("I think that only schizophrenics say ~Hello~ to a ",0); PrintObjectDesc(noun); "."; } return RobotSay(PickOne(Hello_table)); ]; [ HelpSub local1 ; if (Robot_unhealth_level-->6 > 29) { "FC: Whiz is no longer operational, and there's nothing I can do to help you without him."; } if (Whiz1 in Periph_3 && Current_pedestal) { "FC: Whiz is plugged in to the Advisory Pedestal and ready to ask about things for you."; } if (Whiz1 in Periph_3) { Current_pedestal = P_ADVISORY; print "FC: I've taken the liberty of directing Whiz to plug in to the Advisory Pedestal. You may now direct him to ask about things for you."; new_line; return LinkToRobot(Whiz1); } print "FC: I'm taking the liberty of directing Whiz to the Advisory Peripheral so you may later have him ask about things."; new_line; local1 = robot; LinkToRobot(Whiz1,true); new_line; Perform(##WalkTo,Periph_3); rtrue; ]; [ ReadSub ; if (noun == monitor && robot == Iris1 && Iris_repaired && parent(Iris1) == Weather_Banks or RTD_Banks or Servo_Systems) { LookAround(); rtrue; } if (noun == FOO or MUM or BLE or BAR or KLA or CON or BOZ or TRA) { Perform(##Examine,noun); rtrue; } if (noun == sign && robot ~= Iris1) { RobotSay("I'm not equipped with the necessary visual sensors."); rtrue; } RobotSay("How can I read a ",0); PrintObjectDesc(noun); "?"; ]; [ LookUnderSub ; if (noun == broken_shelf && crushed_box has concealed && robot ~= Auda1) { return RobotSay("There is something under there."); } return RobotSay("There is nothing but dust there."); ]; [ LookBehindSub ; return LookUnderSub(); ]; [ LookInSub ; if (noun has container) { if (noun has animate) { return RobotSay("There is nothing special to be seen."); } if (SeeInside(noun)) { if (child(noun) ~= nothing && PrintCont(noun)) rtrue; if (noun has supporter) { RobotSay("There is nothing on the ",0); PrintObjectDesc(noun); "."; } RobotSay("The ",0); PrintObjectDesc(noun); " is empty."; } RobotSay("The ",0); PrintObjectDesc(noun); " is closed."; } RobotSay("I don't know how to look inside a ",0); PrintObjectDesc(noun); "."; ]; [ SeeInside obj ; if (obj has concealed) rfalse; if (obj has transparent || obj has open) rtrue; rfalse; ]; [ PreTurnSub_orphaned ; if (noun hasnt turnable) { return RobotSay("I can't turn that!"); } if (second has turnable) rfalse; RobotSay("I certainly can't turn it with a ",0); PrintObjectDesc(second); "."; ]; [ SwitchToSub ; return RobotSay("You must be more specific."); ]; [ PickSub ; return SwitchToSub(); ]; [ KillSub ; return RealAttack("kill"); ]; [ RealAttack dowhat ; if (~~noun) { "There is nothing here to ", (string) dowhat, "."; } if (noun hasnt animate && noun hasnt animate) { RobotSay("I've known strange people, but fighting a ",0); PrintObjectDesc(noun); "?"; } if ((~~second) || second == extensions) { return FailedToDo(dowhat); } if (second hasnt weapon) { RobotSay("Trying to ",0); print (string) dowhat; if (~~noun.person_ndx) { print " the"; } print " "; PrintObjectDesc(noun); print " with a "; PrintObjectDesc(second); print (string) Ho_hum_table-->CurrentRobot; new_line; rtrue; } "I can't."; ]; [ AttackSub ; return RealAttack("attack"); ]; [ KickSub ; return HackHack("Kicking "); ]; [ WaveSub ; return HackHack("Waving "); ]; [ RaiseSub ; if (noun.person_ndx && robot in Repair1) { Perform(##PushOn,noun,Step_platform); rtrue; } return HackHack("Playing in this way with "); ]; [ LowerSub ; return HackHack("Playing in this way with "); ]; [ PetSub ; return HackHack("Fiddling with "); ]; [ PressSub ; return HackHack("Pushing "); ]; [ PrePokeSub ; if (noun hasnt animate) { return HackHack("Trying to destroy "); } if (second) rfalse; return FailedToDo("destroy"); ]; [ FailedToDo str ; RobotSay("Trying to ",0); print (string) str; if (~~noun.person_ndx) { print " a"; } print " "; PrintObjectDesc(noun); print (string) Ho_hum_table-->CurrentRobot; new_line; rtrue; ]; [ PokeSub ; return RobotSay("I can't do that."); ]; [ HackHack str ; print (string) str; if (~~noun.person_ndx) { print "the "; } PrintObjectDesc(noun); print (string) Ho_hum_table-->CurrentRobot; new_line; rtrue; ]; [ WordType obj word addr UNUSED ; addr = obj.&name; return ZMemQ(word,addr,get_prop_len(addr) / 2 - 1); ]; [ KnockSub ; RobotSay("Why knock on a ",0); PrintObjectDesc(noun); "?"; ]; [ YellSub ; return RobotSay(Yell_table-->CurrentRobot); ]; [ LinkSub local1 ; if (robot ~= Whiz1) { return YukYuk(); } if (Current_pedestal) { RobotSay("I'm already plugged in to the ",0); print (string) Pedestal_table-->Current_pedestal; new_line; rtrue; } if (noun ~= Index_pedestal_Object or Technical_Pedestal_Object or Advisory_Pedestal or Historical_Pedestal_Object or Room_Holder) { RobotSay("I can't plug in to the ",0); PrintObjectDesc(noun); "."; } if (location == Periph_1 or Periph_2 or Periph_3 or Periph_4) { if (location == Periph_1) { Current_pedestal = P_INDEX; } else if (location == Periph_2) { Current_pedestal = P_TECHNICAL; } else if (location == Periph_3) { Current_pedestal = P_ADVISORY; } else if (location == Periph_4) { Current_pedestal = P_HISTORICAL; } RobotSay("It's great to be home. Plugged in to the ",0); (string) Pedestal_table-->Current_pedestal, " Ready to process queries."; } return RobotSay("There's nothing to plug in to here."); ]; [ UnplugSub ; if (robot ~= Whiz1) { return RobotSay("Who do you think I am, Whiz? Gimme a break!"); } if (~~Current_pedestal) { return RobotSay("That's not possible. I'm not plugged in."); } Current_pedestal = P_LEN; return RobotSay("Unplugged."); ]; [ AskSub ; if (robot ~= Whiz1 && (~~noun)) { return RobotSay("Get real, joker!"); } if (robot ~= Whiz1) { print "FC: I'm translating that command into a request for a description of the "; PrintObjectDesc(noun); print "."; new_line; Perform(##Examine,noun); rtrue; } if (~~Current_pedestal) { RobotSay("I can't until a CLC link is established."); return A_FAILURE; } if (~~second) { SearchDataSources(); rtrue; } if (noun == Index_pedestal_Object or Technical_Pedestal_Object or Advisory_Pedestal or Historical_Pedestal_Object || Whiz1 in Periph_1 || Whiz1 in Periph_2 || Whiz1 in Periph_3 || Whiz1 in Periph_4) { noun = second; SearchDataSources(); rtrue; } RobotSay("I don't know how to query a ",0); PrintObjectDesc(noun); "."; ]; [ SearchDataSources tbl str cnt ; tbl = noun.data_store; str = Pedestal_abbreviations-->Current_pedestal; if (~~tbl) { if (Current_pedestal == P_INDEX) { (string) str, "Index search indicates no data stored on that subject."; } print (string) str, "No data available on that subject from the ", (string) Pedestal_table-->Current_pedestal; new_line; rtrue; } if (Current_pedestal == P_INDEX) { .labelXXX; ++cnt; if (cnt == 4) rtrue; if (~~tbl-->cnt) jump labelXXX; print (string) str, "Data available from the ", (string) Pedestal_table-->(cnt + 1); new_line; jump labelXXX; } tbl = tbl-->(Current_pedestal - 1); if (tbl) { print (string) str, (string) tbl; new_line; rtrue; } (string) str, "No data available on that subject at this peripheral."; ]; [ ShakeSub local1 ; if (noun has animate) { return RobotSay("This seems to have no effect."); } if (noun hasnt open && child(noun) ~= nothing) { RobotSay("It sounds as if there is something inside the ",0); PrintObjectDesc(noun); "."; } if (noun has open && child(noun) ~= nothing) { .labelXXX; if ((local1 = child(noun)) ~= nothing) { move local1 to location; jump labelXXX; } return RobotSay("All of the objects spill onto the floor."); } return RobotSay("Why bother?"); ]; [ DigSub ; return RobotSay("What a silly idea!"); ]; [ SmellSub ; return RobotSay("I can't do that."); ]; [ InRoomContains obj room list ; list = room.&contains; if (~~list) rfalse; return ZMemQB(obj,list,get_prop_len(list) - 1); ]; [ InRoom obj ; if (obj in location) rtrue; return InRoomContains(obj,location); ]; [ SwimSub ; return RobotSay("You can't swim here!"); ]; [ WakeSub ; if (noun ~= People1) { RobotSay("Be serious, would you?"); return A_FAILURE; } if (Time_spent_asleep > 0 && People1 in Sleep_Chamber && robot in Sleep_Chamber) { RobotSay("I'm shaking them."); if (PeopleCanBeHeard()) { PrintAudaListening(); new_line; print "~Beat it, you stupid robot! Can't you see we're trying to sleep?!~"; new_line; } if (RobotNearPeople(Waldo1)) { new_line; print "WALDO: The "; PrintObjectDesc(People1); " are motioning violently and then resuming their reclining positions."; } if (RobotNearPeople(Sensa1)) { new_line; print "SENSA: The air is becoming charged with ionic activity as the "; PrintObjectDesc(People1); " stir from quiescence. They then return to a quiet state."; } if (~~RobotNearPeople(Poet1)) rfalse; new_line; print "POET: Like loaves of bread sitting on a warm oven, the "; PrintObjectDesc(People1); " rise then fall."; } return RobotSay("They're not asleep."); ]; [ ZorkSub ; "I see no Zork here."; ]; [ CommandSub_orphaned ; if (noun has animate) { print "The "; PrintObjectDesc(noun); " pays no attention."; } "You cannot talk to that!"; ]; [ ClimbOnSub ; if (noun has attrib16 && noun has vehicle) { Perform(##Board,noun); rtrue; } if (noun has climbable) { return Perform(##Action20090,noun); } if (noun has vehicle) { return ClimbUpSub(24[crushed_box?],1[?]); } print "I can't climb onto the "; PrintObjectDesc(noun); "."; ]; [ TakeDownSub ; if (robot.person_ndx ~= Robot_on_platform) { return RobotSay("I can't. I'm not on it."); } Robot_on_platform = ID_TWO_ROBOTS; return RobotSay("Okay. I'm off of it now."); ]; [ ClimbSub ; return ClimbUpSub(24[crushed_box?],1[?]); ]; [ ClimbUpSub local1=24[crushed_box?] local2 local3 ; if (location.&local1) { PlayertoProp(local1); rtrue; } if (~~local2) { print (string) Cant_go_that_way_table-->CurrentRobot; new_line; rtrue; } if (noun == Step_platform) { Perform(##ClimbOn,noun); rtrue; } "Bizarre!"; ]; [ ClimbDownSub ; if (noun has attrib16 && noun has vehicle) { ClimbOnSub(); rtrue; } if (noun == Step_platform) { Perform(##TakeDown,noun); rtrue; } return ClimbUpSub(23[backup_cable?]); ]; [ PutUnderSub ; if (second == top_shelf or WHEEL or switch) { Perform(##Drop,noun); rtrue; } "I can't do that."; ]; [ EnterSub ; return PlayertoProp(out_to); ]; [ ExitSub ; return PlayertoProp(in_to); ]; [ SearchSub ; if (noun has container) { Perform(##LookIn,noun); rtrue; } return RobotSay("I found nothing unusual."); ]; [ FindSub local1 ; local1 = parent(noun); if (noun.person_ndx && noun notin location) { Perform(##WalkTo,noun); rtrue; } if (local1 == 191[local_globals?]) { return RobotSay("You find it."); } if (noun in robot) { return RobotSay("I have it."); } if (noun in location || noun == pseudo) { if (noun.person_ndx) { PrintObjectDesc(noun); print " is"; } else { print "It's"; } " right here."; } if (local1 has animate) { RobotSay("The ",0); PrintObjectDesc(local1); " have it."; } if (local1 has container) { RobotSay("It's in the ",0); PrintObjectDesc(local1); "."; } return RobotSay("Beats me."); ]; [ MasterObject glob_obj ; if (glob_obj == Iris2) { return 158[Iris1?]; } if (glob_obj == Waldo2) { return 155[Waldo1?]; } if (glob_obj == Auda2) { return 149[Auda1?]; } if (glob_obj == Sensa2) { return 152[Sensa1?]; } if (glob_obj == Poet2) { return 146[Poet1?]; } if (glob_obj == Whiz2) { return 144[Whiz1?]; } return 140[People1?]; ]; [ CryolinkToSub ; if (noun.person_ndx && noun ~= People1) { if (noun in local_globals) { noun = MasterObject(noun); } actor = robot; return LinkToRobot(noun); } print "FC: You can't talk to the "; PrintObjectDesc(noun); print "!"; new_line; P_quote_flag = false; P_cont = 0; return A_FAILURE; ]; [ AnswerSub ; print "Nobody is awaiting your answer."; new_line; return A_FAILURE; ]; [ AnswerObjSub ; print "It is hardly likely that the "; PrintObjectDesc(noun); print " is interested."; new_line; return A_FAILURE; ]; [ IsOnSub ; if (noun in second) { print "Yes, it is "; if (second has supporter) { print "on"; } else { print "in"; } print " the "; PrintObjectDesc(second); "."; } "No, it isn't."; ]; [ KissSub ; if (robot == Iris1) { return RobotSay("Without lips, that's quite a trick."); } if (robot == Waldo1) { return RobotSay("With what, my hands?"); } if (robot == Sensa1) { return RobotSay("I can't do that."); } if (robot == Auda1) { return RobotSay("No, I don't think so."); } if (robot == Poet1) { return RobotSay("Loose lips sink slips."); } if (robot ~= Whiz1) rfalse; return RobotSay("I'd sooner kiss the CLC."); ]; [ MolestSub ; return RobotSay("What a BIZARRE concept!"); ]; [ FindIn obj attr itm ; itm = child(obj); if (~~itm) rfalse; .labelXXX; if (itm has attr) { return itm; } if ((itm = sibling(itm)) ~= nothing) jump labelXXX; rfalse; ]; [ WearSub ; if (noun hasnt clothing) { return RobotSay("An interesting but highly unlikely thought."); } RobotSay("It's now being worn."); give noun clothing; rtrue; ]; [ RemoveSub ; if (noun has clothing) { Perform(##Untie,noun); rtrue; } Perform(##Take,noun); rtrue; ]; [ UntieSub ; if (noun has vehicle) { return DisembarkSub(); } if (noun has clothing) { give noun ~clothing; RobotSay("It's been removed."); rtrue; } return RobotSay("I'm not wearing that."); ]; [ StepOnSub ; if (noun == Step_platform) { Perform(##ClimbOn,noun); rtrue; } if (noun == BLT2 or BLT1 or BLT3) { return RobotSay("There's no need for that since I'm working fine."); } "That's a silly thing to do."; ]; [ PutOnSub ; if (second == top_shelf && robot.person_ndx ~= Robot_on_platform) { return RobotSay("I can't reach up that far."); } return Perform(##Insert,noun,second); ]; [ Rob_orphaned what thief wear_it nextitem itm robbed ; itm = child(what); .labelXXX; if (~~itm) { return robbed; } nextitem = sibling(itm); if (CanRob(itm,thief)) { if (wear_it) { give itm worn; } robbed = itm; } itm = nextitem; jump labelXXX; ]; [ CanRob obj thief ; if (obj in thief || obj has concealed || obj hasnt on || obj hasnt takeable) rfalse; if (thief) { move obj to thief; rtrue; } remove obj; rtrue; ]; [ StandSub ; if (parent(robot) has vehicle) { Perform(##Disembark,parent(robot)); rtrue; } "I'm already standing, I think."; ]; [ NoSub ; "FC: You sound rather negative."; ]; [ YesSub ; "FC: You sound rather positive."; ]; [ PointSub local1 ; if (noun.person_ndx) { RobotSay("Let ",0); ObjectivePronoun(noun); print " do it "; ObjectivePronoun(noun); if (noun == People1) { "selves."; } "self."; } if (noun ~= camera) { return RobotSay("Okay, but it's impolite."); } if (noun == second) { return RobotSay("That would be a neat trick."); } if (second in local_globals && second ~= Iris2 or Waldo2 or Sensa2 && second ~= Auda2 or Poet2 or Whiz2) { "FC: There's no need to do that."; } if ((~~Camera_plugged) || (~~Iris_repaired) || Iris1 has rmungbit) { return RobotSay("Okay."); } RobotSay("The ",0); PrintObjectDesc(camera); print " has been pointed at "; if (~~second.person_ndx) { print "the "; } PrintObjectDesc(second); print "."; new_line; new_line; if (second == groove1 or groove2 or cables) { local1 = robot; LinkToRobot(Iris1,true); print (string) Robot_interrupts-->1, " Transmission indicates the cables rest in the grooves in the following order: "; if (local1 in Tube2) { if (Wire_in_primary_channel) { PrintObjectDesc(Wire_in_primary_channel); } else { print "empty"; } print "; "; PrintObjectDesc(yellow_cable); print "; "; PrintObjectDesc(green_cable); print "; and "; PrintObjectDesc(pink_cable); print ". "; } else { PrintObjectDesc(white_cable); print "; "; PrintObjectDesc(blue_cable); print "; "; PrintObjectDesc(black_cable); print "; and "; if (Wire_in_secondary_channel) { PrintObjectDesc(Wire_in_secondary_channel); print ". "; } else { print "empty. "; } } print (string) Cable_descs_table-->CurrentRobot; new_line; LinkToRobot(local1,true); rtrue; } if (second == sign) { local1 = robot; LinkToRobot(Iris1,true); print (string) Robot_interrupts-->1, " The little sign presents me with the access code the machine in the Main Supply Room needs to reset the Filtering Computers. It says ", (name) Label2, (name) Label1, "."; new_line; LinkToRobot(local1,true); rtrue; } print (string) Robot_interrupts-->1, " ", (string) PickOne(Fuzzy_image_table); if (~~second.person_ndx) { print "a "; } local1 = robot; LinkToRobot(Iris1,true); PrintObjectDesc(second); print "."; new_line; return LinkToRobot(local1,true); ]; [ SetSub local1 local2 ; local1 = noun.number; if (~~local1) { RobotSay("I don't know how to do that to ",0); if (~~noun.person_ndx) { print "a "; } PrintObjectDesc(noun); "."; } if (second ~= number or right or left) { RobotSay("How am I supposed to accomplish that?"); rtrue; } local2 = Monitor_settings-->local1; if (second == right) { P_number = local2 + 10; if (P_number > 100) { RobotSay("It can't go ",0); if (noun == first_lever or second_lever or third_lever) { print "forward"; } else { print "right"; } print " any more."; new_line; } } else if (second == left) { if (~~local2) { RobotSay("It can't go ",0); if (noun == first_lever or second_lever or third_lever) { print "back"; } else { print "left"; } " any more."; } if (local2 < 10) { P_number = 0; } else { P_number = local2 - 10; } } if (P_number > 100) { RobotSay("That setting is out of range."); rtrue; } if (P_number == local2) { RobotSay("That's where it was already set."); rtrue; } Monitor_settings-->local1 = P_number; RobotSay("The ",0); PrintObjectDesc(noun); " has been set to ", P_number, "."; ]; [ PlaySub ; print "Playing a "; PrintObjectDesc(noun); "?"; ]; [ VerifySub ; print "Verifying game..."; new_line; @verify ?~labelXXX; "Game correct."; .labelXXX; new_line; "** Game File Failure **"; ]; [ StandOnSub ; if (Step_platform == noun) { Perform(##ClimbOn,noun); rtrue; } return RobotSay("I can't manage that."); ]; [ FullReportSub local1 local2=65535[?] local3 ; local1 = robot; .labelXXX; ++local2; if (local2 == 6[BOZ?]) { ! no code } else { local3 = Animates_array-->local2; if (local3 has rmungbit) { print "FC: ", (name) local3, " is no longer functional."; new_line; Clocker(); if (local2 >= 5) jump labelXXX; new_line; jump labelXXX; } LinkToRobot(local3,true); Clocker(); Perform(##Report); if (local2 >= 5) jump labelXXX; new_line; jump labelXXX; } return LinkToRobot(local1,true); ]; [ AllReportLocSub who cnt=65535 obj ; who = robot; .labelXXX; ++cnt; if (cnt == 6) { ! no code } else { obj = Animates_array-->cnt; if (obj has rmungbit) { print "FC: ", (name) obj, " is no longer in communication."; new_line; jump labelXXX; } LinkToRobot(obj,true); Perform(##Location); jump labelXXX; } return LinkToRobot(who,true); ]; [ ReportSub ; print "FC: Full report from ", (string) RobotNames-->CurrentRobot; new_line; LookAround(); InventorySub(); if (robot == Auda1) { if (Auda_listening) { print "Auditory circuits active."; new_line; } else { print "Auditory circuits inactive."; new_line; } } if (robot == Poet1) { Perform(##Touch,location); rtrue; } if (robot ~= Whiz1) rfalse; if (Current_pedestal) { print "Plugged in at ", (string) Pedestal_table-->Current_pedestal; new_line; rtrue; } "Unable to process queries at this time."; ]; [ LocationSub ; if (noun && noun ~= location) { Perform(##Examine,noun); rtrue; } if (OnWayToDestinationP(robot)) { RobotSay("Entering the ",0); } else { RobotSay("In the ",0); } if (robot in vehicle) { PrintObjectDesc(vehicle); } else { print (name) parent(robot); } "."; ]; [ LookWithSub ; if (second has transparent) { print "The "; PrintObjectDesc(noun); print " looks as before, only tinged by the color of the "; PrintObjectDesc(second); "."; } print "The "; PrintObjectDesc(second); " isn't transparent."; ]; [ ReachSub ; if (child(noun) ~= nothing) { print "There is something"; } else { print "There is nothing"; } if (noun has supporter) { print " sitting on the "; } else { print " inside the "; } PrintObjectDesc(noun); "."; ]; [ ReachForSub ; if (noun has takeable) { Perform(##Take,noun); rtrue; } if (noun in location) { "It's here! Now what?"; } "It is out of reach."; ]; [ PlayertoProp dir ; P_walk_dir = dir; return Perform(##Go,dir); ]; [ WalkToSub ; if (noun == vehicle) { @store noun (parent(vehicle)); } if (noun == Hell) { "FC: What makes you think you're not already there?"; } if (noun == location or robot) { return RobotSay(Robot_already_there-->CurrentRobot); } if (noun in Room_Holder) { if (Robot_follows-->CurrentRobot) { Robot_follows-->CurrentRobot = nothing; } StopMovement(robot); MovePerson(robot,noun); PreliminaryStuffBeforeLeaving(); RobotSay(Robot_starts_to_leave-->CurrentRobot); return Disregard_subsequent_orders(); } if (noun.person_ndx) { MovePerson(robot,parent(noun)); PreliminaryStuffBeforeLeaving(); if (noun hasnt rmungbit) { print "FC: "; PrintObjectDesc(noun); print "'s location: "; } else { print "FC: "; PrintObjectDesc(noun); print " is non-functional. Last known location: "; } print (name) parent(noun), ". Establishing path..."; new_line; RobotSay(Robot_starts_to_leave-->CurrentRobot); if (Robot_follows-->CurrentRobot) { Robot_follows-->CurrentRobot = nothing; } Robot_being_sought-->CurrentRobot = noun; return Disregard_subsequent_orders(); } if (noun in location) { return RobotSay("It's right here."); } return RobotSay("You'll have to tell me where it is first."); ]; [ Disregard_subsequent_orders ; if (~~P_cont) rfalse; new_line; print "FC: When "; PrintObjectDesc(robot); print " arrives, you'll have to tell "; ObjectivePronoun(robot); print " what to do then. I have too much to keep track of already."; new_line; return 2; ]; [ PreliminaryStuffBeforeLeaving ; if (parent(robot) == Tube1 or Tube2 && (camera in robot && Camera_plugged)) { Camera_plugged = false; print "(Unplugging "; PrintObjectDesc(camera); " first.)"; } if (Robot_on_platform ~= robot.person_ndx) rfalse; print "(getting off the "; PrintObjectDesc(Step_platform); print " first.)"; new_line; Robot_on_platform = ID_TWO_ROBOTS; rtrue; ]; [ HaltSub ; if (noun && noun ~= listening or dragging) { RobotSay("I can't do that to ",0); if (noun == People1) { print "the "; } PrintObjectDesc(noun); "."; } if (noun && noun == listening && robot == Auda1) { RobotSay("Okay. Auditory sensors deactivated."); Auda_listening = false; rtrue; } if (noun && noun == dragging && Drag_object_table-->CurrentRobot) { RobotSay("Okay. I'll stop dragging ",0); ObjectivePronoun(noun); print "."; new_line; Drag_object_table-->CurrentRobot = 0; rtrue; } if (noun) { return YukYuk(); } if (~~OnWayToDestinationP(robot)) { RobotSay("I wasn't going anywhere special anyway."); Robot_follows-->CurrentRobot = nothing; rtrue; } StopMovement(robot); RobotSay("I have stopped at the ",0); print (name) location, "."; new_line; Robot_follows-->CurrentRobot = nothing; rtrue; ]; [ FlySub ; return RobotSay("Robots are not usually equipped for flying."); ]; [ SmileSub ; return RobotSay("If only I could!"); ]; [ InPlayerIndirectly obj ; .labelXXX; if (~~obj) rfalse; if (obj in robot) rtrue; obj = parent(obj); jump labelXXX; ]; [ PreTradeSub local1 ; if (Current_robot_number_of_extensions == CCount(robot)) { RobotSay("I can't. My extensions are full."); rtrue; } if ((~~InPlayerIndirectly(second)) && (~~InPlayerIndirectly(noun))) { RobotSay("I'd better grasp one of them first."); return A_FAILURE; } if (noun == second) { RobotSay("You've asked me to replace something with itself."); return A_FAILURE; } if (~~InPlayerIndirectly(noun)) rfalse; local1 = noun; noun = second; second = local1; rfalse; ]; [ TradeSub env sz ; if (noun hasnt takeable) { return RobotSay("You'd better rethink that."); } sz = second.size; if (sz ~= noun.size) { RobotSay("That's tough to do since the ",0); PrintObjectDesc(noun); print " and the "; PrintObjectDesc(second); " aren't the same size."; } env = parent(noun); give noun on; move noun to robot; move second to env; RobotSay("Okay. It's done."); if (env == panel2 && (~~Iris_repaired) && IC5 in panel2 && obj1 in panel2 && chip3 in panel2) { new_line; (string) Robot_interrupts-->1, " OOOH! That felt good! Close my panel, big boy."; } if (env == groove2) { Wire_in_primary_channel = second; rtrue; } if (env ~= groove1) rfalse; Wire_in_secondary_channel = second; rtrue; ]; [ CutSub ; if (~~second) { RobotSay("With what?"); rtrue; } if (noun hasnt can_be_cut) { RobotSay("It won't cut."); rtrue; } if (noun has rmungbit) { RobotSay("It's already been cut."); rtrue; } if (second && second ~= water_cutters) { RobotSay("I don't think ",0); if (~~second.person_ndx) { print "the "; } PrintObjectDesc(second); " will work very well for this job."; } give noun rmungbit; give noun on; return RobotSay("Done."); ]; [ TouchSub local1 local2 ; if (robot == Poet1) { if (noun in Room_Holder) { local2 = location.descriptions_for_robots; local1 = local2-->0; } else if (location == InScope(noun)) { local2 = noun.item_descs; local1 = local2-->0; } if (local1 > 18) { return RobotSay(local2-->19); } return RobotSay("Sensory pads detect no abnormal flow."); } if (robot == Waldo1) { Perform(##Examine,noun); rtrue; } return RobotSay("Not me, man. Better ask someone else."); ]; [ InScope obj ; .labelXXX; if (obj in local_globals) rfalse; if (obj in Room_Holder) { return obj; } obj = parent(obj); jump labelXXX; ]; [ PushOnSub ; if (noun notin parent(robot)) { ICantSee(noun); rtrue; } if (~~noun.person_ndx) { return Perform(##Press,noun); } if (noun == robot) { "FC: I think you're following the path of Franklin."; } if (Robot_unhealth_level-->noun.person_ndx < 30) { RobotSay("I try, but ",0); DirectPronoun(noun); " keeps moving away."; } if (robot in Repair1 && Step_platform_in_place == 1) { RobotSay("Umph! Hard work, but consider it done!"); move noun to BLT2; Robot_on_platform = robot; Repair_platform_in_motion = true; if (~~QueueInterrupt(RobotRepairDaemon)-->0) { Queue(RobotRepairDaemon,2)-->0 = true; } give noun being_repaired; rtrue; } RobotSay("I'd like to, but there's no way to get ",0); ObjectivePronoun(noun); " up that high from where I am."; ]; [ RepairSub ; if (noun == dead_robot or red_cable or pink_cable or white_cable or blue_cable or black_cable or orange_cable or yellow_cable or green_cable or machine or Iris1 or Filtering_Computers) { return RobotSay("Things aren't that simple."); } return RobotSay("It doesn't seem to be in need of repairs."); ]; [ PrintNumber n thousands ; if (~~n) { print "0"; rtrue; } if (n > 999) { thousands = n / 1000; n = n % 1000; print thousands, ","; if (~~n) { print "000"; } else if (n < 10) { print "00", n; } else if (n < 100) { print "0", n; } else { print n; } } else { print n; } print ",000"; rtrue; ]; [ AdvancedSub ; if (Advanced_game) { "FC: You are already in the advanced situation."; } if (turns > 1) { (string) Robot_interrupts-->7, " Your request for the advanced game has been rejected since ", turns, " cycles have already transpired. Please consult your indoctrination manual for the proper procedure."; } print "FC: Request for advanced game acknowledged."; new_line; Queue(I_Tremor1,3); I_Tremor2(); new_line; QueueInterrupt(I_Tremor2)-->0 = 0; People_appear = 80; Queue(I_People1,People_appear)-->0 = true; RTD_kills = 2[?]; Acid_kills = 2[?]; First_malfunctions = 1; Second_malfunctions = 2; Third_malfunctions = 3; QueueInterrupt(I_Auda_hints)-->0 = 0; QueueInterrupt(I_Iris_hints)-->0 = 0; Robot_unhealth_level-->6 = 30; give Whiz1 rmungbit; AllReportLocSub(); Advanced_game = true; rtrue; ]; [ ImpossibleSub ; if (turns > 1) { "FC: It is impossible to do that now. Please refer to your indoctrination manual for the proper way to initiate the impossible game."; } Queue(NovaTimer,2)-->0 = true; print "FC: Okay, you asked for it..."; new_line; new_line; "FC INTERRUPT: External sensors detect huge radiation abnormalities in the star which provides Contra with all light and heat.^^WARNING! TIME CRITICAL!!^^External sensors detect significant instability in the star."; ]; [ NovaTimer ; new_line; print "FC INTERRUPT: Oh oh. Abnormalities in star approaching critical level. @{9} NOVA IMMINENT!^^So long from all the gang -- Iris, Waldo, Sensa, Auda, Poet, Whiz, FRED, and last but not least, we three FCs."; new_line; @quit; ]; [ WhySub ; if (robot ~= Whiz1) { return RobotSay("Sure beats me. You might ask Whiz..."); } return RobotSay("Please refer to your manual for proper querying procedures."); ]; [ RobotSay msg local2=1[?] ; if (robot ~= actor) { print (string) RobotNames-->CurrentRobot, ": "; } print (string) msg; if (~~local2) rtrue; new_line; rtrue; ]; [ DirectPronoun who ; if (who == Iris1 or Sensa1 or Auda1) { print "she"; rtrue; } if (who == People1) { print "they"; rtrue; } print "he"; rtrue; ]; [ ObjectivePronoun who ; if (who == Iris1 or Sensa1 or Auda1) { print "her"; rtrue; } if (who == People1) { print "them"; rtrue; } print "him"; rtrue; ]; [ ICantSee what print_newline=true UNUSED ; RobotSay(Cant_find_here-->CurrentRobot,0); if (what.person_ndx) { print " "; } else { print " any "; } PrintObjectDesc(what); print " here."; if (~~print_newline) rtrue; new_line; rtrue; ]; [ YukYuk ; return RobotSay(PickOne(Robot_yuks_table-->CurrentRobot)); ]; [ RobotCeasesToFunction r local2 local3 local4 ; if (r) { print "FC: "; PrintObjectDesc(r); print " is no longer functional."; new_line; } if (actor) { local3 = Robot_unhealth_level-->actor.person_ndx; if (local3 < 30) { robot = actor; actor = nothing; local4 = parent(robot); location = ((local4 in Room_Holder) ? local4 : (parent(local4))); CurrentRobot = robot.person_ndx; current_robot = robot; print "FC: Cryolink reestablished to ", (name) robot, "."; new_line; P_quote_flag = false; P_cont = 0; return 2[?]; } } .labelXXX; ++local2; if (local2 == 7[TRA?]) { print "FC: There's no point in continuing. All the robots are history and, for that matter, so are the people on the surface."; new_line; @quit; } local3 = Robot_unhealth_level-->local2; if (local3 >= 30) jump labelXXX; robot = Animates_array-->(local2 - 1); actor = nothing; local4 = parent(robot); location = ((local4 in Room_Holder) ? local4 : (parent(local4))); CurrentRobot = robot.person_ndx; current_robot = robot; print "FC: Cryolink established to ", (name) robot, "."; new_line; P_quote_flag = false; P_cont = 0; return 2[?]; ]; [ Iris1_action ; if (robot == Iris1) { if (Robot_unhealth_level-->1 > 29) { RobotCeasesToFunction(Iris1); return A_FAILURE; } Load_max = 75; Current_robot_number_of_extensions = 2; if (action ~= ##Examine) rfalse; if (~~Iris_repaired) { RobotSay("That's difficult for me to do until my visual function has been repaired."); rtrue; } if (noun ~= robot) rfalse; YukYuk(); rtrue; } if (action == ##Close or ##Open) { Perform(action,panel2); rtrue; } if (action ~= ##LookIn or ##Examine || panel2 hasnt open || (~~panel2.item_descs-->CurrentRobot)) rfalse; if (action == ##Examine) { panel2.item_descs-->CurrentRobot; } print "The "; PrintObjectDesc(panel2); print " is open"; if (child(panel2) ~= nothing) { print " and behind it I detect "; PrintContents(panel2); } "."; ]; [ Waldo1_action ; if (robot ~= Waldo1) rfalse; if (Robot_unhealth_level-->2 > 29) { RobotCeasesToFunction(Waldo1); return A_FAILURE; } Load_max = 100; if (microsurgical_extension has clothing) { Current_robot_number_of_extensions = 7; } else { Current_robot_number_of_extensions = 6; } if (action == ##Touch) { Perform(##Examine,noun); rtrue; } if (action ~= ##Examine || noun ~= robot) rfalse; YukYuk(); rtrue; ]; [ Sensa1_action ; if (robot ~= Sensa1) rfalse; if (Robot_unhealth_level-->3 > 29) { RobotCeasesToFunction(Sensa1); return A_FAILURE; } Load_max = 60; Current_robot_number_of_extensions = 3; if (action ~= ##Examine || noun ~= robot) rfalse; YukYuk(); rtrue; ]; [ Auda1_action ; if (robot ~= Auda1) rfalse; if (Robot_unhealth_level-->4 > 29) { RobotCeasesToFunction(Auda1); return A_FAILURE; } Load_max = 70; Current_robot_number_of_extensions = 1; if (action ~= ##Examine || noun ~= robot) rfalse; YukYuk(); rtrue; ]; [ Poet1_action ; if (robot ~= Poet1) rfalse; if (Robot_unhealth_level-->5 > 29) { RobotCeasesToFunction(Poet1); return A_FAILURE; } Load_max = 20; Current_robot_number_of_extensions = 3; if (action ~= ##Examine || noun ~= robot) rfalse; YukYuk(); rtrue; ]; [ Whiz1_action ; if (robot ~= Whiz1) rfalse; if (Robot_unhealth_level-->6 > 29) { RobotCeasesToFunction(Whiz1); return A_FAILURE; } Load_max = 50; Current_robot_number_of_extensions = 2; if (action == ##Examine) { if (noun == robot) { YukYuk(); rtrue; } if (~~Current_pedestal) rfalse; Perform(##Ask,noun); rtrue; } if (action ~= ##MoveTo or ##Follow or ##WalkTo or ##Go || (~~Current_pedestal)) rfalse; print "(Unplugging first.)"; new_line; Current_pedestal = P_LEN; rfalse; ]; [ General_Animate_Action ; if (action == ##Follow or ##Ask or ##WalkTo or ##CryolinkTo) { noun = Animates_array-->(noun.person_ndx - 1); rfalse; } if (noun.person_ndx) { ICantSee(MasterObject(noun)); rtrue; } if (~~second.person_ndx) rfalse; ICantSee(MasterObject(second)); rtrue; ]; [ Two_Robots_action ; if (Robot_unhealth_level-->(Paired_robots-->1).person_ndx > 29 || Robot_unhealth_level-->(Paired_robots-->2).person_ndx > 29) { print "FC: Unable to comply with those robots."; new_line; LinkToRobot(Paired_robots-->1); rtrue; } if (action ~= ##Move or ##Take) { print "FC: Using two robots will not help accomplish that task."; new_line; LinkToRobot(Paired_robots-->1); rtrue; } if (noun == dead_robot && wire has concealed) { if (cabinet hasnt open) { print "FC: Neither robot can detect that object here."; new_line; LinkToRobot(Paired_robots-->1); rtrue; } print "FC: The robots have moved it."; new_line; move dead_robot to location; give wire ~concealed; LinkToRobot(Paired_robots-->1); give dead_robot on; rtrue; } if (noun == dead_robot && wire hasnt concealed) { print "FC: There's nothing to be gained by moving it again."; new_line; LinkToRobot(Paired_robots-->1); rtrue; } print "FC: Using two robots will not help accomplish that task."; new_line; LinkToRobot(Paired_robots-->1); rtrue; LinkToRobot(Paired_robots-->1); rfalse; ]; [ I_Tremor1 local1 ; Pipes_fixed = false; if (Robot_unhealth_level-->3 < 30) { new_line; print (string) Robot_interrupts-->3, " Secondary tremor detected in lower level. Intensity: 7.3. Projected damage: Cooling systems for FCs in Maintenance Area."; new_line; } if (Sensa1 in Corridor_4) { local1 = Acid_mist_desc_table-->3; new_line; if (robot == Sensa1) { RobotSay(local1); } else { print (string) Robot_interrupts-->3, " ", (string) local1; new_line; } } else if (Sensa1 in Acidmist) { local1 = Acid_falling_desc_table-->3; new_line; if (robot == Sensa1) { RobotSay(local1); } else { print (string) Robot_interrupts-->3, " ", (string) local1; new_line; } } if (Auda1 in Corridor_4) { local1 = Acid_mist_desc_table-->4; new_line; if (robot == Auda1) { RobotSay(local1); } else { print (string) Robot_interrupts-->4, " ", (string) local1; new_line; } } else if (Auda1 in Acidmist) { local1 = Acid_falling_desc_table-->4; new_line; if (robot == Auda1) { RobotSay(local1); } else { print (string) Robot_interrupts-->4, " ", (string) local1; new_line; } } if (Poet1 in Corridor_4) { local1 = Acid_mist_desc_table-->5; new_line; if (robot == Poet1) { RobotSay(local1); } else { print (string) Robot_interrupts-->5, " ", (string) local1; new_line; } } else if (Poet1 in Acidmist) { local1 = Acid_falling_desc_table-->5; new_line; if (robot == Poet1) { RobotSay(local1); } else { print (string) Robot_interrupts-->5, " ", (string) local1; new_line; } } if (Waldo1 notin Acidmist) rfalse; local1 = Acid_falling_desc_table-->2; new_line; if (robot == Waldo1) { return RobotSay(local1); } print (string) Robot_interrupts-->2, " ", (string) local1; new_line; rtrue; ]; [ I_Tremor2 local1 local2 local3 ; local1 = Monitor_settings-->4; local2 = Monitor_settings-->5; local3 = Monitor_settings-->6; if (local1 < 70) { local1 = local1 + 10; } else { local1 = local1 - 20; } if (local2 < 70) { local2 = local2 + 10; } else { local2 = local2 - 20; } if (local3 < 70) { local3 = local3 + 10; } else { local3 = local3 - 20; } Water_level = local1; Mineral_level = local2; Lighting_level = local3; if (Robot_unhealth_level-->3 >= 30) rfalse; new_line; (string) Robot_interrupts-->3, " Secondary tremor detected by Filtering Computers. Intensity: 8.4. Projected damage: Automatic controls for surface transportation; Automatic controls for Hydroponics Area."; ]; [ I_Weather least ; Tower1Pressure = PressureDifferentials(Tower1Pressure,Monitor_settings-->1); Tower2Pressure = PressureDifferentials(Tower2Pressure,Monitor_settings-->2) - Storm_intensity; if (Tower2Pressure < 0) { Tower2Pressure = 0; } Tower3Pressure = PressureDifferentials(Tower3Pressure,Monitor_settings-->3); least = ((Tower2Pressure - Tower3Pressure < 0) ? (0 - (Tower2Pressure - Tower3Pressure)) : (Tower2Pressure - Tower3Pressure)); Winds = least + ((Tower1Pressure - Tower2Pressure < 0) ? (0 - (Tower1Pressure - Tower2Pressure)) : (Tower1Pressure - Tower2Pressure)); Temperature = 60 + ((Tower1Pressure + Tower2Pressure + Tower3Pressure) / 3 - 60) * 2; Queue(I_Weather,5)-->0 = true; rfalse; ]; [ PressureDifferentials current_pressure p_setting diff ; if (current_pressure == p_setting) { return current_pressure; } diff = ((current_pressure - p_setting < 0) ? (0 - (current_pressure - p_setting)) : (current_pressure - p_setting)) / 5; if (~~diff) { diff = 1; } if (current_pressure > p_setting) { return current_pressure - diff; } return current_pressure + diff; ]; [ I_Decay ; ++Storm_intensity; Queue(I_Decay,25)-->0 = true; rfalse; ]; [ I_Food production ; if (turns > RTD_kills) { Water_level = Monitor_settings-->4 - 20; Mineral_level = Monitor_settings-->5 - 15; Lighting_level = Monitor_settings-->6 - 20; } else { Water_level = Monitor_settings-->4; Mineral_level = Monitor_settings-->5; Lighting_level = Monitor_settings-->6; } if (Water_level < 0) { Water_level = 0; } if (Mineral_level < 0) { Mineral_level = 0; } if (Lighting_level < 0) { Lighting_level = 0; } production = 0; if (Water_level ~= 70) { production = ((Water_level - 70 < 0) ? (0 - (Water_level - 70)) : (Water_level - 70)) + 0; } if (Mineral_level ~= 30) { production = production + ((Mineral_level - 30 < 0) ? (0 - (Mineral_level - 30)) : (Mineral_level - 30)); } if (Lighting_level ~= 50) { production = production + ((Lighting_level - 50 < 0) ? (0 - (Lighting_level - 50)) : (Lighting_level - 50)); } Food_level = 100 - production; if (Food_level && Food_level >= 0) rfalse; new_line; print (string) Robot_interrupts-->7, " The food situation has become totally unsalvageable. Continued existence is meaningless. All systems are shutting down. And you're the first system to be disconnected."; new_line; @quit; rtrue; ]; [ WinGame final_recovery ; new_line; print (string) Robot_interrupts-->7; new_line; new_line; print "All systems returning to normal.^ Weather systems slowly approaching balance.^ Hydroponic systems working at full capacity.^Surface life in recovery mode.^^Extrapolation based on current weather systems and food supplies:^ Total recovery in "; final_recovery = ((Tower2Pressure - Tower3Pressure < 0) ? (0 - (Tower2Pressure - Tower3Pressure)) : (Tower2Pressure - Tower3Pressure)) / 2; Winds = final_recovery + ((Tower1Pressure - Tower2Pressure < 0) ? (0 - (Tower1Pressure - Tower2Pressure)) : (Tower1Pressure - Tower2Pressure)); print Winds, " cycles."; new_line; print " Current surface casualties: "; PrintNumber(Casualties); new_line; print " Projected casualties during recovery: "; Temperature = casualties_this_turn * Winds; if (turns > 75) { Temperature = Temperature + (100 - Food_level); } PrintNumber(Temperature); Casualties = Casualties + Temperature; new_line; print " Original population: 30,172,000"; new_line; print " Total possible survivors: "; if (Casualties > 30172 || Casualties < 0) { @store Casualties 30172[?]; } PrintNumber(30172 - Casualties); new_line; new_line; print "This score gives you the possibility of being considered for "; if (~~Advanced_game) { if (Casualties > 700) { print "being burned in effigy"; Winds = 7; } else if (Casualties > 600) { print "being a vegetable after your tour of duty"; Winds = 6; } else if (Casualties > 500) { print "a brain transplant (with the brain provided by a rat)"; Winds = 5; } else if (Casualties > 300) { print "a possible lobotomy"; Winds = 4; } else if (Casualties > 100) { print "savior of a planet"; Winds = 3; } else if (Casualties > 40) { print "being treated as a local god"; Winds = 2; } else { print "a home in the country and an unlimited bank account"; Winds = 1; } } else if (Casualties > 400) { print "a brain transplant (with the brain provided by a rat)"; Winds = 5; } else if (Casualties > 250) { print "a possible lobotomy"; Winds = 4; } else if (Casualties > 150) { print "savior of a planet"; Winds = 3; } else if (Casualties > 95) { print "being treated as a local god"; Winds = 2; } else { print "a home in the country and an unlimited bank account"; Winds = 1; } print ". On a scale of 1 (the best) to "; if (~~Advanced_game) { print "7"; } else { print "5"; } print " (the worst), your ranking was ", Winds, "."; new_line; new_line; print "You successfully completed your task, bringing the Filtering Computers back into balance, in ", turns, " cycles."; new_line; @quit; ]; [ I_Score ; casualties_this_turn = 0; if (Winds > 50) { casualties_this_turn = (Winds - 25) / 3; } else if (Winds > 25) { casualties_this_turn = (Winds - 25) / 5; } if (Temperature < 40) { casualties_this_turn = casualties_this_turn + (40 - Temperature) / 3; } if (turns > RTD_kills && Food_level < 50) { ++casualties_this_turn; } TallyTrafficCasualties(); Casualties = Casualties + casualties_this_turn; if (Casualties <= 30000) rfalse; LoseTheGame(); PrintScoreAndQuit(); rfalse; ]; [ TallyTrafficCasualties sw1 sw2 sw3 ; sw1 = ((first_switch hasnt on) ? false : true); sw2 = ((second_switch hasnt on) ? false : true); sw3 = ((third_switch hasnt on) ? false : true); if (~~sw1) { if (NumFloaters > 0) { casualties_this_turn = casualties_this_turn + NumFloaters; NumFloaters = 0; } if (FloaterCrashRate > 0) { FloaterCrashRate = 0; } } else if (sw1) { NumFloaters = NumFloaters + 2; if (turns > RTD_kills) { ++FloaterCrashRate; ++casualties_this_turn; } } if (~~sw2) { if (NumTaxis > 0) { NumTaxis = 0; } if (TaxiCrashRate > 0) { TaxiCrashRate = 0; } } else if (sw2) { ++NumTaxis; if (turns > RTD_kills) { ++TaxiCrashRate; ++casualties_this_turn; } } if (~~sw3) { if (GlideRampSpeed > 30) { GlideCasualities = 1; ++casualties_this_turn; GlideRampSpeed = GlideRampSpeed - 5; return GlideRampSpeed; } GlideCasualities = 0; rtrue; } if ((~~sw3) || turns <= RTD_kills) rfalse; GlideRampSpeed = GlideRampSpeed + 5; if (GlideRampSpeed > 200) { GlideRampSpeed = 200; } if (GlideRampSpeed <= 30) rfalse; ++casualties_this_turn; ++GlideCasualities; rtrue; ]; [ I_Wire_Message ; if (Wire_in_primary_channel ~= wire || Wire_in_secondary_channel ~= orange_wire) rfalse; new_line; print (string) Robot_interrupts-->7, " Approaching balance between all three units. Attempting internal stabilization. Reset codes may be entered now for planetside stabilization."; new_line; QueueInterrupt(I_Wire_Message)-->0 = 0; rtrue; ]; [ RobotRepairDaemon who ndx ; if ((who = child(BLT3)) ~= nothing) { move who to Repair3; if (who has being_repaired) { ndx = who.person_ndx; if (ndx && Robot_unhealth_level-->ndx) { new_line; print (string) Robot_interrupts-->ndx, " It's great to be back!"; new_line; Robot_unhealth_level-->ndx = 0; give who ~rmungbit; } } give who ~being_repaired; Robot_on_platform = ID_TWO_ROBOTS; } if ((who = child(BLT1)) ~= nothing) { move who to BLT3; } if ((who = child(BLT2)) ~= nothing) { move who to BLT1; Queue(RobotRepairDaemon,65535)-->0 = true; } if (child(BLT2) ~= nothing || child(BLT1) ~= nothing || child(BLT3) ~= nothing) rfalse; QueueInterrupt(RobotRepairDaemon)-->0 = 0; Repair_platform_in_motion = false; rfalse; ]; [ I_Robotkiller cnt health ; .labelXXX; ++cnt; if (cnt == 7) rfalse; health = Robot_unhealth_level-->cnt; if (health <= 0) jump labelXXX; ++health; Robot_unhealth_level-->cnt = health; if (health == First_malfunctions) { new_line; print (string) Robot_interrupts-->cnt, " ", (string) Robot_shutting_down_table-->cnt-->1; new_line; jump labelXXX; } if (health == Second_malfunctions) { new_line; print (string) Robot_interrupts-->cnt, " ", (string) Robot_shutting_down_table-->cnt-->2; new_line; jump labelXXX; } if (health ~= Third_malfunctions) jump labelXXX; new_line; print (string) Robot_interrupts-->cnt, " ", (string) Robot_shutting_down_table-->cnt-->3; new_line; JigsUp("Oh oh. Trouble ....",Animates_array-->(cnt - 1)); jump labelXXX; ]; [ I_Iris_hints ; ++Iris_unfixed_counter; if (Iris_repaired || Iris1 has rmungbit) { QueueInterrupt(I_Iris_hints)-->0 = 0; rtrue; } if (Iris_unfixed_counter == 50) { new_line; (string) Robot_interrupts-->1, " You may not be aware of this, but I'm not working. I need to get repaired."; } if (Iris_unfixed_counter == 80) { new_line; (string) Robot_interrupts-->1, " Hey, I could really help a lot if you fixed me. All it takes is one little IC."; } if (Iris_unfixed_counter ~= 120) rfalse; new_line; print (string) Robot_interrupts-->1, " You can get some information on repairing me at the Advisory Peripheral, if you haven't already asked."; new_line; QueueInterrupt(I_Iris_hints)-->0 = 0; rtrue; ]; [ I_Auda_hints ; if (People1 in parent(Auda1)) { QueueInterrupt(I_Auda_hints)-->0 = 0; new_line; (string) Robot_interrupts-->4, " Some talking mechanisms just entered the room."; } Queue(I_Auda_hints,65535)-->0 = true; rfalse; ]; [ People1_action ; if (action == ##Examine or ##Give or ##Count or ##Wake or ##Ask or ##Follow) rfalse; if (People1 notin location) { ICantSee(People1); rtrue; } if (action == ##Poke or ##Kill) { if (water_cutters in robot) { if (PeopleCanBeHeard()) { PrintAudaListening(); print "~That robot's got some nerve! Grab that thing while I disarm it!~^~You've got it, pal. I'll get its extensions.~^~Fine. I've got the weapon. Shut that stupid thing off.~^~My pleasure.~"; new_line; new_line; } } else if (PeopleCanBeHeard()) { PrintAudaListening(); print "~What a joke. Turn that thing off, would you?~^~My pleasure.~"; new_line; } print (string) RobotNames-->CurrentRobot, ": "; JigsUp("They're shutting me off!",robot); return A_FAILURE; } print "They don't respond."; new_line; return A_FAILURE; ]; [ LoseTheGame ; new_line; print (string) Robot_interrupts-->7, "It hardly seems worthwhile continuing to exist. I've enjoyed our relationship, though it was a little disappointing in the long run. Since there aren't enough survivors left on the surface to continue, I'm yanking all of our plugs. Ciao, loser."; new_line; new_line; rtrue; ]; [ CPU_Room_action local1 ; if (local1 ~= 1[?] || robot ~= Iris1 || action ~= ##Go || noun ~= Historical_Pedestal_Object) rfalse; RobotSay("I can't go in that direction. Internal mapping does not extend into those areas."); rtrue; ]; [ Weather_Banks_action rarg weather_desc ; if (rarg ~= M_LOOK) rfalse; PrintCurrentLocation(); if (robot ~= Iris1 || (~~Iris_repaired)) rtrue; if (Temperature < 31) { if (Winds < 10) { weather_desc = "snow"; } else if (Winds < 30) { weather_desc = "snowstorm"; } else if (Winds < 60) { weather_desc = "heavy snow"; } else if (Winds < 80) { weather_desc = "blinding snowstorm"; } else if (Winds < 100) { weather_desc = "blizzard"; } else { weather_desc = "raging blizzard"; } } else if (Temperature < 41) { if (Winds < 10) { weather_desc = "light sleet"; } else if (Winds < 20) { weather_desc = "heavy sleet"; } else if (Winds < 30) { weather_desc = "blinding sleet"; } else if (Winds < 40) { weather_desc = "wall of sleet"; } else if (Winds < 50) { weather_desc = "torrential sleet"; } else { weather_desc = "raging sleet storm"; } } else if (Winds < 10) { weather_desc = "fine, light mist"; } else if (Winds < 20) { weather_desc = "light drizzle"; } else if (Winds < 30) { weather_desc = "rain shower"; } else if (Winds < 40) { weather_desc = "downpour"; } else if (Winds < 50) { weather_desc = "wall of rain"; } else { weather_desc = "hurricane-like storm"; } print "The monitors for surface weather show:^^ TEMP: ", Temperature, " WINDS: ", Winds, "^ PRECIPITATION: a ", (string) weather_desc, "^ TOWER PRESSURES: Tower 1 -- ", Tower1Pressure, "^ Tower 2 -- ", Tower2Pressure, "^ Tower 3 -- ", Tower3Pressure; IrisReportsOnControls(); rtrue; ]; [ IrisReportsOnControls cnt local2 local3 room ; if (Iris1 in Weather_Banks) { room = Weather; } else if (Iris1 in RTD_Banks) { room = RTD; } else { room = Hydro; } .labelXXX; if (Animates_array-->local2 in room) { ++cnt; } if (++local2 <= 5) jump labelXXX; new_line; if (~~cnt) rtrue; print "Through the monitors I can see "; local2 = 0; .labelXXX; local3 = Animates_array-->local2; if (local3 in room && robot ~= local3) { PrintObjectDesc(local3); if (cnt == 1) { jump labelXXX; } if (cnt == 2) { print " and "; } else { print ", "; } --cnt; } ++local2; jump labelXXX; .labelXXX; " in the ", (name) room, "."; ]; [ Supplies_North_action rarg itm ; if (rarg ~= M_LOOK) rfalse; if (robot == Iris1 && (~~Iris_repaired)) { print (string) PickOne(Too_dark_to_see_table); new_line; return 2[?]; } print (string) Supply_room_desc_table-->CurrentRobot; if ((itm = child(first_socket)) ~= nothing && robot ~= Auda1) { print ". A "; PrintObjectDesc(itm); print " sits in the "; PrintObjectDesc(first_socket); } else if (robot ~= Auda1) { print ". The "; PrintObjectDesc(first_socket); print " is empty"; } if ((itm = child(secondary_socket)) ~= nothing && robot ~= Auda1) { if (child(first_socket) ~= nothing) { print ", and"; } else { print ", but"; } print " a "; PrintObjectDesc(itm); print " sits in the "; PrintObjectDesc(secondary_socket); } else if (robot ~= Auda1) { if (child(first_socket) ~= nothing) { print ", but the "; PrintObjectDesc(secondary_socket); print " is empty"; } else { print " as is the "; PrintObjectDesc(secondary_socket); } } print "."; if (orange_wire in machine && machine has open) { print (string) Panel_open_table-->CurrentRobot; PrintObjectDesc(orange_wire); print (string) Exposure_table-->CurrentRobot; } if (FUSE in machine && machine has open && robot ~= Auda1) { if (robot == Iris1) { print " A small glass fuse it sits in the panel."; } else if (robot == Poet1) { print " Meanwhile, a "; PrintObjectDesc(FUSE); print " monitors the situation."; } else { print " A "; PrintObjectDesc(FUSE); print " sits in the panel."; } } if (machine has open && robot ~= Auda1) { print (string) Buttons_panel_desc-->CurrentRobot; } if (IC4 in first_socket && IC3 in secondary_socket && (robot == Sensa1 or Poet1 or Auda1 || (robot == Iris1 && Iris_repaired))) { print " ", (string) Orange_button_pressed-->CurrentRobot; } new_line; rtrue; ]; [ RTD_Banks_action rarg ; if (rarg ~= M_LOOK) rfalse; PrintCurrentLocation(); if (robot ~= Iris1 || (robot == Iris1 && (~~Iris_repaired))) rtrue; print "All around I can see monitors which show the status of the Transit Systems on the surface of the planet. The monitors describe the following situation:^^ FLOATERS AIRBORNE: ", NumFloaters, "000^ TAXIS IN USE: ", NumTaxis, "000^ GLIDE RAMP SPEEDS: ", GlideRampSpeed, " mph^ FLOATER CRASH RATE: ", FloaterCrashRate, "0^ TAXI ACCIDENT RATE: ", TaxiCrashRate, "0^ GLIDE RAMP CASUALTIES: ", GlideCasualities, "0"; return IrisReportsOnControls(); ]; [ Servo_Systems_action rarg wat_lv min_lv light_lv nonneg_water nonneg_mineral nonneg_light ; if (rarg ~= M_LOOK) rfalse; if (robot ~= Iris1) { PrintCurrentLocation(); rtrue; } if (~~Iris_repaired) { PrintCurrentLocation(); rtrue; } nonneg_water = ((Water_level - 70 < 0) ? (0 - (Water_level - 70)) : (Water_level - 70)) + 0; nonneg_mineral = ((Mineral_level - 30 < 0) ? (0 - (Mineral_level - 30)) : (Mineral_level - 30)) + 0; nonneg_light = ((Lighting_level - 50 < 0) ? (0 - (Lighting_level - 50)) : (Lighting_level - 50)) + 0; if (Water_level > 70) { wat_lv = "high"; } else if (Water_level == 70) { wat_lv = " ="; } else { wat_lv = "low"; } if (Mineral_level > 30) { min_lv = "high"; } else if (Mineral_level == 30) { min_lv = " ="; } else { min_lv = "low"; } if (Lighting_level > 50) { light_lv = "high"; } else if (Lighting_level == 50) { light_lv = " ="; } else { light_lv = "low"; } print "Through the monitors I can see the following information:^^ LEVEL SETTING OUTPUT^WATER: "; PrintNumAndPadWithSpaces(Water_level); PrintNumAndPadWithSpaces(Monitor_settings-->4); print (string) wat_lv; new_line; print "MINERALS: "; PrintNumAndPadWithSpaces(Mineral_level); PrintNumAndPadWithSpaces(Monitor_settings-->5); print (string) min_lv; new_line; print "LIGHTING: "; PrintNumAndPadWithSpaces(Lighting_level); PrintNumAndPadWithSpaces(Monitor_settings-->6); print (string) light_lv; new_line; print "FOOD TONS: "; if (Food_level < 100 && Food_level > 9) { print " "; } else if (Food_level < 10) { print " "; } print Food_level, " "; if (Food_level > 75) { print "optimal"; } else if (Food_level > 50) { print " fair"; } else if (Food_level > 25) { print " poor"; } else { print "critical"; } IrisReportsOnControls(); rtrue; ]; [ PrintNumAndPadWithSpaces num ; if (num < 10) { print " "; } else if (num < 100) { print " "; } print num, " "; rfalse; ]; [ Wedge_FCN ; if (Step_platform_in_place == 2) { if (location == Hallway_Junction) { return Human_Entry; } if (location ~= Human_Entry) rfalse; return Hallway_Junction; } RobotSay("I can't climb the step."); rfalse; ]; [ Junction_Room_action rarg ; if (rarg == M_HANDLED) { if (Step_platform_in_place ~= 2) rfalse; give Step_platform worn; move Step_platform to location; rfalse; } if (rarg == M_LOOK) { PrintCurrentLocation(); if (Step_platform_in_place == 2 && robot ~= Auda1) { print "The "; PrintObjectDesc(Step_platform); print " is positioned by the step."; new_line; move Step_platform to location; rtrue; } give Step_platform ~worn; rtrue; } if (rarg ~= M_ENTER) rfalse; if (Step_platform_in_place == 2) { move Step_platform to location; rtrue; } give Step_platform ~worn; rtrue; ]; [ General_Repair_action rarg local2 ; if (rarg == M_HANDLED) { if (Step_platform_in_place ~= 1) rfalse; give Step_platform worn; rfalse; } if (rarg ~= M_LOOK) rfalse; PrintCurrentLocation(); print "The "; PrintObjectDesc(BLT2); print " is "; if (~~Repair_platform_in_motion) { print "not "; } print "in motion"; if (location == Repair1 && (local2 = child(BLT2)) ~= nothing) { ! no code } else if (location == Repair2 && (local2 = child(BLT1)) ~= nothing) { ! no code } else if (location == Repair3) { local2 = child(BLT3); } if (local2) { print ", moving "; if (~~local2.person_ndx) { print "a "; } PrintObjectDesc(local2); } print "."; new_line; if (Step_platform_in_place == 1 && location == Repair1) { print "The "; PrintObjectDesc(Step_platform); print " is positioned at the base of the "; PrintObjectDesc(BLT2); "."; } give Step_platform ~worn; rtrue; ]; [ Sleep_Chamber_action rarg ; if (rarg ~= M_BEFORE || noun ~= tool_bag || tool_bag notin robot || action ~= ##Take) rfalse; Tool_bag_thief = robot; QueueInterrupt(People_asleep_daemon)-->0 = 0; Queue(People_after_thief,65535)-->0 = true; rtrue; ]; [ FCMaint_action rarg ; if (rarg ~= M_LOOK) rfalse; PrintCurrentLocation(); give WHEEL ~worn; if ((~~Leaky_pipes_desc_table-->CurrentRobot) || Pipes_fixed) rtrue; print (string) Leaky_pipes_desc_table-->CurrentRobot; new_line; give WHEEL worn; rtrue; ]; [ Corridor_4_action rarg ; if (rarg ~= M_LOOK || Pipes_fixed || robot == Whiz1 || robot == Waldo1) rfalse; PrintCurrentLocation(); print (string) Acid_mist_desc_table-->CurrentRobot; new_line; rtrue; ]; [ General_Sky3_action rarg ; if (rarg ~= M_BEFORE || action ~= ##Drop) rfalse; RobotSay("The ",0); PrintObjectDesc(noun); print " is whisked up by the force of the tube."; new_line; if (noun in Sky1) { move noun to Weather; rtrue; } if (noun in Sky2) { move noun to Hydro; rtrue; } if (noun notin Sky3) rfalse; move noun to RTD; rtrue; ]; [ Control_Areas_action rarg lev1 lev2 lev3 ndx ; if (rarg ~= M_LOOK) rfalse; PrintCurrentLocation(); if (robot == Auda1) rtrue; if (location == Weather) { lev1 = first_dial; lev2 = second_dial; lev3 = third_dial; } else { ndx = 3; lev1 = first_lever; lev2 = second_lever; lev3 = third_lever; } print "The "; PrintObjectDesc(lev1); print " is set to ", Monitor_settings-->(1 + ndx), ", the "; PrintObjectDesc(lev2); print " is set to ", Monitor_settings-->(2 + ndx), ", and the "; PrintObjectDesc(lev3); " is set to ", Monitor_settings-->(3 + ndx), "."; ]; [ Acidmist_action rarg ; if (rarg == M_HANDLED) { if (Pipes_fixed || Robot_unhealth_level-->CurrentRobot) rfalse; Robot_unhealth_level-->CurrentRobot = 1; rfalse; } if (rarg ~= M_LOOK || Pipes_fixed) rfalse; PrintCurrentLocation(); if (robot == Whiz1) rtrue; print (string) Acid_falling_desc_table-->CurrentRobot; new_line; rtrue; ]; [ HOME_action ; if (action ~= ##Open) rfalse; RobotSay(Open_cryogenic_home_table-->CurrentRobot); print "As the door swings open you are blinded by intense light and incredible pain. Just before everything overloads and you fade from existence, you can make out a shape outside, holding onto the door of the cylinder, and then everything goes dark."; new_line; new_line; @quit; ]; [ Panel2_action local1 local2 ; if (action == ##Examine or ##LookAround) { if (panel2 hasnt open) rfalse; local2 = panel2.item_descs; local1 = local2-->(12 + CurrentRobot); if (~~local1) rfalse; RobotSay(local1); print "The "; PrintObjectDesc(panel2); " is open."; } if (action == ##Open) { if (robot ~= Waldo1) { RobotSay("I'm not equipped to do that to the ",0); PrintObjectDesc(panel2); "."; } if (microsurgical_extension hasnt clothing) { return RobotSay("It's too delicate for my normal extensions."); } if (~~Iris_repaired) rfalse; RobotSay("Opened."); give panel2 open; new_line; print (string) Robot_interrupts-->1, " Hey! Who turned the lights out?"; new_line; Iris_repaired = false; rtrue; } if (action == ##Close && robot ~= Waldo1) { RobotSay("I'm not equipped to do that to the ",0); PrintObjectDesc(panel2); "."; } if (action ~= ##Close) rfalse; RobotSay("Closed."); give panel2 ~open; if (IC5 in panel2 && obj1 in panel2 && chip3 in panel2) { if (Iris_repaired) rtrue; Iris_repaired = true; new_line; (string) Robot_interrupts-->1, " You never looked so good."; } if (~~Iris_repaired) rtrue; Iris_repaired = false; new_line; print (string) Robot_interrupts-->1, " Where'd everybody go?"; new_line; rtrue; ]; [ BASKET_action ; if (action ~= ##StepOn or ##StandOn or ##ClimbOn) rfalse; RobotSay("It won't support my weight."); rtrue; ]; [ General_IC_action ; if (action == ##Take && noun in panel2 && panel2 hasnt open) { ICantSee(noun); return A_FAILURE; } if (action ~= ##Insert) rfalse; if (second == first_socket or secondary_socket) { if (child(second) ~= nothing) { RobotSay("The ",0); PrintObjectDesc(second); " is already full."; } move noun to second; RobotSay("Done."); if (noun ~= IC5 or IC3) rtrue; if (robot == Sensa1) { "Surges of electricity flow."; } if (robot == Poet1) { "I can't place the tune, but I recognize the humming."; } if (robot ~= Whiz1) rtrue; print "Device now warming up."; new_line; rtrue; } if (second ~= Iris1) rfalse; Perform(action,noun,panel2); rtrue; ]; [ Top_shelf_action local1 ; if (action == ##LookIn && (~~Robot_on_platform)) { return RobotSay("It's too high up there."); } if (action ~= ##Close) rfalse; YukYuk(); rtrue; ]; [ Repair_platform_action ndx ; ndx = robot.person_ndx; if (action == ##ClimbOn) { if (Step_platform in location) { if (~~Robot_on_platform) { Robot_on_platform = ndx; RobotSay("Okay. I'm standing on the ",0); PrintObjectDesc(Step_platform); " now."; } if (ndx == Robot_on_platform) { RobotSay("I'm already on it."); rtrue; } RobotSay("Not while another robot is already on it."); rtrue; } if (Step_platform in robot) { return RobotSay("Not while I'm grasping it."); } ICantSee(Step_platform); rtrue; } if (action == ##Take && Robot_on_platform) { if (ndx == Robot_on_platform) { print "(getting off "; PrintObjectDesc(Step_platform); print ")"; new_line; Robot_on_platform = ID_TWO_ROBOTS; rfalse; } RobotSay("Not while another robot is on it."); rtrue; } if (action ~= ##Untie) rfalse; Perform(##TakeDown,noun); rtrue; ]; [ Microsurgical_extension_action ; if (robot == Waldo1 || action ~= ##Wear) rfalse; RobotSay("I'm not equipped to do that."); rtrue; ]; [ Cabinet_action ; if (action == ##Open) { RobotSay("I don't detect any easy way to do that."); rtrue; } if (robot == Poet1 or Sensa1 && action == ##Examine or ##Touch) { give flowswitch ~concealed; rfalse; } if (action ~= ##Close || cabinet hasnt open) rfalse; Panel_opened = false; rfalse; ]; [ Flowswitch_action ; if (action == ##SwitchTo) { if (robot ~= Sensa1) { return RobotSay("I can't seem to make it work."); } if (Panel_opened) { return RobotSay("It's already been turned."); } Panel_opened = true; give cabinet open; RobotSay("The flow of electrons aligns and the panel opens."); give cabinet on; print (string) dead_robot.item_descs-->CurrentRobot; new_line; rtrue; } if (action ~= ##Examine || robot ~= Sensa1) rfalse; return RobotSay("I feel the vibrations running through this flowswitch. The outer plate and the inner plates must be aligned properly for it to work."); ]; [ Unnamed_ob2_action ; if (action == ##PutOn or ##Take) { RobotSay("I can't manage it. The ",0); PrintObjectDesc(dead_robot); " is too heavy."; } if (action == ##Move) { RobotSay("I tried, but I failed."); rtrue; } if (action ~= ##Examine || wire has on || dead_robot notin Repair3) rfalse; RobotSay("There's a ",0); PrintObjectDesc(wire); " here that might prove useful."; ]; [ Wire_action ; if (action == ##Trade or ##Remove or ##Take && wire hasnt rmungbit) { RobotSay("The ",0); PrintObjectDesc(wire); print " is firmly attached to the "; PrintObjectDesc(dead_robot); ". I'll need a tool to remove it."; } if (action == ##Cut && second == microsurgical_extension) { RobotSay("The ",0); PrintObjectDesc(wire); print " is too thick and would ruin the "; PrintObjectDesc(microsurgical_extension); "."; } if (action ~= ##PutOn or ##Insert || robot notin Tube2 || second ~= groove2 || red_cable in groove2) rfalse; Wire_in_primary_channel = wire; rfalse; ]; [ Vehicle_action local1 ; if (local1 == 3[BAR?]) { print "Through the "; PrintObjectDesc(vehicle); print " I can detect the following:"; new_line; print (string) parent(vehicle).descriptions_for_robots-->CurrentRobot; new_line; rtrue; } if (local1 == 1[?]) { if (action == ##Take && noun in location) { RobotSay("I can't reach it from here."); rtrue; } if (action == ##Drop && noun in robot) { RobotSay("There's no convenient place to put anything down."); rtrue; } if (action == ##Throw) { if (noun in robot) { RobotSay("Thrown."); move noun to parent(vehicle); rtrue; } ICantSee(noun); rtrue; } if (action ~= ##MoveTo or ##Follow or ##WalkTo or ##Go) rfalse; return RobotSay("An unlikely request, considering where I am."); } if (local1 ~= 0 || action ~= ##LookIn) rfalse; if (Car_passenger) { RobotSay("I can detect ",0); PrintObjectDesc(Car_passenger); print " inside the "; PrintObjectDesc(vehicle); "."; } RobotSay("I can detect nothing inside of it."); rtrue; ]; [ WHEEL_action ; if (action == ##Throw && second == WHEEL or switch || action ~= ##Take or ##Move or ##Set or ##Press or ##Throw or ##SwitchTo or ##Touch) rfalse; if (Robot_on_platform) { RobotSay("It's still out of my reach. Perhaps a creature of larger proportions would be able to help turn this thing."); rtrue; } RobotSay("It's too far out of reach."); rtrue; ]; [ Camera_action ; if (action == ##StepOn or ##StandOn or ##ClimbOn) { RobotSay("It won't support my weight."); rtrue; } if (action == ##Link && parent(robot) ~= Tube1 or Tube2) { RobotSay("The jack doesn't fit anything in this area."); rtrue; } if (action == ##Link) { if (second && second ~= hole) { RobotSay("I can't plug it into that."); rtrue; } if (camera notin robot) { RobotSay("I can't. I'm not holding it."); rtrue; } if (Camera_plugged) { RobotSay("It's already plugged in."); } else { RobotSay("I've plugged it in. ",0); print (string) Item_turned_on-->CurrentRobot; new_line; if (Iris1 hasnt rmungbit && Iris_repaired) { new_line; print (string) Robot_interrupts-->1, " Receiving transmissions."; new_line; } } Camera_plugged = true; rtrue; } if (action == ##Open) { return RobotSay("It's not a jack-in-the-box, you know."); } if (action == ##Unplug) { RobotSay("The ",0); PrintObjectDesc(camera); print " has been unplugged."; new_line; Camera_plugged = false; rtrue; } if (action ~= ##Take || camera has on) rfalse; ChooseRandomCode(); rfalse; ]; [ General_cable_action ; if (action ~= ##Take or ##Trade) rfalse; return JigsUp("Oh oh. Maybe I shouldn't have done that . . .",robot); ]; [ Red_cable_action ; if (action ~= ##Trade or ##Take) rfalse; give red_cable ~worn; rfalse; ]; [ Orange_cable_action ; if (action ~= ##Trade or ##Take) rfalse; give orange_cable ~worn; rfalse; ]; [ General_groove_action ; if (action ~= ##Examine or ##LookAround) rfalse; RobotSay("There are ",0); print ItmCount(noun), " "; PrintObjectDesc(cables); print " in the grooves. ", (string) Cable_descs_table-->CurrentRobot; new_line; rtrue; ]; [ ElectrocuteRobot ; if (action ~= ##Take or ##Trade || noun ~= pink_cable or yellow_cable or green_cable or white_cable or black_cable or blue_cable) rfalse; print "Sizzzzzzzzzle..."; new_line; return JigsUp("Oh oh. Maybe I shouldn't have done that . . .",robot); ]; [ Storage_cabinet_action ; if (action ~= ##Open) rfalse; "FC: Robots are restricted from opening this cabinet."; ]; [ Tool_bag_action ; if (action == ##Take) { if (tool_bag notin People1) rfalse; RobotSay("The ",0); PrintObjectDesc(People1); " won't let me take it."; } if (action ~= ##Open) rfalse; return RobotSay("I can't. It requires a human access code."); ]; [ General_BLT_action ; if (second == BLT2 or BLT1 or BLT3) { if (action == ##Take) { RobotSay("I can't. It's moving too fast."); return A_FAILURE; } if (action ~= ##PutOn) rfalse; if (noun.person_ndx || noun == dead_robot) { RobotSay("There's no way I can lift ",0); if (noun == dead_robot) { print "the "; } PrintObjectDesc(noun); " that high."; } Repair_platform_in_motion = true; if (~~QueueInterrupt(RobotRepairDaemon)-->0) { Queue(RobotRepairDaemon,2)-->0 = true; } if (second ~= BLT2) rfalse; give noun being_repaired; rfalse; } if (action ~= ##Extinguish or ##TurnOn) rfalse; RobotSay("It will automatically activate when something has been placed on it."); rtrue; ]; [ General_lever_action ; if (action ~= ##Move or ##Press) rfalse; Perform(##Set,noun,second); rtrue; ]; [ General_switch_action ; if (action == ##Throw) { Perform(##Set,noun,second); rtrue; } if (action ~= ##SwitchTo) rfalse; if (noun has on) { Perform(##Extinguish,noun); rtrue; } Perform(##TurnOn,noun); rtrue; ]; [ Plaque_action ; if (action ~= ##Read) rfalse; if (robot == Iris1) { if (~~Iris_repaired) { return RobotSay("Forget it, big boy. Fix me first."); } RobotSay("Sure. Here goes..."); new_line; "This Underground Complex was designed and built by the Frobozz Engineering Company, makers of such fine products as One-Way (tm) Bus Tickets, Ozone Nozone, and ~Best in the East~, soon to be a Smello-vision (tm) release.^^Chief Designer/Architect: Michael Berlyn."; } if (robot == Waldo1) { return RobotSay("Sure. Here... Lemme feel...^^It says Bumpity bump-bump, groove bump, dot dot bump, and so on. I'm sure Iris is more suited for reading, though."); } if (robot == Sensa1) { return RobotSay("Sure. Let me sense it...^^It says emmak...^^I don't know. It seems to lose something in the translation. Iris might be more helpful in reading this."); } if (robot == Auda1) { return RobotSay("I hear you. It says TING TINKLE DE DONG TONG. Iris should be able to tell the difference between that and a doorbell."); } if (robot == Poet1) { return RobotSay("Sure.^^It says 'While traveling the highways and byways of life, one doesn't always have time to stop and look at the roadmap' I think. (But what do I know? I can't read -- I learned all my philosophy by reductive absurdium. Talk to Iris and she'll read it for you.)"); } if (robot ~= Whiz1) rfalse; return RobotSay("Hmm.... That's a tough one. ^Nope, sorry. I only read data banks. You must want Iris."); ]; [ Machine_action ; if (action ~= ##Open or ##Close) rfalse; return RobotSay("I don't see any way to accomplish that."); ]; [ Button_action ; if (action == ##Press && machine hasnt open) { if (IC4 in first_socket && IC3 in secondary_socket && FUSE in machine) { RobotSay(Button_pushed_panel_open-->CurrentRobot); give orange_wire ~concealed; give FUSE ~concealed; give machine open; rtrue; } return RobotSay("Nothing happens."); } if (action ~= ##Press) rfalse; return RobotSay("Nothing happens."); ]; [ Orange_wire_action ; if (action == ##Trade or ##Take) { if (FUSE notin machine || orange_wire notin machine) rfalse; RobotSay("I'm reaching for the ",0); PrintObjectDesc(orange_wire); print "..."; new_line; return JigsUp("Oh oh!^^FC: Sizzle, pop, and snap-crackly noises. The delicious smell of fried robot. Mmm Mmm.",robot); } if (action ~= ##PutOn or ##Insert || robot notin Tube1 || orange_cable in groove1 || second ~= groove2) rfalse; Wire_in_secondary_channel = orange_wire; rfalse; ]; [ General_socket_action local1 ; if (action ~= ##Close) rfalse; return YukYuk(); ]; [ Code_entry_action cnt successful_code premature_entry=true ; if (action ~= ##Press) rfalse; if (FUSE notin machine) { RobotSay("Nothing is happening. I don't think it's working anymore."); rtrue; } if (noun has on) { "FC: That one has already been pressed."; } give noun on; if (Wire_in_primary_channel == wire && Wire_in_secondary_channel == orange_wire) { premature_entry = false; if (noun == Label2) { Code2_entered = true; } else if (noun == Label1) { Code1_entered = true; } } .labelXXX; if (++cnt > 8) { ! no code } else { if (Circle_labels-->cnt hasnt on) jump labelXXX; ++successful_code; jump labelXXX; } if (successful_code == true) { if (premature_entry) { print "FC: Attempt for reset has been rejected. Code entry premature. FCs out of balance."; new_line; ResetCode(); rtrue; } "FC: First access code accepted. Enter second access code now."; } if (successful_code ~= invalidBool2) rfalse; print "FC: Second access code accepted. "; new_line; if (Code2_entered && Code1_entered) { return WinGame(); } new_line; print "FC: Code recognition failed. Pattern entered does not match the reset code. Reset procedures aborted. New reset code being generated due to possible tampering."; new_line; ResetCode(); return ChooseRandomCode(); ]; [ ResetCode local1 ; .labelXXX; if (++local1 > 8) { ! no code } else { give Circle_labels-->local1 ~on; jump labelXXX; } Code2_entered = false; Code1_entered = false; rtrue; ]; [ ChooseRandomCode ; Label2 = PickOne(Circle_labels); Label1 = PickOne(Circle_labels); .labelXXX; if (Label2 == Label1) { Label1 = PickOne(Circle_labels); jump labelXXX; } return ResetCode(); ]; [ StopMovement who drag_flag tbl ndx ; ndx = who.person_ndx; tbl = people_status_array-->ndx; tbl-->1 = nothing; tbl-->0 = nothing; tbl-->4 = true; if (~~drag_flag) rfalse; Drag_object_table-->ndx = 0; rfalse; ]; [ MovePerson person destination current_loc UNUSED UNUSED2 tbl len ; current_loc = parent(person); tbl = people_status_array-->person.person_ndx; len = current_loc.room_direction_adjust_ndx * 12; tbl-->2 = len + destination.room_direction_adjust_ndx * 2; tbl-->1 = destination.station; tbl-->0 = destination; tbl-->4 = true; return parent(person); ]; [ Person_wanders who where path_array room_type rm ndx current_rm busy returning_p ndx adjacent i=1 UNUSED ; where = parent(who); ndx = people_status_array-->who.person_ndx; if (where == ndx-->0) { Trigger_person_daemon(who); if (who == People1) rfalse; rtrue; } if (~~ndx-->4) rfalse; adjacent = where.station; if (adjacent ~= where) { return Person_is_doing(who,adjacent); } ndx = ndx-->2; current_rm = Current_rooms-->ndx; if (~~current_rm) { ndx = false; current_rm = ndx-->1; } if (~~current_rm) rfalse; if (where == current_rm) { if (ndx) { busy = Person_is_doing(who,Current_rooms-->(ndx + 1)); if (~~busy) { MovePerson(who,ndx-->0); return busy; } return busy; } if (where ~= ndx-->0) { Person_is_doing(who,ndx-->0); return Trigger_person_daemon(who); } return Trigger_person_daemon(who); } path_array = DeterminePaths(current_rm.room_direction_adjust_ndx); .labelXXX; rm = path_array-->i; if (rm == where) { if (returning_p) { adjacent = path_array-->(i - 3); } else { adjacent = path_array-->(i + 3); } return Person_is_doing(who,adjacent); } if (rm == current_rm) { returning_p = 1; } i = i + 3; jump labelXXX; ]; [ RobotGoToOtherRobot who env other_table other_robot other_ndx ; other_ndx = who.person_ndx; other_table = people_status_array-->other_ndx; other_robot = robot; LinkToRobot(who,true); if (robot == other_robot) { RobotSay(Unable_to_reach_room-->CurrentRobot,0); } else { print (string) Robot_interrupts-->CurrentRobot, " ", (string) Unable_to_reach_room-->CurrentRobot; } print (name) parent(who), " to "; if (robot == Iris1) { print "Angling Corridor"; } else { print (name) env; } print ". ", (string) Awaiting_instructions-->CurrentRobot; new_line; StopMovement(who); Robot_being_sought-->other_ndx = nothing; Robot_follows-->CurrentRobot = nothing; LinkToRobot(other_robot,true); rtrue; ]; [ Person_is_doing local1 local2 local3 local4 local5 local6 ; local3 = parent(local1); if (FindNextDest(local1,local3,local2)) rtrue; .labelXXX; ++local4; if (local4 == 7[TRA?]) rfalse; if (Robot_follows-->local4 ~= local1) jump labelXXX; local6 = Animates_array-->(local4 - 1); local5 = parent(local6); if (local6 == 158[Iris1?] && 137[Corridor_1?] == local2) { RobotGoToOtherRobot(Iris1,CPU_Room); jump labelXXX; } FindNextDest(local6,local5,local2); jump labelXXX; ]; [ FindNextDest who env loc ; if (env == Human_Entry or Hallway_Junction && loc == Human_Entry or Hallway_Junction && Step_platform_in_place ~= 2 && who ~= People1) { RobotGoToOtherRobot(who,loc); rtrue; } if (env == Corridor_4 && loc == Acidmist && (~~Pipes_fixed) && People1 ~= who) { if (~~Robot_unhealth_level-->who.person_ndx) { Robot_unhealth_level-->who.person_ndx = 1; RelocateRobotToRoom(who,env,loc); rfalse; } RelocateRobotToRoom(who,env,loc); rfalse; } if (env == Hall_End or Car_Area && loc == Hall_End or Car_Area) { RobotGoToOtherRobot(who,loc); rtrue; } if (who == Iris1 && env == CPU_Room or Corridor_1 && loc == Corridor_1 or Corridor_2) { move Iris1 to CPU_Room; @store loc 137[Corridor_1?]; @store env 151[CPU_Room?]; RobotGoToOtherRobot(who,loc); rtrue; } RelocateRobotToRoom(who,env,loc); rfalse; ]; [ RelocateRobotToRoom who env where dragged ; move who to where; if (who == robot) { location = where; } Animates_locations-->who.person_ndx = env; if (who == People1) rfalse; dragged = Drag_object_table-->who.person_ndx; if (~~dragged) rfalse; move dragged to where; Animates_locations-->dragged.person_ndx = env; rfalse; ]; [ Determine_path_maybe local1 room tbl dest destflag ndx=2 group ; group = room.room_group_bit; tbl = FindAreaByRoomBit(group & local1.room_group_bit); .labelXXX; dest = tbl-->ndx; if (dest == local1) { destflag = 1; } else if (dest == room) { ! no code } else { ++ndx; jump labelXXX; } return tbl-->destflag; ]; [ DeterminePaths grouping ; if (~~grouping) { return Skywalk_bend; } if (grouping == 1) { return Supply_bend; } if (grouping == 2) { return Repair_bend; } if (grouping == 3) { return Sloping_bend; } if (grouping == 4) { return Sterilization_bend; } return Hallway_bend; ]; [ FindAreaByRoomBit bits ; if (bits == R_UPSTAIRS_HUMAN_AREA) { return Rooms_upstairs_human_area; } if (bits == R_UPSTAIRS_N_HALL) { return Rooms_upstairs_n_hall; } if (bits == R_SLOPE_HALL) { return Rooms_sloped_hall; } if (bits == R_CENTRAL) { return Rooms_central; } if (bits == R_EASTEND) { return Rooms_east_end; } if (bits == R_UPSTAIRS_E_HALL) { return Rooms_upstairs_e_hall; } if (bits == R_VEHICLE_AREA) { return Rooms_vehicle_area; } if (bits == R_RISINGHALL) { return Rooms_rising_hall; } return Rooms_skywalk; ]; [ Which_way_did_they_go dir cnt ; .labelXXX; if (Directions_prop_to_string-->cnt == dir) { if (dir ~= u_to or d_to) { print "the "; } print (string) Directions_prop_to_string-->(cnt + 1); rtrue; } ++cnt; jump labelXXX; ]; [ QueryRobotDestination who ; return people_status_array-->who.person_ndx-->0; ]; [ I_Follow flag cnt status_tbl ; .labelXXX; if (++cnt > 7) { return flag; } status_tbl = people_status_array-->cnt; if ((~~status_tbl-->1) || (~~status_tbl-->4)) jump labelXXX; status_tbl-->4 = true; if (~~Person_wanders(Another_robot_table-->cnt)) jump labelXXX; flag = true; jump labelXXX; ]; [ Trigger_person_daemon who_num tbl ; tbl = people_status_array-->who_num.person_ndx; tbl-->1 = 0; tbl-->0 = 0; (tbl-->7)(who_num,1[?]); rtrue; ]; [ Robot_daemon robot_num explicit_call who UNUSED who_am_I_looking_for env ; if (explicit_call ~= true) rfalse; who = robot; LinkToRobot(robot_num,true); new_line; if (robot == who) { RobotSay(Robot_arrival_table-->CurrentRobot,0); } else { print (string) Robot_interrupts-->CurrentRobot, " ", (string) Robot_arrival_table-->CurrentRobot; } StopMovement(robot,true); print (name) parent(robot), "."; who_am_I_looking_for = Robot_being_sought-->CurrentRobot; if (who_am_I_looking_for) { env = parent(who_am_I_looking_for); if (env ~= parent(robot_num)) { print " Looks like I missed "; PrintObjectDesc(who_am_I_looking_for); print " though."; new_line; } } Robot_being_sought-->robot_num.person_ndx = nothing; location.action(M_ENTER); new_line; LinkToRobot(who,true); return 2; ]; [ People_daemon UNUSED1 explicit_call UNUSED2 ; if (explicit_call ~= true) rfalse; if (People_status_counter == 1) { return People_enter_complex(); } if (People_status_counter == 2) { return People_decide_to_sleep(); } if (People_status_counter == 3) { return People_discuss_removing_you(); } if (People_status_counter == 4) { return People_enter_car(); } if (People_status_counter == 5) { return CloneReplacementLose(); } if (People_status_counter == 6) { return People_play_Starcross(); } if (People_status_counter == 7) { return LoseGameWithoutReplacement(); } if (People_status_counter == 8) { return People_fix_leaky_pipes(); } if (People_status_counter ~= 9) rfalse; return Rfalse_Possible_debugging_function(); ]; [ Bitwise_calculate who propbit halved roomlist found rvalue ; propbit = location.room_group_bit; if (~~propbit) rfalse; .labelXXX; halved = propbit - 256; if (halved >= 0) { roomlist = Rooms_skywalk; } else { halved = propbit - 128; if (halved >= 0) { roomlist = Rooms_rising_hall; } else { halved = propbit - 64; if (halved >= 0) { roomlist = Rooms_vehicle_area; } else { halved = propbit - 32; if (halved >= 0) { roomlist = Rooms_upstairs_e_hall; } else { halved = propbit - 16; if (halved >= 0) { roomlist = Rooms_east_end; } else { halved = propbit - 8; if (halved >= 0) { roomlist = Rooms_central; } else { halved = propbit - 4; if (halved >= 0) { roomlist = Rooms_sloped_hall; } else { halved = propbit - 2; if (halved >= 0) { roomlist = Rooms_upstairs_n_hall; } else { halved = propbit - 1; if (halved < 0) jump labelXXX; roomlist = Rooms_upstairs_human_area; } } } } } } } } found = SomeoneNearby(roomlist,who); if (~~rvalue) { rvalue = found; } propbit = halved; jump labelXXX; .labelXXX; return rvalue; ]; [ SomeoneNearby roomsnearby who cnt=2 here_ndx here room person ; .labelXXX; room = roomsnearby-->cnt; if (~~room) rfalse; if (room == location) { here_ndx = 1; } else if ((person = child(room)) ~= nothing) { .labelXXX; if (who) { if (person ~= who) jump labelXXX; here = roomsnearby-->here_ndx; } else { if (person.person_ndx) { if (person.person_ndx == ID_PEOPLE) { print "Some "; PrintObjectDesc(person); print " are "; } else { PrintObjectDesc(person); print " is "; } if (OnWayToDestinationP(person)) { print "in motion "; } print "off to "; Which_way_did_they_go(roomsnearby-->here_ndx); ShortDesc(person); print "."; if (person == People1 && People_in_pursuit && robot == Tool_bag_thief) { print " They appear to be in hot pursuit."; } new_line; } .labelXXX; person = sibling(person); if (person) jump labelXXX; } if (here) { return here; } } ++cnt; jump labelXXX; ]; [ ShortDesc who tbl ; if (who == People1) rfalse; tbl = Drag_object_table-->who.person_ndx; if (~~tbl) rfalse; print ", dragging "; PrintObjectDesc(tbl); rfalse; ]; [ OnWayToDestinationP who tbl env ; tbl = people_status_array-->who.person_ndx; if ((~~tbl-->4) || (~~tbl-->1)) rfalse; env = parent(who); if (env == tbl-->0) rfalse; rtrue; ]; [ PeopleCanBeHeard ; if (Auda1 notin parent(People1) || ((~~Auda_listening) && robot ~= Auda1) || Robot_unhealth_level-->4 >= 30) rfalse; rtrue; ]; [ PrintAudaListening ; if (robot ~= Auda1) { new_line; (string) Robot_interrupts-->4, " Listening..."; } new_line; rtrue; ]; [ RobotNearPeople r ; if (r notin parent(People1) || r has rmungbit) rfalse; rtrue; ]; [ I_People1 ; People_status_counter = 1; move People1 to Sterile_Area; MovePerson(People1,Tool_Area); new_line; print "FC INTERRUPT: ALERT! ALERT!^Intruders detected in Sterilization Chamber!"; new_line; return 2; ]; [ People_enter_complex r ; move tool_bag to People1; if (PeopleCanBeHeard()) { PrintAudaListening(); print "I can hear the sound of metal against metal, followed by the sound of a creaking door opening.^^~I've got the toolbag. Everything in it seems intact.~^~Well, don't lose it, man. We're lost without it. We'll never pull the switch on him if we lose it.~^~Don't worry. I won't let it out of my sight.~^~I'm getting sleepy. It was a long ride down here. What do you say we catch some sleep?~^~You really think we should? With all the devastation taking place?~^~I don't have much choice. I'm not thinking clearly, and I really need to sleep. More casualties will occur if we don't take care of ourselves.~^~Good point. Let's go.~"; new_line; } if (RobotNearPeople(Waldo1)) { r = robot; LinkToRobot(Waldo1,true); new_line; print (string) Robot_interrupts-->2, " The mobile objects have stopped for a moment. I also detect the "; PrintObjectDesc(storage_cabinet); print " opening then shutting. The "; PrintObjectDesc(People1); print " have removed a "; PrintObjectDesc(tool_bag); print " and are grasping it."; new_line; LinkToRobot(r,true); } else if (RobotNearPeople(Sensa1)) { r = robot; LinkToRobot(Sensa1,true); new_line; print (string) Robot_interrupts-->3, " I can detect the cycling of a mechanism attached to the "; PrintObjectDesc(storage_cabinet); print " and the "; PrintObjectDesc(People1); print " removing a "; PrintObjectDesc(tool_bag); print " from it."; new_line; LinkToRobot(r,true); } else if (RobotNearPeople(Poet1)) { r = robot; LinkToRobot(Poet1,true); new_line; print (string) Robot_interrupts-->5, " As the amazing "; PrintObjectDesc(People1); print " check in, they casually remove something from a "; PrintObjectDesc(storage_cabinet); print ". It appears to be a "; PrintObjectDesc(tool_bag); print "."; new_line; LinkToRobot(r,true); } MovePerson(People1,Sleep_Chamber); People_status_counter = 2; rtrue; ]; [ People_decide_to_sleep r ; if (People_in_pursuit) rfalse; Time_spent_asleep = 0; Queue(People_asleep_daemon,65535)-->0 = true; move tool_bag to Sleep_Chamber; if (PeopleCanBeHeard() && (~~People_not_given_toolbag_first)) { PrintAudaListening(); print "~Well, this is some sleep chamber. No frills.~^~Don't complain. At least there's bunks for us.~^~I suppose. I'm going to put the toolbag on the floor while I grab some shuteye.~^~What about the robot?~^~What, that ear thing? Gimme a break!~^^AUDA: I hear the sound of metal being placed on the floor."; new_line; } if (RobotNearPeople(Waldo1) && (~~People_not_given_toolbag_first)) { new_line; (string) Robot_interrupts-->2, " The mobile objects are moving over to the platforms and are reclining."; } if (RobotNearPeople(Sensa1) && (~~People_not_given_toolbag_first)) { r = robot; LinkToRobot(Sensa1,true); new_line; print (string) Robot_interrupts-->3, " I detect an extreme drop in electrical and ionic activity in this area as the "; PrintObjectDesc(People1); print " become immobile."; new_line; LinkToRobot(r,true); rtrue; } if ((~~RobotNearPeople(Poet1)) || People_not_given_toolbag_first) rtrue; new_line; (string) Robot_interrupts-->5, " Ah, yawn. Ho hum. These people are boring."; ]; [ People_asleep_daemon ; ++Time_spent_asleep; if (Time_spent_asleep > 20) { QueueInterrupt(People_asleep_daemon)-->0 = 0; Queue(People_awaken_timer,1)-->0 = true; } if (Time_spent_asleep == 1) { if (~~PeopleCanBeHeard()) rfalse; PrintAudaListening(); print (string) Sleep_desc_table-->0; new_line; rtrue; } if (Time_spent_asleep == 5) { if (~~PeopleCanBeHeard()) rfalse; PrintAudaListening(); print (string) Sleep_desc_table-->1; new_line; rtrue; } if (Time_spent_asleep == 10) { if (~~PeopleCanBeHeard()) rfalse; PrintAudaListening(); print (string) Sleep_desc_table-->2; new_line; rtrue; } if (Time_spent_asleep ~= 15 || (~~PeopleCanBeHeard())) rfalse; PrintAudaListening(); print (string) Sleep_desc_table-->3; new_line; rtrue; ]; [ People_get_toolbag ; RobotSay("Given."); if (PeopleCanBeHeard()) { PrintAudaListening(); print "~Enough is enough! We'll never get anywhere with this little thing pestering us.~^~Tell me about it. Let's just get on with this.~^~Fine with me. Grab the bag.~^~Okay.~"; new_line; } move tool_bag to People1; Humans_have_toolbag = true; People_in_pursuit = false; QueueInterrupt(People_asleep_daemon)-->0 = 0; People_awaken_timer(); People_status_counter = 3; return MovePerson(People1,Inner_Core); ]; [ People_are_given_toolbag ; RobotSay("Given."); People_not_given_toolbag_first = true; move tool_bag to People1; QueueInterrupt(People_after_thief)-->0 = 0; Tool_bag_thief = nothing; People_in_pursuit = false; Pursuit_counter = 0; People_status_counter = 9; if (Time_spent_asleep < 20) { Time_spent_asleep = 0; Queue(People_asleep_daemon,65535)-->0 = true; move tool_bag to Sleep_Chamber; if (~~PeopleCanBeHeard()) rfalse; PrintAudaListening(); "~It's a good thing that little thief gave the bag back.~^~I'll say. Let's get some more sleep.~^~Okay.~^~You're not worried about leaving the bag on the floor, now, are you?~^~Nah. I'm not worried.~"; } QueueInterrupt(People_asleep_daemon)-->0 = 0; People_awaken_timer(); People_status_counter = 3; MovePerson(People1,Inner_Core); move tool_bag to People1; rfalse; ]; [ People_awaken_timer witnessed ; People_status_counter = 3; MovePerson(People1,Inner_Core); move tool_bag to People1; if (PeopleCanBeHeard() && (~~Humans_have_toolbag)) { PrintAudaListening(); witnessed = true; print "~I really needed more rest than that, but it'll have to do. Let's get on with what this.~^~Okay. Just give me a second. Where to now?~^~The Central Library. We've got to get a little info before we can pull the switch.~^~Oops. Almost forgot the tool bag!~"; new_line; } if (RobotNearPeople(Waldo1)) { witnessed = true; new_line; print (string) Robot_interrupts-->2, " The mobile objects are resuming their normal positions and are becoming active."; new_line; return witnessed; } if (RobotNearPeople(Sensa1)) { witnessed = true; new_line; print (string) Robot_interrupts-->3, " The air is becoming charged with ionic activity as the creatures stir from quiescence."; new_line; return witnessed; } if (RobotNearPeople(Poet1)) { witnessed = true; new_line; print (string) Robot_interrupts-->5, " Like loaves of bread sitting on a warm oven, the Creators rise."; new_line; return witnessed; } return witnessed; ]; [ People_discuss_removing_you ; Queue(People_decide_to_act,3)-->0 = true; if (PeopleCanBeHeard()) { PrintAudaListening(); print "I can hear them talking, but I can't make out what's being said."; new_line; } if (~~Current_pedestal) rfalse; new_line; (string) Robot_interrupts-->6, " Humans querying the CLC regarding proper replacement procedure for you. CLC is responding with the human access code for reviving one of your clones."; ]; [ People_decide_to_act ; People_status_counter = 4; MovePerson(People1,Hall_End); if (~~PeopleCanBeHeard()) rfalse; PrintAudaListening(); "~That information should do the trick. Let's get the replacement.~^~Yeah. Sounds good to me. I guess that person really went over the deep end, poor thing. Sitting in that capsule can't be a lot of fun.~^~Well, that's the way it goes.~"; ]; [ People_enter_car heardp ; if (vehicle in Hall_End && (~~Car_passenger)) { Queue(People_get_clone,15)-->0 = true; if (PeopleCanBeHeard()) { heardp = true; PrintAudaListening(); print "~Let's get into the car and get this thing over with. The clones are near the end of this tube.~^~Sounds good to me. This place gives me the creeps.~^^AUDA: I hear the sounds of the people entering the car, then the whoosh as the car takes off to the east."; new_line; } move People1 to Cryounits; move vehicle to Car_Area; return heardp; } Queue(People_wait_for_car,65535)-->0 = true; if (People_decided_to_wait_on_car) rfalse; People_decided_to_wait_on_car = true; if (~~PeopleCanBeHeard()) rfalse; PrintAudaListening(); "~We'll have to wait for the car. We can't negotiate this tube on foot.~^~Fine. I've got nothing but time.~"; ]; [ People_wait_for_car ; if (vehicle in Hall_End && (~~Car_passenger)) { QueueInterrupt(People_wait_for_car)-->0 = 0; return People_enter_car(); } ++People_waiting_for_car_counter; if (People_waiting_for_car_counter == 10 && PeopleCanBeHeard()) { PrintAudaListening(); "~Man, I just hate the way this car was designed.~^~Yeah, well, join the club. We'll just have to wait. We can't go back to the surface until we've pulled the switch, anyway.~"; } if (People_waiting_for_car_counter == 30 && PeopleCanBeHeard()) { PrintAudaListening(); "~I'm getting real angry. How long are you gonna wait?~"; } if (People_waiting_for_car_counter == 45 && PeopleCanBeHeard()) { PrintAudaListening(); "~When that robot gets out of that car, I'm going to dismantle the little bugger.~^~You'll have to stand in line. My boredom factor is real low.~"; } if (People_waiting_for_car_counter ~= 75) rfalse; if (PeopleCanBeHeard()) { PrintAudaListening(); print "~I'm tired of waiting around, man. Let's go pull his plug and get this thing over with.~^~But what about his clone?~^~Forget it. We'll put everything on manual override and take care of this later. Too many people are at stake here. Okay?~^~Okay. Lead on.~"; new_line; } People_status_counter = 7; MovePerson(People1,CPU_Room); QueueInterrupt(People_wait_for_car)-->0 = 0; rtrue; ]; [ People_get_clone r ; move People1 to Hall_End; move vehicle to Hall_End; if (PeopleCanBeHeard()) { PrintAudaListening(); RobotSay("I hear the whoosh of the car returning and the noisy talking mechanisms getting out of it."); } if (RobotNearPeople(Waldo1)) { r = robot; LinkToRobot(Waldo1,true); RobotSay("Sonar detects the ",0); PrintObjectDesc(People1); print " are holding another thing like themselves between them."; new_line; LinkToRobot(r,true); } else if (RobotNearPeople(Sensa1)) { print "SENSA: Sensory inputs detect a third life form."; new_line; } else if (RobotNearPeople(Poet1)) { print "POET: Here come da clone, here come da clone."; new_line; } People_status_counter = 5; return MovePerson(People1,CPU_Room); ]; [ CloneReplacementLose ; new_line; print "As the door swings open you are blinded by intense light and incredible pain. Just before everything overloads and you fade from existence, you can make out the shapes of three humans, one of them holding onto the door of the cylinder, another of them looking exactly like you, and then everything goes dark."; new_line; @quit; ]; [ People_after_thief where who ; ++Pursuit_counter; if (Pursuit_counter == 1) { if (PeopleCanBeHeard()) { PrintAudaListening(); print "~Give me that, you little devil!~^~That robot's a thief! Let's get it!~"; new_line; } if (RobotNearPeople(Waldo1)) { new_line; print "WALDO: The mobile devices are waving their extensions madly. I think I'm in trouble."; new_line; rfalse; } if (RobotNearPeople(Sensa1)) { new_line; print "SENSA: The air in this area has become highly electrified, charged by the creatures."; new_line; rfalse; } if (~~RobotNearPeople(Poet1)) rfalse; new_line; print "POET: I believe the Creators have caught an extension in the cookie jar. Better take it on the lam, and pronto."; new_line; rfalse; } if (Pursuit_counter == 2) rfalse; if (Pursuit_counter == 3) { where = QueryRobotDestination(Tool_bag_thief); if (where) { MovePerson(People1,where); } else { MovePerson(People1,parent(Tool_bag_thief)); } People_status_counter = 9; People_in_pursuit = true; rfalse; } if (tool_bag notin Tool_bag_thief) { if (People1 in parent(tool_bag)) { move tool_bag to People1; People_status_counter = 3; MovePerson(People1,Inner_Core); QueueInterrupt(People_after_thief)-->0 = 0; if (PeopleCanBeHeard()) { PrintAudaListening(); print "~Here's the toolbag. Looks like the little 'bot dropped it.~^~Just as well. Let's get on with this.~"; new_line; } People_in_pursuit = false; rtrue; } if (tool_bag in Iris1) { Tool_bag_thief = Iris1; rfalse; } if (tool_bag in Waldo1) { Tool_bag_thief = Waldo1; rfalse; } if (tool_bag in Sensa1) { Tool_bag_thief = Sensa1; rfalse; } if (tool_bag in Auda1) { Tool_bag_thief = Auda1; rfalse; } if (tool_bag in Poet1) { Tool_bag_thief = Poet1; rfalse; } if (tool_bag in Whiz1) { Tool_bag_thief = Whiz1; rfalse; } if (parent(tool_bag) in Room_Holder) { MovePerson(People1,parent(tool_bag)); People_status_counter = 9; rfalse; } People_status_counter = 9; MovePerson(People1,InScope(tool_bag)); rfalse; } if (People1 in Corridor_4) { if (PeopleCanBeHeard()) { PrintAudaListening(); print "~Oh, wow, look at that! The mist is coming up through the grating!~^~Yeah. What's below this room? The Maintenance Area?~^~Yes. The cooling system for the Filtering Computers has a regulatory valve there.... Maybe that's what's wrong here.~^~What are you talking about?~^~This acid mist -- it could be what's causing all the trouble. Let's get back down there and turn the wheel, get the cooling system rerouted.~^~It's worth a try. If you're right, we won't have to pull this person's plug.~^~Well, let's go. We're wasting time.~"; new_line; } QueueInterrupt(People_after_thief)-->0 = 0; new_line; if (Tool_bag_thief in Corridor_4) { move tool_bag to People1; print (string) Robot_interrupts-->Tool_bag_thief.person_ndx, " They've taken something from my extensions!"; new_line; } else { print (string) Robot_interrupts-->Tool_bag_thief.person_ndx, " The bag is melting!"; new_line; remove tool_bag; } MovePerson(People1,FCMaint); People_status_counter = 8; People_in_pursuit = false; rtrue; } if (People1 in parent(Tool_bag_thief)) { People_in_pursuit = false; if (People1 in FCMaint) { Pipes_fixed = true; MovePerson(People1,Rec_Area); People_status_counter = 6; QueueInterrupt(People_after_thief)-->0 = 0; move tool_bag to People1; if (PeopleCanBeHeard()) { PrintAudaListening(); print "~Hey -- Look at that! The pipes going up to the Filtering Computers have burst.~^~Yeah. Maybe the person in the cylinder isn't at fault....~^~Hmm. You could be right. Let's fix this and then see if things return to normal.~^^AUDA: I can hear the sound of metal, like a wheel turning, and the hissing stop.^^~That should take care of that leak. Let's go up to the Rec Area and wait for awhile.~^~Fine. Meanwhile, I'll get our toolbag back.~^^AUDA: I hear footsteps as the talking mechanisms walk away."; new_line; } if (RobotNearPeople(Waldo1)) { new_line; "WALDO: I can detect the large, circular object high overhead turning."; } if (RobotNearPeople(Sensa1)) { new_line; "SENSA: I detect the flow within the pipes overhead stopping and the acid leak stopping, too."; } if (~~RobotNearPeople(Poet1)) rfalse; new_line; "POET: Here they come to save the day..."; } if (PeopleCanBeHeard()) { PrintAudaListening(); print "~We've got him now. He's cornered. Let's grab that tool bag and get on with this fiasco.~"; new_line; } new_line; if (tool_bag in Tool_bag_thief) { who = robot; LinkToRobot(Tool_bag_thief,true); RobotSay("Oh oh. I feel something wrenching the ",0); PrintObjectDesc(tool_bag); print " from my extensions."; new_line; LinkToRobot(who,true); } move tool_bag to People1; People_status_counter = 3; MovePerson(People1,Inner_Core); QueueInterrupt(People_after_thief)-->0 = 0; rtrue; } MovePerson(People1,parent(Tool_bag_thief)); People_status_counter = 9; rfalse; ]; [ People_play_Starcross ; Queue(People_wait_a_while,65535)-->0 = true; if (~~PeopleCanBeHeard()) rfalse; PrintAudaListening(); "~Let's play this game while we wait to see what's happening.~^~What's it called?~^~Starcross. Looks really good.~^~Okay.~"; ]; [ People_wait_a_while ; ++People_wait_counter; if (People_wait_counter < 200) rfalse; QueueInterrupt(People_wait_a_while)-->0 = 0; MovePerson(People1,Inner_Core); People_status_counter = 3; if (~~PeopleCanBeHeard()) rfalse; PrintAudaListening(); "~I think we've waited long enough. This person in the cylinder isn't all together upstairs, if you know what I mean.~^~I do, and I agree. We've given him more than enough time. Let's yank the fool out of there immediately, then get the replacement clone.~^~No way. Procedure requires we get the replacement first, and that's what we're going to do. Now let's move.~"; ]; [ LoseGameWithoutReplacement ; new_line; print "As the door swings open you are blinded by intense light and incredible pain. Just before everything overloads and you fade from existence, you can make out the shape of two figures outside, one of them holding onto the door of the cylinder, and then everything goes dark."; new_line; @quit; ]; [ People_fix_leaky_pipes ; Pipes_fixed = true; MovePerson(People1,Rec_Area); People_status_counter = 6; if (PeopleCanBeHeard()) { PrintAudaListening(); print "~Hey -- Look at that! The pipes going up to the Filtering Computers have burst.~^~Yeah. Maybe the person in the cylinder isn't at fault....~^~Hmm. You could be right. Let's fix this and then give him some time.~^^AUDA: I can hear the sound of metal, like a wheel turning, and the hissing stop.^^~That should take care of that leak. Let's go up to the Rec Area and wait for awhile.~^~Fine.~^^AUDA: I hear footsteps as the talking mechanisms walk away."; new_line; } if (RobotNearPeople(Waldo1)) { new_line; "WALDO: I can detect the circular object high overhead turning."; } if (RobotNearPeople(Sensa1)) { new_line; "SENSA: I detect the flow within the pipes overhead stopping and the acid leak stopping, too."; } if (~~RobotNearPeople(Poet1)) rfalse; new_line; "POET: Here they come to save the day..."; ]; [ Rfalse_Possible_debugging_function ; rfalse; ]; [ ConfigSub local1 local2 local3 ; if (turns > 1) { print "You may only configure the game on the first move. Consult the manual for details."; new_line; rfalse; } Custom_game = true; print "Pick your poison.^Specify the name of a location for each of the following robots or DEAD if you would like to have the robot start out non-functional."; new_line; .labelXXX; if (++local1 > 6) { ! no code } else { local2 = Animates_array-->(local1 - 1); .labelXXX; print (string) RobotNames-->local1, " "; if (Parser()) { local3 = P_table-->1; if (local3 == 139[UD_Tube?]) { Robot_unhealth_level-->local1 = 30; give local2 rmungbit; jump labelXXX; } if (local3 in Room_Holder) { if (local2 == 158[Iris1?] && (~~InMonitorArea(local3))) { print "IRIS cannot leave the Monitor and Supply Area."; new_line; jump labelXXX; } if (local3 == 86[Car_Area?] or 85[Bio_Int?] or 84[Bio_Lab?] or 83[Cryounits?]) { print "No robot is allowed to start in the Biological Areas."; new_line; jump labelXXX; } if (local3 == 82[Hell?]) { print "Come on. Get serious."; new_line; jump labelXXX; } move local2 to local3; jump labelXXX; } print "Specify the name of a location or the word DEAD."; new_line; jump labelXXX; } print "Specify the name of a location or the word DEAD."; new_line; jump labelXXX; } .labelXXX; print "Surface-side systems tremor at which cycle? (1-100) >"; if (~~EnterANumber(1,100)) jump labelXXX; RTD_kills = P_number; Queue(I_Tremor2,RTD_kills); .labelXXX; print "Cooling systems tremor at which cycle? (1-100) >"; if (~~EnterANumber(1,100)) jump labelXXX; Acid_kills = P_number; Queue(I_Tremor1,Acid_kills); .labelXXX; print "Humans arrive at which cycle? (", Acid_kills, "-150) >"; if (~~EnterANumber(Acid_kills,150)) jump labelXXX; People_appear = P_number; Queue(I_People1,People_appear); Custom_game = false; print "Configuration completed."; new_line; new_line; AllReportLocSub(); QueueInterrupt(I_Iris_hints)-->0 = 0; QueueInterrupt(I_Auda_hints)-->0 = 0; rtrue; ]; [ EnterANumber min max ; @sread P_inbuf P_lexv; if (ParseNumber(1)) { if (P_number >= min && P_number <= max) rtrue; print "Enter a number between ", min, " and ", max, "."; new_line; rfalse; } print "Enter a number between ", min, " and ", max, "."; new_line; rfalse; ]; [ InMonitorArea where ; if (where == CPU_Room or Servo_Systems or RTD_Banks or Weather_Banks or Supplies_South or Supplies_Mid) rtrue; if (where ~= Supplies_North) rfalse; rtrue; ]; Verb '$te' * animate(on_ground,many) -> CryolinkTo ; Verb '$ve' * -> Verify ; Verb 'activate' * object -> TurnOn ; Verb 'advance' 'expert' 'harder' * -> Advanced ; Verb 'affirmative' 'confirm' 'y//' 'yes' * object -> Yes * -> Yes ; Verb 'aim' 'point' * object(held,carried,have) 'at' object(in_room,on_ground) -> Point ; Verb 'analyze' 'describe' 'examine' * object 'on' object -> Examine * 'on' object(held,carried,in_room,on_ground,many) -> LookIn * 'into'/'inside'/'in' object(held,carried,in_room,on_ground,many) -> LookIn * object -> Examine ; Verb 'answer' 'reply' * object -> AnswerObj * -> Answer ; Verb 'apply' * object 'to' object -> Insert ; Verb 'arl' * -> FullLocation ; Verb 'arr' * -> FullReport ; Verb 'ask' 'query' 'what' 'whats' * 'on' object -> Ask * 'about' object -> Ask * object -> Ask ; Verb 'attach' * clothing 'to' object -> Wear ; Verb 'attack' 'fight' 'hit' 'hurt' 'injure' * animate(in_room,on_ground) 'with'/'using'/'through' weapon(held,carried,have) -> Attack ; Verb 'awake' 'startle' 'surprise' 'wake' * 'up'/'u//' animate(in_room,on_ground) -> Wake * animate(in_room,on_ground) -> Wake ; Verb 'bathe' 'swim' 'wade' * 'into'/'inside'/'in' object -> Swim * -> Swim ; Verb 'bite' 'eat' 'taste' * edible(held,carried,in_room,on_ground,many) -> Bite ; Verb 'blast' 'burn' 'fire' 'shoot' 'zap' * weapon(held) 'at' object -> Shoot * object -> Shoot * object 'with'/'using'/'through' weapon(held) -> Blast ; Verb 'blind' 'jab' 'poke' * animate(in_room,on_ground) 'with'/'using'/'through' weapon(held,carried,have) -> Poke ; Verb 'block' 'break' 'damage' 'destroy' 'smash' * 'down'/'d//' object(held,carried,in_room,on_ground) 'with'/'using'/'through' object(held,carried) -> Poke * object(held,carried,in_room,on_ground) 'with'/'using'/'through' object(held,carried) -> Poke ; Verb 'blow' * 'out' object -> Extinguish ; Verb 'board' * vehicle(in_room,on_ground) -> Board ; Verb 'brandish' 'wave' * object(held,carried) 'at' object -> Wave * object(held,carried) -> Wave ; Verb 'carry' 'get' 'grasp' 'hold' 'steal' 'take' * 'down'/'d//' attrib16 -> TakeDown * 'up'/'u//' globalbit -> Stand * 'off' object(held,carried) -> Untie * takeable(carried,in_room) 'from' object -> TakeFrom * takeable(carried,in_room) 'off' object -> Take * takeable(carried,in_room) 'out' object -> TakeFrom * 'on' vehicle(in_room,on_ground) -> ClimbOn * 'out' vehicle(in_room,on_ground) -> Disembark * 'into'/'inside'/'in' vehicle(in_room,on_ground) -> Board * takeable(on_ground,many) -> Take ; Verb 'chase' 'follow' 'pursue' * object -> Follow ; Verb 'chuck' 'hurl' 'throw' 'toss' * object(held,carried,have) -> Throw * object(held,carried,have) 'over' object -> Insert * object(held,carried,have) 'on' object -> Insert * object(held,carried,have) 'into'/'inside'/'in' object -> Insert * object(held,carried,have) 'with'/'using'/'through' object(in_room,on_ground) -> Throw * object(held,carried,have) 'at' object(in_room,on_ground) -> Throw ; Verb 'climb' 'lay' 'lie' 'recline' 'sit' * 'into'/'inside'/'in' climbable(in_room,on_ground) -> Board * climbable(in_room,on_ground) -> Climb * 'down'/'d//' climbable(in_room,on_ground) -> ClimbDown * 'up'/'u//' climbable(in_room,on_ground) -> ClimbUp * 'onto' climbable(in_room,on_ground) -> ClimbOn * 'on' climbable(in_room,on_ground) -> ClimbOn ; Verb 'close' * attrib25(held,carried,in_room,on_ground) 'on' animate -> Close * attrib25(held,carried,in_room,on_ground) -> Close ; Verb 'config' 'custom' 'setup' * -> Config ; Verb 'count' 'total' * turnable(held,carried,in_room,on_ground) 'into'/'inside'/'in' animate -> Count * turnable(held,carried,in_room,on_ground) 'on' animate -> Count * turnable(held,carried,in_room,on_ground) -> Count ; Verb 'curse' 'damn' * animate -> Curse * -> Curse ; Verb 'cut' 'slice' 'snip' * can_be_cut 'with'/'using'/'through' object -> Cut ; Verb 'detach' * clothing(held,carried) -> Untie ; Verb 'dig' * 'with'/'using'/'through' object(in_room,on_ground) -> Dig * 'into'/'inside'/'in' object -> Dig ; Verb 'disembark' * vehicle(in_room,on_ground) -> Disembark ; Verb 'dispatch' 'kill' 'murder' 'slay' 'stab' * animate(in_room,on_ground) 'with'/'using'/'through' weapon(held,carried,have) -> Kill * animate(in_room,on_ground) -> Kill ; Verb 'don' 'install' 'wear' * clothing(have) -> Wear ; Verb 'donate' 'feed' 'give' 'hand' 'offer' * animate(on_ground) object(held,many,have) -> GiveReverse * object(held,many,have) 'to' animate(on_ground) -> Give ; Verb 'drag' 'pull' 'tug' 'yank' * object 'to' object -> MoveTo * object 'out' container -> Take * 'on' object(in_room,on_ground) -> Move * object(in_room,on_ground) -> Move ; Verb 'drink' 'imbibe' 'swallow' * drinkable(held,carried,in_room,on_ground) -> Drink ; Verb 'drop' 'release' * object(held,many,have) 'on' object -> PutOn * object(held,many,have) 'into'/'inside'/'in' object -> Insert * object(held,many,have) 'down'/'d//' object -> Insert * object(held,many,have) -> Drop ; Verb 'enter' * object -> EnterObj * -> Enter ; Verb 'exchange' 'replace' 'swap' 'trade' * object(have) 'for' object -> Trade * object 'with'/'using'/'through' object(have) -> Trade ; Verb 'exit' * object -> Exit * -> Exit ; Verb 'feel' 'touch' * object(in_room,on_ground,many) -> Touch ; Verb 'find' 'see' 'seek' 'where' * object -> Find ; Verb 'fix' 'repair' * object -> Repair ; Verb 'flip' 'shut' 'turn' * object(in_room,on_ground) 'to' object -> Set * 'off' object(held,carried,in_room,on_ground) -> Extinguish * 'on' object(held,carried,in_room,on_ground) -> TurnOn * turnable -> SwitchTo ; Verb 'fly' * object -> Fly * -> Fly ; Verb 'gaze' 'l//' 'look' 'stare' * 'for' object -> Find * 'at' object(held,carried,in_room,on_ground,many) 'with'/'using'/'through' object -> LookWith * 'into'/'inside'/'in' object(held,carried,in_room,on_ground,many) 'with'/'using'/'through' object -> LookWith * 'into'/'inside'/'in' object(held,carried,in_room,on_ground,many) -> LookIn * 'behind' object -> LookBehind * 'under' object -> LookUnder * 'on' object -> LookIn * 'with'/'using'/'through' object -> LookIn * 'at' object(held,carried,in_room,on_ground,many) -> Examine * 'around' globalbit -> LookAround * -> LookAround ; Verb 'go' 'proceed' 'run' 'travel' 'walk' * 'to' object -> WalkTo * 'down'/'d//' climbable(in_room,on_ground) -> ClimbDown * 'up'/'u//' climbable(in_room,on_ground) -> ClimbUp * 'around' object -> WalkAround * 'with'/'using'/'through' object -> EnterObj * 'into'/'inside'/'in' object -> EnterObj * object -> Go ; Verb 'grin' 'smile' * -> Smile * 'at' animate -> Smile ; Verb 'halt' 'stop' * object -> Halt * -> Halt ; Verb 'hello' 'hi' * object -> Hello * -> Hello ; Verb 'help' 'hint' * -> Help ; Verb 'hop' 'skip' * -> Hop ; Verb 'i//' 'inventory' * -> Inventory ; Verb 'impossible' * -> Impossible ; Verb 'insert' 'place' 'positive' 'put' 'stuff' * object(held,have) 'over' object -> PutBy * object(held,have) 'by' object -> PutBy * object(held,have) 'at' object -> PutBy * object(held,have) 'against' object -> PutBy * 'on' clothing(have) -> Wear * object(held,many,have) 'under' object -> PutUnder * 'down'/'d//' object(held,many,have) -> Drop * object(held,many,have) 'on' object -> PutOn * object(held,many,have) 'into'/'inside'/'in' object -> Insert ; Verb 'is' * object 'on' object -> IsOn * object 'into'/'inside'/'in' object -> IsOn ; Verb 'jump' 'leap' * 'off' object -> Jump * 'from' object -> Jump * 'into'/'inside'/'in' object -> Jump * 'across' object -> Jump * 'over' object -> Jump * -> Jump ; Verb 'kick' * object -> Kick ; Verb 'kiss' * animate(in_room,on_ground) -> Kiss ; Verb 'knock' 'rap' * 'down'/'d//' animate(in_room,on_ground) -> Attack * 'on' object -> Knock * 'at' object -> Knock ; Verb 'leave' * object -> Drop * -> Leave ; Verb 'lift' 'raise' * object 'onto' object -> Raise * 'up'/'u//' object -> Raise * object -> Raise ; Verb 'link' 'plug' * object object -> Link * object 'into'/'inside'/'in' object -> Link * 'to' object -> Link * 'into'/'inside'/'in' globalbit -> Link ; Verb 'listen' * 'at' object -> Listen * 'for' object -> Listen * 'to' object -> Listen * -> Listen ; Verb 'location' * -> Location ; Verb 'lower' * object -> Lower ; Verb 'molest' 'rape' * animate -> Molest ; Verb 'move' * object 'to' object -> Move * object 'onto' object -> Move * object(in_room,on_ground) -> Move ; Verb 'no' * -> No ; Verb 'open' * container 'into'/'inside'/'in' animate -> Open * container 'on' animate -> Open * attrib25(held,carried,in_room,on_ground) 'with'/'using'/'through' turnable(held,carried,in_room,on_ground) -> Open * 'up'/'u//' attrib25(held,carried,in_room,on_ground) -> Open * attrib25(held,carried,in_room,on_ground) -> Open ; Verb 'pat' 'pet' 'rub' * object 'with'/'using'/'through' object -> Pet * object -> Pet ; Verb 'pick' * 'up'/'u//' takeable(on_ground,many) -> Take * object 'with'/'using'/'through' object -> Pick * object -> Pick ; Verb 'play' * object -> Play ; Verb 'press' 'push' * object 'onto' object -> PushOn * object 'up'/'u//' object -> PushOn * object 'under' object -> PutUnder * 'against' object -> Press * 'off' object -> Press * 'on' object -> Press * object -> Press ; Verb 'q//' 'quit' * -> Quit ; Verb 'r//' 'report' * 'on' object -> Location * object -> Location * -> Report ; Verb 'reach' * 'onto' object -> Reach * 'on' object -> Reach * 'up'/'u//' object -> Reach * 'for' object -> ReachFor * 'into'/'inside'/'in' container -> Reach ; Verb 'read' 'skim' * readable(held,carried,in_room,on_ground) 'with'/'using'/'through' object -> Read * readable(held,carried,in_room,on_ground) -> Read ; Verb 'remove' * object 'with'/'using'/'through' object -> Remove * object 'from' object -> Take * object -> Remove ; Verb 'restart' * -> Restart ; Verb 'restore' * -> Restore ; Verb 'rl' * -> Location ; Verb 'rummage' 'search' 'sift' 'sort' * 'with'/'using'/'through' object -> Search * 'for' object -> Find * 'into'/'inside'/'in' object -> Search * object -> Search ; Verb 'save' * -> Save ; Verb 'score' * -> Score ; Verb 'scream' 'shout' 'yell' * -> Yell ; Verb 'script' * -> Script ; Verb 'set' * object(in_room,on_ground) 'for' object -> Set * object(in_room,on_ground) 'at' object -> Set * object(in_room,on_ground) 'to' object -> Set ; Verb 'shake' * object(have) -> Shake ; Verb 'slide' * object 'under' object -> PutUnder * 'off' object -> Extinguish * 'on' object -> TurnOn ; Verb 'smell' 'sniff' * object -> Smell ; Verb 'stand' * 'on' object -> StandOn * 'up'/'u//' globalbit -> Stand * -> Stand ; Verb 'step' * 'onto' object -> StepOn * 'on' object -> StepOn ; Verb 'strike' * animate(in_room,on_ground) -> Attack * animate(in_room,on_ground) 'with'/'using'/'through' weapon(held,carried,in_room,on_ground,have) -> Attack ; Verb 'unplug' * 'from' object -> Unplug * -> Unplug ; Verb 'unscript' * -> Unscript ; Verb 'version' * -> Version ; Verb 'wait' * -> Wait ; Verb 'why' * -> Why ; Verb 'zork' * -> Zork ;