This commit is contained in:
Denis Molony 2022-07-31 09:58:00 +10:00
parent 921c946ab5
commit 5add6c0729
1 changed files with 10 additions and 14 deletions

View File

@ -46,7 +46,7 @@ public class Binary2
headers.add (binary2Header);
totalBlocks += binary2Header.totalBlocks;
ptr += ((binary2Header.eof - 1) / 128 + 1) * 128 + 128;
ptr += ((binary2Header.eof - 1) / 128 + 2) * 128;
} while (binary2Header.filesToFollow > 0);
}
@ -60,26 +60,22 @@ public class Binary2
for (Binary2Header header : headers)
{
if (header.compressed && buffer[header.ptr + 128] == 0x76
&& buffer[header.ptr + 129] == (byte) 0xFF)
byte[] dataBuffer = new byte[header.eof]; // this sux
System.arraycopy (buffer, header.ptr + 128, dataBuffer, 0, dataBuffer.length);
if (header.compressed && dataBuffer[0] == 0x76 && dataBuffer[1] == (byte) 0xFF)
{
byte[] tmp = new byte[header.eof]; // this sux
System.arraycopy (buffer, header.ptr + 128, tmp, 0, tmp.length);
String name = Utility.getCString (tmp, 4);
String name = Utility.getCString (dataBuffer, 4);
Squeeze squeeze = new Squeeze ();
byte[] dataBuffer = squeeze.unSqueeze (tmp);
disk.addFile (name, header.fileType, header.auxType, header.created, header.modified,
dataBuffer, header.eof);
byte[] tmp = squeeze.unSqueeze (dataBuffer);
disk.addFile (name, header.fileType, header.auxType, header.created, header.modified, tmp,
tmp.length);
}
else
{
byte[] dataBuffer = new byte[header.eof]; // this sux
System.arraycopy (buffer, header.ptr + 128, dataBuffer, 0, dataBuffer.length);
disk.addFile (header.fileName, header.fileType, header.auxType, header.created,
header.modified, dataBuffer, header.eof);
}
}
disk.close ();