//	JACL source comments for the Annotated Adventure

var c00 = 'COMMENT TO BE SUPPLIED.';
var c01 = 'If executed directly from a Unix shell, the #! construct tells the shell which interpreter to use to run this script. As this line is treated as a comment by the interpreter, it has no effect on the game itself.';
var c02 = 'All text from an unquoted hash symbol to the end of the line is a comment.';
var c03 = 'A unique identifier for the game that is prefixed to the player\'s user ID when playing over the web. This keyword is ignored by the TACL interpreter.';
var c04 = 'Defines an integer value that can\'t be modified during the game.';
var c05 = 'The value of this constant is generally displayed in response to an <b>about</b> command.';
var c06 = 'This function is called by the interpreter every time the game is started or restarted. Functions with a name starting with a plus sign are global.';
var c07 = 'Clears the screen when played using TACL, ignored by JACL.';
var c08 = 'Causes the enclosed text to the centred horizontally on the screen. If played using JACL, this is done by enclosing the text in &lt;center&gt; tags; if using TACL, the appropriate number of leading spaces are inserted.';
var c09 = 'When playing a game using TACL, all HTML tags are ignored.';
var c10 = 'When printed, a circumflex outputs a newline character.';
var c11 = 'Displays the description of the current location along with any objects present.';
var c12 = 'Defines a new location. A <b>location</b> keyword must be followed by a label for the location and then a list of names the player can refer to the location by.';
var c13 = 'The label for this location.';
var c14 = 'The name the player uses when referring to this location.';
var c15 = 'Defines an article and short description for the location.';
var c16 = 'For locations, it is more natural sounding to use an article of <b>the</b> rather than <b>a</b> or <b>an</b>.';
var c17 = 'This description will be used when the location is referred to in a list or sentence. Any single parameter containing spaces, such as this, must be enclosed in double quotes.';
var c18 = 'This property indicates which location the player will arrive at if they travel north.';
var c19 = 'The north exit is set to loop back on itself purely to trick the <b>+exits</b> function into displaying the exit as a link when playing over the web.';
var c20 = 'As this function\'s name does not begin with a plus sign, it is associated with the first object or location above it in the source. This function is called whenever the location\'s description is to be displayed.';
var c21 = 'Whenever a player moves out of a location, its associated <b>movement</b> function is called. After it has finished executing, the global function <b>+movement</b> is also called.';
var c22 = 'Before the <b>movement</b> functions are called, this variable is set to equal the location the player is attempting to move into.';
var c23 = 'If a <b>break</b> command is executed from a <b>movement</b> function, the player will not be moved to their destination.';
var c24 = 'If a <b>break false</b> command is execute, the player will be moved to their destination.';
var c25 = 'Object definitions are of the same syntax as location definitions. Unlike the above location definition, however, many names are given to the hook.';
var c26 = 'A <b>has</b> property specifies which attributes the object should have when the game begins.';
var c27 = 'An object with this attribute can have other objects placed on top of it until its capacity property is zero. Each time an object is placed on another object, its capacity is reduced by the <b>mass</b> of the object being placed.';
var c28 = 'This indicates the bulk and weight of an object.';
var c29 = 'As this object has a mass of five, it can only be placed in other objects that have a <b>capacity</b> of five or greater. The default <b>mass</b> for an object is <b>scenery</b>, which indicates that the object can\'t be taken and should not have its <b>long</b> description displayed when present.';
var c30 = 'This indicates that the hook can hold up to 25 mass units worth of other objects.';
var c31 = 'If the expression following an <b>if</b>statement is true, execution continutes from the following line. If it is false, executing continues from the matching <b>else</b> or <b>endif</b> command.';
var c32 = 'This expression is true if the cloak is currently on the hook. An object\'s parent is whichever object or location it is currently in, on or held by.';
var c33 = 'This attribute indicates that the location is not lit.';
var c34 = 'When used as part of an <b>if</b> statement, <b>has</b> tests if the specified item currently has the specified attribute.';
var c35 = 'This attribute is dynamically given to the current location if it has the attribute <b>DARK</b> and there is no object with the attribute <b>LUMINOUS</b> present.';
var c36 = 'Each object has thirteen integer properties that can be set. They can be referred to by their index number or, as in this case, by defining a constant that represents the number. This method allows the constant to be given a meaningful name.';
var c37 = 'Functions can be given as many names as required. This is the method of mapping many actions to the same response.';
var c38 = 'This command will increase the variable <B>SCORE</b> by the specified number of points. If the <b>notify</b> directive is set in the configuration file, a message will be displayed informing the player of this increase.';
var c39 = 'The <b>execute</b> command can be used to call both global and associated functions.';
var c40 = 'This function is called automatically after each successful move made by the player. Attempting to take an object that is not present, for example, does not count as a successful command.';
var c41 = 'This command sets the <b>parent</b> property of the first object to equal the second object. It also adjusts the <b>capacity</b> properties of parent objects involved.';
var c42 = 'This is the object that represents the player.';
var c43 = 'Objects with this attribute can be talked to, asked things, shown things etc...';
var c44 = 'The article <b>name</b> indicates that the object has a blank article. This is usually used when the object\'s short description is a proper noun.';
var c45 = 'This property indicates where this object should begin the game.';
var c46 = 'This property indicates that the variable <b>player</b> should be set to point to this object. In other words, this will be the object to represent the player when the game begins.';
var c47 = 'The <b>_override</b> part of this function name indicates that it is only to replace the final outcome of the library\'s examine function, not the entire function. This means that all tests, such as whether there is enough light to see, will still be performed.';
var c48 = 'This property sets the description to be displayed when this object is present.';
var c49 = 'This command allows moves to be issued as though they had been typed by the player.';
var c50 = 'This command is used to change the attributes that an object currently has.';
var c51 = 'An <b>ensure</b> command can be used to make sure an object either <b>has</b> or <b>hasnt</b> a particular attribute.';
var c52 = 'Defines a new command that the player can use during the game.';
var c53 = 'Indicates that an object that is currently being held goes at this point in the command.';
var c54 = 'Indicates that an object that is currently being held or is in the current location goes at this point in the command.';
var c55 = 'This is the function to call if the player types a command of this syntax.';
var c56 = 'The constant <b>interpreter</b> is either set to JACL or TACL, depending on which interpreter is currently being used to play the game. This constant can be tested to execute interpreter-specific code.';
var c57 = 'This command will cause the TACL interpreter to present a <b>Quit, Restart, Restore or Undo</b> prompt. The JACL interpreter will ignore this command and continue execution from the next line.';
var c58 = 'This command will set the variable <b>noun3</b> to the first object defined in the game file.';
var c59 = 'The location <b>limbo</b> is defined in the library file.';
var c60 = 'This command will cause the value of <b>noun3</b> to be incremented to the next object defined in the game file and execution to jump to the line after the preceeding <b>loop</b> command.';
var c61 = 'The location <b>prologue</b> is defined in the library file.';
var c62 = 'This function is called whenever a location description would normally be displayed, but the player is in darkness.';
var c63 = 'This function is executed if the player attempts to perform an action that requires sight while in a dark room.';
var c64 = 'This function is executed before the description for any location is displayed.';
var c65 = 'This function outputs all the CSS styles to control HTML presentation.';
var c66 = 'This function is executed by the JACL interpreter before any processing specific to each of the player\'s commands is done. It is not called by the TACL interpreter.';
var c67 = 'The first part of the <b>+header</b> should output the HTTP header. HTTP headers are terminated by a blank line, printed using two consecutive circumflexes.';
var c68 = 'When used as a parameter of a <b>write</b> command, the token <b>$text</b> will output the URL of the game. This is primarily used for manually creating hyperlinks.';
var c69 = 'This function is called by the JACL interpreter after all processing specific to each of the player\'s commands has been complete. It is not called by the TACL interpreter.';
var c70 = 'This function displays a hyperlink for each of the possible exits from the current location. Clicking any of the links issues the command to move to that location.';
var c71 = 'This command displays an HTML text input box for the player to type their command in.';
var c72 = 'This function displays the player\'s current score and the number of moves they have made so far.';

var c100 = 'This function is called whenever the player examines the object it is associated with. In this case this is the hook.';
var c101 = 'The variable <b>here</b> is always set to the player\'s current location. It is equivalent to <b>player(parent)</b>, as the variable <b>parent</b> is always set to the object currently representing the player.';

