Remove _isLittleEndian from PCKFile{Reader/Writer} and added StreamData{Reader/Writer}.IsUsingLittleEndian property

This commit is contained in:
miku-666
2022-07-30 19:50:48 +02:00
parent 8242457aca
commit 1ee12be96e
4 changed files with 12 additions and 14 deletions

View File

@@ -12,7 +12,6 @@ namespace PckStudio.Classes.IO
{
private PCKFile _file;
private List<string> LUT;
bool _isLittleEndian;
public static PCKFile Read(Stream stream, bool isLittleEndian)
@@ -22,7 +21,6 @@ namespace PckStudio.Classes.IO
private PCKFileReader(bool isLittleEndian) : base(isLittleEndian)
{
_isLittleEndian = isLittleEndian;
}
private PCKFile ReadFileFromStream(Stream stream)
@@ -76,7 +74,7 @@ namespace PckStudio.Classes.IO
internal string ReadString(Stream stream)
{
int len = ReadInt(stream);
string s = ReadString(stream, len, _isLittleEndian ? Encoding.Unicode : Encoding.BigEndianUnicode);
string s = ReadString(stream, len, IsUsingLittleEndian ? Encoding.Unicode : Encoding.BigEndianUnicode);
ReadInt(stream); // padding
return s;
}

View File

@@ -13,7 +13,6 @@ namespace PckStudio.Classes.IO
{
private PCKFile _pckfile;
private List<string> LUT = new List<string>();
private bool _isLittleEndian;
public static void Write(Stream stream, PCKFile file, bool isLittleEndian)
{
@@ -22,7 +21,6 @@ namespace PckStudio.Classes.IO
private PCKFileWriter(PCKFile file, bool isLittleEndian) : base(isLittleEndian)
{
_isLittleEndian = isLittleEndian;
_pckfile = file;
LUT = _pckfile.GatherMetaTags();
}
@@ -38,7 +36,7 @@ namespace PckStudio.Classes.IO
internal void WriteString(Stream stream, string s)
{
WriteInt(stream, s.Length);
WriteString(stream, s, _isLittleEndian ? Encoding.Unicode : Encoding.BigEndianUnicode);
WriteString(stream, s, IsUsingLittleEndian ? Encoding.Unicode : Encoding.BigEndianUnicode);
WriteInt(stream, 0); // padding
}

View File

@@ -9,10 +9,11 @@ namespace PckStudio.Classes.Utils
{
public class StreamDataReader
{
private static bool isLittleEndian;
protected StreamDataReader(bool useLittleEndian)
private static bool useLittleEndian;
protected static bool IsUsingLittleEndian => useLittleEndian;
protected StreamDataReader(bool littleEndian)
{
isLittleEndian = useLittleEndian;
useLittleEndian = littleEndian;
}
protected static string ReadString(Stream stream, int length, Encoding encoding)
@@ -32,7 +33,7 @@ namespace PckStudio.Classes.Utils
protected static short ReadShort(Stream stream)
{
byte[] bytes = ReadBytes(stream, 2);
if (BitConverter.IsLittleEndian && !isLittleEndian)
if (BitConverter.IsLittleEndian && !useLittleEndian)
Array.Reverse(bytes);
return BitConverter.ToInt16(bytes, 0);
}
@@ -41,7 +42,7 @@ namespace PckStudio.Classes.Utils
protected static int ReadInt(Stream stream)
{
byte[] buffer = ReadBytes(stream, 4);
if (BitConverter.IsLittleEndian && !isLittleEndian)
if (BitConverter.IsLittleEndian && !useLittleEndian)
Array.Reverse(buffer);
return BitConverter.ToInt32(buffer, 0);
}
@@ -50,7 +51,7 @@ namespace PckStudio.Classes.Utils
protected static long ReadLong(Stream stream)
{
byte[] buffer = ReadBytes(stream, 8);
if (BitConverter.IsLittleEndian && !isLittleEndian)
if (BitConverter.IsLittleEndian && !useLittleEndian)
Array.Reverse(buffer);
return BitConverter.ToInt64(buffer, 0);
}

View File

@@ -10,10 +10,11 @@ namespace PckStudio.Classes.Utils
internal class StreamDataWriter
{
private static bool useLittleEndian;
protected static bool IsUsingLittleEndian => useLittleEndian;
protected StreamDataWriter(bool isLittleEndian)
protected StreamDataWriter(bool littleEndian)
{
useLittleEndian = isLittleEndian;
useLittleEndian = littleEndian;
}
protected static void WriteUShort(Stream stream, ushort value) => WriteShort(stream, (short)value);