50 void update(
double dt)
override;
71 std::unique_ptr<IRCConnection> _mpirc;
72 std::unique_ptr<CPDLCManager> _cpdlc;
75 void setPropertiesChanged()
77 mPropertiesChanged =
true;
79 int getProtocolToUse()
81 int protocolVersion = pProtocolVersion->getIntValue();
83 return protocolVersion;
88 void findProperties();
90 void Send(
double currentMPTime);
91 void SendMyPosition(
const FGExternalMotionData& motionInfo);
92 short get_scaled_short(
double v,
double scale);
95 FGAIMultiplayer* addMultiplayer(
const std::string& callsign,
96 const std::string& modelName,
97 const int fallback_model_index);
98 void FillMsgHdr(T_MsgHdr* MsgHdr,
int iMsgId,
unsigned _len = 0u);
99 void ProcessPosMsg(
const MsgBuf& Msg,
const simgear::IPAddress& SenderAddress,
101 void ProcessChatMsg(
const MsgBuf& Msg,
const simgear::IPAddress& SenderAddress);
102 bool isSane(
const FGExternalMotionData& motionInfo);
103 int GetMsgNetwork(
MsgBuf& msgBuf, simgear::IPAddress& SenderAddress);
104 int GetMsg(
MsgBuf& msgBuf, simgear::IPAddress& SenderAddress);
107 typedef std::map<std::string, SGSharedPtr<FGAIMultiplayer>> MultiPlayerMap;
108 MultiPlayerMap mMultiPlayerMap;
110 std::unique_ptr<simgear::Socket> mSocket;
111 simgear::IPAddress mServer;
114 std::string mCallsign;
118 typedef std::map<unsigned int, SGSharedPtr<SGPropertyNode>> PropertyMap;
119 PropertyMap mPropertyMap;
120 SGPropertyNode* pProtocolVersion;
121 SGPropertyNode* pXmitLen;
122 SGPropertyNode* pMultiPlayDebugLevel;
123 SGPropertyNode* pMultiPlayRange;
124 SGPropertyNode* pMultiPlayTransmitPropertyBase;
125 SGPropertyNode* pReplayState;
126 SGPropertyNode* pLogRawSpeedMultiplayer;
128 typedef std::map<unsigned int, const struct IdPropertyList*> PropertyDefinitionMap;
129 PropertyDefinitionMap mPropertyDefinition;
131 bool mPropertiesChanged;
136 double mNextTransmitTime = 0.0;
138 std::deque<std::shared_ptr<std::vector<char>>> mRecordMessageQueue;
139 std::deque<std::shared_ptr<std::vector<char>>> mReplayMessageQueue;