== README.tutorials =========================================================== FlightGear offers a flexible tutorial system, entirely written in the Nasal language. Tutorials can be started and stopped from the "Help" menu. They are defined in XML files. Each of them has to be loaded into /sim/tutorials/ under a separate tutorial[n]/ branch: Alternatively, all tutorials can be defined in one file, with tags around each tutorial. This is then included like so: Finally, tutorials are automatically generated from any valid checklists on startup. See README.checklists for details. == TUTORIAL STRUCTURE ========================================================= A tutorial has this structure, where some of the elements are described in detail below: ... mandatory; short identifier, also shown in the tutorial selection dialog ... mandatory; longer description for the dialog ... optional; defines where to load sound samples noon optional; defines daytime; any of "dawn", "morning", "noon", "afternoon", "evening", "dusk", "midnight", "real" optional; period between each step being executed. Default 5 optional; period between exit/abort conditions being checked. Default 1 ... optional; initial Nasal code; see below ... optional; scenery objects; see below ... optional; targets; see below ... optional; initial simulator state; see below optional; initial settings; see below ... optional; property settings; allowed multiple times ... optional; view settings ... optional; marker coordinates ... optional; Nasal code mandatory; well, not really, but if there's not at least one , then the whole tutorial won't do anything; see below for details ... optional; message to be displayed/spoken when is entered; allowed multiple times, in which case one is chosen at random optional; allowed up to 4 times. ... property to substitute into the string using sprintf() formatting. E.g. %d, %.2f optional; file name of *.wav sample to be played; may be used multiple times (random) ... optional; allowed several times ... optional ... optional ... optional; Nasal code that is executed when the step is entered 10 optional; wait period after initial messages etc. optional; allowed several times .. optional; text displayed/spoken optional; name of *.wav sample to be played ... optional, but one should be there to make sense see $FG_ROOT/Docs/README.conditions ... optional; Nasal code that is executed when the error condition was fulfilled optional; defines when to leave this see $FG_ROOT/Docs/README.conditions ... ... optional; Nasal code that is executed when the exit condition was met optional; final settings & actions; see below ... optional; multiple times (random) optional; multiple times (random) ... optional ... optional ... optional After the tutorial has finished initialization, it goes through all . For each it outputs the or