* function sendMultiplayerPositionAndPartsFromInterpolation sending parts and positions
* bogus function MPParam aircraftPartsToFS9 (needs to be implemented)
* changed to sendMultiplayerParts(const CAircraftParts &parts) - like for positions
* fixed some smaller bugs
* guards like "if (!m_fs9Host.data()) return"
* bogus function "sendMultiplayerParts" (at least ot have it in place)
* fixed "testSendSituationAndParts"
Both were continuous workers since a blocking IDirectPlay8Peer::SendTo()
method was used. Since we use the default async method now, we don't need
the threaded implementation any longer. It still could happen that GUI
blocks for too long, but that would happen also for other simulator drivers.
ref T433
* force full updates for some cycles "m_updateAllRemoteAircraftCycles"
* only use "emitSimulatorCombinedStatus" to emit changed simulator status
* renamed to "finishUpdateRemoteAircraftAndSetStatistics"
* override "forced" in "getInterpolationSetupConsolidated"
This addresses the issue that aircraft appear below ground after moving the aircraft
Rational: Except for FS9 we interpolate all aircraft in one loop at the same time. This can cause that some steps are always done at the same time for all aircraft of that loop. By passing the number we can more equally distribute such tasks, avoiding peaks.
* return interpolation results parts/situation in one step
* base class init for each interpolation step, less redundant code
* removed old interpolation/parts function
* adjusted unit tests and simulator objects (such as SimObject)
Summary: This commits removes todos which are done or obsolete.
Reviewers: kbasan, msutcliffe
Reviewed By: kbasan
Differential Revision: https://dev.swift-project.org/D6
* set log flag in hints, so no lock for each aircraft is needed
* as a result log functions have a bool log parameter now
* highlight situation and parts changed
* added new utility funtion is model list / aircraft list
* added setters/getters for CSimConnectObject
* added setters/getters for InterpolationStatus / PartsStatus
* added CSimConnectObjects (better encapsulation)
The produced QByteArray was missing the null terminating character,
since QByteArray::append() only added up to and not including '\0'.
This was also the reason why sometimes planes did not change their
aircraft models properly.
Pitch and bank angle in CAircraftSituation are according to the
common aeronautical convention:
* Bank in degrees, positive = roll right
* Pitch in degrees, positive = pitch up
Microsoft Flight Simulator is using inverted angles, which was incorrectly
adjusted in the interpolator. This caused wrong values for X-Plane.
This angle correction is now moved into the MSFS specific plugins.
Additionally, so far the pitch and bank angles from own aircraft were
not yet corrected for MSFS. So we did send wrong values to the network.
refs #790