Don't initialize the offset in the main loop but in
the init method of the implementing class. This ensures
it gets initialized if you instantiate more than one
heading-indicator and does not initialize the property for
unsused heading-indicators (no more stray heading-indicator-fg
property anymore).
Replace SG_GENERAL by more specific log classes in many places.
Allow "," to separate logging classes (using "|" is odd on the
command-line).
Also add new option to make logging more useful for developers.
You can use:
--log-level=debug --log-class=environment
to only get environment debug messages, or
--log-level=debug --log-class=sound,ai
to only get debug messages related to the sound or AI subsystem.
Avoid frequently creating/dropping an identical sound sample, when the
nav radio signal is flickering. Always keep most recent sound when signal
is lost (only stop it/turn volume off).
Our nav.dat.gz seem to have many bugs regarding paired LOC/DME where
the DME is missing.
A feature has recently been introduced to always use a LOC frequency
as a DME to avoid these issues. However many LOC station do not have
a DME paired at their frequency and this behaviour might be as confusing
as having no DME where one should be.
Before we get new/bugfree navdata, a property can be set to select
the desired behaviour:
if /sim/realism/dme-fallback-to-loc is true or absent, LOC will be
treated as DME (realism is off)
if /sim/realism/dme-fallback-to-loc is false, LOC will be NOT be
treated as DME (realism is on)
Here comes the work-in-progres code for a new navradio
implementation. Once completed, it will replace the
old/current navradio implementation.
The new code can be activated by setting
/instrumentation/use-new-navradio=true
at startup. This disables the old navradio implementation.
Current state:
- VOR works pretty good including the new
functionality 'code of confusion'.
- LOC and GS basically work
- backward compatibility (many properties) is to be implemented
- wrap the ident-generating code into a class
- move dme-in-range property into dme.cxx
- move dme-ident generation into dme.cxx
- support ident-button and volume for dme idents
- use globals.get_aircraft_position instead of properties
- some minor cleanup
When no navaid is found, '_ref_navaid_id_node->setStringValue("")' results
in a listener firing, which requests another navaid update when no navaid
is available.
=> Resulted in FGPositioned::findClosest being called in every update loop,
when no navaid was within range.
Whenever resolving a (relative) path to an absolute path with
'resolve_maybe_aircraft_path', check if the result is empty and report original
(relative) path as missing. Otherwise no or a meaningless message is
issued ("File '' not found.").
Fixes an ugly issue with OSG overwriting memory/stack. wxradar triggered
the issue in display mode "ARC" - since it configured a display mask (12
vertices) but all vertices were immediately removed again ("_vertices->clear()").
Issue is fixed, mask now working - however the mask wasn't even properly
aligned for the display (probably never worked since OSG port). The display
mask is only really required for weather display - so disabling for now.
This class and their source files visual_enviro.[h|c]xx were
unused since OSG transition. It's only functionality was to
keep a variable for the enable-state of rendering of precipitation.
This has now been moved to SGPrecipitation.
This patch also removes all references to this class and
visual_enviro.hxx. Wxradar needs a new implementation for cloud
echoes which probably should be part of fgclouds.
See also SimGear commit 4e6159aa07f2817c09fad72db64d713e47f6f3da