1
0
Fork 0
Commit graph

822 commits

Author SHA1 Message Date
James Turner
73463a3a98 Atmosphere: add ISA Mach conversion helpers
This is being added for use in FlightPlans, but replace equivalent
code in AIBallistic which showed up. As part of this, simplify 
AIbase.
2022-11-28 15:33:15 +00:00
portree_kid
ccf674e189 AI Prevent Segfault when aircraft gets bogus flightplan 2022-11-23 14:37:30 +01:00
Richard Harrison
bd4e7462ac Permit AI model to define basic submodel collision parameters.
AI models have rudimentary collision detection with submodels that performs two tests.

1. The height difference must be less than a defined amount
2. The centre point range must be less than a defined amount.

(2) above by itself would result in a spherical comparison; however (1) effectively modifies this to slice off the top and bottom of the sphere so that the sphere heigh is half of the value in (1).

Previously these heights and lengths were hardcoded - this change allows these to be defined in the xml instead using the <collision-length> and <collision-height> tags

e.g.
    <entry>
      <type>ship</type>
      <collision-length type="double">50</collision-length>
      <collision-height type="double">50</collision-height>
    </entry>

Default values:
+---------------+-------------+------------+
| Type          | Height(m)   |  Length(m) |
+---------------+-------------+------------+
| Null          |      0      |        0   |
| Aircraft      |     50      |      100   |
| Ship          |    100      |      200   |
| Carrier       |    250      |      750   |
| Ballistic     |      0      |        0   |
| Rocket        |    100      |       50   |
| Storm         |      0      |        0   |
| Thermal       |      0      |        0   |
| Static        |     50      |      200   |
| Wingman       |     50      |      100   |
| GroundVehicle |     20      |       40   |
| Escort        |    100      |      200   |
| Multiplayer   |     50      |      100   |
+---------------+-------------+------------+
2022-11-21 22:00:26 +00:00
portree_kid
95a274c135 Merge branch 'next' of ssh://git.code.sf.net/p/flightgear/flightgear into next 2022-11-20 21:55:32 +01:00
portree_kid
b8d173c3e4 #2358 AI Aircraft not taking off 2022-11-20 21:55:25 +01:00
Edward d'Auvergne
c1c7b043ac SGSubsystemMgr::get_subsystem(): Universal switch to the templated function.
The globals non-templated get_subsystem() helper function has been made private
to enforce the switch.
2022-11-17 15:57:39 +00:00
portree_kid
9b4bd6fdcb AI Better approach descent 2022-11-12 21:18:16 +01:00
James Turner
c6ed57d04b Fix an occasional traffic crash 2022-11-08 22:38:04 +00:00
portree_kid
e85e5d2e5b AI
* Parking on parking with right heading
* Leg 6 Descent improved (teardrop like entry)
* Inner/Outer tangents in VectorMath TODO Move to SG
2022-08-29 21:05:49 +02:00
portree_kid
ce7b5eb094 AI Aircraft not taking off because TowerController signOff was not called. 2022-06-20 21:32:52 +02:00
portree_kid
5a3528f782 Fix segfaults in AI code 2022-06-19 10:28:54 +02:00
portree_kid
d571bc6f76 AI Improvements
* Parking with point beyond parking so aircraft don't stop early
* Better approach routes (wait pattern)
* Extracting vector math from AIFlightplan
* More use of SGPositioned in ATC
2022-05-31 21:23:34 +02:00
Lars Toenning
2ccd9bfb30 [swift] Pass struct to updatePlanes() instead of multiple vectors 2022-04-06 07:53:51 +01:00
Lars Toenning
9ec7d6b855 swift cleanup 2022-04-06 07:53:51 +01:00
Richard Harrison
662dad0848 Fix MP Pilot List disappearing
Ensure that lag/lag-mod-averaged is created and set to a valid value (0) prior to calling the base class init method as otherwise the MPList will have a nil reference.

This needs to be done prior to the base class ::init() because that method sets the model-added property which will trigger the lisetener.
2022-03-17 11:51:52 +01:00
James Turner
a324ba4b41 Multiplayer: use standard position accessors
Replace manual property query with the standard position
accessors from FGGlobals.
2022-02-26 17:43:15 +00:00
James Turner
1ec67f05ff Multiplayer: ensure lag/ properties always exist
Create lag/foo properties used by the Pilot-list UI in bind(). This avoids
a race condition where motion info was not yet updated, but Nasal tries
to retrieve the lag properties and errors out.
2022-02-26 17:43:15 +00:00
portree_kid
b216658ba1 AI improved entry into parking (heading and postition) 2022-02-13 20:34:17 +01:00
portree_kid
82863d3f3e AI Fixes
* Fix turns (left-turn-bug)
* Better parking apporach
* CSV Logging via property
* ft vs m bug in setLeadDistance
* Split Runway Entry/Exit calculation
* Prototype wait pattern
2022-02-06 21:11:58 +01:00
portree_kid
cf0d90ef3d Cleanup Inheritance in ATC 2022-01-31 22:34:05 +01:00
Scott Giese
f198ac8d8d AIBase: Refactor
getTypeString returns string_view
object_type to strongly-typed enum
ModelSearchOrder to strongly-typed enum
2022-01-15 22:54:30 -06:00
Scott Giese
42ee4822c7 AIFlightPlan: Maintenance
virtual dtor
ensure members are initialized
double constants with double types
variable scope conflict fixed
2022-01-15 20:09:28 -06:00
Scott Giese
1816e3e551 AIManager: Maintenance
ensure all members are initialized
std::transform with back_inserter
std:find_if for collection crawl
2022-01-15 20:06:11 -06:00
Scott Giese
4dce923ef3 AIMultiplayer: Maintenance
scope conflict with parent variables
2022-01-15 20:01:58 -06:00
Scott Giese
1998ffce84 performancedb: Maintenance
default ctor, dtor
2022-01-15 20:00:00 -06:00
Scott Giese
f5acb22929 submodel: Maintenance
virtual default dtor
2022-01-15 19:59:04 -06:00
Scott Giese
912d08fa59 AIWingman: Maintenance
default dtor
2022-01-15 18:59:55 -06:00
Scott Giese
ba5ae5148e AIStatic: Maintenance
virtual default dtor
remove unused includes
2022-01-15 18:53:48 -06:00
Scott Giese
a177aa76bc AIEscort: Maintenance
default dtor
ensure all members are initialized
_max_speed was hiding parent member
double constants with double types
2022-01-15 17:49:10 -06:00
Scott Giese
a9cb94fdbd AIBallistic: Maintenance
virtual dtor
_submodel and _elevation_m hiding parent members
ensure all members are initialized
use double constants with double types
2022-01-15 17:27:59 -06:00
Scott Giese
3f2c9ece5a AIThermal/AIStorm: Maintenance
virtaul dtor
ensure all members are initialized
config.h is unused
bool assignment via int type fixed
2022-01-15 15:51:49 -06:00
Scott Giese
75941319d2 AITanker: Maintenance
virtual dtor
ensure all members are initialized
config.h is unused
2022-01-15 15:20:21 -06:00
Scott Giese
6bd7415d94 AIAircraft: Maintenance
virtual dtor
initialize members before the ctor
config.h is not used
YawTo() is unused
assertSpeed() is unused
initializeFlightPlan() is unused
getTimeString() is unused
get/set is old school
2022-01-15 15:05:11 -06:00
Scott Giese
8ba35b2553 AIShip: Maintenance
default dtor
YawTo() seems to be unused
ensure all members are initialized
_path and _elevation_m were hiding parent members
config.h is not used

TODO: string compare not via strcmp()
TODO: remove magic number
2022-01-15 14:06:39 -06:00
Scott Giese
e1d35b26d5 AIGroundVehicle: Maintenance
ensure all members are initialized
config.h is never used
double initialized with int values
default dtor
2022-01-15 13:33:50 -06:00
Scott Giese
1e40006f06 'using' statement are for source files, not header files
using-declarations are okay in headers (i.e. aliasing)
2022-01-15 01:48:01 -06:00
Lars Toenning
bda359558c Update osg AI model LOD structure 2022-01-11 18:51:48 +00:00
Scott Giese
17fde93fb2 AIGroundVehicle: remove always true condition 2021-12-26 19:45:33 -06:00
Scott Giese
4d10f37992 AIEscort: bug fix 2021-12-26 19:40:15 -06:00
Scott Giese
3c4220e784 AICarrier: clamp bug fix.
Since this code attempts to clamp values between 0.0 and 1.0, the comparision needs to occur using double types.
2021-12-26 19:32:44 -06:00
Scott Giese
f008531fd5 AIWingman Join bug fix
Also removal of redundant code (always true conditions).
2021-12-26 12:41:06 -06:00
Scott Giese
27b518e306 Best practice for pre/post incr/decr. 2021-12-26 12:39:22 -06:00
Roman Ludwicki
82f967ab92 Cope with SGPropertyNode::getStringValue() now returning std::string by value.
This is by Lars Toenning <dev@ltoenning.de>, Roman Ludwicki <romek21@op.pl> and
SDeAstis <salvatore.deastis@gmail.com>, in 2021 Hackathon.

Also cope with removal of SGPropertyNode::getName() - use getNameString()
instead.
2021-12-24 14:49:06 +00:00
Julian Smith
77c362a9d4 src/AIModel/: fixed some compiler warnings
src/AIModel/AICarrier.cxx
    Avoid warning about unused angle_tdp variable.
src/AIModel/AIFlightPlanCreate.cxx
    Increased a buffer size that was giving warning with snprintf(). Also
    always use sizeof(buffer) instead of duplicating the explicit size.
2021-12-08 10:40:28 +00:00
portree_kid
6320c06e6b Stuck AI Aircraft wenn entry to runway > 105m 2021-11-16 08:38:29 +00:00
Julian Smith
a7b9721296 Fixed some gcc warnings.
src/AIModel/AIFlightPlan.cxx:
    Clarify expression with extra round brackets.
src/AIModel/AIFlightPlanCreate.cxx:
    Increased buffer size to match longest possible string.
src/FDM/JSBSim/input_output/FGOutputFG.cpp:
    Use cast to avoid comparison of int with enum.
2021-11-11 18:49:55 +00:00
Richard Harrison
138a678a30 Carriers; support for island textures 2021-10-18 18:12:11 +02:00
portree_kid
8c537a911e Init of repositioned flag 2021-10-08 13:25:07 +01:00
PortreeKid
cf4801e11c * Improved lead distance & handling of sharp turns
* Takeoff leg respects displaced threshold
2021-09-30 11:20:11 +01:00
PortreeKid
f1a44c98df AI Improvements
* Relax runway exit route requirement to 80°
* Ensure parking is only reset if airport for AI aircraft has changed
* Heading Error signed and arrival lead distance
2021-08-31 09:43:24 +01:00