== 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