1
0
Fork 0
Commit graph

2982 commits

Author SHA1 Message Date
James Turner
4294966781 Fix setting start offset with MP enabled. 2016-09-07 22:51:27 +01:00
James Turner
13f8f13000 Adjust behaviour of —no-default-config option
Still read autosave and preferences.xml in this case, but skip all
config files (.fgfsrc, etc)
2016-09-05 16:15:55 +01:00
James Turner
324f266283 Pass the install dir to Terrasync.
With Simgear commit d7d59b08a2f1a77a4247ec1a89d6ff48ed73f5c7, this
allows terrasync to be initialised from files in the install data,
which avoids downloading them again.
2016-08-18 16:23:39 +01:00
Torsten Dreyer
1947c100d9 Also use SBRJ as fallback.
Sigh. No real good idea how to /not/ hardcode this.
2016-08-06 23:12:43 +02:00
Alessandro Menti
2d86fc11ad Replace the NOAA METAR URL with the new, updated one 2016-08-04 20:34:34 +02:00
Erik Hofman
9ec4d7749f Add support for AeonWave 2016-08-04 18:43:10 +02:00
Erik Hofman
c17c3595c8 Set /sim/rendering/initialized to true at the appropriate moment and use it instead of /sim/initialized for the messagebox 2016-07-21 13:55:31 +02:00
Erik Hofman
e2216891be Move the PUI dialog code to James' new messagebox code and use that one instead for SG_LOG_POPUP to get a native popup window if available and fall back to a PUI one if not 2016-07-21 08:56:05 +02:00
Erik Hofman
5ab2d82c89 Show a popup dialog for every SG_POPUP message in the queue 2016-07-20 15:03:15 +02:00
James Turner
e30c886068 Adjust runway startup position with MP enabled
Relocate the start-up position to a plausible hold-short position
when MP is active and a runway start is requested. This does not (yet)
use ground-net data to identify a real hold-short position.
2016-07-17 21:11:14 +01:00
James Turner
4aee633be3 Fix starting up at a parking location.
Move parking-pos selection to finalizePosition, so that dynamics and
ATC controllers are available and work correctly.
2016-07-16 11:45:30 +01:00
James Turner
100e8bf2b2 Further SGPath API usage improvements. 2016-07-15 16:49:13 +01:00
Jeremy Bicha
25928bf614 Use CMAKE_INSTALL_BINDIR
Allow /bin install directory to be overriden. Debian for example uses this
to install FlightGear to /usr/games/ instead of /usr/bin/

https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
2016-07-09 18:52:58 -04:00
James Turner
7e607b8403 Fix fgValidatePath on Windows 2016-07-04 22:22:32 +01:00
James Turner
400901c239 Update for changed SGPath::realpath signature 2016-07-04 09:06:42 +01:00
James Turner
8e875b22f5 fgValidatePath uses SGPath 2016-07-03 23:59:40 +01:00
James Turner
fc3d47cd34 More std::ifstream -> sg_ifstream 2016-07-03 23:48:44 +01:00
James Turner
6d0c2070fd Use future-proof SGPath APIs.
Remove uses of .str(), .c_str() and some other methods of SGPath.
Pass SGPath directly where possible, or explicitly convert to the
appropriate 8-bit encoding.
2016-06-28 10:08:38 +01:00
Bertrand Coconnier
54274a4b9c convert another path to std::string before using it to prevent a compiler error 2016-06-25 21:26:50 +02:00
Erik Hofman
e165fc5ebe convert the path to std::string before using it to prevent a compiler error 2016-06-25 15:00:35 +02:00
Erik Hofman
7f4fe977a1 Convert PKGLIBDIR to SGPath before returing it to prevent a compiler error 2016-06-24 12:54:01 +02:00
James Turner
16814800ce Use Paths instead of strings. 2016-06-22 17:36:05 +01:00
James Turner
03ecac9dbc Work with new SGPath API. 2016-06-22 17:36:05 +01:00
James Turner
e4e0db5cac Aircraft-states feature. 2016-06-17 18:15:35 +01:00
James Turner
a3d660e423 Revert "Special case this define"
This reverts commit 58731a01e2.
2016-06-09 20:34:43 +01:00
James Turner
58731a01e2 Special case this define 2016-06-09 16:20:25 +01:00
James Turner
e672626558 Explicitly shut down logging
- needed to call FreeConsole on Windows.
2016-06-09 11:04:32 +01:00
James Turner
861b682acf VS2015 fixes
Explicitly specialize these templates.
2016-06-01 22:57:11 +01:00
Torsten Dreyer
5c0a477a47 Slightly better handling of setting initial pos
don't use KSFO as default when an unknown ID was
specified for --airport arg
TODO: don't hardcode default airport
2016-04-24 10:42:58 +02:00
James Turner
ca6424f76a Fix a reset crash with pager threading.
Ensure pager thread is stopped before we touch
the sgUserData reference to the main props tree.
2016-03-28 23:50:47 +01:00
James Turner
6fc2403449 Fix iterator const-ness. 2016-03-24 20:23:39 +00:00
James Turner
5baca8598f Improve download-dir behaviour.
When set on the command line, will be used for aircraft packages. When
set in the Qt launcher, will also be used for aircraft downloads at
all times.

When changing the path in the launcher, the set of aircraft catalogs
is refresh automatically. Note the default catalog may need to be
re-installed.
2016-03-24 15:10:06 +00:00
James Turner
733e3b3f0c HTTP subsystem has a default name.
Switch to using type-safe accessors now.
2016-03-24 15:08:38 +00:00
James Turner
88bfaca2b3 New options setting/clearing helpers. 2016-03-24 15:05:03 +00:00
Erik Hofman
209194ecba Reload user preferences after reading the video configuration file 2016-03-21 11:50:11 +01:00
Florent Rougon
0cfa4ced9c Make --metar automatically imply --disable-real-weather-fetch
The --metar option has no effect unless --disable-real-weather-fetch is
also passed. This often makes users believe that --metar doesn't work.
Change the implementation for --metar so that it automatically implies
--disable-real-weather-fetch.
2016-03-20 19:56:18 +01:00
Torsten Dreyer
585b4a7f70 Fix "failed to load file: Models/..."
After removing /Models from FGData loading of shared models from
within a scenery model failed because the ResourceManager did not know
about additional scenery paths.
2016-03-19 21:08:24 +01:00
Erik Hofman
e1bb47bc89 Add support for Video adapter rendering presets 2016-03-19 13:10:36 +01:00
Torsten Dreyer
a1e81a2fdc Make some more noise if (stale) fgfs.pid file exists 2016-03-08 18:37:32 +01:00
Rebecca N. Palmer
41b78ce150 Nasal security: allow reading explicit --terrasync-dir
(but not /sim/terrasync/scenery-dir - https://bugs.debian.org/780716 )
Needed for animated jetways:
https://sourceforge.net/p/flightgear/mailman/message/34870606/
2016-02-21 20:25:02 +00:00
James Turner
de959a14f3 Rename Viewer/viewer.cxx to view
- keep class and file names in sync.
2016-02-17 21:25:39 +00:00
James Turner
02ff854603 Re-Name FGViewer to flightgear::View
- avoids confusion with osgViewer and fgviewer application.

(source files to be renamed in a follow-up commit)
2016-02-17 21:25:39 +00:00
Edward d'Auvergne
97f8cdaaea Fix for the particle system.
The problem was that the change to make FGScenery a standard subsystem caused
the particle OSG group to no longer be inserted into the scene graph.  The
solution was to convert the particle group to be set up as a standard branch of
the scene graph, alongside the terrain, models, aircraft, and interior branches.
The particle system is now set up as part of the init() subsystem function call,
so it is compatible with the new subsystem design.
2016-02-16 17:33:40 +01:00
Edward d'Auvergne
34daa4de0b HUD fix for MSVC math.h incompatibility with C-99 and the round() function. 2016-02-11 19:36:32 +00:00
Rebecca N. Palmer
16e6009255 Nasal security: give a more user-friendly error on self-check fail
https://sourceforge.net/p/flightgear/mailman/message/34701972/
2016-02-10 22:54:52 +00:00
Edward d'Auvergne
c889198d09 Redesign of the latitude and longitude formatting for the HUD.
This follows from http://thread.gmane.org/gmane.games.flightgear.devel/78650 and
resolves the sign bug https://sourceforge.net/p/flightgear/codetickets/1778/ .

Combined with a matching change to FGData, this changes the HUD formats from the
current set of 3 (note that the text in brackets is not shown in the HUD
preferences PUI dialog, but is show here for reference):

    0) Decimal degrees (37.618890N -122.375000W)
    1) Degrees, minutes (37*37.133N -122*22.500W)
    2) Degrees, minutes, seconds (37*37 08.0 N -122*22 30.0 W)

to (here the text in brackets will be shown in the PUI dialog):

    0) DDD format (37.618890N 122.375000W)
    1) DMM format (37*37.133'N 122*22.500'W)
    2) DMS format (37*37'08.0"N 122*22'30.0"W)
    3) Signed DDD format (37.618890 -122.375000)
    4) Signed DMM format (37*37.133' -122*22.500')
    5) Signed DMS format (37*37'08.0" -122*22'30.0")
    6) Zero padded DDD (51.477500N 000.461389W)
    7) Zero padded DMM (51*28.650'N 000*27.683'W)
    8) Zero padded DMS (51*28'39.0"N 000*27'41.0"W)
    9) Trinity House Navigation (51* 28'.650N 000* 27'.683W)
2016-02-10 21:49:56 +00:00
Rebecca N. Palmer
f749953493 Nasal security: don't break file dialogs
Include the directory itself when allowing reading
Don't kill the script on a denied directory read
2016-02-09 23:17:41 +00:00
James Turner
c72309360e Defensive handling of locales.
- Use setlocale() to ensure consistent handling of locales and
  string handling irrespective of whether or not QCoreApplication
  is invoked. Forces a the C locale for numerics and collation,
  since many pieces of FG assume this.
2016-02-02 20:44:46 +00:00
James Turner
acb630095d Possible fix for Mac strncmp crashes. 2016-01-26 07:48:30 +01:00
James Turner
81792bd6d0 Adjust fg root processing order
- ensure fg-root and FG_ROOT are higher precedence than the Qt gui
2016-01-19 18:32:20 -05:00
James Turner
d81d353940 Improved fg-root control from the Qt Launcher
- add a button to the main dialog, explaining how to adjust the 
  fg-root path via the GUI
- tweak the GUI flow to support explicitly changing the path even
  when the default path is acceptable.
2016-01-18 20:06:43 -05:00
James Turner
e37e0d1bcf New log class for TerraSync 2016-01-16 15:50:13 -06:00
James Turner
e3fe8ae199 Log options to INFO level when processing
- ensures they occur in the fgfs.log which should aid problem
  tracing.
2016-01-12 17:33:57 -06:00
Torsten Dreyer
296849cf3d Fix a bug for allowed paths
Under some conditions on my system
aircraft_paths.begin() was equal to scenery_paths.end()
This resulted in neither of them being added to read_allowed_paths
followed by failure to load Nasal scripts from the aircraft directory.

This might happen, if scenery_paths gets allocated just before aircraft_paths
in memory.
Better loop across the desired lists instead of using fancy tricks with
the iterator.
2016-01-12 11:19:26 +01:00
James Turner
c400405b0a Chatter-queue moved out of globals
- now lives as part of the sound-manager, yay.
2016-01-03 12:00:15 -06:00
James Turner
fc9c43b48d Remove FontCache from globals.
- access via a singleton instead.
2016-01-03 12:00:15 -06:00
James Turner
52fd6986f8 Pull Sound-manager out of FGGlobals 2015-12-31 15:19:57 -06:00
James Turner
ba56c42eb4 Pull Ephemeris out of FGGlobals 2015-12-31 15:19:51 -06:00
James Turner
6da9461f92 Fix a typo 2015-12-19 00:32:25 -08:00
James Turner
c69e6fde12 AI subsystem now does an orderly shutdown
- remove special case logic which is no longer required
2015-12-19 00:30:31 -08:00
James Turner
83ea6d32d0 Make PerformanceDB a real subsystem 2015-12-19 00:29:00 -08:00
James Turner
b7c88e7acc Stop OSG threading earlier on shutdown.
Avoid intermittent race conditions on shutdown when the OSG 
pager/Db thread is running. Ensure the OSG threads are stopped before
we start tearing down any scene graph nodes.
2015-12-18 22:00:37 -08:00
James Turner
0f590280c7 Aircraft-model subsystem behaves better
- make shutdown logic more robust
- shutdown is no longer special cased in globals.
2015-12-18 20:13:23 -08:00
James Turner
89065ea5c2 Proper shutdown() for the model manager
- also move property setup to bind/unbind
2015-12-18 19:56:56 -08:00
James Turner
8877b442f8 ATC/Traffic doesn’t crash reset.
- remove some global headers from AI headers, to avoid pollution
- change how ATC owns the ‘player’ FGAIAircraft so reset works
- ensure AIAircraft controllers are cleared on unbind for reset
2015-12-11 12:11:59 -06:00
James Turner
1544641405 Remove view/tile/scenery members from globals
- also fix sound manager creation
2015-12-11 12:11:59 -06:00
James Turner
43fcbd2246 Progress towards testing
- remove route-manager from global variables
2015-12-10 16:40:22 -06:00
James Turner
76c6665af4 Merge /u/edauvergne/flightgear/ branch lat_lon_precision_fix_v3 into next
http://sourceforge.net/p/flightgear/flightgear/merge-requests/23/
2015-12-10 22:39:31 +00:00
James Turner
d891c5928c Remove /sim/temp/winding-ccw property
- part of work on unit-testing, remove OpenGL usage in fg_props
2015-12-10 15:53:05 -06:00
James Turner
d7a680e848 Templated subsystem handling
- remove explicit FGControls var from globals, as part of work
  towards unit-testing infrastructure.
2015-12-10 15:53:05 -06:00
Edward d'Auvergne
912215e949 The OSG version is now printed with --version.
This adds the OSG version number between the simgear and PLIB versions.
2015-12-05 15:24:47 +01:00
James Turner
2af076e6cb Add airport dynamics manager
- decouple dynamic airport data from the static (nav-db) data.
2015-12-05 00:25:29 +00:00
Edward d'Auvergne
524136d709 Minor rounding error fix for the latitude and longitude strings.
This is for the FGProperties::getLongitudeString() and
FGProperties::getLatitudeString() functions.  The previous algorithm was to
round the degrees up by the smallest fraction required to prevent a round up to
60 minutes or seconds, and then round down the final minutes or seconds by the
same fraction.  The new algorithm is to detect if the final minute or seconds
will be rounded to 60 by the string formatting and, if so, the higher unit
(degrees or minutes) is incremented by one, and the lower unit decremented by
60.
2015-12-02 17:48:02 +01:00
James Turner
fc887b106b Checkpoint - ground-net skips the cache 2015-12-01 14:01:32 +00:00
Rebecca N. Palmer
d56fbfd415 Revert "Initialise Qt earlier, and whenever available"
Temporary workaround for
http://sourceforge.net/p/flightgear/codetickets/1819/

This reverts commit 3e67417bf0.
2015-11-30 23:10:32 +00:00
James Turner
8bfb1c3aa5 Move functionality into clear_fg_scenerey helper. 2015-11-27 23:25:53 +00:00
James Turner
e52e20b54f SHPParser 2015-11-27 23:02:42 +00:00
Rebecca N. Palmer
3e67417bf0 Initialise Qt earlier, and whenever available
(to allow it to be used for error boxes)
2015-11-24 07:21:52 +00:00
James Turner
97a5e15aaf Show paused message when starting frozen. 2015-11-23 00:48:20 +00:00
James Turner
a39df48772 Navaid diagram for launcher
- work in progress, needs labels
2015-11-23 00:47:01 +00:00
James Turner
56d7d049bc Launcher GUI for in-air / navaid starts 2015-11-23 00:46:25 +00:00
James Turner
1e213201cf Work on the launcher 2015-11-23 00:45:21 +00:00
Stuart Buchanan
660c38ce72 Fix for SEGFAULT when using multiple loggers.
Patch from Julian BREITENEICHER.
2015-11-22 17:11:36 +00:00
Rebecca N. Palmer
3e462f3056 fgValidatePath: allow Nasal to read user-set scenery directories
(but not the Terrasync directory, as Nasal can change that)
2015-11-22 11:27:39 +00:00
Rebecca N. Palmer
97f235173e fgValidatePath: documentation improvements 2015-11-22 11:03:00 +00:00
Rebecca N. Palmer
91dc448875 Simplify fgValidatePath + minor fix (requires simgear update)
Drop fgNormalizePath, use realpath() only
As this makes it accept relative paths, always use the returned
(absolute) version for the actual file operation to avoid check-to-use
races, or where this is not possible (NasalSGPath) explicitly reject
relative paths
Fix: do_save is a write, not a read
2015-11-21 21:37:19 +00:00
James Turner
29ef561ed9 Fix some inverted logic
- spotted by Thomas Geymayer!
2015-11-20 21:28:19 +00:00
Thomas Geymayer
fdf4a61ed5 fgcommand remove-subsystem: fix double delete/segfault. 2015-11-19 23:17:58 +01:00
James Turner
f110fc57d6 Fix enable/disable-freeze option.
- set /sim/freeze/clock as well as /sim/freeze/master

Fix by Hamza Alloush
2015-11-13 22:13:44 +00:00
James Turner
bf6ef6664c Fix for OSG 3.5 2015-11-13 22:13:44 +00:00
James Turner
ca1f8cddc9 Fix a package crash on startup. 2015-11-13 22:13:44 +00:00
James Turner
2314ccfe13 Developer-warnings
- make some existing warnings developer-mode only
- add a warning about legacy aircraft path usage
2015-11-13 22:13:44 +00:00
Florent Rougon
7198dec355 Use SGPath::realpath() on the value supplied for --aircraft-dir
* Before setting /sim/aircraft-dir from the --aircraft-dir option,
canonicalize its value with SGPath::realpath() as is already done in
FGGlobals::append_aircraft_path() for the paths given with --fg-aircraft
or via the FG_AIRCRAFT environment variable.

* This fixes a bug when --aircraft-dir is used, due to the fact that
fgValidatePath() canonicalizes its 'path' argument before matching it
against the allowed patterns, and therefore will not validate paths
under the directory specified with --aircraft-dir if this directory has
been given in a non-canonical form by the user (e.g., containing at
least one symlink component).

* This fix does not lower security: the path which is canonicalized has
been explicitely given by the user. This operation is already done for
all paths specified with --fg-aircraft or via the FG_AIRCRAFT
environment variable, via Options::initPaths() which calls
FGGlobals::append_aircraft_paths().

* To reproduce the bug, create a symlink (e.g., /tmp/aircrafts) to a
directory suitable for --fg-aircraft, then run:

  fgfs ... --fg-aircraft=/tmp/aircrafts \
           --aircraft-dir=/tmp/aircrafts/SenecaII --aircraft=SenecaII

This will trigger many failures such as:

  loadxml: reading '/tmp/aircrafts/SenecaII/Dialogs/registration.xml'
  denied (unauthorized directory - authorization no longer follows
  symlinks; to authorize reading additional directories, add them to
  --fg-aircraft)

(from do_load_xml_to_proptree() in flightgear/src/Main/fg_commands.cxx)

I have also tested this with the ec130b4 and the 777-200ER. Same
problem, same fix.
2015-10-06 21:54:50 +02:00
Florent Rougon
1d34b96d49 Don't load resources for the current aircraft from several aircraft dirs
* If one has the same aircraft in several aircraft directories,
  FlightGear should not mix resources from the various aircraft
  directories. For instance, if one starts FG with:

    --fg-aircraft=/my/personal/dir:/path/to/fgaddon/Aircraft

  and one has in /my/personal/dir/ec130 a clone of the upstream
  developer repo, FlightGear should use either the upstream version from
  /my/personal/dir/ec130 or the FGAddon version from
  /path/to/fgaddon/Aircraft/ec130, but not some strange, untested hybrid
  of both.

* This commit makes sure that when the looked-up resource starts with
  Aircraft/<ac>, where <ac> is the current aircraft name [last component
  of aircraftDir = fgGetString("/sim/aircraft-dir")], then
  AircraftResourceProvider::resolve() doesn't search other aircraft
  directories if the resource isn't found under 'aircraftDir'.

* To reproduce the bug before this commit, you may add the following
  code (there is nothing specific about the SenecaII here, it's just the
  aircraft I used for testing):

    var file_path = resolvepath("Aircraft/SenecaII/flo-test");
    if (file_path != "")
      gui.popupTip("flo-test found", 2);
    else
      gui.popupTip("flo-test not found", 2);

  in a keyboard binding for the SenecaII (for instance; you may use the
  F11 binding that otherwise only prints a short message). You should
  add this to the SenecaII/SenecaII-base.xml file *that will be loaded
  by FlightGear*, let's say the one under /my/personal/dir in the
  example above (beware of the <path-cache> in autosave_X_Y.xml). Then,
  by creating or removing a file named "flo-test" in the SenecaII
  subdirectory of other aircraft dirs (for instance,
  /path/to/fgaddon/Aircraft in the example above), you can see that the
  behavior of the loaded aircraft is influenced by the contents of
  unrelated versions of the same aircraft that might be present in other
  aircraft dirs (e.g., loaded /my/personal/dir/SenecaII influenced by
  /path/to/fgaddon/Aircraft/SenecaII).

* Aircrafts loading resources using paths relative to the current
  aircraft directory (e.g., with 'resolvepath("flo-test")') are not
  affected by this kind of problem, because this scheme is handled by
  CurrentAircraftDirProvider, which does not exhibit this bug.
2015-09-26 09:45:33 +02:00
James Turner
18a898f5f9 Lots of work on aircraft package support 2015-09-20 19:46:35 -05:00
Rebecca N. Palmer
e296ea5fe0 Nasal security: document that symlinks are no longer followed 2015-07-25 10:15:31 +01:00
Rebecca N. Palmer
e2cbacff90 fgValidatePath: remove overly fragile test case
Fix failure to start with non-standard TerraSync directory
2015-07-14 19:43:51 +01:00
Rebecca N. Palmer
6957a17434 fgValidatePath: fix \ vs / Windows bug 2015-07-14 08:00:22 +01:00
Rebecca N. Palmer
5b2ae615e5 avoid ERROR: The path '' does not exist... on startup
While harmless, it's an annoying distraction
2015-07-13 23:15:36 +01:00
Rebecca N. Palmer
e090a9da3f fgInitAllowedPaths: remove possibly invalid test paths 2015-07-13 22:53:23 +01:00
Torsten Dreyer
092707e78b Fix #1778: incorrect HUD values
negative latitude/longitude coordinates resulted in negative WEST/
SOUTH coordinates for the default format 0 (zero).
This should be now fixed so that
+12.3 gets formatted as 12.3N/E
-12.3 gets formatted as 12.3S/W
2015-07-13 16:23:56 +02:00
Rebecca N. Palmer
823d57bd53 Security: don't follow symlinks to forbidden directories
https://bugs.debian.org/780867

This messy approach is to minimise changes during freeze; for 3.7,
I plan to make realpath() handle non-existent files as "realpath
they would have if created now" and get rid of fgNormalizePath
2015-07-12 17:57:49 +01:00
Rebecca N. Palmer
1199d6d626 Security: don't pass a string to fgValidatePath then use the original
This is insecure because it always (not just on Windows) converts
\ to / before .. checking.  Either use the path it returns (as in
f_open()) or use an SGPath (where this conversion is already done)

Only a minor problem because the affected functions are limited to
the .sav file type
2015-07-12 17:49:21 +01:00
Torsten Dreyer
36113bf69d Cleanup: remove unused code and includes
no functional change
jpg-httpd functionality was moved into httpd with 3.4
cmd-line option still spits out a warning
2015-07-08 17:24:13 +02:00
James Turner
0f90a2e9f3 FLIGHTGEAR_VERSION is always set. 2015-06-08 10:37:26 +01:00
Durk Talsma
98682c0c68 Fix bug when starting using the --parkpos option. Create a pointer to a ParkingAssignment object, so that the reference counter doesn't get reset to 0 when the local class is destroyed. 2015-05-14 18:15:30 +02:00
James Turner
aa20e0acd8 Work on new download-dir option
- simplify management of a single, user-facing
  location for large downloaded data.
2015-04-10 15:01:54 +01:00
James Turner
73de4aeb86 Fix —show-aircraft with multiple aircraft dirs
Patch from Jens Thoms Toerring
2015-04-09 15:31:09 +01:00
Rebecca N. Palmer
659c5b9676 Fix spelling 2015-04-06 10:28:10 +01:00
Rebecca N. Palmer
14405fe2e3 Fix compile with CMake 3.2.1, by Kevin Seroux
Explicitly link X11, as this no longer comes with OpenGL
2015-04-03 19:15:52 +01:00
James Turner
f2d6b76b13 Portability: Fix compile errors on MSVC (cmath)
From Scott (xDraconian)
2015-03-24 11:11:42 -05:00
Rebecca N. Palmer
6cc98cb995 Improve error messages for system.fgfsrc removal
The original message (b5835c38b4)
was meaningless on Windows
2015-03-20 18:56:13 +00:00
Rebecca N. Palmer
51bfdc21e0 Nasal: remove /tmp/*.xml from allowed paths list
Appears unused, and shouldn't be used on Windows
2015-03-20 18:20:11 +00:00
James Turner
e0274af493 Percentage feedback during nav-cache build.
- also used by the GUI launcher for the same.
2015-03-19 12:01:38 -05:00
Torsten Dreyer
c26fb00049 etxtend "pause" command to force pause/continue 2015-03-14 22:33:06 +01:00
Rebecca N. Palmer
196c667266 Normalize the allowed paths as well (fix Windows breakage) 2015-03-13 22:40:35 +00:00
Torsten Dreyer
817297699f warning fix: use correct type for std::string::find reply 2015-03-13 22:57:03 +01:00
Rebecca N. Palmer
b5835c38b4 Disable system.fgfsrc
Together with the preceding few commits, this is intended
to make security independent of the data package
2015-03-13 18:14:51 +00:00
Rebecca N. Palmer
16784d590a Document that property write-protection is not a security measure
(Nasal can remove it)
2015-03-13 18:11:29 +00:00
Rebecca N. Palmer
9002696195 Make fgValidatePath always return std::string, not char * 2015-03-13 18:07:24 +00:00
Rebecca N. Palmer
6a30e7086e Stop using property listener for fgValidatePath
This was insecure: while removelistener() won't remove it, there are
other ways to remove a listener from Nasal
2015-03-13 17:54:44 +00:00
Torsten Dreyer
f7d476c856 extract RemoteXMLRequest to make it reusable 2015-03-11 18:50:11 +01:00
James Turner
11c2623dec Start wiring package manager into the launcher. 2015-03-11 17:09:59 +00:00
James Turner
2e452e78f3 Fix non-Qt build. 2015-03-08 09:40:44 +00:00
James Turner
c3543f8fdd GUI ‘restore defaults’ support.
- Hold ‘alt’ on launch to restore defaults, including launcher prefs.
2015-03-08 00:42:39 +00:00
James Turner
a466dbce73 Very crude work on GUI base package selection.
- feedback on wording greatly appreciated.
- needed to make nightly builds usable without bundled data.
2015-03-08 00:42:05 +00:00
Rebecca N. Palmer
033957003f Clear GroundLightManager on exit to avoid segfault
While mostly harmless since you're exiting anyway, it's an annoying
distraction when the real problem is "unexpected exit" (e.g.
https://bugs.debian.org/763285 ), and blocks testing with LeakSanitizer
2015-02-12 16:39:28 +00:00
James Turner
1cffd2b8c0 Fix encoding / C++11 compliance
- convert text encoding to UTF-8
- C++11 requires a space between literal and identifier
2015-02-11 16:44:05 +00:00
James Turner
ee61a07636 Restore aircraft-manager location back to FG_HOME 2015-01-10 14:18:32 +00:00
James Turner
7d9609116b - Make Qt check guarded by a CMake option
- Only init QApplication if showing the launcher.
2015-01-10 14:05:23 +00:00
James Turner
1ba62acfcc Fix native menubar in Mac builds with Qt
- where we don’t use the launcher, we must pass tell OSG we
  want to pose as standalone when setting the window traits.
2015-01-07 09:19:04 +00:00
James Turner
78e8f53312 In-app launcher for Mac, based on Qt5.
The old Mac launcher doesn’t work on Yosemite, add a tiny
Qt-based launcher inside the main process (no need to fork /
exec) which runs before the OSG window is created.

Will be merged for 3.4, hopefully with no impact on other
platforms.
2015-01-06 19:13:30 +00:00
James Turner
0a28e95107 Guard against saved bad terrasync path.
- warn when the terrasync path is not writeable, with a message box.
2015-01-04 18:02:26 +00:00
Torsten Dreyer
71eba5e579 Fix #1606, bad ATIS for Japanese locale
Selecting a language for a nonexisting translation did not load the sys and
atc messages.  Better fall back to default (en) locale.
2014-12-04 09:18:41 +01:00
James Turner
cb9919ef74 Drop ground-nets cache on scenery path change.
Unfortunately we can’t drop loaded ones, since the in-memory structures don’t have ref-counting, and we don’t
know what AI plans may be referencing them.
2014-12-02 16:31:34 +00:00
James Turner
729392b1f3 Remove obsolete #define 2014-11-11 22:25:55 +00:00
Torsten Dreyer
e4fd9a6b8f Remove --jpg-httpd option
the original implementation of a screenshot server is now
replaced by the mongoose httpd /screenshot URI which provides
more features.
2014-10-02 11:33:45 +02:00
Thomas Geymayer
0b9e72eb87 Nasal: move IOrules check to better place and exit on failure. 2014-09-19 18:22:47 +02:00
Torsten Dreyer
015ecb54f3 Load a flight recorder tape from the command line
Adds new option --load-tape=foobar to load a flight recorder
tape from the command line. Loads foobar.fgtape from the
directory specified in /sim/replay/tape-directory and starts
replay.
2014-09-17 22:38:40 +02:00
Thomas Geymayer
0f14a2d73b subsystemFactor: name fixing (use same as in fg_init.cxx) and cleanup. 2014-07-12 01:17:35 +02:00
Thomas Geymayer
a52c0882a1 Fix subsystemFactory name fdm -> flight (Thanks to Hooray). 2014-07-11 19:25:26 +02:00
Thomas Geymayer
f7f7be77e5 Remove unused value, formatting. 2014-06-22 15:36:25 +02:00
Gijs de Rooy
8c99d5d9d6 Remove unused --control option 2014-06-19 14:28:14 +02:00
James Turner
7e8d713b28 Pkg: initial support for Variants
- aircraft init code can deal with a variant ID
- Nasal API can return a hash with variant IDs and names
2014-06-15 20:10:24 +02:00
Thomas Geymayer
9604142d09 Fix crash (use iterator of same container for loop) 2014-06-12 16:38:21 +02:00
James Turner
63427fc589 Pkg: Fix loading of non-installed aircraft.
Fallback to the normal code path when a packaged aircraft is
found, but not installed.
2014-06-12 13:06:01 +01:00
James Turner
32f57d0dc1 Aircraft switching command and formal support.
- /sim/aircraft can be set to package ID, including qualified
package ID. If not matching package is found, falls back to
traditional search of fg-aircraft for -set.xml files
2014-06-12 08:17:05 +01:00
James Turner
d1fd5756f6 Initial package-system integration.
- disabled by default
- incomplete, adding so Thomas can see the API
2014-05-31 18:04:56 +01:00
Thomas Geymayer
3b4bb10e4f Canvas: expose layouting to Nasal. 2014-05-31 02:43:03 +02:00
Torsten Dreyer
a5c39e3009 Final log-class cleanup (httpd comes in another commit)
yes, I will use grep next time :-/
2014-05-20 23:12:34 +02:00
Torsten Dreyer
59db0534ff Fix a warning, no functional change 2014-05-05 22:24:47 +02:00
Torsten Dreyer
6ee2fcdd9e Allow using the system version of flite and the HTS engine
By default, if the system version exists and can be used,
then it will be used. Otherwise, the local version will be used

Original patch by  Saikrishna Arcot via
https://gitorious.org/fg/flightgear/merge_requests/1582
slightly modified
2014-04-28 21:33:48 +02:00
James Turner
01dca5e541 Fix link order of HTS / flite for GCC ld
- Clang, gold etc don't care but GCC ld still does.
2014-04-04 11:25:12 +01:00
Torsten Dreyer
44ba076720 allow binding of httpd to an address, not just a port
support --httpd=127.0.0.1:8080
2014-03-29 22:07:12 +01:00
James Turner
ca3cc03fac Ignore not-found 'config file' arguments.
Fixes confusing startup behaviour with malformed args, when
an argument accidentally contains a space (e.g. a park-pos or
protocol desc). In this case we treat the parts after the space as an XML config file name. When we can't find this file, we
completely abandon options setup, which causes many downstream
errors.

Change the behaviour so we warn in this case, but carry on with normal startup.
2014-03-27 08:05:02 +00:00
James Turner
19528fab8c Fix duplicated FGIO channels on reset.
Thanks to Nicholas Scheel for spotting this.
2014-03-26 19:24:00 +00:00
James Turner
487546c848 Fix some leaks on reset
- tilecache 'clear_cache' is poorly named, ensure the destructor
  really deletes all outstanding entries.
2014-03-13 18:19:13 +00:00
James Turner
c7f2992904 Add 'set-scenery-paths' command. 2014-03-12 18:56:19 +00:00
James Turner
afe02b9b36 Reset: tweak property PRESERVE
- ensure options are re-processed before restoring PRESERVEd
properties, so that sessions changes survive a reset.
2014-03-11 22:43:25 +00:00
James Turner
1edffd1d10 Reset: fix OSG stats handling 2014-03-11 16:45:47 +00:00
James Turner
f04d5f8758 Reset: work with threaded OSG modes 2014-03-11 16:45:31 +00:00
James Turner
cc607ae7e4 Save/restore initial state removed. 2014-03-10 17:29:28 +00:00
James Turner
9489009570 Fix fg-aircraft, fg-scenery props after reset.
- restore fg-aircraft properties, and PRESERVE fg-scenery ones,
across reset.
2014-03-10 17:24:42 +00:00
James Turner
03aa642155 Old reset code-path is removed. 2014-03-10 17:24:37 +00:00
James Turner
5e6c2b8e82 Reset the Autopilot on reposition.
- previously we restored AP state to initial; let's
actually re-init it after re-position.
2014-03-10 12:02:10 +00:00
James Turner
a8fe586e48 Revert wiping of /fdm on reposition.
This is too destructive for many established things, so revert it.
Instead, make the FDM shell save /fdm state on postinit(), and
restore it on re-init (which reposition invokes).
2014-03-10 12:00:51 +00:00
James Turner
7b2d710cd0 Add hts_engine 1.08 and flite_hts 1.05 code.
- Not compiled by default, nor hooked up to anything yet.
- Both libraries licensed under modified BSD license.
- Added top-level CMake file for both, to create a plain static
  library for each.
2014-03-10 09:32:43 +00:00
James Turner
86ba2a1628 Throw the reset switch.
- fix up CanvasMgr so canvas works after new reset.
2014-03-07 12:40:14 +00:00
James Turner
5ce2a067ca Fix JSBsim trimming on reposition.
- remove the entire /fdm tree on reposition
- force the initial NED wind values to 0.0 in JSBsim,
pending advice from people who know better.
2014-03-06 22:33:42 +00:00
Torsten Dreyer
b84026ce84 httpd: fix ignored port on --httpd=nnnn
also fix unconditional startup of the daemon
2014-03-06 21:19:49 +01:00
Torsten Dreyer
63e9cbed40 Initial commit for mongoose httpd 2014-03-06 13:19:15 +01:00
Thomas Geymayer
88b7d4f530 Update for SGPropertyNode changes. 2014-03-06 00:41:41 +01:00
James Turner
6493975913 Remove reference to 'old ATIS' from reposition. 2014-03-05 15:16:07 +00:00
Torsten Dreyer
ea13c0f2de Cleanup, no functional change 2014-03-05 14:09:40 +01:00
Torsten Dreyer
dd6cccdda1 A new comm radio and atis implementation 2014-02-28 11:45:49 +01:00
James Turner
99fd9513d9 Metar: finalise-position fast if Metar fails
- when METAR lookup fails (as opposed to timing out), report
this immediately so finalise-position doesn't wait.
2014-02-24 19:43:21 +00:00
James Turner
bd8e43c007 Initial work on 'reposition' command
- use old-style reset as the basis for a lightweight 'reposition' command. This does not restore state, or reset
time management, but does reset the FDM and re-finalize position.
2014-02-24 19:43:21 +00:00
James Turner
b76d255d82 Remove pre-OSG 'enable/disable-textures' option.
These have been non-functional for a long time, remove
to avoid further confusion.
2014-02-21 07:57:35 -08:00
James Turner
39d1b6db38 Re-factor the FPE handling code
* make --enable-fpe work on Linux and MSVC
* standardise the code paths for different platforms
* add an argument finding helper to Options

(This is a basic cleanup, contributions from people with
more experience in this area are welcome)
2014-02-19 13:53:52 -08:00
Christian Schmitt
9d995907db Support helipad names in the --runway startup option
also give better user feedback if runway/helipad ID is unknown
2014-02-14 20:05:11 +01:00
James Turner
7bc7197f6a Use Cmake to generate app-bundle on Mac
- build the .plist using CMake features
- update the nightly Mac packaging script for the new layout
2014-02-14 18:58:36 +00:00
James Turner
4df9c61d2a Check for and warn about old nVidia drivers.
(Had a bug report with someone using 189 drivers on Windows!)
2014-01-27 17:27:12 +00:00
James Turner
1a372d9366 Update image-server logic.
- no dependency on libJpeg or Simgear
- no duplicate rendering of the scene (uses a draw callback)
- supports other image types, eg PNG
- threaded so doesn't block the main loop ever
2014-01-27 09:08:34 +00:00
James Turner
9f3a2ddbdc Change default Windows terrasync path
Now use (new) SGPath::documents helper to download
to a user-visible location: Document\FlightGear.
(Linux & Mac behaviour is unchanged)
2014-01-26 16:07:53 +00:00
James Turner
c8b1655edc Report bad command-line args via message box.
This makes the behaviour when FGRun (or other GUI launchers)
send bad options much more explicable. Non Windows/Mac systems
get an SG_ALERT on the console as before.
2014-01-25 10:36:00 +00:00
James Turner
45d67406a4 CrashRpt tweaks, checking.
- show a message box if setup fails
- log setup status
2014-01-22 22:33:30 +00:00
James Turner
80cc2ff8c3 Adjust fg-aircraft handling back to original style.
- startup code will warn and fix the alternate style
- man page now documents the option
2014-01-22 10:56:04 +00:00
James Turner
a46114da9a Fix typo, add Hudson Build-ID to reports. 2014-01-20 21:54:06 +00:00
James Turner
ce3a7b20fe Crash-fix: mat-lib is now reference-counted.
Adapt to corresponding SG change to make SGMaterialLib be ref-counted,
and have the 'reload-materials' command notify the tile-manager of this,
so it can update the options struct it passes to new tiles.
2014-01-19 16:49:44 +00:00
James Turner
2a460d8e86 Make CrashRpt link optional
(The variable contains -NOTFOUND, not the empty string, so we can't
just link against it regardless)
2014-01-18 15:36:20 +00:00
James Turner
590be3f8ff Initial integration of CrashRpt for Windows. 2014-01-18 14:51:19 +00:00
James Turner
2a354e224c Make Traffic-via-terrasync conditional
GUI dialog already set the property, just need to pick it up.
2014-01-15 22:01:02 +00:00
James Turner
2b55acd3eb Tweaks to fg-aircraft handling.
Warn (but do not require, since people would probably complain) when
added paths do not contain an Aircraft subdir. When people specify
a path which ends in /Aircraft, use the parent directory.
2014-01-15 17:10:12 +00:00
James Turner
061154d7a6 Reset, fix Nasal timers added on shutdown. 2014-01-13 20:13:34 +00:00
James Turner
4d0eeb8184 Reset work, fix time-slew on OSG event handling. 2014-01-13 20:13:34 +00:00
James Turner
448539a6b9 Fix crash: Quit via Cmd-Q on Mac.
Tweak static-init order of some OSG objects, so they are valid when
fg_terminate runs, and hence orderly shutdown in possible.
2014-01-04 17:27:55 +00:00
James Turner
9e773e85f8 #1291, hang on exit with OSG threading.
Explicitly stop threading during shutdown, before destroying various
rendering / viewer related structures.
2014-01-04 16:10:42 +00:00
James Turner
47e802e674 Fix for the fix: check for a viewer.
- avoid a crash if we bail out before creating the viewer (missing
data or bad aircraft)
2013-12-30 17:16:53 +00:00
James Turner
b0db2a764f Fix crash on exit (cancel the osgDB pager)
- borrow some code from the new reset codepath to cleanly stop the
OSG pager thread during normal shutdown. Avoids a race-condition 
destroying various structures the pager thread might be modifying.
2013-12-30 15:24:15 +00:00
James Turner
4c51ad0d87 Cocoa: fix warning about deprecated function.
SetFrontProcess is deprecated, use NSApplication instead now we
have the CocoaHelpers file.
2013-12-21 15:31:27 +00:00
Rebecca Palmer
4427ee7406 Always make sure the Terrasync directory is set and exists
This was previously done only if Terrasync was on, but this made
it impossible to use the GUI dialog to turn it on for the first
time in a fresh install
2013-12-20 12:39:23 +00:00
James Turner
5cf8157a66 Security: more conservative dir permission masks.
Use 0755 instead of 077 everywhere we create a directory.
2013-12-19 14:53:39 +00:00
James Turner
52f2f5ff78 Bugfix: remove the (totally broken) skyblend option 2013-12-19 14:53:39 +00:00
Rebecca Palmer
bf1fe65bc5 Disable screensaver: initial Linux-only implementation
Add a function fgOSDisableScreensaver() that attempts to disable the
screensaver (currently only succeeding on Linux), and call it on startup.

CMake option USE_DBUS (on by default), requires libdbus-1

Motivation: most screensavers do not monitor the joystick
https://bugs.launchpad.net/ubuntu/+source/flightgear/+bug/793599

Discussion: http://sourceforge.net/p/flightgear/mailman/message/31717061/
2013-12-15 21:18:22 +00:00
James Turner
b3534ff8c2 Reset: use new copy-properties helper. 2013-12-15 20:46:34 +00:00
James Turner
df3f842f8a Reset: Clear the pager queues, preserve properties. 2013-12-09 23:27:40 +00:00
James Turner
5d8fa03090 Shutdown: clear effects cleanly.
Avoids effects (and referenced properties / objects within) persisting
due to references in the effects cache, after globals are gone.
2013-12-09 23:27:40 +00:00
Thomas Geymayer
93dff17649 Set "/sim/fghome-readonly" to false also for Windows.
"/sim/fghome-readonly" is read with a default of false always,
but I think the code should set it explicitly to false for all
platforms.
2013-12-09 23:16:25 +01:00
Thomas Geymayer
13d94f240c Check return values if write and unlink. 2013-12-09 23:15:35 +01:00
Thomas Geymayer
5fb7b2e12c Canvas: Now only one global SystemAdapter is used... 2013-12-09 23:13:45 +01:00
James Turner
6763d232cd Reset: clear the osg object cache 2013-12-06 17:38:23 +00:00
James Turner
7ff9792b96 Reset: listener cleanup 2013-12-04 09:11:26 +00:00
James Turner
8cd71ff1ef Reset: clear effects cache 2013-12-04 09:09:47 +00:00
James Turner
25bf3793bd Reset: fix a static in play-audio-sample
Had to add this to FGGlobals, since it needs to be cleaned up
alongside the sound manager (which ideally it would be owned by, 
but that's a change for another day)
2013-11-25 23:53:58 +00:00
bcoconni
d3f6ab38c2 Fixed a race condition so that FG runs most of the time (instead of crashes most of the time) 2013-11-24 20:06:28 +01:00
James Turner
2015016466 Break config init / aircraft loading apart.
Allows aircraft loading to proceed during reset without original
values over-writing the updated ones.
2013-11-24 15:10:00 +00:00
James Turner
af6095c5d1 Reset: do general init on reset path 2013-11-22 22:52:33 +00:00
James Turner
1d8b080782 Reset: delete mat-lib, re-create on reset 2013-11-22 22:52:29 +00:00
James Turner
1f699984e9 One more Mac helper moved into CocoaHelpers.mm 2013-11-19 22:01:11 +00:00
James Turner
875227057c Structural work (init + shutdown) for new reset system.
The new approach is still work in progress (compile time option) and 
non-functional, existing reset still works.
2013-11-19 17:38:51 +00:00
James Turner
2331956539 One more Mac helper moved into CocoaHelpers.mm 2013-11-18 15:52:30 +00:00
James Turner
2c4ac08895 Globals: delete/shutdown tweaks.
Avoid aircraft-model crash in accessing fx/sound
during shutdown.
2013-11-16 14:25:12 +00:00
James Turner
fe357ba2a9 Refactor aircraft-dir visiting.
Cap maximum depth to avoid bug 865
2013-11-16 14:24:37 +00:00
James Turner
d2962ffb2d Reset: refactor static CameraGroup ownership 2013-11-16 13:02:47 +00:00
James Turner
98078cdd55 Reset: make fgSetDefaults non-static. 2013-11-16 13:02:43 +00:00
James Turner
0191b597e7 Environment manager: use aircraft_pos helper 2013-11-16 12:28:51 +00:00
James Turner
780393e2fe Release property refs on shutdown. 2013-11-16 11:56:42 +00:00
James Turner
fecb475145 Refactor Cocoa helpers.
Change away from using deprecated FSFindFolder.
2013-11-16 10:58:17 +00:00
James Turner
2bff8d2220 Fix Linux build
Linux needs explicit includes for open() and flags.
2013-11-16 09:31:18 +00:00
James Turner
0cda3cbfb2 Multiple-instance support.
Write PID file to FG_HOME, use this to detect multiple launches.
When this situation is detected, set a marker property and place various
objects into read-only mode, such as the NavCache and TerraSync.

PID file is created using open+unlink semantics on POSIX, and 
DELETE_ON_CLOSE on Windows, so it will be removed when fgfs exits,
even if killed or crashes.
2013-11-15 21:04:15 +00:00
James Turner
13d5fd4c25 More tweaks for Linux.
(Needs explicit include of stdio, and stdarg in the header)
2013-11-14 23:32:02 +00:00
James Turner
ef55d175dd Linux needs stdarg.h for va_args 2013-11-14 23:14:51 +00:00
James Turner
1f7fdc3e07 Kill some archaic options. 2013-11-14 23:14:46 +00:00
James Turner
1db9d25f56 Translation helpers, add global functions.
These are designed for compact access to translations, including a
positional printf.
2013-11-14 22:03:00 +00:00
James Turner
136cd6ac51 Message box support.
This allows us to display a platform-native dialog for problems
which occur early in startup (before we can show a PUI/Canvas dialog).

In particular this improves feedback where FG_HOME, FG_DATA or
aircraft selection is wrong, all of which happen very early in startup.
2013-11-14 22:02:29 +00:00
Clément de l'Hamaide
7e90c8aa2b Force 32 bits depth on .ico - only for Windows 2013-11-14 21:24:56 +01:00
James Turner
e25aa4f004 Fix some static property references.
(These cause problems when replacing the property tree during reset)
2013-11-14 16:37:46 +00:00
Clément de l'Hamaide
1c49890bec Icons update 2013-11-13 22:49:07 +01:00
James Turner
4a3b8c5765 Reset: changes for SGSubsystem ownership.
Keep in sync with updated ownership model in subsystem groups.
2013-11-12 23:36:18 +00:00
James Turner
44246d7708 Reset: adjust for tweaked TerraSync API 2013-11-12 23:10:19 +00:00
James Turner
af40bcb60e Reset: explicit close-window function.
Allow orderly shutdown of OSG before cxa_finalize
2013-11-12 22:57:13 +00:00
Thomas Geymayer
cf270bde22 Expose HTTP module to Nasal. 2013-10-27 19:39:22 +01:00
Thomas Geymayer
8a582e6376 Update/refactor for simgear HTTP changes. 2013-10-27 19:39:22 +01:00
James Turner
4e7a22f589 Default to 32-bit color buffers.
Requesting 16-bit is probably doing more harm than good on modern
hardware. Command line switch to change works as before.

Also update the default window size, although this is actually
set by preferences.xml
2013-10-27 13:03:01 +00:00
James Turner
d127f7709f Remove confusing reference to SDL/GLUT 2013-10-26 21:12:57 +01:00
James Turner
3cdf948c8b SGI and Borland compilers are gone. 2013-10-26 21:11:02 +01:00
James Turner
6bd2acab78 Window console changes
- default to SUBSYSTEM:WINDOWS (we can still AllocConsole if needed)
- add --console option to get a console on Windows
- ensure --show-aircraft and --help modes show the console automatically.
2013-10-26 21:07:23 +01:00
James Turner
e93dc27153 Tweaks to startup configuration handling
- restore-defaults kills the nav cache, terra-sync cache
- new ignore-autosave option bypasses autosave.xml and leaves it
  untouched (does not over-write on exit)
2013-10-26 18:29:31 +01:00
James Turner
81e86f5b20 Pause popup respects the preference. 2013-10-24 23:23:01 +01:00
James Turner
e3841fc9ef Fix typos. 2013-10-20 20:46:40 +01:00
Thomas Geymayer
771586854b Make build information readonly and clean up debug output. 2013-10-20 12:59:44 +02:00
Thomas Geymayer
6b88302037 Provide debug information on thread safety of osg::Referenced. 2013-10-19 01:20:28 +02:00
James Turner
f6fafffeb5 Initial hacking on terra-sync of traffic files. 2013-10-17 17:33:30 +01:00
James Turner
386d87e098 Cleanup exit handling.
Replace many lingering calls to exit() from the code,
replacing most with exception throws, which can be
caught by the existing mechanisms.

Update the option-parsing code to return an explicit
value indicating what to do (e.g., exit status to return
to the shell).
2013-10-15 22:16:50 +01:00
James Turner
78f2f2f142 Work-around for issue 1231.
Force sglog() to be initialised before at exit
handler is registered, so logging can be used from
inside our exit handler.
2013-10-15 22:02:36 +01:00
ThorstenB
7ce2107336 Add support for IGC logging protocol.
Many light aircraft include GPS loggers capable of recording the flight
path using IGC records. Lots of third party utilities are available to
analyze, process and convert igc files.
Usage: "fgfs --igc=file,out,1,OutputFile.igc"
2013-10-14 22:13:31 +02:00
James Turner
52e5a9abe8 Reduce amount of log output at level=debug. 2013-09-28 14:47:20 +01:00
James Turner
1a9e479e2a Terrasync tweaks.
- Enable the terrasync persistent cache
- Ensure terraysync scenery dirs exist before NavCache init, so the paths are stable
- Notify TerraSync on reposition, so we sync the full 3x3 set of tiles.
2013-09-28 14:07:45 +01:00
Torsten Dreyer
8d415eafa3 make the metar command line tool case insensitive 2013-09-26 16:49:27 +02:00
James Turner
0206de2d2c Relocate Sqlite3 sources, upgrade to 3.8.0.2
Move sqlite source to a separate location, and build with
an intermediate library target. This permits us to set compile options
easier, including an important one, NDEBUG, which improves performance.

Sqlite 3.8.0.2 also includes an updated query planner which may improve
some queries, to be tested.
2013-09-26 09:52:41 +01:00
James Turner
33425c671d Support for multiple data dirs. 2013-09-17 07:47:58 +01:00
James Turner
4052c45ea3 Fix Mac data dir finding.
Mostly affects release builds, ensure data dir located within
the bundle is found correctly.
2013-08-26 22:21:55 +01:00
Tom Paoletti
81cd33e2fa Performance optimization: empty() instead of size()>0
empty() is guaranteed to be constant complexity for both vectors and lists, while size() has linear complexity for lists.
2013-08-19 09:01:59 +01:00
f-jjth
d03b44b662 FGCom integrated into FlightGear.
Disabled by default at build time.
2013-08-16 17:02:47 +01:00
James Turner
cff6b2034d Remove unnecessary includes/using
flight.hxx (FGInterface) was pulling in list, string and vector, and
'using' them, despite no actual need.
2013-07-29 22:59:45 +01:00
Gijs de Rooy
78507bf22e Suggest NVIDIA Optimus to use the high-end GPU. 2013-07-18 08:51:43 +01:00
James Turner
b1b6d2f6e2 Namespace fixes for std::string 2013-06-27 09:53:12 +01:00
Thomas Geymayer
07e9b48344 Preserve current view on reset/reinit/reposition 2013-06-22 17:07:11 +02:00
hooray
c61583de5d expose HLA/RTI availability to property tree - for use in about dialog 2013-06-21 12:14:40 +01:00
James Turner
145148944f Kill off platformDesktopPath entirely 2013-06-20 00:20:12 +01:00
James Turner
b7bf3ee620 Simplify logic now SGPath::desktop works on Windows. 2013-06-20 00:03:36 +01:00
James Turner
fb30e3609e Create FG_HOME if not found 2013-06-16 19:50:30 +01:00
Thomas Geymayer
dfa583c014 Use SGPath helpers and unescape from simgear 2013-06-10 21:42:53 +02:00
James Turner
6d158e886c Abstraction for the user's desktop location. 2013-06-09 23:00:09 +01:00
James Turner
931f4266fb TerraSync: fix dir creation.
Separate the default path logic, from the 'create if
not found' logic.
2013-06-09 22:57:45 +01:00
James Turner
32834eb0b0 Make property-cycle usable with knobs/sliders.
Add optional non-wrapping mode, and respect the 'offset' argument 
which knobs and sliders set, to control direction of stepping.
2013-05-12 13:30:48 +01:00
Thomas Geymayer
222f2f71ef Startup check if IOrules/fgValidatePath are working properly 2013-04-29 22:16:51 +02:00
James Turner
85bfd27af2 Non-sticky scenarios, simpler UX for everyone.
If you want a scenario in a particular session of the sim, ask for
it on the command line / config files, or enable in the GUI.

Note if you had previously 'sticky' scenarios in your autosave.xml, you
will still get them until you clean your autosave, or disable them in
the GUI.
2013-04-05 17:20:22 +01:00
James Turner
a7e4f2a971 std:: namespace fixes, AIBase cleanup.
Make data members in AIBase protected, and move FGAIModelData to be
a private helper in the .cxx file.
2013-03-28 16:49:52 +00:00
James Turner
67f2147f3d Improved locale detection on Mac.
Respect the user's language selection in the system settings, and try those languages in turn. If a language is explicitly specified, try that first regardless.
2013-03-27 22:48:47 +00:00
Thomas Geymayer
1e4ba18284 Update/simplify property interpolation to latest SimGear changes 2013-03-17 23:49:15 +01:00
Thomas Geymayer
4b21dc51ee Replace SGInterpolator with new advanced interpolation system.
Allow for advanced animations using easing functions and adapters
for interpolating specific property types (eg. CSS colors).
Old behavior should not have changed.
2013-03-16 16:45:03 +01:00
James Turner
c487188bfc Show a message when pausing the sim. 2013-03-16 12:44:43 +00:00
James Turner
fce2a53fc7 Fix crash starting at heliport.
Don't assume FGAirports have runways, they might only have helipads.
2013-03-05 13:19:10 +00:00
James Turner
f2c267f5d7 MouseInput changes to support hover.
This adds the framework for platform cursor implementations; Windows and X11 to be done.
It also extend the mouse-input code to generate hover events suitable for driving tooltips.

Note there should be no visible functionality change from this commit, since everything
is inactive until fgdata changes are made.
2013-03-04 23:35:30 +00:00
Thomas Geymayer
3579a4404a Report std::exception in main loop 2013-03-04 23:13:36 +01:00
James Turner
1eb8ae1fbf Give the FGAirport class a sane filename.
simple.[cxx|hxx] -> airport.[cxx|hxx]
2013-02-21 11:32:02 +00:00
hooray
7fa1b9062e fg mingw fixes part #1
Conflicts:
	src/Main/bootstrap.cxx
2013-02-18 09:18:23 +00:00
Thomas Geymayer
6c10f99573 Make compiling of all utils/tools optional 2013-02-12 17:38:46 +01:00
James Turner
cedc3bb5c3 Typo fix, pointed out by Emillian. 2013-02-11 12:51:54 +00:00
James Turner
fdae459948 Allow HOME to be undefined, as on Windows. 2013-02-10 13:35:58 +00:00
James Turner
e08eb7457e Dump more config state at startup.
Ensure that log files capture enough config state to debug path/search issues. Easy to expand this mechanism now to record anything similar.
2013-02-08 13:15:20 +00:00
James Turner
9ccf159f81 Refactor FG_HOME init, so we can log sooner.
Logging to file now happens earlier, so some useful early output is captured.
2013-02-08 12:57:17 +00:00
Frederic Bouvier
7cc3ffb30f Fix build for windows after logstream changes 2013-02-08 08:46:34 +01:00
Christian Schmitt
2013f7149d Some headers missing... ;) 2013-02-07 19:00:54 +01:00
James Turner
7ad55a206e Adapt to revised logging API. 2013-02-07 12:02:52 +00:00
James Turner
0ced6a24a0 Log to file inside FG_HOME. 2013-02-07 12:02:52 +00:00
James Turner
240f98d0f3 Remove un-needed header. 2013-02-07 12:02:52 +00:00
James Turner
5ef475865c Append major/minor version to autosave file name.
Ensure that new minor versions get a clean autosave file. In practice
this means settings from 2.10 and 2.11 would co-exist, for example.
2013-02-03 16:57:31 +00:00
James Turner
4ca85f2653 Bug #385 - enable the Ati viewport hack on next.
Enabling this hack by default, to assess the impact for everyone. Should fix the issue for Ati Catalyst 11.5 users, and hopefully no impact for everyone else. All feedback appreciated. Set /sim/ati-viewport-hack to false if you think this option might be causing issues for you (and then tell James, ASAP)
2013-01-28 23:35:44 +00:00
James Turner
0d22797b90 XMLHTTPRequest: handle network level failures. 2012-12-29 14:37:33 +00:00
James Turner
2905c96f47 METAR selection of runway works for reset.
Explicitly reinit the realwx subsystem on sim-reset, so METAR is updated within the 10-second finalizePosition window.
2012-12-16 15:05:21 +00:00
James Turner
487638be7f Restructure positional finalisation for sim-reset.
Make position finalisation happen in the same phase as scenery load, i.e as a task during the main loop, instead of during the init loop. This is compatible with the existing reset logic. Unfortunately more work is needed; the environment code doesn't update the local station quickly enough on reset. (Fixing that is next!)
2012-12-15 15:25:45 +00:00
James Turner
1c8d9ef132 Search the current aircraft-dir implicitly.
If a file is specified without an 'Aircraft/subdir' prefix, check for it relative to the the current aircraft dir.
2012-12-13 09:10:39 +00:00
James Turner
433af2b51a Flight-path-history.
Record the historical flight-path (by default, since last takeoff). Optionally display the flight-path in the map; other visualisations (e.g., an 'in-world' view) could also be created. Nasal API to follow so Canvas-map or FMS can show the same data.

Altitude and attitude (Euler angles) are currently recorded but not used anywhere.
2012-12-10 18:11:44 +00:00
James Turner
dc132ab475 Issue #809, restructure position init code.
Modify startup sequence, so position can be modified late in the startup process, right before the scenery load starts. This allows two ugly hacks to move to a permanent, less hacky location. If other position init modes required similar late evaluation in the future, this can be accommodated now.

This is a somewhat high-risk change - I've tested both carrier starts and runway-selection based on realwx METAR, but please look out for other position-init issues and test before / after this patch.
2012-12-09 19:41:31 +00:00
ThorstenB
f0778a110b MSVC compile issues. 2012-11-24 13:33:36 +01:00
Mathias Froehlich
44ffdcd7d0 hla: add io chanel configuration shortcut hla-local. 2012-11-24 09:58:53 +01:00
ThorstenB
458edb9339 Use more specific logging classes for SG_LOG.
The log filters aren't really useful when everything uses SG_GENERAL.
2012-11-23 21:16:08 +01:00
ThorstenB
1827825fcb Clean up namespace issues
avoiding "uses..." in header files.
2012-11-23 21:16:08 +01:00
James Turner
9632bfcfd6 View-manager: update globals automatically.
Make the global view-manager pointer be controlled by the instance.
2012-11-20 13:33:20 +00:00
James Turner
cabb2a419f Allow a default name when adding subsystems. 2012-11-19 23:22:45 +00:00
James Turner
868b7b40dc Many more subsystems via the factory.
Not all of these are tested to actually be safe to add / remove at runtime, but an increasing number are.
2012-11-19 23:03:08 +00:00
James Turner
f1a7950202 XMLHttpRequest: only set failure signal on failure
Use failure as a real signal property - only set it / fire listeners on a real failure condition.
2012-11-19 23:02:35 +00:00
Thomas Geymayer
82884ab3c6 Improve finding gperftools and disable profiling by default (even with gperftools installed) 2012-11-19 13:11:03 +01:00
James Turner
379e7a2fd5 Make HTTPClient a proper subsystem.
Avoid some statics, and incidentally make the proxy host/port settings dynamic (re-init the subsystem to update proxy settings, woo).
2012-11-19 11:30:12 +00:00
ThorstenB
be3f94f63a Remove static subsystem dependencies
preventing us from recreating subsystems on reset/reinit.
2012-11-18 17:29:29 +01:00
Thomas Geymayer
d51499382d Clean up CanvasWidget and more work on Canvas/Nasal bindings 2012-11-18 16:46:03 +01:00
ThorstenB
a784443a24 Remove static property dependencies
preventing us from wiping properties on reset/reinit/subsystem recreate.
(more work required for "native_gui" and "ATC-Outputs" protocols)
2012-11-18 16:35:54 +01:00
ThorstenB
b577ec70fc Add command to toggle fullscreen mode. 2012-11-17 23:07:00 +01:00
ThorstenB
adc95a4b55 #600, for Curt... ;-) allow speed-up value to use fractions
"speed-up" can now also be used for slow-motion (i.e. 0.5 / 0.25 / ...)
or fractional speeds (3.141...). This was already working for instruments
(for replay) before, now it's also considered by FDM simulation.
2012-11-17 20:01:19 +01:00
James Turner
8a954f8338 Support request body on xmlhttprequest.
Allow XML property data to be submitted with a request; changes the request method from GET to POST. Supply nodes via the 'body' argument to the command.
2012-11-17 18:10:15 +00:00
Thomas Geymayer
48c1b51875 Add new property indicating whether profiler is available 2012-11-16 12:59:44 +01:00
Thomas Geymayer
779a9ae415 Really make profiling commands optional 2012-11-15 13:56:31 +01:00
Thomas Geymayer
fe1222a90d Optional profiling commands using gperftools 2012-11-15 11:55:37 +01:00
ThorstenB
fdb64a02a8 Extended replay and flight recording system
Save/restore replay sessions.
Replay system message support, so recorded flights can be turned into
flight tutorials.
2012-11-10 21:26:08 +01:00
James Turner
afcdbd3158 Overhaul the ground-net / parking code.
Use the nav-data-cache to cache groundnet information, including
parking positions and the taxi-node graph.
2012-11-08 09:07:05 +00:00
Thomas Geymayer
7e7d921515 Adapt for latest SimGear changes and insert missing bracket 2012-11-06 18:50:14 +01:00
Thomas Geymayer
28779e7a51 Update for new simgear Canvas system.
A refactored version of the Canvas system can now be found in
SimGear.
2012-11-04 14:18:31 +01:00
ThorstenB
5049ecce71 fg_io: Fixed mem leaks. 2012-11-01 14:42:26 +01:00
ThorstenB
a704a62081 Fix indentation and mixed-up white-space/tabs
(content otherwise unchanged)
2012-11-01 14:42:26 +01:00
Thomas Geymayer
71eeb62c1b Simplify canvas OpenVG initialization and fix sometimes rendering too lazy 2012-10-31 01:44:25 +01:00
ThorstenB
32b9c61528 ATIS upgrade
Add missing ATIS elements (transition level, expected approach,
precipitation, runway surface warnings).
Minor phraseology fixes for US/Europe.
Adds "/sim/atis/concise-report" option to use abbreviations (CAVOK etc),
and omit "obvious" units (depends on airport).
Trigger ATIS updates for significant pressure changes.
2012-10-13 16:48:56 +02:00
James Turner
4994973ef4 Separate instruments from cockpit displays. 2012-10-05 18:13:50 +01:00
James Turner
bcea720db3 Make the sound-manager optional in a few places. 2012-10-01 10:10:34 +01:00
James Turner
8608a48073 Initial work on dynamic subsystem creation.
Make subsystems create-able and removable from commands. Only some subsystems are supported so far, since many have non-default constructors or other complexities.

With this, change, it's possible to dynamically add and remove the traffic-manager at runtime, for example: fgcommand("add-subsystem", props.Node.new({ "subsystem": "traffic-manager", "name":"traffic-manager", "do-bind-init":1}));
2012-09-30 16:34:51 +01:00
James Turner
3b6c2c426d Support a --no-default-config option.
For (future) easier testing of the sim, support a mode where only explicitly named config / option files are loaded, instead of the default ones. (Including, for example, preferences.xml). This currently produces a non-functional sim, but will soon be more useful :)

No behaviour should change unless you try the new option.
2012-09-29 19:02:03 +01:00
James Turner
8c80824dbd Tweak init order of controls/input. 2012-09-27 15:33:12 +01:00
James Turner
872e84d827 Make HUD items private to the subsystem.
Make the HUD independent of the instrument manager, and push most of the declarations from the header into a private header.
2012-09-26 17:02:11 +01:00
James Turner
a67d8e1983 All FPU control happens in bootstrap.cxx
Remove some platform includes which don't belong in main.cxx
2012-09-26 16:25:18 +01:00
James Turner
ebf3a0793d Tolerate the lack of a GUI in some places. 2012-09-26 13:39:38 +01:00
James Turner
b5820a4e90 Fix string-id for message translation. 2012-09-26 13:38:26 +01:00
James Turner
3d4806adbe Remove dead file. 2012-09-26 13:37:31 +01:00
Thomas Geymayer
2f630e502d Let fgGetLong actually return long instead of int 2012-09-25 23:24:29 +02:00
ThorstenB
dac8706e2e Move GUI init code to gui module. 2012-09-25 22:39:13 +02:00
James Turner
a10638c6b4 Use a helper thread to rebuild the navcache.
Avoid the application becoming unresponsive during nav-cache rebuilds. We still have to wait for the rebuild, but perform it on a helper thread so the main GUI thread stays responsive and hence doesn't trigger a beach-ball / 'not responding' alert. Also ensures there's some feedback (the spinner) during the rebuild operation, so users don't think we've hung.
2012-09-25 17:24:12 +01:00
James Turner
9426928cdf Fix a typo. 2012-09-25 10:07:11 +01:00
James Turner
649d579124 Helpers to access view position.
Avoid direct use of FGViewer in various places, by providing property-based accessors to the current view position.
2012-09-25 10:06:56 +01:00
James Turner
2f6172687e Make FGControls behave like a standard subsystem. 2012-09-25 00:48:48 +01:00
James Turner
b1ff365a8f Make FGTaxiNode and FGParking inherit FGPositioned.
In preparation for caching the groundnet in the NavCache, make taxi-nodes and parkings inherit from FGPositioned. As part of this, make them heap (as opposed to value) classes, disable their copy-constructors, remove many mutating operations, and give them real constructors.
2012-09-25 00:31:17 +01:00
ThorstenB
a2cfef95fb Minor tile manager clean-up.
The tilemgr schedules scenery, so it should also trigger the
"sceneryloaded" signals once it's done.
2012-09-24 23:42:25 +02:00
James Turner
6c6452c62b Adapt to revised SGTime API
Convert SGTime users to pass SGGeod/SGPath instead of raw values.
2012-09-24 00:03:23 +01:00
James Turner
b1854459b3 Clean up dynamics/parking handing code.
Refactor some parking / airport-dynamics APIs, in preparation for caching the ground cache data in the nav-cache.
2012-09-23 21:42:40 +01:00
ThorstenB
acb7fb8e95 Fix shared library build with sqlite
Dependency to threading lib is required (It is already provided for
static SimGear).
2012-09-22 14:23:14 +02:00
ThorstenB
88592bfe71 splash screen: use language resource for translation
Also pimp the progress spinner.
2012-09-21 19:36:25 +02:00
ThorstenB
05e9172220 Avoid AL warning messages when using "--show-sound-devices". 2012-09-21 15:33:13 +02:00
ThorstenB
f8b689c040 Allow instruments/systems to reset on sim reset
so they can instantly adjust to the changed environment.
(Not fully working yet, since some environment settings, like environemnt
pressure/temperature, still changes slowly after a sim reset - instead of
immediately jumping to the new setting. Also, METAR sometimes arrives too
late...).
2012-09-19 20:57:52 +02:00
ThorstenB
a68716316f Adjust subsystem order (instruments vs systems)
"instruments" depend on "systems" (pitot/static pressure etc), so
"systems" should be there first.
2012-09-19 20:53:54 +02:00
ThorstenB
f6207d5cb8 Minor renaming issue. 2012-09-19 20:52:36 +02:00
James Turner
029012b8b9 Kill off some globals.
Break some subsystem dependencies, by explicitly using properties to read the primary position, orientation and velocities. (Instead of directly accessing the primary model placement). This means a couple more globals can die.
2012-09-19 18:17:44 +01:00
James Turner
c9351e0185 Whoops, some code got re-introduced.
Merging/rebase the navcache re-added this code to fg_init.cxx, remove it again.
2012-09-19 15:56:23 +01:00
James Turner
50c61b4211 Allow use of the system's SQLite3 library.
Keep distro packagers happy by having the option to use the system's sqlite library instead of our bundled version. Set SYSTEM_SQLITE=1 when running cmake to use the system one.
2012-09-19 14:28:25 +01:00
James Turner
9b900e9430 Implement a persistent cache for navigation data.
Cache the parsed navigation and airport data in a binary file to reduce
startup times and memory consumption (since only referenced FGPositioned
elements are held in memory).

Data will be reimported when the mod-time of any input file is changed.
If a global file is changed (nav.dat, awy.dat, apt.dat, etc), the cache
will be completely rebuilt, which takes approximately 30 seconds on
moderate hardware. (Future work may reduce this).
2012-09-19 11:38:19 +01:00
James Turner
ffbb0a0e5d Sink position-init code into its own file.
Separate other init functions from position init, since they are unrelated, and made fg_init.cxx very complex. Next step will be brining some sanity to the position init logic :)
2012-09-18 20:50:28 +01:00
James Turner
e2eea405a3 Make subsystem init incremental.
(Requires latest SimGear!)

Break fgInitSubsystems into several phases - subsystem creation, then binding and then init. Run init over multiple main-loop iterations so the application stays responsive to GUI/OS events during init. 

There should be no behaviour changes due to this, except that during init Windows and OS-X should no longer show the beach ball / 'application not responding feedback', hopefully.
2012-09-18 20:29:36 +01:00
Stuart Buchanan
9d30d622ae Expose the shader language version, to help diagnostics. 2012-09-18 15:48:06 +01:00
James Turner
505796e349 Make magavr a regular subsystem.
Remove various hacks and make magvar work like a normal subsystem, as part of the environment manager. Fix the remaining users of the globals->get_mag accessor, and hence kill off the global pointer.
2012-09-18 00:58:27 +01:00
ThorstenB
01376eec31 Minor main loop/init clean-up 2012-09-17 13:45:31 +02:00
ThorstenB
06170ddaae Handle scenery-override in a single place only. 2012-09-17 13:45:31 +02:00
ThorstenB
7415696492 Create FGSoundManager as a wrapper for SGSoundMgr_OpenAl
and sink all sound related code from main.cxx in there.
2012-09-17 13:45:31 +02:00
Mathias Froehlich
65a5f6744f cmake: Make rti/hla compile again. 2012-09-16 21:16:57 +02:00
Frederic Bouvier
db53e4c0b8 Sort fgfs source files in IDE folders 2012-09-16 19:26:53 +02:00
Thomas Geymayer
0554d987e8 property-interpolate: support using rate instead of time.
- property-interpolate now supports specifying the
   interpolation time by passing rate instead of the actual time,
   similar to max-rate-of-change in the noise-spike filter.
2012-09-06 14:05:57 +02:00
Stuart Buchanan
cce186a57c Add properties for raw axis and button values, for use
in joystick configuration function.  Also rationalize references to
/sim/fg-home into a global property.
2012-08-23 21:52:30 +01:00
James Turner
7fabeed85d Fix some places relying on public 'using std::string' in SimGear
(Otherwise my next SimGear commit will break them)
2012-08-21 17:07:47 +01:00
ThorstenB
59fe04f8e9 Make web browser app configurable through CMake (for Linux)
so package builders don't need local patches.
Also, instead of hardcoded firefox, use "xdg-open" or "sensible-browser"
launchers on Linux, to auto-detect user's preferred browser.
Override with cmake switch -DWEB_BROWSER=...
(Not affecting Mac/Win which are hard-coded anyway).
2012-08-18 14:11:31 +02:00
Thomas Geymayer
8a6a234653 Canvas: First version of new Canvas GUI system.
- Refactor CanvasMgr into PropertyBasedMgr to be also used
   for the Canvas GUI system.
 - Get rid of tied properties in the Canvas system.
 - Add new placement type 'window' for placing canvases onto
   windows
 - Pass mouse events to Window class (only if cursor is over
   window)
 - Refactor canvas placement clean up
2012-07-31 23:19:23 +02:00
Thomas Geymayer
373d511c69 Canvas: Allow using canvases as PUI widgets.
- Add new widget type canvas
 - Set canvas view dimension from the gui xml.
 - Expose mouse events to canvas widget properties.
2012-07-31 23:19:22 +02:00
James Turner
909ed99332 Ensure WSAStartup is called for metar.exe 2012-07-27 17:51:04 +01:00
Stuart Buchanan
5e3ec6209c Add command to reload materials definitions. Note that this explicitly
does not attempt to delete the old materials definitions, as they
may be in use at the time.
2012-07-19 22:06:08 +01:00
ThorstenB
831662fca8 Option to restore defaults and enable/disable random buildings+vegetation
fgfs can fail to start when random buildings is set to an excessive level,
so you can't even reach the GUI setting to reduce/disable again.
2012-07-15 10:56:59 +02:00
ThorstenB
00fe1e3445 #803: apply hotfix to revive "--carrier" option. 2012-07-14 10:01:29 +02:00
ThorstenB
39a7caae15 Proper error checks for generic protocol.
Drop FGGeneric instances which failed to initialize to avoid run-time
issues.
2012-07-13 20:33:36 +02:00
ThorstenB
7edbf8a8c9 #798: climb rate cannot be higher than the true speed
Don't set vertical-speed on sim reset, unless the user intentionally
requested this as a start-up property.
2012-07-08 11:40:24 +02:00
Thomas Geymayer
569042acbd Allow filling paths and do some clean up/fixing. 2012-06-17 21:14:00 +01:00
Thomas Geymayer
c8e1433a5c Add ShivaVG sources 2012-06-17 21:13:54 +01:00
Thomas Geymayer
df768766d9 Canvas: basic support for OpenVG (path with stroke and pattern)
- Bugfix: Don't access children by index as it's not unique
2012-06-17 21:13:47 +01:00
James Turner
17ec3278ed Remove platform-specific code in favour of simgear::Dir wrappers. 2012-05-31 08:57:22 +01:00
Thomas Geymayer
d82fd7cc5f Basic 2D canvas implementation.
Support text and transformations for the moment, more
features to follow in due course.
2012-05-18 07:05:37 +01:00
James Turner
8f10fff8dc Lazy-loading of the 2D panel node.
Sink the 2D panel logic into FGPanelNode, simplifying
renderer.cxx and a few other places. Also allows potential
for unloading / paging of 2.5D panels in the future.
2012-05-16 11:43:09 +01:00
ThorstenB
a2922e2e23 ATCDCL cleanup, part II.
Remove/comment out obsolete code.
Refactor ATCmgr(-old) into ATISmgr(-new), only keeping the COM radio / ATIS
support.
2012-05-12 23:53:30 +02:00
Frederic Bouvier
6b2ba60772 rename /sim/rendering/rembrandt -> /sim/rendering/rembrandt/enabled
and put rembrandt-related properties in /sim/rendering/rembrandt/
2012-05-12 13:45:36 +02:00
Frederic Bouvier
dd8d9a6f60 First round of changes toward a programmable rendering pipeline.
Stages are predefined for now.
2012-05-12 13:45:35 +02:00
Frederic Bouvier
6b008126b5 Begin to implement configurable rendering pipeline 2012-05-12 13:45:31 +02:00
ThorstenB
b91175d47a Adapt logging level for some messages.
Also keep default logging level during very early startup at "alert"
(unless explicitly set on cmd-line).
2012-05-09 23:56:43 +02:00
ThorstenB
de6ac7153d Improve debug output 2012-05-08 23:04:53 +02:00
ThorstenB
0b7b0f16a8 Improve fgfs startup logging.
Establish log-level very, very early during startup, so debug/info/warning
messages in the very early fgfs startup phase are also shown.
2012-05-08 22:47:32 +02:00
ThorstenB
563ed19f97 Add Windows-specific implementation to determine locale settings. 2012-05-06 23:15:27 +02:00
ThorstenB
0f462d4a6e Fix rpmlint/Linux packager complaints
about outdated/invalid FSF address in some license headers.
2012-05-05 01:42:41 +02:00
ThorstenB
e59fabaf82 Clean-up some SGMath dependencies. 2012-05-05 00:56:29 +02:00
ThorstenB
3986e1fe3a Add separate switch to enable/disable AI scenario support.
Switch is enabled automatically when scenarios are given on command-line.
2012-04-30 19:04:49 +02:00
James Turner
2d267a5782 Remove PositionedBinding (which no one ever used), Nasal is better for this jobs. 2012-04-26 00:37:47 +01:00
ThorstenB
89b41395d8 Move viewer-related sources to separate folder.
Simple source directory clean-up, so "Main" folder contains fewer stuff
and the list of files in the editors a lot shorter.
2012-04-25 23:28:00 +02:00
Frederic Bouvier
7006ca12a8 Don't care about light volumes when picking in the scenegraph 2012-04-24 23:35:05 +02:00
James Turner
fb66aeade1 More search functions exposed to Nasal, also airport parking. 2012-04-24 22:12:56 +01:00
ThorstenB
470552fab1 Move locale code to separate module.
Introduce convenience methods to handle localized string resources
and obtain strings.
2012-04-21 20:17:42 +02:00
ThorstenB
b358af2611 Minor clean-up. 2012-04-21 19:06:10 +02:00
ThorstenB
2a4ab38e70 Move another string to the language resource. 2012-04-18 15:44:42 +02:00
ThorstenB
201d9d7852 Be more tolerant about locale name when detecting the default language,
i.e. consider the German resource provided for "de_DE" or "de" when
locale name is "de_DE.utf8".
2012-04-18 15:43:42 +02:00
James Turner
516d92c077 Fix part of #263, --language option not working for --help. 2012-04-18 12:46:26 +01:00
James Turner
2218a44ed7 Support loading PropertyList data remotely, as part of #450. Along the way, centralise the HTTPClient object so it can be used beyond the METAR download engine. 2012-04-18 10:25:27 +01:00
Frederic Bouvier
7d3195aaa6 Make the number of shadow cascades and the range of each configurable 2012-04-17 09:13:54 +02:00
James Turner
96ee2b1577 Tweak ODGauge usage, fix multiple instances of NavDisplay or wxRadar. 2012-04-15 12:03:21 +01:00
Frederic Bouvier
0a1417e06d Get rid of RG16 buffer made possible by a different way to encode normals 2012-04-12 23:59:42 +02:00
ThorstenB
4348f17b8c #738: crash when switching 2D panels
FGPanelNode doesn't always own its "_panel" object - so it's not ok to
always delete it. Use ref-counting/smart-pointers instead.
2012-04-12 00:03:16 +02:00
Frederic Bouvier
ec4b006c08 Rembrandt: Restore rendering stats
intercept first change in stats display to change stats handler camera render order
2012-04-09 17:41:33 +02:00
ThorstenB
9effb06047 Fix scenery reload issues.
Aircraft could fall through the ground on scenery reload. Properly reset
the "sceneryloaded" flag to pause FDM processing while scenery is being
reloaded. Also stop processing some instruments while scenery is reloaded.
2012-04-07 16:20:22 +02:00
Frederic Bouvier
43f7ebcb35 Restore splash screen for the Rembrandt renderer 2012-04-05 23:30:38 +02:00
ThorstenB
8c74b47a0d Add "--max-fps" option to limit frame rate. 2012-04-05 21:02:09 +02:00
Torsten Dreyer
68e1a8c4cb Autopilot: save loads of CPU cycles
Not every xml-autopilot filter needs to run at the update rate
of the FDM. This only makes sense for the autpilot filters. Those,
who update instrument needles or environment properties for example
may run at frame rate.
This patch (thanks to ThorstenB, who is the author) forces those
filters defined in /sim/systems/autopilot into the FDM loop and those
defined in /sim/systems/property-rule into the default loop. They
show up as xml-autopilot and xml-proprules in the performance monitor
2012-04-05 20:40:07 +02:00
Frederic Bouvier
44de0e1df4 Honor /sim/rendering/shadows/enabled preference 2012-04-04 20:43:16 +02:00
Frederic Bouvier
f7174f5422 Code cosmetic 2012-04-03 23:17:04 +02:00
Frederic Bouvier
8f5e9619aa Fix issue with sky added in commit 25e0ab0b82 2012-04-03 08:41:28 +02:00
Frederic Bouvier
93ad2f2ef6 Hopefully fix the shadow disappearing because of range animation issue in a more elegant way 2012-04-02 23:54:31 +02:00
Frederic Bouvier
65d86e872d Restore messages and fog draw order reverted in the previous commit 2012-04-02 23:36:34 +02:00
Frederic Bouvier
93d97374e1 Revert "Disable LOD when rendering to the shadow map."
This reverts commit e46357d819.
2012-04-02 20:07:29 +02:00
Frederic Bouvier
25e0ab0b82 Enable light source for transparent surfaces 2012-04-01 23:37:47 +02:00
Frederic Bouvier
e46357d819 Disable LOD when rendering to the shadow map.
Produce few NaNs at start
2012-04-01 23:07:33 +02:00
Frederic Bouvier
b05bbddde5 Make the shadow map available for effects 2012-03-31 22:50:38 +02:00
Frederic Bouvier
7e6ecfec56 Fix picking zone display 2012-03-31 21:59:50 +02:00
Frederic Bouvier
e4094356f5 Be sure to not render light volumes in the classical renderer 2012-03-31 20:39:47 +02:00
Frederic Bouvier
2416f9f8d8 Working spot and point lights
Use 8bit normals if /sim/rendering/no-16bit-buffer is set to true. May be usefull for old card returning 0x8cda at fbo setup time
White/gray specular material
s/Tabs/Spaces/
2012-03-31 20:16:36 +02:00
Frederic Bouvier
954a09dce1 Shadow map size settable at run-time. It needs to be a power of two. Now needs a real gui dialog 2012-03-30 22:30:26 +02:00
Frederic Bouvier
1194f1f991 Implement Cascade Shadow Mapping in the Rembrandt renderer.
Shadow map size is set by the /sim/rendering/shadows/map-size property before starting fgfs. Its default value is 4096. Maximum value is 16384 in most card
2012-03-30 07:28:04 +02:00
Frederic Bouvier
8a382cd536 Fix normal storage into texture data. Input [-1..1] should be output to [0..1] 2012-03-28 22:39:28 +02:00
ThorstenB
834d4e1e3e CameraGroup: adapt order of member vars to their init sequence.
(Avoids flood of "init sequence" GCC warnings, whenever CameraGroup.hxx
is included anywhere)
2012-03-26 21:21:41 +02:00
ThorstenB
d436484c21 Prevent negative alpha value
(affects splash screen)
2012-03-26 21:11:04 +02:00
James Turner
a38362646d Don't create intermediate static libraries for build fgfs. (Speeds up rebuilds in Xcode dramatically, possible in other IDEs too) 2012-03-26 13:09:39 +01:00
Frederic Bouvier
2e735e6234 Warn of harmless messages caused by the Rembrandt renderer 2012-03-25 19:05:10 +02:00
Frederic Bouvier
79396655a3 Remove tabs 2012-03-25 16:07:56 +02:00
Frederic Bouvier
416e6df9e3 First, preliminary, code of the Rembrandt renderer.
The new renderer is activated by the --enable-rembrandt option, or in the preferences.xml file.
The renderer at this stage doesn't have shadows yet, and shows a lighting bug. The slash screen doesn't work too.
2012-03-25 16:06:54 +02:00
Frederic Bouvier
86185c8014 Add options to enable or disable the Rembrandt renderer 2012-03-25 15:28:19 +02:00
Frederic Bouvier
400129ae15 Allow any number of cameras as render stages for a single viewport 2012-03-25 15:28:17 +02:00
Frederic Bouvier
19e7163971 Compile with MSVC 9 2012-03-25 14:39:24 +02:00
Frederic Bouvier
94e3ae4c67 Choose renderer from /sim/rendering/rembrandt property 2012-03-25 14:39:22 +02:00
Frederic Bouvier
1a3f69723b Move camera setup to the renderer 2012-03-25 14:39:19 +02:00
Frederic Bouvier
bca4683d52 Small refactoring in CameraInfo 2012-03-25 14:37:43 +02:00
ThorstenB
22c20a2f09 Make FG_OPTIONS_EXIT work.
'fgfs --version' wants to exit...
2012-03-17 12:01:51 +01:00
James Turner
8c187164fe Work on making 2D panels act like standard scene-graph elements for picking and drawing.
(This includes 2.5D panels in the 3D scene)
2012-03-16 17:22:18 +00:00
Mathias Froehlich
1ddb658a70 scenery: Move flightgears paging back into the application.
This way of scenery paging is really application code.
Now that the simgear stg loader is seperated from the paging
code, this appication specific paging can reside here.
May be at some time also use the spt stuff here.
2012-03-15 20:56:37 +01:00
Mathias Froehlich
44c716bb03 scenery: The tile entries load callback is not needed anymore.
The stg loader can do this itself.
2012-03-15 19:39:07 +01:00
Torsten Dreyer
5caa42af8e Make use of auto-coordination more flexible
- move property /sim/auto-coordination to
  /controls/flight/auto-coordination
- introduce new property /controls/flight/auto-coordination-factor
  with default of 0.5
- auto-coordinate the rudder if auto-coordination is true and the factor
  is greater than zero

backward compatibility for the old property is temporary provided by
a temporary Nasal hack in FGDATA/Nasal/aircraft.nas
2012-03-13 21:00:22 +01:00
ThorstenB
0abf252ec8 Use tiedPropertyLists instead of manually matched tie/untie calls.
Ensures we don't forget to untie some individual properties.
2012-03-04 15:30:08 +01:00
ThorstenB
d0d86bf0b7 Fix type issue.
multi-sample-buffers is int, not bool.
2012-03-03 21:39:22 +01:00
Mathias Froehlich
742f0eb939 Fix compile past last simgear change. 2012-03-03 14:05:43 +01:00
ThorstenB
da73dd97d3 Clean-up cmake (linker) dependencies. 2012-02-24 22:23:15 +01:00
Torsten Dreyer
62dfa8cc64 new command: property-interpolate
exposes the SGInterpolator to <binding><command>
formerly only accessible via Nasal
2012-02-02 22:17:34 +01:00
Torsten Dreyer
72483d565b initialize the heading-indicator/offset-deg in it's class
Don't initialize the offset in the main loop but in
the init method of the implementing class. This ensures
it gets initialized if you instantiate more than one
heading-indicator and does not initialize the property for
unsused heading-indicators (no more stray heading-indicator-fg
property anymore).
2012-02-01 22:24:06 +01:00
ThorstenB
5f6012802f Use existing define to supply version number. 2012-01-31 21:42:37 +01:00
ThorstenB
3e08e5ecfe Minor clean-up. 2012-01-29 10:34:11 +01:00
ThorstenB
477e621633 #561: normalize to [0-360[ 2012-01-22 19:15:25 +01:00
ThorstenB
90ce4ec93d Clean-up: move autosave.xml loading code to proper method 2012-01-17 23:49:25 +01:00
Torsten Dreyer
3bfee87bba bump version number to 2.7.0 2012-01-17 08:36:20 +01:00
Torsten Dreyer
979fc9785b bump version number to 2.6.0 2012-01-17 07:46:52 +01:00
ThorstenB
0b6579e0e4 Fix a minor warning.
System complains about "system" call's result being ignored.
2012-01-12 22:14:17 +01:00
ThorstenB
6f4a090770 #199: fix issue with relative paths
Relative paths don't work with FG. Since we Linux users just love
command-lines and often do use relative paths, make sure to convert them
before use.
2012-01-12 22:14:17 +01:00
Mathias Froehlich
db241f3e10 Handle unset texture-compression property correctly. 2012-01-08 20:19:36 +01:00
ThorstenB
484d3c61f8 #561, clean-up using normalizePeriodic. Thanks to Hyde & James. 2012-01-07 08:17:34 +01:00
James Turner
a0bfa25aa7 Tweak the app-data path on Mac, after discussion with Tat. 2012-01-05 22:10:19 +00:00
ThorstenB
23cdb0d302 #561: keep magnetic heading within limits when mag-variation is negative
Thanks to Hyde!
2012-01-04 00:00:10 +01:00
ThorstenB
dac00efbc7 Fix some compiler warnings.
Comment out unused code.
2012-01-02 23:16:17 +01:00
ThorstenB
229d9273d7 #545 related: User settings not saved when window was closed
via the window buttons instead of pressing ESC or using menu exit.
(More code should be moved after the 2.6 release)
2011-12-30 00:39:31 +01:00
Mathias Froehlich
48b4596a5f Make the use of the compressed internal format a configuration option. 2011-12-29 12:24:04 +01:00
Erik Hofman
cbdd89493f properly add librt when clock_gettime is used 2011-12-24 11:34:35 +01:00
ThorstenB
b575446b36 Add some debug messages to help analyzing #385. 2011-12-17 15:26:50 +01:00
ThorstenB
dcaf3d9aea Avoid spamming the log output
Stop printing "State == Running" debug messages in every update loop
(makes "--log-level=debug" a lot more usable)
2011-12-17 15:22:50 +01:00
ThorstenB
d47342a5a4 Add --log-class option, improve logging classes.
Replace SG_GENERAL by more specific log classes in many places.
Allow "," to separate logging classes (using "|" is odd on the
command-line).
Also add new option to make logging more useful for developers.
You can use:
  --log-level=debug --log-class=environment
to only get environment debug messages, or
  --log-level=debug --log-class=sound,ai
to only get debug messages related to the sound or AI subsystem.
2011-12-11 14:06:17 +01:00
Frederic Bouvier
14b76a1d63 Multiple --atlas options are valid (one for Atlas, one for Terrasync) 2011-12-11 13:12:18 +01:00
ThorstenB
07aa70dce9 sound: fix sound-buffer-in-use issue
FGFX objects must be dereferenced early enough, and sound manager must be
removed late enough - otherwise openal complains about resources being
still in use when tryin to remove buffers.
Also: do not create FGFX objects for AI/MP aircraft, when AI sound is
disabled.
2011-12-04 17:18:02 +01:00
ThorstenB
9933a7cb4a cmake: add support for Torsten's UDev EventInput
(Hopefully meeting Torsten's quality expectations)
2011-12-04 14:37:25 +01:00
ThorstenB
32c4cfa768 Fix shared library build for metar executable 2011-11-30 21:45:22 +01:00
James Turner
f054f15693 Fixes for linking with shared SimGear. 2011-11-29 10:24:33 +00:00
ThorstenB
e1c1a28288 Introduce some structure in fgMainLoop.
- Move some code to sub functions.
- Make sound manager a subsystem-manager member (and make sure it's
still processed last).
2011-11-20 16:21:15 +01:00
ThorstenB
339c57e0b2 Adapt path of performance-monitor properties. 2011-11-19 22:37:13 +01:00
James Turner
a05ea36acb Restructure GUI code, isolate PLIB in source files, to ease future refactoring and alternative GUI layers. 2011-11-19 20:25:51 +00:00
ThorstenB
4b2506d709 Add new performance monitoring subsystem.
Rename some subsystems for naming consistency.
2011-11-19 15:37:49 +01:00
James Turner
85924cf953 Fix some Windows std:: namespace issues. 2011-11-13 21:27:55 +00:00
Mathias Froehlich
42fb9b8e9f Consolidate the different ReaderWriterOptions classes. 2011-11-13 18:34:53 +01:00
James Turner
f51d58686a Fix http://code.google.com/p/flightgear-bugs/issues/detail?id=484, further compatibility with previous options processing ordering. 2011-11-10 09:15:41 +00:00
James Turner
c1eca1ff6b Refactor SGSky handling and ownership - sink into Renderer, remove global variable 'the sky', and hence clean up main loop and subsystem creation a little more. 2011-11-05 17:11:52 +00:00
James Turner
a4a8d08392 JPEG-server support, in the CMake world. 2011-11-05 17:11:39 +00:00
James Turner
daf644d600 Revert my code-cleanup, causing startup crashes, bah. 2011-11-04 12:02:43 +00:00
James Turner
ecced6be78 Fewer static properties in the main loop, minor code tidying. 2011-11-04 09:40:09 +00:00
Anders Gidenstam
cc1ab5b8b5 src/Main/options.cxx: It is rather common to have two --multiplay arguments. 2011-11-02 20:35:37 +01:00
James Turner
70b4f38ebc Goodbye automake. 2011-11-01 11:15:53 +00:00
James Turner
e3037b638f Restore options *processing* order (which is now distinct from *parsing* order), to resolve issues when distinct but internally overlapping options are specified, e.g. for initial position or time. 2011-10-31 13:08:58 +00:00
ThorstenB
c697c3cc3d Fix stupid compile-time switch issue...
... introduced by recent commit.
2011-10-30 20:49:48 +01:00
ThorstenB
acdf0dc469 Clean-up date/time option parser.
Add range checks and provide error messages.
Extend time offset to 64bit - so we're safe for 2038-01-19 (and the next
couple of millions years beyond...).
Support partial date/time strings, such as --start-date-gmt=2011 or
--start-date-gmt=:::12:00:00
2011-10-30 14:48:53 +01:00
Mathias Froehlich
2a4657c609 Fix returning reference to temporary. 2011-10-30 10:31:41 +01:00
ThorstenB
b6695cd3fa Configure font in osg StatsHandler for OSG3.
OSG3 relies on "fonts/arial.ttf" being available. FG doesn't provide it -
so it's not necessarily available everywhere (not here). Use one of our
txf fonts instead.
2011-10-29 21:58:11 +02:00