1
0
Fork 0
Commit graph

13306 commits

Author SHA1 Message Date
Florent Rougon
034fb89db3 Abort with a clear error message for invalid uses of --config inside a config file
The options.cxx code is not ready to handle recursive use of --config
(for config files). Instead of failing in an ugly way, abort with a
clear error message in such situations. See discussion at
<https://sourceforge.net/p/flightgear/mailman/message/35838852/>.

Note: it *is* possible to load XML PropertyList files from config files,
      so --config is not entirely "banned" from config files.

+ add missing include
2017-05-15 11:06:47 +02:00
Florent Rougon
6ef8b5bf94 Qt launcher: more spelling fixes 2017-05-13 17:17:32 +02:00
Alessandro Menti
42495e3251
Qt launcher: spelling fixes 2017-05-13 10:24:17 +02:00
Torsten Dreyer
7d12c9fe36 Fix broken build due to undef'd ref in test_flightplan 2017-05-12 09:22:41 +02:00
James Turner
327f59a105 Fix new splash screen with Rembrandt enabled
Stray depth-test state was causing the splash quad to be discarded.
2017-05-11 23:02:40 +01:00
Rebecca N. Palmer
faf872e7f7 RouteMgr security: don't allow overwriting arbitrary files
(the previous fix 280cd523 missed commandSaveFlightPlan)
2017-05-11 22:21:20 +01:00
Richard Harrison
b80b9a8fc0 Added Nasal methods for ground intersection test and aircraft coordinate conversion
New Nasal method get_cart_ground_intersection

Returns where the given position in the specified direction will intersect with the ground. Returns whether or not a certain position and direction pair intersect with the ground, and if so the intersection point.

Useful for radars, terrain avoidance (GPWS), etc.

Input parameters:
1. vec3d(x,y,z) position
2. vec3d(x,y,z) direction

Returns nil or geod hash (lat:rad,lon:rad,elevation:Meters) intersection

Example Usage:

var end = geo.Coord.new(start);
end.apply_course_distance(heading, speed_horz_fps*FT2M);
end.set_alt(end.alt() - speed_down_fps*FT2M);

var dir_x = end.x() - start.x();
var dir_y = end.y() - start.y();
var dir_z = end.z() - start.z();
var xyz = { "x":start.x(),  "y" : start.y(),  "z" : start.z() };
var dir = { "x":dir_x,      "y" : dir_y,      "z" : dir_z };

var geod = get_cart_ground_intersection(xyz, dir);
if (geod != nil) {
         end.set_latlon(geod.lat, geod.lon, geod.elevation);
          var dist = start.direct_distance_to(end)*M2FT;
         var time = dist / speed_fps;
         setprop("/sim/model/radar/time-until-impact", time);
     }

-----------

Nasal method aircraftToCart : This allows easily computing offsets in aircraft-relative coordinates, and converting to global cartesian (ECEF) reference frame.
2017-05-11 20:05:14 +02:00
Florent Rougon
fd78d32e56 End segfault_handler() with std::abort() rather than kill() on ourselves
This has the advantage, according to my testing on Linux, that core
files obtained after a crash now point to the crashing thread again,
when one starts 'gdb' on the core file and runs the 'bt' command.

Apparently, when using kill(), the signal is seen as coming from the
outside and gdb's 'bt' command points to the wrong thread in general
when debugging using a core file (when debugging "live", gdb intercepts
the signal even before FG's signal handler is started).

See discussion starting at
<https://sourceforge.net/p/flightgear/mailman/message/35833221/>.
2017-05-11 12:19:31 +02:00
James Turner
00845b17b9 Prevent PUI menubar obscuring startup tips
Add an additional visibility flag to the menubar implementations, 
conditional on whether or not the menubar overlaps the window content.
(I.e for PUI but not Cocoa). This flag is linked to a new property
/sim/menubar/overlap-hide, which the renderer drives off the splash-
screen visibility.
2017-05-11 08:39:48 +01:00
Florent Rougon
4dc2e4fc09 Disable use of the WindowsFileDialog class
On Windows, use:
  - QtFileDialog if FG was built with Qt support;
  - PUIFileDialog otherwise.

Behavior on other platforms is unchanged. This change is motivated by
the fact that some Windows users have reported[1][2] weird,
non-deterministic behavior of WindowsFileDialog and unfortunately, no
one seems to be willing and able to fix the problem. The Qt
implementation comes for free and should be quite robust. Of course, if
someone wants to maintain the WindowsFileDialog class again, the change
can be reverted.

See discussion at [3].

[1] https://forum.flightgear.org/viewtopic.php?f=25&t=31945
[2] https://sourceforge.net/p/flightgear/mailman/message/35761650/
[3] https://sourceforge.net/p/flightgear/mailman/message/35759819/
2017-05-11 00:12:20 +02:00
Florent Rougon
7f59846644 Splash screen: support text encoded in UTF-8
This fixes handling of non-ASCII splashscreen text for me (Debian
GNU/Linux). The XML input files don't technically *have* to be encoded
in UTF-8, as long as they properly declare the encoding and it is
supported by Expat. Of course, we prefer UTF-8 nowadays.

With this commit, startup tips and splash screen progress strings
("Loading scenery", "Initializing subsystems", etc.) can at last be
written correctly in languages that need non-ASCII characters.

The Expat doc is unfortunately unclear on its *output* encoding, saying
the following (expat.h):

  The characters are passed exactly as they were in the XML document
  except that they will be encoded in UTF-8 or UTF-16.

The only relevant header I can see in SimGear is
3rdparty/expat/sg_expat_external.h, which has interesting stuff around
XML_UNICODE, however it doesn't seem to take position.

I fear that whether UTF-8 or UTF-16 is used for Expat's output (and thus
for what easyxml.cxx gives us) depends on how it was compiled. Let's
hope everyone has it compiled for UTF-8 output...
2017-05-10 16:59:29 +02:00
Florent Rougon
33c54e5d76 Fix crash in PT_vs_hpt() due to invalid data in ISA_def
In commit 15525aab58, a layer with
lapse=0.0 was added to ISA_def (atmosphere model). However, the last
layer *must* have lapse == -1.0, otherwise the code in PT_vs_hpt()
doesn't know when it's on the last element of ISA_def, and does an
illegal memory access with (pp+1)->height. This is why -1.0 is the
default value for lapse ('l') in the ISA_layer constructor.

Fix: add the -1.0 terminator to the last element of ISA_def.
2017-05-10 16:54:55 +02:00
Florent Rougon
9a64150d57 Fix crash in src/ATC/trafficcontrol.cxx (invalid iterator dereferenced)
When the test:

  if (i == activeTraffic.end() || (activeTraffic.empty()))

was true, the iterator named 'current' was uninitialized and later
dereferenced.

Fix:
  - when the previously-mentioned test is true, return;
  - initialize 'current' only when it is really needed (i.e., later and
    after the test), and since we don't need it for iterating, make it
    an FGTrafficRecord&.
2017-05-10 16:54:55 +02:00
Henning Stahlke
43e19c1123 YASim: revert a change in Model.cpp that caused segfaults on some systems. 2017-05-10 16:27:46 +02:00
Alessandro Menti
c00f98b0d1
QT Launcher spelling/style fixes
Fix a couple of spelling mistakes, as well as some terms which are
styled differently in the main FG interface.
2017-05-08 21:29:42 +02:00
Henning Stahlke
222361bf66 YASim bufix segfault with helicopters. 2017-05-05 13:47:47 +02:00
Henning Stahlke
35f6811ce3 YASim: trivial code clarification in Wing.cpp 2017-05-04 15:33:13 +02:00
Henning Stahlke
caf2100b5e YASim: code dedup in class Wing. 2017-05-04 15:18:48 +02:00
Henning Stahlke
6817292e73 YASim: changed constructor for Wing. Creating a Wing object without basic geometry data is pointless and this data cannot change during runtime. 2017-05-04 14:31:43 +02:00
Henning Stahlke
614f05bb39 YASim: split Wing::compile into smaller functions (2). 2017-05-04 14:12:30 +02:00
Henning Stahlke
4584c83d8b YASim: split Wing::compile into smaller functions (1). 2017-05-04 14:02:11 +02:00
Henning Stahlke
eb6bb087f6 YASim: include yasim-common.hpp in Wing.cpp and remove constant.
Trivial cleanup and variable name clarification.
2017-05-04 13:52:21 +02:00
Florent Rougon
2ad164e80f Improve handling of the pushBackRoute attribute in groundnet's Parking nodes
- Don't ignore pushbackRoute="0".

- Stricter parsing with precise log messages when the input is
  incorrect.

- Add missing includes in src/Airports/dynamicloader.cxx.

See <https://sourceforge.net/p/flightgear/mailman/message/35788373/> for
the discussion about this change.
2017-05-04 10:30:51 +02:00
Florent Rougon
df2a98d245 Fix warnings about unreferenced local variables
Warnings seen on Jenkins with Visual Studio.
2017-05-04 09:41:29 +02:00
Henning Stahlke
b0a831e667 YASim: initialize floats with 'f' suffix to avoid problems with windows build 2017-05-03 22:17:08 +02:00
James Turner
2747a33e6b Merge /u/jsb1685/flightgear/ branch yasim into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/89/
2017-05-02 15:09:13 +00:00
James Turner
9e7924a4b1 Silence a warning. 2017-05-02 12:45:32 +01:00
James Turner
2dbe88936e Don't warn about missing CrashRpt when developing 2017-04-29 20:58:05 +01:00
Henning Stahlke
37c43ab6dc YASim: add initalizer to Wing.hpp, cleanup constructor. 2017-04-29 12:54:56 +02:00
Henning Stahlke
b4743b3830 YASim: add initalizer to Model.hpp, cleanup constructor. 2017-04-29 12:54:56 +02:00
Henning Stahlke
f9334d8c39 YASim Surface move initialization 2017-04-29 12:54:56 +02:00
Henning Stahlke
efde524685 YASIM move constants to a common header file. 2017-04-29 12:54:55 +02:00
Erik Hofman
072bad4f50 sync. with JSBSim and expose Oil_Press_Relief_Valve, Oil_Press_RPM_Max, Design_Oil_Temp, Oil_Viscosity_Index 2017-04-27 15:41:23 +02:00
Henning Stahlke
0a0402f667 YASim Airplane refactoring (code dedup). 2017-04-25 09:19:25 +02:00
Henning Stahlke
e604f2f662 YASim BodyEnvironment rename methods and split setupState into two methods. 2017-04-25 09:19:25 +02:00
Henning Stahlke
add6c6b8a8 YASim: Airplane solver uses standard atmosphere so we can replaced atmosphere members with floats for altitude and pass those to setup atmo where needed directly from altitude. 2017-04-25 09:19:25 +02:00
Henning Stahlke
8064135665 YASim: Moved Airplane::setupState to BodyEnvironment 2017-04-25 09:18:26 +02:00
Henning Stahlke
ed6dee3f55 YASim Airplane: add initalizers. 2017-04-24 18:31:03 +02:00
Henning Stahlke
8bd8d5f163 YASim Model move one-liner to header. 2017-04-24 00:08:36 +02:00
Henning Stahlke
3457c3c61f YASim: convert Atmosphere to a non-static class so we can pass around air parameters in one object instead of several variables. 2017-04-22 16:14:52 +02:00
Henning Stahlke
5e99f92a0f YASim: conver Airplane::setupState from static to const 2017-04-22 15:06:02 +02:00
Henning Stahlke
2229b0a494 YASim: mark methods of Version 'const' 2017-04-22 14:59:03 +02:00
Henning Stahlke
fcfc82b471 YASim: move one-liners and add 'const' 2017-04-21 22:17:27 +02:00
James Turner
cbdbe2882b Fix disabled appearance of toolbox buttons.
Ensures ‘fly’ button appears disabled as appropriate in the 
launcher.
2017-04-19 13:31:45 +01:00
James Turner
a05860608b Fix erroneous button highlighting. 2017-04-19 13:12:48 +01:00
Henning Stahlke
ef9fa25b94 YASim: update default for desired cg range. 2017-04-18 22:27:35 +02:00
Henning Stahlke
1302c167dd YASim: rename some exported props. 2017-04-18 22:11:34 +02:00
Henning Stahlke
73de375249 YASim declared get methods as const. (correction to previous commit) 2017-04-18 19:12:23 +02:00
James Turner
503907be34 Merge /u/jsb1685/flightgear/ branch yasim into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/87/
2017-04-18 09:05:57 +00:00
Henning Stahlke
3f0ef99c71 YASim: add MAC (mean aerodynamic chord) and c.g. calculations. 2017-04-17 22:52:26 +02:00