//	TADS source comments for the Annotated Adventure

var c00 = 'COMMENT MISSING.';
var c01 = '/*...*/ surround a multi-line comment. Double slash introduces a comment which extends to the end of the line.';
var c02 = '"..." outputs text to the terminal. \\( and \\) turn boldface on/off; \\n is a newline.';
var c03 = 'A compile-time directive which includes the contents of a source file into the program being compiled.';
var c04 = '<b>adv.t</b> is the standard library for TADS which defines the basic classes, verbs, etc, which are used in most/all TADS games.';
var c05 = '<b>std.t</b> contains some of the functions which are common to simple games, like this one, but are usually replaced in more complex games. For instance, the <b>score</b> routine is defined here.';
var c06 = 'A semi-colon terminates a TADS statement.';
var c07 = '<b>modify</b> and <b>replace</b> allow you to override definitions in the standard library without altering the library file itself; this makes it much easier to keep track of what changes you\'ve made to the library, and also makes it much easier to upgrade to a newer version of the library should one appear. <b>modify</b> lets you add properties to an object without getting rid of the old definition.';
var c08 = 'Modify the version so the initial title and title given by the "VERSION" command are correct.';
var c09 = '<b>room</b> is one of the standard TADS classes. Each class of object supports provides a number of <b>methods</b>, such as <b>sdesc</b>.';
var c10 = 'An optional system global giving the game\'s maximum score.';
var c11 = '<b>startroom</b> is an instance of the basic <b>room</b> class. It is also the room in which the player will start out (hence the name).';
var c12 = 'The room\'s short description.';
var c13 = 'The room\'s long description.';
var c14 = 'An exit to another room.';
var c15 = 'north instead prints a message and returns nil, to show that this is not an exit that moves the player anyplace when it is taken.';
var c16 = 'The <b>hook</b> is of class <b>item</b>, meaning it is a normal item with all the default responses to verbs ("EAT" "PULL" "PUSH" etc) defined.';
var c17 = 'The <b>hook</b> is of class <b>fixeditem</b>, meaning it is fixed in place and cannot be moved. The fixeditem class therefore defines special responses to "TAKE" "PUT IN" etc. The fixeditem class is also commonly used for items which, like this, we do not wish to be listed in the room description, so it sets a special do-not-list-me flag. But that\'s handled automatically, so we don\'t have to worry about it here.';
var c18 = 'The <b>hook</b> is of class <b>surface</b>, meaning you can put things on it, and it describes its contents in the room description.';
var c19 = 'Whereas for the other items the <b>ldesc</b> is just a string, here it is a method that prints different strings depending on whether the cloak is on the hook or not.';
var c20 = 'Another way of referring to the object currently being defined (in this case, the <b>hook</b>).';
var c21 = 'Returns True if the location of the <b>cloak</b> object is the second object.';
var c22 = 'Some keywords by which this object can be referred to.';
var c23 = 'ADJECTIVE?';
var c24 = 'Where the object is (initially) located in the game.';
var c25 = 'We want to allow the syntax "HANG CLOAK ON HOOK" as well as "PUT CLOAK ON HOOK". The easiest way to do this is just to modify <b>putVerb</b> so "HANG" is a synonym for "PUT".';
var c26 = 'This is kind of a special room, since it\'s dark if you\'re wearing the cloak and light if you aren\'t. Luckily, TADS has a room-which-is-dark class defined already, namely <b>darkroom</b>';
var c27 = 'The <b>darkroom</b> class has a method, <b>lightsOn</b>, which determines if the lights should be on or not.';
var c28 = '<b>nil</b> is TADSspeak for False.';
var c29 = 'You\'ll scuff the message if you wander around in this room, or do any other actions. We use the <b>roomCheck</b> method to trap the appropriate verbs. Oh, and you don\'t scuff the message if the lights are on in here.';
var c30 = 'If the verb is a <b>travelVerb</b> (eg, "SOUTH" "EAST" "WEST"...) but it\'s not <b>north</b>, then we print a message.';
var c31 = 'If the verb is a <b>sysverb</b> (meta verbs like "SAVE" "RESTORE" "UNDO"...) then we should let it take its course.';
var c32 = '<b>nil</b> stops further processing of the verb so you don\'t do the normal thing.';
var c33 = '<b>true</b> lets the verb do its normal action.';
var c34 = 'The message should be readable by typing "READ MESSAGE" as well as by looking at it; the simplest way to do this is to make it part of the <b>readable</b> class, which by default makes "READ MESSAGE" the same as "EXAMINE MESSAGE".';
var c35 = 'The message\'s number counter will start at 0 and increase the more the player walks around in the bar.';
var c36 = 'The cloak is an article of clothing, so it can be worn.';
var c37 = 'When you put the <b>cloak</b> on the <b>hook</b> you get a point, if you haven\'t done it before.';
var c38 = '<b>Me</b> is the player object, so the cloak starts out in the player\'s inventory.';
var c39 = 'The cloak starts out being worn.';
var c40 = 'A specially-defined flag that says if the cloak has been put on the hook or not.';
var c41 = 'The <b>doPutOn</b> method is called when this is the direct object of the PutOn verb; the actor and indirect object are passed as arguments.';
var c42 = 'By default, TADS uses a Pascal-style equality operator. There is a compiler directive which can be used to easily switch to the C-style equality operator "==" if the programmer so prefers.';
var c43 = 'By default, TADS uses a Pascal-style assignment operator. There is a compiler directive which can be used to easily switch to the C-style assignment operator "=" if the programmer so prefers.';
var c44 = 'The <b>pass</b> statement means "now do the rest of the normal stuff", which in this case means putting it onto the hook.';
var c45 = 'The <b>verDoDrop</b> method is called when this is the direct object of the Drop verb. The "ver" (for "Verify) means that it is called to see if the player is allowed to <i>try</i> and drop the cloak (unlike <b>doDrop</b>, which would be called when the player actually goes ahead and drops it). We\'ll print an error message, which will prevent the verDoDrop method from succeeding.';
var c46 = 'This is the function that gets called at the very start of the game.';
var c47 = 'Output the name of the game.';
var c48 = 'Move the player to the foyer.';
var c49 = 'Have a look around.';
var c50 = 'Make a note that we\'ve see the room now.';
var c51 = 'Start off the turn-counter.';
var c52 = 'Initialise the status line.';
var c53 = 'Function to handle end-of-game actions.';
var c54 = 'Give the final score.';
var c55 = 'Wait for the player to press a key.';
var c56 = 'And we\'re outa here!';
var c57 = '<b>function</b> is one of the standard TADS classes.';
var c58 = '<b>modify</b> and <b>replace</b> allow you to override definitions in the standard library without altering the library file itself; this makes it much easier to keep track of what changes you\'ve made to the library, and also makes it much easier to upgrade to a newer version of the library should one appear. <b>replace</b> deletes the old definition of the function or object entirely.';
var c59 = 'Although generally used to test equality (if (a=b) { ... }), the equals sign is also used to define a property value.';
