diff --git a/MinecraftUSkinEditor/Classes/IO/PCK/PCKFileReader.cs b/MinecraftUSkinEditor/Classes/IO/PCK/PCKFileReader.cs index 036a69ac..bdb0c376 100644 --- a/MinecraftUSkinEditor/Classes/IO/PCK/PCKFileReader.cs +++ b/MinecraftUSkinEditor/Classes/IO/PCK/PCKFileReader.cs @@ -10,8 +10,10 @@ namespace PckStudio.Classes.IO { internal class PCKFileReader : StreamDataReader { - internal PCKFile _file; - internal List LUT; + private PCKFile _file; + private List LUT; + bool _isLittleEndian; + public static PCKFile Read(Stream stream, bool isLittleEndian) { @@ -20,6 +22,7 @@ namespace PckStudio.Classes.IO private PCKFileReader(bool isLittleEndian) : base(isLittleEndian) { + _isLittleEndian = isLittleEndian; } private PCKFile ReadFileFromStream(Stream stream) @@ -73,7 +76,7 @@ namespace PckStudio.Classes.IO internal string ReadString(Stream stream) { int len = ReadInt(stream); - string s = ReadString(stream, len, Encoding.BigEndianUnicode); + string s = ReadString(stream, len, _isLittleEndian ? Encoding.Unicode : Encoding.BigEndianUnicode); ReadInt(stream); // padding return s; } diff --git a/MinecraftUSkinEditor/Classes/IO/PCK/PCKFileWriter.cs b/MinecraftUSkinEditor/Classes/IO/PCK/PCKFileWriter.cs index a00ee7d3..cb99d04e 100644 --- a/MinecraftUSkinEditor/Classes/IO/PCK/PCKFileWriter.cs +++ b/MinecraftUSkinEditor/Classes/IO/PCK/PCKFileWriter.cs @@ -11,8 +11,9 @@ namespace PckStudio.Classes.IO { internal class PCKFileWriter : StreamDataWriter { - internal PCKFile _pckfile; - internal List LUT = new List(); + private PCKFile _pckfile; + private List LUT = new List(); + private bool _isLittleEndian; public static void Write(Stream stream, PCKFile file, bool isLittleEndian) { @@ -21,6 +22,7 @@ namespace PckStudio.Classes.IO private PCKFileWriter(PCKFile file, bool isLittleEndian) : base(isLittleEndian) { + _isLittleEndian = isLittleEndian; _pckfile = file; LUT = _pckfile.GatherMetaTags(); } @@ -36,7 +38,7 @@ namespace PckStudio.Classes.IO internal void WriteString(Stream stream, string s) { WriteInt(stream, s.Length); - WriteString(stream, s, Encoding.BigEndianUnicode); + WriteString(stream, s, _isLittleEndian ? Encoding.Unicode : Encoding.BigEndianUnicode); WriteInt(stream, 0); // padding }