public LZFile(File parent, CompressionType ct) { nameP = parent.name; parentFile = parent; comp = ct; // If we think it might be compressed, try decompressing it. If it succeeds, assume it was compressed. if (comp == CompressionType.MaybeLZ) { try { ROM.LZ77_Decompress(parentFile.getContents()); comp = CompressionType.LZ; } catch { comp = CompressionType.None; } } if (comp == CompressionType.None) { fileSizeP = parent.fileSize; } else if (comp == CompressionType.LZ) { fileSizeP = ROM.LZ77_GetDecompressedSize(parent.getInterval(0, 4)); } else if (comp == CompressionType.LZWithHeader) { fileSizeP = ROM.LZ77_GetDecompressedSizeWithHeader(parent.getInterval(0, 8)); } }
public LZFile(File parent, CompressionType ct) { nameP = parent.name; parentFile = parent; comp = ct; if (comp == CompressionType.None) fileSizeP = parent.fileSize; else if (comp == CompressionType.LZ) fileSizeP = ROM.LZ77_GetDecompressedSize(parent.getInterval(0, 4)); else if (comp == CompressionType.LZWithHeader) fileSizeP = ROM.LZ77_GetDecompressedSizeWithHeader(parent.getInterval(0, 8)); }
public LZFile(File parent, CompressionType ct) { nameP = parent.name; parentFile = parent; comp = ct; if (comp == CompressionType.None) { fileSizeP = parent.fileSize; } else if (comp == CompressionType.LZ) { fileSizeP = ROM.LZ77_GetDecompressedSize(parent.getInterval(0, 4)); } else if (comp == CompressionType.LZWithHeader) { fileSizeP = ROM.LZ77_GetDecompressedSizeWithHeader(parent.getInterval(0, 8)); } }
public LZFile(File parent, CompressionType ct) { nameP = parent.name; parentFile = parent; comp = ct; // If we think it might be compressed, try decompressing it. If it succeeds, assume it was compressed. if (comp == CompressionType.MaybeLZ) { try { ROM.LZ77_Decompress(parentFile.getContents()); comp = CompressionType.LZ; } catch { comp = CompressionType.None; } } if (comp == CompressionType.None) fileSizeP = parent.fileSize; else if (comp == CompressionType.LZ) fileSizeP = ROM.LZ77_GetDecompressedSize(parent.getInterval(0, 4)); else if (comp == CompressionType.LZWithHeader) fileSizeP = ROM.LZ77_GetDecompressedSizeWithHeader(parent.getInterval(0, 8)); }
public override byte[] getInterval(int start, int end) { if (comp == CompressionType.None) { return(parentFile.getInterval(start, end)); } byte[] data; if (comp == CompressionType.LZWithHeader) { data = ROM.LZ77_DecompressWithHeader(parentFile.getContents()); } else { data = ROM.LZ77_Decompress(parentFile.getContents()); } int len = end - start; byte[] thisdata = new byte[len]; Array.Copy(data, start, thisdata, 0, len); return(thisdata); }
public override byte[] getContents() { return(parentFile.getInterval(inlineOffs, inlineOffs + inlineLen)); }