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