!---------------------------------------------------------------------------- !************************************** VARIOUS "CAN'T GO THAT WAY" MESSAGES !---------------------------------------------------------------------------- routine PrintText09(val1,val2) { select val1 !------------------ ! GENERAL MESSAGES !------------------ case 1 { !Usage (9,1,1) - Can't go Fore !Usage (9,1,2) - Can't go Aft if (val2 = 1): print "\"Fore\""; else: print "\"Aft\""; " is a nautical direction meaning "; if (val2 = 1): print "\"toward the bow\" or \"toward the front\". "; else: print "\"toward the stern\" or \"toward the back\". "; " It doesn't apply here. You can't go "; if (val2 = 1): "fore." else: "aft." } case 2 { !These are some additional (general and specific), "can't go" msgs. select val2 case 1 { !Usage: (9,2,1) if (mast.misc #1) { "Wooden rails surround the deck, preventing further movement in that direction." } else { "If you went that way, you would fall over the side." } } } case 3 { !player is trying to "approach" something that can't be. !Basically, we'll just say "you approach the object". !Usage: (9,3,obj) !!!! print CThe(val2); IsOrAre(val2,true); " right here." print "You approach "; The(val2); "." } case 4 { select val2 case 1 { !Usage: (9,4,1) !Similar to 3, but the player is in a "bottomless" room (on the !steps of the mill, or on the trawl net). "You're in no position to move around like that." } } !-------------------- ! PROLOGUE LOCATIONS !-------------------- case grassland { !Usage: (9,obj/loc) VMessage(&DoGo, 2) !You can't go that way. } case at_grassy_patch { ! User is trying to leave the grassy patch in Prologue ! A different message if pendant is here. It's on ! the ground as soon as the patch is gone, and we ! move to the next chapter when it's picked up. select val2 case 1 { "You look ahead, where the grass stretches beyond your vision, and consider leaving behind "; if (pendant is moved) { print "this unexpected discovery. A "; pendant.name; " rests here on the ground where tall grass used to be. In your experience, the smallest of things are often the most important." } else { "whatever might be hidden in the grassy patch. In your experience, the smallest of things are often the most important. You decide to stay a moment more, to find it." } } case 2 { !This is shown from grassland & grassy_patch both. "You consider heading back toward Homesdale, but your journey draws you onward. At the moment, you feel it somehow important to "; if (pendant is moved) { print "take "; The(pendant); " with you." } else { "discover what lies concealed in the grassy patch." } } case 3 { "You consider striking out on a different path, but quickly shake the thought. Your journey is forward, your last respite is far behind, and only the "; if (pendant is moved) { print pendant.name; " lying here on the ground "; } else { !So if it's not here, then the grassy patch is. "shiny object concealed in this grassy patch "; } "has interrupted your trek." } case else { VMessage(&DoGo, 2) !You can't go that way. } } !------------------ ! PART 1 LOCATIONS !------------------ case farm_path { !Usage: (9,locobj,dirobj) !User is trying to go the wrong way at the start of Part-1. select val2 case w_obj { "That way leads back the way you came. Your journey has brought you here, and your next destination must be ahead." } case nw_obj, n_obj, ne_obj { "The northern fence is in your way." } case sw_obj, s_obj, se_obj { "The southern fence is in your way." } case else { VMessage(&DoGo, 2) !You can't go that way. } } case house { !Usage: (9,locobj,dirobj) !User is trying to go the wrong way from the farm house. select val2 case 0,1 { !This is called in multiple places, when player tries !to leave the farmstead by going in an outward direction. "Something compels you not to leave this farmstead and continue on your journey just yet."; if (val2=0) { print " "; } !Don't end the line. if (val2=1) { print newline } !Just end the line. return !So none of the defaults below will print. } case s_obj { print CThe(south_gate); " is locked. "; } case e_obj, in_obj { print CThe(barn_doors); " are barred from the other side. "; } case w_obj { "You glance back the way you came, where the worn path winds up and around a bend. "; PrintMessage(9,house,0) !Something compels you to stay. } case nw_obj, ne_obj, sw_obj, se_obj { "A fence blocks the way. "; } case else { VMessage(&DoGo, 2) !You can't go that way. !There will be a linefeed after, but okay. } !And finally, list available exit. if (verbroutine = &DoGo) { PrintMessage(14,val1) !Print available exits. } else { print newline !Just end the line. } } case hill { !Usage: (9,locobj,dirobj) !User is trying to go wrong from the feeding hill. !Special condition, where rope is tied to something. if (val1.misc #1) { val2 = rope !So the message below will work. val1.misc #1 = false !And reset the temp flag. } select val2 case w_obj, nw_obj, n_obj, ne_obj, e_obj { "That way leads away from the farm and into capacious pastures. "; PrintMessage(9,house,0) !Something compels you to stay. } case u_obj, d_obj, se_obj, in_obj, out_obj { !We can say this same thing if the SE exit has been blocked. !Nothing special to say. We'll let the exit list handle it. } case rope { "You will have to untie the rope first (if you intend to take it with you), or drop it here." } case else { VMessage(&DoGo, 2) !You can't go that way -- just in case. } if (verbroutine = &DoGo) and (val2 ~= rope) { PrintMessage(14,val1) !Print the available exits from here. } else { print newline !Nothing else to add to what was said. } } case farm_house { !Usage: (9,obj) ! The player invades the barn, a windmill (even cuts off a sail ! arm), and huts in the abandoned village. What would stop him ! from invading the woman's home? A sense of right and wrong is ! okay, but that's a cop-out. Let's change the messages some. ! Here's the original message: ! "That isn't your way. This is only a brief stop on your journey, ! and it wouldn't be right to invade the old woman's home." ! And here are the updated version: if (widow in location) { "The widow motions you back. She doesn't want you in her home." } else { "The widow seemed genuinely frightened when she went inside. It would be best not to disturb her now." } ! Okay, so they're still kind of a cop-out. But, better, I hope. } case barn { !Usage: (9,locobj,dirobj) select val2 case w_obj { !We'll auto-open the door if it's not barred. So if this !gets called, then it *is* barred. "A long, heavy beam currently bars the doors. "; } case d_obj { ! We'll auto-open it if it's not tied closed, so if we get ! here, it must mean that the hatch *is* tied closed. ! Or, the user is trying to open hatch without removing rope. print capital rope.name; " is looped around the handle, "; print "tying "; The(hatch); " securely closed. "; } case u_obj { "The ladder is out of reach. It's held up by a flat lever, although that's also out of reach. "; } case nw_obj { print "Now that "; The(wagon); " has crashed up against the wall outside, it isn't possible to leave through the northwest exit. It's entirely blocked. "; } case sw_obj { if (barn_southexit is known) { "A panel blocks the southwest exit. "; } else { "A wall is in your way. "; } } case out_obj { print "Which way?"; " "; } case else { "A wall is in your way. "; } !And finally, list available exit. if (verbroutine = &DoGo) { PrintMessage(14,val1) !Print available exit. } else { print newline !Just end the line. } } case bull { ! Usage: (9,obj) !Player is trying to ride the bull. if (grain in trough) { "No matter how docile it looks at the moment, it's still a wild bull. Besides, you're neither equipped nor inclined to climb up on its back." } else { PrintMessage(3,2,10) !If your own safety was less import. } } case storage_bin { ! Usage: (9,obj) ! Player is trying to climb up onto the storage bin. "You climb up onto the storage bin, but since you can't really reach anything from there, you climb back down." } case loft_ladder { select val2 case 1 { !Usage: (9,obj,1) if (val1.misc #1) { "The ladder is down. You can easily climb up it now." } else { "Even by jumping, you can't reach the ladder or its lever." } } } case cellar { !Usage: (9,locobj,x) if (val2 = 1) { ! The player *might* need hints, to figure out that you ! must tie the rope to the wheel and drag it up that way. ! But, this is the first thing they're going to do -- up ! while holding the wheel. Do I really want to give a hint ! at this level, or perhaps nudge them on track elsewhere? ! Maybe the smallest of hints will work at this level. if (hatch.misc #1 = 0) { !First minor clue. "You start up the ladder, but find it rather awkward. Strength and stamina won't fail you, but you can't climb up if you're holding the big wagon wheel." hatch.misc #1 ++ } elseif (hatch.misc #1 <= 3) { !Better clue - but give it three times before other. "Again, you start up the ladder while holding the big wagon wheel. You can't hold the wheel and the ladder at the same time, but perhaps there is another way." hatch.misc #1 ++ } else { !Very obvious clue. "You find it impossible to ascend while carrying the big wagon wheel. You won't leave here with it unless you can somehow pull it along behind you." } } elseif (val2 = 2) { ! Player tied the rope to the wheel, but they didn't bother ! to take the wheel off the contraption first. Well, this ! is going to do the trick. "You start up the ladder. You make it as far as the rope will allow. You feel a snap through the rope, which is pulled suddenly taut. That's when you lose your footing and make a forced hop down from the ladder.\n" "The stress seems to have dislodged the wheel from the contraption (hence the snap), and it now rests over to one side. The rope remains tied to it." } else { !Usage: (9,locobj,dirobj) ! This one's easy. There is only one way we can go. if (val2 = in_obj) { "You're already in the cellar." } else { "The only way out is up." } } } case wagon { select val2 case 1 { !Usage: (9,obj,1) !Response to trying to climb up this version of the wagon. "You climb up the side (which is actually the bottom) of "; print The(val1); ". With nowhere else to go, you climb back down." } } case distant_wagon { select val2 case 1 { !Usage: (9,obj,1) !Response to trying to climb up this version of the wagon, !after we've already been up there once. "The roof nearly gave out the first time. You have no good reason to risk it again." } case 2 { !Usage: (9,obj,2) !Response to actually climbing up. This is only the first !part. The rest will come when we actually enter the loft. "From atop the wagon (its side, actually), you are within reach of the barn's roof." } case 3 { !Usage: (9,obj,3) ! The girl is trapped in there, so it's worth risking it. "Even though you doubt the integrity of the barn's roof, it seems worth the risk now that the girl is cornered inside." } } case orchard { !Usage: (9,locobj,dirobj) select val2 case n_obj { print CThe(south_gate); " is locked. "; } case u_obj, d_obj { VMessage(&DoGo, 2) !You can't go that way. !There will be a linefeed after, but okay. } case else { "A fence blocks the way. "; } !And finally, list available exit. if (verbroutine = &DoGo) { PrintMessage(14,val1) !Print available exit. } else { print newline !Just end the line. } } case distant_loft { !Usage: (9,obj,1) "You can't reach the barn windows from here, otherwise it might be possible to enter the loft. Usually, that's better accomplished from the inside." } case barn_windows { select val2 !Usage: (9,obj,1) case 1 { !This one only gets called from inside the loft. "You look out the windows while considering it. "; if (distant_wagon.misc #1) { "No, the sloping roof outside is in poor shape, especially after climbing up here already. "; } else { "The boards of the roof, outside the window, don't look sturdy at all. "; } "It wouldn't be safe to leave that way." } } case loft { select val2 case ne_obj, e_obj, se_obj { "You would fall off the edge if you went that way." } ! No need to check for ladder, because we'll push the lever ! automatically if we're up here. The only reason for not ! being able to go down is if the player carries the beam. case d_obj, in_obj, out_obj { ! This is opposed to auto-dropping the beam, in order ! to let the player know that they're on the right track. "You can't climb down to the floor of the barn while "; print "carrying "; The(beam); ". If you intend to get it down there, perhaps there is an easier way." } case n_obj, s_obj, nw_obj, sw_obj { "A wall is in your way. The only exit is down." } case u_obj { "You're already in the loft. No way from here but down." } } case rocking_chair { select val2 case 1 { !Usage: (9,obj,1) !Player sits down in the rocking chair -- or tries to. if (widow in location) { print CThe(widow); " seems satisfied to sit there alone." } else { "You take a seat in the rocking chair. It's not nearly as comfortable as "; print The(widow); " made it seem. You get up and return to the yard." } } } case barn_doors { select val2 case 1 { !Usage: (9,obj,1) - Response for DoOpen attempt if barred. print "You can't. "; CThe(val1); print IsOrAre(val1,true); " barred from the other side." } } !------------------ ! PART 2 LOCATIONS !------------------ case cabin_windows { !Usage: (9,obj,1) "You can't fit through the cabin windows. With an open doorway leading "; if (location = deck) { print "in to aft (currently "; barge_aft_dir.name; "), "; } else { print "out (currently "; barge_fore_dir.name; "), "; } "you don't need to go through the windows anyway." } case campsite { !Usage: (9,loc,dir) if (val2 = game_fore_dir) { "According to the motherly maiden's instructions, scribed upon the parchment you carry, you have a long "; print game_fore_dir.name; "ward journey ahead. Although you lost a little time earlier, you can spare a moment to investigate the source of this strange rectangular shadow." } elseif (val2 = game_back_dir) { "You left Homesdale early this morning. You have no reason to head back now." } elseif (val2 = in_obj, out_obj, d_obj) { VMessage(&DoGo, 2) !You can't go that way. } else { "The fishing village, your destination, is still two and a half days ahead (to the "; print game_fore_dir.name; "). Homesdale is far behind "; print "(to the "; game_back_dir.name; "). "; "This is but a brief stop on your journey, and you have no reason to wander off course." } } case trawl { !Usage: (9,loc,dir) select val2 case in_obj { "You're already clinging to the trawl net." } case out_obj { "The only way out seems to be up (to the deck)." } case else { "That way would lead to a deadly fall." } } case deck { !Usage: (9,loc,dir) select val2 case d_obj, barge_starboard_dir { if (mast.misc #1) { "Wooden rails that stand a little taller than you surround the edges of the deck, blocking the side ladder. You can't leave the barge unless you lower the rails." } else { select deck.misc #1 case 0: PrintMessage(3,27,1) !Spiders demand full attention. case 1 { "The starboard-side ladder leads down off the barge, but to disembark now would be an act of cowardice. Besides, you couldn't outrun the spiders. They'll be here soon." } case 2,4: PrintMessage(9,2,1) !You would fall over the side. ! case 3: Movement actually works in state 3. No blocking. } } case out_obj { "Which way?" } case in_obj, barge_aft_dir { select deck.misc #1 case 0: PrintMessage(3,27,3) !Too many spiders block the way. case 1 { "When you approach the entrance to the cabin, the captain "; rnd = random(3) select rnd case 1: "pokes his pale head out. "; case 2: "stands in the doorway. "; case 3: "moves into view. "; PrintMessage(8,captain,4) !He points at the mast. } ! case 2,3,4: Movement works in these remaining states. } case u_obj { select deck.misc #1 case 0: PrintMessage(3,27,3) !Too many spiders block the way. case else { if (quarters_door is locked) and \ ((deck.misc #1 > 1) or (mast.misc #1)) { "At the top of the steps, you find the door leading into the upper room locked from the inside. You walk back down to the deck." } else { "When you approach the steps leading up to the cabin's upper floor, the captain "; rnd = random(3) select rnd case 1: "pokes his pale head out from the lower entrance. "; case 2: "stands in the lower doorway. "; case 3: "moves into view at the lower doorway. "; PrintMessage(8,captain,4) !He points at the mast. } } } case else { if (deck.misc #1 = 3) and \ (val2 = game_back_dir) { ! The player tried to go the way that used to be aft, but ! now the barge has landed and faces west. So, aft is ! east. Let the player know, just as a friendly message. "As the barge landed, it swung around to face west. The entrance to the aft cabin is now east." } elseif (deck.misc #1 = 4) and (val2 = e_obj) { ! The player tried to go east, but the barge must be ! flying a different direction now. So, let them know. print "When the barge took to flight again, it resumed a course to the "; barge_fore_dir.name; ". The entrance to the aft cabin is now "; barge_aft_dir.name; "." } else { PrintMessage(9,2,1) !You would fall over the side. } } } case cabin { select val2 case d_obj { "You see no openings in the floor. "; } case else { if (deck.misc #1 = 3) and (val2 = game_fore_dir) { ! The player tried to go the way that used to be fore, but ! now the barge has landed and faces west. So, fore is ! west. Let the player know, just as a friendly message. print "The barge no longer faces "; print game_fore_dir.name; ". "; } elseif (deck.misc #1 = 4) and (val2 = w_obj) { ! The player tried to go west, but the barge must be ! flying a different direction now. So, let them know. print "The barge is once again flying on a"; if (barge_fore_dir = e_obj): "n"; print " "; barge_fore_dir.name; "erly heading. "; } else { "A cabin wall is that way. "; } } !And finally, list available exit. if (verbroutine = &DoGo) { PrintMessage(14,val1) !Print available exit. } else { print newline !Just end the line. } } case mill { select val2 case u_obj { ! "Up" becomes tricky, because there are two different ! things we can climb. I basically try to figure out ! the player's most likely intention, otherwise, we have ! to give them a pointer/clue to type something more. if (mill.misc #1 = nothing) { "A ladder leads up to the barge's deck (south), and stone steps lead up the side of the windmill. You will have to be more specific about what you want to climb." } else { !We can always climb up to the deck, so the only other !possibility is that it's mill_steps, and they're broken. "The windmill's lower steps have crumbled away. Good steps lead to the sail arms above, but those are beyond your reach." } } case out_obj { "Which way?" } case d_obj { "You're already on the ground." } case else { ! We don't have to check for the locked door west, because ! the "mill_door.door_to" already does that. So, else won't ! include west, so it's okay to mention the player leaving. ! It could also be that we're oriented in a way that makes ! forward or backware "west" or "south", but it won't really ! matter. Those will just be conditions that won't hit here. select val2 case game_fore_dir: print "You look "; "ahead"; " to the "; case game_back_dir: print "You look "; "back"; " to the "; case else: "You look to the "; print val2.name; " and consider leaving the captain stranded here on a barge that won't fly right. A sense of duty compels you to remain, and perhaps find a solution before continuing on your journey." } } case mill_door { select val2 case 1 { !Usage: (9,obj,1) !Player is trying to enter the mill, and the door is locked. "A heavy rusted lock hangs from the door's latch. The door to the windmill won't open." } } case steps { !Usage: (9,loc,dir) ! The direction doesn't even matter. ! If it's not down, we'd fall off. "Go any direction but down, and you will fall off." } case in_mill { !Usage: (9,loc,dir) select val2 case u_obj { "The central shaft lacks hand and footholds. It's unclimbable.\n" "At the top of the mill, you see only a set of gears and a main axle. Whatever you have in mind will have to be done from down here." } case d_obj { VMessage(&DoGo, 2) !You can't go that way. } case in_obj { "Which way?" } case n_obj, ne_obj, se_obj, s_obj, sw_obj, w_obj, nw_obj { "The windmill has only this one room. "; !And finally, list available exit. if (verbroutine = &DoGo) { PrintMessage(14,val1) !Print available exit. } else { print newline !Just end the line. } } } case cargo { select val2 case 1 { !Usage: (9,obj,1) - Trying to climb up crates, before moved. "You can probably climb onto a crate, but at the moment it seems pointless." } case 2 { !Usage: (9,obj,2) - Trying to climb up crates, before moved. "You might be able to reach the top of the mast, but none of the crates are near it." } case 3 { !Usage: (9,obj,3) - Trying to move crates, while standing. "You can't, while you're standing on them." } } case mast { select val2 case 1 { !Usage: (9,obj,1) - Trying to climb mast, without crates. "It isn't built for climbing. You would need something else, in order to reach the top." } } case sail_arm { select val2 case 1 { !Usage: (9,obj,1) - Trying to climb sail arm, without crates. "Unlike the damaged starboard wing, the sail arm exposes no inner structure. Its sharp angle against the mast makes it impossible to climb, without something else to assist." } } case quarters { select val2 case in_obj { print "Which way?"; " "; } case u_obj { "You can't go up any further. "; } case else { ! I would mention walls, but as of right now, I haven't ! implemented walls, so in case I don't, just say this. "You can't leave the captain's quarters that way. "; } !And finally, list available exits. if (verbroutine = &DoGo) { PrintMessage(14,val1) !Print available exits. } else { print newline !Just end the line. } } !------------------ ! PART 3 LOCATIONS !------------------ case wharf { select val2 case w_obj { "That way leads back the way you came. Your journey has brought you here, and you are determined to honor the motherly maiden's request." } case sw_obj, s_obj, se_obj { "You can see nothing of importance that way, and it would only serve to take you farther from the fishing village." } case nw_obj, n_obj, ne_obj { "That way leads to a long drop off the edge of the wharf." } case else { !A traditional "you can't go that way." VMessage(&DoGo, 2) !You can't go that way. } } case riverbed { select val2 case s_obj, in_obj { "You see no means of opening the door-sized panel"; if (chamber is visited) { " from this side." !Has seen chamber. } else { "." !Just end the sentence. Nothing else to say. } } case w_obj, nw_obj, n_obj, ne_obj, e_obj { "That way leads along the riverbed, away from the wharf. You see nothing worth pursuing that direction." } case sw_obj, se_obj { "The dry river wall is that way. If you intend to climb out, just go up the ladder." } case else { !A traditional "you can't go that way." VMessage(&DoGo, 2) !You can't go that way. } } case village { select val2 case in_obj, out_obj { "Which way?" !Did the player mean "in" well, or "in" houses? } case n_obj, nw_obj, ne_obj { ! These aren't really failures. We actually *can* enter the ! huts, but it's only temporary, in the form of mini-scenes. PrintMessage(15,8) !Pick a random hut, and say we enter it. } case d_obj { if InList(slab,found_on,well) { "A stone slab covers the opening to the well." } elseif (not chain.misc #1) { ! I'll use the word "empty" to maybe help the player. ! And make it clear that there *might* be a way down. "It's a long drop, down into the empty well. You see no way to descend at the moment." } else { !What other reason would there be? Well, just in case. VMessage(&DoGo, 2) !You can't go that way. } } case sw_obj, s_obj, se_obj, e_obj { "That way leaves the village. You have traveled far to be here. Until you "; if (tyrant is not known): "find and "; "capture the tyrant, your journey stops here." } case u_obj { VMessage(&DoGo, 2) !You can't go that way. } } case well { select val2 case 1 { !Usage: (9,obj,1) !Trying to explicitly climb down chain, but lid is on well. "With a stone slab covering the well's top opening, "; } case 2 { !Usage: (9,obj,2) !Trying to explicitly climb down chain, but chain isn't free. print "With the end of the chain "; chain.attached_desc; print " "; The(chain.attached_to #2); ", "; } case 1,2 { !Ends the sentences started in 1 and 2 above. "you have nowhere to climb." } } case east_tunnel { rnd = false !Will be used as a flag. select val2 case d_obj { "You see no openings in the tunnel floor." } case n_obj, ne_obj, e_obj, se_obj, s_obj, sw_obj { "A dry tunnel wall is that way. "; rnd = true } case in_obj { print "Which way?"; " "; rnd = true } case nw_obj { ! Give the same message as if the player tried going northwest. ! We will auto-open the door by pushing, if it's closed and if ! we already know that it can be done. So there are only two ! reasons for failure -- either the player didn't know about ! pushing the plate already, or, it's already held down, so ! pushing it again had no result. if (plate.misc #1) { PrintMessage(12,plate,7) !Already down. Nothing happens. } else { "A plain iron door blocks the way." } } !And finally, list available exit. if (rnd) { if (verbroutine = &DoGo) { PrintMessage(14,val1) !Print available exit. } else { print newline !Just end the line. } } } case west_tunnel { rnd = false !Will be used as a flag. select val2 case u_obj { "The way out is at the east end of the tunnel." } case d_obj { "You see no openings in the tunnel floor." } case nw_obj, n_obj, ne_obj, se_obj, s_obj, sw_obj { "A dry tunnel wall is that way. "; rnd = true } case w_obj, in_obj { print CThe(ornate_door); " is closed." } case out_obj { !"Which way?"; " "; rnd = true } !And finally, list available exit. if (rnd) { if (verbroutine = &DoGo) { PrintMessage(14,val1) !Print available exit. } else { print newline !Just end the line. } } } case hall { select val2 case in_obj { "Which way?" } case u_obj { "You're already on the ledge. You can't go any higher." } case d_obj { "You see no way down off the ledge. Viewing the "; if (lights.misc #1 > 0) { print "illusion of a "; lightform_name(lights.misc #1); } else { "storage crates in the enormous chamber "; } "from afar will have to suffice." } case nw_obj, n_obj, ne_obj { "You would fall off the ledge in that direction." } case sw_obj, s_obj { "The south wall is in your way. The exit is to the southeast." } case w_obj, e_obj { "The ledge doesn't go very far in that direction." } } case ledge { select val2 case 1 { !Usage: (9,obj,1) !Player tried to jump off the ledge. Silly player. "It would be a mistake to jump off the ledge." } } case tapestry { select val2 case 1 { !Usage: (9,obj,1) !Player is attempting to climb down the tapestries. "The tapestries are behind you on the wall, not hanging down over the ledge." } } case chamber { select val2 case u_obj, d_obj { VMessage(&DoGo, 2) !You can't go that way. } case n_obj { PrintMessage(8,tyrant,3) !Generic "can't with tyrant" } case e_obj { "You can see no way to open the ornate door from this side." } case out_obj { "Which way?" } case nw_obj, ne_obj, se_obj, s_obj, sw_obj, w_obj { "A solid chamber wall is that way. "; if (verbroutine = &DoGo) { PrintMessage(14,val1) !Print available exits. } else { print newline !Just in case. } } } case saplings { select val2 case 1 { !Usage: (9,obj,1) - trying to climb the saplings. "The saplings are far too short and feeble to climb." } } case dead_trees { select val2 case 1 { !Usage: (9,obj,1) - trying to climb the dead trees. "You can see nothing in the dark trees worth climbing up to obtain. In fact, you see nothing but their gnarled limbs." } } !-------------------- ! EPILOGUE LOCATIONS !-------------------- case kitchen { !select val2 !Usage: (9,loc,dir) if epilogue_side_dir(val2) { "That isn't the way to the back door." } elseif (val2 = u_obj, d_obj) { "Which way?" } else { "A wall is that way." } } case hallway { !Usage: (9,loc,dir) !select val2 if (val2 = game_fore_dir, out_obj) { "It's raining outside. You need an umbrella." } elseif epilogue_side_dir(val2) { "You don't need to go that way at the moment." } elseif (val2 = u_obj, d_obj) { "Which way?" } else { "A wall is that way." } } }