Seems the hack was necessary for the pre-OSG display only. Or the feature
is broken since OSG port altogether. But it caused issues for 3D and 2D
cockpits when /sim/virtual-cockpit wasn't enabled. => Removing for now.
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.
Original property-rules in keyboard.xml toggled master and clock freeze
independently - which caused issues when only one property was true. New
command toggles both properties consistently.
This reverts commit b36b33f716.
See #316: Caused issues with sky becoming black in dense fog.
Also: when the fog issue is solved, we could configure the constant
(black) clear color once only (during init), no need to do it in every
loop. Also, entire "if (skyblend) { ... } else {..}" was redundant,
since "if" and "else" clauses were all identical - and the "clearColor"
variables were unused. => Once the fog issue is solved, we can easily
improve the clearColor configuration here.
Panning feature looked broken to some users since auto-center is enabled
by default which blocks panning. center-on-aircraft is now disabled
automatically when view is panned.
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
coordinated with and approved by Andy.
The lattice(x,y) arguments were being "WRAP()'d" but the WRAP() function
didn't make sense. Instead it was forcing the value to zero if it was
greater than the wrap limit. This was creating large areas of constant
values in the perlin noise maps which resulted in a "constant" turbulence
vector over time -- which is just weird.
Andy couldn't see any reason why the values should be wrapped and couldn't
remember any reason why the WRAP() function was set up like it was.
Andy wanted me to make sure and mention that he was INSANE when he wrote that
code (but now he's sane ... err, mostly.)
New module contributed: AV400WSim.
Supports communication with external (aka real) Garmin 400/500 WAAS flight
sim units. Includes changes to options.cxx and fg_io.cxx to support
invoking and configuring the new module.
New "auto-position" switch to always use closest tower for tower-view.
Exposes new "/sim/airport/closest-airport-id" property.
Display closest airport on groundradar by default.
The internal solver of YASim which computes drag and lift
coefficients now actually uses the values configured in
the XML input file for approach fuel, cruise fuel and cruise
glide angle.
- Allow structuring generic Nasal sources into modules (i.e. support
separate source folders for multiplayer/local weather/... sources)
- Option to enable/disable loading of generic Nasal modules (i.e we only
need to load stuff that is really needed/enabled).
- Provide basic loading sequence: subfolders are strictly loaded _after_
the base directory. So submodules can rely on .nas-scripts like math.nas,
io.nas, debug.nas, ... to be already loaded - dropping the need for
awkward listeners/timers to delay module initialization (loading order
within Nasal/*.nas is still random)
Property "dme-in-range" should also work with ILS signals, which include
a DME. The nav database (dme_list) doesn't have separate entries for
"ILS-DME" (unlike for "VOR-DME"), so searching a DME by frequency didn't
work for ILS.
=> "instrumentation/nav[*]/dme-in-range" can now be used to enable/disable
cockpit DME displays.
Untieing needs to be done prior to the destruction of the object which
aggregated the TiedPropertyList. So the TiedPropertyLists destructor can't
untie the properties automatically (and it doesn't). So, do some manual
clean-up.
SGCloudField::addCloud does *not* keep a reference to SGNewCloud - so we
only need a temporary object. Also adapt to changed addCloud interface
to make things a little more obvious.
- former mk-viii voiceplayer is now an independent FGVoicePlayer
- voiceplayer still sits in mk-viii module for now
- add option to configure location/prefix of voice samples
- add pause/resume to voiceplayer
Almost all FGPropertyData elements received via MP were leaked.
Property data is now cleanly deallocated in the FGExternalMotionData destructor.
Thanks to Jester for reporting rising mem consumption in MP mode.