1
0
Fork 0
Commit graph

149 commits

Author SHA1 Message Date
portree_kid
ee63507f22 Code to stop loading of invalid flightplans 2015-02-12 22:09:45 +01:00
Torsten Dreyer
e46ab5faa3 Optionally use SCREEN_SIZE_PIXEL for LOD
This patch enables AIModels to use the size on the screen for LOD instead
of distance from eye point.
With /sim/rendering/static-lod/ai-range-mode-pixel set to true
/sim/rendering/static-lod/ai-detailed now contains the minimum size of the
model on the screen to be displayed. Values of 10-50 seem to make some sense.
2014-11-19 17:26:58 +01:00
Clément de l'Hamaide
41865b15c9 Improve <usage> tag feature
- Introduce a new LOD: ai-interior
- Load a <model> with <usage>interior</usage> on-demand
- Avoid to load the cockpit of players in MP
- Default LOD is 0.0 - 50.0 meters
2014-09-21 22:11:35 +02:00
James Turner
876e81edbd AIModels use PagedLOD
- allows AIModels to be unloaded by the Pager
- move AI models into the 'models' sub-branch of FGScenery
2014-02-24 19:43:20 +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
Clément de l'Hamaide
695a9be75d Use --fg-aircraft paths for AI model
Firstly search model in $fg-root/AI/ path,
if not found, search model in --fg-aircraft paths,
if not found, search model in $fg-root/Aircraft path

This commit should solve the complaint "I have an aircraft in a separate Aircraft/ folder
but during MP session other user are shown with the aircraft from the $fg-root/Aircraft path
instead of this behaviour I want to see the aircraft from my separate Aircraft/ folder"
2014-01-21 00:13:17 +01:00
James Turner
b4b0d635bd Reset: AIbase, drop references 2013-11-16 12:10:53 +00:00
James Turner
33425c671d Support for multiple data dirs. 2013-09-17 07:47:58 +01:00
Thomas Geymayer
8f1df6c358 Helpers to clone SGModelData
This is needed for latest SimGear to fix scene model
unload not being called
2013-04-01 13:40:51 +02: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
d70e26d87b Don't duplicate userpos in in AIObjects. 2013-03-16 16:53:12 +00:00
James Turner
7b663cd7f7 Split huge NasalSys header apart. 2013-02-09 15:33:05 +00:00
ThorstenB
b8a3d6902e Stop AI aircraft's sound when removing
Sound manager keeps a reference to _fx, so reducing its ref-count isn't
enough - it must be removed explicitly.
2012-11-27 00:02:28 +01:00
ThorstenB
bb494e52e5 Performance improvement: pass (const) strings by reference
to avoid copying actual string data around.
2012-11-24 11:59:13 +01:00
ThorstenB
1827825fcb Clean up namespace issues
avoiding "uses..." in header files.
2012-11-23 21:16:08 +01:00
James Turner
bcea720db3 Make the sound-manager optional in a few places. 2012-10-01 10:10:34 +01:00
Mathias Froehlich
26664aaff0 Push SGMaterial use into these classes that need it. 2012-08-29 06:29:29 +02:00
Mathias Froehlich
e3ad3d3a07 bvh: Adapt to upstream bvh changes in simgear. 2012-08-24 21:24:12 +02:00
ThorstenB
df4ccc3b88 Debug message about loaded AI models. 2012-07-15 10:15:53 +02:00
Frederic Bouvier
75fc136931 Remove redundant inclusion of math/SGMath.hxx 2012-05-05 11:20:04 +02:00
ThorstenB
d683d39e85 Fix SceneryPager destruction sequence.
SceneryPager singleton must not be removed while FGScenery is still alive,
so hold a reference to it in FGScenery, saving the pager from being
deleted first.
2012-04-15 15:30:44 +02: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
578df0f484 #553: decouple OSG callbacks from Nasal subsystem 2012-02-06 22:19:33 +01:00
ThorstenB
246feef85f #553: MP-model-loading related segfault
MP aircraft are loaded by a separate OSG thread (introduced after FG2.4.0).
The OSG thread also calls the "modelLoaded" callback. However, we mustn't
allow the OSG thread to call FGNasalModelData::modelLoaded directly:
FGNasalModelData isn't thread-safe. There are obvious issues (_callCount++;),
tricky issues like calling the Nasal _parser_ or creating hashes and
modifying the global Nasal namespace. It doesn't use locks to protect
against another thread executing a Nasal context or running garbage
collection. It also executes Nasal code itself (the model's "load" hook),
which we also cannot allow in a separate thread...
This patch returns all Nasal parts of MP-aircraft loading (parsing,
module creation, execution) to the main thread, while keeping the
multi-threaded OSG part (loading of MP-aircraft model files itself).
The same issue exists with scenery models (see other commit).

To summarize with 2 words: It s*cks... ;-)
2012-01-08 13:28:49 +01:00
Erik Hofman
c78b7e1abb Remove AI prefix for the sound path and add it to the config files instead 2011-12-14 12:45:22 +01:00
ThorstenB
444720f62d Avoid useless warnings during FG startup.
Do not warn about missing scenery manager, unless it is really needed.
Also raise warn level for multiple init calls.
2011-12-09 17:19:45 +01:00
ThorstenB
826107f132 #510: Fix disappearing AIShips.
Untangle AI reinit and init methods. Some code in init hooks expects to be
called once only. Derived classes should not redirect their reinit to init,
even if this seems fine for the methods of the derived class itself. This
also triggers the init methods of all base classes, which may not expect
multiple calls to their init methods (or to "init" on "reinit").
2011-12-09 17:06:19 +01:00
ThorstenB
bfb0619f76 Fix memory leak with FGAIModelData.
Be lazy and use ref pointers - to remove memory automatically.
2011-12-09 17:03:14 +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
Erik Hofman
831f81d97c Properly construct a string from another string and an integer, use a relative path for sound construction, allow enable/disable aimodel sounds using /sim/sound/aimodels/enabled 2011-12-03 14:40:48 +01:00
Erik Hofman
99bb79c7d5 Properly remove FGFX classes when not needed anymore 2011-11-27 15:10:44 +01:00
Erik Hofman
f89ad9baf0 Move some code from the header file to the source file. 2011-11-27 13:48:04 +01:00
Erik Hofman
ebcc6359b9 Initials sound support for AI models. 2011-11-25 13:39:10 +01:00
Erik Hofman
04395fa9a5 Postpone initialization of the avionics soundgroup until avionics are enabled. This prevents AI classes from creating new and unnecessary avionics sample groups. 2011-11-20 15:31:58 +01:00
Erik Hofman
9e1121fc4c First implementation of sound effects for AI models. 2011-11-20 15:05:37 +01:00
ThorstenB
1eb8d0caa4 #424: Don't page out AI objects. Just load lazily.
Changes commit 1e7d072eed and uses the new
deferred loading - instead of paged (un)loading.
2011-11-10 22:12:54 +01:00
ThorstenB
b16338598a Use more specific log classes.
Log class filters work better when different modules
use different classes :).
2011-10-11 21:55:50 +02:00
ThorstenB
53e6c0ac5f Reduce AI/MP lags when removing models
Move load of removing OSG objects to the OSG pager thread
2011-10-11 21:43:24 +02:00
ThorstenB
3451012bca Make LOD properties of AI/MP aircraft run-time configurable. 2011-10-03 12:01:58 +02:00
Torsten Dreyer
1e7d072eed Add LOD to each AI model
Add a LOD (range animation) to each AI model if the property
/sim/rendering/static-lod/ai is set to any number greater than
zero. AI models get loaded but only displayed when closer than
the number given in the property (in meters).
If the property is absent or it's value is less or equal 0.0
than no LOD is added to the AI model.
2011-08-09 18:02:37 +02:00
ThorstenB
c19664291f #221, #242: Fix/work-around for AI traffic issues
Move the disable-HOT feature from the MP aircraft to the a/c base class,
disable HOT for all AIaircraft, since that's a fix/work-around for
#242: AI aircraft respect the user a/c only when HOT is _disabled_ for them
#221: AI aircraft don't stack at parking positions when HOT is disabled
Also generally disables HOT for ballistic and other models (suggested by vivian),
allowing it for ship/carrier models only.
2011-06-25 20:44:44 +02:00
ThorstenB
133cfbfa7f Fixed several compiler warnings
uninitialized or unused variables, init sequence, ...
2011-02-02 22:05:54 +01:00
ThorstenB
6eadcb8dfc Fixed AIplane vertical speed.
Fixed reversed fps-fpm conversion.
2010-12-29 21:17:46 +01:00
ThorstenB
e5348b67a5 New property identifying missing MP planes
Provide "model-installed" property at MP planes for pilot list.
Avoid direct directory access in Nasal (aircraft installed check).
2010-11-13 16:29:34 +01:00
James Turner
0d7769ae72 Search aircraft dirs when loading AI models. Thanks to Thorsten Brehm for the catch. 2010-10-20 00:07:54 +01:00
Csaba Halasz
141186a358 Merge branch 'next' into vivian
Conflicts:

	src/AIModel/AIBallistic.cxx
	src/AIModel/AIBase.cxx
2010-09-30 00:45:13 +02:00
Vivian Meazza
10866851de Add join manoeuvre/command to AIWingman. Rationalize more methods. Fix some more bugs 2010-09-30 00:34:15 +02:00
Durk Talsma
df00df3feb - Fix compiler warnings. 2010-09-27 17:48:38 +02:00
Vivian Meazza
1dc3ecf016 Make AI Objects of type Wingman, Escort, and GroundVehicle able to be stationed or formated to any AI Object type which can be named - Carrier, Ship, Tanker, Wingman etc.
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2010-09-17 21:44:58 +02:00
Vivian Meazza
f08012d14f Remove debugging statement.
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2010-09-17 21:44:58 +02:00