I was always planning on releasing the Inform 7 source code for my contribution to Cragne Manor, but I wanted to wait until I’d seen more examples of other authors doing so, and then I forgot. Unfortunately, the nature of the Cragne Manor Project is such that this source code doesn’t compile. Possibly I’ve lost track of the necessary extensions, or possibly I7 itself has changed enough in the intervening years that my code is broken now. All I’ve got for you is a big shrug on that front. I suspect this source is of limited use as code, anyway: I am not a talented programmer.
But first, I’ve provided some context for how I came to the project and what I was given to work with before I started; that material is in the “Details” link right here:
Details
I think I saw one of the original announcements the day after it was posted, and since I both loved Anchorhead and had history with several other exquisite-corpse-game-making projects, I signed up right away. Ryan and Jenni’s email response asked for some details, such as:
• Do you really want to include some puzzle content?
• Do you really want to not include some puzzle content?
• Would you prefer to make a less complicated room, e.g. a hallway?
• Is there something else we should know about?
Nervous about biting off more than I could chew—my IFDB credits are a celebration of misplaced ambition—I wrote a response that tried to emphasize how psyched I’d feel about working on a hallway, or a broom closet, or a bathroom, or the storage space under a staircase, etc.
This worked perfectly.
My room, M2F2, would be the north end of a hallway with exits northeast to the bathroom, north to the nursery, west to the top of the stairs, south to the rest of the hall, and east (through a locked door) to the master bedroom. Since I indicated a willingness to work on a puzzle, I had to hide some information about a member of the Cragne family somewhere in the room. Ryan provided a project template as follows:
Chapter 1 - Do Not Change Any Of This
Include Cragne Suite by Ryan Veeder.
[Don't mess with other people's rooms!]
M2F is a region.
M2F2 is a room in M2F. M2F2 is east from M2F1.
M2F3 is a room in M2F. M2F3 is north from M2F2.
M2F4 is a room in M2F.
The bedroom door is a closed locked scenery door. The bedroom door is east of M2F2 and west of M2F4. The bedroom key unlocks the bedroom door.
M2F6 is a room in M2F. M2F6 is northeast from M2F2.
M2F7 is a room in M2F. M2F7 is south from M2F2.
Part 1 - M2F2 Hallway North
Printed name of M2F2 is "ROOM NAME (AUTHOR NAME)".
Description of M2F2 is "ROOM DESCRIPTION."
In the project template that I’ve reproduced in the Details panel above, Chapter 1 is helpfully labeled “Do Not Change Any Of This”. I can’t remember if this was willful disobedience or genuine oversight on my part, but I crammed a bunch of testing rooms into that space and added exit descriptions. I’ve also located the player in the adjacent room that seemed the most likely direction they’d come from, and during the course of development, the locked doors and corresponding keys wound up changing a bit.
During the course of development, the author who’d been assigned M2F6 had to drop out, so the bathroom was scrubbed from the floor plan. I was unwilling to update my own mental map of the space, so I decided to work the destruction of the bathroom into the history of the Manor.
In terms of the story of my room, I pictured the Cragne family as a big name in occult circles which would attract all manner of also-ran cultists and creeps. I thought it might be fun to focus on one such cluster of cannibals: maybe they’d marry into the family or something, but the Cragne patriarch just sneers at them because they can’t accomplish anything besides plot to eat one another. Meanwhile, the clueless off-branders are just like, “What, you don’t respect us? Would getting to eat another family member change your mind??” Anyway.
I’m afraid all this text is pretty tough to get through; I leaned on Inform’s word wrap a lot. It doesn’t help that I was very excited to write prose with the “purple” setting all the way at 11.
Oh, I should probably talk about scenes & the puzzle a little bit! I really didn’t understand them in 2018, and I barely understand them better now. Since the room itself was an unremarkable crossroads, I wanted the puzzle here to be that you’d pass through several times and notice it’s changing, but I didn’t want you to wander so far away that you’d forget what the place looked like before.
The only way I could think to encourage this was to let you leave the room, only for the game to later draw your attention back to a room from much earlier in the manor. This was a super violation of the rules Jenni & Ryan gave us, both in spirit and in practice, but I really love it when the disparate elements of an exquisite corpse bleed together in unexpected ways, so I tried to sneak it in anyways. They correctly identified the breach, but basically said that this is late enough in the project and a safe enough transgression that it gets a pass, and I appreciated that.
HERE IS THE SOURCE TEXT FIRST HALF OF THE SOURCE TEXT, FINALLY:
"Cragne Manor - M2F2" by Jason Love
Chapter 1 - Do Not Change Any Of This
Include Cragne Suite by Ryan Veeder.
[Don't mess with other people's rooms!]
Use unabbreviated object names.
M2F is a region.
M2F2 is a room in M2F. M2F2 is east from M2F1. Description of M2F1 is "For testing purposes, you can go east or west from here."
The player is in M2F1.
Testing1 is a room. Testing1 is west from M2F1. Description of Testing1 is "For testing purposes, you can go east or west from here."
Testing2 is a room. Testing2 is west from Testing1. Description of Testing2 is "For testing purposes, you can go east or west from here."
Testing3 is a room. Testing3 is west from Testing2. Description of Testing3 is "For testing purposes, you can go east or west from here."
Testing4 is a room. Testing4 is west from Testing3. Description of Testing4 is "For testing purposes, you can go east from here."
M2F3 is a room in M2F. M2F3 is north from M2F2.
M2F4 is a room in M2F.
Door7 is a closed locked scenery door. Door7 is east from M2F2 and west from M2F4. Key7 unlocks Door7. Key7 is in M2F3.
[M2F6 is a room in M2F. M2F6 is northeast from M2F2.]
M2F7 is a room in M2F. M2F7 is south from M2F2.
Part 1 - M2F2 Hallway North
[ You have discovered THE REMARKS for Jason Love’s room contribution to the Cragne Manor project. These are at once an attempt to document just what I'm doing in my room as well as provide a first draft for the commentary command. My initial plan was to make a room in which a distant non-Cragne niece had been locked by her Cragne-adjacent uncle before her disappearance, but preliminary room conditions Ryan & Jenni provided indicated that my space is the north end of an upstairs hallway with doors to the master bedroom, bathroom, and nursery. As such, it made sense to anchor her story to a piece of furniture which would have occupied such a room and recently been moved into the hallway prior to Naomi’s arrival. Furthermore, my hallway segment’s position as a necessary hub between other rooms guaranteed the player’s entering and passing through it on multiple occasions, lending itself to a ghost story progression of “nothing unusual -> something out-of-place -> full-blown haunting”. ]
Chapter 1 - The Room Itself
Printed name of M2F2 is "Upstairs Hall, north end (Jason Love)".
[The room description is set up to do several things. First, it has a more-involved initial description that becomes a bit less ornate after your first visit. Second, it permits the bathroom door to be open or closed and updates the description accordingly. Third, it has two possible environmental events which are unlikely to occur and not directly tied to the creepy things which will be happening later.]
Description of M2F2 is "[one of]Despite all the irregularities of Cragne Manor, the inconsistencies, the unaccountable [italic type]changes[roman type], to say nothing of the disparate and clashing architecture and décor, you have at least attained a certain expectation regarding its hallways: close walls and high ceilings, wreathed in shadow, with the occasional door looming obelisk-like through the gloom. Its architects must have had crooked rulers, as you can never quite make out the end of a hallway until you’ve nearly reached it--and just such a hallway winds away to the south.[paragraph break]In this section of the hall, the eastern wall flares out into a wider space resembling a waiting-room; there's even a little bench against that wall to the south-east. A massive black armoire occupying the wall opposite strikes you as a less deliberate inclusion, if the boards sealing it shut are any indication; perhaps the movers abandoned it here after they couldn't fit it through the archway to the west. Beyond these minimal furnishings, the hall contains only a pair of imposing doors to the east and to the north; a third doorway between them has been closed off with bricks.[or]Imposing wooden doors lead north[if M2F3 is visited] to the nursery[end if] [if JAL-nursery-door is open](which is open) [end if]and east [if M2F2 is JAL-resolved]to the master bedroom[end if][if Door7 is open and JAL-nursery-door is closed] (which is open)[end if][if Door7 is open and JAL-nursery-door is open] (which is also open)[end if]; a smaller doorway between them has been closed off with badly painted bricks. The top of the stairs is accessible through a narrow arch to the west, and the hall continues to the south.[stopping]". M2F2 can be either JAL-haunted or JAL-still. M2F2 is JAL-still. M2F2 can be either JAL-ambiguous or JAL-resolved. M2F2 is JAL-ambiguous. M2F2 can be either JAL-talky or JAL-quiet. M2F2 is JAL-talky.
Rule for printing room description details for M2F2 while M2F2 is JAL-talky: stop.
[Could probably do something more involved with the player description, but for now this is sufficient. Probably belongs elsewhere but here's fine for the time being.]
Instead of examining the player when the location is M2F2 (this is the JAL PC description rule): say “You seem no worse for wear, despite everything.”
Section 1 - The Master Bedroom Door
[Each of the following doors follows the same basic structure. First we have synonyms and dynamic naming.]
Understand "enormous" and "big" and "bigger" and "biggest" and "large" and "largest" and "larger" and "master" and "bedroom" and "bed" and "room" and "wooden" and "oak" and "planks" and "trim" and "ornate" and "crested" and "door" and "shellac" and "coated" and "shellac-coated" and "iron" and "iron-banded" and "banded" and "right" and "right-most" and "red" and "large" and "keyhole" and "bent" and "metal" and "prong" and "hole" and "key" and "east" as the Door7. The indefinite article of Door7 is "the". Door7 is improper-named.
Rule for printing the name of Door7 when the location is M2F2: say “[if M2F4 is unvisited]east door[otherwise]master bedroom door[end if]”.
[As Door7 is an actual object in multiple rooms, we need to avoid changing its properties as much as possible.]
Carry out examining Door7 when the location is M2F2: say “Astonishingly large and assembled of thick oak planks with iron banding and trim; the door glistens redly from a thick coat of shellac. [one of]This would almost be more suitable as an exterior door, but in place of a knocker,[or]In the center,[stopping] a Cragne family crest has been set into the wood with iron filigree. The handle is little more than a bent metal prong next to an oversized keyhole." instead.
[Some simple locking/unlocking text updates.]
Check opening Door7 when the location is M2F2:
if Door7 is open:
say “That’s already open.” instead;
otherwise if Door7 is locked:
say “The handle won't turn, and neither tugging nor pushing the door itself has any effect. It would seem the door is locked." instead.
After going east from M2F2: now M2F2 is JAL-resolved.
[All the other doors in this room are technically containers, so I'm capturing attempts to put things inside them. For consistency I thought it best to go ahead and capture similar attempts here.]
Instead of inserting something (called the unlocker) into Door7: try unlocking Door7 with the unlocker.
[I really wanted to be able to look through open doors appropriately, so that's what we have next. Plus this door has a keyhole, so it works when it's closed!]
Instead of searching Door7: say "[if Door7 is closed]Peering through the keyhole, y[otherwise]Y[end if][if M2F4 is unvisited]ou've found what can only be the master bedroom. It[JAL-resolutionary][otherwise]ou can make out the master bedroom[end if] looks ordinary enough from a distance, but you struggle to make out any details through the gloom."
To say JAL-resolutionary:
now M2F2 is JAL-resolved.
[My creation of this particular crest predates the greater structure of Cragne Aldermen and their familiars, as well as the announcement that a specific family crest would be used as embossing on library books. However, I expected Cragne crests to crop up all over the place, and so I felt it appropriate to keep it in as the Cragne connection with the Incarnadine Chalice.]
The JAL-Cragne-crest is part of Door7. Printed name of the JAL-Cragne-crest is "Cragne family crest". Understand "Cragne" and "family" and "crest" and "iron" and "filigree" and "lion" and "tree" and "trunk" and "cloak" and "furred" and "shield" and "coat-of-arms" and "coat" and "arms" and "of" as the JAL-Cragne-crest. Description of the JAL-Cragne-crest is "[one of]During your engagement, you helped Peter track down a number of Cragne family crests for potential use in wedding livery: the Shattered Mast in Flames, the Moons' Eye upon the Tome, the Cup and Sword and Star--none that you've seen shared any resemblance to the crest embossed on this particular door in his ancestral home: a[or]A[stopping] furred cloak girds a shield upon which the trunk of a severed tree impales a rampant lion, which is shown biting its raised leg. A banner beneath the shield reads 'LIBERTÉ DE LA GORGE'."
Instead of examining east when the location is M2F2: try examining Door7.
Instead of going northeast when the location is M2F2: try opening the JAL-Bathroom-Door.
Section 2 - The Nursery Door
The JAL-nursery-door is a closed openable scenery container in M2F2. Printed name of the JAL-nursery-door is "[if M2F3 is unvisited]north door[otherwise]nursery door[end if]". Understand "larger" and "intermediate"and "left" and "left-most" and "big" and "bigger" and "small" and "smaller" and "nursery" and "door" and "wooden" and "lacquer" and "lacquered" and "pastoral" and "ornate" and "north" and "bovine" and "antelope" and "white" and "albino" and "sheep" and "goat" and "gazelle" and "ghost" as the JAL-nursery-door. Description of the JAL-nursery-door is "Smaller than [the Door7] and finished with green lacquer, although the color has faded irregularly -- except in the center, where [if JAL-notebook is JAL-gleaned]an antelope has been drawn in with white paint.[otherwise][one of]some gamboling farm-beast has been crudely depicted in white paint. The color would suggest it's supposed to be a sheep, except the horns (or are they ears?) make that identification doubtful.[or]a white bovine of some sort has been painted.[or]a child has painted a goat straining for its life. You're not sure why you think it's a goat.[or]the ghost of a gazelle has been painted.[or]some animal has been illustrated with crude white lines of paint. Its legs are wrong. Why are its legs so wrong?[as decreasingly likely outcomes][end if]"
[Need to update this description somewhat; our missing girl's book will detail that the creature is a white antelope, so once that fact is learned, examining the nursery door should make that more consistent. The door was painted by Theodorus Craigne's mother when he was a child, and in fact depicts the kind of beast which would become his familiar once he attains his role as the Fuscous Alderman of the Variegated Court. Someone should comment on the irony of such a bright familiar belonging to one so dark.]
Instead of entering the JAL-nursery-door: try going north.
Before going north while the JAL-nursery-door is closed: try opening the JAL-nursery-door.
Instead of inserting something into the JAL-nursery-door: say "This door has no keyhole."
Instead of searching the JAL-nursery-door while the JAL-nursery-door is open: say "[if M2F3 is unvisited]Through the door you see what appears to be a child's nursery. [otherwise]You can just make out the nursery. [end if]Shadows obscure any finer details."
Instead of examining north when the location is M2F2: try examining the JAL-nursery-door.
[Instead of opening the JAL-nursery-door: say "You open the door, but it swings closed again as soon as you release your grip. (Just enter the door instead.)"]
[Report going north from M2F2: say "(first opening the pastoral door)[line break]"]
Section 3 - The Bathroom Door
The JAL-bathroom-door is a closed openable scenery container in M2F2. Printed name of the JAL-bathroom-door is "[if JAL-Haunting is happening]north-east door[otherwise]bricked-up door[end if]". Understand "small" and "smaller" and "smallest" and "middle" and "centre" and "center" and "door" and "doorway" and "toilet" and "bathroom" and "restroom" and "bricked-up" and "bricked" and "bath room" and "walled up" and "walled-up" and "bricks" and "up" and "northeast" and "north-east" and "north east" as the JAL-bathroom-door. Description of the JAL-bathroom-door is "[one of]Cragne Manor has endured wars, flooding, blizzards, and any number of lesser catastrophes, but not without its scars. When so much of the house has required constant renovation, the occasional fire barely registers as calamitous. Before your move, Peter read to you about one such blaze which consumed this second-story bathroom in 1978, yet the adjoining rooms suffered almost no damage whatsoever. The family had reportedly spared no expense to repair the damage and restore the bathroom, but the room burned again less than a decade later. It appears that the surviving Cragnes elected to cut their losses this time.[or]A doorway smaller than those flanking it on either side, walled off entirely with bricks.[stopping]"
Instead of entering the JAL-bathroom-door: try going northeast.
[Before going northeast while the JAL-bathroom-door is closed: try opening the JAL-bathroom-door.]
Instead of inserting something into the JAL-bathroom-door: say "There is no opening in the bricks."
[Instead of searching the JAL-bathroom-door while the JAL-bathroom-door is open: say "You can just make out [if M2F6 is unvisited]a seemingly typical bathroom.[otherwise]the bathroom.[end if]"]
Instead of examining northeast when the location is M2F2: try examining the JAL-bathroom-door.
Check opening the JAL-bathroom-door:
if JAL-Haunting is not happening, say "You can't very well open this brick wall." instead.
[The veeder-beaker is in M2F2. Printed name of the veeder-beaker is “stained beaker”. Understand “beaker” and “stained” and “stained beaker” as the veeder-beaker. Initial appearance of the veeder-beaker is “There’s a beaker here.” Description of the veeder-beaker is “This beaker is kind of gross.”]
Section 4 - The Arch
The JAL-arch is an open scenery container in M2F2. Printed name of the JAL-arch is "arch". Understand "narrow" and "vaulted" and "archway" and "hole" and "arch" and "stairs" and "top" and "of" and "landing" and "upstairs" and "aperture" and "passage" and "west" as the JAL-arch. Description of the JAL-arch is "Little more than a vaulted hole in the wall compared to the vaster spaces it separates. Pass through here to return to the upstairs landing."
Instead of entering the JAL-arch: try going west.
Instead of inserting something (called the hazard) into the JAL-arch: say "What, and risk tripping over [the hazard] in a moment of inattention? No, this house is dangerous enough as it is."
Instead of searching the JAL-arch: say "You can't see as much of the upstairs landing as you'd have thought, but it's only a short walk away."
Instead of examining west when the location is M2F2: try searching the JAL-arch.
Section 5 - The Southern Hallway
The JAL-hallway-south is an open scenery container in M2F2. Printed name of the JAL-hallway-south is "hallway to the south". Understand "hallway" and "southern" and "south" and "hall" and "aperture" and "passage" as the JAL-hallway-south. Description of the JAL-hallway-south is "[one of]Despite all the irregularities of Cragne Manor, the inconsistencies, the unaccountable changes, to say nothing of the disparate and clashing architecture and décor, you have at least attained a certain expectation regarding its hallways: close walls and high ceilings, wreathed in shadow, with the occasional door looming obelisk-like through the gloom. There must be something crooked in the floor plan, as you can never quite make out the end of a hallway until you’ve nearly reached it -- and just such a[or]A[stopping] hallway winds away to the south."
Instead of entering the JAL-hallway-south: try going south.
Instead of inserting something (called the hazard) into the JAL-hallway-south: say "What, and risk tripping over [the hazard] in a moment of inattention? No, this house is dangerous enough as it is."
Instead of searching the JAL-hallway-south: say "The hallway extends to the south, but any décor, furniture, or doorways are blocked from your view by a narrowing in the passage."
Instead of examining south when the location is M2F2: try searching the JAL-hallway-south.
Instead of going southwest when the location is M2F2: try going south.
Section 6 - The Armoire
The JAL-Armoire is scenery in M2F2. Printed name of the JAL-Armoire is "sealed armoire". Understand "black" and "armoire" and "sealed" and "wardrobe" and "wooden" and "furniture" and "dresser" and "doors" and "boards" and "massive" and "nails" and "weathered" as the JAL-Armoire. Description of the JAL-Armoire is "The massive wardrobe is wider than you can reach with your arms extended. Weathered wooden boards have been nailed across the doors in four places." Initial appearance of the JAL-Armoire is "A massive black armoire stands[one of] incongruously against the north-west wall, slightly at an angle. The boards sealing the armoire doors closed suggest that this particular object of furniture should have been removed prior to your arrival, but it's far too large to fit through the arch to the west[or] sealed against the north-west wall[stopping]."Instead of doing something other than examining to the JAL-Armoire: say "It's too big, too heavy, and too nailed-shut to mess with right now."
The JAL-Open-Armoire is an open container. Printed name of the JAL-Open-Armoire is "doorless armoire". Understand "black" and "armoire" and "wardrobe" and "wooden" and "wood" and "furniture" and "dresser" and "massive" and "opened" and "screw-holes" and "screw-hole" and "screw hole" and "holes" and "splintered" and "doorless" as the JAL-Open-Armoire. Description of the JAL-Open-Armoire is "The massive wardrobe's doors have been torn off entirely; trios of splintered screw-holes show where the hinges previously attached in the upper and lower corners. There's [a list of things contained by the JAL-Open-Armoire] inside." Initial appearance of the JAL-Open-Armoire is "[one of]The massive black armoire still stands against the north-west wall; you can now see [a list of things contained by the JAL-Open-Armoire] inside it.[paragraph break]It would seem that the armoire doors have somehow been torn off since you were last here. They lie on the floor nearby[or]The doorless armoire stands against the north-west wall. There's [a list of things contained by the JAL-Open-Armoire] inside[stopping][door event]." Does the player mean examining the JAL-Open-Armoire: it is very likely.
Before listing nondescript items of the JAL-Open-Armoire:
repeat with JAL-debris running through objects contained by the JAL-Open-Armoire:
if the JAL-debris is marked for listing:
now the JAL-debris is not marked for listing.
To say door event:
now the JAL-Armoire-Doors are in M2F2;
stop the action.
Some JAL-Armoire-Doors are a thing. Printed name of the JAL-Armoire-Doors is "broken doors". The JAL-Armoire-Doors can be either errant or safe. The JAL-Armoire-Doors are errant. Understand "black" and "shattered" and "doors" and "wooden" and "armoire" and "wood" and "broken" and "boards" and "seals" and "nails" and "hinges" and "hinge" and "screws" and "screw" as the JAL-Armoire-Doors. Description of the JAL-Armoire-Doors is "The doors to the armoire are still being held together by the boards which had previously served to seal it shut, but the entire assembly has broken off the front of the armoire at at the hinges. The doors are otherwise undamaged. Whatever force rent the armoire asunder has left no further clues to its origin." The indefinite article of the JAL-Armoire-Doors is "some". The JAL-Armoire-Doors are improper-named. Initial appearance of the JAL-Armoire-Doors is "[if the JAL-Armoire-Doors are errant]The broken doors to the armoire lie on the floor near the center of the room[otherwise]The broken armoire doors are propper up in a corner where they should be out of the way[end if]." Does the player mean taking the JAL-Armoire-Doors: it is very likely.
Instead of taking the JAL-Armoire-Doors:
say "The doors are too unwieldy to carry with you[if the JAL-Armoire-Doors are errant], but you move them out of the way[otherwise]. Better to just leave them there until you can get additional assistance with the armoire[end if].";
now the JAL-Armoire-Doors are safe.