1
0
Fork 0
Commit graph

11430 commits

Author SHA1 Message Date
James Turner
a3d75e8573 Voice synth: reduce some log output levels 2020-03-16 11:07:35 +00:00
Julian Smith
904e55d657 src/MultiPlayer/multiplaymgr.cxx: use SGPropertyNode_ptr to avoid explicit delete.
As suggested by James Turner
2020-03-15 15:30:05 +00:00
James Turner
2dcf9c30bb Further path -> UTF8 fixes for Windows
Requires corresponding SimGear change. With this last round, we work
with FGData on non-Latin1 path on Windows. (Final fixes are for
Nasal io.readfile, which needed io.stat to work, and SGSky allowing
correct SGPath use)
2020-03-15 15:00:55 +00:00
James Turner
36ba1e3dce UTF-8 support: replace Nasal io.stat with our own.
Replace the default io.stat with one which uses our validator, and
uses SGPath to call _wstat on Windows. This does mean we return less
information in the stat() result, but it seems nothing actually uses
the result apart from checking if the file exists.
2020-03-14 21:01:45 +00:00
Erik Hofman
fb348d1a8a Fix a false compiler warnig about brackets not protecting the next if statement 2020-03-14 14:04:22 +01:00
Richard Harrison
b049865cb2 fixes #2123 Relocation splash distorted.
Mark images loaded from splash with origin of splash to prevent use of DDS texture cache and therefore fix distortion by preventing rescale to power of two
2020-03-13 18:30:56 +01:00
James Turner
9389c6564f Nasal geodinfo: warn when scenery is not loaded 2020-03-13 16:46:54 +00:00
James Turner
8edcaa4853 Merge /u/ltoenning/flightgear_sim/ branch fix/2146 into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/190/
2020-03-13 13:53:30 +00:00
James Turner
7e9930e871 Move fnt code from PLIB into 3rdparty
This enables us to fix TXF loading to use UTF8 paths, required for
handling non-ASCII paths on Windows.
2020-03-13 12:21:56 +00:00
Lars Toenning
2c9d64dcc6
Fix broken sound mute function
Fixes #2146
2020-03-13 11:13:30 +01:00
James Turner
e492ddd5a0 Event more local8Bit -> UTF8 fixes 2020-03-13 09:53:49 +00:00
James Turner
27410761f3 Lots of UTF8 path correctness fixes 2020-03-12 14:23:44 +00:00
James Turner
5b41f374c6 L10N fixes: handle UTF8 paths in more places.
Still not complete, but now we set the command line args to be UTF-8 on
Windows, we can strip out more of the ‘local 8-bit’ places (which
screw up, generally).
2020-03-12 10:51:49 +00:00
Erik Hofman
3cb05a9207 Do not try to initialize all 16 joysticks every frame if they where not found previously. Try it once every second instead. 2020-03-12 10:31:38 +01:00
Julian Smith
ab7e7ec7b4 src/Main/globals.cxx: don't load /ai/models/ from autosave.xml file.
This cleans things up if earlier 'next' build as added spurious property items
to autosave.
2020-03-11 21:49:15 +00:00
Julian Smith
20a9953130 src/MultiPlayer/multiplaymgr.cxx: Don't load complete -set.xml of multiplayer aircraft.
When loading -set.xml, we load into temporary 'set' node,
then copy across only set/sim/view[]/config/* values into
/ai/models/multiplayer[]/set/sim/view[]/config/.

This ensures that we have just the information required for multiplayer views,
and avoids problems where some properties in /ai/models/multiplayer[]/ were
being archived to autosave_*.xml and loaded in later flightgear sessions.
2020-03-11 21:49:15 +00:00
James Turner
c12824bc94 Basic Canvas tests, including image pixel ops 2020-03-11 17:14:38 +00:00
James Turner
e509711075 Fix some warnings from current Apple clang
- remove some unused vars
- remove use of std::mem_fn / std::bind2nd
2020-03-10 17:02:08 +00:00
James Turner
40a85cae28 Launcher: fix some warnings, maybe a crash
Avoid binding loop warning, and change logic around re-starting the
aircraft dirs scan, to hopefully clarify the crash Brendan and others
are seeing.
2020-03-10 16:10:55 +00:00
Lars Toenning
e2135369ce Minor code fixes 2020-03-10 14:08:29 +00:00
Lars Toenning
aca625eda2 [swift] Fetching ground elevation for interpolation 2020-03-10 14:08:29 +00:00
Lars Toenning
34915125a1 [swift] Fix frequency casting regression 2020-03-10 14:08:29 +00:00
Lars Toenning
f4b60ccd90 [swift] Code cleanup 2020-03-10 14:08:29 +00:00
Lars Toenning
182df4e6ae [swift] Fix segfault on stopping server 2020-03-10 14:08:29 +00:00
Lars Toenning
ee0d03b4d0 [swift] Fix memory leak in traffic-service 2020-03-10 14:08:28 +00:00
Lars Toenning
eb3fba1871 [swift] Adding swift aircrafts to TCAS 2020-03-10 14:08:28 +00:00
Lars Toenning
d14073cd24 [swift] Adding aircraft to property tree and map 2020-03-10 14:08:28 +00:00
Lars Toenning
e6a9515b59 [swift] Enhancing version compatibility check 2020-03-10 14:08:28 +00:00
Lars Toenning
fc0a8b1c60 [swift] Fix message node 2020-03-10 14:08:28 +00:00
Lars Toenning
0423472f74 [swift] Sending ground elevation 2020-03-10 14:08:28 +00:00
Lars Toenning
cab6581d3d [swift] Pointers to nodes for get/set data
Calling fgSetXY/fgGetXY takes to long (especially when calling the often needed properties a few times per second in main loop).
Switching to pointers for these nodes, initialized within service-class constructor.
2020-03-10 14:08:28 +00:00
James Turner
3f14d53286 FlightPlans: fix save/load of restrictions, deleting legs from Nasal
- Fix Leg ownership to avoid segfaults when deleting them via Nasal
- Modify FP save/load code so restrictions and holds are correctly
  saved and restored

Extend the tests to cover these cases.
2020-03-10 14:00:40 +00:00
James Turner
de172de5b3 Launcher: Fix a typo breaking path re-ordering 2020-03-10 10:28:56 +00:00
James Turner
a405d0508b Fix a dumb allocation bug on Windows 2020-03-09 16:28:22 +00:00
James Turner
410c249ba8 Launcher: enable/disable all add-on types
Allow enable/disable in the UI of everything in the ‘add-ons’ page of
the launcher.
2020-03-09 16:16:50 +00:00
Erik Hofman
32d6f75305 Process the buttons even if the axes are not declared initialized 2020-03-07 09:22:22 +01:00
Slawek Mikula
517cf19ec6 - ATC radio list - adding selectors to radio R1/R2 for corresponding frequencies 2020-02-25 13:08:06 +00:00
James Turner
8126db050a Merge /u/geoffmc/flightgear/ branch msvc-build3 into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/182/
2020-02-24 13:12:15 +00:00
James Turner
219ceacc7a macOS Catalina device filtering 2020-02-24 13:09:36 +00:00
James Turner
ff70578d57 Launcher: Fix a QML warning on startup 2020-02-24 11:33:05 +00:00
James Turner
f14b8ba6d4 Validate Nasal makeTimer arguments
When the callback arguments can’t be validated,
catch is and actually report a failure, instead of creating a
non-functional timer object
2020-02-24 11:33:05 +00:00
James Turner
a3731875a1 Make Launcher ratings settings persistent 2020-02-24 11:33:05 +00:00
Stuart Buchanan
1f0c21a371 Warn when Nasal module not set in defaults.xml 2020-02-19 20:32:22 +00:00
Erik Hofman
e4c393ba9c Revert delayed running of fdmex for in-air starts since it does more damage than good. 2020-01-31 10:03:31 +01:00
James Turner
12cd2d8e9b Merge /u/legoboyvdlp/flightgear-src/ branch fix-segfault into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/188/
2020-01-30 10:42:18 +00:00
jano
395a654692 make the aiship speed respect strictly the target speed when close enough, should improve drifting carrier on mp 2020-01-28 11:03:20 +01:00
jano
c770358f13 added the velocity for the ufo, used in lag compensation 2020-01-28 11:03:20 +01:00
Erik Hofman
6df768fa5f Store the initial axis values and if just one of them changes declare the joystick initialized 2020-01-27 18:12:09 +01:00
legoboyvdlp R
b920a09fcf Correct whitespace in NasalPositioned.cxx; fix segfault in NasalPositioned by adding null check in the legGhostGetMember method; add test case for segfault 2020-01-27 16:27:46 +00:00
Stuart Buchanan
f6285bc528 Fix directional lights for AMD
Some AMD drivers do not like triangles for point sprites, which
breaks directional lights.  This works around this by allowing
users to set /rendering/triangle-directional-lights=false which
falls back to the non-directional implementation of a point.
2020-01-27 09:30:09 +00:00
Erik Hofman
65a20b5829 Read the raw values and check them against the saturation value, if one of them is larger then initialization of the joystick is still in progress. 2020-01-27 09:15:53 +01:00
Erik Hofman
2d0b44ee63 If js is valid (again), create a new instance of jsJoystick so removing an joystick from and USB port and attaching it again get the joystick in a working order. 2020-01-26 17:44:19 +01:00
Erik Hofman
d4459c8205 Fix a typo 2020-01-26 14:30:24 +01:00
Erik Hofman
3405ea2aaa Joystick axes can get initialized to extreme values, at least on Linux. Hold of working with the axis values until all values have become sane at least once 2020-01-26 14:10:07 +01:00
Bertrand Coconnier
973bf32074 [JSBSim] Added the ability to log properties in a CSV file. 2020-01-25 16:05:30 +01:00
Erik Hofman
cf5bfc5dd9 On-ground trimming needs fdmex active while in-air trimming does not for reliable operation. This might be a problem within the trimming routines but for now this works. 2020-01-23 11:54:33 +01:00
Erik Hofman
1cc0d9e97f Fold of running JSBSim until after the trimming routine. 2020-01-22 14:54:11 +01:00
Erik Hofman
123eb41819 Copy the initial properties a second time after initilization. 2020-01-22 14:53:27 +01:00
Erik Hofman
2d2d5dbb76 Switch to C++11 threads, mutexes and lock_guards. Switching to C++11 condition_variables requires some more thought. 2020-01-22 13:45:28 +01:00
Erik Hofman
94b12aa992 Postpone running the simulation until after initialization and do an extra trim right after creation to properly initialize the output parameters. 2020-01-18 14:29:17 +01:00
jano
db295a9afc introduction of a zero lag mode when pilots are synched in time, eg using ntp. 2020-01-14 11:10:28 +01:00
Jakub Kákona
1822d003db Add electric engine support to YASim. 2020-01-11 23:02:33 +01:00
Geoff McLane
03ed61509c Use CMAKE_MSVCIDE_RUN_PATH to allow the add_custom_target to run
This is only for a MSVC build - sets the runtime path for the exe run in
the following 'add_custom_target( ... run fgrcc ...)' ...

	modified:   src/EmbeddedResources/CMakeLists.txt
2020-01-11 20:27:21 +01:00
Bertrand Coconnier
90a04a4baa [JSBSim] Relax the assert when trying to clip with max < min.
Throwing an exception was too harsh. Instead the clipping is ignored and a warning message issued.
2019-12-30 00:30:26 +01:00
Scott Giese
a9365cd34e Embedded Resources: Fix for Ninja 1.9
Refactor to break circular references.
New custom target generates the resource files.
FGFS and Test_Suite targets declare a dependency to the generated files.
2019-12-26 01:26:44 -06:00
James Turner
be628b36b7 Allow add/remove of IO channels at runtime
Commands:

	add-io-channel
	remove-io-channel
2019-12-19 00:00:41 +00:00
James Turner
f76709a853 Save settings on Launcher window close.
Patch by Slawek Mikula, from:
https://sourceforge.net/p/flightgear/codetickets/2158/
2019-12-17 22:47:50 +00:00
James Turner
ba36bd90e0 Launcher respects —enable-fullscreen arg
Patch by Slawek Mikula from:
https://sourceforge.net/p/flightgear/codetickets/2162/
2019-12-17 22:40:25 +00:00
James Turner
c48c1a06e8 Look for protocols in aircraft paths
Modified from patch by Slawek Mikula
2019-12-17 22:34:19 +00:00
James Turner
fad9f7068f Expose canvas::Image pixel funcs to Nasal 2019-12-17 22:06:35 +00:00
Scott Giese
93a1d5e2d1 Fix HUD scale 2019-12-15 18:58:19 -06:00
Scott Giese
51f6a25a04 Obsolete: dynamic exception 2019-12-15 16:39:49 -06:00
Scott Giese
a14923cea0 Maintainability: Anticipate future types 2019-12-15 16:38:45 -06:00
Scott Giese
c97ad0182b Prevent buffer unterminated buffer 2019-12-15 16:37:44 -06:00
Bertrand Coconnier
e1ecab0a15 [JSBSim] Do not initialize properties that already exist.
That, among other things, triggered a bug where the aircraft spawned with gears up whatever the initial setting was.
2019-12-15 11:53:45 +01:00
Bertrand Coconnier
2f5edf6558 [JSBSim] Supplement to the fix for the initialization issue.
One of the output node was lost in the process. Tested it myself with the Space Shuttle: this additional commit makes the error disappear.
2019-11-17 19:25:56 +01:00
Bertrand Coconnier
9782d9e65a [JSBSim] Tentative fix for initialization issues reported in the ML.
Nodes might be uninitialized when a channel is initailly disabled. To work around that issue, the initialization of the output nodes is forced at creation.
2019-11-17 17:51:19 +01:00
Bertrand Coconnier
88ca381e83 [JSBSim] An improvement and 2 bug fixes
- Electric engines RPM is now exported in UDP sockets.
- The sign of the XZ inertia has been fixed in the property inertia/ixz-slug_ft2 (was just an output error, the correct XZ inertia was used internally). Thanks to Nikolai Verner Christensen for reporting the bug.
- The parameter <ignitionn2> was wrongly affected to N1. Bug reported by Nikolai Verner Christensen and fixed by Jonathan Redpath. Thanks to them.
2019-11-17 12:33:28 +01:00
Bertrand Coconnier
b4bb24f10e [JSBSim] Fixed the displacements resulting from modifications of the mass distribution while the aircraft is sitting on ground (bug GH #230 reported by Gijs de Rooy). 2019-11-10 16:10:47 +01:00
Edward d'Auvergne
4105b70f74 Options: Only set the logging priority if the command line option is supplied.
This prevents the changing of the logstream priority as set by the test suite
permanently to "alert" during the execution of tests.  Setting a default value
of SG_ALERT is not required as this is the simgear logstream default anyway.
2019-11-08 13:59:17 +01:00
Edward d'Auvergne
0f0361efb8 Options::setupRoot: Removal of the logic that fg_root is currently not set.
This allows the test suite to preset fg_root using its own bootstrapping logic.
2019-11-08 13:59:16 +01:00
Julian Smith
f4fcf43ffa src/Environment/metarproperties.cxx: better formatting for METAR description.
Pass tabstops=-1 to getDescription() makes it use single space for tabs, which
gives better output when used with proportional font.
2019-11-06 19:56:30 +00:00
Erik Hofman
9644966dfd Also add pressure to the mix 2019-11-04 15:19:10 +01:00
Erik Hofman
c739d47793 Parse the current temperature and humidity to the sound code for proper sound velocity and distance attenuation (with ditance based frequency response filtering). AeonWave only. 2019-11-04 14:57:43 +01:00
Julian Smith
88644185b3 src/Main/metar_main.cxx: added -s option to decode explicit METAR string without contacting server. 2019-10-31 22:53:41 +00:00
Julian Smith
4b1cfbc5ed src/Main/metar_main.cxx: use SGMetar::getDescription(). 2019-10-31 22:49:09 +00:00
Julian Smith
191f53ff5e src/Environment/metarproperties.*: put human-readable metar description into properties.
We set /environment/metar/description to human-readable description of metar,
for use by fgdata's weather dialogue, using simgear FGMetar's new description()
method.
2019-10-31 16:50:01 +00:00
James Turner
68a72f22f2 Fix a copy-paste-bug in a Nasal error 2019-10-20 13:08:47 +01:00
James Turner
26b9cce6a3 Quiet false-positive tied-listener warnings
Use a new SGPropertyNode flag, LISTENER_SAFE, to white-list properties
where we do correctly fire listeners, and test this flag when listening
from Nasal, to avoid the warning.
2019-10-20 13:08:47 +01:00
James Turner
a18dda21ef Fix a GCC warning: catching exception by value 2019-10-20 13:08:47 +01:00
James Turner
3bb7a25580 Merge /u/daniel-me/flightgear/ branch pg-fix2 into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/180/
2019-10-19 11:12:34 +00:00
James Turner
0e082d5c46 Tweaking macOS HID code to avoid a Catalina crash
Not certain what’s going on here, this is testing a theory that
deleting a HID queue which has never been started, might behave badly.
2019-10-17 00:01:59 +01:00
James Turner
45fbdaa9c9 Starting tests for RNAV/procedures
One test so far, attempting to reproduce a bug I see with the 737.

Note these tests are skipped unless you have procedures available
and set a magic env var to find them.
2019-10-16 23:28:52 +01:00
Daniel Meissner
315d38566e YASim: Fix to the Prandtl/Glauert and Wavedrag features. Simplifies the model and resolves NaNs and sim crashes in supersonic flight 2019-10-16 22:59:16 +02:00
Bertrand Coconnier
73b7e94358 [JSBSim] Bug fixes
* Functions <random/> and <urandom/> are no longer considered constant.
* <clipto type="cyclic"> now clips negatives values correctly.
2019-10-13 14:18:09 +02:00
James Turner
18c19885c6 Improvements to Nasal hold API
Ensure changes from Nasal are picked up by delegates (such as GPS) when
they are made. Add a route-manager test which sets and exits a hold
using Nasal.

As part of this, update the test API to make it easy to run Nasal from
a test.
2019-09-24 11:29:05 +01:00
James Turner
12cccf043a Nasal interface to hold waypoints 2019-09-23 23:01:12 +01:00
James Turner
5ce8a942bf RNAV / GPS hold support
The GPS/RNAV system can now fly holds, both left and right-handed.
The correct entry is selected, and hold count can be selected.
Also there's lots of lovely test cases.
2019-09-23 23:01:12 +01:00
James Turner
15c101efe4 GPS detects being repositioned
Avoid screwing up the derived / trend data when we are repositioned;
detect instantaneous position changes and don’t update the trend
data in this case.
2019-09-23 23:01:12 +01:00
James Turner
45df8f51b2 Move GPS sequencing into Nasal (optionally)
GPS now lets the delegate handle the sequencing behaviour, by
setting a new config property. The default GPS delegate (in Nasal)
now sets this property.

This requires a corresponding FGData update.
2019-09-20 13:05:57 +01:00
James Turner
833cc61293 GPS intercept tests 2019-09-20 09:50:55 +01:00
James Turner
2434c037c8 Improve Leg mode course/track computation 2019-09-19 17:27:13 +01:00
James Turner
2fe91430a3 Fix direct-to course -deviation sign 2019-09-18 23:42:39 +01:00
James Turner
2d89cb2390 Nasal: Log names of stranded persistent timers 2019-09-18 23:42:39 +01:00
James Turner
dbbebc8f7e Tolerate missing scenery (happens in unit tests) 2019-09-18 23:42:39 +01:00
James Turner
810d2e0b13 Set default GPS overflight sequence distance 2019-09-18 23:42:39 +01:00
James Turner
30b8bdc081 Fix warnings from newer Clang 2019-09-18 23:42:39 +01:00
James Turner
317e9f8cc0 Fix some GPS issues discovered while testing
- set wp[1] properties immediately (don’t require an update cycle)
 - direct-to course-error is correct when init-ing the Direct-To; it
   was previously wrong when beginning the DTO, due to invalid course
   between identical SGGeods.
2019-09-18 23:42:38 +01:00
James Turner
12ac14be0e Change a warning level 2019-09-18 23:42:38 +01:00
James Turner
492707a756 Flightplan-nasal alias a name for readability 2019-09-18 23:42:38 +01:00
James Turner
3b34158998 Fix member/local var mismatch in RNAV code 2019-09-18 23:40:36 +01:00
James Turner
a3e66d1ae3 Fix GPS ident overflow bug 2019-09-18 23:40:36 +01:00
James Turner
e15d67e637 TestPilot helper in the test API
Use this in the GPS tests.
2019-09-18 23:40:36 +01:00
Scott Giese
8120dcb4c9 Fix compile issue on Win10 VS2019 2019-09-16 23:33:28 -05:00
Daniel Meissner
44e1f43e91 YaSim: add compressibility effects (Prandtl/Glauert correction factor on surface elements and
FlowRegime to wing definitions). (Daniel)
//amended according to James hints: change initializer to float constants, fix indention issues, add Math::polynomial and use it in Surface. (Henning)
2019-09-06 16:11:10 +02:00
Julian Smith
335547160c src/Main/fg_init.cxx: use /sim/log-file-line to control output of file:line in logs.
We call sglog().setFileLine() in response to changes to /sim/log-file-line.
2019-09-04 10:55:43 +01:00
Julian Smith
10414fada4 src/GUI/new_gui.cxx: NewGUI::setStyle(): remove old nodes before copying across new style.
Previously old nodes that weren't in the new style, would be left in place,
leading to a confusing mix of styles sometimes.
2019-09-04 10:55:43 +01:00
Julian Smith
f3d1135320 Various fixes for building on OpenBSD. 2019-09-04 10:55:43 +01:00
Julian Smith
331ef3232f src/Input/FGEventInput.cxx: FGEventInput::AddDevice(): fix incorrect use after delete.
Moved delete of inputDevice to after its use in a SG_LOG diagnostic.
2019-08-31 14:19:16 +01:00
xDraconian
6ce33fcb5c Merge /u/ferranobon/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/171/
2019-08-28 02:52:57 +00:00
legoboyvdlp R
eafe5dadc0 Modify the update rate of the closest airport with METAR to 10 seconds. 2019-08-27 20:42:23 +01:00
Scott Giese
1ede51f3f6 Improved OSG Version detection. 2019-08-26 17:45:16 -05:00
Bertrand Coconnier
4f5f0f63fd [JSBSim] <table> independent vars are now late bounded.
The existence of the property that is used for <table> independent vars is now checked during execution rather than when the XML definition is parsed. This relaxes the order in which filters, table and more generally flight controls need to be declared in the XML definition files.
2019-08-17 13:58:31 +02:00
Julian Smith
47eda6e539 src/Viewer/viewmgr.cxx:FGViewMgr::FGViewMgr(): avoid possible SEGV in previous commit.
It seems that sometimes /sim/current-view/view-number doesn't yet exist.
2019-08-14 16:00:44 +01:00
Julian Smith
f71624e170 src/Viewer/viewmgr.cxx: allow aircraft to set initial view number.
E.g. fgaddon/Aircraft/Icaro_MRX13/Icaro_Laminar_13_MRX-set.xml sets
/sim/current-view/view-number to 9.

It seems that recent View changes broke this, but this fix is in unchanged
code.
2019-08-14 11:07:32 +01:00
Richard Harrison
fa0fb9bc06 Merge /u/cgdae/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/173/
2019-08-13 03:56:33 +00:00
Julian Smith
e6cfb56de0 src/Viewer/view.cxx: fix for regression in handling of /sim/current-view/?-offset-m.
Prior to the recent multiplayer view changes, /sim/current-view/?-offset-m
contained the current view's offsets from /sim/view[]/config/?-offset-m. The
multiplayer view changes modified things to set /sim/current-view/?-offset-m
to zeros, and instead use /sim/view[]/config/?-offset-m. This was so
that multiplayer views could be implemented simply by prefixing with
/ai/models/multiplayer[]/set/ to get the right offsets.

We still added in /sim/current-view/?-offset-m, but these were usually zero.

However some aircraft write to /sim/current-view/?-offset-m, and assume that
values must include the /sim/view[]/config/?-offset-m. E.g. the spaceshuttle
does this in order to simulate SRB shaking. This results in the offset being
included twice, which breaks things.

So this commit restores the original handling of /sim/current-view/?-offset-m
by doing an additional subtraction of /sim/view[]/config/?-offset-m. It also
avoids resetting /sim/current-view/?-offset-m to zeros when the view changes.

This results in views working for user aircraft, user aircraft that do custom
view handling, and multiplayer aircraft.
2019-08-12 17:59:49 +01:00
Bertrand Coconnier
0b56397562 Sync'ed JSBSim
- [Backward compatibility breakage] Gyros are now measuring rotation rates instead of rotational accelerations. Gyros that measure rotational accelerations do not exist in the real world.
- Output properties of flight control elements are no longer tied. This saves a lot of spurious warning messages and allows direct references of the same properties among several flight controls.
- Water vapor in the atmosphere is now managed through its mass fraction rather than its partial pressure. The former being the physical quantity that is conserved when pressure and temperature vary.
- Check that there are at least 3 contacts before trying to trim on ground.
- ECEF to ECI frame conversion has been moved from FGLocation to FGPropagate and FGInitialConditions since not all FGLocation need to manage that.
- Gravity computations have been moved to FGInertial because it is where all the constants to compute gravity are stored. This reduces the amount of data transmitted between FGInertial and FGAccelerations.
- Added optional transmission of the simulation time for FG UDP interface
- Code cleanup and use more C++11 idioms (override, constexpr, range-based for loop, etc.)
2019-08-10 13:10:28 +02:00
Julian Smith
377d1c9464 src/Viewer/view.cxx: improved zooming in Tower View AGL.
We now keep the aircraft in view when zooming, sacrificing the view of the
ground. I.e. we move the bottom of the view upwards, while keeping the top of
the view unchanged.
2019-08-10 00:02:44 +01:00
Julian Smith
1facdee3f6 src/Viewer/view.cxx: In Tower View AGL, fixed handling of aircraft with no chase-distance.
Recent changes to ViewPropertyEvaluator mean that
ViewPropertyEvaluator::getDoubleValue() doesn't handle default values very
well, so we were ending up with chase-distance of zero, not the default -25,
leading to over-zooming.
2019-08-09 14:02:29 +01:00
Julian Smith
4f4a793f80 src/Environment/environment_mgr.cxx: update nearest tower more frequently.
Changed interval from 30s to 10s - it appears to take only around 0.1ms so this
seems ok and improves the user experience.

---------------------
2019-08-09 12:56:19 +01:00
Julian Smith
a89fbc40aa src/Viewer/view.*: avoid confusing zooming artifacts in Tower View AGL mode.
Un-caching of scenery appears to happen fairly often, and means that we fail
to find height of ground under aircraft, so we now go back to the last found
value instead of using zero.
2019-08-09 12:56:19 +01:00
Julian Smith
e3b3f40f0a src/Viewer/view.*: in Tower View etc, use tower nearest to the multiplayer aircraft. 2019-08-09 12:56:19 +01:00
Julian Smith
c2f542b085 src/Environment/environment_mgr.cxx: find nearest airport/tower to viewed multiplayer aircraft.
This allows Tower View etc to use nearest tower when vewing remote multiplayer
aircraft.

Also force an update of nearest airport whenever multiplayer view changes, to
reduce delay before Tower View works.
2019-08-09 12:55:24 +01:00
Julian Smith
da5fe03851 src/Viewer/ViewPropertyEvaluator.*: added support for dumping info about a single spec. 2019-08-08 11:31:44 +01:00
Julian Smith
83e98653c7 src/Viewer/view.cxx: fix fly-by view offset.
Need to treat /sim/view[]/config/root="" as "/".
2019-08-08 11:30:30 +01:00
Julian Smith
3b77ca4ce8 src/Viewer/view.: removed some now-unused code. 2019-08-08 11:30:12 +01:00
Ferran Obón Santacana
a0f47c151c Fix shadowing of static variable in ITM adiff() function 2019-08-07 16:02:45 +02:00
Julian Smith
af538746ac src/Viewer/viewmgr.cxx:FGViewMgr::setView(): don't call update(0).
This fixes transient view corruption when view is changed (e.g. by v or V).
2019-08-05 07:33:26 +01:00
Julian Smith
92c934f410 src/Viewer/ViewPropertyEvaluator.*: fixed bug with non-existent property nodes.
The fix is to call globals->get_props()->getNode with create=true, so that we
get to hear about changes to property nodes that do not currently exist.
2019-08-05 07:33:26 +01:00
Julian Smith
f00cfeaa02 src/Viewer/view.cxx: use /sim/current-view/view-number-raw.
Requires latest fgdata, and fixes problem with non-sequential view numbers,
e.g. on 777.
2019-08-05 07:33:26 +01:00
Torsten Dreyer
ca2072bf74 silence a warning (initialization order) 2019-08-01 17:34:11 +02:00
Torsten Dreyer
2ba77f7f73 ints can't be NULL 2019-08-01 17:29:12 +02:00
Torsten Dreyer
d34bcf0422 whitespace formatting issues. No functional change 2019-08-01 17:26:43 +02:00
Scott Giese
f55d7c3c37 [ViewPropertyEvaluator] assert does not compile. 2019-07-29 10:31:33 -05:00
Richard Harrison
e8a50475ec Mutiplayer: increase log level for potential problems;
This is partly experimental to see how often these occur; but also errors in MP packets should be more visible to the developer.
2019-07-29 14:33:45 +02:00
Julian Smith
d71f8daa86 Revert "src/MultiPlayer/multiplaymgr.cxx: don't overwrite /sim/multiplay/visibility-range-nm if already set."
This reverts commit 4a067e721f.
2019-07-27 15:42:17 +01:00
Julian Smith
f770dc1c50 src/Viewer/viewmgr.cxx: FGViewMgr::unbind(): call new ViewPropertyEvaluator::clear().
Frees all ViewPropertyEvaluator's SGPropertyNode_ptr's.
2019-07-27 08:47:28 +01:00
Julian Smith
dfb94c6cc6 src/Viewer/view.*: use new ViewPropertyEvaluator system.
Allows recently-modified multiplayer View code to run without overheads.
2019-07-27 08:47:28 +01:00
Julian Smith
bf29e469b0 src/Viewer/ViewPropertyEvaluator.*: added ViewPropertyEvaluator system.
Evaluates and caches nested properties.
2019-07-27 08:47:17 +01:00
Julian Smith
e778848dcb src/Viewer/view.cxx: fixed breakage of /sim/current-view/internal.
Breakage was introduced by the Tower AGL / multiplayer view changes.
2019-07-26 18:59:59 +01:00
Bertrand Coconnier
2fe0137e92 [JSBSim] Fixed a actuator SEGFAULT when triggering "hardover" without specifying <clipto>. 2019-07-24 23:15:40 +02:00
Julian Smith
f666a551b3 src/Viewer/view.cxx: Fix bad initialisation of SGVec3d's.
SGVec3d's default constructor leaves the fields uninitialised, which seems to
sometimes break fg with lots of NaN-related diagnostics.

The fix is to use SGVec3d::zeros() instead.

Also call resetOffsetsAndFOV() from the View::View() constructor, to ensure
that things are set up consistently.
2019-07-22 14:05:54 +01:00
Julian Smith
9a67910899 src/MultiPlayer/multiplaymgr.cxx: don't create view 8.
View 8 used to be new Tower View AGL view, but this interfered with hard-coded
aircraft view numbers. So fgdata now has removed Model View, meaning Tower
View AGL uses Model View's old number (7), which keeps sequential view numbers
unchanged.
2019-07-20 22:04:35 +01:00
James Turner
ed0a009224 Merge /u/cgdae/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/166/
2019-07-18 20:21:36 +00:00
James Turner
f643100dad Avoid a warning when inserting nil into a FP
This avoids the warning when procedure construction fails, and we have
a nil result rather than an empty vector as the arg.
2019-07-15 14:37:29 +01:00
Julian Smith
5990ba92f8 src/MultiPlayer/multiplaymgr.cxx: use std::initializer_list instead of C array.
After review. This simplifies iterating.
2019-07-04 13:16:22 +01:00
Julian Smith
2888eb00de Various fixes to view/multiplayer code after review.
src/MultiPlayer/multiplaymgr.cxx
src/MultiPlayer/multiplaymgr.hxx
    removed starts_with() and ends_with() - already provided in simgear::.
    removed output() fn for SGPropertyNode, as unused.
    added makeStringPropertyNameSafe().
    FGMultiplayMgr::addMultiplayer(): use std::find_if() to find model file.
    added FGMultiplayMgr::subsystemName().
src/Viewer/view.cxx
src/Viewer/view.hxx
    removed getDoubleValue() as not required.
    moved agl code into new View::handleAGL() fn.
    renamed View::Damping::setGet() => View::Damping::updateTarget().
2019-07-04 13:16:22 +01:00
Julian Smith
a0ee3a4cc4 src/Viewer/renderer_legacy.cxx: fixed compiler warning about initialisation ordering. 2019-07-04 13:16:22 +01:00
Julian Smith
4a067e721f src/MultiPlayer/multiplaymgr.cxx: don't overwrite /sim/multiplay/visibility-range-nm if already set.
This allows it to be set e.g. in ~/.fgfsrc with --prop.
2019-07-04 13:16:22 +01:00
Julian Smith
5772325bc6 Allow most default views to work on multiplayer aircraft as well as the user's aircraft.
Currently this works for all the default views except for Tower Look From (for
which it doesn't really make sense) and Fly-by View.

We now search for and load a -set.xml that matches the model .xml,
when new multiplayer aircraft is set up. This allows us to find view
offsets etc, e.g. allowing cockpit and helicopter views to work with
multiplayer aircraft. Properties from the -set.xml are placed into
/ai/models/multiplayer[]/set, so for example viewing offsets are in
/ai/models/multiplayer[]/set/sim/view[]/config/target-{x,y,z}-offset-m. We also
copy the aircraft's chase-distance into the view config params, similar to how
fgdata:defaults.xml does for the user's aircraft. And we also fill in views'
missing offsets from the Helicopter View config; e.g. this enables the new
Tower View AGL to show aircraft correctly centred, despite aircraft currently
not having this view defined in their -set.xml. [We don't currently attempt to
cache or reuse -set.xml data.]

Have ensured that view position responds to mouse movement in the same way for
viewing the user's aircraft as for multiplayer aircraft (previously, Model View
reversed the affect of vertical mouse movements).

Added new Tower AGL view. Behaves similarly to Tower view, but automatically
scales and pans vertically in order to always show the vertical range
extending from just above the aircraft down to the ground immediately below
the aircraft. We use aircrafts chase-distance as an indication of size. We
damp the ground level value to reduce the viewing jumping around too much
e.g. if the aircraft flies over buildings. The amount of damping is set by
fgdata:defaults.xml's lookat-agl-damping value.

Fixed problem where Tower View eye position moves slightly as target
aircraft heading changes. This was caused by us unnecessarily applying the
aircraft-centre correction to the eye position.

src/FDM/flight.cxx: also make /orientation/true-heading-deg. This allows
local orientation to be used like multiplayer orientation, which only
has /ai/models/multiplayer[]/orientation/true-heading-deg. [A better fix
might be to replace all occurrencies of /orientation/true-heading-deg with
/orientation/heading-deg, but this would be a rather large commit.]

Details:

src/Viewer/view.*: removed View::updateData() as is no longer required.

src/MultiPlayer/multiplaymgr.cxx: use helicopter view target offsets as
defaults. E.g. in tower view agl, aircraft won't currently be defining these
offsets. More generally, this allows aircraft to define target offsets only in
helicoter view.

src/FDM/flight.cxx
    FGMultiplayMgr::FillMsgHdr(): Added tie of /orientation/true-heading-deg to
    get_Psi_deg, so it duplictes the existing /orientation/heading-deg.

src/MultiPlayer/multiplaymgr.cxx
src/MultiPlayer/multiplaymgr.hxx
    FGMultiplayMgr::addMultiplayer(): look for and load -set.xml that matches
    the model. Patch various view-related things up in similar way to what we
    do for the user's aircraft, so that multiplayer views work.

    Made FGMultiplayMgr::getMultiplayer() public, so it can be used by
    src/Viewer/view.cxx.

src/Viewer/view.cxx
src/Viewer/view.hxx
    View::View(): Added lookat_agl, lookat_agl_damping params for new Tower
    View AGL. Preserve user's field-of-view in separate variable so that Tower
    View AGL can modify the actual field of view independently.

    Added view_index param so that we can find multiplayer view[]/config/
    properties.

    getViewOffsets(): new fn that finds view offsets for user aircraft or
    multiplayer aircraft.

    View::recalcLookFrom() View::recalcLookAt: Lots of changes to allow things
    to work with multiplayer aircraft. View::recalcLookAt() can now do Tower
    View AGL.

    View::Damping: support for damping, used by Tower View AGL. Might be good
    to use this for other damping.

    View::updateData(): removed, as calculations are now all done inside
    View::recalc*().

    put properties {x,y,z}-offset-m into new View::_adjust_offset_m member
    instead of _offset_m. This avoids confusion between a view's offsets and
    the offsets added in by the user via the 'Adjust View Position' dialogue.

src/Viewer/viewmgr.cxx
    FGViewMgr::init(): pass view number to
    flightgear::View::createFromProperties().
2019-07-04 13:16:22 +01:00
Edward d'Auvergne
34a6cb3c74 SGSubsystem classes: Registration of all subsystems. 2019-07-01 14:51:32 +02:00
Edward d'Auvergne
d259c70560 SGSubsystem classes: Addition of staticSubsystemClassId() to all subsystems. 2019-07-01 14:51:32 +02:00
Edward d'Auvergne
0eb8716d45 Autopilot components: Switch to using the subsystem name.
The _name, get_name(), and set_name() variables and functions have been removed.
The Component::get_name() function is now handled by Subsystem::subsystemId(),
and Component::set_name() replaced by SGSubsystem::set_name().  The
Component::_name variable is replaced by SGSubsystem::_subsystemId.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
332c240b38 SGSubsystemGroup: Removal of the subsystem group naming.
This is a partial reversion of 5253215065, the
changes of which are incompatible with the subsystem class IDs.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
fb5c36fc82 SGSubsystem classes: Renaming of the subsystem ID variables and functions. 2019-07-01 14:27:30 +02:00
Edward d'Auvergne
7a6e63ddb9 SGSubsystem classes: Subsystem and subsystem group API declaration standardisation.
This is a cleanup commit.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
60a2444766 SGSubsystem classes: Whitespace standardisation of the declarations.
This is a clean up commit prior to the subsystem API standardisation to simplify
the diffs.  It includes all SGSubsystem and SGSubsystemGroup derived classes.
2019-07-01 14:27:28 +02:00
James Turner
8428cd2a44 Revert "CommRadio: fix tuning 25Khz and 75Khz channels"
Revert this change - I will re-add the unit-tests again, but we need
a different approach for 8.3 stations, than what I did here.

This reverts commit 91cc83abb5.
2019-07-01 06:29:05 +01:00
James Turner
91cc83abb5 CommRadio: fix tuning 25Khz and 75Khz channels
In 8.3 mode, ensure that 25 and 75Khz channels can be tuned using the
abbreviated syntax (eg 118.02 for 118.025). 

As part of this, add test coverage of the CommRadio for basic and 8.3-
mode operation.
2019-06-27 15:45:53 +01:00
James Turner
4905aa255c Arrival procedure routing fixes
Deal with some cases in STAR -> approach routing better:

- when the IAF is the initial wpt of the approach primary sequence, 
  just accept this instead of warning. This is common in some XML
  files from Navigraph, for example EDDF

- don’t duplicate the IAF into the wpts returned by Approach::route
2019-06-24 16:37:56 +01:00
Torsten Dreyer
0d8d2addcf Autopilot member initialization order (removes warning) 2019-06-17 11:57:55 +02:00
Scott Giese
efcbdcfec2 [security] Prevent buffer overrun. 2019-06-15 21:30:54 -05:00
Scott Giese
47e3e7baed [Emesary] Fix compile on Linux. 2019-06-14 21:45:11 -05:00
James Turner
cfae6d2c9f CommRadio: fix power and noise/squelch
- when add-noise is false, mute noise completely
- if the CommRadio is not powered by the generic electrical system,
  work by default (as was previously the case)
2019-06-11 23:26:51 +01:00
Richard Harrison
6ebc91d3f7 Added mainloop frame notifications
Using Emesary Global Transmitter the following events are notified

* Frame Begin
* Frame End
* Mainloop started
* Mainloop stopped

This integrates with the background threaded Nasal Garbage collection (simgear:nasal/cppbind/NasalEmesaryInterface.hxx) and is also controlled by the properties as follows

* /sim/nasal-gc-threaded (true) - use background threaded GC
* /sim/nasal-gc-threaded-wait (false) - at the start of the frame wait for the previous GC thread to complete.

I initially thought that the wait at the start of the frame would be necessary; however in 100 or so hours of flight without the await for completion at the start of frame no threading problems (or any other problems) were shown; so nasal-gc-threaded-wait is defaulted to false which gives a slight boost in performance.

So what this does is to it removes the GC pause of 10-20ms every 4 seconds (test using the F-15). This change doesn't really give much extra performance per frame because normally GC is only performed when needed.
2019-06-11 14:38:38 +02:00
Richard Harrison
8c4334e3ae Increase severity of warning when trying to add a setlistener onto a tied property
- before this it was all to easy to miss being at DEBUG level and this is quite an important problem to be aware of for model developers
2019-06-11 14:38:38 +02:00
James Turner
4f4166e540 Use the global ATC sample group for the CommRadio
Remove the custom sample-group, and use the standard one, for the
comm-radio ATIS voice and noise.
2019-06-06 10:03:40 +01:00
James Turner
1a3daf39a0 ATC volume and settings passed to the group
Note sure this is strictly the correct place to do this, but it’s
where we do it for avionics, so following for now.
2019-06-06 10:03:40 +01:00
James Turner
3c56e74d07 Httpd: Avoid console spam by WS ping/pong frames 2019-06-05 17:41:07 +01:00
James Turner
0bea6153b0 Event input: button fire repeat 2019-06-05 17:41:07 +01:00
James Turner
5ffe96237f Fix a warning 2019-06-05 17:41:07 +01:00
James Turner
309aaa794f Flite always compiled now. 2019-06-03 16:51:08 +01:00
James Turner
688f49b487 Convert comm-radio to AbstractInstrument 2019-06-03 15:24:02 +01:00
James Turner
aad582f2c3 MarkerBeacon uses AbstractInstrument 2019-06-03 14:32:38 +01:00
James Turner
a26c671200 Migrate transponder to AbstractInstrument 2019-06-03 13:49:48 +01:00
James Turner
ff009bc58f Remove ‘X Double-scroll’ workaround
Remove this since it’s causing some other issues, let’s see if it
really still an issue on different platforms.
2019-06-03 11:54:25 +01:00
Ganael Laplanche
66e6afb449 Avoid crashing when udev_device_get_parent() returns a NULL pointer 2019-05-29 12:06:07 +02:00
James Turner
bd2c524b21 HID input: more debug output 2019-05-27 16:06:27 +01:00
James Turner
d8b6fbfef0 macOS / DBus : avoid abort on startup
Don’t do the fgOSDisableScreensave DBus stuff on macOS - there is no
global DBus daemon configured by default.
2019-05-27 16:05:19 +01:00
James Turner
88a78dd314 Remove last hard-coded default airport ID
Neither Torsten nor I can recall why we continued to hard-code this,
so make it dynamic for now. When we remember why we hard-code it,
we can add a BigComment from future-James to future-future-James about
why not to do this again :)
2019-05-27 11:42:53 +01:00
James Turner
4ed410dc09 Adjust code for some older GCC versions
Implicit conversion from raw-pointer to std::unique_ptr<T> was failing,
use a stub replacement for std::make_unqiue to wrap this up cleanly.
2019-05-27 11:38:37 +01:00
James Turner
c6feaafe2a Merge /u/fgarlin/flightgear-src/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/164/
2019-05-22 12:54:52 +00:00
Fernando García Liñán
fa4ef2ab52 Added a property to indicate compositor support 2019-05-20 23:44:16 +02:00
Fernando García Liñán
b9e3ed67f0 Compositor: Fixed intersection checking for hotspots 2019-05-20 22:53:16 +02:00
Erik Hofman
8e2b2ff327 Add cstring 2019-05-20 14:17:36 +02:00
James Turner
4915b7d3a5 Merge /u/dancliff/flightgear/ branch fix_for_AI_radius into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/163/
2019-05-18 15:41:28 +00:00
Dan Wickstrom
c6e91d8751 Check for valid value when updating AI lod radius. 2019-05-18 11:30:37 -04:00
James Turner
910bd2c0fd Fix for sub-model initial offsets
The offset in body coordinates is needed by the FGAIBallistic in some
cases, restore this.
2019-05-18 16:20:31 +01:00
Dan Wickstrom
35c24ce5d4 Update radius of AI model after model data is loaded - prevents rendering artifacts at near/far camera boundary. 2019-05-18 07:10:40 -04:00
James Turner
2266c27930 Merge /u/legoboyvdlp/flightgear-src/ branch tcasPatch into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/162/
2019-05-17 09:03:52 +00:00
legoboyvdlp R
ee4f4a1273 TCAS: adjust property names to correct format 2019-05-17 08:48:26 +01:00
James Turner
955138d06e Avoid a crash on HID devices with no name. 2019-05-16 11:11:19 +02:00
Stuart Buchanan
5f2f72a4eb Fix AI Scenarios
Due to e43fe82094 models in AI scenarios were
being searched down the AI/Aircraft and Aircraft paths, where in fact
they are by default a full path from FGDATA.

This fixes the problem by setting DATA_ONLY as the search order.
Other search orders can be set in the scenario file by setting
the search-order tag to "DATA_ONLY", "PREFER_AI", "PREFER_DATA"
2019-05-15 21:09:49 +01:00
legoboyvdlp R
16b178a2d9 TCAS Instrument: add configuration options 2019-05-14 19:03:26 +01:00
James Turner
f159b98224 Fix some warnings from procedures loader 2019-05-13 14:41:28 +01:00
Bertrand Coconnier
b486273e0b [JSBSim] Add Windmilling flag
The flag allows to disable the windmilling of Turbine engines.
2019-05-08 16:39:26 +02:00
Bertrand Coconnier
0635380708 Restored humidity simulation in atmosphere.
Based on the dew point temperature supplied by FG, JSBSim updates the atmosphere density and computes all the usual parameters (RH, vapor pressure, saturated vapor pressure, etc.)

The mass fraction of water per unit of air mass is capped according to the record high from ISA 1976 standard atmosphere. As a consequence, at very high altitudes, air is always extremely dry (approx. 30 ppm i.e. 30 parts per million) whatever the conditions at sea level.
2019-05-08 16:11:06 +02:00
Bertrand Coconnier
c934348513 Remove the MSIS and Mars atmosphere files since they are not used. 2019-05-08 15:04:31 +02:00
Richard Harrison
50d4b37a7d Nasal timestamp - add elapsed uSec 2019-05-07 05:16:37 +02:00
Stuart Buchanan
1d1096d6f7 All start from parking position with no ground net
Fix for https://sourceforge.net/p/flightgear/codetickets/2125/

Previously, selecting a non-pushback parking position from the l
auncher that did not have a ground network resulted in the
aircraft being placed in the center of the airport.

This resolves the problem by creating a default segment simply
moving forward 2m.
2019-05-04 17:43:33 +01:00
Richard Harrison
7db06300c0 Nasal binding for SGTimeStamp via maketimestamp
usage:

var timer = maketimestamp();

timer.stamp(); # start timing

print("elapsed ",timer.elapsedMSec(),"ms");
2019-05-02 07:31:37 +02:00
Lars Toenning
ff7db27cd1 swift: Add version number check 2019-04-30 10:35:30 +02:00
Lars Toenning
cea342a064 swift: Getting pressure altitude 2019-04-30 08:16:38 +02:00
Florent Rougon
9b019f6b72 FGJoystickInput: increase MAX_JOYSTICKS from 10 to 16
Since PLIBjs uses joyGetDevCaps()[1] on Windows and this function
accepts joystick ids from 0 to 15 (-1 being special), setting
MAX_JOYSTICKS to 16 ensures that FGJoystickInput::init() can scan all
joysticks that joyGetDevCaps() is able to report about.

[1] https://docs.microsoft.com/en-us/previous-versions/dd757105(v%3Dvs.85)
2019-04-29 12:54:03 +02:00
Richard Harrison
9121079cfe Disable time easing if ctrl key pressed. 2019-04-28 19:40:26 +02:00
Richard Harrison
1399640d79 Use OSG to find out the maximum supported texture size
The DDS Texture cache will auto resize textures that are larger than this value.
2019-04-28 19:40:26 +02:00
Richard Harrison
d3ce7adc95 NasalTimers; ensure unique name as this is required to identify the timer for certain operations (e.g. stop) 2019-04-28 19:40:26 +02:00
Richard Harrison
d2a179f1f3 Multiplayer: do not transmit the transmission-frequency-hz 2019-04-28 19:40:26 +02:00
James Turner
bac5d6c713 Windows: read Unicode command line
One more step in full Unicode support.
2019-04-27 18:54:13 +01:00
James Turner
9d71d09072 Enable HID-input on Windows 2019-04-27 18:54:13 +01:00
Bertrand Coconnier
3539b13985 Stricter syntax checking for JSBSim.
JSBSim was not checking the tag names inside <test> and <condition> statements and this has led to abusive use of tags unsupported by JSBSim such as <and> and <or>. The problem is that JSBSim was not interpreting the <or> statement as the user meant it: JSBSim interpreted it as <test logic="AND"> while the user obviously meant <test logic="OR">. As a result JSBSim silently swallowed the tag and gave results which were not was the user expected without any obvious indication about what was going wrong.

As a result, this commit implements stricter syntax checking and rejects illegal tags within <test> and <condition> statements.

This commit also introduces stricter checking on XML elements which allow either a real value or a property name to be used. JSBSim now rejects the statements where the property name is specified inside a <property> statement. For example, the follwoing statement is rejected:

<clipto>
  <min> <property> /fdm/jsbsim/some/property </property> </min>
...

The correct syntax being
<clipto>
  <min> /fdm/jsbsim/some/property </min>
2019-04-27 12:29:22 +02:00
Lars Toenning
aaa753d169 swift: Fixed wrong startup message 2019-04-26 09:37:37 +02:00
Lars Toenning
21124e7b7e swift: CMake adjustment 2019-04-26 09:37:17 +02:00
James Turner
b83c069b0b Move power-btn and operable props into base class
AbstractInstrument now handles a generic power-btn and operable
property, and hence includes them in the serviceable-and-powered
check.
2019-04-25 17:11:50 +01:00
James Turner
40b96fef48 Convert ADF and (old) NavRadio to use new base class
This enables separate power-supply for each installation.
2019-04-25 17:11:50 +01:00
James Turner
9cd8ccae80 Merge /u/fgarlin/flightgear-src/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/157/
2019-04-25 12:52:46 +00:00
Dan Wickstrom
1948304157 Fix problem where AI planes are placed on top of user aircraft when user either selects a specific spot or user selects parking to be an available spot. 2019-04-25 11:39:41 +01:00
James Turner
6261b71774 Add AbstractInstrument base class and convert DME
Base class handles some common instrument features, such as the
serviceable node and electrical supply. The electrical supply node
and minimum voltage to operate can now be set in the configuration
via <power-supply>/path/to/output/volts</> and <minimum-supply-volts>
2019-04-24 18:56:56 +01:00
Fernando García Liñán
e0507e9095 Fixed the aircraft showing on top of the splash screen when relocating/resetting 2019-04-23 13:21:19 +02:00
James Turner
b2bedfd485 Fix typo in submodels commit 2019-04-22 11:58:55 +01:00
James Turner
ea336af4dc Submodel offset supports pitch/yaw values
Reported by Stewart Andreason
2019-04-19 10:15:36 +01:00
James Turner
79562bcf31 Avoid crash on Cmd-Q exit of the app on macOS
On this code path, AppKit uses exit, rather than letting main run as
normal. We handle most things via C++ destructors, which do run, but
Qt is happier if we clean it up explicitly.
2019-04-17 22:53:10 +01:00
James Turner
e2ed179f4c Temporarily log out UI languages on launcher start
This is to help with diagnosing:
https://sourceforge.net/p/flightgear/codetickets/2121/
2019-04-17 15:11:23 +01:00
James Turner
4e8e69b4f8 Migrate invert-mouse-wheel setting from pre 2019.x
Flip the sense of this property, since the interpretation in SG is
also flipped now.
2019-04-11 20:40:17 +01:00
James Turner
4d562e2a90 Check existence of an OpenGL extension 2019-04-11 11:36:22 +01:00
Lars Toenning
85acefab95 Swift: initial support 2019-04-11 11:36:22 +01:00
Richard Harrison
8e1e6c8254 AI Traffic - better integration with terrasync.
- allow on demand update

new property traffic-manager/active indicating that AI Traffic is running
2019-04-07 09:00:01 +02:00
Stuart Buchanan
ff12994554 Execute load/unload Nasal for both detailed and AI
Previously only the first of a detailed/bare AI model tuple's Nasal
would be executed when the model is loaded.  This loads both.
2019-04-06 22:22:02 +01:00
Bertrand Coconnier
f011d5f567 JSBSim bug fixes
- Fixed the scripts end time computation
- Fixed nested tests in switches
- Simplifications to the computation of the aerodynamics angles alpha & beta
- Account for the contact transition in the gear compression speed
- Fixed docs in FGTank
2019-04-06 23:09:36 +02:00
Florent Rougon
2720d9fd9f Minor improvements to loading of nav.dat files
- simgear::strutils::readNonNegativeInt<unsigned int>() is better than
  std::stoul() at detecting and reporting erroneous input (for one, it
  checks that the given string *represents* an integer that fits in the
  specified type, as opposed to just "starts with digits").

- The format version is now an unsigned int (just because it's largely
  enough and simgear::strutils::readNonNegativeInt<unsigned long, 10>()
  isn't instantiated for now).

- The format version is now printed to the log (it was already for
  apt.dat files, but not for nav.dat files).
2019-03-28 07:44:59 +01:00
Florent Rougon
378999dd80 Improve parsing of apt.dat header
Properly report errors in the line that is supposed to contain the
format version of an apt.dat file.
2019-03-27 08:31:09 +01:00
Florent Rougon
8fbbf91270 Prevent a segfault when parsing malformed nav.dat files
Instead of doing an illegal memory access (to fields[0]), properly
report the problem when the line that is supposed to contain the format
version of a nav.dat file is empty.
2019-03-27 07:57:24 +01:00
Richard Harrison
f014e8825d FGComm: added listener for comm volume
Without this listen volume only changed on comm retune / PTT release
2019-03-27 00:28:20 +01:00
James Turner
64eaf6fe03 Fix for route-path when leg 0 is not a runway
Avoid doing turn-computation for the first waypoint, even if it’s not
a runway. Add a unit-test to cover this case.

Reported by Josh Davidson
2019-03-26 22:50:46 +01:00
James Turner
7c2a5e9e99 FlightGear support for queued commands
This enables queued commands to be processed once per main event loop.
At present this is done after subsystem updates.
2019-03-24 17:59:23 +00:00
James Turner
6860627dea Tweaks to launcher diagrams, to debug parking clicks
Adding some info/qInfo log output, to try and diagnose missed clicks
reported by some users.
2019-03-23 14:46:03 +00:00
Richard Harrison
8db784bf17 FGcomm: PTT usage and volume
- PTT will now use whatever channel is selected; non zero simply means PTT active.
- The volume as set in the comm[]/radio will now be used as a factor on the FGComm volume
2019-03-21 17:56:59 +01:00
James Turner
669a80216d Launcher: fix aircraft switching on update
Remove some obsolete code which caused the current aircraft to get
switched unexpectedley when updating
2019-03-20 17:09:12 +00:00
Richard Harrison
b9dc64ab87 FGComm; logic change to disconnect comm when selected channel set to 0.
It will be reconnected if PTT is set; and not disconnected until selected channel is again set to 0.
2019-03-20 15:13:11 +01:00
Richard Harrison
b42969ae91 Add support for FGCom multiple radio support
PTT now uses an int channel number (0 means not pressed, 1 = comm radio 1 (index [0]),etc...)

/comm-radio-selected is the default comm channel to use. This should usually be the same as will be set by PTT into /controls/radios/comm-ptt

However PTT will switch the FG comm inbound and outbound frequency to whichever radio was PTT'd.

New properties also set in multi-player to indicate the transmission frequency and normalised power (currently just set to 1.0)

13001(int)        : sim/multiplay/comm-transmit-frequency-hz
13002(short-norm) : sim/multiplay/comm-transmit-power-norm
2019-03-19 21:20:17 +01:00
Richard Harrison
a9761bb3ba Use simgear::strutils::replace instead of regex for compatibility. 2019-03-17 18:22:04 +01:00
Richard Harrison
c686f61817 Configurable METAR url
Use environment/realwx/metar-url if present; otherwise default to hardcoded value.

format: https://tgftp.nws.noaa.gov/data/observations/metar/stations/[station].TXT

i.e. [station] is replaced with the required station.
2019-03-17 00:45:31 +01:00
Richard Harrison
a81607049f Merge /u/fgarlin/flightgear-src/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/153/
2019-03-07 15:23:30 +00:00
James Turner
d5ce11ce55 Merge /u/dancliff/flightgear/ branch launcher_addons_merge into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/151/
2019-03-04 15:20:44 +00:00
Dan Wickstrom
1e858767b1 Modifications to launcher to load Add-on modules and view related metadata. Each module can also be selectively enabled with a checkbox. Fixes also submitted by Florent Rougon. 2019-03-03 12:59:48 -05:00
James Turner
1183d282ae Avoid copying SGShared<FGTaxiNode> in ground-net
This makes some common iterations in the AI traffic code faster,
since there is no thrashing of the atomic operations.
2019-03-03 12:12:03 +00:00
James Turner
87f63c4cec Property list: show group id/name in verbose mode
Patch from Henning to simplify debugging canvas trees
2019-03-03 11:56:52 +00:00
James Turner
d80537eb2f Ensure the splash logo is a file, not a dir
Thanks to Richard Harrison for catching.
2019-03-03 11:39:04 +00:00
Richard Harrison
a95daa2a5a add command line options to enable and disable DDS Texture cache. 2019-03-01 19:06:42 +01:00
Fernando García Liñán
ed276141c7 Compositor: Removed the option to change the CameraGroup cull masks. Instead, the FGRenderer sets the view master camera cull mask, which may be inherited by any pass that needs it. 2019-02-23 23:36:07 +01:00
Richard Harrison
8e35b7efc7 OSG 3.4.0 compilation fixes. 2019-02-20 19:12:02 +01:00
Fernando García Liñán
bec41e7e17 Compositor: FG now gracefully quits if no valid Compositor has been found. Added a command line option (--compositor) to choose the default Compositor. 2019-02-20 03:09:17 +01:00
Richard Harrison
16dedfe78f Merge /u/fgarlin/flightgear-src/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/149/
2019-02-19 07:29:05 +00:00
James Turner
c2fb01ccb7 Partial revert of METAR fix, now SimGear is fixed.
This reverts commit 2fdc24c109.
2019-02-17 19:03:19 +00:00
Richard Harrison
5253215065 Improvements to performance monitoring.
* Ensure that subsystems are named.
* Nasal timers are named appropriately
2019-02-10 18:07:07 +01:00
Bertrand Coconnier
f57d7329c2 Sync'ed JSBSim
- New system component linear_actuator from Adriano Bassignana.
- Bug fix of Euler angles computations in FGMatrix33 (a pure westward heading of 270 deg was erroneously converted to a pure eastward heading of 90 deg). This could make the aircraft trimming fail when spawning with a heading of 270 deg.
2019-02-10 10:25:56 +01:00
Stuart Buchanan
b166b523b2 Copy name into buffer on release builds
Problem seen with Nasal setChildren/setValues where names were not
being passed down the stack.  Identified as over-zealous IF_DEF
to remove unused variable compiler which meant snprintf was not being called
for non debug builds (see c177aeb623)

Fix is to change assert() calls to an naRuntime error, which ensures
that the len variable is always used and is
more appropriate as buffer overrun could occur in any release build if
someone tried to set a name of >1024 characters.
2019-02-09 18:11:56 +00:00
Scott Giese
2fdc24c109 METAR fix 2019-02-07 01:26:05 -06:00
James Turner
df7988fb49 Fix NaNs in the VSI when pressure reading is invalid
Detect zero/very low pressure reading and avoid generating NaNs in the
main update code. Thanks to Johnathan Redpath for the report.
2019-02-06 20:48:18 +00:00
James Turner
dee1998979 Less Boost. 2019-02-06 17:36:36 +00:00
Torsten Dreyer
d1116b0e25 fix "error: use of ‘n’ before deduction of ‘auto’" 2019-02-06 09:45:45 +01:00
Torsten Dreyer
c177aeb623 Silence some warnings about unused variables.
No functional change
2019-02-06 09:41:08 +01:00
Scott Giese
edce380c7b Fix missing header for OSG macros.
Patch provided by Stewart Andreason.
2019-02-05 21:48:05 -06:00
Scott Giese
8fc59cbc49 Fix missing header files. 2019-02-05 00:24:12 -06:00
Scott Giese
7fd7c599a2 Fix missing header file for strutils 2019-02-04 23:49:02 -06:00
Fernando García Liñán
e042364dd0 Compositor framework initial commit. 2019-02-04 18:03:38 +01:00
James Turner
a9a49bc2e6 Unboosting files
Use simgear::strutils replacements in places, C++11 features in others
2019-02-04 15:20:22 +00:00
Torsten Dreyer
f6046836c0 Try fix windows build (missing includes) 2019-02-03 21:39:27 +01:00
Torsten Dreyer
5b379f904f METAR id needs to be uppercase not lowercase 2019-02-03 21:17:30 +01:00
Torsten Dreyer
9eeda7d339 unboost the environment 2019-02-03 19:32:57 +01:00
Torsten Dreyer
983227f18f remove usage of boost_foreach in realwx_ctrl.cxx 2019-02-03 15:11:45 +01:00
Torsten Dreyer
8a190f853f unboost the autopilot 2019-02-03 15:11:45 +01:00
James Turner
1e0e7f7ffa Rename {ai}/controls/flight/longitude-mode
Assuming this should have been ‘vertical-mode’ all along, since the
corresponding other mode property is called ‘lateral-mode’. Make an
alias to the old name to keep existing scripts working.
2019-02-03 13:38:51 +00:00
Torsten Dreyer
e23f0bc059 unboost commradio and newnavradio 2019-02-03 13:43:04 +01:00
James Turner
8c43b622e5 Launcher: fix handling carrier argument 2019-02-03 12:12:00 +00:00
James Turner
49c4dc5213 Scenarios from FG_HOME, aircraft and add-ons
Enhancements suggested by Nikolai Verner-Christensen - support loading
scenarios from {FG_HOME}/Scenarios, {aircraft-dir}/Scenarios and
{add-on}/Scenarios. 

Additionally, allow passing the path to a scenario file to
 —ai-scenario, eg —ai-scenario=/home/jmt/FGFS/my-test-scenario.xml

When a scenario defines a carrier, and —carrier is used to request a
carrier start, we now auto-load the corresponding scenario, to give
a nicer user experience.
2019-02-03 12:12:00 +00:00
danw
1c4e146a43 Modifications to the Launcher to enable the management of Add-on modules 2019-02-02 15:46:09 -05:00
Richard Harrison
f05c0297c0 OSG < 3.4.x fixes
This will use the inherently unsafe versions of the load methods which can result in deleting an object (from the cache) that has just been loaded in the database thread.

Symptom OSG WARN deleting still referenced object.

branches next, origin/next
2019-01-26 18:20:52 +01:00
Richard Harrison
7ab07eb1c0 Ensure fonts list cleared in destructor.
This is part of work trying to track down a segfault that is caused after a replay session (F-15).
2019-01-26 18:20:52 +01:00
James Turner
305d555be4 Reduce log output at level=debug
These messages aren’t adding much based on my understanding, we can
re-add something more specific if needed.
2019-01-22 17:30:36 +01:00
James Turner
d6ae2e6aa0 Tweak pixel-ratio handling in the PUI camera 2019-01-22 10:50:55 +01:00
Richard Harrison
cbde4c90da optimise property usage for camera using local static for ratio. 2019-01-20 23:30:46 +01:00
Richard Harrison
d963aef562 OSG 3.5+ compatibility.
Still work to do here in implementing the methods; this just lets it compile and run.

Labelled with OSG:TODO
2019-01-20 23:28:32 +01:00
Richard Harrison
9639b63d44 Use readRef version of osgDB methods to give us thread safety 2019-01-20 23:26:58 +01:00
Richard Harrison
6e2443d268 Change to print exception type (inherited exceptions) 2019-01-20 23:26:58 +01:00
Richard Harrison
58314f359a Change screenshot filename to have date time
Format fgfs-YYYYMMDDHHMMSS[-#] where the # is for the rare case when there are multiple screenshots per second.

The change makes the filenames sortable based on date and slightly improves run time performance when there are a lot of screenshots in a particular directory
2019-01-20 23:26:58 +01:00
Richard Harrison
88f43a33a3 Remove messages that appear when no tile is loaded because it isn't present in the scenery
These get a little spammy when flying over areas without terrain and don't really serve much of a purpose.
2019-01-20 23:26:58 +01:00
James Turner
4deb61d0af Map dialog draws heliports now!
Patch from Daniel Wickstrom, with some style changes by James
2019-01-15 11:32:57 +00:00
James Turner
df537d6e57 Tolerate missing runways parsing procedures
Current Navigraph procedures contain runways we lack, skip these
procedures instead of failing to parse the data.
2019-01-14 16:46:38 +00:00
James Turner
fac110ca40 Airport-search can be filtered by type
Adjust the special NavCache function used for airport search, to
allow filtering by type (which is exposed in an upcoming patch to the
dialog code).

Patch by Daniel Wickstrom
2019-01-14 12:14:20 +00:00
James Turner
b3c72a6f2e Fix a crash clearing the flightplan runway 2019-01-12 23:40:51 +00:00
James Turner
8487ca7ee6 Add findByIdent to Nasal API 2019-01-12 23:40:51 +00:00
James Turner
416317e444 Nasal: allow filtering airport approaches by STAR 2019-01-12 23:40:51 +00:00
James Turner
4df6cb0558 Nasal: expose additional members on fixes/navaids
Add a ‘colocated_dme’ member to identify VOR/ILS pairings with DME. 
Also exposed the navaid unique ID for easy disambiguation.
2019-01-12 23:40:51 +00:00
James Turner
5affa13348 Nasal: expose airways data and via options 2019-01-12 23:40:50 +00:00
James Turner
d39bcca9cb Improve airway parsing in ICAO routes 2019-01-12 23:40:50 +00:00
James Turner
758518b248 Launcher: improve flight plan leg display 2019-01-12 23:40:50 +00:00
James Turner
612693c276 Via stores Airway ref instead of std::string
Avoid lots of ambiguity resolving airways, especially high- vs low-
level airways with identical idents.
2019-01-12 23:40:50 +00:00
James Turner
6fd5fcfda0 Add missing isType overload for FGFIx 2019-01-12 23:40:50 +00:00
James Turner
615c8433c1 Airway API tweaks to support FMC/routing 2019-01-12 23:40:50 +00:00
James Turner
c6aa7fee26 Hacking on airway loading logging 2019-01-12 23:40:50 +00:00
Bertrand Coconnier
9c7243e1c4 [JSBSim] Exports the fuel density to the property tree. 2019-01-12 15:40:09 +01:00
James Turner
6de242f184 Launcher: hook up ‘available parking’ option
Many cases of this option were not setup correctly, fix this so it
works as advertised.
2019-01-08 23:21:28 +00:00
James Turner
845e7c6bef Improved ‘is MP enabled’ check for pos-init
This fixes the MP detection check when selecting MP on the command-line
2019-01-08 23:20:51 +00:00
Richard Harrison
b56df3f1b7 Merge /u/janodesbois/flightgear-jano/ branch timemgr_mp into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/146/
2019-01-08 17:08:57 +00:00
James Turner
dd6294b5ea Red-sky: fix edge-case in NaN avoidance code
https://sourceforge.net/p/flightgear/codetickets/2087/
for discussion on this.
2019-01-08 11:08:23 +00:00
James Turner
b0dc850df1 Fix type of some numerical constants
Patch by Ron Haertel
2019-01-06 14:30:58 +00:00
ThomasS
2d5d26260e 1) model search order property in super class AIBase and overridden by sub classes.
2) model search order stored as the enum type in AIBase.
2019-01-06 13:57:22 +00:00
Bertrand Coconnier
e704d589f2 [JSBSim] Takes into account the amount of unusable fuel.
Properties /consumable/fuel/tank[*]/unusable-* supplied in the -set.xml file are propagated to the aircraft model and accounted for in the tanks management.
2018-12-31 00:59:21 +01:00
Bertrand Coconnier
466fb0979d [JSBSim] Added cyclic clipping for FCS components 2018-12-30 20:51:18 +01:00
Bertrand Coconnier
27ddcedad2 [JSBSim] Extend the usage of template funcs to all <function>. 2018-12-30 00:31:47 +01:00
Bertrand Coconnier
3267aaf5e0 Sync'ed JSBSim
* <function> and <fcs_function> that are only applied on constant parameters are now recognized and replaced by their result during initialization.
* Fixed a regression which prevented the wheels rotation speed to slow down while the gears were retracted.
* Added the ability to control the turbine engines spin down factor (thanks to Jonathan Redpath for the pull request).
* Internals : JSBSim has been refactored to use FGPropertyValue in many FCS components. This will allow consistent behavior accross the FCS components including the ability to prepend property names with minus signs '-' to indicate that the opposite sign of the property should be used.
2018-12-27 18:40:03 +01:00
James Turner
018e193a58 Improve Nasal log callback handling
(Was being leaked on reset)
2018-12-20 16:07:44 +00:00
jean pellotier
faf06b42a3 preparation for the lag correction based on time sync, instead of fixed
lag compensation, this is the time manager part.
- introduction of a pure steady clock initialised from system clock at init
- the mp protocol clock have an offset available (will be used
to sync the players, in case ntpd is not accurate or inavailable)
- got a way to see drift between system clock and the fg steady clock, mainly
to see how differents OS behave ...
2018-12-18 02:38:46 +01:00
James Turner
c3cd7b3978 Remove public use of sglog()::would_log() 2018-12-14 15:41:53 +00:00
James Turner
56cc96f280 Parse radial+offset from lat,lon waypoint 2018-12-13 13:46:53 +00:00
James Turner
738101942f Yasim ground friction (stiction) changes
Original code by Brendan Black, with changes / updates by
Daniel Wickstrom.
2018-12-11 15:23:56 +00:00
James Turner
5215e6fcfc Fix an unused var warning 2018-12-10 16:09:53 +00:00
James Turner
f14aa4e57f Navradio: move glideslope angle to NavRecord
Simplifies logic in testing code
2018-12-10 16:09:42 +00:00
James Turner
9339fd2375 Add some /sim/presets properties to setDefaults
Ensure these properties are always defined, but with default values,
to simplify usage.
2018-12-04 09:50:48 +01:00
James Turner
a9475bd0fa Basic nav-radio ILS testing
Complex cases still to be added, but this tests the basic reception.
2018-12-04 09:39:36 +01:00
James Turner
1f1060431f Avoid NaNs in environment code at extreme altitude
Avoid the ‘red sky zone’ when going to higher orbital altitudes
(thousands of km).

https://sourceforge.net/p/flightgear/codetickets/2087/
2018-12-04 09:39:36 +01:00
Richard Harrison
015742b28d LOD: Multiplayer fix
The problem was using FLT_MAX, FLT_MAX to disable a model; this tricked OSG into thinking that FLT_MAX was a valid range and therefore didn't do the update traversal (found by Stuart).

The correct technique to disable a model is to set the min/max range to 0,0

Also generally improved the way that the ranges are managed.
2018-12-03 06:19:04 +01:00
James Turner
6d68e36523 Simple argument parsing for Props protocol
Maps foo=bar arguments to the top-level arguments dictionary of the
command, as strings only. (We could add CMake style foo:type=bar in
the future if needed). Very basic but this enables a bunch of useful
cases, since SGPropertyNode will do value conversion from string on 
access.
2018-11-30 13:59:05 +00:00
Richard Harrison
c09f49e70c LOD: use FLT_MAX as the maximum value in setRange (rather than 100k)
- This is one/the reason for the carrier not being visible when viewing it closely (e.g on cat-1 when view zoomed in)
2018-11-26 21:54:48 +01:00
James Turner
1e104bbdfe Version the FG-root setting
This ensures fresh installs will see an empty value, and hence 
default to the shipped version.
2018-11-25 14:06:51 +00:00
James Turner
4956386b84 Launcher: disable magnetic bearing/headings
These don’t work right now (FG doesn’t support passing them in via
arguments) so disable them in the UI to avoid confusion.
2018-11-25 13:51:06 +00:00
James Turner
2f5df005df NavRadio updating via listener
- avoid updating the formatted frequencies each update()
- reset the station search timer when frequencies change

This should make the radio a bit more responsive (which aids testing
since we don’t need to wait for the search timeout when changing
frequencies)
2018-11-25 13:12:50 +00:00
James Turner
c7b28a1960 UNit-tests for the NavRadio
Still needs ILS and GS tests, but starting to be useful already.
2018-11-25 13:12:50 +00:00
Richard Harrison
1e636ce4cf Support for DDS Texture Cache
- pass texture cache control properties to simgear
 - /sim/rendering/texture-cache/cache-enabled
 - /sim/rendering/texture-cache/compress-transparent
 - /sim/rendering/texture-cache/compress-solid
 - /sim/rendering/texture-cache/compress

- support --texture-cache-dir command line option
- set max reported supported texture size during splashscreen.
2018-11-24 20:21:46 +01:00
Bertrand Coconnier
8742fee23d JSBSim : <function> now checks the number of its arguments. 2018-11-24 18:33:53 +01:00
ThomasS
a8b550ee95 fgcommands "add-aiobject" and "remove-aiobject" for adding/removing objects to the AI subsystem. 2018-11-21 09:28:44 +01:00
James Turner
0239d5ef44 Grid-view for the launcher 2018-11-14 17:11:13 +00:00
James Turner
df810f7970 Fix crash with invalid airway in route 2018-11-12 16:47:50 +01:00
James Turner
31f8f86e12 Fix an inverted flag in Radar calculation
https://sourceforge.net/p/flightgear/codetickets/2083/

Thanks to Jean Pellotier for spotting.
2018-11-08 09:43:29 +01:00
James Turner
2cd3036488 Improved launcher metric units support
For our Russian friends, especially. Also add preliminary support
for above-field elevations (needs FG changes)
2018-11-07 09:39:54 +01:00
James Turner
3b3c99777d Reduce level of a log message 2018-11-07 09:39:54 +01:00
James Turner
8cda76e92b Fix a launcher console warning 2018-11-07 09:39:54 +01:00
James Turner
68813d1c57 Fix missed case in ModelDataExtractor
handle QList<QObject*> case, needed for location:airport runway
and parking selection. Thanks to Jonathan Redpath for the catch.
2018-11-07 09:39:54 +01:00
Richard Harrison
88720a031b Changes to the model interior LOD management.
If a model is marked as <usage>interior</usage> there were a number of problems.

1 - the LOD setting AI/MP interior used the distance from the aircraft; this obviously doesn't quite work for when using the model view.
2 - with the way that models are now loaded as two LOD levels only the interior from the first model loaded (usually the lowest detail) would be considered or processed because the model loader had marked itself as already run (which it had, but not for the model that was actually just loaded.

(2) above could also be the cause of other things not working because the nasal model loaded would not be called, nor would the sound path be setup. There could be other things that aren't working properly because the assumption is that there is just one model.

The fix for (1) is to use the standard OSG PagedLOD and let it handle the details, so I've changed the interior to use this and removed the distane from ownship checks.

The fix for (2) is to use a map to decide if the model that has just finished loading has already been processed, and if not then proceed as normal.
2018-11-06 18:42:07 +01:00
Richard Harrison
e970db3c61 LOD ranges:
Change the single model case to always set the range on the only model rather than the constant modelHighDetail. This is a regressions caused by the change from 0 to modelHighDetail and the reordering the list. When there is only one model the setRange must always refer to model range index 0.

- This could have caused models to not display correctly.
2018-11-05 19:29:20 +01:00
Bertrand Coconnier
d3aa4b19a1 Bug fix for JSBSim.
The feature fail_hardover of the <actuator> component was not giving the correct output in some occurences when clipmax was smaller in absolute value than clipmin.
2018-11-04 17:03:46 +01:00
Bertrand Coconnier
4c7402fb23 Bug fix for JSBSim
Tables CORNERING_COEFF could not be used for BOGEY contact points.
No longer throw an exception when the `internal` keyword of a table is ignored.
The location where errors have been found are now reported.
2018-11-02 23:05:40 +01:00
Richard Harrison
c99ea20883 LOD ranges rework.
Rework the LOD ranges.

1. The scenery ranges are now deltas (avoids overlapping values)
2. The AI/MP pixel mode now has a default radius that is 20 for Aircraft, 200 for ships, 350 for carriers. This is a simple constant in a virtual function.
3. Added the ability to set the AI/MP ranges equal which means use the low detail model.
4. Changed high detail only to be indicated by a -ve number in maxRangeDetail
5. Re-ordered the range list to go from lowest detail at [0] to highest detail at the end. This is because OSG always loads the models starting from zero on the assumption that the detail increases with the index.

This fixes the pixel mode, which previously would use the radius of the parent which would be confusingly large, and unrelated to the actual size of the model. With the simple defaults that we have the pixel values set in the ranges won't exactly match the rendered size of the model on screen, but it will be a lot closer and more importantly meaningful.
2018-10-30 21:05:55 +01:00
Bertrand Coconnier
04eb045931 New features for JSBSim (not to be included in release 2018.3)
The following new features have been added to JSBSim:
* Added the ability to set up the starter and acceleration times of a turbine (parameters <n1spinup>, <n2spinup>, <n1startrate>, <n2startrate>).
* The <integrator> filter can now be reset to 0.0 by setting its <trigger> property to a negative value.
* The integration scheme of the <integrator> filter can now be chosen among "rect" (Euler), "trap" (Trapezoidal), "ab2" 2nd order Adams-BashForth and "ab3" 3rd order Adams-Bashforth
* The following functions can now be used in <function>: floor, ceil and fmod. Their functionalities are the same than the corresponding C/C++ functions.
2018-10-28 16:16:20 +01:00
Bertrand Coconnier
94e1cdc551 JSBSim bug fixes (candidate for cherry picking to release 2018.3)
The following bugs are fixed by this commit:
* PID integration with the 3rd order Adams-Bashforth was inccorect.
* The fail_stuck property of sensors (accelerometers, magnetometers, gyro, etc.) without a <lag> element was setting the output to zero instead of sticking to the last output value. Thanks to Jonathan Redpath (aka legoboyvdlp) for the bug report.
* When a sensor was stuck, the drift, gain, bias and quantization of the last output before being stuck were ignored. Thanks to Dennis J. Linse for the bug report.
2018-10-28 14:38:02 +01:00
James Turner
66d635dc9c Launcher: fix a bug when using MP server 0 or 1
Due to how the popup menu was refresh, using MP servers at index 0 or 1
didn’t work correctly. Change some logic and add a helper to make this
work reliably, without a second Repeater and dummy properties.
2018-10-25 12:10:42 +01:00
James Turner
df9c368099 PUI: change alpha composition mode.
This fixes the missing model-view text, but needs some wider testing,
since it may mess up some other things.
2018-10-25 00:04:54 +01:00
James Turner
07cb303e8c Fix for jumping view when right-dragging
This happens because we were not storing the new position when the
OSG event-adapter handled the event, which includes PUI

https://sourceforge.net/p/flightgear/codetickets/2073/
2018-10-24 22:16:51 +01:00
James Turner
951a3ea6ad Fix Windows build, missined windows.h 2018-10-24 14:28:58 +01:00
James Turner
8510776c1f Switch next to use trunk aircraft catalog 2018-10-23 12:08:28 +01:00
James Turner
00eec40d51 Fix JS header include path 2018-10-23 11:00:59 +01:00
James Turner
196aa472fb Fix crash on Ctrl-V in PUI 2018-10-23 11:00:40 +01:00
James Turner
49c3fc064a XLIFF: Fix loading of indexed strings 2018-10-13 21:22:18 +01:00
James Turner
2313f482a3 Add missing C-string include for strcmp 2018-10-13 09:07:32 +01:00
James Turner
dbb99ee550 XLIFF: fix null approved-attr handling 2018-10-13 08:42:05 +01:00
James Turner
53de09d151 Fix dumb commit for XLIFF approved-attr handling 2018-10-13 00:20:38 +01:00
James Turner
73be50b308 Event-input: axis interpolater support
Expand the range of filtering options on axis values to include the
optional use of an interpolation table, which gives many more options
when dealing with some devices.
2018-10-13 00:03:30 +01:00
James Turner
ae4fe62d5b Crashfix: props protocol invoking Nasal commands
The protocol was sending command args using a stack local SGPropertyNode,
which doesn’t work since FGNasalSys holds a reference
2018-10-12 22:25:34 +01:00
James Turner
adea824bd3 XLIFF parser ignores un-approved translations
As suggested by Florent, ensure we respect the XLIFF ‘approved’
attribute, so we can track translations which don’t work yet due to
PLIB limitations.
2018-10-12 22:24:33 +01:00
James Turner
8f67ddf896 Route-manager: expose new flight-plan values
There were existing properties for these values, make them attached to
the flight-plan values now, especially for cruise settings.
2018-10-12 15:27:51 +01:00
Florent Rougon
4c6a0467a6 Remove splash/ lookup prefix for the unstable-warning (nightly builds)
This was forgotten in commit 6d6e1809f0,
thanks to Mihajlo Tomić for the report.
2018-10-12 13:21:09 +02:00
James Turner
f819750287 Launcher respects --language arg if set 2018-10-12 11:37:39 +01:00
James Turner
1613b44c6a Text fix in ‘Install custom scenery’ dialog 2018-10-12 09:11:20 +01:00
Florent Rougon
6d6e1809f0 Fix translations handling in the splash screen
Don't use the splash/ prefix, it doesn't exist in our XLIFF files.
2018-10-12 07:38:09 +02:00
Florent Rougon
4ee9021eab Launcher: print the locale name when translations were successfully loaded 2018-10-11 22:37:33 +02:00
Erik Hofman
43c201d9d0 Fix an almost certain buffer overflow 2018-10-10 09:24:02 +02:00
James Turner
d7d37ae137 Launcher: further flight plan tweaks
Various improvements based on discussion here:
https://sourceforge.net/p/flightgear/codetickets/2066/
2018-10-09 17:14:23 +01:00
James Turner
180cf66077 Launcher: tweak sidebar icons 2018-10-09 10:25:50 +01:00
James Turner
1cbcae9795 Bugfix: fix range/ident priority of loaded wpts
When the lat-lon of a waypoint disagrees with the discovered ident by
more than a threshold, assume we have a DB mismatch, and just revert
to a basic wpt specified by lat-lon. This avoids inserting huge
legs by selecting a very distant navaid with matching ident

https://sourceforge.net/p/flightgear/codetickets/1814/
2018-10-08 16:40:25 +01:00
James Turner
b3bcfb084e Fix linux build: missing <cassert> include 2018-10-08 16:04:51 +01:00
James Turner
c450fa9f4e Flight-plan: improve GPX loading
- support elevation values
- parse the first/last points in case they are airports, and set
as the plan airports in this case.

https://sourceforge.net/p/flightgear/codetickets/2066/
2018-10-08 15:09:46 +01:00
James Turner
22c5c456cc Launcher flight-planning: UI to sync initial location
Show a prompt message to ensure the initial startup location matches
the flight-plan departure airport.

https://sourceforge.net/p/flightgear/codetickets/2068/
2018-10-08 13:31:33 +01:00
James Turner
290261d1ae Launcher flight-planning, allow GPX loading
https://sourceforge.net/p/flightgear/codetickets/2067/
2018-10-08 13:30:46 +01:00
James Turner
28f55889b0 Fix launcher ratings order and labelling
Had a dumb string naming glitch, and also we didn’t check for the
ordering of ratings being different when dealing with packaged
aircraft.
2018-10-08 12:31:27 +01:00
Bertrand Coconnier
8e05816b43 Bug fixes for JSBSim atmosphere model at very high altitudes
* Disables dew point transmission as the humidity model is not handling the case where the vapor saturation pressure gets higher than the ambient pressure.
* Removed computations for temperatures at very high altitudes as they don't match with the rest of JSBSim atmosphere model.
2018-10-06 19:24:06 +02:00
James Turner
6589c71f62 Tweaks to HID local descriptors 2018-10-04 23:21:05 +01:00
James Turner
1c08ca0e2d Launcher: don’t update already updating aircraft 2018-10-04 21:22:05 +01:00
James Turner
abbaf8f640 HID input: allow descriptors from XML
This allows ignoring the USB-supplied descriptor in favour of our
own, which might considerably better or less broken at least.
2018-10-04 17:43:36 +01:00
James Turner
6366dea197 HID event-input debugging
Adding more debugEvents-enabled log output to HDI input
2018-10-04 12:17:01 +01:00
James Turner
96cce67040 HID input: fix multi-device Nasal support
Ensure each laoded device gets a unique Nasal module name,
otherwise they combine with each other and Stuff Breaks(TM)
2018-10-04 12:17:01 +01:00
James Turner
1d20913b1f Fix initial launcher screen state
This showed up as environment page controls being active under the
summary logo image. Thanks to Nikolai Verner Christensen for spotting
the bug.
2018-10-03 08:41:50 +01:00
James Turner
40c0710f2b Change launcher pop-up to support scrolling
Use an internal window (instead of a real OS window) for popup choices,
and cap the maximum size. Use a scrollbar when the number of items is
too large, and adjust the position to fit in the window.
2018-10-02 14:19:14 +01:00
James Turner
cce3ae0268 Launcher: tweak aircraft list key handling 2018-10-01 14:22:48 +01:00
James Turner
c8ed3f02fe Close & delete telnet (props) channels on close 2018-10-01 13:52:01 +01:00
James Turner
9723f26f23 MirrorPropWebSocket: improve node recycling
Adjust logic for node recycling so common patterns observed with
remote canvas work correctly (remove + add of same nodes).
2018-09-30 10:16:31 +01:00
James Turner
2d348bd641 Change CAVOK visibility to 9999.0 metres
This should trigger automatic computation by AW.
2018-09-29 12:47:29 +01:00
James Turner
a66f0243bf Use GetUserPreferredUILangauges on Windows
This should accurately reflect the user's language preferences in the control
panel, unlike the previous method.
2018-09-28 12:09:24 +01:00
Scott Giese
994b752a27 Bug Fix #1999 missing "break"-s.
KLN89 case statements failing through.
Confirmed break is necessary to avoid text overlap.
Resolved.
2018-09-28 00:24:58 -05:00
James Turner
28629b65f2 Property mirror: handle request for missing nodes 2018-09-27 22:39:39 +01:00
James Turner
22bf5eb6e5 Launcher: tweak alignment of thumbnails
If the thumbnail is less than 172px wide, centre in the available
space. This ensures consistent alignment of the main content (name
and aircraft description)
2018-09-27 15:23:14 +01:00
Richard Harrison
54ba92afd8 Fix null pointer dereference during startup
(may happen at other times, but definitely happened to me on startup)
2018-09-25 16:53:06 +02:00
James Turner
8b25244d90 Performance: cache TCAS nodes on AI aircraft
Removes some remaining hot property lookups each frame
2018-09-24 15:34:20 +01:00
James Turner
421a5601c1 Launcher state naming fix (parked vs parking)
Ensure both ‘parked’ and ‘parking’ are handled by the launcher display
code and auto-state-selection logic.
2018-09-24 14:52:32 +01:00
James Turner
eb70f5edd4 Mac build fix for updated SDK 2018-09-22 17:23:50 +01:00
James Turner
518d3cbd0f Tweak launcher update timer to sleep the CPU
Fix the launcher keeping the main thread busy all the time (use a non-
zero timeout to ensure the dispatcher sleeps a bit)
2018-09-20 11:03:47 +01:00
James Turner
098c489ae0 Make —parking-id an alias for —parkpos 2018-09-20 10:26:48 +01:00
James Turner
110aec6039 Tiny code cleanups while doing other changes 2018-09-18 17:34:23 +01:00
Richard Harrison
4eaeb594ab NavDataCache: do not write to db in read-only mode 2018-09-15 18:06:23 +02:00
Bertrand Coconnier
3889af3170 Fixed compilation errors due to the synchronization of JSBSim 2018-09-15 17:00:27 +02:00
Bertrand Coconnier
6cc3d14032 Sync'ed JSBSim
- Fixed the Calibrated Air Speed (CAS) computations for supersonic velocities
- Fixed the Nlf (Normal load factor) sign
- Nlf can now be specified as an initial condition via the property ic/targetNlf
- Added blocking sockets to the input features
- Added a property to piston engines to get the AFR (Air to Fuel Ratio)
- Added conversion from m/s to ft/s
- Restored the initial conditions for engines running (-1 means all engines)
2018-09-15 16:45:42 +02:00
James Turner
ec0b515864 Whoops, fix a bad typo. 2018-09-15 10:57:02 +01:00
James Turner
72e1737aa6 Reset: wipe the Effect UniformCache 2018-09-13 23:52:52 +02:00
James Turner
47d33b5de3 Fix disabled appearance of ToggleSwitch 2018-09-12 12:04:38 +02:00
James Turner
43e3d7ef38 Electrical system: cache property nodes
Remove some hot spots in the electrical simulation, by caching
property nodes in two places.
2018-09-10 10:45:58 +01:00
James Turner
14a1390a68 Crash fix: warn doing fallback for heliport runways
Due to an apt.dat bug, EGEL (Coll) is actually a heliport (Eddystone
lighthouse) with zero runways. Guard against this case to avoid a
crash.
2018-09-10 10:44:49 +01:00
James Turner
ef98b667b4 AI: cache radar properties as nodes
When many AI objects, the cost of looking up the radar properties
for each object, each frame, is significant.
2018-09-09 15:24:52 +01:00
James Turner
ec488bf204 Launcher: fix missing translation annotations
Thanks to Sidi Liang for catching these.
2018-09-09 14:52:54 +01:00
James Turner
9549ac8027 Build fix: missing headers from project 2018-09-09 13:43:06 +01:00
James Turner
72239c9a52 Code cleanups while checking reposition performance
Some C++11 fixes and give FDMShell, Reply a subsystem-name
2018-09-09 13:42:51 +01:00
James Turner
f39b81c872 Launcher: update Advanced-weather handling
Use the information from Environment/environment.xml to init the
local-weather control properties.
2018-09-07 15:56:10 +01:00
James Turner
0747c2b373 Fix for a flight-plan / delegate crash
Catch a specific issue (-1 index not permitted for fp.current in Nasal),
but also catch
2018-09-07 15:17:55 +01:00
James Turner
e7f2c1439c Fix some integer signed-ness warnings 2018-09-06 17:12:12 +02:00
James Turner
35c5be004f Reduce CPU hit in FGTaxiSegment::unblock
size() is O(N), empty() is constant time.
2018-09-02 19:56:35 +01:00
James Turner
95be7220a2 Merge /u/martymac/flightgear/ branch clang7-FreeBSD into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/141/
2018-09-02 18:20:36 +00:00
Ganael Laplanche
63d6f0218b Use nullptr instead of NULL 2018-09-02 14:17:26 +02:00
Richard Harrison
7795ba60ff Added time statistics for the simulation host.
These are the time statistics that are the simulation code, which is basically everything except the rendering.

For a while I've wondered how efficient each of my JSBSim models are, and how much of our valuable frame time is spent on simulation modules.

Ideally the simulation modules should be taking 2-3ms, anything longer indicates a need to consider optimising things more.

These are the new properties that are added by this change:

/sim/rendering/sim-frame-count        Number of frames since start (or last time
/sim/rendering/sim-frame-count-reset  Reset statistics. Can be useful to reset monitoring after a slow startup
/sim/rendering/sim-host-avg-ms        Average amount of time spent in the "simulation" rather than rendering. This attempts to take into consideration the
                                      frame rate throttling but when throttled this figure is less reliable.
/sim/rendering/sim-host-total-ms      Total milliseconds since reset
/sim/time/frame-wait-ms               Current frame wait to meet throttling rate.
2018-09-02 13:47:55 +02:00
Richard Harrison
8271bb0456 TACAN: Add support for setting TACAN by frequency
set instrumentation/tacan/selected-mhz to the required frequency and the channel will be correctly set based on frequency matching in the TACAN db.
2018-09-02 13:39:52 +02:00
Richard Harrison
c923ae5b32 Set the active dialog property to the one that is on top after a dialog is closed 2018-09-02 12:27:31 +02:00
James Turner
1eab1722e5 Fixing some Clang warnings (C++98-isms) 2018-09-02 10:07:09 +01:00
James Turner
0d58220580 Flightplans: expose remaining new methods to Nasal 2018-09-02 10:06:43 +01:00
James Turner
0bb67136ab Launcher: only submit a FP when requested
Add an explicit toggle switch to the planning page so we don’t
always set an empty plan.
2018-09-02 09:32:13 +01:00
James Turner
5312ed9071 Launcher: allow copying the raw command line 2018-09-02 09:18:46 +01:00
James Turner
5ae818e526 Launcher: fix a compile error for Stuart 2018-09-02 09:18:21 +01:00
Ganael Laplanche
2756735d0c Fix build with clang 7 on FreeBSD 12-CURRENT:
error: reference to 'stack' is ambiguous

(see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230502)
2018-09-01 22:28:41 +02:00
Ganael Laplanche
ff69754756 Fix build with clang 7 on FreeBSD 12-CURRENT:
src/AIModel/AIFlightPlanCreatePushBack.cxx:96:48: error: ordered comparison between pointer and zero ('FGTaxiNode *' and 'int')

(see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230502)
2018-09-01 22:27:07 +02:00
James Turner
525cfadfa3 Reset: persist USERARCHIVE settings
Save user-setting properties to disk before beginning a reset, so
they are restored correctly.
2018-09-01 19:21:47 +01:00
James Turner
09fdfe358c Reset: ensure Nasal shutdown is clean
Some improvements / bullet-proofing while trying to track down the
slow-on-reset issue.
2018-09-01 18:53:45 +01:00
James Turner
5cc9b4f127 Launcher: remove some debug output 2018-09-01 18:53:45 +01:00
James Turner
b210f2021d Launcher: indent location detail heading text.
As suggested on the devel list, this looks more comfortable with a
margin set.
2018-09-01 18:53:45 +01:00
James Turner
776588066a Launcher: shrink sidebar height further
Since the icons have some margin included, go to a really small margin
external to this, gets us down to 560px vertical here.
2018-09-01 18:53:45 +01:00
James Turner
e6a3b9c012 Extend Nasal FlightPlan API for new members
Cruise alt/speed, remarks and callsign are now exposed and settable
from Nasal. Duration and route path still to be done.
2018-08-30 16:40:16 +01:00
James Turner
40d5d918ba Allow local acft to override packaged acft
When an explicit aircraft-dir is set, check this location before 
checking installed packages. This allows setting —aircraft and 
-aircraft-dir to correctly take precedence over a package.
2018-08-30 15:23:45 +01:00
James Turner
ec7816a565 Reduce the launcher minimum vertical height 2018-08-30 14:41:22 +01:00
James Turner
b184a7f06e Unify SGGeodVec definition 2018-08-29 14:55:23 +01:00
James Turner
7fe11b800a Launcher: use a more robust resource path
Some version of Qt seem to dislike the qrc:/// format, so use the
single-slash format here.
2018-08-28 23:35:38 +01:00
James Turner
47847a5a57 Fix an assert in debug mode 2018-08-28 23:34:55 +01:00
James Turner
41687767b9 Translations looked up correctly
Tweak both the launcher and main locale lookups, to tolerate the
different region suffixes encountered in reality.
2018-08-28 23:34:44 +01:00
James Turner
2329654e3b Disabling translations is tricky. 2018-08-28 17:12:31 +01:00
James Turner
61f33e0195 One more fix for translations-disabled case 2018-08-28 16:32:23 +01:00
James Turner
f99a25ba7f Fix build when translations are not defined 2018-08-28 16:15:26 +01:00
James Turner
df7e13d734 Flight planning in the launcher
Still evolving but usable to import or build a route now
2018-08-28 12:23:01 +01:00
James Turner
331939f640 Reduce level of some debug output 2018-08-28 12:23:01 +01:00
James Turner
e062026d9c UI: small fixes to various controls
Especially, add return key handling to many editing controls
2018-08-28 12:23:01 +01:00
James Turner
f33b15575f Navaid search: optionally constrain results 2018-08-28 12:23:01 +01:00
James Turner
f0c48110d3 Units model knows about frequency units 2018-08-28 12:23:01 +01:00
James Turner
cd0b493426 Base diagram can draw airways 2018-08-28 12:23:01 +01:00
James Turner
69dbfc0a27 Core airway and flight-plan enhancements
Add better airway support, fix various issues with VIA, and add
parsing / generation of ICAO route strings. Also fix the
serialisation of flight-plans with airway enroute segments, so these
can be restored correctly.
2018-08-28 12:23:01 +01:00
James Turner
5c9771fb00 Airport tweaks for flight-planning 2018-08-28 12:23:01 +01:00
James Turner
f4b98cf204 Fix CMake dependencies for translations
When only building the fgfs target (which IDEs tend to do), we didn’t
update the translations. Add an explicit dependency to remedy this.
2018-08-28 12:04:56 +01:00
James Turner
eaa2ed5cbb Launcher translations enabled
Translations are build into the executable at compile time, providing
FGData is available during the build.
2018-08-27 13:20:23 +01:00
James Turner
5bb3f10ba1 Linux / GCC compile fixes 2018-08-26 15:39:30 +01:00
James Turner
e3d032942e Move aircraft-performance code into a public API
Upcoming flight-planning changes want to use the perf computation code
in route-path, so move it to a public class, and implement some of the
missing functionality, especially correct GS computation for altitude.
2018-08-26 14:39:42 +01:00
Michael Danilov
e425f74a7d Fix crash on invalid(?) fallback model id. 2018-08-25 18:43:05 +05:00
James Turner
a419a80de4 Clang/C++11 warning fixes 2018-08-20 02:59:23 +01:00
James Turner
f54cba9586 Fix a warning, remove unused 2018-08-20 02:58:12 +01:00
James Turner
9848930e16 Fix translations context for some strings 2018-08-19 16:50:38 +01:00
James Turner
3f5a0a47ad Improved build.h generation (each build)
Use a custom_target to recursively invoke Cmake at build time; this
ensures the build ID and Git revision are always up to date.
2018-08-19 16:06:16 +01:00
James Turner
8b72229ffd C++11 improvements in Mac event-input code 2018-08-19 12:34:47 +01:00
James Turner
09918a6862 Fix Nasal duplicate init
Also ensure Nasal reset is handled correctly (requires corresponding
SimGear commit)
2018-08-19 12:34:27 +01:00
James Turner
26bc3713b5 Changes for SimGear subsystem add/remove tracking
Since the subsystem manager tracks group state, it now binds/inits
automatically. This means groups which create subsystems during init
no longer need to manually bind() them.
2018-08-12 11:18:50 -07:00
James Turner
f5117109fe Load translations from XLIFF format
When an <xliff> entry is present inside a locale specification,
this takes precedence over the legacy translations.
2018-08-12 11:18:50 -07:00
James Turner
d534a5ba36 Move build-ID variables to their own header
This is to reduce rebuilding by changing version.h needlessly, since
only a few places use the build ID info.
2018-08-12 11:18:50 -07:00
Richard Harrison
8ac8446256 GUIDialog: attempts to fix segfault
- change to get property node rather than calling set string.
- only set dialog name on mouse down event; (Scott's suggestion)
2018-08-12 10:43:20 +02:00
James Turner
e24134f34a HID-input: fix crash with null manufacturer name
https://sourceforge.net/p/flightgear/codetickets/2041/
2018-08-10 15:11:32 +01:00
James Turner
696c95d612 Fix passing —-config files via the launcher
Curt found this, allow using --config from the launcher additional
settings box.
2018-08-10 12:51:51 +01:00
Richard Harrison
518fb79e01 PUI Dialogs fixes
- fix double zoom on mouse wheel in map
- change getName() to return const char* to see if that fixes the crash in linux.
2018-08-10 02:00:38 +02:00
James Turner
c4e4f83030 Launcher: hide sidebar tooltips when button updates
Happens with Fly! button when refresh or update occurs.
2018-08-08 11:30:38 +02:00
Richard Harrison
c13bfe2722 PUI: window (FgPopup) handling changes
- I think I've fixed a long standing problem with clicks traveling through windows and bringing the dialog window underneath to the foreground.

- Added /sim/gui/dialogs/current-dialog that contains the name of the currently active (in front) dialog window.

- Changed dialog-open to bring a dialog to the front if it is already open.
2018-08-07 18:54:29 +02:00
Richard Harrison
6513dc1137 Added better AI handling of replay - part of the new carrier handling in replays. 2018-08-07 18:54:29 +02:00
Stuart Buchanan
e43fe82094 Fallback AI model implementation
Aircraft can now set a /sim/model/fallback-model-index property that is transmitted over the MP network.

Receiving clients use this as an index into AI/Aircraft/fallback_models.xml to determine a model to use if the model path (/sim/model/path) cannot be found under Aircraft or AI/Aircraft.  This allows aircraft developers to identify a suitable fallback model to be used for those who do not have their aircraft installed.
2018-07-27 19:51:37 +01:00
James Turner
23196184cc add missing assert 2018-07-27 19:43:42 +01:00
James Turner
d2c3ecace1 Fix PNG sRGB iCC warning 2018-07-27 08:26:38 +01:00
James Turner
78a3e8d979 Expose performance/ICAO planning data to QML 2018-07-26 23:08:49 +01:00
Edward d'Auvergne
f8c2cb5284 TestSuite: Migration of the old Navaids tests to the CppUnit framework.
This test suffers from significant bit-rot (it is designed for operation prior
to the NavDataCache), so it is deactivated.
2018-07-26 15:52:07 +02:00
Edward d'Auvergne
02c3c6dc97 TestSuite: Migration of the old GPS tests to the CppUnit framework.
As this code has significant bit-rot and requires a lot of work to compile and
run again, it is currently deactivated.

The test also writes to the files "/Users/jmt/Desktop/airways.kml" and
"/Users/jmt/Desktop/procedures.kml" and would need to be modified to write to a
temporary directory and the file contents reread and checked by the test.
2018-07-26 15:52:07 +02:00
Edward d'Auvergne
fff923d2f4 TestSuite: Migration of the HIDInput tests to the CppUnit framework.
The extractBits(), signExtend(), and writeBits() functions of the anonymous
namespace in Input/FGHIDEventInput.cxx have been shifted out of the namespace
and are now exposed via the header.  This is needed as
<Input/FGHIDEventInput.cxx> cannot be imported within the CppUnit
infrastructure, as it is already built into the run_test_suite binary.
2018-07-26 15:52:07 +02:00
Edward d'Auvergne
8d0db45c51 TestSuite: Shifted the non-functional src/GUI/layout-test.cxx file to the attic. 2018-07-26 15:52:07 +02:00
Edward d'Auvergne
0b2152a8ad TestSuite: Removal of some ancient, unused test files.
These include Scenery/{maptest.cxx, test.cxx} and Time/{test_event.c, ttest.c,
win32test.c}.  These files, essentially untouched since added in 1999, are not
useful for conversion for the test suite.
2018-07-26 15:52:07 +02:00
Edward d'Auvergne
dbe7c90115 TestSuite: Shifted the YASim atmosphere test into the CppUnit framework. 2018-07-26 15:52:07 +02:00
Edward d'Auvergne
ba5b472705 TestSuite: Elimination of the now unused ENABLE_TESTS CMake variable. 2018-07-26 15:52:07 +02:00
Edward d'Auvergne
feb854946e TestSuite: Complete removal of FG_TESTLIB. 2018-07-26 15:52:07 +02:00
Edward d'Auvergne
3e4132e660 modalMessageBox: Support for the runtime headless mode.
The caption, message, and additional text are instead output via SG_LOG().
2018-07-26 15:52:06 +02:00
Edward d'Auvergne
4699939275 Globals: Initial support for a runtime headless mode. 2018-07-26 15:52:06 +02:00
Edward d'Auvergne
b0c5a5481d TestSuite: Migration of the autosaveMigration tests into the CppUnit infrastructure. 2018-07-26 15:52:06 +02:00
Edward d'Auvergne
63d751c15e TestSuite: Always capture OSG logging.
The NotifyLogger class from src/Viewer/fg_os_osgviewer.cxx has been shifted into
a simgear header file so that it can be reused within the test suite.
2018-07-26 15:52:06 +02:00
Edward d'Auvergne
acb3307a1a TestSuite: Migration of the AeroMesh tests into the CppUnit infrastructure. 2018-07-26 15:52:06 +02:00
Edward d'Auvergne
7aa034bc80 TestSuite: Migration of the AeroElement tests into the CppUnit infrastructure. 2018-07-26 15:52:06 +02:00
James Turner
68141f3675 Launcher shows aircraft URLs
(in the details view)
2018-07-26 12:03:21 +01:00
James Turner
72d5f1efa0 Basic support for structured authors data 2018-07-25 13:58:48 +01:00
James Turner
4395f96b13 Launcher: Fix helipad selection 2018-07-25 09:27:43 +01:00
James Turner
f3a1c10b24 Fix bug #2306 - missed refresh of the history model
The HistoryPopup was caching its contents rather early, and we failed
to tell the model when its underlying data updated. Connect that
through so the history model refreshes also.

https://sourceforge.net/p/flightgear/codetickets/2036/
2018-07-23 09:34:31 +01:00
Bertrand Coconnier
ec004d8c6b Sync'ed JSBSim
- Trim reports, FGOutputFG and sockets messages now respond to the debug level
- Channels : fix for incorrect time steps caused by execrate
- Improved configuration error detection in FGSwitch with respect to late bound
- Fixed the ordre in which the components of the p-factor moment are reported in CSV output files.
2018-07-20 23:38:33 +02:00
James Turner
af380e0d8c Fix glitch in custom start date/time persistence 2018-07-19 09:58:44 +01:00
James Turner
3422caa4d2 Launcher: Fix default runway selection 2018-07-19 09:58:44 +01:00
James Turner
86786496a5 Working on airport entry 2018-07-19 09:58:44 +01:00
James Turner
9098219032 Better units handling in the launcher / UI 2018-07-19 09:58:44 +01:00
James Turner
9716274612 Hacking UI for FP entry 2018-07-19 09:58:43 +01:00
James Turner
5b73e9c7d0 DME: refactor with a clear() helper for off/out-of-range
This ensures consistent behaviour of properties for out of range,
no station, U/S, loss of power.

Thanks to Sascha Reissner for the issue report.
2018-07-17 09:11:30 +01:00
Bertrand Coconnier
64f3c1d3b6 Sync'ed JSBSim
- Now all the sea level properties from the standard atmosphere are updated along with the other atmosphere properties.
- The properties propulsion/start_cmd and propulsion/cutoff_cmd are now read/write (they were read only before).
2018-07-07 18:34:19 +02:00
Bertrand Coconnier
7178b3ef6a [JSBSim] Added a new property to ignore/override FG brake properties.
Mickael Danilov reported that one cannot send brake commands to /fdm/jsbsim/fcs/{right,left}-brake-cmd-norm since FG overwrites them with /autopilot/autobrake/* properties.

A new property /fdm/jsbsim/systems/override-fg-brake-properties has been added which is set ot false by default to keep the legacy behavior. When set to true, the properties /fdm/jsbsim/fcs/{right,left}-brake-cmd-norm can be modified by the user and will ignore the setting from FlightGear.
2018-07-07 17:04:01 +02:00
Bertrand Coconnier
07fac8c08e [JSBSim] Fixed the property atmosphere/P-sl-psf
It did not report the correct value when modified.
2018-07-05 21:28:53 +02:00
James Turner
b24ba303dc Fix a bug restoring a lat-lon location from history
https://sourceforge.net/p/flightgear/codetickets/2035/
2018-07-05 00:42:18 +01:00
James Turner
0f83a71860 Launcher search box clear icon 2018-07-05 00:41:42 +01:00
James Turner
916f2d7d76 Fix yes-no panel transparency 2018-07-05 00:17:05 +01:00
James Turner
b177d407f8 Launcher: fix setting altitude for lat/lon
https://sourceforge.net/p/flightgear/codetickets/2034/
2018-07-04 23:17:18 +01:00
Bertrand Coconnier
b0ee215bed [JSBSim] Tentative fix for the P factor 2018-07-05 00:15:43 +02:00
James Turner
ab5342888b Launcher: Install-scenery dialog supports .zips
Use the improved Simgear archive support to allow the WS2.0 zips
to be extracted
2018-07-04 11:36:30 +01:00
James Turner
728a5b13db Tweak addons catalog styling
Refactor into a separate delegate component to make things cleaner
2018-07-04 09:54:26 +01:00
James Turner
81f4ce5ea8 Opt out of Qt's DPI scaling by default 2018-07-03 09:49:00 +01:00
James Turner
6dd374408c Launcher: keyboard shortcuts
Use The Qt 5.6 Shortcut item, but via a conditional file so
we don’t touch the base Qt requirement. (This means no shortcuts
when using Qt 5.4 or 5.5, oh well)
2018-07-03 09:36:30 +01:00
James Turner
abcbbe897f Ensure we build on Qt 5.4 (no qInfo) 2018-07-03 09:35:26 +01:00
James Turner
5c3c4a6733 Fix property-inspector Nasal module hookup
We need to clone the binding nodes so that we
can set / override the module on each binding,
when opening a dialog multiple times.
2018-07-03 00:34:33 +01:00
James Turner
68a2e80cb1 Add another human name for a state
Found this in the Citation Bravo, missing ‘taxi’
2018-07-02 23:15:01 +01:00
James Turner
12dac05d38 Launcher: experimenting with SVG icons 2018-07-02 23:15:01 +01:00
James Turner
c684701b7f Fix 'restart the app' functionality on Windows
The read-only lock in fghome was tripping things up. Explicitly
release the lock in the restart-the-app situation.
2018-07-02 23:13:36 +01:00
James Turner
08c7707782 Launcher: altitude entry for runway-approach 2018-07-02 16:45:17 +01:00
James Turner
f76be60459 Confirm aircraft uninstallation 2018-07-02 14:40:18 +01:00
James Turner
85024d0f75 Improve aircraft list hightling
When selecting an aircraft programtically, don't animate the move
2018-07-02 14:31:05 +01:00
James Turner
946366a9d0 Fix aircraft list divider margin 2018-07-02 14:17:05 +01:00
James Turner
4752d266c6 Save settings on launcher exit 2018-07-02 14:13:00 +01:00
James Turner
8f9afcd796 Fix jumping aircraft when selecting variants
Always sort on the primary aircraft name, otherwise select a variant
triggers  a re-sort of the list which is confusing for the user.
2018-07-02 14:11:01 +01:00
James Turner
a311e744ff Fix variant poup on Linux
Maybe WM specific, but sizing the window late seems to trigger a bug. Fixes
repeated variant selection on Ubuntu for me.
2018-07-02 14:09:52 +01:00
James Turner
6475ae32b1 Launcher: nicer min-window-size computation 2018-07-02 11:59:01 +01:00
James Turner
b7e98caecf Ensure the C172P tutorial airport (PHTO) is always listed
Adjust the location history so the default and tutorial airports always appear at
history locations 0 and 1.
2018-07-02 11:50:48 +01:00
James Turner
33ed13f889 Fix menu width when a header item is present. 2018-07-02 11:50:48 +01:00
Bertrand Coconnier
f0b16844b5 Sync'ed JSBSim
- Air density now takes humidity into account.
- The protocol of input sockets is no longer case sensitive
- Late bounded properties are now cached for better performance.
2018-07-01 19:08:39 +02:00
James Turner
d126c5a3da Tweak launcher location-arg knock-out mode.
Allow setting of various secondary location args without
knocking out the main ones. The user arg values still override, but
this allows selecting a runway (for example) and manually setting
altitude / heading / offset if desired.
2018-06-29 14:56:05 +01:00
James Turner
602c2c30dd FlightPlan parses waypoints using Simgear code
This means many formats are supported in the route-manager input
method, and when creating waypoints from a string.
2018-06-29 14:53:30 +01:00
James Turner
dea2d5e45e Expose hold info to Nasal waypoint
Changes from Tobias Dammers, adjusted by James.
2018-06-29 11:52:27 +01:00
James Turner
016d359291 Fix assert found by Tobias Dammers
Hold waypoints were being marked as dynamic erroneously
2018-06-29 11:36:54 +01:00
James Turner
7a0483281d Aircraft update list gets its own tab 2018-06-28 23:45:52 +01:00
James Turner
2212e9342f Launcher: increase precision of lat/lon args 2018-06-28 22:51:53 +01:00
James Turner
1e3ba48a88 Windows compilation fix 2018-06-28 22:35:27 +01:00
James Turner
1a7f513fb1 Allow setting VC for on-final start 2018-06-28 16:54:21 +01:00
James Turner
aa61c55168 Disable on-final for heliport starts 2018-06-28 16:54:21 +01:00
James Turner
f6106e39d1 Launcher window-state saving 2018-06-28 16:54:21 +01:00
James Turner
7f554bd0fd Fix saved config naming 2018-06-28 16:54:21 +01:00
James Turner
7d7dc725a8 Bug fixes for location saving 2018-06-28 16:54:21 +01:00
James Turner
5ebee55632 Launcher can save/load configs to disk
Aircraft state is also persisted to configs and on flying
2018-06-28 16:54:21 +01:00
James Turner
c013eb74ab Nasal API to lat/lon formatting and parsing 2018-06-28 16:44:10 +01:00
James Turner
e49b1328c8 Route-manager waypoint-list lat-lon formatting
Use the new Simgear helpers to make the lat-lon formatting the 
waypoint list dialog nicer.
2018-06-28 16:44:10 +01:00
James Turner
c86ed96433 Fix a compilation issue reported by Dany 2018-06-28 12:05:49 +01:00
James Turner
2573644518 Many small style fixes 2018-06-28 11:43:40 +01:00
James Turner
cf09e3f138 Tiny style tweak 2018-06-28 09:22:29 +01:00
James Turner
82f99a6a9e Fix popup-width warning 2018-06-28 09:07:51 +01:00
James Turner
81b9105a8f Show location history on 'back' 2018-06-27 23:33:16 +01:00
James Turner
ce15ca666f Remove obsolete files 2018-06-27 23:18:18 +01:00
James Turner
2d6a6cd59e Fix JS warning in Sidebar 2018-06-27 23:02:58 +01:00
James Turner
6535846732 Launcher styling tweaks 2018-06-27 16:46:22 +01:00
James Turner
ea5608b769 Use simgear formatting of lat/lon values
The code was basically moved into Simgear, this is just closing the
circle.
2018-06-27 11:27:12 +01:00
James Turner
2f12c0b0bd Trim aircraft names to fix alphabetical sort
(Note, only for locl acft, hangar acft need a seperate fix)
2018-06-26 17:35:31 +01:00
James Turner
5229f8eabf Basic menu for the launcher 2018-06-26 17:13:28 +01:00
James Turner
31f80e2431 View-command-line page marks overriden args
We mark up launcher arguments which are over-ridden
2018-06-26 11:20:10 +01:00
James Turner
5ada6d46d9 Improve launcher feedback when location is disabled
Also improve warning text about conflicting args
2018-06-26 11:20:10 +01:00
James Turner
92ab8549bd Add ellipsis icon for QQ2 menu
Copying the same icon as Spotify and Chrome :)
2018-06-26 11:17:36 +01:00
James Turner
b690be1206 Fix HID input init 2018-06-25 23:39:22 +01:00
James Turner
5741cad568 HID tweaks 2018-06-25 23:39:22 +01:00
James Turner
268f9c9c33 Launcher: ensure extra args override launcher ones
Categorise arguments to ensure user-specified ones take precedence
over values set by the launcher.

When any positional arg is set, exclude all positional ones from being
set at all, to prevent strange interactions.
2018-06-25 23:06:20 +01:00
James Turner
9098e47664 Launcher: use new SGGeod <-> string functions
This relies on the latest Simgear to provide these functions.
2018-06-25 18:12:43 +01:00
James Turner
ca785f01e5 Launcher: Fix a crash in the new location code 2018-06-25 16:40:00 +01:00
James Turner
7d84a03dea WebSocket property-mirror: optimise JSON building
Work around some awful cJSON performance when building large arrays,
greatly speeding up remote-canvas updating
2018-06-24 23:22:30 +01:00
James Turner
be3e927d4e Property-mirror protocol C++11 tweaks 2018-06-24 14:32:35 +01:00
James Turner
0987b82fa8 Launcher styling tweaks 2018-06-24 11:15:01 +01:00
James Turner
c38e820756 Launcher: fix Windows build 2018-06-23 17:55:39 +01:00
James Turner
1bf52662ae Launcher converted to QQ2
This simplifies the launcher's rendering since the widget-based
code is gone, various things get hooked up as a result. Styling
fixes everywhere as well.

Menubar on Linux/Windows needs to be re-added.
2018-06-23 17:14:21 +01:00
Bertrand Coconnier
f81c01465e Fixed crashes while repositioning the aircraft. 2018-06-22 23:16:22 +02:00
James Turner
01f05b5383 Launcher: styling improvements everywhere
Use a standard text component to ensure the base font size can be
controlled centrally.
2018-06-21 22:54:37 +01:00
James Turner
225a128540 Consistent capitalisation of ACTIVE 2018-06-21 17:34:16 +01:00
James Turner
24d877fc18 Launcher: experiment with HiDPI airport icons 2018-06-21 16:16:35 +01:00
James Turner
240ac0f458 Launcher: optional alt/spd/hdg select
Bring this feature up to parity with the release branch.
2018-06-21 15:27:48 +01:00
James Turner
198f9ccb70 Tweaks to location search based on feedback 2018-06-21 14:34:05 +01:00
Bertrand Coconnier
6d83e6978d Sync'ed JSBSim
* Removed the IAS dependency to the Pitot tube angle (real Pitot tube are less sensitive to AoA than was simulated)
* Removed the class FGUDPOutputSocket which was redundant with FGOutputSocket
* Added a new type of functions "template" which are intended to prevent duplication of functions. For now, they are available to compute output values and script notifications.
* Aerodynamics forces can now be specified in stability axes.
* Density altitude and pressure altitude are computed according to ISA standard atmosphere 1976.

New properties:
* Flight path angle (gamma) in degrees
  - fdm/jsbsim/flight-path/gamma-deg
* Aerodynamics forces in stability axes
  - fdm/jsbsim/forces/fsx-aero-lbs
  - fdm/jsbsim/forces/fsy-aero-lbs
  - fdm/jsbsim/forces/fsz-aero-lbs
* Aerodynamics moments in stability axes
  - moments/roll-stab-aero-lbsft
  - moments/pitch-stab-aero-lbsft
  - moments/yaw-stab-aero-lbsft
* Pause JSBSim
  - fdm/jsbsim/simulation/pause

* Fixed multiple bugs.
2018-06-19 23:08:07 +02:00
James Turner
ccabc052bc Restore alphabetical sort of aircraft 2018-06-16 22:52:59 +01:00
James Turner
670bc17def Launcher: improve transparent panel legibility 2018-06-16 22:17:45 +01:00
James Turner
e8ef24a54f MSVC warning fixes 2018-06-16 13:03:36 +01:00
James Turner
82f23e556e Improve MSVC project generation
- set startup project to fgfs
- guess a value for PATH based on the build config
2018-06-16 13:03:23 +01:00
James Turner
7c9b1b391f Guard against SGPath::document()s returning null
Underlying bug is fixed in SimGear, but let's also guard against a failure here,
by falling back to FG_HOME on Windows.

For discussion see:
https://sourceforge.net/p/flightgear/codetickets/2019/
2018-06-15 11:11:05 +01:00
James Turner
dde2ef5972 Fix compilation on Qt 5.4 2018-06-15 10:33:11 +01:00
James Turner
6f8a788d80 Launcher bugfix: custom download dirs
Partial fixes for:
https://sourceforge.net/p/flightgear/codetickets/2019/

But further work needed on Windows I expect, will do that now.
2018-06-14 16:28:03 +01:00
James Turner
2e438e357e Launcher: fix scenery path re-ordering 2018-06-13 11:03:06 +01:00
James Turner
c3414a63c2 Fix the launcher summary license link 2018-06-13 10:55:04 +01:00
James Turner
29ec23e582 Ensure launcher terraysync setting is used
Terrasync state is auto-saved, so we need to force the value each start,
to avoid a previous value getting used.
2018-06-13 10:52:35 +01:00
James Turner
b2f90fbfa4 Launcher: location page in QtQuick
This moves the last page into QQ2 implementation, in preparation
for making the top-level UI be a QQuickWindow.
2018-06-13 10:01:04 +01:00
James Turner
7e8b1b67e7 JS comparison type safety warning fixes 2018-06-13 10:01:04 +01:00
James Turner
e3fd7f7d61 Launcher warns when setting conflicting args
Display a warning when the user tries to set arguments in additional
settings which the launcher will also set / conflict with. Blacklist
is still evolving, and we don’t actually prevent the user from running,
since maybe they are doing something special
2018-06-13 10:01:04 +01:00
Stuart Buchanan
236b7c0f83 Multiple LoD levels of MP Aircraft
At a basic level, the implementation supports two levels of LoD:

FAR from /sim/rendering/static-lod/ai-range-bare to /sim/rendering/static-lod/ai-range-detailed.
NEAR from /sim/rendering/static-lod/ai-range-detailed to 0.

(First of many digressions:  If /sim/rendering/static-lod/ai-range-mode-pixel=true then instead of measuring LOD distance in meters, the size of the object in pixels is used, so the ranges are different)

The models that are loaded for FAR and NEAR depend on a combination of the availability of a model in /AI/AIrcraft/ and FG_AIRCRAFT directories.

If /sim/rendering/static-lod/ai-range-detailed=false then an AI aircraft will be used in preference for both NEAR and FAR.

If /sim/rendering/static-lod/ai-range-detailed=true then an AI aircraft will be used for FAR, and an FG_AIRCRAFT for NEAR.

Obviously if only an AI or a FG_AIRCRAFT model are available, that will be used for the entire NEAR+FAR range.
2018-06-05 21:58:03 +01:00
Erik Hofman
2edf1443d3 Detect AeonWave and if it is installed use it, otherwise fall back to OpenAL. Also let get_available_devices() use C++ strings instead of const char* 2018-06-02 14:06:36 +02:00
James Turner
100155e37e Launcher: improve state handling
Fix some dumb bugs and improve selection of states inside the launcher
2018-06-01 15:11:30 +01:00
James Turner
b52cdf8723 Vector helipad symbol
Nicer rendering when zooming in, and easier to indicate the selected
helipad, in the same was as runways
2018-06-01 15:11:30 +01:00
Richard Harrison
ff302a307d Canvas Screen image provider:
Change delay to 15 seconds; and alert that there is a delay.

The 15 second delay should be sufficient to allow the compressor to finish processing; and in anycase this is running in a thread and therefore shouldn't freeze the whole sim for the delay period.
2018-06-01 00:45:40 +02:00
Richard Harrison
f17685ca79 Merge /u/geoffmc/flightgear/ branch msvc-build2 into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/133/
2018-05-31 22:39:11 +00:00
James Turner
19ec0027e8 Launcher: heliport / helipad fixes 2018-05-31 22:12:08 +02:00
James Turner
3da6d42945 Launcher: fix location not saving
When the history was empty, the ‘don’t re-insert’ logic was breaking,
because the beginning and end of the vector range were equivalent.
2018-05-31 22:12:08 +02:00
Geoff McLane
5d19a88446 Use SGTimeStamp::sleepForMSec(55) to replace sleep/Sleep 2018-05-30 11:59:25 +02:00
Erik Hofman
dcec806337 Allow for multiple named chatter queue's 2018-05-29 09:31:01 +02:00
James Turner
e7cb004690 Merge /u/thomass-22/flightgear-fork/ branch CanvasImageByHttp into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/131/
2018-05-28 21:02:45 +00:00
James Turner
a5aa6fb61b Cleanup the resource manager when deleting globals 2018-05-28 22:43:05 +02:00
James Turner
6906ce40fd Launcher: show navaid diagram for lat-lon position
Another change broke showing the navaid diagram when entering a lat,lon
position in the launcher
2018-05-28 22:43:05 +02:00
Stuart Buchanan
9de3672b62 Property to toggle between preferred MP models
/sim/multiplay/use-detailed-models can be used to set whether
we will prefer models from Aircraft/ (true) or from AI/ (false).

Default (set in defaults.xml in fgdata) is true.
2018-05-28 20:54:09 +01:00
James Turner
ea9ae959e4 PUI: simplify dialog binding handling
Fixes a perf issue when opening and closing dialogs which uses
bindings, reported by Michael Danilov - huge thanks for his help
in tracking this down.

This bug was caused by the SGBinding ‘don’t delete properties’ change,
since the PUI code was copying nodes to work-around that problem. With
SGBinding fixed, the copying caused huge numbers of nodes under
/sim/bindings/gui
2018-05-28 19:51:41 +02:00
James Turner
16b8335a5e Launcher MP fixes:
- connecting works
- no instant exit with an invalid/missing server
2018-05-28 18:39:35 +02:00
James Turner
054c4bec0f Bug-fix: for RMB-look / PUI interaction issue
When releasing the RMB over a PUI dialog, we no longer get stuck in
drag mode due to the buttons map getting out of state. This is slightly
ugly work-around, better fix to follow hopefully (needs better OSG
integration)
2018-05-23 14:16:48 +01:00
Edward d'Auvergne
c8729be38f Init: Minor log formatting fixes. 2018-05-23 12:19:23 +02:00
James Turner
1b5d557c86 Fix launcher adding aircraft folder with ‘Aircraft’ subdir
We validate the modified path but didn’t actually use it.
2018-05-23 10:24:11 +01:00
James Turner
dc6a884928 Generalise AI-model search ordering in AIBase
Make the policy of using models in FGData/AI more flexible, with the
option to prefer normal data sources. Keep the existing behaviour for
everything except multiplayer aircraft, where we now prefer the data
model (presumably, an installed aircraft) over the AI one.
2018-05-23 09:46:05 +01:00
Richard Harrison
5988fe24ab Multiplayer: use previously duplicated bits for bools [91] and [92]
bool[42] and bool[72] used to have two bits (i.e. transmitted twice). This was not harmful just wasteful.

Mapped the first of the duplicated bits of each of these to new bools at the end of the list. These two properties will not be compatible with pre 2018.2.
2018-05-17 09:32:42 +02:00
James Turner
8986abeb52 Fix PUI mouse for non-pass-through mouse modes
As reported by Michael Danilov, ensure sticky mouse modes for view and
flight controls don’t send button events to PUI
2018-05-14 14:41:06 +01:00
James Turner
6f5fa7a3c0 Tweak to splash authors display appearance
Handle long author tags better for 2018.2 (real solution coming in
the next version with improved author meta-data)
2018-05-14 13:00:39 +01:00
Richard Harrison
5fe24f741c Multiplayer: fix bool transmission when all 0
If all bools in a block are 0 the block would never be transmitted, i.e. fix a bug whereby each block of 0..30 used to need at least one true value to transmit the block.
2018-05-13 06:45:44 +02:00
Richard Harrison
d6556f5c94 Multiplayer: consistent callsign in properties.
To ensure consistent properties also tie the callsign to where it would be in a local model.
2018-05-13 06:45:44 +02:00
James Turner
1555e1d6cb Launcher: fixes for lingering previews
Also better fix for some ‘assign Qurl from undefined’ warnings
2018-05-09 20:11:58 +01:00
James Turner
8738e18921 Launcher: spinner when adding a catalog 2018-05-09 19:43:44 +01:00
James Turner
57a866fc60 Scrollbar for launcher settings 2018-05-09 19:35:24 +01:00
James Turner
b6f7f17c5c Launcher: fix warning about Qurl / undefined 2018-05-09 19:35:12 +01:00
James Turner
607cef530a Add the default tutorial airport to the launcher 2018-05-08 23:18:19 +01:00
James Turner
d4cd82b521 Fixes for Qt 5.4 compat 2018-05-08 22:17:07 +01:00
James Turner
ee48fddd5e Compute scrollbar extent using alternate props
This computation is close enough, and removes the need for private
headers.
2018-05-08 22:16:53 +01:00
James Turner
0da17d895c Fix ‘add-default-catalog’ flow from aircraft list 2018-05-08 06:52:07 +01:00
James Turner
42936f4f22 Launcher: fix date-time picker 2018-05-07 22:19:34 +01:00
James Turner
552df27341 NavData API additions 2018-05-07 16:53:43 +01:00
James Turner
71a1348037 UI tweaks for the launcher 2018-05-07 16:53:25 +01:00
ThomasS
2cbd660dc9 Feature for requesting canvas images per HTTP as described in http://wiki.flightgear.org/Read_canvas_image_by_HTTP 2018-05-03 10:25:34 +02:00
James Turner
102fe04e91 Import PLIB JS code into FlightGear
- will permit bug-fixing which cannot occur for
  official PLIB.
2018-05-03 00:02:09 +01:00
James Turner
0762af76c2 Indexed-device config files for event-input layer
This allows multiple identical devices with event-input, using the
same syntax as for PLIB JS
2018-04-29 21:52:56 +01:00
James Turner
2ce4bcb666 Allow distinguishing PLIB joysticks by index (count)
This gives a simple way to have different config files for multiple
identical devices, such as the Saitek/Logitech throttle-quadrant
2018-04-29 19:56:01 +01:00
James Turner
0cdd6c4e70 Re-init support on HID-event-input
To ensure the device-configuration-map is re-read, added a default
ctor and moved the config-map creation to init()
2018-04-29 11:25:51 +01:00
James Turner
13857e001e Add override decls in AIManager
(Done while tracing another crash, but committing separately)
2018-04-29 10:12:40 +01:00
James Turner
2a31893862 Fix a crash when updating the user aircraft 2018-04-27 23:32:28 +01:00
James Turner
aed59ea4bf Fix an assert with autopilot groups
(Missing call to the base class in bind())
2018-04-27 13:57:32 +01:00
James Turner
e45c93dbc7 launcher: explicitly request desktop OpenGL
This should help with a white-screen in the launcher Gijs reported,
due to our Optimus selection symbol interacting weirdly with the
dynamic OpenGL detection in Qt
2018-04-27 09:53:49 +01:00
James Turner
6a6c9bcda2 Merge /u/thomass-22/flightgear-fork/ branch additionalAiInfo into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/129/
2018-04-25 16:26:54 +00:00
James Turner
1fcd86a8a9 Launcher: fix missing import for Style 2018-04-25 16:24:14 +01:00
James Turner
fe779fc579 YASim: Make some name-spacing explicit
Needed for upcoming subsystems change
2018-04-25 08:49:17 +01:00
ThomasS
3dcac53952 camelCase identifier in code and hyphenated property names. Suffix "-sec" is used because it complies to other timestamp properties in the property tree. Suffix "utc" is not used because the property just reflects an internal value used by the AI system. Whether it is UTC (currently it is) is up to the AI system and cannot be defined by the property name. 2018-04-24 09:54:35 +02:00
ThomasS
94f82c47ef Additional departure airport/time and arrival airport/time information in the property tree for AI aircraft. 2018-04-24 06:20:28 +02:00
James Turner
7ae8137b77 Launcher: nicer looking summary transparency 2018-04-16 15:41:48 +01:00
James Turner
7431fb12b3 Launcher UI feedback: mark history buttons as disabled 2018-04-16 15:13:06 +01:00
James Turner
8a390dab2a Add-ons page UI improvements based on feedback 2018-04-16 15:04:21 +01:00
Stuart Buchanan
510f2de84d Expose additional Navaid fields for use by Nasal 2018-04-16 13:37:17 +01:00
Edward d'Auvergne
667cd86656 fgValidatePath: Typo fix allowing the animated jetways to save files again.
The typo was introduced in 7e607b8403 from July
2016.  The result was a series of alert messages such as:

savexml: writing to 'Path "/flightgear/home/.fgfs/runtime-jetways/0.xml"' denied
(unauthorized directory - authorization no longer follows symlinks)
2018-04-13 09:08:07 +02:00
James Turner
22cf6bd5e4 Fix a crash found by a space cowboy :)
Thanks to Tobias Dammers
2018-04-12 17:38:12 +02:00
James Turner
921f29fbfe HID-Input disambiguation tweaks 2018-04-09 22:03:49 +01:00
James Turner
361225f919 Launcher: fix the descriptionForState/null warning 2018-04-09 17:13:15 +01:00
James Turner
9fbd879c9f Remove a stray log message 2018-04-09 15:52:14 +01:00
James Turner
72f9ff3735 Remove obsolete Launcher files 2018-04-09 15:48:43 +01:00
James Turner
a94d893124 Styling tweak for launcher hangars list 2018-04-09 11:17:15 +01:00
James Turner
2c48914630 One more ATC text formatting fix
As requested by Wkitty on the mailing list.
2018-04-09 09:33:28 +01:00
James Turner
4878b28a22 Fix MSVC build 2018-04-09 01:29:01 +01:00
James Turner
205fadbff3 Stubbing out Add-ons controller
Also CatalogListModel stubs
2018-04-08 23:52:27 +01:00
Edward d'Auvergne
3b79530b06 CMake: Split the target links and includes into separate CMake modules. 2018-04-05 21:06:02 +02:00
Edward d'Auvergne
6a730b5820 CMake: The main sources/headers have been shifted into FG_{SOURCES,HEADERS}.
This allows the sources and headers in src/Main/ to be used by other targets.
They are grouped into the new "Main" flightgear component via the macro in the
FlightGearComponent CMake module.  The bootstrap.cxx file with its main function
has been separated out into a separate variable MAIN_SOURCE for use by the fgfs
binary.

All these files have therefore been removed from the test_suite CMakeLists.txt
file, as they are added via FG_SOURCES and FG_HEADERS.  The MSVC grouping code
also does not need to deal with the now deleted separate SOURCE and HEADER
variables for these files.
2018-04-05 21:06:02 +02:00
Edward d'Auvergne
e88017eba3 CMake: Shifted the Mac bundle commands into its own CMake module. 2018-04-05 21:06:02 +02:00
Edward d'Auvergne
93c4aab885 CMake: Shifted the MSVC grouping code into its own CMake module.
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the
code to be shared with the test suite.
2018-04-05 21:05:54 +02:00
Edward d'Auvergne
f8e57f921d CMake: Shifted the FlightGear embedded resources code into its own CMake module.
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the
code to be shared with the test suite.

The generated source and header files have also been removed from the main
source list and placed in the CMake module as the global variables
EMBEDDED_RESOURCE_SOURCES and EMBEDDED_RESOURCE_HEADERS.
2018-04-05 21:05:30 +02:00
Edward d'Auvergne
bd3a3db50b CMake: Shifted the target setup code into its own CMake module.
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the
code to be shared with the test suite.
2018-04-05 21:05:16 +02:00
James Turner
227dda4df5 ATC spacing improvements by WKitty 2018-04-05 13:07:44 +01:00
James Turner
9000185b92 Improve AI parking-pushback warning message
Specify the airport when a parking has no associated pushback route.
Improvement from WKitty42
2018-04-05 12:58:58 +01:00
Edward d'Auvergne
11f591261e FGNasalSys::setTimer: Timer names now identify the file and line number.
This identifies the function for the callback and allows for better debugging of
the sim and real time SGTimerQueues in the event manager.
2018-03-23 20:07:49 +01:00
Edward d'Auvergne
0f96032487 TestSuite: Shift of the globals unit test helper functions into the test suite.
The setting of the SG log levels and developer mode has been removed as this
clashes with the output control set by the test suite main() function.
2018-03-23 17:26:05 +01:00
Edward d'Auvergne
7616f1ec3e TestSuite: Migration of the posinit unit tests. 2018-03-23 17:26:05 +01:00
Edward d'Auvergne
85ad420be1 TestSuite: Migration of the Add-ons management unit tests. 2018-03-23 17:26:05 +01:00
Edward d'Auvergne
c9122ff84b TestSuite: Converted the old tests/test-mktime.cxx program into a unit test.
This required many time related include files, functions, and variables to be
tested for via CMake, and converted to macros via #cmakedefine, so that they
would be automatically set for the test-mktime.cxx file.
2018-03-23 17:26:04 +01:00
Edward d'Auvergne
941c5dc8f2 Main: Formatting standardization for the src/Main/CMakeLists.txt file.
This includes spacing, tab to space replacements, and alphabetical ordering.
2018-03-23 17:26:04 +01:00
James Turner
01f840487d Split launcher code to fix ownership issues
This avoids passing a QmainWindow into the QML engines, which don’t
seem to handle that very well.
2018-03-22 13:52:03 +00:00
James Turner
f75f413970 Ensure launcher AW toggle overrides the sim setting
Set the property value to false explicitly when BW is requested in
the launcher, otherwise the auto-saved value takes over.
2018-03-22 11:59:15 +00:00
James Turner
28d8317242 Work-arounds for launcher crashes on ‘fly’
Two are enabled, one is disabled for people to test.
2018-03-22 09:32:30 +00:00
James Turner
1c78c65b19 Popup an error box when QtQuick errors occur. 2018-03-20 16:32:31 +00:00
James Turner
010bfc8378 Fix a compile error reported by Edward 2018-03-19 22:33:17 +00:00
James Turner
cb4a823836 Missed some files fixing QQ2 version import 2018-03-19 22:32:23 +00:00
James Turner
4c2e52c2dc Standardise QtQuick version to 2.4
Will fix an issue reported on the forum where a 2.7 dep crept it.
2018-03-19 08:22:11 +00:00
James Turner
e894cb5188 Fix case-sensitivity 2018-03-19 00:36:49 +00:00
James Turner
d3299a1f71 Remove references to deleted files 2018-03-18 22:09:01 +00:00
James Turner
024ffa5e9d Remove obsolete launcher files
Clean-up now widget-based settings are gone
2018-03-18 17:00:54 +00:00
James Turner
19ae26164a Summary page converted to QtQuick 2018-03-18 16:39:17 +00:00
James Turner
eaf89ab23b Avoid use of Connections.enabled for Qt < 5.7 compat 2018-03-18 16:25:48 +00:00
James Turner
7339e261e9 Direct file dialog (no need for QtQuick Controls)
This should simplify the needed packages on Debian, Ubuntu, etc
2018-03-18 16:18:17 +00:00
James Turner
d92647b364 Fix duplicate entries in threaded location search 2018-03-16 10:02:20 +00:00
Florent Rougon
109a59b393 Add-ons: const id; adjust the Addon constructors, remove Addon::setId()
Since the new _storagePath data member internally contains the add-on
id, changing _id after _storagePath has been initialized would make both
data members inconsistent. As changing the add-on id is probably not a
very useful operation, the simplest way to prevent such an inconsistency
from happening is to make Addon's _id data member const (as is already
the case for _storagePath), and thus remove Addon::setId().
Consequently, remove the Addon default constructor too, since add-ons
with an empty id would be ill-formed and couldn't be changed (_id being
const now). This leaves us with one Addon constructor:

Addon(std::string id, AddonVersion version = AddonVersion(),
      SGPath basePath = SGPath(), std::string minFGVersionRequired = "",
      std::string maxFGVersionRequired = "",
      SGPropertyNode* addonNode = nullptr);
2018-03-11 23:17:23 +01:00
James Turner
fa72d8dd06 Popup window tracking helper hooked up 2018-03-11 11:10:02 +00:00
James Turner
37dc418ce1 QtQuick launcher settings implementation
Moves the settings and environment pages of the launcher into QQ2,
and provides more QtQuick items to use.
2018-03-11 11:10:02 +00:00
Florent Rougon
9a044a474b Add-ons: new Addon methods to access the storage area beneath $FG_HOME/Export
New methods Addon::createStorageDir() and Addon::getStoragePath() with
corresponding Nasal bindings in the addons.Addon ghost:

  createStorageDir() method (returns the dir, doesn't fail if it already
                     exists)
  storagePath        read-only attribute to get the dir

The directory reserved for each add-on is
$FG_HOME/Export/Addons/ADDON_ID, but please use the above methods (or
the corresponding C++ ones) to avoid hardcoding such paths in your code.

Also create directory $FG_HOME/Export/Addons in fgInitConfig() as a way
of reserving the namespace, in order to prevent future failures in case
someone would have the strange idea to create it as a file...
2018-03-11 11:30:05 +01:00
Richard Harrison
10caef48b1 Change YASim solution failure message to display as an alert; but not to call exit().
It is the call to exit that causes FG to lock up and become a zombie.

Alternative is to throw an exception, i.e.:
       throw sg_error(std::string("YASim SOLUTION FAILURE:") + a->getFailureMsg(););
2018-03-07 03:09:45 +01:00
James Turner
7b7e50741f Launcher: fix preview image aspect ratio
Accidentally left in a hard-coded 16:9 ratio, no wonder some images got
squished. Shuttle is now re-elongated verticallitaly :)
2018-03-06 18:34:54 +00:00
Richard Harrison
ab8ca2d832 Merge remote-tracking branch 'main-source/next' into next 2018-03-05 23:34:28 +01:00
Richard Harrison
e953951820 Merge remote-tracking branch 'jsb/yasim' into next
This adds the fix for non converging aircraft. Henning has performed a thorough analysis of all of FGAddon and other repositories and there are a few models that fail, however there have always been a few that fail - but with this patch this situation is improving.
2018-03-05 23:32:06 +01:00
James Turner
5020e4655e Launcher: explicit sizes in aircraft list
Fix some scaling issues when mixing pixel- and point- sized fonts,
especially on Windows
2018-03-05 10:49:30 +00:00
Henning Stahlke
12b2022503 YASim add error message, solver shall not quit silently. 2018-03-04 22:18:45 +01:00
James Turner
7f815c4c51 Remove non-functional transparency from PUI map
This alpha blending never worked, and now it really doesn’t work, so
remove it (PUI map is not long for this world, anyway)
2018-03-01 15:55:41 +00:00