== 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:
== 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
5 optional; defines default loop interval in sec
noon optional; defines daytime; any of "dawn",
"morning", "noon", "afternoon",
"evening", "dusk", "midnight", "real"
... 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
10 optional; run loop next in this many seconds
(default: 5); doesn't change global
interval
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; 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; run loop next in this many seconds
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
10 optional; run loop next in this many seconds
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