mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
[FS9] Finalize aircraft parts animations
This change implements very basic parts animation including - Gear up & down - Flaps up & down - Engine on & off
This commit is contained in:
committed by
Mat Sutcliffe
parent
9fa3221abc
commit
2c3c9a123a
@@ -93,6 +93,7 @@ namespace BlackSimPlugin
|
||||
*
|
||||
* Data most likely to be part of it:
|
||||
* \li Wing animation
|
||||
* \li Flaps 0 == up, extending flaps starts from 255 and is decreasing. Cessna FULL(228), BOEING 747 Full (242)
|
||||
*
|
||||
* Max value for fully extended gear seems to be 0xA1
|
||||
*/
|
||||
@@ -102,21 +103,21 @@ namespace BlackSimPlugin
|
||||
quint32 packet_index = 0; //!< Packet index
|
||||
quint8 unknown8 = 0; //!< Unknown data
|
||||
quint8 unknown9 = 0; //!< Unknown data
|
||||
quint8 flaps_left = 0xDF; //!< Flaps left
|
||||
quint8 flaps_right = 0xDF; //!< Flaps right
|
||||
quint8 flaps_left = 0; //!< Flaps left
|
||||
quint8 flaps_right = 0; //!< Flaps right
|
||||
quint8 unknown12 = 0; //!< Unknown data
|
||||
quint8 unknown13 = 0; //!< Unknown data
|
||||
quint8 unknown14 = 0xFF; //!< Unknown data
|
||||
quint8 unknown14 = 0; //!< Engine RPM?
|
||||
quint8 unknown15 = 0; //!< Unknown data
|
||||
quint8 unknown16 = 0; //!< Unknown data
|
||||
quint8 unknown17 = 0; //!< Unknown data
|
||||
quint8 unknown18 = 0; //!< Unknown data
|
||||
quint8 unknown19 = 0; //!< Unknown data
|
||||
quint8 gear_center = 0xA1; //!< Gear center
|
||||
quint8 gear_left = 0xA1; //!< Gear left
|
||||
quint8 gear_right = 0xA1; //!< Gear right
|
||||
quint8 engine_1 = 0xFF; //!< Engine 1 N1 in %
|
||||
quint8 engine_2 = 0xFF; //!< Engine 2 N1 in %
|
||||
quint8 gear_center = 0; //!< Gear center
|
||||
quint8 gear_left = 0; //!< Gear left
|
||||
quint8 gear_right = 0; //!< Gear right
|
||||
quint8 engine_1 = 0; //!< Engine 1 N1 in %
|
||||
quint8 engine_2 = 0; //!< Engine 2 N1 in %
|
||||
quint8 unknown25 = 0; //!< Unknown data
|
||||
quint8 unknown26 = 0; //!< Unknown data
|
||||
quint8 unknown27 = 0; //!< Unknown data
|
||||
|
||||
@@ -140,6 +140,31 @@ namespace BlackSimPlugin
|
||||
return positionSlewMode;
|
||||
}
|
||||
|
||||
MPParam aircraftPartsToFS9(const CAircraftParts &parts)
|
||||
{
|
||||
MPParam param;
|
||||
if (parts.isAnyEngineOn())
|
||||
{
|
||||
param.engine_1 = 140;
|
||||
param.engine_2 = 140;
|
||||
param.unknown14 = 60;
|
||||
}
|
||||
|
||||
if (parts.getFlapsPercent() > 50.0)
|
||||
{
|
||||
param.flaps_left = 228;
|
||||
param.flaps_right = 228;
|
||||
}
|
||||
|
||||
if (parts.isFixedGearDown())
|
||||
{
|
||||
param.gear_center = 0xA1;
|
||||
param.gear_left = 0xA1;
|
||||
param.gear_right = 0xA1;
|
||||
}
|
||||
return param;
|
||||
}
|
||||
|
||||
CFs9Client::~CFs9Client()
|
||||
{
|
||||
closeConnection();
|
||||
@@ -351,14 +376,6 @@ namespace BlackSimPlugin
|
||||
sendMessage(positionMessage);
|
||||
}
|
||||
|
||||
MPParam aircraftPartsToFS9(const CAircraftParts &parts)
|
||||
{
|
||||
//! todo THAT PART IS MISSING HERE, see https://discordapp.com/channels/539048679160676382/539925070550794240/699234172849618975
|
||||
Q_UNUSED(parts)
|
||||
MPParam param;
|
||||
return param;
|
||||
}
|
||||
|
||||
void CFs9Client::sendMultiplayerParts(const CAircraftParts &parts)
|
||||
{
|
||||
Q_UNUSED(parts)
|
||||
@@ -405,6 +422,7 @@ namespace BlackSimPlugin
|
||||
m_clientStatus = Connected; // will not send position in disconnected mode
|
||||
sendMultiplayerChangePlayerPlane();
|
||||
sendMultiplayerPositionAndPartsFromInterpolation();
|
||||
startTimer(m_updateInterval.valueInteger(CTimeUnit::ms()));
|
||||
|
||||
emit statusChanged(m_remoteAircraft, m_clientStatus);
|
||||
}
|
||||
|
||||
@@ -344,6 +344,32 @@ namespace BlackSimPlugin
|
||||
}
|
||||
}
|
||||
|
||||
QString getChangedParamsAsString(const MPParam old, const MPParam &newParam)
|
||||
{
|
||||
QString str;
|
||||
if (old.unknown8 != newParam.unknown8) str += "unknown8 " + QString::number(newParam.unknown8) + "\n";
|
||||
if (old.unknown9 != newParam.unknown9) str += "unknown9 " + QString::number(newParam.unknown9) + "\n";
|
||||
if (old.flaps_left != newParam.flaps_left) str += "flaps_left " + QString::number(newParam.flaps_left) + "\n";
|
||||
if (old.flaps_right != newParam.flaps_right) str += "flaps_right " + QString::number(newParam.flaps_right) + "\n";
|
||||
if (old.unknown12 != newParam.unknown12) str += "unknown12 " + QString::number(newParam.unknown12) + "\n";
|
||||
if (old.unknown13 != newParam.unknown13) str += "unknown13 " + QString::number(newParam.unknown13) + "\n";
|
||||
if (old.unknown14 != newParam.unknown14) str += "unknown14 " + QString::number(newParam.unknown14) + "\n";
|
||||
if (old.unknown15 != newParam.unknown15) str += "unknown15 " + QString::number(newParam.unknown15) + "\n";
|
||||
if (old.unknown16 != newParam.unknown16) str += "unknown16 " + QString::number(newParam.unknown16) + "\n";
|
||||
if (old.unknown17 != newParam.unknown17) str += "unknown17 " + QString::number(newParam.unknown17) + "\n";
|
||||
if (old.unknown18 != newParam.unknown18) str += "unknown18 " + QString::number(newParam.unknown18) + "\n";
|
||||
if (old.unknown19 != newParam.unknown19) str += "unknown19 " + QString::number(newParam.unknown19) + "\n";
|
||||
if (old.gear_center != newParam.gear_center) str += "gear_center " + QString::number(newParam.gear_center) + "\n";
|
||||
if (old.gear_left != newParam.gear_left) str += "gear_left " + QString::number(newParam.gear_left) + "\n";
|
||||
if (old.gear_right != newParam.gear_right) str += "gear_right " + QString::number(newParam.gear_right) + "\n";
|
||||
if (old.engine_1 != newParam.engine_1) str += "engine_1 " + QString::number(newParam.engine_1) + "\n";
|
||||
if (old.engine_2 != newParam.engine_2) str += "engine_2 " + QString::number(newParam.engine_2) + "\n";
|
||||
if (old.unknown25 != newParam.unknown25) str += "unknown25 " + QString::number(newParam.unknown25) + "\n";
|
||||
if (old.unknown26 != newParam.unknown26) str += "unknown26 " + QString::number(newParam.unknown26) + "\n";
|
||||
if (old.unknown27 != newParam.unknown27) str += "unknown27 " + QString::number(newParam.unknown27) + "\n";
|
||||
return str;
|
||||
}
|
||||
|
||||
void CSimulatorFs9::processFs9Message(const QByteArray &message)
|
||||
{
|
||||
if (!m_simConnected)
|
||||
@@ -356,6 +382,17 @@ namespace BlackSimPlugin
|
||||
{
|
||||
case CFs9Sdk::MULTIPLAYER_PACKET_ID_PARAMS:
|
||||
{
|
||||
MPParam mpParam;
|
||||
MultiPlayerPacketParser::readMessage(message, mpParam);
|
||||
// For debugging:
|
||||
// QTextStream qtstdout(stdout);
|
||||
// QString paramString = getChangedParamsAsString(m_lastParameters, mpParam);
|
||||
// if (! paramString.isEmpty())
|
||||
// {
|
||||
// qtstdout << message.mid(4 * sizeof(qint32)).toHex() << Qt::endl;
|
||||
// qtstdout << paramString << Qt::endl;
|
||||
// }
|
||||
// m_lastParameters = mpParam;
|
||||
break;
|
||||
}
|
||||
case CFs9Sdk::MULTIPLAYER_PACKET_ID_CHANGE_PLAYER_PLANE:
|
||||
|
||||
Reference in New Issue
Block a user