1
0
Fork 0
Commit graph

627 commits

Author SHA1 Message Date
onox
9f452408c7 Small refactoring of Torsten's refactoring
Signed-off-by: onox <denkpadje@gmail.com>
Signed-off-by: Erik Hofman <erik@ehofman.com>
2015-05-18 12:35:00 +02:00
Torsten Dreyer
90622b6873 Small refactoring of the submodel patch from onox
Signed-off-by: onox <denkpadje@gmail.com>
Signed-off-by: Erik Hofman <erik@ehofman.com>
2015-05-18 12:34:56 +02:00
onox
0e28621051 Use InputValue for yaw-offset and pitch-offset
Signed-off-by: onox <denkpadje@gmail.com>
Signed-off-by: Erik Hofman <erik@ehofman.com>
2015-05-18 12:34:52 +02:00
Durk Talsma
8e2d0d2a76 Reinstate the backbone of the "I" part of the Interactive traffic system. 2015-05-15 13:30:16 +02:00
Durk Talsma
dbde1f2232 Some preparatory work for reinstating a missing piece of code in the routing algorithm for the AI system. 2015-05-14 18:22:42 +02:00
Torsten Dreyer
92e6e25d33 Fix "Error in ground network. Failed to find first waypoint"
Fix provided by Jens Thoms Toerring, OK'ed from Durk
http://thread.gmane.org/gmane.games.flightgear.devel/77674
2015-04-21 13:05:41 +02:00
Torsten Dreyer
0758cfbd65 Conditionally enable hot for multiplayer models
originally from denk padje alias onox
2015-04-16 20:58:56 +02:00
James Turner
f2d6b76b13 Portability: Fix compile errors on MSVC (cmath)
From Scott (xDraconian)
2015-03-24 11:11:42 -05:00
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
Thomas Geymayer
c5c0a7dcf3 AIShip: remove duplicate property tie. 2014-07-12 11:54:47 +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
Christian Schmitt
ae8ddd04d9 [AIModel] Fix a crash when starting at the poles and reduce property reading 2014-02-05 17:51:28 +01: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
061154d7a6 Reset, fix Nasal timers added on shutdown. 2014-01-13 20:13:34 +00:00
James Turner
0940a33907 Use a real function to wrap isfinite differences.
Don't worry about compiler ability to inline the macro for the moment;
use a real function to ensure lookup is stable on different compilers.
2013-12-22 11:18:48 +00:00
James Turner
c717b70231 Support non-C99 mode in MSVC. 2013-12-21 15:31:27 +00:00
James Turner
b3dbfe21fe Fix some warnings from new Xcode.
finite is deprecated, use C99 isfinite as recommended.
2013-12-20 12:42:12 +00:00
janodesbois
71fa329f27 velocities/uBody got a capitale B forgot this in mp tree, maybe it would be better to male it it lower case? 2013-12-04 21:13:09 +01:00
James Turner
b4b0d635bd Reset: AIbase, drop references 2013-11-16 12:10:53 +00:00
James Turner
ea822a99e1 Fix some warnings identified by Clang
_ unused private members. Removed in most cases, commented
out in a couple of cases where it feels as if the code might be used in the future.
2013-11-16 09:41:33 +00:00
James Turner
0751556aab Reset: remove commands 2013-11-12 22:47:46 +00:00
James Turner
e62a4f502a Reset: AI shutdown unbinds AIbase instances. 2013-10-29 23:02:22 +00:00
janodesbois
f08ea4a7bb velocities/u,v,wbody-fps are exposed in the property tree for the mp planes, extracted from motionInfo 2013-10-27 19:32:58 +01:00
James Turner
cc23e29ef0 Fix warning 'AI Aircraft without FlightPlan'
Remove the false warning when using AI Aircraft without a flightplan.
This is (it turns out) a supported use case.
2013-10-26 18:45:27 +01:00
James Turner
f5b352429c Bug 1176, crash loading malformed scenario.
http://code.google.com/p/flightgear-bugs/issues/detail?id=1176

Don't crash if a scenario specifies a missing or invalid flightplan
(check the flightplan is valid before setting it)
2013-10-01 19:57:07 +01:00
James Turner
52e5a9abe8 Reduce amount of log output at level=debug. 2013-09-28 14:47:20 +01:00
James Turner
33425c671d Support for multiple data dirs. 2013-09-17 07:47:58 +01:00
Christian Schmitt
9a7e32d4a9 fix uninitialized variable reported by valgrind 2013-09-15 15:09:43 +02:00
James Turner
38a373ba84 Display AI traffic route in map.
Add some helpers so MapWidget can show the
origin and destination of AIAircraft with a FlightPlan.
2013-09-14 12:17:33 +01:00
James Turner
be44fa45eb Kill some defunct uses of side-slip property. 2013-07-29 22:15:23 +01:00
James Turner
0904017ec5 Couple more unused private vars killed off. 2013-07-27 14:49:27 +01:00
James Turner
5d9faee463 More unused vars caught by Xcode. 2013-07-04 20:56:04 +01:00
James Turner
6acf1c12fc Fix unused private vars.
Xcode is warning about these, they're a mixture of
copy-pasted code, evolved use (e.g. using a property
node to store state), and so on.
2013-07-04 20:24:56 +01:00
James Turner
a65f24c137 Bug 1153, guard against no current waypoint.
This is a work-around, probably indicates some glitch in the traffic
module flight-plans. Avoid a crash, also refine the exception logic
so individual AI objects can fail.
2013-07-04 10:30:04 +01:00
James Turner
081240c4da Issue #631, reset scenarios on sim-reset 2013-06-20 00:24:33 +01:00
James Turner
c242809a3c Fix for AIAircraft headings.
Nick Vatamaniuc: fix AI aircraft not updating waypoint headings when using custom flightplans.

(Commented out log-line following a non-parenthesised if() test causing problems)
2013-06-03 16:48:40 +01:00
James Turner
85bfd27af2 Non-sticky scenarios, simpler UX for everyone.
If you want a scenario in a particular session of the sim, ask for
it on the command line / config files, or enable in the GUI.

Note if you had previously 'sticky' scenarios in your autosave.xml, you
will still get them until you clean your autosave, or disable them in
the GUI.
2013-04-05 17:20:22 +01:00
James Turner
295ae6a650 Tweaks for run-time scenario toggling. 2013-04-02 18:00:31 +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
4d144dfbf2 Allow scenarios to have load/unload scripts.
This makes it possible for the balloons scenario (for example) to
work correctly with dynamic loading and unloading.
2013-03-28 16:50:55 +00: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
c2546a431d Make units of a function explicit. 2013-03-27 23:31:22 +00:00
James Turner
96a40fe70c Commands to control scenarios / AI-objects.
New commands allow runtime scenario loading and unloading, and AI object creation and removal at runtime.
2013-03-16 16:53:12 +00:00
James Turner
4a84ea0bc4 AIManager scenario tweaking. 2013-03-16 16:53:12 +00:00
James Turner
d70e26d87b Don't duplicate userpos in in AIObjects. 2013-03-16 16:53:12 +00:00
Thomas Geymayer
4b573ebd13 Start porting NasalPositioned to cppbind.
For now it is available in the positioned Nasal
module. FGAirport is fully ported, but especially
procedures/navaids and free functions are still
missing.
2013-03-04 19:24:47 +01:00
Thomas Geymayer
45e3b7e2d1 Clean up/prepare for porting NasalPositioned to cppbind 2013-03-04 16:31:37 +01:00
James Turner
1eb8ae1fbf Give the FGAirport class a sane filename.
simple.[cxx|hxx] -> airport.[cxx|hxx]
2013-02-21 11:32:02 +00:00
James Turner
7b663cd7f7 Split huge NasalSys header apart. 2013-02-09 15:33:05 +00:00
Christian Schmitt
2013f7149d Some headers missing... ;) 2013-02-07 19:00:54 +01:00
ThorstenB
a28fe51ccf Fix FGAIFlightPlan waypoint issues
Iterator must be reset after clearing waypoint list.
Deleting "*waypoint.end()" doesn't delete the last waypoint (end()-1
does - it is never actually used though).
2012-11-27 21:02:32 +01: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
7ed8b625c9 Fix a couple of 64-bit warnings identified by GCC.
PositionedID is of "int64_t", which depends on platform: apparently it is
"long long int" for Mac (requiring %lld format), but it is "long int" for
64bit Linux (requiring %ld). To avoid a "compiler warning fix commit
war" ;-) use a type cast to the longest common type (long long int).
2012-11-26 00:23:10 +01:00
James Turner
63c95642c8 Work on AIAircraft gear animation.
Inspired by Harald's patch, attempt to get AI models show realistic gear animations. Unfortunately AI models seem to be ignoring the gear properties, so keeping the code disabled until I can trace down why.
2012-11-25 21:37:15 +00:00
James Turner
979ca55197 Fix a couple of 64-bit warnings identified by Clang. 2012-11-25 21:35:17 +00:00
ThorstenB
1c6643d7ac traffic: more pass by reference + member init 2012-11-25 16:41:10 +01:00
ThorstenB
f0778a110b MSVC compile issues. 2012-11-24 13:33:36 +01:00
ThorstenB
ff49cd7acf AIFlihtPlan: Proper member initialization
(i.e. "isValid" needs to be initialized unconditionally)
2012-11-24 13:30:00 +01:00
ThorstenB
439ad4a7c8 Traffic performance: cache track length
Track length is calculate every iteration/for every aircraft. Since some
tracks have hundreds of waypoints, calculation is slow. Cache the
track length between the waypoints ahead, so it rarely needs to be
recalculated.
2012-11-24 12:06:20 +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
ThorstenB
4a53002784 Fix compiler warning with sprintf format
since PositionedID is "long int", not "long long int".
2012-11-23 21:16:07 +01:00
James Turner
bca6e9e890 Break upwards dependency on Traffic in the AI code
AIManager had unfortunate code to pass some state to the traffic-manager; this is no longer required since traffic schedules hold onto their AI-Aircraft directly as needed.
2012-11-21 14:49:34 +00:00
James Turner
77ca03da4d AIManager cleanups, no functionality change. 2012-11-21 14:03:17 +00:00
James Turner
afcdbd3158 Overhaul the ground-net / parking code.
Use the nav-data-cache to cache groundnet information, including
parking positions and the taxi-node graph.
2012-11-08 09:07:05 +00:00
James Turner
c79e2465df Traffic improvements.
Make landings and takeoffs look more correct; tweak climb-out and touchdown phases in particular, so the turn to destination heading occurs earlier on climb out, and touchdown occurs close the GS transmitter / some distance down the runway from the beginning.
2012-10-30 15:43:54 +00:00
James Turner
7c8ad455a3 PerformanceDB improvements.
Support cascading (inheriting) performance data, so common values don't need to be repeated.
2012-10-29 10:01:52 +00:00
Anders Gidenstam
a44acfa875 merge-requests/1566: Adjust indentation. 2012-10-12 23:48:09 +02:00
Vivian Meazza
bbea07e8b1 Bugfix: correct calculation of range and realtive bearing when parent is not the main model.
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2012-10-12 23:45:56 +02:00
James Turner
607e7d7bf3 Use an SGGeod inside FGAIFlightPlan::Waypoint.
This allows incremental refactoring to move away from discrete lat/lon use in favour of SGGeod.
2012-10-08 15:52:06 +01:00
James Turner
7d547d1287 Make traffic take-off roll look a little better.
Expand the performance DB logic to support aliases, and select based on aircraft type as well as class. This allows to introduce some variation into AI traffic performance. Change the initial climb-out waypoints to use pitch-hold until passing 3000', which looks much more convincing
2012-10-05 18:12:46 +01:00
James Turner
bcea720db3 Make the sound-manager optional in a few places. 2012-10-01 10:10:34 +01:00
James Turner
649d579124 Helpers to access view position.
Avoid direct use of FGViewer in various places, by providing property-based accessors to the current view position.
2012-09-25 10:06:56 +01:00
James Turner
b1ff365a8f Make FGTaxiNode and FGParking inherit FGPositioned.
In preparation for caching the groundnet in the NavCache, make taxi-nodes and parkings inherit from FGPositioned. As part of this, make them heap (as opposed to value) classes, disable their copy-constructors, remove many mutating operations, and give them real constructors.
2012-09-25 00:31:17 +01:00
James Turner
fb266722ba Parking: another segfault edge-case.
Again, when there's no parking/ground-net, tolerate this.
2012-09-24 00:36:47 +01:00
James Turner
66a6438de1 Avoid a segfault-on-null
This code is called both when there's no ground-net, but also when there's no parking data at all.
2012-09-23 23:07:00 +01:00
James Turner
b1854459b3 Clean up dynamics/parking handing code.
Refactor some parking / airport-dynamics APIs, in preparation for caching the ground cache data in the nav-cache.
2012-09-23 21:42:40 +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
James Turner
588eba658a Make some include dependencies explicit. 2012-08-22 00:07:53 +01:00
ThorstenB
a3e76909ee Christoph Korn/PlayDeb.net: fix typos 2012-08-17 23:51:30 +02:00
ThorstenB
df4ccc3b88 Debug message about loaded AI models. 2012-07-15 10:15:53 +02:00
James Turner
b0384d035f Remove remaining includes of simgear/waypoint 2012-05-11 23:49:12 +01:00
Frederic Bouvier
75fc136931 Remove redundant inclusion of math/SGMath.hxx 2012-05-05 11:20:04 +02:00
ThorstenB
0f462d4a6e Fix rpmlint/Linux packager complaints
about outdated/invalid FSF address in some license headers.
2012-05-05 01:42:41 +02:00
ThorstenB
b9260f543b Ganael Laplanche: fix include dependencies for FreeBSD support 2012-05-05 01:08:20 +02:00
ThorstenB
e59fabaf82 Clean-up some SGMath dependencies. 2012-05-05 00:56:29 +02:00
ThorstenB
3986e1fe3a Add separate switch to enable/disable AI scenario support.
Switch is enabled automatically when scenarios are given on command-line.
2012-04-30 19:04:49 +02:00
ThorstenB
9b51c5e87e #248: support enabling AI module at run-time
Also adapt MP and traffic module to enable the AI module when required.
This makes /sim/ai/enabled an internal property: it can default to false
(in future), and can be enabled as soon as any user-level feature (traffic,
MP, local weather, ...) requires it.
2012-04-30 17:26:04 +02:00
ThorstenB
89b41395d8 Move viewer-related sources to separate folder.
Simple source directory clean-up, so "Main" folder contains fewer stuff
and the list of files in the editors a lot shorter.
2012-04-25 23:28:00 +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
ffe7149b81 Don't call "exit" when reporting an error.
Add some more guards for missing way points.
Comment out some unused variables.
2012-04-12 19:38:32 +02:00
ThorstenB
c14343d02b AIFlightPlan: Initialize the same member variables in all constructors.
distance_to_go / lead_distance were not initialized in all constructors.
Fixes 'condition on uninitialized data' reported by valgrind.
Also comment-out unused vars.
2012-03-26 21:11:03 +02:00
ThorstenB
11a9bdf29e #548: segfault in AIFlightPlanCreate
check "tn != NULL" before calling tn->getGeod()
2012-03-25 10:34:07 +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