ThorstenB [Sat, 1 Oct 2011 20:58:40 +0000 (22:58 +0200)]
Replay upgrade, part II: Integrate flight recorder, update replay system.
Drop hard-coded replay property logic, cut ties to net_ctrls, net_fdm.
Improve replay system controls and status information.
fgpanel: fixed some error handling/setup issues
- Provide error message when fgdata path is missing.
- Exit game mode when closing/aborting program (show mouse cursor etc).
- Support absolute paths for "--panel" parameter.
- Don't crash when a font is missing.
James Turner [Wed, 28 Sep 2011 08:06:31 +0000 (09:06 +0100)]
Switch ATCmgr comm station search to filter by range in cartesian, not geodetic, space, to avoid numerical instability with extremely distant stations.
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.
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.
Some tweaks to the AI traffic scheduling algorithm. Remove the requirement for a home port, but keep planning until we are back at the original port of departure.
- wrap the ident-generating code into a class
- move dme-in-range property into dme.cxx
- move dme-ident generation into dme.cxx
- support ident-button and volume for dme idents
- use globals.get_aircraft_position instead of properties
- some minor cleanup
cmake: Use ws2_32.lib instead of the WINSOCK_LIBRARY variable.
Fixup for commit 549c5eccb9e18b6db2f469ca9d38e35dda4e33f1.
Do not refer to the no longer existing WINSOCK_LIBRARY variable.
Instead, at this single place where it is used, just use ws2_32.lib.
James Turner [Thu, 8 Sep 2011 12:59:40 +0000 (13:59 +0100)]
Cmake: Split simgear libraries into core and scene (only scene uses OSG). Fix linkage issues, and make helper binaries (yasim, terrasync) link against less stuff.
Revert to simgears thread support. Flightgear side.
For all source directories outside of simgear/scene,
which really depends very hard on osg, avoid using osg
classes. This should reenable the use of some basic and
scenegraph independent parts of simgear without the
the need for osg.
Martin Spott [Mon, 5 Sep 2011 18:25:30 +0000 (20:25 +0200)]
Make HLA configurable.
Permit un-breaking of FlightGear CMake builds on setups with a working HLA
RTI installed, accommodating with recent changes to SimGear CMake.
A number of cosmetic and/or infrastructural changes.
Traffic Manager:
* Just continue routing until we run out of flights. This change removes one of the major requirements for setting the "Home port" field.
* Add a time restriction requirement for the aircraft scheduler; this became necessary after removing the limited-to-home-port routing restriction.
* Added a new field to the heuristics calculation: take into account whether an aircraft has already been used in a previous session. Rotate aircraft assignments for greater variability across sessions.
* Added a revision number to the cache files, so that old cache results, which are no longer compatible with the new file format, are discarded.
Groundnetwork and traffic control:
* Added a revision number to the cache files, so that old and incompatible results are discarded.
* The caching algorithm probably didn't store the correct data for airports that were processed while the user was quite far away. This is now corrected by checking whether the cached elevation data are equal to the generic airport elevation.
AIAircraft:
* I've been searching for the infamous aircraft bend-over-backward bug, that can occur during initialization, but to no avail yet. The only variable potentially responsible (tgt_vs) wich can explain the irregular jumping behavior, as well as the weird pitch results is initialized in AIAircraft's only constructor (through AIBase), and I can't find any situation in the ground handling code where this variable could get bizarre values. But,
* a couple of tgt_vs. calculations appear to be completely redundant. This value was calculated twice inside the ProcessFlightplan function, and subsequently again in the updateSecondaryTargetValues function. I have removed the calculations in the process flightplan function, without any apparent side effect.
Attempt to tidy up the search path mess (noticed by TorstenD)
When a model is not found in the custom scenery directories, load data
from base-package (instead of trying to access file "").
Also allow paged models to be loaded from custom scenery folders.
Read groundnet node information from the scenery, and (optionally) write it to a cache file. Note that this mechanism should be extended, so that the cache files will be updated whenever the terrain files are changing. The current patch also uncovers a bug, in the sense that the groundnetwork destructor is never called. Presumably this is due to the way airports are allocated in flightgear. Because the ground networks are never saved, I am periodically saving the cache files; but this behavior should probably be changed later on.
The current patch incorporates work contributed by Adrian Musceac.
ThorstenB [Wed, 24 Aug 2011 21:17:05 +0000 (23:17 +0200)]
Avoid excessive load when no navaids are in range
When no navaid is found, '_ref_navaid_id_node->setStringValue("")' results
in a listener firing, which requests another navaid update when no navaid
is available.
=> Resulted in FGPositioned::findClosest being called in every update loop,
when no navaid was within range.