Change fgcommand to take an optional property tree root element.
This fixes the animation bindings to use the defined property tree root - to support multiplayer (or other) model that can bind to the correct part of the property tree.
Requires a corresponding fix in sg to allow the command methods to take an optional root parameter.
What this means is that when inside someone else's multiplayer model (e.g. backseat, or co-pilot), the multipalyer (AI) model will correctly modify properties inside the correct part of the property tree inside (/ai), rather than modifying the properties inside the same part of the tree as the non-ai model.
This means that a properly setup model will operate within it's own space in the property tree; and permit more generic multiplayer code to be written.
This is probably responsible for some of the pollution of the root property tree with MP aircraft properties.
Remove uses of .str(), .c_str() and some other methods of SGPath.
Pass SGPath directly where possible, or explicitly convert to the
appropriate 8-bit encoding.
This patch enables spoken words without the need for external
festival using the existing FGVoiceMgr subsystem and the
properties under /sim/sound/voices
To hear the generated voices, set /sim/sound/voices/enabled=true
at startup
- use FLITEVoiceSynthesizer if a voice has <festival>false</festival>
- use FLITEVoiceSynthesizer if the festival server is unreachable
- decouple FGFLITEVoice from FGVoiceThread
- Add a very simple line-of-sight propagation model for the radio
range computation.
- Remove some no longer used debug log messages
- Some code cleanup
- add-noise is now on by default
/sim/sound/voice-synthesizer/volume to set the volume of the generated wav (in dB)
/sim/sound/voice-synthesizer/keep-scratch-file do not remove the scratch file if true
Had to add this to FGGlobals, since it needs to be cleaned up
alongside the sound manager (which ideally it would be owned by,
but that's a change for another day)
Replace many lingering calls to exit() from the code,
replacing most with exception throws, which can be
caught by the existing mechanisms.
Update the option-parsing code to return an explicit
value indicating what to do (e.g., exit status to return
to the shell).