! ------ Claustrophobia world #ifndef SKIP_CLAUSTRO; Attribute downness alias general2; Global CloEternityCount; [ CloEnter; CloEternityCount = 0; StartDaemon(cloboy); ]; [ CloExit; StopDaemon(cloboy); ]; Constant CLONUMBELLS 9; Array clobelllist --> [; clobelldownL clobelldownLb clobelldownLc; clobelldown0; clobellup1 clobelldown1; clobellup2 clobellup2b clobelldown2; ]; Class CloLevelClass with out_to "You can see no way out.", in_to "It doesn't get much more in than this.", n_to #r$CloMove, s_to #r$CloMove, e_to #r$CloMove, w_to #r$CloMove, ne_to #r$CloMove, nw_to #r$CloMove, se_to #r$CloMove, sw_to #r$CloMove, before [; Examine, Touch, Attack, KnockOn, Search: if (noun == d_obj) <<(action) self.d_to second>>; if (noun == u_obj) <<(action) self.u_to second>>; Jump: "Don't make me laugh."; Bow: "In your position?"; Listen: if (noun == nothing) "Silence presses down on you."; Exit: if (verb_word == 'exit' or 'out' or 'outside') rfalse; if (verb_word == 'go') rfalse; print_ret "There isn't even enough room to ", (emphstring) "sit", " up."; ], each_turn [; if (CloEternityCount < 6) { CloEternityCount++; if (CloEternityCount == 6) print "^The stillness of this place is getting to you. You feel... \ stretched.^"; } ]; Class cloroofclass with name "metal" "roof", description "The ceiling is a bare sheet of metal, somewhat rust-stained.", door_dir u_to, door_to [; "The ceiling is quite solid."; ], before [; Search: if (location == thedark) "You sweep your fingers across the ceiling, and find nothing."; Touch: "The metal is cool, and very slightly damp."; Attack, KnockOn: print "The metal doesn't resonate at all"; if (second == nothing) "; you just bruise your knuckle."; else "."; ], has scenery open door; Class clogroundclass with name "metal" "ground", description "The floor is a bare sheet of metal, somewhat rust-stained.", door_dir d_to, door_to [; "The floor is quite solid."; ], before [; Enter: if (verb_word == 'sit' or 'lie' or 'get') "You already are on the floor."; Search: if (location == thedark) "You brush the floor about yourself, and find nothing. But your \ reach compasses so little of this boundless dark space."; Touch: "The metal is cool, and very slightly damp."; Attack, KnockOn: print "The metal doesn't resonate at all"; if (second == nothing) "; you just bruise your knuckle."; else "."; ], has scenery open door; ! returns true if any object in self hasnt scenery. (Aside from player.) [ CloFindLandmarks ix; objectloop (ix in self) { if (ix hasnt scenery && ix ~= player) { rtrue; } } rfalse; ]; Global CloMoveFlag = 0; [ CloMove; if (location == thedark) { print "You crawl through the blind, heavy dark.^"; return self; } if (CloFindLandmarks() == 0) { print "You crawl for a time; nothing varies.^"; give self ~visited; } else { if (CloMoveFlag == 0) { CloMoveFlag = 1; print "You crawl for a few moments; and you are startled to find yourself \ approaching the spot you just left.^"; give self ~visited; } else { print "You crawl for a few moments, and once again the spot you left behind \ appears ahead.^"; } } return self; ]; Class clobellclass with name "silver" "pipe" "pipes" "length" "lengths" "bone" "handle", describe [; if (self hasnt moved) rtrue; ], before [ ptr ix; Take: if (self hasnt moved) { objectloop (ix near self) { if (CloIsBell(ix) ~= 0) { give ix moved; } } } Search: if (location == thedark) rfalse; print_ret "There is nothing in ", (the) self, ". The view through it \ is circumscribed, but not otherwise enlightening."; Receive: if (receive_action == ##Insert) print_ret "Putting things in ", (the) self, " would achieve nothing."; Attack, KnockOn: if (self notin player) { print "The pipe gives off a muffled "; if (self has downness) print (emphstring) "tunk,"; else print (emphstring) "tink,"; print " buzzing slightly"; if (self in location) print " against the ground"; "."; } if (second ~= nothing) { ! generally ok, but check a few things if (self == second) { "You can't hit something with itself."; } if (CloIsBell(second) ~= 0) { "The pipes shriek painfully against each other, far louder a sound than \ their impact should produce. You hastily mute them, and rub your \ aching temples."; } } if (world ~= world_Claustro) { "The pipe says ~Hey, cut that out!~ [BUG]"; } ix = location; if (ix == thedark) ix = real_location; ptr = ix.&door_world; if (ptr == 0) "The pipe says ~I'm not at home, dweeb!~ [BUG]"; if (ix.#door_world < 4) "The pipe says ~I'm not at home, twit!~ [BUG]"; if (self has downness) { print (emphstring) "Tunnnggg....", " The pipe blurs, and for a moment \ it seems to extend, vertically, forever. \ You cannot breathe for the sound. \ The bounded world blurs vertically as well, \ and the metal ceiling recedes into the distance...^"; if (cloboy in ix) { print "^The boy's eyes seem to fade last of all. They watch you, full \ of something you may never see again.^"; } ix = ptr-->1; remove self; PlayerTo(ix, 0); ! full look print "^The sound, and the pipe you struck, are gone.^"; rtrue; } else { print (emphstring) "Tinnnggg....", " The pipe blurs, and for a moment \ it seems to extend, vertically, forever. \ You cannot breathe for the sound. \ The bounded world blurs vertically as well, \ and the metal floor recedes into the distance...^"; if (cloboy in ix) { if (cloboy.number <= 1) print "^The boy's sleeping face seems to fade last of all.^"; else print "^The boy's eyes seem to fade last of all. They watch you, \ flat, expressionless.^"; } ix = ptr-->0; remove self; PlayerTo(ix, 0); ! full look print "^The sound, and the pipe you struck, are gone.^"; rtrue; } ], after [ ix; Drop: objectloop (ix near self) { if (CloIsBell(ix) ~= 0) { give ix moved; } } ]; ! downness (== general2) means down; lack means up Class clobellupclass class clobellclass, with name "narrow" "thin", plural "lengths of thin pipe", description "It's a length of silver pipe, the length of your hand, and \ not quite wide enough to fit two fingers into. A carved-bone handle \ juts out; it's fastened a quarter of the way along the length.", has ~downness; Class clobelldownclass class clobellclass, with name "wide" "thick", plural "lengths of thick pipe", description "It's a length of silver pipe, the length of your hand, and \ not quite wide enough to fit your fist into. A carved-bone handle \ juts out; it's fastened a quarter of the way along the length.", has downness; [ CloIsBell obj; if (obj.description == clobellup1.description || obj.description == clobelldown1.description) rtrue; else rfalse; ]; [ CloIsUpBell obj; if (obj.description == clobellup1.description) rtrue; else rfalse; ]; [ CloIsDownBell obj; if (obj.description == clobelldown1.description) rtrue; else rfalse; ]; ! ---------------------- Object CloLevelL "Caught In Metal" class CloLevelClass, with description "The metal floor and ceiling seem a bit farther apart here -- at least, \ you can nearly straighten your neck, from where you sit. The floor is scarred by \ thin parallel grooves.", u_to cloroofL, d_to clogroundL, door_world CloLevel0 CloLevel0, has light; Nearby clomoons "pair of bright spots" with name "pair" "bright" "light" "spot" "spots", initial "Two spots of light shine palely on the ceiling.", description [; print "The texture of the metal is no different within the spots; they simply glow, \ with a pale, mottled radiance. Your outstretched fingers would span one easily, \ and one scantly."; switch (WorldsVisited) { 5: " The spots are several yards apart."; 6: " The spots are a couple of yards apart."; 7: " The spots aren't much more than a yard apart."; 8: " The spots are an arm's-length apart."; 9: " The spots are less than an arm's-length apart."; default: " The spots are a mile apart. [BUG]"; } ], before [; Take: "That appears to be part of the ceiling."; Touch: "The bright spots give off no heat."; ], has static; Nearby clobelldownL "length of thick pipe" class clobelldownclass, with describe [; if (self hasnt moved) "^Three of the familiar wide lengths of pipe lie nearby."; ]; Nearby clobelldownLb "length of thick pipe" class clobelldownclass; Nearby clobelldownLc "length of thick pipe" class clobelldownclass; Nearby cloroofL "roof" class cloroofclass; Nearby clogroundL "ground" class clogroundclass; Nearby clogrooves "grooves" with name "thin" "parallel" "groove" "grooves", description "The grooves are barely wide enough to fit a thumbnail into. They \ are spaced about an arm's-length apart.", before [; Touch: "You run your fingers along one of the grooves. There's a hair-fine sensation \ of motion, as if a splinter of wind had brushed your fingertips, but you cannot \ tell what it is."; Listen: "The grooves sound an almost inaudible rhythmic beat."; Take: "That appears to be part of the floor."; ], has scenery; ! --- Object CloLevel0 "Caught In Metal" class CloLevelClass, with description "You are still kneeling between unyielding surfaces, much too close \ above and below. Long parallel ridges cross the ceiling, perhaps an arm's-length \ apart, and disappear into the darkness around you.", u_to cloroof0, d_to cloground0, door_world CloLevelL CloLevel1, after [; Drop: if (location == thedark) { "Dropped and lost."; } ], has ~light; Nearby clobelldown0 "length of thick pipe" class clobelldownclass, with describe [; if (self hasnt moved) "^Another piece of pipe, a wide one, rests on the floor."; ]; Nearby cloroof0 "roof" class cloroofclass; Nearby cloground0 "ground" class clogroundclass; Nearby cloridges "ridges" with name "parallel" "ridge" "ridges", description "The ridges are about the width of your finger. They seem to be \ pressed directly from the metal above you.", before [; Touch: "You rest your fingers on a ridge. It is vibrating faintly, with a \ rhymthic pulsing shock -- as if something was ricocheting along it, \ three times a heartbeat."; Listen: "The ridges sound an almost inaudible rhythmic beat."; Take: "That appears to be part of the ceiling."; ], has scenery; ! --- Object CloLevel1 "Caught In Metal" class CloLevelClass, with description "You sit hunched between parallel metal planes. Your chin is tucked \ down and your head still pressed uncomfortably against the ceiling. Dim-glowing \ traces on the floor stretch into the distance, however; low as it is, this \ space seems vastly wide.", u_to cloroof1, d_to cloground1, door_world CloLevel0 CloLevel2, has light; Nearby clobellup1 "length of thin pipe" class clobellupclass, with describe [; if (self hasnt moved) "^Two objects are resting on the ground here: two short lengths of silver pipe, \ it seems, one wider than the other. Each has a bone handle protruding \ from its side, near one end."; ]; Nearby clobelldown1 "length of thick pipe" class clobelldownclass; Nearby cloroof1 "roof" class cloroofclass; Nearby cloground1 "ground" class clogroundclass; Nearby clolights1 "glowing tracery" with name "glowing" "light" "trace" "traces" "tracery" "line" "lines" "grid", description "The light comes from thin lines inset into the floor, a dimly \ phosphorescent grid.", before [; Touch: "The lines are no warmer than the metal they are set in."; Take: "That appears to be part of the floor."; ], has scenery; ! ---- Object CloLevel2 "Caught In Metal" class CloLevelClass, with description "The space between these plates is, if anything, fractionally \ lower than the first one you fell into. A dim phosphorescent grid is traced \ out across the ceiling, marking silent distance in all directions.", u_to cloroof2, d_to cloground2, door_world CloLevel1 CloLevel3, has light; Nearby clobellup2 "length of thin pipe" class clobellupclass, with describe [; if (self hasnt moved) "^There are three more lengths of silver pipe here, just like the \ ones you found earlier. Two are narrow; one is wide."; ]; Nearby clobelldown2 "length of thick pipe" class clobelldownclass; Nearby clobellup2b "length of thin pipe" class clobellupclass; Nearby cloroof2 "roof" class cloroofclass; Nearby cloground2 "ground" class clogroundclass; Nearby clolights2 "glowing tracery" with name "glowing" "light" "trace" "traces" "tracery" "line" "lines" "grid", description "The light comes from a grid of thin lines inset into the ceiling.", before [; Touch: <>; Take: "That appears to be part of the ceiling."; ], has scenery; ! ---- Object CloLevel3 "Caught In Metal" class CloLevelClass, with description "The metal overhead bends you nearly double, even sitting, as you \ are. Both floor and ceiling seem more heavily rusted here; small clumps of \ phosphorescent moss cling here and there.", u_to cloroof3, d_to cloground3, door_world CloLevel2 CloLevel4, has light; Global cloboycounter; ! used by some states of the kid Global cloboywatch; ! what has the kid seen you do? Constant watch_EatMoss 1; Constant watch_Crawl 2; Constant watch_SelfCrawl 4; Constant watch_Speak 8; Nearby cloboy "boy" with name "young" "ragged" "boy", initial [; switch (self.number) { 0: "A figure sprawls indifferently on its back a few feet away. \ His back; it's a boy, raggedly dressed; young, you think, although it's \ oddly uncertain a guess. He breathes steadily in sleep."; 1: "The ragged boy is still curled, asleep, on the rusted floor."; 2: "The ragged boy is huddled, arms wrapped around himself, staring at you \ with hot intensity."; 3, 7: "The ragged boy is sitting nearby, staring off into the low distance."; 4: print_ret "The ragged boy is huddled, eyes wild. He is clutching ", (a) child(self), "."; 5: print_ret "The ragged boy is sitting nearby. His mouth twists wryly as he \ turns ", (a) child(self), " over in his hands."; 6: print_ret "The ragged boy is sitting nearby. He is rapt, staring at \ ", (a) child(self), " in his hands."; default: "The boy is furiously typing Inform code. [BUG]"; } ], description [; print "The boy is wrapped in worn shreds, bright long ago, now mostly grey. His eyes \ and hair are dark; once again you find yourself unsure of his age."; switch (self.number) { 0, 1: print " The boy is asleep."; 2: print " The boy is staring at you with hot intensity."; 4: print " The boy's fingers are white, wrapped around ", (a) child(self), "."; 5: print " The boy is turning ", (a) child(self), " idly in his fingers."; 6: print " The boy is gazing at ", (a) child(self), " with hot intensity."; } new_line; rtrue; ], react_before [; Take: switch (self.number) { 1: if (noun in parent(self)) { print "You extend a hand towards ", (the) noun, " and freeze. "; <>; } 4: if (noun in self) { print_ret "White-faced, the boy snatches ", (the) noun, " out of \ your reach."; } 6: if (noun in self) { move noun to parent(self); self.number = 7; "Wrapping his hands around the pipe, the boy turns away, shaking, \ hiding the silver metal with his body.^^Then he straightens, slowly. \ His eyes search yours, pressing at the wall of understanding between \ you; they drop to the length of pipe, and rise again. Moss-light shivers \ on the polished surface. And -- very softly -- he lays the pipe down \ before you."; } } Eat, Taste: if (self.number == 4 or 6) rfalse; if (self.number > 1) { if (noun == clolightmoss || noun == mossclump) { if (cloboywatch & watch_EatMoss == 0) { cloboywatch = cloboywatch | watch_EatMoss; print "The boy nods encouragingly.^^"; } } } Attack, KnockOn: if (noun in self) { print_ret "You're not the one holding ", (the) noun, "."; } ], react_after [; Go: if (self.number == 4 or 6) rfalse; if (self.number > 1) { if (cloboywatch & watch_Crawl == 0) { cloboywatch = cloboywatch | watch_Crawl; print "^The boy is still sitting there, watching you, \ grinning openly. After a moment, the \ expression slips; he sighs.^"; } } Take: if (self.number == 7) { if (CloIsDownBell(noun) ~= 0) { "The boy's hand clenches as you pick up the length of pipe. \ But his face does not change."; } } ], life [ ix jx dropbell; WakeOther: if (self.number ~= 1) "He's awake."; ! find a bell on the ground dropbell = nothing; for (ix = 0 : ix < CLONUMBELLS : ix++ ) { jx = clobelllist-->ix; if (jx in parent(self)) { dropbell = jx; break; } } if (dropbell == nothing) { self.number = 2; cloboycounter = 0; "Perhaps it was only the stirring of the air; the child is awake. \ He sits crosslegged, hunched under the low ceiling, staring at you \ in wonder."; } else { self.number = 4; cloboycounter = 0; move dropbell to self; print_ret "Perhaps it was only the stirring of the air; the child is awake. \ A thin hand darts out and snatches ", (the) dropbell, ". The boy clutches \ the metal to his chest, staring at you wildly."; } Ask, Tell, Answer, Order: if (self.number <= 1) { <>; } if (self.number == 4) "He jerks away from you, hiding the pipe with his body."; if (self.number == 6) { print "He twitches violently. "; ix = child(self); if (ix == nothing) { "Then he stops and searches his wallet. [BUG]"; } <>; } if (cloboywatch & watch_Speak == 0) { cloboywatch = cloboywatch | watch_Speak; "The boy frowns. He makes a puzzled circular gesture, leaning closer."; } else { "He shakes his head and sits back in confusion."; } Give, Show: if (self.number <= 1) { "He's asleep."; } if (self.number == 4) "He jerks away from you, hiding the pipe with his body."; if (self.number == 6) { "He has no attention for you."; } if (CloIsUpBell(noun) ~= 0) { print_ret "The boy glances at ", (the) noun, ", and back up at you. He shakes \ his head. He points at the ceiling, or something beyond, and then spreads \ his hands, head tilted."; } if (CloIsDownBell(noun) ~= 0) { "The boy closes his eyes for a moment; and shakes his head."; } print_ret "The boy peers at ", (the) noun, " with some interest, but does \ not touch it."; Kiss: <>; ], before [; Search, Touch: if (self.number <= 1) { <>; } "He shies away, reflexively."; ], number 0, ! 0: first found; 1: asleep, dropped bell (or whatever, or nothing); ! 2: awake and snatched nothing; 3: into eternal hanging-out ! 4: awake and snatched bell; 5: holding up-bell (not yet given back) ! 6: holding down-bell; 7: returned down-bell, waiting for you to leave. daemon [ ix jx dropbell; if (location ~= parent(self)) return; switch (self.number) { 0: if (location == parent(self)) { self.number = 1; dropbell = nothing; for (ix = 0 : ix < CLONUMBELLS : ix++ ) { jx = clobelllist-->ix; if (anywherein(jx, player) ~= 0) { dropbell = jx; break; } } if (dropbell == nothing) { objectloop (ix in player) { if (ix hasnt worn) { dropbell = ix; break; } } } print "^Your knee slips abruptly on moss; you jerk a hand out to catch \ yourself"; if (dropbell ~= nothing) { move dropbell to parent(self); print ". ", (The) dropbell, " flies from you and hits the ground"; if (CloIsBell(dropbell) ~= 0) { print " with a muffled clank"; } else { if (dropbell == jar && children(jar) > 0) print "; fortunately, it lands upright"; } } print ". The boy slips a syllable of protest, turns on his side, and \ huddles, still asleep.^"; } 2: cloboycounter++; switch (cloboycounter) { 2: print "^The boy's eyes search you, desperately, and then over again \ more slowly.^"; 3: self.number = 3; print "^The boy flops back abruptly on the metal floor. His face clenches \ for a moment. He struggles for composure, slowly; then he sits up, \ smiles wryly, gives an expressive shrug. His gesture includes this \ entire infinite, crushing world.^"; } 3: switch (random(5)) { 1: if (cloboywatch & watch_EatMoss == 0) { print "^The boy plucks a bit of moss and eats it. He glances over \ at you and gestures at the light-patched ceiling, mouth twisting \ with mixed resignation, encouragement, and apology.^"; } else { print "^The boy idly plucks a bit of moss and eats it.^"; } 2: if ((cloboywatch & watch_Crawl == 0) && (cloboywatch & watch_SelfCrawl == 0)) { cloboywatch = cloboywatch | watch_SelfCrawl; print "^The boy smirks suddenly and waves a hand towards you. \ He turns, glances back, and raises an eyebrow. Then he crawls \ off into the dimness... and, immediately, is crawling back \ towards you, from the opposite direction. He grins smugly and \ sprawls out on the metal floor again.^"; } } 4: cloboycounter++; switch (cloboycounter) { 2: ix = child(self); if (ix == nothing) "The boy pulls a silver dollar from his empty fist. [BUG]"; print "^The boy shakes himself out of immobility, and darts a glance \ down at ", (the) ix, " he holds."; if (CloIsUpBell(ix) ~= 0) { self.number = 5; cloboycounter = 0; print " He stares for a moment. He turns the pipe over, once, \ as if hoping for... something impossible. His head seems bent \ by more than the rusty ceiling.^"; } else { self.number = 6; cloboycounter = 0; print " He stares for a moment; his eyes are wondering.^"; } } 5: cloboycounter++; switch (cloboycounter) { 1: ix = child(self); if (ix == nothing) "The boy pulls a silver dollar from his empty fist. [BUG]"; print "^Dark eyes catch yours. The boy holds out ", (the) ix, " with a quirk-mouthed smile. You take it, wondering. He \ gestures vaguely upward and shakes his head helplessly.^"; move ix to player; self.number = 3; } 6: cloboycounter++; switch (cloboycounter) { 4: print "^The boy raises the length of pipe for a long moment, \ seemingly watching the dim light gleam from it.^"; 6: print "^The boy glances at you for just a moment.^"; 7: cloboycounter = 1; } } ], has animate static transparent; Nearby cloroof3 "roof" class cloroofclass; Nearby cloground3 "ground" class clogroundclass; Nearby clolightmoss "glowing moss" with name "glowing" "light" "phosphorescent" "clumps" "moss", description "Small clumps of moss shed a faint light, barely visible even from \ the corner of your eye.", before [; Take: if (parent(mossclump) ~= nothing) "There's no need to start a collection."; move mossclump to player; give mossclump ~general; itobj = mossclump; "You scrape a bit of moss free. It glistens in your fingers, bleeding light; \ in moments it has faded."; Ignite: "The moss sizzles, and a savory odor spreads."; Push: "The moss gives, and oozes."; Smell: "The glowing moss actually doesn't smell bad. Thick, somewhat doughy, like \ risen bread."; Eat, Taste: "You twist awkwardly, bending to the rusty floor, and the moss that shines \ dimly there. A clump dissolves on your tongue. \ The juice is thin and oily, belying the \ doughy odor, but it's not foul. Somewhat sweet."; ], has scenery; Object mossclump "bit of dark moss" with name "bit" "dark" "moss", description [; if (self has general) "Just a bit of dead moss, somewhat browned."; "Just a bit of oozing, dead moss."; ], before [; Smell: if (self has general) "The moss smells good -- a savory, roasted aroma."; "The bit of moss actually doesn't smell bad. Thick, somewhat doughy, like \ risen bread."; Eat, Taste: remove self; print "The moss dissolves on your tongue."; if (self has general) " It has a smoky, rich taste."; else " The juice is thin and oily, belying the \ doughy odor, but it's not foul. Somewhat sweet."; Touch: if (self has general) "The moss is a bit toasted."; "The moss is moist."; Ignite: if (self has general) { remove self; "The bit of moss blackens, and scatters to grey dust."; } give self general; "The bit of moss sizzles and browns, and a savory odor spreads."; Push: <<(action) clolightmoss>>; ]; ! general means cooked ! ---- Object CloLevel4 "Caught In Metal" class CloLevelClass, with description "You are lying full length on scarred, rusted metal. Your raised head \ brushes the ceiling. Is it harder to breathe here? Don't think about it.", u_to cloroof4, d_to cloground4, door_world CloLevel3 CloLevel3, has ~light; Nearby cloroof4 "roof" class cloroofclass; Nearby cloground4 "ground" class clogroundclass; Nearby nothingshadow "shadow of nothing" class shadowclass, with name "nothing" "outline", initial "A black outline stretches across the metal -- a shadow, cast by the \ light of your flickering flame, from... nothing that you can see.", description "The abyss-dark shadow does not reveal a form. It reaches far ahead of you, \ shifting as the oil flame moves, but the spot it reaches from is empty.", door_to FormRoom1, door_world world_Form, before [; Smell: "The shadow has no odor at all."; Receive: if (noun == jar) { "The shadow bobs wildly as you move the jar towards it. The darkness \ dodges sideways, seemingly alive. You push the jar farther forward, \ and the shadow licks back towards you; vertigo rolls around you, \ and you pull back hastily."; } print (The) noun, " moves through the blackness and is gone.^"; rfalse; Enter: if (jar notin CloLevel4) { "The shadow bobs wildly as you move towards it. It leans sideways -- and \ vanishes. You spin around; there it is, stretching from the \ spot you just passed through, away from your dancing flame."; } print "The shadow remains steady as you move towards it, the light at your \ back. The dark ", (emphstring) "flares;", " things begin to drop away. \ The confining metal planes recede, and you expand in vast relief, and \ expand and dissipate and fade --^^"; PauseClear(); print "-- You are aware of a hard grey surface beneath your feet.^^"; rfalse; ], has ~scenery static; #ifnot; ! SKIP_CLAUSTRO; [ CloEnter; ]; [ CloExit; ]; [ DarkDescriptionDark; "It is too dark to see."; ]; Object CloLevel1 "Level 1" with description "Eighth room."; Constant CloLevel3 CloLevel1; #endif; ! SKIP_CLAUSTRO;