1
0
Fork 0
Commit graph

503 commits

Author SHA1 Message Date
durk
4e24fba0d5 Merging David Luff's AI/ATC code with AIModels. Part 1:
- Move Dave's original code to a new directory (ATCDCL) so we can recycle
    the original ATC directory for generic ATC functions.
2008-05-12 10:38:04 +00:00
timoore
fd492a297a model paging patch from Till Busch
From Till:
i started the project at the end of february with a simple idea: move all
3d-model loading to the DatabasePager-thread. my first attempts looked
promising, though they were a little too optimistic (or naive?). the patch
has evolved a lot since.

currently it does the following things:
1. revive SGModelLib, move functions for xml-model-loading there

2. replace all calls to sgLoad3dModel with calls to either
SGModelLib::loadModel() or SGModelLib::loadPagedModel()
almost all models will be loaded by the DatabasePager. the few exceptions are:
your own plane, shared models in scenery, random objects, AIBallistic models.

3. simplify mode-loading functions (avoid passing around fg_root)

4. avoid supurious MatrixTransform nodes in loaded models

5. fix some memory leaks
2008-03-22 09:31:06 +00:00
mfranz
fa5c059295 any wind < 1kt is "calm", not just 0.0 2008-02-07 16:42:32 +00:00
mfranz
7bfade1a3a Daniyar ATADJANOV:
This patch contains bugfixes from my previous patch
 (i made mistakes when using "diff" utility last time):

    1. Now ATC do not tells us to go around because of
       traffic on RWy, when that traffic is WE.
    2. Now ATC don't say that we must follow ourself
       (like "GFS, number two, follow GFS on final").

And new Tower-ATC features:

    1. Requesting departure clearance. When you are
       on taxiway, you can request departure clearance.
       Tower will answer with something like:
       "Line up runway two eight right".

       TODO: check if any AI-Planes on final and tell
       something like: "After the landing AI-CALLSIGN
       line up runway two eight right".

    2. Requesting take-off clearance. If you are on
       runway, you can tell to ATC that you are ready
       for take-off. So, Tower will tell you that you
       are cleared for take-off (or immediate take-off).

    3. Reporting landing gear position on final by pilot.
       If you are on aircraft, which landing gear can
       be UP, when reporting final you will tell
       "Gear down, ready to land".

    4. Reporting landing gear position on final by ATC.
       When i was newbie and was flying on Cessna 310, i
       ALWAYS forgot landing gears on final. Now if you are on
       final and forgot landing gear, Tower will tell you:
       "LANDING GEAR APPEARS UP" or "Check wheels down and
       locked". So you will have some time to push gear
       down or execute missed approach ;)

    5. ATIS phonetic ID in requesting landing message.
       In FG pilots says: "for full stop with ATIS" everytime
       (when airport doesn't have ATIS too). But in real life
       pilot saying phonetic ID of ATIS message. Now we have:
       "for full stop, information alpha ... / ... zulu".
       If airport doesn't have ATIS, pilot don't say this.

       TODO: add this feature to AI-Planes too.

     6. Advising weather condition in airport by Tower.
        If you are requesting take-off or landing in airport
        that doesn't have ATIS service, Tower will tell you
        about wind direction and speed, visibility and QFE.

     7. Reporting downwind if missed approach. When some AI-Plane
        is on final FG's ATC tell you to "continue approach".
        And then you lost radio transmission. Now ATC says:
        "continue approach and report left/right downwind".
        And now we have "Report Downwind" entry (button)
        in "ATC Communication" form.
2008-01-31 22:33:32 +00:00
mfranz
eadb480b31 try to fix yet another crash bug (don't worry, there's one for anybody!) 2007-10-27 19:16:39 +00:00
durk
f5e9e1898f Miscellaneous tweaks and Bugfixes. Mostly memory leaks ported from the plib
version
* Delete ai list objects in ~ATC/AIMgr.cxx:AIMgr::~AIMgr()
* Delete colors in GUI/new_gui.cxx: NewGui::~NewGui.cxx
* Delete memory allocated to the class member "route" in
  Instrumentation/gps.cxx
* Delete all globals (except a few "unsafe" ones that still cause segfaults
  and need further examination.
* Use an SGShared pointer for navaid memory allocation, so that pointers to
  individual navaid objects can be included safely in multiple navaid lists
2007-10-20 08:36:21 +00:00
mfranz
44b8f3704a fix another creative char[] == "" comparison 2007-10-12 10:20:54 +00:00
mfranz
e599cbae3b very funny ... mes is a char*! :-} 2007-10-06 14:56:08 +00:00
mfranz
a0789e1c35 increase range of searched and displayed frequencies 40 -> 50 nm 2007-06-22 18:12:31 +00:00
frohlich
16a2bb0118 Modified Files:
src/ATC/AIPlane.cxx src/ATC/ATC.cxx src/ATC/ATCDialog.cxx
	src/ATC/ATCmgr.cxx src/ATC/Makefile.am src/ATC/approach.cxx
	src/ATC/atis.cxx src/ATC/ground.cxx src/ATC/tower.cxx
	src/GUI/mouse.cxx src/Main/Makefile.am src/Main/fg_init.cxx
	src/Main/fg_props.cxx src/Main/globals.cxx
	src/Main/globals.hxx src/Main/main.cxx src/Main/renderer.cxx
	src/Model/acmodel.cxx src/Scenery/scenery.cxx
	src/Scenery/scenery.hxx src/Scenery/tilemgr.cxx
	src/Scenery/tilemgr.hxx
Removed Files:
	src/ATC/ATCdisplay.cxx src/ATC/ATCdisplay.hxx:
	Remove unused functions and the disabled ATC display.
2007-05-09 20:41:08 +00:00
frohlich
4fe615fff5 Modified Files:
src/AIModel/AIBase.cxx src/AIModel/AICarrier.cxx
	src/ATC/AIEntity.cxx src/Cockpit/hud_rwy.cxx
 	src/FDM/Makefile.am src/FDM/flight.hxx src/FDM/groundcache.cxx
	src/Instrumentation/HUD/HUD_runway.cxx src/Main/Makefile.am
	src/Main/fg_init.cxx src/Main/main.cxx src/Main/renderer.cxx
	src/Main/viewer.cxx src/Main/viewer.hxx src/Model/acmodel.cxx
	src/Model/modelmgr.cxx src/Scenery/scenery.cxx
	src/Scenery/scenery.hxx src/Scenery/tileentry.cxx
	src/Time/tmp.cxx: Remove the scenery center handling.
	Osg has double valued transforms at any relevant place.
2007-05-05 08:08:24 +00:00
mfranz
ef10fcb676 insert punctuation for better festival speech 2006-10-31 11:57:16 +00:00
frohlich
b0f9d24f9d Modified Files:
configure.ac src/AIModel/AIAircraft.cxx src/AIModel/AIBase.cxx
 	src/AIModel/AIBase.hxx src/AIModel/AICarrier.cxx
 	src/AIModel/AICarrier.hxx src/AIModel/AIManager.cxx
 	src/AIModel/AIManager.hxx src/ATC/AIEntity.cxx
 	src/ATC/AIEntity.hxx src/ATC/AIMgr.cxx src/ATC/AIMgr.hxx
 	src/ATC/ATCdisplay.cxx src/ATC/ATCdisplay.hxx
 	src/Cockpit/cockpit.cxx src/Cockpit/cockpit.hxx
 	src/Cockpit/hud.cxx src/Cockpit/hud.hxx
 	src/Cockpit/hud_rwy.cxx src/Cockpit/panel.cxx
 	src/Cockpit/panel.hxx src/Cockpit/built_in/FGMagRibbon.cxx
 	src/Cockpit/built_in/FGMagRibbon.hxx src/FDM/flight.cxx
 	src/FDM/groundcache.cxx src/FDM/groundcache.hxx
 	src/GUI/gui_funcs.cxx src/Input/input.cxx
 	src/Instrumentation/od_gauge.cxx
 	src/Instrumentation/od_gauge.hxx
 	src/Instrumentation/render_area_2d.cxx
 	src/Instrumentation/render_area_2d.hxx
 	src/Instrumentation/wxradar.cxx
 	src/Instrumentation/wxradar.hxx
 	src/Instrumentation/HUD/HUD.cxx
 	src/Instrumentation/HUD/HUD.hxx
 	src/Instrumentation/HUD/HUD_runway.cxx src/Main/Makefile.am
 	src/Main/main.cxx src/Main/renderer.cxx src/Main/renderer.hxx
 	src/Main/viewmgr.cxx src/Model/acmodel.cxx
 	src/Model/acmodel.hxx src/Model/model_panel.cxx
 	src/Model/model_panel.hxx src/Model/modelmgr.cxx
 	src/Model/modelmgr.hxx src/Model/panelnode.cxx
 	src/Model/panelnode.hxx src/Navaids/awynet.cxx
 	src/Scenery/Makefile.am src/Scenery/hitlist.cxx
 	src/Scenery/hitlist.hxx src/Scenery/newcache.cxx
 	src/Scenery/scenery.cxx src/Scenery/scenery.hxx
 	src/Scenery/tileentry.cxx src/Scenery/tileentry.hxx
 	src/Scenery/tilemgr.cxx src/Scripting/NasalSys.cxx
 	src/Scripting/NasalSys.hxx src/Time/light.cxx
	Big BLOB on the way to OSG.
2006-10-29 19:30:21 +00:00
fredb
c5a7267206 Compile again on Win32 platforms 2006-06-16 10:17:06 +00:00
frohlich
14fe03ba6f Modified Files:
src/AIModel/AIAircraft.cxx src/ATC/AILocalTraffic.cxx
	src/FDM/flight.cxx src/FDM/flight.hxx src/FDM/groundcache.cxx
	src/FDM/groundcache.hxx src/Main/fg_init.cxx src/Main/main.cxx
	src/Scenery/hitlist.cxx src/Scenery/hitlist.hxx
	src/Scenery/scenery.cxx src/Scenery/scenery.hxx
	Make use of the attached SGMaterial reference userdata on scenegraph
	leafs. Make the SGMaterial pointer available to the ground query
	routines.
2006-06-11 13:34:18 +00:00
mfranz
e48967cb1d fix another crash on exit by finally converting the rest of unguarded
SGPropertyNode to guarded ones. This is also done for JSBSim/JSBSim.hxx,
for which JSB had given explicit permission a while ago. I postponed that
back then, but now is the time.
2006-06-11 10:21:10 +00:00
frohlich
dcc77f1a7c From Olaf Flebbe: avoid iterator overruns if we delete the last list entry. 2006-05-30 17:21:50 +00:00
mfranz
ca46e8d5d5 rename NewGUI::getDialog() to NewGUI::getDialogProperties()
getDialog wrongly implies that it returns an FGDialog, and we might later
need a real getDialog.
2006-04-28 09:59:31 +00:00
fredb
30adde04bf Restore line endings after goofing 2006-04-18 21:39:59 +00:00
fredb
47de74a10b If it's a struct, it's not a class 2006-04-18 21:24:38 +00:00
mfranz
15a8e965f3 - use guarded property pointers
- reduce header usage
- make headers not depend on *.cxx files
2006-04-17 17:08:58 +00:00
mfranz
c0c9d51c09 aircraft are often in several state lists at the same time, and they can
even be more than once in the same list. We need to remove all such instances,
or the a pointer to TowerPlaneRec may become invalid and cause crashes.

The proper fix would, of course, be to be careful with state changes and
to prevent *any* duplication of entries.   [OK'ed by David]
2006-04-15 18:48:59 +00:00
daveluff
71c8889cbf This innocuous looking typo was crashing the sim whenever an AI plane was asked to follow the user whilst the user was flying a circuit (non straight-in) approach 2006-03-21 23:33:54 +00:00
ehofman
813c518e07 Mathias Frhlich:
I have some bugfixes which will avoid fg just crashing if the sound device
could not be opened.
2006-03-03 15:13:42 +00:00
daveluff
00ba5a853e Recent SimGear changes seem to require more additions of config.h to FG in order to compile on Cygwin 2006-02-22 21:04:47 +00:00
mfranz
4b23e2b131 disable old ATC display. This is now done via screen.log.write() messages.
(Decide after 0.9.10 if it should be replaced with a new C++ implementation,
or if the Nasal one is good enough.)
2006-02-21 21:29:19 +00:00
mfranz
c9813d1b5d new FSF address 2006-02-21 01:16:04 +00:00
fredb
36e4045810 Add missing include files needed by the new math code under windows 2006-02-18 13:58:09 +00:00
fredb
cc27909e6f Catch sound exceptions at the earliest, report problem has an alert, and continue without segfaulting ( hopefully ) 2006-02-12 19:57:57 +00:00
mfranz
35eb03bc68 Remove old festival code. 2006-02-12 17:17:15 +00:00
ehofman
975887eac8 Remove old festival code. 2006-02-12 17:04:22 +00:00
mfranz
b4572711fa replace 'innovative' clamping method with something more traditional 2006-02-12 14:17:30 +00:00
mfranz
af7cd434cf Vivian wants: s/with the ATIS/with ATIS/ 2006-02-10 21:26:36 +00:00
mfranz
3957e26234 preliminary fix for the "golf foxtrot sierra follow the golf foxtrott sierra"
problem; Of course, this needs to respect the /sim/user/callsign settings
as a next step.
2006-02-10 20:15:01 +00:00
mfranz
effecbd8ef don't set the callsign, but use the set one 2006-02-10 19:57:46 +00:00
mfranz
2a8111cc11 Don't send repeating messages (ATIS) to the /sim/messages/atc property. 2006-02-09 19:15:49 +00:00
mfranz
179e5c587d make sure the index is in the array, which isn't necessarily the case,
because a dialog button can get pressed when its callback isn't available
any more. Ideally, we would close the dialog or update its buttons when
this happens. But this requires bigger changes.
2006-02-08 17:18:24 +00:00
ehofman
a47725e92f Mathias Frhlich:
Make use of the automatic reference counting class for ssg* data in flightgear.
2006-02-08 10:25:56 +00:00
mfranz
3cdea0705d emit to different message properties:
/sim/messages/{atc,pilot,ai-plane,ground,approach}
These can the be used for differenct screen.log colors and for different
voices. (Aircraft & tutoruals may want to write to /sim/messages/copilot)
2006-02-07 22:35:22 +00:00
mfranz
4d757f28d3 export ATC message to /sim/messages/atc 2006-02-04 16:55:05 +00:00
ehofman
7e46303195 Olaf Flebbe:
I had massive problems with tower.cxx, so I decided to doublecheck all
containers and iterators in order and found lot of potential problems.

Now I can fly with "debug on" of KSFO for minutes without problems.

The fix for AIMgr is from Mathias, but I reworked it. So blame me, not him.
2006-01-30 13:44:56 +00:00
ehofman
619226e9d0 Integrate a large part of John Wojnaroski's 747 cockpit project.
Erik Hofman:
This patch contains an update to net_ctrls.hxx that adds an extra 100 bytes
(or an equivalent of 25 (u)int32_t types) of reserved space. This could be
used to make the protocol forward and backward compatibel within a certain
scope. Be sure to read the instructions at the begining of the header file
when addinf new variables.
2006-01-20 17:19:01 +00:00
ehofman
4be621fbe9 Durk Talsma, Olaf Flebbe & Mathias Frhlich:
Split up simple.cxx
2005-12-29 13:58:21 +00:00
ehofman
9090fb5bf4 Olaf Flebbe:
The prototype of update_metar_properties does not match overridden func.
trafficmgr: iterators below begin() and after end().
tower.cxx : iterator incrementing beyond end().
2005-12-19 13:03:19 +00:00
ehofman
90a149ffa3 Vassilii Khachaturov:
* in some cases more specific sg exception types were used in place
  of the more generic one, e.g., sg_io_exception instead of sg_exception
  when the context of the error was an IO error
* in some cases, the error message was made more specific
* minor style fix for exception rethrowing --- using throw; whenever
  a re-throw is made; sometimes optimizing away the exception symbol name
  in the catch handler at all
* more specific catch handlers added in some places -- e.g.,
  an sg_io_exception caught ahead of sg_exception
2005-12-11 13:37:06 +00:00
ehofman
04f7175fd0 The most important part is that it fixes possible
memory corruption with that iterator decrement past the erase call.
2005-12-11 13:17:20 +00:00
daveluff
49b6bef6bb General tidy up - add an extra ctor method, remove surplus defined constants, remove cout and iostream 2005-11-29 19:58:37 +00:00
ehofman
9a7bbf3db5 Sync with SimGear. 2005-11-12 12:31:11 +00:00
ehofman
e5d3c3134b Make use of the new sound_sample function arrangement. 2005-11-12 10:27:05 +00:00
ehofman
414951b528 Use the default included aircraft. 2005-11-11 13:45:35 +00:00
mfranz
d5116e496f make transmission buttons accessible via accelerator keys "1", "2", etc. 2005-11-02 13:16:58 +00:00
mfranz
34b8ca3c33 cosmetics 2005-10-30 16:06:08 +00:00
mfranz
69fd4d1ce5 search recursively for named node (i.e. one with matching <name> child);
should probably move to fg_props.cxx
2005-10-27 17:15:47 +00:00
mfranz
2fd0269662 Replace hard-coded dialogs with NewGUI/XML dialogs, where some widgets
and text strings are filled in before displaying. For testing: the new
dialogs are available under menu -> ATC -> Frequencies, and when
communicating with ATC (' key). This isn't completely finished yet, and
will probably profit from some feedback from the ATC folks.
tower.cxx: remove redundant "if (foo) delete foo".
2005-10-26 18:20:27 +00:00
ehofman
b24dbb3f8b Alex Romosan:
I tried to make sure accessor functions which return by reference act
on const objects. also replaced some iterators with const_iterator
and a few return/pass by reference that were missed the first time
around.
2005-10-26 09:03:49 +00:00
ehofman
62a359cc4a Alex Romosan:
* Use "const string&" rather than "string" in function calls when appropriate.
* Use "const Point3D&" instead of "Pint3D" in function calls when appropriate.
* Improved course calculation in calc_gc_course_dist()
* Safer thread handling code.

Vassilii Khachaturov:

Dont use "const Point3D&" for return types unless you're absolutely sure.

Erik Hofman:

* Use SGD_(2)PI(_[24]) as defined in simgear/constants.h rather than
  calculating it by hand every time.
2005-10-25 13:49:55 +00:00
ehofman
6985804e95 Vassilii Khachaturov:
this patch eliminates some cut-and-paste,
as well as makes some frequently used strings const static at the same
time. A couple of interfaces are decorated with 'const' on the parameters
that are such, in line with other such interfaces where const is used.

"NINE" changed to "NINER", to match ICAO practice and the current FGFS
voice data.

A fixed buffer, sprintf and a warning comment replaced w/ostringstream.


Alex Romosan:

+string ConvertRwyNumToSpokenString(const string s) {

this should be string ConvertRwyNumToSpokenString(const string& s)
so we don't make unnecessary copies.
2005-10-25 08:57:33 +00:00
ehofman
12fc19080b Ima Sudonim:
CygWin/gcc-3.4.4 updates.

I replaced my cygwin compiler with 3.4.4, did a make clean of plib, simgear,
and flightgear, then did a make install of all three. With the included changes,
everything builds fine, and runs fine.
2005-10-22 11:22:05 +00:00
ehofman
54a33c3899 Mathias Frhlich:
I had a quick view over the ssgBase::ref() calls in flightgear.
I made them all symmetric and used ssgDeRefDelete to dereference them.
This has the basic advantage that ssgDeRefDelete additionaly deletes the
memory instead of just decrementing the reference cound without deletion ...

This includes an incorrect deref instead of a ssgDeRefDelete in the placement
transform registration I introduced earlier. I believe that this causes the
problems with long flights (unverified, but with a big propability).
2005-10-15 14:51:52 +00:00
curt
0bb1494452 David Luff:
Attached is a patch to the airport data storage that I would like committed
after review if acceptable.  Currently the storage of airports mapped by ID
is by locally created objects - about 12 Meg or so created on the stack if
I am not mistaken.  I've changed this to creating the airports on the heap,
and storing pointers to them - see FGAirportList.add(...) in
src/Airports/simple.cxx.  I believe that this is probably better practice,
and it's certainly cured some strange problems I was seeing when accessing
the airport data with some gps unit code.  Changes resulting from this have
cascaded through a few files which access the data - 11 files are modified
in all.  Melchior and Durk - you might want to test this and shout if there
are problems since the metar and traffic code are probably the biggest
users of the airport data.  I've also added a fuzzy search function that
returns the next matching airport code in ASCII sequence in order to
support gps units that have autocompletion of partially entered codes.

More generally, the simple airport class seems to have grown a lot with the
fairly recent addition of the parking, runway preference and schedule time
code.  It is no longer just an encapsulation of the global airport data
file, and has grown to 552 bytes in size when unpopulated (about 1/2 a K!).
 My personal opinion is that we should look to just store the basic data in
apt.dat for all global airports in a simple airport class, plus globally
needed data (metar available?), and then have the traffic, AI and ATC
subsystems create more advanced airports for themselves as needed in the
area of interest.  Once a significant number of airports worldwide have
ground networks and parking defined, it will be impractical and unnecessary
to store them all in memory.  That's just a thought for the future though.
2005-09-20 20:26:57 +00:00
daveluff
55e25f9871 Add a convienient ctor 2005-09-09 12:33:23 +00:00
ehofman
fad67bda10 Mathias Frhlihlich:
There was a patch from Manuel Masing a few months ago which cleaned up
SGLocation's way depending on input values. That means that with that patch
SGLocation does no longer have calls with unneeded input arguments.
I took his patch and integrated that into flightgear and made maximum use of
that changes.


Erik Hofman:
Remove some duplicate code that was moved to simgear/compiler.h
2005-09-05 13:25:09 +00:00
ehofman
7b824755ee Mathias Frhlich:
I have prepared a patch that:
- Introduces a FGTileMgr::scenery_available method which asks the tilemanager
  if scenery for a given range around a lat/lon pair is already loaded and make
  use of that method at some -9999 meter checks.
- Introduces a FGScenery::get_elevation_m method which queries the altitude at
  a given position. In constrast to the groundcache functions this is the best
  choice if you ask for one *single* altitude value. Make use of that thing in
  AI/ATC classes and for the current views ground level. At the current views
  part the groundcache is reused if possible.
- The computation of the 'current groundlevel' is no longer done on the
  tilemanagers update since the required functions are now better seperated.

Alltogether it eliminates somehow redundant terrain level computations which
are now superseeded by that more finegrained functions and the existence of
the groundcache. Additionally it introduces an api to commonly required
functions which was very complex to do prevously.
2005-08-14 12:57:12 +00:00
ehofman
05f626e9fb Harald JOHSEN:
Changes
=======

- shadowvolume.cxx, renderer.cxx :
  - reduced the polygon offset a bit to eliminate some artifact ;
  - changed again the cleanup code for objects inside a tile because it could crash on rare occasion ;
  - the culling of shadow casters has been rewritten to traverse the scene graph, it should be
    a bit faster when there is a lot of objects ;
  - the range selector was not correctly handled, sometimes the wrong LOD was casting shadows.
  - added the option to display aircraft's transparent objects after the shadows, this will
    reduce the problem of shadows being hidden by the transparent object (propeller disk,
    rotor, etc). A side effect is that aircraft's transparent objects won't receive shadows
    anymore. This is usually a good thing except when the aircraft use a 'transparent'
    texture where it should not. A transparent texture in the plib context is a texture
    with an alpha channel or a material with alpha <= 0.99.

- model.cxx, animation.cxx, shadowvolume.cxx :
  - added an optional <condition> under the <noshadow> animation

- tower.cxx
  - correct a rare bug where all occurences of the aircraft are not deleted from the
  departure list causing a crash in FGTower::CheckDepartureList function.
2005-07-18 16:58:22 +00:00
mfranz
be1df4819a I had hoped that gmtime's lack of thread-safety wouldn't bite us. It does.
Fix jumping clock hands.
2005-06-03 08:39:50 +00:00
mfranz
e23c5e49c9 there's no such thing as /sim/time/elapsed-ms --> elapsed-sec 2005-05-10 09:29:24 +00:00
ehofman
4c10ef139c Mathias:
I have done a patch to eliminate the jitter of 3D-objects near the viewpoint
(for example 3D cockpit objects).
The problem is the roundoff accuracy of the float values used in the
scenegraph together with the transforms of the eyepoint relative to the
scenery center.

The solution will be to move the scenery center near the view point.
This way floats relative accuracy is enough to show a stable picture.

To get that right I have introduced a transform node for the scenegraph which
is responsible for that shift and uses double values as long as possible.
The scenery subsystem now has a list of all those transforms required to place
objects in the world and will tell all those transforms that the scenery
center has changed when the set_scenery_center() of the scenery subsystem is
called.
The problem was not solvable by SGModelPlacement and SGLocation, since not all
objects, especially the scenery, are placed using these classes.

The first approach was to have the scenery center exactly at the eyepoint.
This works well for the cockpit.
But then the ground jitters a bit below the aircraft. With our default views
you can't see that, but that F-18 has a camera view below the left engine
intake with the nose gear and the ground in its field of view, here I could
see that.
Having the scenery center constant will still have this roundoff problems, but
like it is now too, the roundoff error here is exactly the same in each
frame, so you will not notice any jitter.

The real solution is now to keep the scenery center constant as long as it is
in a ball of 30m radius around the view point. If the scenery center is
outside this ball, just put it at the view point.

As a sideeffect of now beeing able to switch the scenery center in the whole
scenegraph with one function call, I was able to remove a one half of a
problem when switching views, where the scenery center was far off for one or
two frames past switching from one view to the next. Also included is a fix
to the other half of this problem, where the view position was not yet copied
into a view when it is switched (at least under glut). This was responsible
for the 'Error: ...' messages of the cloud subsystem when views were
switched.
2005-04-29 14:38:24 +00:00
mfranz
a14263a006 code simplification: use atan2() [discussed with David] 2005-04-22 06:41:07 +00:00
ehofman
d3bdc4e7bc Melchior FRANZ:
FGAIMgr::GenerateSimpleAirportTraffic() tries to determine the airport's local
hour from the /sim/time/gmt-time string, which fails, because at this time the
property is still empty. That's why I don't get ATIS at LOWG (where it is *not*
midnight right now.  :-)    -> use sg's get_cur_time() instead
2005-03-31 17:00:27 +00:00
ehofman
743379925e update paths. 2005-02-22 18:56:13 +00:00
ehofman
5bc15d7a69 Durk Talsma:
I just heard from John Wojnaroski that you and he are going to work on getting
a flightgear demo machine up for the linux expo thursday and Friday. John
indicated that he would very much like to get a CVS version with the new
traffic code up and running before the expo.
2005-02-10 09:01:51 +00:00
daveluff
03f0ac8519 Minor fix 2005-02-02 19:16:51 +00:00
daveluff
e2a170c7d4 Emergency fix for AI model loading - non existance of the piper model as in the latest base package crashes the program - add exception handler during load. Needs to be replaced with better AI aircraft loading logic at some point 2005-01-21 15:50:29 +00:00
daveluff
7793c32f95 Make sure the ATIS reports surface winds at airports above sea-level 2004-12-27 23:55:54 +00:00
curt
222446df29 Replace the data/Airports/basic.dat.gz and data/Airports/runways.dat.gz with
a single apt.dat.gz file which is in the native X-Plane format.

To do this I wrote a front end loader than builds the airport and runway
list.  Some of the changes I needed to make had a cascading effect, so there
are minor naming changes scattered throughout the code.
2004-12-22 23:57:07 +00:00
curt
634e79353f Roy Vegard Ovesen:
I've finished the emigration of the radiostack, and I've also removed it
completely. It turned out that the comm radio is completely implemented in
the ATC subsystem. I've changed the affected ATC files to point
to /instrumentation/com, but I guess that the maintainer of the ATC code
should decide wether to make it configureable, and how.

I also had to change some files in Network and Main. The changes in network
should be obvious, but the changes in Main were a bit suspect. The files
included radiostack.hxx, but they weren't directly depending on
radiostack-hxx. They were depending on other files that were included by
radiostack.hxx. I got it to compile, but I'm not sure if I included the
correct directly depending file.

For the data directory I changed every occurrence of /radios/
with /instrumentation/ with this simple one-liner that I found on the net:

find -name '*.xml' -type f | xargs perl -pi -e
's/\/radios\//\/instrumentation\//g'

Instead of me sending all the files that got changed by this I suggest that
you execute the one-liner yourself. Of course I can not guarantee that this
will work perfectly, but I considered hand editing to be not an option (I'm
lazy). I don't want to test every aircraft to see if everything still works,
I think it's better to wait and see if anyone complaints about broken nav
radios/instruments.
2004-12-03 21:21:16 +00:00
curt
d05121ef46 Fix my mailing address by replacing it with my web page. 2004-11-19 22:10:41 +00:00
curt
4214cd6c10 Migrate FlightGear code to use "#include SG_GL*" defined in
"#include <simgear/compiler.h>".
2004-11-18 19:53:00 +00:00
daveluff
3bb349179d Use the Transmit-Render functions for tower output instead of directly calling ATCdisplay. This is part of preparations for optionally handing the strings off to a TTS engine if required. 2004-09-30 15:43:32 +00:00
ehofman
409dee5a9d Remove unnecessary inclusions of sg.h ans ssg.h 2004-09-19 16:33:38 +00:00
ehofman
009afccb37 Reduce the log-level of the airport not found
message.
2004-07-23 18:58:42 +00:00
curt
ec8c167a27 Code at this level shouldn't care if the sound manager is paused or not.
Just forge ahead as if sound is playing, let the sound manger worry about
the details.
2004-05-14 15:49:10 +00:00
curt
944a82b576 Clean up some sound buffer allocation/deallocation issues. 2004-05-10 21:24:30 +00:00
andy
7ceb85d454 Changes to get FlightGear (well, the src directory at least) to
configure and compile out-of-the-box on a MinGW target:

Use -lSDL instead of -lglut32 on windows builds when --enable-sdl
is set.

Link against alut.dll in addition to openal32.dll.

Replace BSD bcopy() with ANSI C memmove() in a few places.  This is
simpler than trying to abstract it out as a platform dependency in a
header file; bcopy() has never been standard.

The ENABLE_THREADS handling has changed to be set to 0 when threads
are not in use.  This breaks expressions like #ifdef ENABLE_THREADS.
Replace with a slightly more complicated expression.  It might have
been better to fix the configure.ac script, but I didn't know how and
this whole setting is likely to go away soon anyway.

The MinGW C runtime actually does include snprintf, so only MSVC
builds (and not all WIN32 ones) need _snprintf in JSBSim/FGState.cpp

Building on a platform with no glut at all exposed some spots where
plib/pu.h was being included without a toolkit setting (it defaults to
glut).  Include fg_os.hxx first.

And when still using glut, glut.h has a bizarre dependency on a
_WCHAR_T_DEFINED symbol.  It it's not defined, it tries to redefine
(!!) wchar_t to disasterous effect.
2004-04-30 00:52:11 +00:00
curt
0483333a6b Get ATIS voice working again. 2004-04-26 22:02:30 +00:00
curt
df472fe0f5 Changes to go along with small interface changes in simgear/sound/libsgsound
(which is now written on top of OpenAL.)
2004-04-24 19:28:12 +00:00
daveluff
7019fcdc15 Fix a seg fault that could be caused if all no AI models were in existance. Ssg could then free the memory pointed to by our pointer behind our back, causing it to crash when next approaching a controlled airport requiring an AI model. Fix is to hold one ref to each model in the AIMgr at all times. 2004-04-11 15:20:36 +00:00
ehofman
34b0b5220c Windows fix. 2004-04-06 14:25:33 +00:00
andy
941f99308d Oops. A change to an upstream header seems to have remove glu.h, which
these files require.  Dunno why my build didn't pick up the transitive
dependency.
2004-04-06 03:51:11 +00:00
andy
c0b4531d04 Yank out all the glut dependencies and concentrate them in a (easily
reimplementable) Main/fg_os.cxx file.
2004-03-31 21:10:32 +00:00
daveluff
e1d1bdc1da A few abs->fabs where we are passing a double in 2004-03-29 10:25:21 +00:00
daveluff
0bea768f24 Patch from Fred Bouvier to use multi-platform ul library from plib for directory searching instead of ifdefs 2004-03-29 10:20:19 +00:00
daveluff
e8ccfb6d20 Round millibars to nearest whole number, and make inches default even in UK until the altimeter on the panel gets a millibar adjuster 2004-03-24 00:28:52 +00:00
daveluff
b6d30b7224 Convert altimeter to millibars for the UK 2004-03-23 23:36:27 +00:00
daveluff
a8b25e57ff Add altimeter to the ATIS. Always does inches at the moment. 2004-03-23 23:25:37 +00:00
daveluff
22d8f5a72c Fix another possible ATC stackdump 2004-03-22 22:09:47 +00:00
daveluff
7e395b47b7 Fix some warnings 2004-03-22 20:57:27 +00:00
daveluff
e2c4a83040 Some more tweaks to the landing clearance code 2004-03-20 04:12:05 +00:00
daveluff
db2ef57049 Delay deletion of AI traffic until after it has had time to release the frequency after its last transmission. This is a bit of a band-aid for more deep-seated problems with the dialog model, but it will solve some problems for now 2004-03-20 03:13:29 +00:00
daveluff
80761c515e Release the frequency after finishing a transmission 2004-03-20 02:56:13 +00:00
daveluff
fc36c51e89 Slightly more robust handling of runway vacation 2004-03-20 02:55:25 +00:00
daveluff
4d25095e76 Convert some char* return types to string 2004-03-19 13:46:15 +00:00
david
25290c4467 Remove the old WeatherCM module. 2004-03-16 20:19:07 +00:00
daveluff
738b81dc49 Fix a possible crash 2004-03-16 10:35:29 +00:00
daveluff
1347ca930f Work around for the AI-traffic due to precision issues generated by the radio frequency dialog 2004-03-15 11:14:03 +00:00
daveluff
ead3dd3d5c Don't clear the user to land following downwind report if there is other traffic on final to land first - instruct the user to follow the other traffic and clear the user to land once the other traffic is clear of the runway instead. 2004-03-12 15:59:14 +00:00
daveluff
9e968eaec7 Fix a situation where the AI aircraft sometimes wouldn't be visible when they should 2004-03-12 15:58:00 +00:00
daveluff
7a044b3faa Start adding a better framework for ATC-initiated communication. There should be no user-visible change from this commit 2004-03-10 16:01:17 +00:00
daveluff
1e3a4f312b Add an option for the user to inform the tower (s)he is going around after downwind or final has been reported 2004-03-09 16:20:55 +00:00
daveluff
82ec72da84 Start making the AI traffic robust to not getting a tower pointer from ATC. Eventually this should also lead to being able to generate AI traffic at uncontrolled airports 2004-03-06 14:44:38 +00:00
daveluff
4c84d11862 Use the airport elevation instead of the actual ground elevation when out of visible range of the user. This should reduce thrashing / pollution of the tile cache. 2004-03-05 16:24:04 +00:00
daveluff
f8ef6d16b4 Fix a crash that sometimes occurred when reporting downwind in the circuit 2004-03-05 12:34:08 +00:00
daveluff
406c7d7042 Fix a problem where track would not get initialised to a sensible value before getting altered 2004-03-04 10:11:29 +00:00
daveluff
9773ba5542 Move the mechanics of turning out of the derived classes into AIPlane. The user-visible effect is that AI planes no longer suddenly change direction without turning properly. 2004-03-02 10:43:16 +00:00
daveluff
cb8db7725a Don't cast string to c_str before passing to functions that take string, and remove an inadvertant push onto the airport_atc_map of data that already exists on it 2004-03-02 10:37:38 +00:00
daveluff
e4859c1fbf Return the closest match instead of the first in-range match when searching by frequency 2004-03-01 13:49:47 +00:00
daveluff
dcf8d93852 Make sure at least one Transform() is performed to set the model position *before* first calling DoGroundElev() in order to avoid polluting the tilemgr with bogus tiles 2004-02-04 17:00:19 +00:00
daveluff
129a9fabe2 Oops - no 3D model assigned to aircraft starting at airports with logical networks 2004-02-04 16:59:04 +00:00
ehofman
4fb5e61162 MSVC fixes 2004-01-26 20:06:03 +00:00
daveluff
845ba951e4 Melchior found another way to crash it 2004-01-23 18:38:02 +00:00
daveluff
a739fad664 Lots of changes to the ATC/AI system for initial revision of random AI GA VFR traffic 2004-01-23 17:18:24 +00:00
daveluff
afb654a068 Initial revision of class for AI VFR GA traffic 2004-01-23 17:16:15 +00:00
daveluff
4fa02012dc Don't loose the elevation in ATC projection conversions 2004-01-23 17:14:08 +00:00
andy
439a9fa1e4 Minor API changes to support the new sg_geodesy implementation. A few
places now use sgCartToGeod() instead of rolling their own
approximation.  And YASim is now using exactly the same 3D coordinate
system as the rest of FlightGear is.
2003-12-19 02:42:32 +00:00
david
d296e5a7df Use proper logging facility, and lower the priority of some of the
logging messages.  This is part of an effort to make FlightGear a bit
quieter during normal operations.
2003-11-24 17:45:35 +00:00
daveluff
a8c7af79ab Fix a nasty bug whereby non-scrolling ATC messages longer than the screen width were not rendered at all. They are now rendered with the end clipped - that can be fixed later. 2003-11-19 10:16:26 +00:00
ehofman
f3bb344f4e MSVC fix 2003-11-14 09:41:31 +00:00
ehofman
e6cd7a0ed7 Add Manuel Bessler and Stephen Lowry's remote joystick code and add David Magginson's 3dconvert utility 2003-11-12 10:06:18 +00:00
daveluff
e77a6e4d3d Re-commit the changes that I inadvertantly committed as cvsguest 2003-11-09 14:01:50 +00:00
curt
e07b153321 Someone managed to commit changes as cvsguest, return to the original
version.  These changes need to be added via the proper channels.
2003-11-09 00:46:56 +00:00
daveluff
430a44a803 Further progress towards interactive ATC 2003-11-05 17:24:58 +00:00
daveluff
6162d4462b Further progress towards interactive ATC control 2003-11-05 10:06:57 +00:00
cvsguest
f4b3bad58e Fix a nasty bug - FGATC::SetDisplay() should be called *after* FGATC::Init() since display is often initialised to false in the init routine. Also some other bits and pieces. 2003-11-05 10:02:34 +00:00
cvsguest
c2983d61bc Set the message display delay to default to zero 2003-11-05 10:00:46 +00:00
daveluff
29fa5ce8ec Fix a typo in the comments 2003-11-04 12:00:36 +00:00
daveluff
a5014c67a8 Start supporting user interaction callbacks and tweak the circuit eta calculation 2003-11-04 12:00:14 +00:00
daveluff
ed2e58d230 Rationalisation of the ATC popup dialog code - moved it all over to AK's dynamic list system and removed the hardcoded list code, extended the dynamic list system a bit, started adding support for callbacks from the user interaction 2003-11-04 11:54:42 +00:00
daveluff
8e904eb882 Cleaned up the ATC communication dialog code somewhat 2003-10-22 10:50:11 +00:00
daveluff
3d104940e9 Fixed up the freqency search dialogs properly - this should eliminate crashing and memory leakage 2003-10-21 11:44:43 +00:00
daveluff
2454446233 Fix a crash from the ATC Frequency dialog at the temporary expense of a small memory leak 2003-10-20 21:48:57 +00:00
daveluff
0adae696aa AI plane should go around instead of landing on user if user dawdles on runway now 2003-10-19 20:38:08 +00:00
daveluff
cd08f83aa5 Ug - must have been drunk when committing those two de-align lines! - this one works 2003-10-19 19:38:01 +00:00
daveluff
90c0f80b9a Quick hack to prevent offering an option that isn't implemented yet 2003-10-17 18:56:29 +00:00
daveluff
81c252e40e Remove some extraneous output, add a few comments, tidy a bit of formatting 2003-10-17 09:56:35 +00:00
daveluff
a28bf4d9ea Enhancements to AI plane transmissions 2003-10-17 00:31:47 +00:00
daveluff
2666ce81d9 Bug fixes to the AI/ATC interaction mechanism 2003-10-17 00:31:07 +00:00
cvsguest
8308d47e8d Report Final to tower control class in addition to displaying it 2003-10-16 16:06:54 +00:00
cvsguest
f742186633 Clear AI plane to land when it calls final if rwy clear 2003-10-16 16:06:22 +00:00
ehofman
0e370e6e28 Fix a problem where older IRIX compilers needed a typecast for certain opperations 2003-10-16 14:14:03 +00:00
daveluff
7105d2029a Remove some cruft, and add a short TODO list 2003-10-16 11:28:44 +00:00
daveluff
0cb2aeffbd Bug fix: derived classes were never getting a chance to respond to the towers landing intention query properly 2003-10-16 11:12:37 +00:00
daveluff
de24524acb Transmit an empty string in order to trigger AI/ATC interation mechanism. TODO - transmit the correct phraseology. 2003-10-15 21:51:12 +00:00
daveluff
d0d70bebd7 Move responding to a plane announcing itself at hold short over to the response mechanism. Beware that a particularly nasty assumption that only one plane is ever holding for the runway at once remains for now though. 2003-10-15 21:50:05 +00:00
daveluff
ca766f9aac Use MHz when stating freqency on-air and call the base class update for response time handling 2003-10-15 14:11:50 +00:00
daveluff
3610b0235c Tweaks to use the ATC/AI interaction framework and respond to downwind report with position in circuit 2003-10-15 14:10:30 +00:00
daveluff
c76dd941f4 Tweaks to use the ATC/AI interaction framework 2003-10-15 14:09:26 +00:00
daveluff
d5d9723d9b Tweaks to the ATC/AI interaction framework 2003-10-15 14:06:28 +00:00
daveluff
6d1418ff12 Refactoring - no actual change 2003-10-14 11:10:17 +00:00
daveluff
6769d7974c Display AI plane transmissions if comm2 is tuned to the same frequency 2003-10-14 11:09:10 +00:00
daveluff
331954ff6f Tidy the recent freq display code somewhat 2003-10-13 11:30:40 +00:00
daveluff
800510ed58 Fixed a bug where an ATC station on one channel wouldn't stop transmitting when deselected if another type of ATC at the same airport was tuned on the other channel 2003-10-11 18:10:28 +00:00
daveluff
eb0b8ad47c Add a constant holding the number of different ATC types 2003-10-11 18:08:45 +00:00
daveluff
497559f2ba Clarification of function comments in header file 2003-10-10 15:14:09 +00:00
daveluff
d43b6fd508 Added ATC frequency lookup dialog 2003-10-10 15:13:16 +00:00
daveluff
9e66194dca Fix a possible endless loop due to insufficient space in a char array for some messages 2003-10-09 21:37:26 +00:00
daveluff
9d3d4ecc51 Missed a cout 2003-10-09 12:12:09 +00:00
daveluff
70cd48b5b1 A few bug fixes to Alexanders approach vectoring code to get it to work and display instructions 2003-10-09 11:54:09 +00:00
daveluff
2d89960a20 Reformat a function to get rid of tab-space mixture and remove some old commented out code that now lives in ATCDialog.cxx 2003-10-09 11:53:28 +00:00
daveluff
f8d1a58d64 Don't do AreaSearch in ATCmgr since nothing really needs it at the moment plus a couple of bug fixes to frequency search handling of approach 2003-10-09 11:52:42 +00:00
daveluff
b84cf7c3af Oops - a boo boo of monumental proportions completely took ATC off the air... 2003-10-07 16:05:20 +00:00
daveluff
824f78f255 Formatting changes 2003-10-07 13:01:18 +00:00
daveluff
1a2ee0a908 Remove unimplemented options from the ATC dialog for now 2003-10-07 12:26:28 +00:00
daveluff
c89ea44131 Further progress towards AI/ATC dialog 2003-10-06 22:40:37 +00:00
daveluff
380c69c8a0 Progress towards AI/ATC communication without speaking all at once 2003-10-06 15:20:47 +00:00
daveluff
ea0751eaa2 Minor formatting changes 2003-10-06 15:19:42 +00:00
daveluff
62854c99a6 Removed some extraneous output 2003-10-06 14:09:59 +00:00
ehofman
980012e168 Move FGEventMgr and FGSubsystemMgr over to SimGear, add SGEventMgr to FlightGear's globals structre and some small code cleanups 2003-09-24 17:20:55 +00:00
daveluff
56a0477f76 Fix a nasty bug whereby the AI plane would descend far too early on the circuit following a touch-and-go 2003-09-23 21:01:02 +00:00
daveluff
d9958c7710 Get rid of some cruft 2003-09-23 15:02:12 +00:00
daveluff
6665dcce82 Implement two convienience functions. 2003-09-23 15:01:53 +00:00
daveluff
9bba532487 Another small, incremental step towards interactive tower control. 2003-09-22 23:57:57 +00:00
daveluff
0d9ea4d27c Fix a compiler warning 2003-09-22 23:56:09 +00:00
daveluff
2b459ebb3f Slightly more appropriate callsign for C-FGFS. These options still don't do anything at the moment mind! 2003-09-22 23:55:46 +00:00
daveluff
c0137d93af Return landing type 2003-09-22 23:54:41 +00:00
daveluff
98a752d9e7 Return landing type. Simple AIPlane always returns full stop for now - more advanced classes are expected to override this if required. Also give some enums an ostream operator 2003-09-22 23:53:56 +00:00
daveluff
adce42cef6 Return position 2003-09-22 23:52:25 +00:00
daveluff
6e73e7dc08 Further progress towards interactive tower control. Very much an initial stab at a first iteration of a tricky problem, ie don't look too closely - some of it is ugly! 2003-09-19 16:51:27 +00:00
daveluff
bac252c23d Reduce taxiing speed a fraction 2003-09-19 16:48:58 +00:00
daveluff
8acea57ad2 Add an overloaded function 2003-09-19 16:48:27 +00:00
daveluff
ca230a7cf3 Remove a couple of extraneous lines. 2003-09-19 09:38:22 +00:00
ehofman
19b61eec1e Fix a model loading problem 2003-09-17 09:44:37 +00:00
daveluff
d3b7c2ac10 Fix a couple of bugs that resulted in ATIS not being heard at airports with AI traffic active 2003-09-05 13:58:51 +00:00
daveluff
b898c5e4ff Change the start of descent point of the AI plane when the circuit has been extended when following previous traffic - it should not land short now, although it can land a way down the runway if start of descent should occur during a turn, since it doesnt start descending until the turn is finished 2003-09-05 10:26:11 +00:00
daveluff
be274df23b Guard against update(...) getting called before init(...) 2003-09-05 10:23:20 +00:00
daveluff
1520fd648e Output a few properties for AI code devel convienience - probably temporary 2003-09-05 10:22:18 +00:00
daveluff
3f162abf09 Whitespace cleanup 2003-09-05 10:21:29 +00:00
curt
e6859e4fe0 Redo the runway database scheme to use a flat/ascii file and load the entire
database into memory at the start.  This should completely eliminate any
dependencies we have on metakit.
2003-08-29 04:11:23 +00:00
curt
6665d7d609 Remove one dependence on MetaKit. 2003-08-28 20:53:08 +00:00
curt
b4d0b6dcd4 Fix a property name spelling error. 2003-07-31 01:41:46 +00:00
daveluff
a714849cbd Initial stab at making the AI plane take the user into account when flying a circuit. The AI plane will now delay it's turns to the various legs if the user has flown a wider pattern that it normally would in front of it. However, this is very much still work in progress - when the pattern gets extended the AI plane lands short of the runway, and it doesn't alter its speed around the circuit at all, only the turn positions. Still, its a start... 2003-06-11 21:49:46 +00:00