MP2017.2 V2 protocol enhancements
1. Add support for scaled floats; most of the floats we transmit are small and thus can fit into a scaled short. 2. Change most properties to use scaled floats.
This commit is contained in:
parent
3fceba7a24
commit
80dc810d15
3 changed files with 501 additions and 406 deletions
File diff suppressed because it is too large
Load diff
|
@ -85,6 +85,7 @@ private:
|
|||
|
||||
void Send();
|
||||
void SendMyPosition(const FGExternalMotionData& motionInfo);
|
||||
short get_scaled_short(double v, double scale);
|
||||
|
||||
union MsgBuf;
|
||||
FGAIMultiplayer* addMultiplayer(const std::string& callsign,
|
||||
|
|
|
@ -73,7 +73,7 @@ XDR_encode_int32 ( const int32_t & n_Val )
|
|||
return (SWAP32(static_cast<xdr_data_t> (n_Val)));
|
||||
}
|
||||
|
||||
static short convert_int_to_short(int v1)
|
||||
static short XDR_convert_int_to_short(int v1)
|
||||
{
|
||||
if (v1 < -32767)
|
||||
v1 = -32767;
|
||||
|
@ -89,7 +89,7 @@ static short convert_int_to_short(int v1)
|
|||
*/
|
||||
xdr_data_t XDR_encode_shortints32(const int v1, const int v2)
|
||||
{
|
||||
return XDR_encode_uint32( (convert_int_to_short(v1) << 16) | (convert_int_to_short(v2)));
|
||||
return XDR_encode_uint32( ((XDR_convert_int_to_short(v1) << 16) & 0xffff0000) | ((XDR_convert_int_to_short(v2)) & 0xffff));
|
||||
}
|
||||
/* Decode packed shorts into two ints. V1 in the highword ($V1..V2..)*/
|
||||
void XDR_decode_shortints32(const xdr_data_t & n_Val, int &v1, int &v2)
|
||||
|
|
Loading…
Reference in a new issue