gwelks: Nigel Jayne's Interactive Fiction Site

Source Text for Sequitur

olume - Processing and Turn Sequence Rules

Book - processing Rules

Chapter - Before, Instead, After

When play begins:

say "*** [fiction title] contains adult-themed material (some violence and sexual innuendo), and it is not appropriate for anyone who hasn't started high school. It also features a few sound effects and theme music, which only work when the game is played offline on some interpreters (e.g., Gargoyle, WinGit, or WinGlulxe). Press a key to continue ... *** ";

wait for any key;

say lb;

if glulx sound is supported, play sound of cymbals in foreground for 50 times;

now the player is queried;

now the command prompt is "[mdash] [one of](type your commands at this prompt and press 'enter)[or][stopping]";

now position list is the list of positions;

now sequence mode is switched on;

now track list is the list of tracks;

repeat with counter running from one to the number of tracks begin;

if (counter is greater than three and counter is less than six) or counter is greater than ten, now entry counter in track list is B-side;

end repeat;

sort track list in random order;

let holding be the list of positions;

repeat with counter running from one to the number of tracks begin;

now Number-name of entry counter in Track list is counter;

if counter is less than positions-plus, now number-name of entry counter in holding is counter;

end repeat;

now primary chain is the list of story-important tracks;

now secondary chain is the list of not story-important tracks;

setup matches for hockey teams;

setup matches for basketball teams;

fill one to the number of positions with blanks;

say rpo.

To setup matches for (opposers - description of values):

let combatants be the list of opposers;

sort combatants in random order;

while combatants is not {} begin;

let team one be entry one in combatants;

let team two be entry two in combatants;

now team two is away;

remove team one from combatants;

remove team two from combatants;

now team one plays team two;

end while.

[We remove the following rules in a, perhaps pointless, attempt at speeding up action-processing.]

The set pronouns from items from multiple object lists rule is not listed in any rulebook. The announce items from multiple object lists rule is not listed in any rulebook. The basic accessibility rule is not listed in any rulebook. The carrying requirements rule is not listed in any rulebook.

The adjust light rule is not listed in any rulebook. [We never use light sources.]

The note object acquisitions rule is not listed in any rulebook. [We don't use inventory.]

[We use these variables to determine if the Sequence or the playlist has changed during a turn and, if they have, we examine them in the showing list changes rule.]

Setting action variables:

if stalling begin;

now player is distracted;

otherwise;

now player is not distracted;

end if;

now temporary favorites list is favorites list;

now temporary position list is position list.

Setting action variables for eating:

now Hot dog length is bites remaining.

First before doing something other than stalling during Investigation:

if clicking or examining a contents, continue the action;

if (examining and(the noun is not on-screen and the noun is not the computer and the noun is not notebook)) or asking a person to try doing something or clicking internet, continue the action;

if scoring and the player is not scoreboard watching begin;

say "The only score in here is [if current music is tinnitis]coming from Cochone's inner ear[otherwise]playing on Jenny's laptop[end if]. [rpo]";

try listening instead;

end if;

say "[seq]";

say rpo.

First before clicking or examining or listening to a not unidentified subject:

say "Cochone selects a track that features [noun].";

try examining a random examined track which records the noun instead.

First before doing something other than discussing or talking to or examining when the frankfurters are involved:

unless eating and (Cochone is having hot dogs or Cochone is skipping lunch), say "[i]Am I that obsessed with those things?[/i] Cochone thinks." instead.

First before doing something when an unresearchable subject (called target) is involved or (Kiku is involved and Chrysanthemum is unexamined) or (Marco is involved and Torching is unexamined) during Investigation:

if target is pseudonymized and the player's command matches the regular expression "(?i)\bblue\b|\bpink\b|\bveggie\b|\bveggy\b|\bfoxy\b|\bshrappnel\b" begin;

if examining or researching with or conversing, say "[i]I don't know a lot about googling,[/i] Cochone thinks, [i]but I do know I need to be more specific than some silly little name I give someone.[/i] [lb]" instead;

say "[i]I can't do much for [if target is Neo or target is Xeno]her[otherwise]him[end if] now,[/i] Cochone thinks.";

otherwise;

say "[i]Where did that name come from?[/i] Cochone wonders.";

end if;

stop the action.

First before doing something other than clicking or examining or listening or researching with when a researchable subject (called target) is involved during Investigation:

unless discussing the target with Jennifer, say "[i]I can only try to find out what I can about [if target is Neo or target is Xeno]her[otherwise]him[end if] now,[/i] Cochone thinks." instead.

First before doing something other than conversing or looking or waiting when every contents is not involved and Investigation has ended:

if asking a person to try taking a destination, try taking the noun instead;

if looking around, try looking instead;

if taking or examining a destination, continue the action;

if clicking or listening and the noun is on-screen, try examining the noun instead;

if (examining and (the noun is a track or the noun is either playlist or sequence or footage)) or playing something through begin;

say "'Let me just take another look at something,' Cochone says.";

continue the action;

end if;

say "'That's not going to help us now, Steve,' Nigel says. 'Just tell me [if a destination is carried and water is not carried]what is so important about the backyard footage[otherwise]where you think those chemicals are being stored[end if].'" instead.

Before asking Jennifer to try researching with something about something during Investigation, try researching with the noun about the second noun instead.

Before asking Jennifer to try doing something other than researching with when Investigation is happening:

if asking someone to try saying yes, try saying yes instead;

if asking someone to try saying no, try saying no instead;

say "[i]This is her office, her computer, her software,[/i] Cochone thinks. [i]I'll let her tell me what to do.[/i] [lb]" instead.

Before attacking or clicking or switching on Happy Jack, try listening to the noun instead.

Before clicking footage:

let holding be a list of objects;

repeat with selection running through track list begin;

if selection is unpositioned, add selection to holding;

end repeat;

let ender be entry (number of entries in holding) in holding;

try playing entry one in holding through ender instead.

Before clicking Sequence, try playing a-slot through the last slot of the sequence instead.

Before clicking or listening to Kiku when Chrysanthemum is examined, try examining Chrysanthemum instead.

Before clicking or listening to Marco when Torching is examined, try examining Torching instead.

Before clearing out when the noun is either the Sequence or playlist, try excising all from the noun instead.

Before clicking or reading the case:

try looking instead.

Before clicking the notebook, try reading the noun instead.

Before clicking the computer, try looking instead.

Before clicking a contents, try examining the noun instead.

Before clicking or examining or reading the internet, try seeking opinion from internet instead.

Before consulting something about text:

if the noun is either the computer or the internet, say "Cochone decides to focus on the case and especially the victims." instead;

unless the noun is Jennifer, say "Cochone doesn't expect much useful information from [the noun]." instead;

try talking about the topic understood with the noun instead.

Before discussing or informing about when the second noun is Jennifer and the noun is a subject or the noun is either the band or Kiku or Marco:

if Investigation is happening or the noun is the band, try researching with Jennifer about the noun instead.

Before discussing something with Jennifer when (the noun is either the Sequence or the footage) and primary objective is solved during Investigation:

try informing about the sequence to the second noun instead.

Before discussing something with Jennifer when the noun is either hints or walkthrough during Investigation, try examining the noun instead.

Before discussing help with Jennifer for the first time during Investigation:

unless the time of day is 11:37 am, now Jennifer is explaining the manual;

follow the explaining Sequitur rule instead.

This is the explaining Sequitur rule:

unless the time of day is 11:37 am begin;

say "Cochone sighs and sits back. 'Jenny, can you give me a head start here?' [pb]Jenny appears at his side. 'Okay, I'll explain how [i]Sequitur[/i] works.[unless hints are examined or walkthrough is examined] If you want help with the case, though, you can just ask me for hints. I might be able to help.' [pb][i]She looks hopeful,[/i] [otherwise]' [pb][i]Well, someone has to, [/i][end unless]";

otherwise;

say "'[if one track is explained]You are a quick learner,'[otherwise]Maybe I should help,'[end if] Jenny says before rolling up beside Cochone. 'I[if one track is explained] still[end if] should give you some idea of what all this means and how it works.[unless hints are examined or walkthrough is examined] If you want help with the tracks, though, you can just ask me for hints.' [pb][i]Gotcha, [/i] [otherwise]' [pb][i]Well, it's not exactly what I'm used to, [/i] [end unless]";

end unless;

say "Cochone thinks. [pb]'So, we took all the stuff you gathered and fed it into the computer,' Jenny says. 'We salvaged what we could from three cell phones, two video recorders, and sound recorder. But we could only save snippets of footage from all the cell phones and video recorder found in the fire. All this video was wonky, but the footage from the video and sound recorders you found outside was intact. So you need to fit this footage, which we call [']tracks,['] into some kind of order. Many of the tracks overlap temporally, so I think the best approach is to take note of how each begins and place them in chronological order according to that. The tracks are designated with a number, name, length, and source. [pb]She circles the pointer around the 'Track List' then moves it up to the Sequence. 'You need to order the tracks by putting them in the Sequence. The best approach may be to play a track, place it in the Sequence, play another, and try to place it relative to the first, and so on. [if one track is explained]Apparently you have a great sense for this, and I'm sure you'll know when two or three tracks fit together[otherwise]I'm sure that you'll know when two or three tracks link up properly. Call it your instinct[end if]. [pb]'Right. Got it so far.' [pb]'Okay. You should be able to fill out the Sequence completely with ten tracks. The remaining five tracks may tell a story as well. You can put them in their own order too. Look for a common theme to distinguish them. Maybe five of the tracks contain something that the others don't. When you have the first ten tracks figured out, we should know what our next step should be.' [pb]'That would be finding the bad guys. What about these commands?' [pb]";

say "'Tracks are numbered and slots in the Sequence are lettered [']A['] to [']J.['] To play a track, just type its name or number. You put tracks in the Sequence by using a command like [']put track one in B[']. Or, you could put it in your playlist. Just typing the track number and slot letter will also work. When you do this, the tracks already in the Sequence adjust themselves. You'll see how it works. [']Cut['] with a track number removes the track from the Sequence. You can also cut a track from the playlist. Type [']look['] or [']l['] To refresh the screen and see all the changes. [pb]'Right. I think I have it.' [pb]'Remember, there are several other commands available, and [']help['] prints them.' She wheels herself away from Cochone's side.".

Before doing it for more than one time:

if Investigation is happening begin;

say "[one of]'Jenny, can we go over how this works again?' Cochone says. [pb]'It's really simple,' Jenny says. 'Just type a verb and what you want it to act on, which is usually a track or slot. Like [']put five in C.[']' [pb]'Right. Simple.' [pb]'It's like those text games from the eighties. Planetfall. Zork. But I guess you were too busy [']banging broads['] to play with something as geeky as a computer.' [pb]'Something like that.' [pb]'Players would type commands like [']x Jenny['] to look at things in the room with them and other basic commands like [']listen.['] Try [']help.['] The Sequitur commands are listed there.' [pb]'Right.' Cochone [or]Cochone decides that it was a little easier to follow the instructions when they were on the screen. He [stopping]types.";

try examining the noun instead;

end if.

Before discussing something with Jennifer when the noun is either the case or the notebook, try examining hints instead.

Before doing something when the stain is involved:

unless discussing or examining, say "[i]If I don't think about it, it's not there,[/i] Cochone thinks." instead.

Before examining help when Jennifer has not been explaining the manual and the time of day is less than 11:37 am, try discussing help with Jennifer instead.

Before examining when the noun is the band or the noun is an unidentified subject or (the noun is Kiku and Chrysanthemum is unexamined) or (the noun is Marco and Torching is unexamined), try researching with the internet about the noun instead.

Before examining the bracelet, try discussing the bracelet with Jennifer instead.

Before examining the cane, try examining Jennifer instead.

Before examining or reading when the noun is the computer, try looking instead.

Before examining notebook, try reading the noun instead.

Before examining when noun is either hints or walkthrough, now interjection needed is true.

Before examining a position:

if the noun is full, try examining a random track which is in the noun;

otherwise say "Slot [noun] is empty.";

stop the action.

Before examining or taking a destination when Investigation has ended, try discussing the noun with Nigel instead.

Before informing about something to something when the noun is neither footage nor the sequence, try discussing the noun with the second noun instead.

Before talking about "yes/y/okay" with someone, try saying yes instead.

Before talking about "n/no/nope" with someone, try saying no instead.

Before inserting something into a position when the noun is either Basement or Dead Animals and the noun is a Memory Trigger listed in Table of Memories, now Cochone is remembering search.

Before inserting something to something when a not on-screen thing is involved or an intractable thing is involved, say "You can only group tracks and place them into a slot, or to the right or left of one, which will put the first track in the group into the specified slot with the other tracks in the group being placed in the slots ahead of it." instead.

Before inserting something to something when substitution track is zero and substitution slot is placeholder:

say "You need to put tracks next to a track that is in a slot, or relatively to a slot itself.";

now substitution track is zero instead.

[This action will not be recognized in the "last before" rules, so we grouped all three actions into before rules.]

Before inserting something to something:

let placeholder numbers be a list of numbers;

unless substitution track is zero begin;

repeat with selection running through tracks begin;

if number-name of selection is substitution track and selection is positioned, now substitution slot is the holder of selection;

end repeat;

end unless;

if substitution track is not zero and substitution slot is placeholder, say "Track [substitution track] needs to be in a slot for tracks to be positioned next to it." instead;

if the noun is a positioned track, now the noun is the holder of the noun;

if the second noun is a positioned track, now the second noun is the holder of the second noun;

[We need to determine if the noun and second noun form a chain, and if that chain is in the Sequence. We use positions for the remainder of the action if the tracks are not linked, or we use the intellectual links path if the tracks are not lined up between the noun and the second noun.]

if the noun is a full position and the second noun is a full position begin;

let first track be a random track which is in the noun;

let second track be a random track which is in the second noun;

if first track and second track are intellectually connected begin;

repeat with counter running from one to (number of entries in intellectual links minus one) begin;

unless entry counter in intellectual links is properly positioned beside entry (counter plus one) in intellectual links, break;

if counter is (number of entries in intellectual links minus one) begin;

now entry (number-name of noun) in position list is placeholder;

now entry (number-name of second noun) in position list is placeholder;

now noun is first track;

now second noun is second track;

end if;

end repeat;

end if;

end if;

let insertion list be a list of things;

if the noun is a position and the second noun is a position begin;

if the number-name of the noun is greater than the number-name of the second noun, switch the noun for the second noun;

if (inserting group left is true and the number-name of substitution slot is (number-name of second noun plus one) )or (inserting group right is true and number-name of substitution slot is (number-name of noun minus one)) or (inserting group left is false and inserting group right is false and number-name of substitution slot is number-name of noun), say "This wouldn't change anything, because you're putting the tracks into the same slots." instead;

repeat with selection running through positions begin;

if the number-name of selection is within number-name of noun and number-name of second noun begin;

if selection is full, add a random track which is in selection to insertion list;

if selection is empty begin;

add number-name of selection to placeholder numbers;

add placeholder to insertion list;

end if;

end if;

end repeat;

otherwise;

if an empty position is involved, say "You'll need to specify two tracks." instead;

if the noun and the second noun are intellectually connected begin;

now insertion list is intellectual links;

otherwise;

say "Unless you've established that the tracks are connected, you can only group and move tracks that are in the Sequence." instead;

end if;

end if;

if inserting group left is false and inserting group right is false and the number of entries in insertion list is greater than positions-plus minus number-name of substitution slot, say "You can't fit [number of entries in insertion list] tracks into the Sequence starting at slot [substitution slot]." instead;

if substitution track is zero begin;

if the number of entries in insertion list is the number of positions, say "That would fill the Sequence, and so it can't be placed next to another track." instead;

if inserting group left is true begin;

if the number of entries in insertion list is greater than (the number-name of substitution slot minus one), say "There aren't enough slots left of slot [substitution slot] to fit the group of [number of entries in insertion list]." instead;

otherwise;

let max be (the number of positions minus the number-name of substitution slot) minus one;

if inserting group right is true, now max is the number of positions minus the number-name of substitution slot;

if the number of entries in insertion list is greater than max, say "There aren't enough slots right of slot [substitution slot] to fit the group of [number of entries in insertion list]." instead;

end if;

otherwise;

if (inserting group right is true or inserting group left is true) and the number of entries in insertion list is the number of positions, say "You can't fit [number of positions] tracks relative to a track already in the Sequence." instead;

end if;

if inserting group right is true begin;

reverse insertion list;

if substitution track is not zero, place the insertion list group into the sequence starting at number-name of substitution slot plus one using a track;

if substitution track is zero, place the insertion list group into the sequence starting at (number-name of substitution slot plus one) including placeholder numbers;

otherwise;

if inserting group left is true begin;

unless placeholder numbers is {} begin;

repeat with counter running from one to the number of entries in placeholder numbers begin;

now entry counter in placeholder numbers is positions-plus minus entry counter in placeholder numbers;

end repeat;

end unless;

reverse position list;

if substitution track is not zero, place the insertion list group into the sequence starting at positions-plus minus (number-name of substitution slot minus one) using a track;

if substitution track is zero, place the insertion list group into the sequence starting at positions-plus minus (number-name of substitution slot minus one) including placeholder numbers;

reverse position list;

otherwise;

reverse insertion list;

if substitution track is not zero, place the insertion list group into the sequence starting at number-name of substitution slot using a track;

if substitution track is zero, place the insertion list group into the sequence starting at number-name of substitution slot including placeholder numbers;

end if;

end if;

unless inserting group left is true, reverse insertion list;

say "[if a track is involved]Since we've established they are linked, tracks [number-name of entry one in insertion list] through [number-name of entry (number of entries in insertion list) in insertion list] [otherwise]The tracks between Slots [noun] and [second noun] [end if] have been placed [if inserting group right is true]after[otherwise if inserting group left is true]before[otherwise]in the Sequence starting at[end if] [if substitution track is not zero and (inserting group right is true or inserting group left is true)]Track [substitution track][otherwise]slot [substitution slot][end if]";

if inserting group right is true and substitution track is zero and two positions are involved and the number-name of the holder of noun is less than the number-name of substitution slot, say ", pushing ahead tracks forward of slot [substitution slot]";

if inserting group left is true and substitution track is zero and two positions are involved and the number-name of the holder of noun is greater than the number-name of substitution slot, say ", pushing back any tracks left of the transferred tracks";

say "[if (inserting group right is true or inserting group left is true) and substitution track is not zero]. The tracks have shifted to fill empty slots[end if].";

rule succeeds.

To place the (inserters - a list of things) group into the sequence starting at (starter - a number) using a track:

repeat with counter running from one to the number of entries in position list begin;

let candidate be entry counter in position list;

if candidate is a positioned track and candidate is listed in inserters begin;

if inserting group left is false, now entry (number-name of holder of candidate) in position list is placeholder;

if inserting group left is true, now entry (positions-plus minus number-name of holder of candidate) in position list is placeholder;

end if;

end repeat;

add inserters to positions starting at starter;

let limit be (number of entries in position list plus one) minus (starter plus (number of entries in inserters minus one));

if starter is greater than limit, now limit is starter;

let removal list be a list of numbers;

let extension be starter;

if inserting group right is true or inserting group left is true, now extension is (starter minus one) plus the number of entries in inserters;

repeat with counter running from one to limit begin;

if extension plus counter is less than the number of entries in position list plus one begin;

if entry (extension plus counter) in position list is placeholder begin;

add extension plus counter to removal list;

remove entry one from inserters;

end if;

end if;

if inserters is {}, break;

if starter minus counter is greater than zero begin;

if entry (starter minus counter) in position list is placeholder begin;

add starter minus counter to removal list;

remove entry one from inserters;

end if;

end if;

if inserters is {}, break;

end repeat;

if removal list is not {} begin;

sort removal list;

reverse removal list;

repeat with selection running through removal list begin;

remove entry selection from position list;

end repeat;

end if;

truncate position list to the first ten entries.

To place the (inserters - a list of things) group into the sequence starting at (starter - a number) including (placeholder standins - a list of numbers):

let deletions be zero;

let real-counter be one;

let pre-deletions be zero;

repeat with counter running from one to the number of positions plus number of entries in inserters begin;

let anchor be entry real-counter in position list;

if (anchor is a track and anchor is listed in inserters) or (anchor is placeholder and (real-counter plus pre-deletions) is listed in placeholder standins) or (entry real-counter in position list is placeholder and real-counter is greater than starter) begin;

if real-counter is greater than starter begin;

if (anchor is placeholder and (real-counter plus pre-deletions) is listed in placeholder standins) or (anchor is placeholder and (number of entries in inserters minus deletions) is greater than the number of entries in placeholder standins) or (anchor is a track and anchor is listed in inserters) begin;

remove entry real-counter from position list;

increment deletions;

otherwise;

increment real-counter;

end if;

otherwise;

now entry real-counter in position list is placeholder;

end if;

if inserting group left is true and anchor is a track and real-counter is greater than starter and intellectual links is {}, decrement starter;

if anchor is placeholder and (real-counter plus pre-deletions) is listed in placeholder standins, remove (real-counter plus pre-deletions) from placeholder standins, if present;

increment pre-deletions;

otherwise;

increment real-counter;

end if;

if inserting group left is false and inserting group right is false and counter is one, decrement real-counter;

if starter is real-counter begin;

add inserters to positions starting at starter;

now real-counter is real-counter plus number of entries in inserters;

end if;

if deletions is number of entries in inserters or (real-counter is 11) begin;

truncate position list to the first ten entries;

break;

end if;

end repeat.

To add (intruders - a list of things) to positions starting at (initiator - a number):

repeat with insertion counter running from one to the number of entries in intruders begin;

add entry insertion counter in intruders at entry initiator in position list;

end repeat.

Before kissing Jennifer when Investigation is happening for the first time, say "'I'm so glad you're here, I could kiss you,' Cochone says. [pb]'Solve the case first, Romeo,' Jenny says. 'Then you'll have earned it.'" instead.

Before kissing Jennifer when Investigation is happening, say "[i]Keep your mind on the case,[/i] Cochone thinks." instead.

Before listening or waiting when the location contains a candidate song, say "Jenny taps the laptop with her red nails." instead.

Before listening to a candidate song, try examining the noun instead.

Before listening to or examining when the noun is either the radio or the location, try listening to the current music instead.

Before listening to an on-screen thing:

if the noun is intractable, try clicking the noun instead;

try examining the noun instead.

Before opening or reading an on-screen thing:

unless opening a position, try examining the noun instead.

Before opening a contents, try examining the noun instead.

Before opening the notebook, try reading the notebook instead.

Before putting something on something, try inserting the noun into the second noun instead.

Before researching with something about something when the noun is either the computer or the internet or Jennifer and Cochone is awaiting information, say "[i]Jenny is busy right now,[/i] Cochone decides." instead.

Before seeking opinion from the notebook, try reading the noun instead.

Before seeking opinion from something:

if the noun is Jennifer, try examining hints instead;

if the noun is the internet, say "'Can you look up something on the internet for me?' Cochone says. [pb]'Sure,' Jenny says. 'Just ask me about whomever you want me to research, and I'll look them up for you.'" instead;

if the noun is Cochone, say "Cochone thinks." instead;

say "[The noun] doesn't reply." instead.

Before stalling when (Kiku is involved and Chrysanthemum is unexamined) or (Marco is involved and Torching is unexamined), say "Cochone may not be feeling well, but he can distinguish between pixels on the screen and someone in Jenny's office with him." instead.

Before stalling, now interjection needed is true.

Before switching something which is not a device, try exchanging the noun for instead.

Before switching on a track, try clicking the noun instead.

Before switching off a track, say "Track [number-name of noun] isn't playing right now." instead.

Before taking a position, say "You can't move the slots." instead.

Before taking a track:

if the noun is positioned, try excising the noun from the holder of the noun instead;

if the noun is listed in favorites list begin;

remove noun from favorites list;

say "Track [number-name of noun] is removed from your playlist." instead;

end if;

say "Track [number-name of noun] isn't in a slot or your playlist." instead.

Before toggling when mode is involved, say "You'll need to pick one: [mode offerings]" instead.

Before waiting when the player is scoreboard watching, try scoring instead.

Before writing text in the computer, try writing the topic understood in the notebook instead.

Last before doing something other than stalling or looking or scoring or shuffling or recording or toggling:

unless clearing out or clicking or examining or exchanging or excising from or excising all from or excising through or inserting something into or inserting relatively or opening or playing through or randomizing play for or reading or reversing or reversing through or sliding along, say "That isn't a command that I recognize. Type 'commands' if you need help finding commands that I understand." instead.

Instead of attacking something which is not Jack, say "Cochone isn't a violent man.".

Instead of clicking or excising from or excising all from or randomizing play for or renaming when the noun is not on-screen during Investigation, say "Please use a track name or number, slot letter, or the Sequence for that command.".

Instead of exchanging or inserting or playing something through when two involved things are not on-screen, say "Please use specific track names or numbers and slot letters for that command."

Instead of clicking a not on-screen thing:

if the noun is Jennifer, say "Cochone decides he really doesn't want to push her buttons.";

otherwise say "Cochone decides he shouldn't play with [the noun] right now.".

Instead of conversing when the second noun is not a person, say "Cochone mutters to himself. At least he tells himself that.".

Instead of conversing when Cochone is awaiting information, say "Cochone doesn't want to interrupt Jenny as she looks up the information.".

Instead of discussing computer with Jennifer, try discussing help with Jennifer.

Instead of discussing dogs with Jennifer:

if bracelet is a Conversation Piece listed in the Table of Conversation, try discussing bracelet with Jennifer;

otherwise continue the action.

Instead of discussing frankfurters with Jennifer when Cochone is thinking about lunch:

say "[one of]'You know,' Cochone says. 'I usually would have a couple of hot dogs for lunch. But today, I might even be too sick for that.' [pb]'Skipping them will probably speed up your recovery,' Jenny says[or]Cochone doesn't want to debate the pros and cons of hot dogs with Jenny right now[stopping].".

Instead of discussing frankfurters with Jennifer when Cochone is skipping lunch for the first time:

say "'If I pass out from hunger, Jenny, get me two steaming dogs, Stat,' Cochone says. [pb]'I'm not a paramedic,' Jenny says. 'If you go down, I'm going home.'".

Instead of discussing frankfurters with Jennifer when Cochone is waiting for lunch for the first time:

say "'You know?' Cochone says. 'What I figure is that with all the other crap we breathe, drink, and eat, the occasional hot dog does no harm.' [pb]'Maybe not to you,' Jenny says. 'But I'm sure the slaughtered whatever-are-in-them beg to differ.'";

now Cochone is discussing wieners.

Instead of discussing frankfurters with Jennifer when Cochone is having hot dogs for the first time:

say "'So when was the last time you had meat?' Cochone says. [pb] 'I gave it up when I was a teenager,' Jenny says. 'Now, the thought of eating it turns my stomach.'";

now interjection needed is true.

Instead of discussing frankfurters with Jennifer when Cochone is satiated for the first time:

say "'Did you know that O'Hare airport sells more hot dogs than does any other?' Cochone says. [pb]'No,' Jenny says. 'I didn't know that. How do you possibly know that?' [pb]'Gus at O'Hare told me. He makes some of the best.'";

now Cochone is discussing wieners.

Instead of discussing footage with Jennifer:

if a status has not been sequenced begin;

say "'Tell me about these tracks[if Jennifer has been explaining the manual], again[end if],' Cochone says. [pb]'[one of]We got all that stuff from you yesterday, remember?' Jenny says, then she laughs. [or]Okay,' Jenny says. [stopping]'The tracks have names that I gave them and also their duration. The source of the tracks are indicated by the abbreviations. [']CP['] is cell phone; [']SR['] is sound recorder; [']VR['] is video recorder. Try to put ten of them together in order in the lettered slots. When they click, take them out and try the other five.'";

otherwise;

say "'I'd say you pretty much know how this works. You already figured out [if primary objective has been sequenced]that long chain[otherwise]the short one[end if]";

if (primary objective has been sequenced and one story-important track is unexamined) or (secondary objective has been sequenced and one not story-important track is unexamined), say ". You should make sure you've actually played all the evidence";

say ".'";

end if.

Instead of discussing playlist with Jennifer:

say "'What's this playlist for, again?' Cochone says. [pb]'I thought that users could put a few tracks in there just to see how they would fit together. You could work on the long chain in the Sequence and the shorter one in the playlist or vice versa. But you need to ultimately put either chain in the Sequence to really get it.'".

Instead of discussing Sequence with Jennifer:

if two statuses have not been sequenced begin;

say "'The lettered slots of the Sequence are supposed to help you arrange the tracks in order, however you think they should go,' Jenny says. 'You should base your decisions on the beginnings of the footage, when they were set up and started, and arrange them chronologically. You'll know when you've got the chains linked correctly.'";

otherwise;

say "'You already sequenced [if primary objective has been sequenced]that long story[otherwise]the five-parter[end if]";

if (primary objective has been sequenced and one story-important track is unexamined) or (secondary objective has been sequenced and one not story-important track is unexamined), say ". You should make sure you've actually played all the tracks, though";

say ".'";

end if.

Instead of discussing something with Jennifer when the noun is either prison or church or hospital during Investigation:

if Google is examined, say "[one of]'Those places in the Google search may be important,' Cochone says. '[if Locked-Door is examined][Salt][otherwise]Someone[end if] seemed to think so.' [pb]'Yes,' Jenny says. You might want to keep them in mind. But I'm sure not all of those places are relevant.'[or]Cochone remembers that Jenny doesn't know any more than he does about the Google search.[stopping]";

otherwise say "[one of]'Did you find anything in these tracks to suggest if the victims or perps had any affiliations?' Cochone says. [pb]'No,' Jenny says. 'The [']Google['] track is the only one that mentions places, but I'm not sure of the context. That's your job, after all.'[or]Cochone decides that he should first check the tracks himself for the information he wants.[stopping]".

Instead of discussing injured squirrel with Jennifer during Investigation:

if Backyard is examined or Squirrel Trap is examined, say "[one of]'I think that squirrel with the bad leg is trying to tell me something,' Cochone says. [pb]'Poor thing,' Jenny says. 'The squirrel. Not you.' She giggles. 'He was fortunate, though. He didn't get sick like the other animals i saw in the [']Dead Animals['] footage.'[or]Cochone considers what Jenny said about the squirrel not getting sick like the other animals.[stopping]";

otherwise say "'We found some dead animals when we searched around the house,' Cochone says. 'Apparently the house really is a death trap.' [pb]'Well, I think one of the squirrels seems to be doing okay,' Jenny says. 'The one with the bad leg. You can see him in the [']Squirrel Trap['] and [']Backyard['] videos.'".

Instead of discussing water with Jennifer during Investigation:

if Time Lapse is examined or Backyard is examined, say "[one of]'I think the water in the birdbath may be important,' Cochone says. 'Not directly, but it may hold something of interest.' [pb]'If you think it's important, bring it up with the Lieutenant,' Jenny says.[or][i]What is it about that water?[/i] Cochone thinks.[stopping]";

otherwise say "[one of]'That house had an interesting backyard,' Cochone says. 'The fountain. I'm sure you saw it when you transferred the footage.' [pb]'Yes,' Jenny says. 'Can't say I like it much. At least they included a birdbath. It's probably the only nice thing about that place.'[or][i]The 'Backyard' track probably has a good shot of the fountain and birdbath,[/i] Cochone thinks.[stopping]".

Instead of discussing house with Jennifer during Investigation:

say "[one of]'We need to know more about that house,' Cochone says. [pb]'I've been working on it,' Jenny says. 'But I haven't found anything useful. Bring it up with Nigel later if you think you know something we don't.'[or][i]She doesn't know anything useful yet,[/i] Cochone thinks.[stopping]".

Instead of eating Jennifer, say "Cochone can't decide which he would rather have: breast or leg.".

Instead of eating the bagel, say "[i][if Cochone is having hot dogs]Not when I have hot dogs[otherwise if Cochone is satiated]The dogs did their job[otherwise if Cochone is skipping lunch]I probably shouldn't risk any food right now[end if],[/i] Cochone thinks.".

Instead of eating the frankfurters when Cochone is skipping lunch, say "[i]I've made my decision, but that doesn't mean I can't pick some up when I'm finished here,[/i] Cochone thinks.".

Instead of examining frankfurters when Cochone is skipping lunch, say "Cochone pictures a pair of barbecued wieners wrapped in their individual thick buns and a cold bottle of Perrier to wash them down.".

Instead of examining footage:

say "There are 15 tracks: [pb][track listing][lb]".

Instead of examining hints when primary objective has been sequenced and secondary objective has been sequenced:

say "'I'm [one of]getting [or]still [stopping]a bit confused[one of] here[or][stopping],' Cochone says. '[one of]Do you remember how this all fits together[or]Can you remind me[stopping]?' [pb]'Sure,' Jenny says. '[one of]Just give me a sec.' [or][stopping]Jenny types. '[one of]Have a look. T[or]Here is T[stopping]he long sequence[one of] we agreed on should be on your screen now[or][stopping]: ' [pb]";

recount primary chain;

say "'And here is the shorter one,' Jenny says[pb]";

recount secondary chain;

say "'Right,' Cochone says. 'Got it.' [lb]".

Instead of examining hints when one track is unexamined:

say "[i]I won't be able to solve the mystery if I don't play all of the tracks,[/i] Cochone [one of]thinks[or]remembers[stopping]. [i]I haven't watched [if every track is unexamined]any of them yet. [otherwise if the number of unexamined tracks is greater than (the number of tracks divided by two)]most of these. [otherwise]'[appropriate name for a random unexamined track],' for one. [end if][/i][lb]".

Instead of examining hints when two statuses are solved during Investigation:

say "[i]I got them both,[/i] Cochone thinks. [i]I just need to be prepared to tell Nigel where the powder is being stored, and why that squirrel didn't die. Jenny said that I should tell her about the Sequence when I am ready.[/i] [pb]".

Instead of examining hints when a status is sequenced:

now newly-hinted is {};

say "'How does this look to you?' Cochone says. [pb]'Hmmm. ";

if a story-important track is positioned begin;

say "[one of]It looks good to me. Take them out. [or][stopping]Try to fit the other five tracks together";

otherwise;

if every story-important track is unpositioned begin;

say "[one of]That's fine for the short segment. Take them out and try for the longer one with the other ten tracks[or]You need to take those tracks out, remember? Place the others[stopping]";

otherwise;

say "[one of]Tracks [number-name of Backyard] through [number-name of Squirrel Trap] work together nicely, but the other track[if two story-important tracks are positioned]s[end if] in there do[if exactly one story-important track is positioned]es[end if]n't fit with it. You should focus on those ten[or]Take out tracks [number-name of Backyard] through [number-name of Squirrel Trap] and work with the rest[stopping]";

end if;

end if;

say ".' [lb]".

Instead of examining Playlist:

if the favorites list is {} begin;

say relay an empty noun;

otherwise;

say "Your playlist contains [number of entries in favorites list] track[unless the number of entries in favorites list is one]s[end unless]: ";

repeat with selection running through favorites list begin;

say "[appropriate name for (selection)]";

say " ";

end repeat;

say pb;

end if.

Instead of examining Sequence:

if every track is unpositioned begin;

say relay an empty noun;

otherwise;

say "Sequence: ";

repeat with selection running through full positions begin;

say "[selection]: ";

let target be a random track which is in selection;

say "[number-name of target]. ";

say "[appropriate name for (target)] ";

end repeat;

say lb;

end if.

Instead of examining when noun is either hints or walkthrough and Cochone is awaiting information, say "[i]I'll wait for the info before distracting her,[/i] Cochone thinks.".

Instead of examining Manipulators:

say "[seq][rpo]";

follow the crediting rule.

Instead of examining examined walkthrough:

say "Cochone decides to just type 'opinion' like Jenny suggested. [pb]";

say "The screen lists the long Sequence: [pb]";

recount primary chain;

say "Cochone then brings up the short sequence: [pb]";

recount secondary chain.

Instead of excising footage from something when the second noun is either playlist or Sequence, try excising all from the second noun.

Instead of informing about something to Jennifer when (the noun is the footage or the noun is Sequence) during Investigation:

unless one status has been sequenced begin;

say "'I haven't given up,' Cochone says. [pb]'Neither have I,' Jenny says.";

otherwise;

continue the action;

end unless.

Instead of informing about something to Jennifer when (the noun is the footage or the noun is Sequence) and secondary objective is solved and primary objective is not solved during Investigation, say "'I think I'm getting close to solving that long sequence,' Cochone says. [pb]'I knew we would.'".

Final countdown is initially nine. [We use this variable to allow the player eight attempts at telling Jayne about the prison and the birdbath (the solutions) before Cochone loses consciousness. We don't use a timed event, because we turned off the timed events when Cochone is in the Office.]

Instead of informing about something to Jennifer when primary objective is solved and (the noun is footage or noun is Sequence) during Investigation:

say "Cochone leans back in the chair and sighs. He remembers Neo being shot, Xeno stumbling through the trees and lying silent in hospital. And Kiku. And all the girls forced into her situation. He hears a voice. Maybe it's Jenny. She should really speak louder. He coughs, flips open his phone, and punches in Chrissy's number. The voice on his daughter's voice mail is faint and indistinct. He hangs up. [pb]'Nobody home?' Jenny says. 'Or maybe they have caller ID.' Her grin falls when Cochone turns around. 'You really don't look good.' [pb]'Let's finish this,' Cochone says. 'I think I know what happened.' [pb]'Great,' Jenny says. 'I'll get Nigel.' She stands and stabilizes herself with her cane. [pb]'Watch it,' Cochone says, rising to help her. He stumbles and places a hand on the handle of Jenny's wheelchair. He looks at Jenny, who has turned to frown at him. He falls back into the wheelchair. 'I'll wait here.' [pb]'I'll be right back.' Jenny hobbles into the hall and glances back at Cochone before continuing to Nigel's office. [pb]Press a key to continue. [pb]";

wait for any key;

say "Nigel appears[if Cochone is waiting for lunch]. He shoves a couple of hot dogs on the desk[end if]. He says something that sounds like 'You're right he does.' [pb]'Push me over to the desk, and I'll show you what we have,' Cochone says. [pb]Nigel situates Cochone in front of the desk. Jenny and Nigel remain silent as Cochone clicks through the [if secondary objective is solved] two sequences[otherwise]ten tracks he sequenced[end if]. [pb]'Okay,' Nigel says. 'We're going to get you some medical attention. But based on what we've seen, we don't have a lot of time. What do you think we should do now?' [pb]Those chemicals need to be somewhere,' Cochone says. [pb]'All right,' Nigel says. 'Tell me where.'";

move player to Office, without printing a room description;

now every thing in Workstation is in Office;

now summary is switched off;

now every edible thing is nowhere.

Instead of inserting relatively when a not on-screen thing is involved or an intractable thing is involved:

say "You can only place tracks relatively, either left or right of another track or slot.".

Instead of inserting relatively when the noun is the second noun:

say "You can't put something in itself. Be sure you specify a track and put it in a slot that doesn't already contain the track.".

Instead of looking for the first time:

say "Detective Cochone is being tortured by a dancing bear. The small toy bobs on the desk, its cymbals crashing out an eardrum-tearing beat that shouldn't be possible for such tiny plates of gold-colored tin. Cochone's head pounds in sympathy. Even the walls of Jenny's office seem to shake. With a sour expression, Cochone turns away from the cacophony. [pb]'Okay, so you don't like Happy Jack,' Jenny says as the bear stops clapping. Seated in her wheelchair in front of the only other desk in the office, Jenny frowns in mock disappointment. 'Somebody has a bad case of the mubble fubbles.' [pb]'The morning has been a bit rough,' Cochone says. 'I think I'm coming down with something.' [pb]'Well, I hope you are well enough to listen to some music. I need a soundtrack to my day. Do you want to choose a song?'";

now the player is queried.

Instead of looking when location contains a candidate song (this is the reviewing the playlist rule):

say "Cochone concentrates on the screen: [pb]";

repeat with selection running through candidate songs begin;

say "[number-name of selection]. [printed name of selection] '[short-name of selection]'[lb]";

end repeat.

Instead of opening an empty position, say "Slot [noun] is already empty.".

Instead of opening a full position:

now removal point is the nearest empty slot for the position list starting at slot number-name of noun;

remove entry removal point from position list;

if removal point is less than number-name of noun, add placeholder at entry (number-name of noun plus one) in position list;

if removal point is greater than number-name of noun, add placeholder at entry (number-name of noun) in position list;

if ten positions were full begin;

say "The Sequence was full, so Track [number-name of (a random track in the last slot of the sequence)] was bumped from slot [last slot of the sequence].";

otherwise;

say "The sequence has shifted [if removal point is less than number-name of noun]backward[otherwise]forward[end if] from slot [noun][if entry (number of entries in position list) in position list is not listed in temporary position list], and the last track[otherwise] to fill the closest empty slot[end if].";

end if.

Instead of reading something which is not the notebook, say "I can only let you read the notes that have been recorded.".

Instead of researching with something about something when the noun is neither the computer nor the internet nor Jennifer, say "Cochone decides that Jennifer is more likely to find what he needs than he himself could.".

Instead of researching with the internet about something when the second noun is either the water or injured squirrel:

say "[one of]'Do you think you could find something useful on the internet about those animals we found at the house?' Cochone says. 'Maybe the fountain, too.' [pb]'I doubt it,' Jenny says. 'The lab is doing autopsies on the animals this weekend. Their report would be able to tell us more.'[or]Cochone decides to just hope that the lab can find something.[stopping]".

Instead of researching with the internet about something when the second noun is either prison or church or hospital:

if Google is examined, say "[one of]'Did you also try searching for those places in the [']Google['] footage?' Cochone says. [pb]'Way ahead of you,' Jenny says. 'There's not much we don't already know. I left the most useful information in that track. One of those places may end up being important, though.'[or]Cochone is sure Jenny isn't holding back any relevant information about the prison, the hospital, or the church.[stopping]";

otherwise try discussing the second noun with Jennifer.

Instead of researching with the internet about house, try discussing the house with Jennifer.

Instead of researching with something about Kiku:

say "[one of]'Can you try to find out more about Kiku, Jenny?' Cochone says. 'Japanese girl. Japanese.' [pb]'Really?' Jenny says. 'Why don't I try to find [']John Smith['] while I'm at it.' [pb]'[']John Smith?[']' Cochone says. 'I haven't seen anyone with that name.' [pb]Jenny rolls her eyes. Her sarcasm seems to be lost on the distracted detective. [pb]'I'll tell you this, though,' Jenny says after tapping some keys on her laptop. 'Kiku is Japanese for [']chrysanthemum.['] I saw one of those in the videos. [pb]'Yes, I remember one, too.'[or][i]'Kiku' is too generic, [/i] Cochone remembers.[stopping]".

Instead of researching with something about Marco when Google is unexamined:

now Marco is unassociated with prison;

say "[one of]'One of the thugs is called [']Marco,['] Cochone says. 'Can we work with that?' [pb]'No,' Jenny says. 'We'll need more names or a place to associate him with.'[or]Without any new information, Cochone decides not to bother Jenny.[stopping]".

Instead of researching with something about Marco when Google is examined for the first time:

now the being-researched is Marco;

say "[unless Marco is unassociated with prison]One of the thugs is called [']Marco,['] Cochone says. 'He may have spent some time in Sangoro. Can we check that?[otherwise]'I think we should search for a link between Marco and the SanGoro prison,' Cochone says. 'Can we do that?[end unless]' [pb]'I'll see if I can find some records,' Jenny says. 'Give me a few.'";

now Cochone is awaiting information.

Instead of doing it more than one time, say "Cochone brings up the information on Marco: [description of Marco] [lb]".

Instead of saying yes when the player is queried and Workstation contains a candidate song:

say "'Right,' Cochone says. 'I'll play along. [']The Sound of Silence['] would be good.' [pb] Jenny plugs a device into the laptop resting on her legs. 'The who?' [pb]'No. Simon and Garfunkel.' [pb]'That sounds like an eighties detective show,' Jenny says with a smile. [pb]'[i]The Who[/i] is my generation, not yours.' [pb]'Here, I'll let you choose, okay?' She turns the laptop around to face Cochone. 'Pick one of these.'";

now the player is not queried;

try looking.

Instead of saying no when the player is queried and Workstation contains a candidate song:

unless the player is dismissive begin;

say "Cochone shrugs. 'I really don't care. You choose.' [pb]'Okay, I'll be merciful.' [pb]";

otherwise;

say "Jenny must see something in Cochone's eyes. Or maybe it's his blanched face. 'We need to get on with this,' she says. 'I'll handle it.' [pb]";

end unless;

say "'Just do me a favor and keep the volume down.'";

now the player is dismissive;

now the player is not queried;

try examining sfa.

Instead of saying yes when player is queried and Nigel is waiting for lunch request:

say "'Yeah,' Cochone says to Nigel.

'I'll take two.' [pb]'Okay. I'll be back soon.' Nigel leaves.";

now Nigel is not waiting for lunch request;

now Cochone is waiting for lunch;

now Cochone is not queried.

Instead of saying no when player is queried and Nigel is waiting for lunch request:

say "'Sounds good, but I think I need to take it easy on my stomach today. At least for now.' [pb]'Okay,' Nigel says. 'I'm sure you'll have something good to tell me when you're done here.' He leaves.";

now Cochone is skipping lunch;

now Nigel is not waiting for lunch request;

now Cochone is not queried.

Instead of saying yes or saying no when player is not queried during Investigation, say "'Huh?' Jenny says. [pb]'Oh, nothing.'" instead.

Instead of switching on a switched on reminder, say "[noun] is already on."

Instead of switching off a switched off reminder when the noun is ignore mode, say "Rather than switch off [noun], you'll need to turn on another mode. SEQUENCE MODE shows the Sequence when it changes. TRACK MODE shows the list of unslotted tracks. FULL MODE always shows the Sequence and the unslotted tracks.".

Instead of switching off a reminder, say "You'll need to choose another mode to use instead of [noun]. The three others are [the list of switched off reminders].".

Instead of talking about text with Jennifer when the topic understood matches "ring/rings/cobra/cobras" or the topic understood matches "cobra ring/rings":

if Google is examined, say "[one of]'Do you know anything about those cobra rings?' Cochone says. [pb]'Not anymore than what is in Track [number-name of Google],' Jenny says[or]Cochone remembers that Jenny only knows as much as he does about the ring[stopping].";

otherwise say "[if Locked-Door is examined][i]I'll need to know more about it,[/i] Cochone thinks[otherwise][i]My wedding ring did sting like a cobra,[/i] Cochone thinks[end if].".

Instead of talking about text with Jennifer when the topic understood matches "gold" or the topic understood matches "gold/-- powder/chemical/chemicals/weapon":

if primary objective has been sequenced, say "[one of]'Any idea where they might be storing that gold powder?' Cochone says. [pb]'I think the answer is in there somewhere,' Jenny says[or]Cochone decides it is his job to find out where the weapon is[stopping].";

otherwise say "[one of]'Can you find out anything about that gold powder we found at the scene?' Cochone says. [pb]'I'll have to let the lab guys figure that out,' Jenny says[or][i]Jenny doesn't know anything more than I do,[/i] Cochone thinks[stopping].".

Instead of talking about "short/long/shorter/longer/small/large segment/sequence/chain" with Jennifer:

say "'You think I should be able to sequence ten tracks then the other five, right?' Cochone says. [pb]'I hope so,' Jenny says. 'Once you figure out one of the chains, you should be able to take out the tracks and link up the others into their own distinct story.'".

Instead of talking to Jennifer:

if Table of Conversation is empty begin;

unless the player has been discussing wieners or Cochone is skipping lunch begin;

try discussing frankfurters with Jennifer;

otherwise;

say "Cochone engages Jenny in some idle chatter, but she doesn't seem interested. He returns to the case.";

end unless;

otherwise;

repeat through the Table of Conversation begin;

if there is a Conversation Piece entry begin;

try discussing Conversation Piece entry with Jennifer;

break;

end if;

end repeat;

end if.

Instead of toggling when the noun is not a device, say "You can switch on a track, which will play it, or the summaries, which will print your short descriptions of tracks when you play them. You can also switch off the summaries.".

Instead of writing about anything in something which is not the notebook, say "You can only record your thoughts in the notebook.".

Instead of writing about anything in something, say "Cochone decides he should record something more specific about [the second noun].".

After discussing Jennifer with Jennifer when Investigation is happening for the first time:

say "'So how do you like IT?' Cochone says. 'It seems to like you.' [pb]'Yeah, I'm a bit of a computer geek. My dad wanted me to be a cop. You believe that? Well, he wanted either me or my sister to be, but I have the size. Maybe [']cause he didn't have a son. His blood runs blue. I liked being a cop, but I think I like what I'm doing now more.'".

After discussing Jennifer with Jennifer when Investigation is happening for the second time:

say "'You have a guy waiting for you at home?' Cochone says. [pb]'A boyfriend?' Jenny says. 'No.' She sighs. 'What about you? Is there a [']Mrs. Piggy?[']' She laughs. [pb]'I was chained to that lead ball for ten years.' [pb]'So what happened, if I may ask?' [pb]'She liked to talk. I thought I was a good listener. She said I wasn't.'".

After discussing Jennifer with Jennifer when Investigation is happening for the third time:

say "'So why did you call yourself [']Tin Foil Jenny?[']' Cochone says. [pb]'Well, I like to think of it as me. The software is me, and I'm helping people. Bringing out the best in them. Like a foil.' [pb][i]Foil?[/i] Cochone thinks, but says, 'Why [']tin?[']' [pb]'Because it's a computer, and [']Silicon Foil Jenny['] sounds dumb.'".

After discussing Jennifer with Jennifer for the fourth time:

say "'Can I stall any longer by asking about you?' Cochone says. [pb]'Nope,' Jenny says. 'More information about me usually costs a dinner.'".

After discussing Happy Jack with Jennifer:

Jenny discovers ironside in three minutes from now;

continue the action.

After eating the frankfurters:

if bites remaining is at least one begin;

decrement bites remaining;

if the bites remaining is zero begin;

now hot dog length is zero;

now Cochone is satiated;

say "Cochone pops the last piece of his lunch into his mouth, finishes the cola, and throws the box and can into a garbage can next to the desk.";

otherwise;

say "[one of]Cochone takes another bite from a hot dog, hoping it will remain in his stomach much like the first did. He chews, waits, swallows. His stomach remains calm. [i]I think I even feel a bit better,[/i] he thinks. [i]It doesn't feel like this is going to be a problem.[/i] In celebration, he gulps down a fizzy mouthful of cola and burps. He hears Jenny making oinking sounds behind him[or]Cochone bites into [if the bites remaining is greater than 5]a[otherwise]the[first time] remaining[only][end if] hot dog[stopping]. ";

if bites remaining is six begin;

say "He swallows the last bit of bun and discards the paper wrapper.";

otherwise;

say "He [one of]wipes his mouth and fingers with a napkin, drinks from the can, and returns to work[or]takes a swig from the can[or]wipes his fingers and turns back to the monitor[or]turns back to the monitor[or]licks his lips, sips from the can, and returns to the keyboard[or]wipes some mustard from his chin and returns to the case[purely at random].";

end if;

end if;

otherwise;

say "That remains of Cochone's lunch [mdash] wrappers, napkins, and the cola can [mdash] are in the garbage.";

end if.

First after examining a track when typing a summary has not been true for the first time:

say "Note that you can write your own description of a track with the command SUMMARIZE [bracket]a track[close bracket]. SWITCH ON SUMMARIES will show these descriptions when you play the tracks, and SWITCH OFF SUMMARIES allows you to play the original tracks.";

continue the action.

After examining Basement for the first time, now Neo is researchable.

After examining Backyard for the first time:

now Xeno is researchable.

After examining Chrysanthemum for the first time, now Xeno is researchable.

After examining Diary when Argo is unidentified for the first time, now Argo is pseudonymized.

After examining Escape for the first time:

if Xeno is unidentified, now Xeno is pseudonymized.

After examining Kitchen for the first time, move the band to Workstation.

After examining Locked-Door for the first time:

now Nickell is researchable;

now Xeno is researchable.

After examining Squirrel Trap for the first time, now Salt is researchable.

After listening to Happy Jack:

if glulx sound is supported, play sound of cymbals in foreground for 20 times;

say "Cochone gingerly taps Jack. The bear bobs and smashes his cymbals together again and again and again and again[one of]. [pb]'See?' Jenny says, 'Jack isn't so bad. He's kinda fun.' [pb]Unlike Cochone, she smiles[or][stopping].".

After listening to a music genre when Cochone is listening to the Who:

say "Townsend sings 'Who are You?' Cochone guesses Townsend's ears are ringing more than his are.";

now interjection needed is true.

After listening to tinnitis:

say "The last time Cochone heard ringing in his ears this loud was during his last hangover decades ago. No. The last time was when he was listening to his ex.";

now interjection needed is true.

After listening to a music genre:

say "Cochone listens to Jenny's music, trying to ignore the ringing in his ears. ";

if the turn count is greater than 25, say "[one of][i]Jenny must have turned the volume down,[/i] Cochone thinks. He concentrates on the soft sounds. [or][stopping][rpo]";

if the current music is:

-- classic: say "[one of]'House of the Rising Sun.' [or]'San Franciscan Nights.'[or]'Don't Let Me Be Understood.'[or]'We've Gotta Get Out of This Place.'[or]'See See Rider.'[or]'Bright Lights Big City.'[or]'It's My Life.'[or]Something from the seventies plays on Jenny's laptop.[stopping] [lb]";

-- dance: say "Dance music.";

-- foreign: say "More songs from the French guy, Cochone assumes.";

-- instrumental: say "An instrumental interlude.";

-- novelty: say "[i]So she likes cutesy novelty songs, too,[/i] [if the turn count is greater than 25]he[otherwise]Cochone[end if] thinks. [i]Why am I not surprised?[/i] [lb]";

-- hard rock: say "[i]Why is the singer yelling so much?[/i] Cochone thinks. [i]I hope Jenny doesn't have many of these.[/i] [lb]";

now interjection needed is true.

After listening to Jennifer:

say "[if turn count is less than 15]Cochone can hear Jenny tapping on the keys of her laptop[otherwise if turn count is less than 25]Jenny isn't typing much now; Cochone hears only intermittent taps[otherwise if turn count is greater than 35]Jenny has stopped typing. No. Cochone hears a few taps occasionally[end if].".

After looking when the location does not contain a candidate song for the first time:

say "You can resume a previous investigation with re-open. The HELP command shows a brief guide to using the software, and ABOUT provides more information on Sequitur's origin. Type CLEAR NOTES to erase the notebook. [pb][end seq] [lb]Cochone screws up his face. 'Oh boy,' he mutters. [pb]'Don't forget,' Jenny says. 'You can also ask me for help, and I'll explain all of this when you're ready. Or, if you don't mind consulting a woman, you can ask me for a hint, and I'll help you find the connections.'".

After playing something through something when summary is switched on and one track is marked for manipulation, say "Track[if the number of marked for manipulation tracks is not one]s[end if] [list of the marked for manipulation tracks] do[if exactly one track is marked for manipulation]es[end if]n't have [if exactly one track is marked for manipulation]a [end if]summarized description[if two tracks are marked for manipulation]s[end if].".

After switching on a reminder:

if the noun is:

-- sequence mode: say "The Sequence will be displayed every time you change it.";

-- track mode: say "The list of unslotted tracks will be shown after every command.";

-- full mode: say "Both the Sequence and track list will be displayed after each command.";

-- ignore mode: say "You won't be shown changes to the Sequence or a reminder of the unslotted tracks after each command.".

After switching on the summary:

say "Now only your description of the tracks will appear when you play them.".

After switching off the summary, say "Now the tracks will play normally.".

after waiting, say "Cochone ponders the case. [pb][interjection]".

Chapter - Specific Action-processing Rules from Standard Rules

Understand "eat" as eating. [Grammar lines like these prevent the parser from asking things like "What do you want to ... ," which would be printed while the parser is reading the command and not make sense in this game. Now, the parser is forced into supplying a missing noun activities where we can say a more appropriate response.]

Rule for supplying a missing noun while eating:

if Cochone is having hot dogs begin;

now the noun is the frankfurters;

otherwise;

if Jennifer is having lunch, now the noun is the bagel;

unless Jennifer is having lunch, say "[if the player has been having hot dogs]The hot dogs still sit heavy in Cochone's stomach[otherwise if Cochone is waiting for lunch]Cochone anticipates the hot dogs, despite his tempermental stomach[otherwise]Cochone thinks about getting some lunch[end if].";

end if.

This is the new can't eat unless edible rule:

if the noun is inedible, say "[if the noun is a subject or the noun is Marco or the noun is Kiku]Cochone prefers non-human meat. [otherwise if the player has been having hot dogs][i]I like meat. Hot dogs may have a bad rap, but at least they're made from cow,[/i] Cochone thinks. [i]I hope.[/i][otherwise][i]I'm not really that hungry, am I?[/i] Cochone thinks. [i]Yeah, I am. I think it'll be time to visit 'Long Hots' soon.[/i][end if][lb]" instead.

The new can't eat unless edible rule substitutes for the can't eat unless edible rule.

The standard eating rule does nothing.

Understand "look at [something]", "x", and "examine" as examining.

Rule for supplying a missing noun while examining:

say "Pick a track to play.".

Carry out examining Help:

say "[seq]";

if one status is solved begin;

say "[one of]Surprise, Steve! I can change this program on the fly, too, in case you haven't noticed. [or][stopping]I think we ";

if walkthrough is examined begin;

say "can go with how I thought the tracks link up, if you want";

otherwise;

say "solved [if primary objective is solved and secondary objective is not solved]the long segment[otherwise if two statuses are solved]both segments[otherwise]the short segment[end if]";

end if;

say ". [if secondary objective is solved and primary objective is not solved]We really need to figure out that longer one, too. Let's work on those ten remaining tracks by fitting them into their own Sequence[otherwise]We should have enough to go on, so just tell me about the sequences, and I'll get Nigel[end if][if exactly one status is solved and primary objective is solved]. We could also work on those five remaining tracks, though, and figure out what's going on there. Try fitting them in the Sequence too, on their own, if you want[end if]. [pb]";

end if;

unless one status has been solved and one track has been positioned, say "[fiction title] is designed for you to put tracks in the Sequence in temporal order. This particular case has 15 tracks, so two distinct sequences should be established: one with ten tracks and the other with the remaining five. The tracks are numbered one through fifteen, and the slots are lettered from A through J. Place the tracks in the slots, and your instincts should tell you when they are arranged sensibly. When one chain has been linked, remove the tracks from the Sequence and set up the other chain with the remaining tracks. Linking the ten-segment chain should be enough to know what happened and what to do next, but only by sequencing both chains will we be able to see the whole story. [pb]";

say "[b]Sequitur Commands and Brief Guide[/b] [pb]";

say "CLEAR SEQUENCE [bracket]or PLAYLIST[close bracket]: removes all the tracks[lb]";

say "CUT [bracket]a track[close bracket] FROM [bracket]a slot or playlist[bracket]: removes the track; if a second noun isn't specified, the track will be removed from the Sequence[lb]";

say "CUT [bracket]a track[close bracket] THROUGH [bracket]a track[close bracket]: removes the track in the first specified slot up to and including the track in the second specified slot[lb]";

say "EXAMINE or X [bracket]a track or slot[close bracket]: plays the track or the track which is in the slot[lb]";

say "EXAMINE or X TRACKS or SEQUENCE or PLAYLIST: lists all the tracks, the tracks in the Sequence, or the tracks in the playlist, respectively[lb]";

say "LOOK or L: refreshes the screen [lb]";

say "[bracket]a mode[close bracket]: either sequence mode, track mode, full mode, or ignore mode; determines what is displayed after you type a command [lb]";

say "OPEN [bracket]a slot[close bracket]: Unlike removing a track, which doesn't shift the remaining tracks, opening a slot moves the Sequence left or right (filling the nearest empty slot) to open the specified slot. [lb]";

say "PUT [bracket]a track[close bracket] IN [bracket]a slot or playlist[close bracket] (or just [bracket]a track[close bracket] [bracket]a slot[close bracket]: This will either fill an empty slot or, if the slot contains a track, first shift the tracks right if there is an empty slot available. If no slots are available to the right but there is an empty slot to the left, the tracks shift backward. If the Sequence is already full, the track in the last slot is lost; You can also put a track number first or second or third, etc.";

say "PUT [bracket]a track[close bracket] RIGHT OR LEFT OF [bracket]a slot[close bracket] [lb]";

say "PUT [bracket]a track[close bracket] TO [bracket]a track[close bracket] IN [bracket]a slot[close bracket]: This allows you to move a string of tracks that are in the Sequence to another region of the Sequence. The leftmost track specified will be placed in the slot, with the subsequent tracks in the group being placed in the slots after it. You can also put these grouped tracks after or before another track or slot.";

say "PLAY TRACKS or PLAYLIST or SEQUENCE: plays all the tracks in whatever you specified; 'tracks' will play all the unslotted tracks[lb]";

say "PLAY or P [bracket]a track[close bracket]: accepts track names or numbers[lb]";

say "PLAY or P [bracket]a slot or track[close bracket] THROUGH [bracket]a slot or track[close bracket]: specifying two unslotted tracks plays tracks that are not in the Sequence in their number order[lb]";

say "PLAY TRACKS or SEQUENCE or PLAYLIST RANDOMLY: if 'tracks' is specified, all the tracks not in the Sequence will play randomly[lb]";

say "REMEMBER: reminds you of the links you've established [lb]";

say "RENAME [bracket]a track[close bracket] or RENAME [bracket]a track[close bracket] [bracket]new name[close bracket][lb]";

say "REVERSE SEQUENCE or REVERSE [bracket]a slot[close bracket] THROUGH [bracket]a slot[close bracket]: reverses the positions of the tracks in the Sequence [pb]";

say "SHIFT [bracket]a track or slot[close bracket] FORWARD or BACKWARD BY [bracket]a number[close bracket]: moves the track or track in the specified slot forward or backward the specified number along the Sequence if there are empty slots to fill; if an empty slot is specified, the specified number of slots forward or back will be emptied; it will separate tracks if the specified track is next to another track[lb]";

say "SHUFFLE PLAYLIST or SEQUENCE: rearranges the tracks but doesn't play them[lb]";

say "SUMMARIZE [bracket]a track[close bracket]: allows you to write a brief description of the track; if you play a track with a summary and summaries is switched on, your description will be printed, instead of playing the track[lb]";

say "SWITCH SUMMARIES or SWITCH ON or OFF SUMMARIES: When summaries are switched on, your descriptions of the tracks will be printed. When they're off, the tracks play normally[lb]";

say "SWITCH [bracket]a track or slot[close bracket] WITH [bracket]a track or a slot[close bracket]: this won't shift the tracks in the Sequence; the track is placed in the new position, either filling it or replacing the previous track it held[pb]";

say "You can also record notes by typing WRITE, read them with READ NOTES, and clear the notebook with CLEAR NOTEBOOK. [pb]";

say "Other commands: CREDITS, HELP, QUIT, REOPEN, RESTART, and SAVE[if player is scoreboard watching]. SCORES shows you the hockey and basketball scores[end if][if a track links a track]REMEMBER reminds you of the connections you have made[end if]. [pb]";

say "ASK JENNY FOR HINTS if you want her advice, or ASK JENNY FOR an OPINION if you want her to show you how she would fit all the tracks into the Sequence. You can also just TALK TO JENNY anytime. If you want Jenny to do some research on someone in the footage, just type LOOK UP and the person's name[one of]. [pb][end seq] [lb]'Cute, Jenny,' Cochone says. 'Including yourself in there like that.' [pb]Jenny giggles. 'That's why I'm here. I'm usually good for a little chat.' [pb]'Right.' Cochone nods then coughs[or][stopping].".

Already-hinted is a list of things that varies.

Newly-hinted is a list of things that varies.

[These are used to determine if Jenny will end up helping Cochone with the same tracks that were hinted at in the previous turn, i.e., the player didn't take the hint.]

Setting action variables for examining when the noun is hints: now already-hinted is newly-hinted.

Hinting for short chain is initially false.

First check examining hints:

say "'[one of]I need some fresh eyes on this,' Cochone says. 'Will you take a look?' [lb][or]Would you mind taking another look at this stuff?' Cochone says. [lb][stopping] [lb]'Okay,' Jenny says. [first time]'I can do it from my laptop. Just watch your screen.' [pb][i]Of course you can,[/i] Cochone thinks. [only][pb]Jenny mumbles as Cochone's cursor flits about his screen. ";

if primary objective has been sequenced begin;

say "[one of][pb]'I'm having a bit of a problem with the short sequence,' Cochone says. [pb]'Let's take a look,' Jenny says. [or][stopping] ";

now hinting for short chain is true;

otherwise;

if secondary objective has been sequenced begin;

say "[one of][pb]'This long chain,' Cochone says. 'Let's try it.' [pb]'Can do,' Jenny says. [or][stopping] ";

now hinting for short chain is false;

otherwise;

now hinting for short chain is false;

if (the number of positioned not story-important tracks is greater than the number of positioned story-important tracks) or (every story-important track is not explained and one positioned not story-important track is explained), now hinting for short chain is true;

end if;

end if;

now hints are examined;

say rpo.

[We first want to put all the short segment tracks that we have linked into the Sequence and in the right order.]

Check examining hints when secondary objective has not been sequenced and one not story-important track is explained (this is the place linked second chain tracks rule):

if every explained not story-important track is positioned begin;

repeat with counter running from one to the number of entries in secondary chain minus one begin;

let hint list be the connected links for secondary chain starting at counter;

let numbered hint list be numbered track list for hint list;

if hint list is not {} and hint list is incorrectly shuffled, say "'Remember that you figured one chain is [numbered hint list]. Put those tracks in that order.' [lb]" instead;

end repeat;

otherwise;

if (the number of positioned not story-important explained tracks is greater than the number of positioned story-important explained tracks) or every story-important track is not explained or (every track is unpositioned and the number of not story-important explained tracks is greater than the number of story-important explained tracks) or (every positioned story-important track is not explained and the number of explained not story-important tracks is greater than the number of explained story-important tracks) begin;

if one not story-important unpositioned track (called magnet) links a track and magnet is not explained begin;

let hint list be the connected links for secondary chain starting at position number of magnet among secondary chain;

let numbered hint list be numbered track list for hint list;

say "'Let's continue with what we know for that short segment. Let's see ... you've figured out a chain of tracks [numbered hint list], so put that in the Sequence.' [lb]" instead;

end if;

end if;

end if.

[Second, we want to put all the long segment tracks that we have linked into the Sequence and in the right order, but only after the conditions specified above are satisfied (that is, it is not appropriate to focus on the short chain).]

Check examining hints when one story-important track is explained and primary objective has not been sequenced (this is the place linked first chain tracks rule):

if every explained story-important track is positioned begin;

repeat with counter running from one to the number of entries in primary chain minus one begin;

let hint list be the connected links for primary chain starting at counter;

let numbered hint list be numbered track list for hint list;

if hint list is not {} and hint list is incorrectly shuffled, say "Part of that long chain is [numbered hint list], so put that string in order." instead;

end repeat;

otherwise;

if one story-important positioned not explained track (called magnet) links a track begin;

let hint list be the connected links for primary chain starting at position number of magnet among primary chain;

let numbered hint list be numbered track list for hint list;

say "'Let's take on what we know about the long segment. We know tracks [numbered hint list] belong like that, so go ahead and put them in the Sequence.' [lb]" instead;

end if;

end if.

To decide if (targets - a list of things) is incorrectly shuffled:

repeat with second counter running from one to the number of entries in targets minus one begin;

let first track be entry second counter in targets;

let second track be entry (second counter plus one) in targets;

if number-name of holder of first track is not the number-name of the holder of second track minus one, decide yes;

end repeat;

no.

[Now we make sure all the tracks in the Sequence pertain to the segment that we want to provide hints for.]

Check examining hints when one track is positioned and (primary objective has been sequenced and every not story-important track is unpositioned) or (secondary objective has been sequenced and every story-important track is unpositioned) (this is the ensure all tracks are for the hinted chain rule):

say "'You can take out [if exactly one track is positioned]track [number-name of a random positioned track][otherwise]all of those tracks[end if][first time], because they don't belong in the chain we want to work on[only].' [lb]" instead.

The ensure all tracks are for the hinted chain rule is listed after the place linked second chain tracks rule in the check examining rules.

The ensure all tracks are for the hinted chain rule is listed after the place linked first chain tracks rule in the check examining rules.

Check examining hints when two tracks are positioned:

if one story-important track is positioned and one not story-important track is positioned begin;

let target tracks be the list of positioned story-important tracks;

if (one not story-important track is positioned and secondary objective has been sequenced) or hinting for short chain is false, now target tracks is the list of positioned not story-important tracks;

now newly-hinted is target tracks;

let numbered target tracks be the numbered track list for target tracks;

sort numbered target tracks;

say "'[unless hinted tracks differ]Remember? [end unless]You can take out Track[if the number of entries in numbered target tracks is at least two]s[end if] [numbered target tracks][if hinted tracks differ or more than one track is positioned] and ... that's it[end if]. We know that [if number of entries in numbered target tracks is one]it doesn't[otherwise]they don't[end if] belong in the [if primary objective has been sequenced]short[otherwise]long[end if] chain.' [pb]'Okay, right,' Cochone says." instead;

end if.

[We want to sort out A- and B-sides when all the tracks of the long chain are in the Sequence.]

Check examining hints when hinting for short chain is false and every story-important track is positioned:

repeat with counter running from one to the number of entries in position list begin;

let selection be entry counter in position list;

let hint list be the connected links for position list starting at counter;

if hint list is {} begin;

if selection is A-side and the number-name of the holder of selection is greater than five begin;

prepare hinted list for selection;

say "'[unless hinted tracks differ]Like I said, t[otherwise]T[end unless]ry putting ['][appropriate name for selection]['] earlier, in the first half of the Sequence.' [lb]" instead;

end if;

if selection is B-side and the number-name of the holder of selection is less than six begin;

prepare hinted list for selection;

say "'[unless hinted tracks differ]Remember [otherwise]It seems [end unless]that ['][appropriate name for selection]['] probably happened later than where you put it.' [pb]'Could be.' Cochone grumbles." instead;

end if;

otherwise;

let numbered hint list be numbered track list for hint list;

let first track be entry one in hint list;

let final track be entry (number of entries in hint list) in hint list;

if first track is A-side and final track is A-side and the number-name of the holder of first track is greater than five, say "Tracks [numbered hint list] should be placed in the second half of the Sequence.' [lb]" instead;

if first track is B-side and final track is B-side and the number-name of the holder of first track is less than six, say "I think Tracks [numbered hint list] should be in the first half of the Sequence.' [lb]" instead;

if first track is A-side and final track is B-side and (the number-name of the holder of first track is greater than five or the number-name of holder of final track is less than six), say "Tracks [numbered hint list] should be moved to the middle-ish part of the Sequence.' [lb]" instead;

end if;

end repeat.

[We make sure there is at least one track in the Sequence.]

Check examining hints when every track is unpositioned:

say "'Let's put some tracks in there for the [if hinting for short chain is true]shorter[otherwise]longer[end if] chain. I like ['][if hinting for short chain is false][appropriate name for a random story-important A-side track][otherwise][appropriate name for a random not story-important A-side track][end if]['] early om in the sequence and ['][if hinting for short chain is true][appropriate name for a random B-side not story-important track][otherwise][appropriate name for a random story-important B-side track][end if]['] in the second half.' [lb]" instead.

[Lastly we fill the sequence with the appropriate tracks, either of the short or long chain, placing them on A- or B-sides.]

Last check examining hints when (hinting for short chain is true and one not story-important track (called target) is unpositioned) or (hinting for short chain is false and one story-important track (called target) is unpositioned):

prepare hinted list for target;

if hinting for short chain is true begin;

say "'[unless hinted tracks differ]I mentioned this: m[otherwise]M[end if]aybe try placing ['][appropriate name for target]['] close to the [if target is B-side]end of[otherwise]start of[end if] the short chain.' [pb]'Maybe.' [lb]" instead;

end if;

say "'[unless hinted tracks differ]I think I mentioned this, so m[otherwise]M[end unless]aybe we should put ['][appropriate name for target]['] in there in the [if target is A-side]first[otherwise]second[end if] half of the chain.' [pb]'Yeah, maybe,' Cochone says." instead.

Last check examining hints when hinting for short chain is true and every not story-important track is positioned:

if the short chain has interrupting placeholders, say "[one of]Well, I think they look good like that, but I haven't really studied them[or]You need to confirm what I think[stopping]. Try smushing them next to each other. It might be clearer that way.' [lb]" instead.

[So at this stage every relevant track should be in the sequence, and there shouldn't be tracks of the non-hinting chain in it.]

Carry out examining hints:

let hint list be primary chain;

let comparator be position list;

if hinting for short chain is true begin;

now hint list is secondary chain;

remove placeholder from comparator;

end if;

repeat with selection running through hint list begin;

if position number of selection among hint list is not position number of selection among comparator begin;

if selection is entry one in hint list begin;

say "I think it all started with ['][appropriate name for selection].[']' [lb]";

break;

otherwise;

let starter be entry (position number of selection among hint list minus one) in hint list;

let attacher train be the connected links for hint list starting at position number of selection among hint list;

let numbered train be the numbered track list for attacher train;

if the number of entries in attacher train is greater than two begin;

say "Probably tracks [entry one in numbered train] through [entry (number of entries in numbered train) in numbered train] happened right after ['][appropriate name for starter].[']' [lb]";

break;

otherwise;

say "Let's put [if attacher train is empty]['][appropriate name for selection]['][otherwise]tracks [numbered train][end if] right after Track [number-name of starter].' [lb]";

break;

end if;

end if;

end if;

end repeat.

Report examining hints:

say "'Right. Sounds good.'".

To prepare hinted list for (item - a thing):

now newly-hinted is {};

add item to newly-hinted.

To decide whether hinted tracks differ :

if newly-hinted is already-hinted, decide no;

yes.

[Examining the walkthrough reveals both chains and allows the player access to Nigel regardless of whether or not the player has sequenced or solved the individual chains.]

Check examining walkthrough:

unless hints are examined or walkthrough is examined begin;

say "'[one of]So you think you can put all these tracks together?[or]Maybe I should get your opinion,[stopping]' Cochone says. [pb]'[one of]I can give it a shot[or]Sure[stopping],' Jenny says. '[one of]Do you want me to tell you how I think they all link up[or]You okay with a woman helping you now[stopping]?'";

if the player consents begin;

say "'[one of]Anything to get out of here as soon as I can[or]Whatever works[stopping].' [pb]'Okay.' [rpo]";

otherwise;

say "Cochone sighs and rubs his eyes. '[one of]Maybe I'll see what I can do before calling in the pinch hitter[or]Maybe not[stopping].' [pb]'Okay.'" instead;

end if;

otherwise;

say "'[one of]I'd like your opinion on how each chain fits together[or]Remind me on how you did this[stopping],' Cochone says. [pb]'Sure,' Jenny says. [rpo]";

end unless.

Place primary chain is initially false.

Place secondary chain is initially false.

Place neither chain is initially false.

Carry out examining walkthrough:

now place primary chain is false;

now place secondary chain is false;

now place neither chain is false;

say "Jenny wheels over and begins reviewing the footage. [pb]Cochone sits back and rubs his eyes. [pb]";

if exactly one status is sequenced begin;

say "'I think you got the [if primary objective is sequenced]long chain[otherwise]short sequence[end if] right,' Jenny says. 'This is how I [one of]see[or]saw[stopping] the other one.' [pb]";

unless primary objective is sequenced begin;

recount primary chain;

otherwise;

recount secondary chain;

end unless;

otherwise;

say "'This is how I [one of]see[or]figured[stopping] the long sequence,' Jenny says[one of]. 'Have a look.'[or].[stopping] [pb]Cochone studies the screen: [pb]";

recount primary chain;

say "'Right,' Cochone says. 'Looks good. And the other?' [pb]Jenny removes the sequence and links another chain: [pb]";

recount secondary chain;

say rpo;

end if.

Report examining walkthrough:

say "'I can ";

if one status is sequenced begin;

say "leave the [if primary objective is sequenced]long[otherwise]short[end if] chain in there if you want, or I can switch it for the [if primary objective is sequenced]shorter[otherwise]longer[end if] one,' Jenny says. 'Do you want me to put the other chain in there?'";

if the player consents begin;

if primary objective is sequenced, now place secondary chain is true;

if secondary objective is sequenced, now place primary chain is true;

otherwise;

now place neither chain is true;

end if;

otherwise;

say "put our [if primary objective has been sequenced and secondary objective has not been sequenced]short[otherwise]long[end if] chain in there if you like, or I can leave the Sequence as you had it,' Jenny says. 'Do you want me to change it?'";

if the player consents begin;

if primary objective has been sequenced and secondary objective has not been sequenced begin;

now place secondary chain is true;

otherwise;

now place primary chain is true;

end if;

otherwise;

now place neither chain is true;

end if;

end if;

say lb;

unless place neither chain is true begin;

if place primary chain is true, now position list is primary chain;

if place secondary chain is true begin;

now position list is secondary chain;

fill six to the number of positions with blanks;

end if;

now every status is sequenced; [The Sequencing rule will turn the appropriate one off.]

say "'Go ahead and save it your way.' [pb]'Done.'";

otherwise;

say "'I still want to think about this, so leave it as I had it.' [pb]Jenny shrugs. 'Okay.'";

end unless;

say "[lb]'You're awesome, Jenny,' Cochone says as Jenny wheels away. I'll make sure Nigel knows about this.' [pb]'Thanks, but this is a team effort.' [pb]";

unless every track is examined begin;

now player is vigilant of footage;

if more than six tracks are unexamined begin;

say "'I haven't watched [unless every track is unexamined]m[end unless]any of the tracks, yet,' Cochone says.";

otherwise;

let target be the number of unexamined positioned tracks;

say "'I still have [if target is 1]a[otherwise]some[end if] track[unless target is 1]s[end unless] to watch,' Cochone says. He scans [if target is one]for the title[otherwise]the titles[end if] of the track[unless target is one]s[end unless] he hasn't watched:";

watch for the list of unexamined tracks;

end if;

say lb;

say "'Just play [if exactly one track is unexamined]it[otherwise]them[end if].' [pb]";

end unless;

say "'Right. Go team.' [pb]'Tell me about the sequences when you think you are finished, and I'll get Nigel. But if you're not sure and want to fiddle some more, you can see what I just did by typing [']opinion.['] That will list the two sequences the way I think they link up.'";

say "[lb][if primary objective is solved][i]There's a reason that squirrel survived exposure to the powder,[/i] Cochone thinks. [i]Nigel will need to know what that is, too.[/i][otherwise if secondary objective is solved][i]Nigel will need to know where that gold powder is being stored, too,[/i] Cochone thinks. [otherwise][i]The long chain should tell me where that gold powder is being stored,[/i] Cochone thinks. [i]That shorter one. Why did that injured squirrel with the bum leg survive exposure to the weapon? The Lieutenant should know about that, too.[/i][end if] [lb]";

now every status is solved.

The yes or no question internal rule response (A) is "Jenny screws up her face. 'I'm really just looking for a [']yes['] or [']no['] for now, Steve.'".

[Annoyingly, this won't use the mdash command prompt, and it uses the default greater than symbol. I'm sure some I6 hackery could change this.]

Check examining a track:

if summary is switched on and the short-description of the noun is "" begin;

if Continuous play is false begin;

say "You haven't provided a description for Track [number-name of noun].";

otherwise;

now noun is marked for manipulation;

end if;

stop the action;

end if;

say "[bold type]Track [number-name of noun] ";

say "[appropriate name for (noun)]";

say roman type;

unless summary is switched on, say lb;

if summary is switched on, say "[short-description of noun][lb]" instead.

[Using "not empty," as opposed to the default "", evaluates text substitutions accurately.]

Carry out examining (this is the new standard examining rule):

if the noun provides the property description begin;

if the description of the noun is not empty begin;

say "[the description of the noun][lb]";

otherwise;

unless the noun is a backdrop, say "Cochone is struggling to concentrate, so he decides to limit distraction.";

end if;

now examine text printed is true;

end if;

if the noun is a track begin;

repeat with target running through subjects begin;

if the noun reveals the target begin;

now target is identified;

now target is researchable;

end if;

end repeat;

end if;

if the noun provides the property examined, now the noun is examined.

The new standard examining rule is listed instead of the standard examining rule in the carry out examining rulebook. [We can't substitute a rule because the action uses a truth state that is designed specifically for the examining action.]

Last carry out examining a not story-important track when secondary objective is not solved and Investigation has ended:

say "Cochone doesn't have time to sort through the remaining five tracks, and he can't concentrate enough to make sense of them individually.";

rule succeeds.

Last carry out examining Backyard when Investigation has ended:

say "[i]That squirrel drank from the birdbath and survived exposure to the powder,[/i] Cochone thinks.".

Last carry out examining Time Lapse when Investigation has ended:

say "[i]Those leaves fell into the birdbat that the squirrels were drinking from,[/i] Cochone thinks.".

Last carry out examining Fight when Investigation has ended:

say "[i]Something tore up that glove,[/i] Cochone thinks. [i]Something sharp like a cobra ring.[/i] [lb]".

Last carry out examining Basement when church is not carried and prison is not carried and hospital is not carried and Investigation has ended:

say "[i]We only found traces of that gold powder in the basement,[/i] Cochone thinks. [i]So where are they keeping it?[/i] [lb]".

Last carry out examining Google when church is not carried and prison is not carried and hospital is not carried and Investigation has ended:

say "[i]They must be keeping that chemical agent in one of these places,[/i] Cochone thinks.".

Last carry out examining Locked-Door when Investigation has ended:

say "[i]That ring is probably a two-headed cobra,[/i] Cochone thinks.".

Last carry out examining a track when Investigation has ended:

say end seq.

The examine directions rule response (A) is "Cochone glances around and quickly returns to work.".

The examine containers rule does nothing.

Rule for supplying a missing second noun while inserting something into:

if the noun is a track, now the second noun is the Sequence;

otherwise say "You'll need to specify where you want to put it.".

The can't insert into what's not a container rule does nothing. The can't insert what's not held rule does nothing. The standard inserting rule does nothing. The standard report inserting rule does nothing.

The concise report inserting rule does nothing.

Check inserting an intractable thing into an intractable thing when the noun is the second noun:

say "[The noun] can't be placed inside itself." instead.

Check inserting an intractable thing into playlist:

say "You'll need to put individual tracks into [second noun]." instead.

Check inserting an intractable thing into the Footage:

say "You can't put a list of tracks into the list of all tracks." instead.

Check inserting footage into the Sequence:

say "Try adding a specific track into a slot." instead.

Check inserting playlist into something when the second noun is the Sequence or the second noun is a position:

if favorites list is {}, say "There are no tracks in your playlist to copy over." instead;

if the number of entries in favorites list is greater than ten, say "You can fit at most ten tracks in the Sequence." instead;

if the second noun is a full position, say "You can only fit your playlist into empty consecutive slots." instead;

repeat with selection running through favorites list begin;

if selection is listed in position list begin;

say "The Sequence can only contain one copy of a track.";

stop the action;

end if;

end repeat;

if second noun is sequence begin;

let candidates be the list of positions;

repeat with counter running from one to the number of positions begin;

if number of entries in favorites list slots are available starting at counter begin;

now entry counter in candidates is marked for manipulation;

break;

end if;

end repeat;

end if;

if second noun is a position begin;

if number of entries in favorites list slots are available starting at number-name of second noun, now second noun is marked for manipulation;

end if;

unless a position is marked for manipulation, say "There aren't enough consecutive empty slots to fit your playlist." instead.

Check inserting a not intractable thing into footage:

say "The unslotted tracks can't really contain anything." instead.

Check inserting a not intractable thing into the Sequence:

if the noun is a track begin;

if every position is full, say "Because the Sequence is full, you'll need to specify a slot, e.g., PUT [bracket]track number[close bracket] INTO [bracket]slot letter[close bracket]." instead;

let slots be the list of empty positions;

say "I'll put Track [number-name of noun] in the first empty slot, [entry one in slots]. [rpo]";

now the second noun is entry one in slots;

end if;

if the noun is a position, say "The Sequence already contains slots, and you can't rearrange them." instead.

Check inserting a not intractable thing into the playlist:

if the noun is a full position, now the noun is a random track which is in the noun;

if the noun is an empty position, say "I can add a track that is in the Sequence into your playlist, but the slot needs to contain a track, and slot [noun] doesn't have one." instead;

if the noun is a track and (the noun is listed in favorites list or the number of entries in favorites list is (number of tracks)), say "Sorry, but your playlist can only contain one copy of a track." instead.

Check inserting an intractable thing into a not intractable thing:

unless the noun is playlist and second noun is a position, say "The individual [if the second noun is a track]tracks[otherwise]slots[end if] can't contain a list of tracks." instead.

Check inserting a track into a not intractable thing:

if the second noun is a track, say "Tracks can't hold other tracks. Try inserting a track into a slot, lettered A through J, instead." instead;

if the noun is positioned and the second noun contains the noun, say "Slot [second noun] already contains Track [number-name of noun]." instead.

Check inserting a position into a not intractable thing:

if the second noun is a track, say "You can't put a slot or the track within it into another track; try putting it into another slot." instead;

if the noun is the second noun, say "Slots and their contents can't be placed inside themselves." instead;

if the noun is empty, say "Slot [noun] is empty." instead;

now the noun is a random track which is in the noun.

Last check inserting a positioned track into a position:

add placeholder at entry number-name of holder of noun in position list;

remove noun from position list.

Carry out inserting a track into playlist:

add noun to favorites list.

Carry out inserting playlist into something:

let starter be number-name of a random marked for manipulation position;

repeat with counter running from starter to (starter plus the number of entries in temporary favorites list minus one) begin;

now entry counter in position list is entry one in favorites list;

remove entry one from favorites list;

end repeat.

Carry out inserting an unpositioned track into an empty position:

now entry (number-name of second noun) in position list is noun;

rule succeeds.

Carry out inserting a track into a position:

remove noun from newly-hinted, if present;

now removal point is the nearest empty slot for the position list starting at slot number-name of second noun;

if removal point is zero or removal point is greater than the number-name of the second noun begin;

add noun at entry number-name of second noun in position list;

unless removal point is zero, remove entry (removal point plus one) from position list;

otherwise;

reverse position list;

add noun at entry positions-plus minus number-name of second noun in position list;

reverse position list;

remove entry (removal point minus one) from position list;

end if.

Report inserting a track into playlist:

say "Track [number-name of noun] has been added to [second noun].";

if exactly one status is solved, say "[one of][lb][end seq] [lb]'I see you put a track in your playlist,' Jenny says. 'Remember that you'll also need to put the other [if primary objective is solved]five[otherwise]ten[end if] tracks in the slots to make their own sequence, without the others. Your playlist is really just a temporary holding space. You could keep the [if primary objective is solved]long[otherwise]short[end if] chain in there as you work on the other one, or you could put several tracks in your playlist then add your playlist to the sequence.' [pb][seq][rpo][or][stopping]".

Report inserting playlist into something:

say "The Sequence now contains the tracks from your playlist[if the second noun is a position], starting at slot [second noun][end if].".

Report inserting a track into a position:

if second noun is empty begin;

say "Track [number-name of noun] has been inserted into slot [second noun], filling it.";

otherwise;

say "Track [number-name of noun] is now in Slot [second noun]. ";

if ten positions were full and workstation contains the noun begin;

say "The Sequence was full, so the last track was removed from slot [the last slot of the sequence].";

otherwise;

say "The sequence has shifted [if removal point is less than number-name of second noun]left[otherwise]right[end if] of slot [second noun][if entry (number of entries in temporary position list) in temporary position list is not listed in position list], knocking out the last track[otherwise if noun is unpositioned or (one position is empty and the noun is positioned)], filling in the nearest empty slot[end if].";

end if;

end if.

Check listening to the player:

try waiting instead.

The report listening rule response (A) is "[The noun] [don't] make any sound.".

The room description paragraphs about objects rule does nothing. [This also prevents the rules listed after it from triggering. Thus, we won't have any paragraphs about things after the room description.]

The room description heading rule does nothing.

This is the new room description body text rule:

print the location's description.

The new room description body text rule substitutes for the room description body text rule.

Check switching on a switched on thing:

say "The short descriptions of tracks should already be active." instead.

Check switching off a switched off thing:

say "You should already be able to play the original tracks." instead.

Book Turn Sequence Rules

Chapter - Every Turn

Cochone can be aware of connecting the tracks.

First every turn when five not story-important examined tracks are positioned and the player is not aware of connecting the tracks and the short chain has interrupting placeholders:

say "[i]I guess I should complete the links for the short chain by placing them next to each other to be sure,[/i] Cochone thinks.";

now the player is aware of connecting the tracks;

now interjection needed is true.

[This rule determines whether or not either the short segment or long segment is in the proper order in the Sequence. If one is, then the secondary objective or primary objective, respectively, is considered "sequenced." Note that this isn't enough to proceed; players must also watch all the tracks and, when they do, then the objectives are finally "solved." Examining the walkthrough bypasses these steps because we assume the player just wants to skip to the end if he or she examines the solutions.]

First every turn (this is the sequencing rule):

let potential links be a list of things;

let targets be position list;

remove placeholder from targets, if present;

if the number of entries in targets is less than two begin;

now primary objective is not sequenced;

now secondary objective is not sequenced;

otherwise;

let short chained list be a list of things;

repeat with counter running from one to number of entries in targets minus one begin;

let target be entry counter in targets;

let second target be entry (counter plus one) in targets;

if (target is story-important and second target is story-important) or (target is not story-important and second target is not story-important) begin;

if target is properly positioned beside second target begin;

if target is not story-important, add target to short chained list;

unless target is unexamined or second target is unexamined or target links second target begin;

if less than three not story-important tracks are examined or less than three story-important tracks are examined begin;

add target to potential links;

add second target to potential links;

break;

end if;

follow the linker rules for second target;

if the outcome of the rulebook is the link established outcome begin;

now target links second target;

carry out the recalling the link activity with second target;

end if;

end unless;

end if;

end if;

end repeat;

now connections made is one;

if ten tracks are positioned and one positioned track is unexamined and player is not vigilant of footage begin;

now every positioned unexamined track is marked for listing;

say "[i]I'll need to play all of the tracks to be sure of how they fit together, [/i]Cochone thinks. [italic type]I haven't done that. I'll need to play";

unless every positioned track is unexamined begin;

if more than five positioned tracks are unexamined begin;

say " most of these.[roman type] [lb]";

otherwise;

watch for the list of marked for listing tracks;

end if;

now every thing is not marked for listing;

end unless;

say roman type;

now player is vigilant of footage;

end if;

if (less than three not story-important tracks are examined or less than three story-important tracks are examined) and potential links is not {} begin;

say "[first time][i]Tracks [number-name of entry one in potential links] and [number-name of entry two in potential links] could go together, but I won't be able to make any conclusions until I figure out the two themes by watching more tracks,[/i] Cochone thinks.[only]";

otherwise;

if primary chain is position list begin;

if primary objective has not been solved and every positioned track is examined begin;

say "'I think I have it then, Jenny,' Cochone says. 'The long chain.' [pb]'Good. I knew we would. With the help of [i]Sequitur,[/i] of course[if secondary objective is not solved]. You might want to remove those ten and fit those other five tracks into their own chain. They might help, too[end if]. Just tell me about the sequence when you're ready.' [pb][i]When I'm ready,[/i] Cochone thinks. He considers the ten tracks. [i]We didn't find much of that gold powder in the basement. Maybe these tracks tell me where the thugs are storing it.[/i] [lb]";

now primary objective is solved;

end if;

now primary objective is sequenced;

otherwise;

now primary objective is not sequenced;

end if;

if the number of entries in short chained list is (the number of not story-important tracks minus one) and four not story-important tracks are explained begin;

if secondary objective has not been solved begin;

say "'[if a story-important track is positioned]Tracks [entry one in short chained list] through [entry (number of entries in short chained list) in short chained list][otherwise]That[end if] makes the shorter sequence, [if primary objective is solved]too, [end if]Jenny.' [pb]'[if primary objective is solved]Great! Both of them. I knew we could do it. I'll get Nigel after you tell me about the sequences.' [pb][i]But first,[/i] Cochone thinks, [i]I need to know why that injured squirrel with the bum leg didn't get sick. Nigel will probably want to know.[/i] [lb][otherwise]I'm sure we can figure out those other ten tracks, too. Take out the five and order up those other ten in the Sequence.' [pb]Cochone sighs. [i]These five are telling me something, though,[/i] he thinks. [i]The injured squirrel with the bum leg. Why wasn't it sick?[/i] [lb][end if]";

now secondary objective is solved;

end if;

now secondary objective is sequenced;

otherwise;

now secondary objective is not sequenced;

end if;

end if;

end if.

First every turn when already speaking is true and (typing a new name is false and typing a summary is false and writing some notes is false):

say end seq;

if (Xeno is identified and Xeno was not identified) or (Xeno is pseudonymized and Xeno was not pseudonymized), say "[one of][lb]Cochone sighs. [if Escape is examined and Escape was unexamined and Xeno is pseudonymized][i]The pretty blond in the hospital must be the girl recording the '[appropriate name for Escape]' video,[/i] he thinks. [i]I hope you make it, Foxy.[/i] [lb][otherwise][i][Xeno] is the pretty blond we found,[/i] he thinks. [lb][end if] [lb]Jenny's playlist switches songs. [lb][or][rpo][stopping]".

[We mention this here because "track mode" can't be named before making a track a kind of thing.]

A reminder is a kind of device which is privately-named. Sequence mode, Track mode, Full mode, Ignore mode, and mode are reminders.

All reminders are in the Workstation.

Understand "Sequence mode" as sequence mode. Understand "Track mode" as track mode. Understand "Full mode" and "full" as full mode. Understand "Ignore mode" and "ignore" as ignore mode. Understand "mode" as mode.

Mode reminder is initially zero. Temporary mode reminder is initially zero.

To say mode offerings:

say "[one of]By default, [fiction title] shows the Sequence or playlist every time it changes[or]SEQUENCE MODE shows the Sequence or playlist when it changes[stopping]. TRACK MODE will show the list of unslotted tracks after you type a command, and FULL MODE will show both the Sequence and track list after a command. IGNORE MODE turns off these options, and nothing is displayed.";

increment mode reminder.

Stripping tag info is initially false.

First every turn (this is the showing list changes rule):

unless ignore mode is switched on begin;

if full mode is switched on, try examining sequence;

unless track mode is switched on or full mode is switched on begin;

unless (walkthrough was unexamined and walkthrough is examined) or every track is unpositioned, compare the position list with the temporary position list for the Sequence;

unless ((favorites list is {} and temporary favorites list is {}) or (favorites list is {}) and the number of entries in favorites list is the number of entries in temporary favorites list), compare the favorites list with the temporary favorites list for the playlist;

end unless;

if (full mode is switched on or track mode is switched on) and player is not distracted begin;

now stripping tag info is true;

say "[track listing] [lb]";

now stripping tag info is false;

if mode reminder is less than six and (mode reminder is temporary mode reminder), say mode offerings;

end if;

end unless.

To compare the/-- (lister - a list of things) with the/-- (second lister - a list of things) for the/-- (target - a thing):

if lister is not second lister begin;

try examining target;

if mode reminder is less than six and (mode reminder is temporary mode reminder), say mode offerings;

end if.

First every turn:

unless the player has been in the Office for one turn, follow the put tracks in positions rule;

if Office contains player begin;

decrement final countdown;

if already speaking is true, say end seq;

if final countdown is four, say "Cochone's head bobs forward, but Nigel catches the detective before he teeters over. 'Jenny, call an ambulance,' Nigel says. [pb]'I'm all right,' Cochone says. [pb]'No, Steve, I'm afraid you're not,' Nigel says. 'Is there anything more you can tell me?'";

if final countdown is zero, follow the roll the presses rule;

rule succeeds;

end if;

if the location contains a candidate song, rule succeeds.

[Stating that "rule succeeds" shuts down the whole rulebook, which we want because the rules are irrelevant in the Office or at the beginning of the game.]

First every turn when three story-important tracks are examined and three not story-important tracks are examined and the player is not aware of different chains and two statuses are not solved (this is the make the player aware of themes rule):

now player is aware of different chains;

let tracker be the numbered track list for the list of not story-important examined tracks;

[We need to do this because the list of examined not story-important tracks will create a list in the order they are listed in the source text, and that would give away how they should be arranged.]

sort tracker;

say "[end seq] [lb][italic type]There seems to be a similar theme running through tracks [tracker],'[roman type] Cochone thinks. [i]Certainly they're different than the others I've seen. The two sets of tracks probably belong to the different themes Jenny was talking about.[/i] [pb]Two detectives look into Jenny's office and smile. One of them says, 'Hey Cochone, what you doin['] here today? Lose a bet?' His partner chuckles, and they walk away.".

Every turn when song cue is less than turn count:

now current music is a random music genre;

now song cue is turn count plus (a random number between three and seven).

Every turn when player is scoreboard watching (this is the scoreboard rule):

if turn count is less than 150 begin;

repeat with chosen running through away hockey teams begin;

let target be a random team which plays chosen;

unless netted of chosen is greater than six or netted of target is greater than six begin;

if a random chance of 1 in 15 succeeds and netted of chosen is not greater than 6, increase the netted of chosen by 1;

if a random chance of 1 in 30 succeeds and netted of target is not greater than 6, increase the netted of target by 1;

end unless;

end repeat;

repeat with chosen running through away basketball teams begin;

if a random chance of 1 in 6 succeeds and (the netted of chosen is less than 130 or the netted of a random team which plays chosen is less than 120) begin;

increase the netted of chosen by (a random number between 5 and 10);

increase the netted of a random team which plays chosen by (a random number between 3 and 10);

end if;

end repeat;

if ((bites remaining was bites remaining) or Cochone is satiated) and ticker tracker is less than turn count begin;

if scoreboarding is false begin;

now interjection needed is true;

say "Cochone needs to scratch an itch by typing: [pb]";

try scoring;

now ticker tracker is turn count plus (a random number between 6 and 10);

end if;

end if;

end if.

Every turn when scoreboarding is true for three turns, now scoreboarding is false. [This will ensure that we don't check the scoreboard and then check it again in the every turn rule.]

Every turn when player is awaiting information and the player was awaiting information:

now the being-researched is researched;

if the being-researched is a subject, now being-researched is identified;

now Cochone is not awaiting information;

say "'Here you go,' Jenny says. [pb]Jenny's summary of [being-researched] appears on the screen: [description of being-researched] [lb]".

Every turn when player is having hot dogs:

if a random chance of 1 in 5 succeeds, try eating the frankfurters.

Every turn when temporary playlist is not {}, now temporary playlist is {}.

Every turn when something is marked for manipulation, now every thing is not marked for manipulation.

Every turn:

now substitution slot is placeholder;

now substitution track is zero;

now inserting group right is false;

now inserting group left is false;

now removal point is zero;

now slot-skip is one;

now Continuous play is false;

now temporary mode reminder is mode reminder.

Chapter - Timed Events

The custom timed events rule substitutes for the timed events rule when interjection needed is true and Investigation is happening.

The custom timed events rule translates into I6 as "CUSTOM_TIMED_EVENTS_R".

[This allows us to execute code when a timed event is about to fire. In this case, we add the interjections. Thanks to Andrew Plotkin (Zarf on the Interactive Fiction Forum) for this code.]

Include (-[ CUSTOM_TIMED_EVENTS_R i event_timer fire rule; for (i=1: i<=(TimedEventsTable-->0): i++) if ((rule=TimedEventsTable-->i) ~= 0) { event_timer = TimedEventTimesTable-->i; fire = false; if (event_timer<0) {(TimedEventTimesTable-->i)++;if (TimedEventTimesTable-->i == 0) fire = true; } else { if ((the_time >= event_timer) && (the_time < event_timer+30)) fire = true; } if (fire) { TimedEventsTable-->i = 0; FollowRulebook( (+ timed events preamble rule +) ); FollowRulebook(rule); } } rfalse;];-).

This is the timed events preamble rule:

unless the time of day is 11:43 am or the time of day is 11:55 am, say interjection.

The timed events rule does nothing when Office contains the player. [This prevents any of the timed events from triggering when the game is over.]

At the time when Jenny inquires about the case:

unless Jennifer is explaining the manual begin;

say "'So, can you tell me a little bit about the case you're working on?' Jenny says. 'It's that house in the bayou?' [pb]'Right.' Cochone sighs. 'At about 7:00 Thursday night a guy, Mr. Mayer, was walking his weiner dog on the outskirts of the Belle Bayou.' [pb]'Was his name Oscar? The dog. It was a dachshund, right?' [pb]'Right. He finds a young woman. Twentysomething. She is barely conscious. She points into the trees. Passes out. Mayer sees some smoke. He calls emergency. They search the area. Turns out there's a house there with a fire in the basement and two burned bodies. Two more people are found dead. Shot. All young, your age. There is also a lot of recording equipment, and some cell phones. We spend all day in and around the house gathering it all up for your little pet project. And today I'm hoping it will talk because right now the girl is in a coma, and we don't even know who any of them are.' [pb]Jenny's smile finally fades. 'Well, I'm sure we'll figure it out.' [pb]'It doesn't look good for the girl. Five-to-one says she won't make it.' [pb]Jenny's eyes widen. 'I, I don't like taking chances.' She frowns. 'Especially when it involves someone's life.' [pb]Cochone shrugs. 'She lives or dies either way.' [pb]Arms crossed, Jenny glances at the computer. 'Maybe you should get back to work. Ask me for help when you need it.' She emphasizes the 'when.'";

otherwise;

now Jennifer is not explaining the manual;

Jenny inquires about the case in one minute from now;

end unless.

At 11:37 am:

unless Jennifer has been explaining the manual or one status has been sequenced, try discussing help with Jennifer.

At 11:43 am:

say "Lieutenant Jayne appears in the doorway. He glances down at the stain on Cochone's crotch. 'Everything okay in here?' [pb]Jenny's lips curl up. She whispers, 'He's had a little accident.' [pb]'What?' Cochone says, turning away from the computer screen. [pb]'He's doing great so far,' Jenny continues, grinning. [pb]'Thanks, teach,' Cochone says. [pb]'Come on, Steve, we all know how you are with electronics. I've seen you still using a Walkman. Which is why you're here on this beautiful Saturday morning. The Belle bayou case is perfect to test out the new software. If you can learn it ...' [pb]'Anybody can,' Cochone says. 'Right. And Lady Gaga here [if hints is examined or two statuses have been sequenced]has been a great help.'[otherwise]is gonna help me?'[end if] [lb]'Miss Lincks helped develop the program,' Nigel says. 'She can teach computer tech to chimps.' [pb]'Chimps are pretty smart,' Cochone says. [pb]'Yeah, but I don't think we'll need a million of you with a million computers to write Shakespeare,' Jenny says. 'Or figure this out.' [pb]'Shakespeare?' Cochone says. [pb]'Geeze,' Jenny says. 'Is it too late to get a monkey in here?' [pb]'I have faith in you, Jenny,' Nigel says. 'I'm going to get some lunch. You two want anything?' [pb]Jenny shakes her head. 'No thank you.' [pb]Nigel turns to Cochone. 'You want two dogs?' [pb]Cochone is undeniably hungry, and two hot dogs topped with relish and mustard would take care of that, but he thinks his stomach might reject them as part of his general malaise.";

now Nigel is waiting for lunch request;

now Cochone is queried.

At 11:50 am:

say "'Bum-bum-bum,' Jenny sings. 'Here you go, Cochone, isn't this appropriate?' [pb]Cochone is momentarily confused, then he hears Peter Townsend ask 'Who are you?' 'I thought you didn't know [i]The Who.'[/i] [pb]'Sure I do. They're the guys who wrote the themes for the [i]CSI[/i] shows, right?' [pb]'They were around way before then.' [pb]Jenny laughs. 'I know that. Obviously nobody does music quite like that anymore.'";

now Cochone is listening to the Who.

At 11:55 am:

now Cochone is not listening to the Who.

At 11:55 am:

if Cochone is waiting for lunch begin;

now Cochone is having hot dogs;

say "Someone knocks at the office door. Nigel appears at Cochone's shoulder. 'Well, I don't see any smoke pouring from the motherboard,' Nigel says. ";

if help is examined or hints are examined begin;

say "[pb]'Right,' Cochone says. 'Marie Curie here must be rubbing off on me.' [pb]'Indeed,' Nigel says, 'I didn't even think you knew who Curie was.' [pb]'Sure I do. She invented that Indian spice.' [pb]Nigel places a box and a can of cola on the desk. 'Keep rubbing, Jenny,' Nigel says. 'Maybe something will stick eventually. Good luck.' He nods, smiles, and leaves. [pb]";

Jenny explains Curie in two minutes from now;

sports ticker is requested in six minutes from now;

otherwise;

say "'Here's your lunch.' He places a box and cola on the desk. [pb]'Right,' Cochone says. 'Thanks.' [pb]'Well, I'll leave you two to it,' Nigel says. 'Good luck. To both of you.' He slaps the chair and leaves. [pb]";

sports ticker is requested in four minutes from now;

end if;

say "Cochone regards the hot dogs smothered with mustard, relish, and pickles. He turns around. 'You want a bite?' [pb]Jenny reaches into a small bag that hangs from her chair. 'No thank you. I'm fine.' She places a bagel and a bottle of water on her desk. [pb]'That's healthy,' Cochone says. '";

otherwise;

say "'You want a bite of my bagel?' Jenny says. 'I'm sure your stomach could handle it much better than that offal Nigel proposed.' [pb]Cochone turns around. Jenny holds a bagel with cream cheese, and a bottle of water is sitting on the desk behind her. 'I'll pass,' Cochone says. 'I'll maybe get something later. That may be a bit too ... healthy for me. ";

sports ticker is requested in six turns from now;

end if;

say "Are you one of those people who won't eat anything that farts?'[if Cochone is having hot dogs] Cochone bites off the tail of one of the hot dogs.[end if] [lb]'Actually I am.' [pb]'Right. Well, [if Cochone is having hot dogs]I don't want to know what's in this, okay?' [pb]'You don't want to know my sister found a vein in one?' [pb]'Yeah. Some girls don't like wieners with big veins. There's so much stuff on these that I can't even tell if I'm eatin['] the cow's tits.' [pb]'Cows don't have [']tits.[']' [pb]'You haven't seen my ex's mother.' [pb]'Pig.' [pb]'Hey, I'm a Cochone. There's an [']e['] at the end.' Cochone takes another bite of the hot dog, mustard dripping onto his hand. 'Mmmm. That's good booby.' [otherwise]I'm not sure that meat is worse than the rest of the crap we eat and breathe.' [pb]'It's not just that. You ever see a slaughterhouse? Its disgusting. So much blood and guts. Those poor animals kept under atrocious conditions; their only reason to live is to be tortured and slaughtered so we can satisfy some primal urge to eat meat. It's so unnecessary.' [pb]Cochone shrugs. 'Killing is bloody. Removing organs is bloody. It's part of the job. Besides, the animals are dead by that time. This Neanderthal likes his red meat, and he's glad he doesn't have to chase after it.' [end if][pb]Jenny giggles and shakes her head.";

now Jennifer is having lunch;

now Workstation contains bagel.

At the time when Jenny explains Curie:

say "'Marie Curie was a Polish chemist, you know,' Jenny says. 'She discovered radium and polonium. There's an element named after her and her husband. Curium.' [pb]'Right. I can read Wikipedia, too.' [pb]'I didn't need to look that up.' [pb]'Did you also know that Pierre was mowed down in the street and died? Marie shacked up with one of his students who she was bangin[']?' [pb]Jenny doesn't respond. Cochone turns to see her tapping at her keyboard.";

Jenny confirms Cochone's trivia in two minutes from now.

At the time when Jenny confirms Cochone's trivia:

say "'Huh,' Jenny says. 'You're right. About Marie. Although I wouldn't have quite put it like that.' [pb]Cochone smiles. [i]I may not use 'Wikipedia,' but I do watch The History Channel.[/i][lb]".

At the time when sports ticker is requested:

say "Cochone leans back and glances at the time in the corner of the screen. 'Does this thing come with a sports ticker?' [pb]'What kind of sports?' Jenny says. [pb]'NHL, hockey. NBA.' [pb]'I'll see what I can do.'";

ticker starts in five minutes from now.

At the time when ticker starts:

now player is scoreboard watching;

say "'Okay, Hockey Puck,' Jenny says . 'Or should that be Basket Balls?' She laughs. 'If you want to check the sports scores, just type [']scores.[']' [pb]'Right, Cochone says. 'You're amazing.'".

At 12:17 pm:

say "'You're toing just fine,' Jenny says. [pb]Cochone turns to face her. [i]Does she ever stop smiling?[/i] he wonders. 'This program is great. It seems to be running itself.' [pb]'Good. That's how I designed it. I knew you'd be getting in tune soon enough.'".

At 12:22 pm:

say "Cochone regards Happy Jack next to the monitor. [i]Keeping silent now?[/i] he thinks, [i]not much to celebrate today, is there, Jack.[/i] [lb]".

At the time when Jenny discovers ironside:

say "Cochone hears some muttering from behind him. 'What's that?' he says. [pb]'A television show,' Jenny says. 'With Raymond Burr. [i]Ironside.[/i]'".

Chapter - Testing

test countdown with "n / walkthrough / y / y / tell jenny about sequences".

test filler with "n / put one in A / put two in B / put eleven in E / put 15 in F / put six in I / put 8 in J".

test primary-solution with "n / put kitchen in A / put diary in B / put chrysanthemum in C / put locked door in D /put google in E / put basement in F / put Motorboat in G / put fight in H / put escape in I / put torching in J".

test secondary-solution with "n / put backyard in A / put dead Animals in B / put time lapse in C / put sound test in D / put squirrel trap in E".

test whole-story with "test primary-solution / talk to jenny / g / no / no / test watch-primary / excise all / test secondary-solution / test watch-secondary / tell Jenny about sequences".

Test watch-primary with "x kitchen / x diary / x chrysanthemum / x locked door / x google / x basement / x Motorboat / x fight / x escape / x torching".

test watch-secondary with "x backyard / x time lapse / x dead Animals / x sound test / x squirrel trap".

test group with "put one in a / put two in b / put three in c / put four in d / put one through three into e / put one to two in a".