Alter Ego Vignette Script format

Compression
The file dcomp.txt is a list of word and phrase fragments, one on each line, which correspond to character code positions starting at 128 (hex 0x80), just past the ASCII character range. When you go past code 255 (0xFF), it should wrap around to code 0. An empty line means that this character should not be substituted and should be left as it is.

Format
Each line in the file is normally displayed as a block of text. The maximum length for a line is 240 characters. For a longer block of text, the line is split in two and put the caret character on the end of the first line:

This text is ^ split over two lines.

There are various symbols that have special meaning when they are the first/only character on a line.

Clear the screen of text: , Show a warning about adult content (with the option to back out): * Check the age (in years) of the Alter Ego is within a range, and if not show a message that you are too young/old and exit (in this case, the Ego must be no younger than 14 years old and no older than 15): )14,15 End of vignette: / You are dead, game over: . Set a temporary screen title: >TEMPORARY TITLE Clear temporary screen title: >> Modify variables (in this case: increase INtelligence by 5 points, decrease SoCial skills by 3 points, and set MoNey to zero dollars): ;IN+5,SC-3,MN=0 Create a position label here with the given name: :LABEL Jump to a position label: &LABEL Conditional jump (in this case: if INtelligence is less than fifty points, jump to position label "COND.T", otherwise jump to "COND.F"): =COND,IN<50 :COND.T Your intelligence is less than fifty points. / :COND.F Your intelligence is at least fifty points. / You can also include the first part of a piece of text before the condition, like this: Your intelligence is =COND,IN<50 :COND.T less than fifty points. / :COND.F at least fifty points. / Jump to a random position label: ?A3 :A1 You flip a coin and get heads. / :A2 You flip a coin and get tails. / :A3 You flip a coin but the dog swallows it. / There are several kinds of menus. in each case the options that the player can choose from are terminated with an empty line

Choose how to feel (choosing feeling #1 jumps to position label "X1", feeling #2 to "X2", etc.): #X vague sense of dread curious optimism :X1 You stare with intense melancholy into the middle distance. / :X2 Yes! Everything's going to be great. /

Choose how to act (choosing action #1 jumps to position label "Y1", action #2 to "Y2", etc.): !Y make a sandwich eat nothing :Y1 The sandwich is delicious. / :Y2 Your stomach rumbles. /

Choose both how to feel & act (choosing feeling #1 & action #1 jumps to position label "Z11", feeling #1 & action #2 "Z12" etc. If a particular combination does not have a corresponding position label, tell the player this combination is inappropriate and ask again): %Z happy sad frown smile :Z12 You smile happily. / :Z21 You frown sadly. /