mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-06-06 22:14:51 +00:00
Fix PCKFile{Reader/Writer} to use LE Unicode when reading vita/ps4 pck
This commit is contained in:
@@ -10,8 +10,10 @@ namespace PckStudio.Classes.IO
|
||||
{
|
||||
internal class PCKFileReader : StreamDataReader
|
||||
{
|
||||
internal PCKFile _file;
|
||||
internal List<string> LUT;
|
||||
private PCKFile _file;
|
||||
private List<string> 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;
|
||||
}
|
||||
|
||||
@@ -11,8 +11,9 @@ namespace PckStudio.Classes.IO
|
||||
{
|
||||
internal class PCKFileWriter : StreamDataWriter
|
||||
{
|
||||
internal PCKFile _pckfile;
|
||||
internal List<string> LUT = new List<string>();
|
||||
private PCKFile _pckfile;
|
||||
private List<string> LUT = new List<string>();
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user