Modified Files:
src/AIModel/AIFlightPlan.hxx
src/AIModel/AIFlightPlanCreateCruise.cxx
src/AIModel/AITanker.cxx src/Traffic/Schedule.cxx:
Move member variables that should better be in function local
scope into the functions. Make more use of SGMath functions.
Fixed an overly ambitious checkForCircularWaits() function. AI Aircraft
don't mysteriously disappear anymore when confronted with the user
controlled aircraft.
andy [Thu, 5 Jul 2007 21:25:01 +0000 (21:25 +0000)]
Wrong subtraction order lead to the "extra" space available (instead
of the extra space *required*) in a rowspan object being redistributed
back into the span, leading to a near-doubling of the size for small
objects with large span ranges.
Thomas Foerster: Made FGParking a subclass of FGTaxiNode
Fixed bug due to longstanding inconsistency in FGAirport
getter functions return types.
Durk Talsma: Fixed traffic record initialization bug that occured
when taxiing traffic was waiting for traffic on runway
I refactored the XML loading code out of FGAirportDynamics and
FGRunwayPreference. I also added a new class XMLLoader, which serves as a
facade to the loader functions. Further I changed FGRunwayPreference to just
keep a FGAirport ref, which is more concise and closer to the right(tm)
solution than storing the airport data a second time ;-)
Thomas Foerster:
I refactored the XML loading code out of FGAirportDynamics and
FGRunwayPreference. I also added a new class XMLLoader, which serves as a
facade to the loader functions. Further I changed FGRunwayPreference to just
keep a FGAirport ref, which is more concise and closer to the right(tm)
solution than storing the airport data a second time ;-)
- limit max number of messages displayed at the same time to 5 (Ideally,
it should be just one, but we don't want to block everything and
don't want to miss messages either.)
- prevent message duplicates
durk [Thu, 28 Jun 2007 18:30:35 +0000 (18:30 +0000)]
AI traffic now honors separate runway assignments for different types of
traffic (i.e. commercial airliners will use a differnt part of the airport
than general avation, ultralight and/or military traffic.
mfranz [Thu, 28 Jun 2007 11:26:40 +0000 (11:26 +0000)]
allow to specify a node type: --prop:[type:]name=value
where type is one of string (default), double, float, long, int, bool
Using only the first letter works, too.
--prop:foo=123 ... sets property foo to string 123 (old behavior)
--prop:string:foo=123 ... verbose version of above
--prop:s:foo=123 ... slightly less verbose version of above
--prop:bool:foo=1 ... makes property a bool of value 'true'
I hope this isn't considered a silly gimmick. I need this often and maybe
other developers do, too. It's useful in cases where the difference really
matters. if (getprop("/foo")), for instance, is TRUE even when the property
contains string "false", as all strings are TRUE.
durk [Thu, 28 Jun 2007 07:54:39 +0000 (07:54 +0000)]
Thomas Foerster: Replaced AI network route tracing algorithm by a much more
efficiently performing "Dijkstra algorithm".
Durk Talsma: Added the detection of "circular" wait situations in the AI
ground network. A circular wait is a situation where aircraft a waits for
b; b waits for c; and c (in turn) waits for a. The checkCircularWaits
function detects these situations.
The current "solution" to a circular wait is rather crude: Remove the
aircraft from the scene. A proper solution needs a lot more work, however,
and at least this patch stops the AI system from clogging up. in case of a
circular wait.
durk [Thu, 28 Jun 2007 07:47:20 +0000 (07:47 +0000)]
Thomas Foerster: Prepare for the inclusion of aircraft specific performance
data for AI traffic. Default performance classes are still available as a
backup. This database will allow the calculation of aircraft-specific
take-off speed and estimate runway lenght requirements. Further added
rudimentary support for take-off and landing rotation of AIAircraft.
mfranz [Sun, 24 Jun 2007 17:15:48 +0000 (17:15 +0000)]
- don't mix /instrumentation/radar and /instrumentation/wxradar wildly
together -- there's only *one* instrument node now
- don't take "random" tacan, but <tacan-source> from the instrumentation
config (or /instrumentation/tacan[0] by default)
- don't take "random" display-controls from /instrumentation/tacan[0]
- default name is now "radar" (formerly "wxradar")
mfranz [Sun, 24 Jun 2007 08:30:55 +0000 (08:30 +0000)]
degrade "Warning: catching up on tile delete queue" from SG_ALERT to SG_WARN.
* it says it's a warning (while in fact it's just saying what it's doing)
* the user can't do much here (yes, flying slower, but it doesn't say that :-)
* scrolling those countless messages in the terminal puts stress on the CPU
in a time when it's apparently already struggling
mfranz [Sun, 24 Jun 2007 07:57:45 +0000 (07:57 +0000)]
Vivian MEAZZA & Tim MOORE:
- re-enable od_gauge ("owner drawn" render-to-texture instruments)
- implement radar in c++ (unlimited number of clouds/ai/mp/... objects,
better performance)
mfranz [Sat, 23 Jun 2007 15:25:41 +0000 (15:25 +0000)]
add geodinfo(<lat>, <lon>) function that returns an array [<elev>, <matdata>]
or nil if no terrain intersection could be made (tile not loaded yet).
<matdata> is a hash with information about the surface material, or nil
if no material is assigned (shouldn't really happen, but one never knows).
Example:
var ac = geo.aircraft_position();
var data = geoddata(ac.lat(), ac.lon());
debug.dump(data);
mfranz [Tue, 19 Jun 2007 10:18:14 +0000 (10:18 +0000)]
fix bug that prevented /sim/sceneryloaded from ever becoming "true" if
/sim/screneryloaded-override was "true". At least one subsystem (od_gauge)
waits for /sim/sceneryloaded to bypass CPU intensive code until the scenery
is up. This broke e.g. the RTT-radar when using /sim/screneryloaded-override
--prop:sim/sceneryloaded-override=true has the effect that fgfs
doesn't show the splash screen until the scenery is loaded, but shows
the OTW view (scenery/aircraft) at the earliest possible moment. This is
useful for developers who often need to run fgfs only to check some minor
detail, while not caring about stuttering caused by scenery loading.
mfranz [Tue, 19 Jun 2007 10:10:00 +0000 (10:10 +0000)]
loadxml, savexml: don't pop up a GUI error message on error, but use a
simple SG_LOG instead. The user didn't call the fgcommand, so why should
s/he be bothered with that? And the actually caller of the command gets a
return value and can pop up a dialog if it thinks it's necessary.
mfranz [Sun, 17 Jun 2007 08:14:02 +0000 (08:14 +0000)]
256 Bytes ought to be enough for anybody ... hmm, better 512.
Why /sim/fg-current at all? Because we have a file selector dialog
(still unfinished), and one might like to start it from the current
directory, to find saved flights/screenshots/whatever.
mfranz [Sat, 16 Jun 2007 21:35:16 +0000 (21:35 +0000)]
set /sim/fg-current to current working directory; getcwd() is defined in
unistd.h (which was already included), and should be available in direct.h
under name _getcwd on MS Windows.
mfranz [Sat, 16 Jun 2007 09:39:56 +0000 (09:39 +0000)]
Tim MOORE:
FGManipulator.*:
"This patch works around a bug in OSG's handling of modifier keys. The
symptom of the bug is that modifier keys don't appear to be released."
fg_os_osgviewer.cxx:
"This patch fixes the test for support of cursor changes in OSG 2.0."
mfranz [Tue, 12 Jun 2007 16:13:21 +0000 (16:13 +0000)]
Make loadxml use an absolute path, like savexml (for consistency reasons, and
because this allows to load from FG_HOME. To reduce security risks, always
append an ".xml" extension if there was none. Makes it hard to read /etc/secret
and to overwrite ~/.bashrc. :-)
curt [Mon, 11 Jun 2007 19:13:08 +0000 (19:13 +0000)]
Add an option to estimate control surfaces deflections based on rotational
rates (not perfect, but lacking any data at all this is better than showing
them all hard over full stop.)
mfranz [Mon, 11 Jun 2007 19:02:01 +0000 (19:02 +0000)]
- make next_view()/pref_view() trigger listeners, otherwise the "view_cycle"
fgcommand doesn't activate Dynamic View, Fly-By View, etc.
- consistent indentation (broke that with my last commit :-)
andy [Thu, 7 Jun 2007 16:57:59 +0000 (16:57 +0000)]
Remove the GUI popup from the screen capture C++ code (a request via
IRC wanted this to be scritable) and add it back (as a tip popup) via
a little nasal in the keyboard handler. Also put the synthesis of
property nodes back into fgcommand(), because I got cold feet.
andy [Thu, 7 Jun 2007 16:17:48 +0000 (16:17 +0000)]
Allow the second (property node) argument to fgcommand() to be nil or
missing, for sanity. Note that this will pass the resulting NULL
pointer through into the underlying SGCommand handlers, some of which
may be unprepared for it. So basically this is now yet another way
you can use Nasal to exercise bugs and hose your sim; no biggie.
mfranz [Wed, 6 Jun 2007 21:18:25 +0000 (21:18 +0000)]
savexml: analog to loadxml, if no <sourcenode> is given, save file
contents from the argument tree's <data> node. That way one doesn't have
to plug a temporary branch into the main tree.
andy [Tue, 5 Jun 2007 16:01:43 +0000 (16:01 +0000)]
Maik: fix crash when using aircraft with hitches under the command
line solver. (He promises to get all the MP interaction out of the
FDM in a future patch.)
mfranz [Mon, 4 Jun 2007 10:07:31 +0000 (10:07 +0000)]
loadxml: if argument "targetnode" isn't defined, return the file data in
the argument tree under "data". This is useful in cases where the file
data are only needed temporarily and shouldn't remain in the main tree.
durk [Thu, 31 May 2007 19:53:53 +0000 (19:53 +0000)]
-Minor fix: Only read traffic from data/Traffic/fgtraffic.xml if that path really exists.
- Added a comment explaining why the first 1000 frames are skipped.
mfranz [Thu, 31 May 2007 18:08:12 +0000 (18:08 +0000)]
- add heading-deg, pitch-deg, roll-deg to impact/
- if no <impact-reports> node is defined for a particular submodel, then
write the path to /ai/models/model-impact instead
- don't tie() properties that are only ever set a single time, if at all!
- better variable names
frohlich [Wed, 30 May 2007 13:15:14 +0000 (13:15 +0000)]
Modified Files:
src/GUI/dialog.cxx src/GUI/menubar.cxx
src/Include/config.h-msvc8 src/Main/fg_os_osgviewer.cxx:
Olaf Flebbe: build fixes for osgviewer on win32.
frohlich [Sat, 26 May 2007 13:51:23 +0000 (13:51 +0000)]
Modified Files:
src/Scenery/tileentry.cxx: Jonathan Wagner:
Removes black dots by accounting for radius of nodes
when calculating visible nodes for traversal without removing the
optimization. Confirmed fix with a few people on IRC.
frohlich [Sat, 26 May 2007 11:39:13 +0000 (11:39 +0000)]
Modified Files:
src/GUI/gui.h src/GUI/gui_funcs.cxx src/Main/fg_commands.cxx
src/Main/renderer.cxx src/Main/renderer.hxx: Tim Moore:
These patches implement a command to dump the entire OSG scene graph as
a .osg text file. While large, this allows debuggers to really see
what's happening in the scene graph.