ThorstenB [Thu, 1 Nov 2012 14:31:05 +0000 (15:31 +0100)]
Jean Pellotier: don't show markers for invalid targets in HUD
Don't show invalid AI/MP models in the HUD (after they were removed from
the scene).
Also, when a radar is installed, consider radar/in-range for HUD display.
ThorstenB [Thu, 1 Nov 2012 13:35:17 +0000 (14:35 +0100)]
#903: generic protocol: fix a rare corner case
ASCII protocols consisting of a single chunk only (one variable per line)
would not work when no "separator" was defined.
Also add error message for protocols with more than one var per line which
are missing a separator...
James Turner [Tue, 30 Oct 2012 15:43:54 +0000 (15:43 +0000)]
Traffic improvements.
Make landings and takeoffs look more correct; tweak climb-out and touchdown phases in particular, so the turn to destination heading occurs earlier on climb out, and touchdown occurs close the GS transmitter / some distance down the runway from the beginning.
ThorstenB [Sat, 13 Oct 2012 14:48:56 +0000 (16:48 +0200)]
ATIS upgrade
Add missing ATIS elements (transition level, expected approach,
precipitation, runway surface warnings).
Minor phraseology fixes for US/Europe.
Adds "/sim/atis/concise-report" option to use abbreviations (CAVOK etc),
and omit "obvious" units (depends on airport).
Trigger ATIS updates for significant pressure changes.
ThorstenB [Sat, 13 Oct 2012 12:37:47 +0000 (14:37 +0200)]
ATCVoice: support multiple voice files
so we can split ATIS voice files into separate files, i.e. for airport
names and phraseology, so we don't need to regenerate airport names when
extending/changing phraseology. Also allows to add custom airport names.
Enable switching voice files at run-time (different airports could have
different voices...).
ThorstenB [Wed, 10 Oct 2012 18:28:17 +0000 (20:28 +0200)]
#897: float vs double precision issues (frequency dialog not always working)
puObject only provides float, not double, which causes precision/rounding
issues with some numerical values (try "114.2").
Work around: obtain string value, and manually convert with proper double
precision.
ThorstenB [Sun, 7 Oct 2012 18:47:50 +0000 (20:47 +0200)]
Improve gyro heading indicator failure simulation
Error/offset induced by precession and yaw also depend on spin (no spin =>
no additional error/offset).
Error/offset induced by changing a/c orientation while gyro spin is
low (<<1) should apply to the "offset" (instead of "error") property.
James Turner [Fri, 5 Oct 2012 17:12:46 +0000 (18:12 +0100)]
Make traffic take-off roll look a little better.
Expand the performance DB logic to support aliases, and select based on aircraft type as well as class. This allows to introduce some variation into AI traffic performance. Change the initial climb-out waypoints to use pitch-hold until passing 3000', which looks much more convincing
James Turner [Mon, 1 Oct 2012 08:21:34 +0000 (09:21 +0100)]
Use a helper thread to init the traffic-manager.
Make traffic manager startup asynchronous, but also avoid frame-stutter due to file parsing on the main thread. Note only XML parsing happens on a thread - once that's complete, everything happens as normal on the main thread, as before.
James Turner [Mon, 1 Oct 2012 12:06:28 +0000 (13:06 +0100)]
Run the filters for comm/navaids as required.
Apparently most filters are only filtering on type - we weren't running the filter body for navaid or comm-station lookups, causing weird ATIS bugs. Ensure that we actually run the filter at the point we have an FGPositioned* result.
James Turner [Sun, 30 Sep 2012 18:40:08 +0000 (19:40 +0100)]
Tolerate refactored SGSound headers.
An upcoming commit will make the sound headers standalone, and no longer include various other headers / using std:: declarations. Prepare for this by making includes and usage of namespaces explicit.
James Turner [Sun, 30 Sep 2012 15:34:51 +0000 (16:34 +0100)]
Initial work on dynamic subsystem creation.
Make subsystems create-able and removable from commands. Only some subsystems are supported so far, since many have non-default constructors or other complexities.
With this, change, it's possible to dynamically add and remove the traffic-manager at runtime, for example: fgcommand("add-subsystem", props.Node.new({ "subsystem": "traffic-manager", "name":"traffic-manager", "do-bind-init":1}));
James Turner [Sat, 29 Sep 2012 18:02:03 +0000 (19:02 +0100)]
Support a --no-default-config option.
For (future) easier testing of the sim, support a mode where only explicitly named config / option files are loaded, instead of the default ones. (Including, for example, preferences.xml). This currently produces a non-functional sim, but will soon be more useful :)
No behaviour should change unless you try the new option.
James Turner [Fri, 28 Sep 2012 14:32:31 +0000 (15:32 +0100)]
Make FGControls behave like normal subsystem.
FGControls create/init/bind order was incorrect, causing initial property tree state to get over-written. Restructure the code so bind() sees correct values.
Thomas Geymayer [Thu, 27 Sep 2012 10:21:22 +0000 (12:21 +0200)]
Fix some CommStation bugs
- kHz/mHz conversion needs factor 1000 not 100
- Correctly read name for CommStations from NavCache
- Fix parsing CommStation names from apt.dat (Name
can contain spaces)
James Turner [Thu, 27 Sep 2012 08:27:48 +0000 (09:27 +0100)]
#793 - invalid data on final FP leg.
The Flight-plan leg data computation was omitting certain data for the final waypoint, which in turn made some of the route-manager data bogus when flying the final leg. Fill in some sensible values which we can compute.
Thomas Geymayer [Wed, 26 Sep 2012 22:41:23 +0000 (00:41 +0200)]
Fix ATIS /environment/attention handling
Using a tied property works only for one single usage of the
property. In reality FGATIS is normally instantiated four
times (nav/comm/1/2) where only the first instantiation
works correctly. All subsequent instantions fail to tie
and show some error messages.
Also tied properties shouldn't be used anymore.
Thomas Geymayer [Tue, 25 Sep 2012 21:06:27 +0000 (23:06 +0200)]
Canvas: Proper fix for OpenVG init handling.
- Redraw all canvases in the frame OpenVG is initialized.
Otherwise if multiple canvases are created in the same frame
only one of them would get correctly updated.
Thomas Geymayer [Tue, 25 Sep 2012 19:34:37 +0000 (21:34 +0200)]
Canvas: Redraw if OpenVG has been initialized.
If OpenVG/ShivaVG is initialized nothing is drawn in the same
frame, therefore we need to draw another frame to ensure all
paths are rendered correctly.
James Turner [Tue, 25 Sep 2012 16:24:12 +0000 (17:24 +0100)]
Use a helper thread to rebuild the navcache.
Avoid the application becoming unresponsive during nav-cache rebuilds. We still have to wait for the rebuild, but perform it on a helper thread so the main GUI thread stays responsive and hence doesn't trigger a beach-ball / 'not responding' alert. Also ensures there's some feedback (the spinner) during the rebuild operation, so users don't think we've hung.
James Turner [Mon, 24 Sep 2012 23:31:17 +0000 (00:31 +0100)]
Make FGTaxiNode and FGParking inherit FGPositioned.
In preparation for caching the groundnet in the NavCache, make taxi-nodes and parkings inherit from FGPositioned. As part of this, make them heap (as opposed to value) classes, disable their copy-constructors, remove many mutating operations, and give them real constructors.
Fix compilation with enabled EVENT_INPUT
Need to move the definition to the toplevel cmake file, since sources
are no longer compiled on directory level (individual libs per dir).
Thomas Geymayer [Fri, 21 Sep 2012 19:20:35 +0000 (21:20 +0200)]
Canvas: Performance improvements.
- Only render the canvas if something has actually changed
(Currently checked by looking for modified properties).
- Only write bounding box to property tree if it has been
recalculated (until now this happened every frame).