Exemple #1
0
        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));
            }
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
            }
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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);
        }
Exemple #6
0
 public override byte[] getContents()
 {
     return(parentFile.getInterval(inlineOffs, inlineOffs + inlineLen));
 }