Fixed bug in Float/Double I/O.
Some checks failed
🚀 Pack skyscraper8 / make-zip (push) Failing after 35s

This commit is contained in:
Fey 2026-05-09 17:52:15 +02:00
parent e79ef4b4e2
commit 6b83c4d198
4 changed files with 950 additions and 924 deletions

View File

@ -40,6 +40,7 @@
REQUEST_IQ_SCAN, REQUEST_IQ_SCAN,
REQUEST_GET_SIGNAL_EX_EX, REQUEST_GET_SIGNAL_EX_EX,
REQUEST_SKYSCRAPER_ENGINE_NAME, REQUEST_SKYSCRAPER_ENGINE_NAME,
REQUEST_SKYSCRAPER_ENGINE_VERSION REQUEST_SKYSCRAPER_ENGINE_VERSION,
} REQUEST_RF_SCAN_2
}
} }

View File

@ -190,7 +190,7 @@ namespace skyscraper5.Skyscraper.IO
return result; return result;
} }
public static double ReadDouble(this Stream stream) public static double ReadDoubleLE(this Stream stream)
{ {
byte[] buffer = new byte[8]; byte[] buffer = new byte[8];
if (stream.Read(buffer, 0, 8) != 8) if (stream.Read(buffer, 0, 8) != 8)
@ -198,7 +198,17 @@ namespace skyscraper5.Skyscraper.IO
if (!BitConverter.IsLittleEndian) if (!BitConverter.IsLittleEndian)
Array.Reverse(buffer, 0, 8); Array.Reverse(buffer, 0, 8);
return BitConverter.ToDouble(buffer, 0); return BitConverter.ToDouble(buffer, 0);
} }
public static double ReadDoubleBE(this Stream stream)
{
byte[] buffer = new byte[8];
if (stream.Read(buffer, 0, 8) != 8)
throw new EndOfStreamException();
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer, 0, 8);
return BitConverter.ToDouble(buffer, 0);
}
public static void WriteUInt8(this Stream stream, byte value) public static void WriteUInt8(this Stream stream, byte value)
{ {

View File

@ -152,7 +152,7 @@ namespace skyscraper5.Skyscraper.Net.Sockets
return buffer[0]; return buffer[0];
} }
public static void WriteDouble(this NetworkStream stream, double value) public static void WriteDoubleBE(this NetworkStream stream, double value)
{ {
byte[] buffer = BitConverter.GetBytes(value); byte[] buffer = BitConverter.GetBytes(value);
if (BitConverter.IsLittleEndian) if (BitConverter.IsLittleEndian)
@ -160,7 +160,7 @@ namespace skyscraper5.Skyscraper.Net.Sockets
stream.Write(buffer, 0, 8); stream.Write(buffer, 0, 8);
} }
public static double ReadDouble(this NetworkStream stream) public static double ReadDoubleBE(this NetworkStream stream)
{ {
byte[] buffer = new byte[8]; byte[] buffer = new byte[8];
if (stream.Read(buffer,0,8) != 8) if (stream.Read(buffer,0,8) != 8)
@ -170,7 +170,7 @@ namespace skyscraper5.Skyscraper.Net.Sockets
return BitConverter.ToDouble(buffer, 0); return BitConverter.ToDouble(buffer, 0);
} }
public static void WriteFloat(this NetworkStream stream, float value) public static void WriteFloatBE(this NetworkStream stream, float value)
{ {
byte[] buffer = BitConverter.GetBytes(value); byte[] buffer = BitConverter.GetBytes(value);
if (BitConverter.IsLittleEndian) if (BitConverter.IsLittleEndian)
@ -178,7 +178,7 @@ namespace skyscraper5.Skyscraper.Net.Sockets
stream.Write(buffer, 0, 4); stream.Write(buffer, 0, 4);
} }
public static float ReadFloat(this NetworkStream stream) public static float ReadFloatBE(this NetworkStream stream)
{ {
byte[] buffer = new byte[4]; byte[] buffer = new byte[4];
if (stream.Read(buffer, 0, 4) != 4) if (stream.Read(buffer, 0, 4) != 4)