1
0
Fork 0
Commit graph

554 commits

Author SHA1 Message Date
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
ThorstenB
3e08e5ecfe Minor clean-up. 2012-01-29 10:34:11 +01:00
ThorstenB
90ce4ec93d Clean-up: move autosave.xml loading code to proper method 2012-01-17 23:49:25 +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
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
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
ThorstenB
4b2506d709 Add new performance monitoring subsystem.
Rename some subsystems for naming consistency.
2011-11-19 15:37:49 +01: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
e50ff87300 Relocate appData fgfsrc loading prior to init of fg-root, so we can specify --fg-root that way. 2011-10-21 16:49:15 +01:00
James Turner
0f5d27c10e Detect and read a config file in FG_HOME - allows nicer tweaking of settings on Mac/Windows for people with Terminal/cmd.exe phobia :) 2011-10-16 21:54:47 +01:00
James Turner
3d0254f6ec Allow aircraft-dir option to override aircraft search logic completely. 2011-10-16 21:15:54 +01:00
James Turner
ccb21d4c0c And keep platforms other than my beloved OS-X working too ;) 2011-10-16 19:58:22 +01:00
James Turner
6adb42078e Refactor fg-home computation, use Library/Application Support on Mac. 2011-10-16 19:55:04 +01:00
James Turner
b1c7495fec Restructure option/config handling code, to avoid multiple scans & parses for special options (fg-root/fg-aircraft/aircraft). Push most of the code into a new Options class, inside options.cxx, and clean up various call-sites as a result. 2011-10-16 18:35:40 +01:00
Durk Talsma
b482188848 Whoops, lazy copy/paste job. 2011-09-22 22:08:20 +02:00
Durk Talsma
5ae207c2fc Prefetch a previously saved aircraft settings configuration file to retrieve aircraft usage and livery information. Fallback to default settings in aircraft-set.xml file if not found. 2011-09-22 19:06:26 +02:00
Durk Talsma
db816deb90 Added a new startup option. By giving the command line option --parkpos=AVAILABLE you can -in principle- let FlightGear decide what the most optimal parking location is. This option does require a few properties to be set that are also needed for future ATC use. Hence, they are listed under /sim/ATC, but could move to a different location if desired.
/sim/ATC/radius should be a nummeric estimate of the size of your aircraft. A small aircraft fits into a large parking, but a large aircraft does not fit into a small parking space. Because the AI part of radius is also used for slightly different purposes (prioritizing gate assignmments, the given valuem may deviate slightly from the real aircraft size. See http:/wiki.flightgear.org/Aircraft.radii for an overview of currently used values for the redius property.
/sim/ATC/flight-type can be any one of "ga", "cargo", "gate", "mil-fighter", "mil-cargo", or "vtol". See http://wiki.flightgear.org/Interactive_traffic#A_technical_perspective for more information.
optionally, the property /sim/ATC/airline can be set set to a three letter icao airline code. By way of illustration, I will commit a number of startup preset files setting these properties shortly.

Also did some more finetuning to the traffic mananger routing algorithm can be any one of "ga", "cargo", "gate", "mil-fighter", "mil-cargo", or "vtol". See http://wiki.flightgear.org/Interactive_traffic#A_technical_perspective for more information.
optionally, the property /sim/ATC/airline can be set set to a three letter icao airline code. By way of illustration, I will commit a number of startup preset files setting these properties shortly.

Also did some more finetuning to the traffic mananger routing algorithm.
2011-09-17 16:51:00 +02:00
Anders Gidenstam
a2972051a9 Added an --materials-file option to select the materials file to use at startup.
The property /sim/rendering/materials-file can also be used for this purpose.
2011-09-03 21:48:50 +02:00
James Turner
6c52a5ac85 Fixes for include-file flattening - condition.hxx no longer pulls in props or props_io 2011-07-30 10:47:28 +01:00
Durk Talsma
5228053f7f Merge branch 'next' into durk-atc 2011-07-24 08:44:22 +02:00
Torsten Dreyer
c6d5b6ebdb Partial fix for #228: ambiguous navaid-names
This fixes at least the startup process.
If an ambigous fix name was presented with --vor=ID or --ndb=ID
present a list of matching records along with frequency and
position in the console to give the user the chance to pick
the correct one by adding the frequency with --vor-frequency=nnn.nn

It does not yes solve the issue when the user relocates using the
GUI dialog. This requires some GUI and Nasal hacking along with a
new Nasal helper function "navaidinfo".
2011-07-18 11:09:43 +02:00
Durk Talsma
f9a5f921a4 Merge branch 'next' into durk-atc
Resolving merge conflicts indicated below.
Conflicts:
	src/ATC/CMakeLists.txt
	src/ATC/Makefile.am
	src/Main/fg_init.cxx
2011-06-01 20:46:34 +02:00
James Turner
2b967608a0 Expose FGPositioned data via property tree, and make comm-stations a real FGPositioned subclass. 2011-06-01 17:45:22 +01:00
ThorstenB
e42a8f597c Automatic tower positioning
New "auto-position" switch to always use closest tower for tower-view.
Exposes new "/sim/airport/closest-airport-id" property.
Display closest airport on groundradar by default.
2011-04-18 22:54:33 +02:00
Durk Talsma
960f6881c9 Merge branch 'next' into durk-atc 2011-04-19 18:02:30 +02:00
Durk Talsma
52b0baace1 adding changed files for previous commit. 2011-04-03 17:58:16 +02:00
ThorstenB
4141b80b0c fix #296: FDMshell+TankProperties not bound after sim reset
Well, when we need to unbind something temporarily, it's wise to really
bind it again...
2011-03-29 23:31:59 +02:00
ThorstenB
5ace4e9632 Fix reset during replay issue
Need to properly reset the replay manager's states on sim reset.
Also remove obsolete method.
2011-03-22 21:02:57 +01:00
ThorstenB
b6d70d2c71 Replay improvements
Clear replay buffers on sim reset.
Allow instant replay to be activated properly when sim is paused.
2011-03-20 15:03:47 +01:00
ThorstenB
7bc9749d91 Support scenery reloading (needs simgear update).
TileMgr subsystem reinit: remove all scenery tiles from scenegraph and
clear cache (simgear update required).
"normal" sim resets: no TileMgr reset is needed (avoid reloading scenery).
2011-02-13 19:26:55 +01:00
Dave Luff
07d430c129 More fixes to the ATCDCL & ATC compilation
Rename ATC/atis.[ch]xx to ATC/atis_mgr.[ch]xx, to avoid confusingly
having 2 atis.cxx and 2 atis.hxx in the source tree.  Also fix a copy
and paste error in src/ATCDCL/CMakeLists.txt.
2010-12-29 18:52:39 +00:00
Dave Luff
d6fceb3fbc Remove conditional compilation of ATCDCL
This patch removes the conditional compilation of ATCDCL, compiling both
the old and new ATC systems.  The old system only provides ATIS, AWOS and
some dialog lookups, and hence should not conflict with the new system.
2010-12-28 18:23:40 +00:00
ThorstenB
79094e8c36 Fix bug #187: check if path cache matches fg-aircraft dirs
Check if any fg-aircraft dir changed - sequence also matters.
2010-11-29 22:48:37 +01:00
Torsten Dreyer
9242f3a083 Make startup.nas obsolete
This is an ugly hack for automatic runway selection on startup based on
metar data. It's main intention is to make startup.nas obsolete and
to guarantee the same runway selection logic as used for AI traffic.

Calling presets-commit from startup.nas during the initialization
sequence caused occasional trouble and sometimes, the AI traffic
operated on the opposite runway.
2010-11-10 22:19:25 +01:00
James Turner
c053de6b4c If preset-commit occurs during init, skip most re-init logic. 2010-11-02 23:19:09 +00:00
James Turner
eeaf4b13e6 Unify reset/reposition code-paths, and ensure initial state is preserved by a reset. 2010-11-02 22:45:43 +00:00
James Turner
d1a4590721 Goodbye old HUD - and the archeology it depended upon in cockpit.cxx 2010-10-29 08:47:58 +01:00
James Turner
e9f4106bc1 Remove confusing default (missing) path from 2D panel code. 2010-10-28 13:54:45 +01:00
James Turner
d573cb43a0 Move three more subsystems into the init + update scheme - fixes some crashes found by papillion. 2010-10-22 16:44:37 +01:00
James Turner
f5c2c630eb Remove references to old (unused) airways code 2010-10-20 17:54:16 +01:00
James Turner
dd2eec7bd8 Airways/procedures code - add new data structures to store waypoints and
procedures, and routing algorithms, and modify the GPS, route manager and
WaypointList to use the new objects.
2010-10-20 09:02:02 +01:00
James Turner
0c342308eb Make MultiPlayer a well-behaved subsystem. 2010-10-05 23:17:32 +01:00
James Turner
d39841d2df Make FGAircraftModel behave like a standarrd subsystem. 2010-10-05 23:17:32 +01:00
James Turner
0beab94cb5 Make the tile-manager a well-behaved SGSubsystem 2010-10-01 19:09:19 +01:00
James Turner
1afd4e602e Get rid of FGGeneral; expose equivlanet values via properties. 2010-10-01 09:33:31 +01:00
Torsten Dreyer
54e6757211 Autopilot is more than just an autopilot: Introducing: "property rule"
The autopilot has grown beyond being just an autopilot. It's
components, filters and controllers could be used to set property
values based on complex rules and driven from other property values.
That's why I chose to give it the name "property-rule".
This patch allows to define an arbitrary number of property rules under
a/sim/property-rule[n]/path
using the same syntax as autopilot configurations.
2010-08-18 18:50:07 +02:00
Torsten Dreyer
60f7d0f16c Downgrade the ridgelift to a subsystem of environment 2010-08-15 20:33:29 +02:00
Torsten Dreyer
bb2d1f55e9 Interpret environment variables and hostname on Windows
- Point the homedir variable to %APPDATA%/flightgear.org. This
enables .fgfsrc in this path for windows users.
- Evaluate the returncode of gethostname() to not strdup() bogus
characters on failure. Also mainly on windows.
2010-08-06 09:06:32 +02:00
James Turner
7f36caede6 Create TimeManager subsystem, and collect the time related code out of main.cxx and fg_init.cxx into it.
Remove the unfortunately named 'tmp.[cxx|hxx]', pushing the remaining code in FGLight.
(second try, with init bug fixed)
2010-08-04 09:16:37 +01:00
David Luff
53358a55bf Remove old AI system 2010-08-03 00:21:56 +01:00
James Turner
47fd8a8a2a Revert "Create TimeManager subsystem" - not quite ready for prime-time yet!
This reverts commit 50eb95dcad.
2010-08-02 00:23:36 +01:00
James Turner
50eb95dcad Create TimeManager subsystem, and collect the time related code out of main.cxx and fg_init.cxx into it.
Remove the unfortunately named 'tmp.[cxx|hxx]', pushing the remaining code in FGLight.
2010-08-01 20:33:11 +01:00
James Turner
388a0a5b6a Make saveInitialProperties smarter, and hence simplify the reset code path. 2010-08-01 19:04:20 +01:00
Durk Talsma
7c73c7d3e5 Added some stubs in the flightgear main code to eventually add a full, FGSubsystems based ATIS system that will serve as a replacement for the ATCDCL code. 2010-08-01 16:16:33 +02:00
James Turner
ab495d1370 Add --fg-aircraft option, and aircraft dir path list. Partial support in places that load files, for respecting the setting.
Add helper to look for an aircraft branch path in multiple candidate locations.
Update the main subsystems to use the helper, and hence load from any aircraft dir.
2010-07-28 22:03:10 +01:00
James Turner
bf52c378a4 Clean up names in --show-aircraft; avoid -set.xml suffixes. 2010-07-22 01:36:32 +01:00
James Turner
c95a5db23d Rewrite --show-aircraft and --aircraft handling to share directory search code.
As a bonus, sort the --show-aircraft list case-insensitively.
2010-07-17 14:12:52 +01:00
James Turner
c47d4f2f30 Fix bug 141, by ensuring certain subsystems are assigned to the 'post FDM' group (which is new) 2010-07-08 23:24:39 +01:00
James Turner
18d42ec1af Rename reInit() method to 'resetSimulator', and document that it's hooked up to the 'reset' command. 2010-07-01 22:50:11 +01:00
James Turner
01e0156b5d Remove current_aircraft global, fgAIRCRAFT struct, and dead code for reading aircraft dirs. 2010-07-01 22:33:51 +01:00
James Turner
85be9be1e0 Initial work on FDM shell, and removal of cur_fdm_state 2010-06-26 10:31:22 +01:00
Torsten Dreyer
d558b52cb6 New autopilot subsystem implementation.
Split the former single-file-implementation in xmlauto.?xx into multiple
files and use some OO techniques. Started with documentation to be used
with doxygen.
2010-06-24 17:09:33 +02:00
James Turner
ad19acf1c6 Remove C++ autobrake code - this can all be done easier in XML now! 2010-05-29 10:36:23 +01:00
Tim Moore
988a6771aa Merge branch 'durk/atcdcl-cond'
Conflicts:
	src/ATC/trafficcontrol.cxx
	src/Main/Makefile.am
2010-02-10 00:45:06 +01:00
Tim Moore
3e0489bd91 Merge branch 'torsten/auto' 2010-02-10 00:41:44 +01:00
durk
e54798a8e2 A couple of last-minute patched / bugfixes to mitigate the probability of collisions between user controlled aircraft and AI traffic.
* AI aircraft distance to user proximity detection works again (lat/lon were inverted).
  * The parking uses by the user aircraft is marked as such to prevent it being reused by an AI aicraft
  * AI aircraft won't receive permission for pushback until the user aircraft is at a fair distance.
2010-01-31 17:52:43 +01:00
fredb
00e9ad3055 MINGW patch from Benot Laniel 2010-01-25 17:12:04 +01:00
Tim Moore
98d8a98ef2 Merge branch 'ehofman/sound' 2010-01-13 07:30:52 +01:00
ehofman
8e4d979aca Don't initialize the soundmanager wehn defining --disable-sound. Sound can still be enabled at runtime by setting /sim/sound/working to 'true' 2010-01-10 23:33:57 +01:00
durk
d8ae90801a Some additional changes to ensure that FlightGear at least compiles after configuring with --disable-atcdcl. Some substitution code is added in ATC/atcutils.cxx and ATC/atcutils.hxx. Note that the new code doesn't run properly yet. Instead, it is just meant to identify which parts need replacement. Getting that to work will be the next step. 2010-01-05 22:21:49 +01:00
durk
8114d1d899 Conditional compilation of ATCDCL module. Use --disable-atcdcl to try building flightgear without ATCDCL code. 2009-12-30 17:44:06 +01:00
Tim Moore
d2c7179cd0 Merge branches 'jmt/aircraft-name' and 'jmt/runway' 2009-12-22 00:16:38 +01:00
Tim Moore
b5c46a8d59 Merge branch 'ehofman/sound' 2009-12-20 11:11:16 +01:00
jmt
106aa02b76 Case-insensitive aircraft names, for the startup arg, so 'C172', 'F16', etc work. 2009-12-07 07:00:01 +01:00
Tim Moore
6324d5a03d Change int to unsigned in sound device traversal 2009-12-07 06:59:04 +01:00
ehofman
3abb7afa45 List all available playback devices under '/sim/sound/devcies' 2009-11-29 15:57:17 +01:00
ehofman
ef4814599d * Fix --disable-sound
* Add a new command line option: --sound-device=""
  This makes OpenAL use the sepcified audio device instead of the default
  output device. (Look for playback devices when calling openal-info of alcinfo)
2009-11-29 15:57:02 +01:00
torsten
179a799333 - fix the <condition> element which was no longer working due to an invalid property root
- allow multiple <autopilot> elements within an aircraft. All autopilot live in an individual FGXMLAutopilot subsystem which run within a subsystem group now.
2009-11-29 15:56:13 +01:00
Tim Moore
ad9366ed99 Merge branch 'ehofman/jsbsim' 2009-11-26 23:31:59 +01:00
Tim Moore
ef152ee411 Merge branches 'durk/scenery' and 'ehofman/fog' 2009-11-06 23:39:17 +01:00
ehofman
290bef5749 MSVC fix 2009-10-26 22:12:10 +01:00
durk
904a99714e Two patches:
1) Fix for the "use custom scenery airport data" property.
2) Make it a little harder for stupid people to make money behind our backs.
2009-10-24 19:53:03 +02:00
ehofman
f9445874a0 Don't make the SoundManager a memebr of the subsystem manager; It needs to be initialized very early and destroyed as late as possible. That doesn't work as a subsystem meber onless some sort of priority scheme gets implemented. Get rid of auto_ptr which doesn work for the samples either. 2009-10-24 19:51:39 +02:00
Tim Moore
21122fa03e Merge branches 'jmt/brakes' and 'jmt/dump' 2009-10-12 11:05:36 +02:00
ehofman
b64259b295 allow disabling sound completely (note: openal gets initialized but shuts down a bit later leaving the soundmanager to handle only very specific commands). At this time by specifying '--prop:/sim/sound/enabled=false', not sure why '--disable-sound' doesn't work properly 2009-10-06 10:23:15 +02:00
ehofman
446b200edc Add the Sound Manager before any other subsystem that uses it. This makes sure the SoundMgr is available at construction time which makes the code much cleaner. Call the update_last() after any other class 2009-10-06 10:23:03 +02:00
ehofman
86f462933d Initial commit of the new sound system, expect more updates to follow 2009-10-06 10:22:09 +02:00
jmt
4d67c69462 A generic, configurable autobrake system. Not fully features yet, but works quite nicely in the 777, including RTO modes and auto-disengage on pilot input. 2009-09-21 22:51:40 +02:00
jmt
14a09673b9 ATIS overhaul by John Denker, adapted to trunk by me.
8:: AWOS is available at AWOS locations.  (Previously only ATIS was
   implemented.)

 9:: ATIS phraseology now more nearly conforms to international
   standard METAR pattern, and therefore to usual FAA practice.(*)

Items marked with a (*) are fully implemented in the /text/ of the
ATIS message, but the voiced version of the message is degraded by
limitations of the FGFS built-in text-to-speech system.

 10:: ATIS now reports sky condition.(*)

 11:: ATIS now reports multiple layers of clouds, not just the lowest
 layer.(*)

 12:: ATIS now takes field elevation into account when calculating
   sky condition and ceiling.

 13:: ATIS now reports dewpoint.(*)

 14:: ATIS now can handle negative quantities (temperature and dewpoint).(*)

 15:: ATIS can now report report fractional-mile visibility.(*)

 16:: ATIS now uses magnetic (not true) wind directions, as it should.

 17:: ATIS generates correct runway number and suffix (nine right,
   one one left).

 18:: ATIS can be received on nav frequencies, not just comm.

 19:: Nothing bad happens if the same ATIS is tuned up on more than
   one receiver.

 20:: ATIS can be updated at times other than at the top of the hour.

 21:: ATIS listens for an "attention" signal, and responds to changes
   in the weather by issuing a new ATIS message (somewhat like a
   "special observation").

 22:: ATIS volume now responds to radio volume setting.

 23:: Area-related services (i.e. approach radar) are handled
   more-nearly consistently with radio-frequency related services.

 24:: ATIS sequence-letter generation has been fixed.

 25:: ATIS messages are now in the property tree, so they can be read
   e.g. via the http interface.
2009-09-18 20:18:54 +02:00
ehofman
ea4a3ee1df Make FGIO a proper subsystem and add a reinit method for the generic protocol. This should allow for easy runtime reloading of the configuration file. 2009-09-09 08:56:31 +02:00
Tim Moore
b588a92b7f adapt to changes in sg_exception interface
sg_location now uses C strings. Also, change uses of sg_throwable to more
specific exceptions like sg_io_exception.
2009-06-16 11:46:47 +02:00
frohlich
28996902a1 Adapt to simgears changes.
The season is already checked by the properties.

Modified Files:
	src/Main/fg_init.cxx
2009-06-03 00:18:54 +02:00
mfranz
095c710c0e leak fixes 2009-05-18 12:24:16 +02:00
torsten
7e3531ef5c Implementation of ridge lift from Patrice Poly based on an algorithm of Ian Forster-Lewis 2009-05-02 00:44:20 +02:00
frohlich
a99ea1c7b5 Port over remaining Point3D usage to the more type and unit safe SG* classes.
Remove leftover headers from plib/sg.

Modified Files:
 	src/AIModel/AIBase.cxx
 	src/AIModel/AIFlightPlanCreateCruise.cxx
 	src/ATCDCL/AIEntity.cxx src/ATCDCL/AIEntity.hxx
 	src/ATCDCL/AIGAVFRTraffic.cxx src/ATCDCL/AIGAVFRTraffic.hxx
 	src/ATCDCL/AILocalTraffic.cxx src/ATCDCL/AILocalTraffic.hxx
 	src/ATCDCL/AIMgr.cxx src/ATCDCL/ATC.hxx
 	src/ATCDCL/ATCDialog.cxx src/ATCDCL/ATCProjection.cxx
 	src/ATCDCL/ATCProjection.hxx src/ATCDCL/ATCutils.cxx
 	src/ATCDCL/ATCutils.hxx src/ATCDCL/approach.cxx
 	src/ATCDCL/commlist.cxx src/ATCDCL/ground.cxx
	src/ATCDCL/ground.hxx src/ATCDCL/tower.cxx
 	src/ATCDCL/tower.hxx src/Airports/calc_loc.cxx
 	src/Airports/dynamics.cxx src/Airports/groundnetwork.cxx
 	src/Airports/parking.cxx src/Airports/runwayprefs.cxx
 	src/Airports/simple.cxx src/Cockpit/cockpit.cxx
 	src/Cockpit/hud.hxx src/Cockpit/hud_card.cxx
 	src/Cockpit/hud_rwy.cxx src/Environment/environment.cxx
 	src/FDM/UFO.cxx src/FDM/SP/MagicCarpet.cxx src/GUI/dialog.hxx
 	src/Instrumentation/HUD/HUD.hxx
 	src/Instrumentation/HUD/HUD_runway.cxx
 	src/Instrumentation/KLN89/kln89.cxx src/Main/fg_init.cxx
 	src/Main/viewer.cxx src/Main/viewmgr.cxx
 	src/Model/panelnode.cxx src/MultiPlayer/mpmessages.hxx
 	src/Scenery/tilemgr.cxx src/Traffic/SchedFlight.cxx
 	src/Traffic/TrafficMgr.cxx
2009-03-18 08:00:08 +01:00
mfranz
79ad3d44b8 create $FG_HOME/Export/ 2009-01-12 13:03:40 +01:00
jmt
f1b10eddfa FGAirportList is gone. Everything should work as before, especially the
AirportList dialog. (It would now be possible to trivially implement a
VOR or NDB named search, if anyone wants such a thing).
2008-12-27 13:20:08 +00:00
jmt
0f4f044a94 Kill off many Point3D includes, and a couple of uses in the HUD code.
Requires a SimGear update to get some new SGGeodesy helpers.
2008-12-26 12:28:05 +00:00
jmt
988de9dbca Remove all name and spatial queries from FGNavList. All remaining queries are
by frequency (which makes sense), and use the FGPositioned spatial data if
required. As a result, the marker beacon list is gone (since beacons are only
searched spatially). In the process, clean up various minor things - most
notably, all the 'airport-related' navaids (ILS, GS, LOC, and the beacons) now
store a FGRunway* instead of an airport id string. This is more precise, and
saves string allocations.
2008-12-25 23:11:43 +00:00