internal SaveFiles(Reader reader) { SaveFile = 1; for (int i = 0; i < FileSize / 4; i++) { SaveRAM[i] = reader.ReadInt32(); } for (int i = 48; i < 173; i++) { int mins = SaveRAM[i] / 6000; int secs = SaveRAM[i] / 100 % 60; int msecs = SaveRAM[i] % 100; i++; Console.WriteLine(mins + "'" + secs + "\"" + msecs); } reader.Close(); }
public DirInfo(Reader reader) { byte ss = reader.ReadByte(); char buf = ','; string DecryptedString = ""; for (int i = 0; i < ss; i++) { byte b = reader.ReadByte(); int bufInt = (int)b; bufInt ^= 0xFF - ss; buf = (char)bufInt; DecryptedString = DecryptedString + buf; } Directory = DecryptedString; //Console.WriteLine(Directory); Address = reader.ReadInt32(); }
public DataFile(Reader reader) { headerSize = reader.ReadInt32(); //Console.WriteLine("Header Size = " + headerSize); int dircount = reader.ReadUInt16(); //Console.WriteLine("Directory Count = " + dircount); Directories = new List <DirInfo>(); for (int d = 0; d < dircount; d++) { Directories.Add(new DirInfo(reader)); } for (int d = 0; d < dircount; d++) { if ((d + 1) < Directories.Count()) { while (reader.Position - headerSize < Directories[d + 1].Address && !reader.IsEof) { FileInfo f = new FileInfo(reader); f.FullFileName = Directories[d].Directory + f.FileName; Files.Add(f); } } else { while (!reader.IsEof) { FileInfo f = new FileInfo(reader); f.FullFileName = Directories[d].Directory + f.FileName; Files.Add(f); } } } reader.Close(); }
public GlobalVariable(Reader reader) { Name = reader.ReadString(); Console.WriteLine(Name); Value = reader.ReadInt32(); }
internal TileConfig(Reader reader) { v3 = reader.ReadInt32(); Console.WriteLine(Convert.ToString(v3, 2)); v4 = (byte)v3 >> 4; Console.WriteLine(Convert.ToString(v4, 2)); int UnknownByte1; //Likley the config bytes int UnknownDWORD1; //int UnknownDWORD2; //int UnknownDWORD3; //int UnknownDWORD4; UnknownByte1 = v3 & 0xF; //Console.WriteLine(Convert.ToString(UnknownByte1, 2)); v3 = reader.ReadInt32(); UnknownDWORD1 = v3; //Console.WriteLine(Convert.ToString(UnknownDWORD1, 2)); v3 = reader.ReadByte(); UnknownDWORD1 += v3 << 8; //Console.WriteLine(Convert.ToString(UnknownDWORD1, 2)); v3 = reader.ReadByte(); UnknownDWORD1 += v3 << 16; //Console.WriteLine(Convert.ToString(UnknownDWORD1, 2)); v3 = reader.ReadByte(); UnknownDWORD1 += v3 << 24; //Console.WriteLine(Convert.ToString(UnknownDWORD1, 2)); if (v4 != 0) { for (k = 0; k < 16; k += 2) { v3 = reader.ReadByte(); int b = v3 >> 4; int b2 = v3 & 0xF; Console.WriteLine(Convert.ToString(b, 2) + " " + Convert.ToString(b2, 2)); } v3 = reader.ReadByte(); v2 = 1; int Unknown1; int Unknown2; for (k = 0; k < 8; k++) { if ((byte)(v2 & v3) >= 1) { Unknown1 = 0; } else { Unknown1 = 64; Unknown2 = -64; } v2 = ExtensionMethods.LowByte(v2); v2 = 2 * v2; } v3 = reader.ReadByte(); v2 = 1; int Unknown3; int Unknown4 = 0; for (k = 0; k < 8; k++) { if ((byte)(v2 & v3) >= 1) { Unknown3 = 0; } else { Unknown3 = 64; Unknown4 = -64; } v2 = ExtensionMethods.LowByte(v2); v2 = 2 * v2; } v3 = 0; byte Unknown5; int Unknown6; while ((byte)v3 < 16) { k = 0; while (k > -1) { if (k == 16) { Unknown5 = 64; k = -1; } else if ((byte)v3 > (int)Unknown4) { ++k; } else { Unknown5 = (byte)k; k = -1; } } v3 = ExtensionMethods.LowByte(v3); v3 = v3 + 1; } v3 = 0; while ((byte)v3 < 16) { k = 15; while (k < 16) { if (k == -1) { Unknown6 = -64; k = 16; } else if ((byte)v3 > Unknown4) { --k; } else { Unknown6 = (byte)k; k = 16; } } v3 = ExtensionMethods.LowByte(v3); v3 = v3 + 1; } } }
public void read(Reader reader) { reader.ReadInt16(); // "BM" reader.ReadInt32(); // totalFileSize reader.ReadInt32(); // Unused int pixelPos = reader.ReadInt32(); reader.seek(14 + 4, System.IO.SeekOrigin.Begin); width = reader.ReadByte(); width |= reader.ReadByte() << 8; width |= reader.ReadByte() << 16; width |= reader.ReadByte() << 24; height = reader.ReadByte(); height |= reader.ReadByte() << 8; height |= reader.ReadByte() << 16; height |= reader.ReadByte() << 24; reader.BaseStream.Position += sizeof(ushort); bool indexed = reader.ReadUInt16() <= 8; //bpp if (!indexed) { throw new Exception("RSDK-Formatted Bitmap files must be indexed!"); } reader.BaseStream.Position += 4 * sizeof(int); int clrCount = reader.ReadInt32(); // how many colours used reader.seek(14 + 40, System.IO.SeekOrigin.Begin); for (int c = 0; c < clrCount; c++) { palette[c].B = reader.ReadByte(); palette[c].G = reader.ReadByte(); palette[c].R = reader.ReadByte(); reader.ReadByte(); // unused } long expectedPixelPos = (reader.BaseStream.Length - height * width); if (pixelPos != expectedPixelPos) { throw new Exception("RSDK-Formatted Bitmap files must end with the pixel data!"); } // This is how RSDK does it but there's a small chance it could maybe be wrong reader.seek(expectedPixelPos, System.IO.SeekOrigin.Begin); pixels = new byte[width * height]; int gfxPos = width * (height - 1); for (int y = 0; y < height; ++y) { for (int x = 0; x < width; ++x) { pixels[gfxPos++] = reader.ReadByte(); } gfxPos -= 2 * width; } reader.Close(); }
public void read(Reader reader, ushort width, ushort height) { int frameSize = reader.ReadInt32(); byte[] gifData = new byte[frameSize + 13]; // Write Header gifData[0] = (byte)'G'; gifData[1] = (byte)'I'; gifData[2] = (byte)'F'; gifData[3] = (byte)'8'; gifData[4] = (byte)'9'; gifData[5] = (byte)'a'; byte[] bytes = BitConverter.GetBytes(width); gifData[6] = bytes[0]; gifData[7] = bytes[1]; bytes = BitConverter.GetBytes(height); gifData[8] = bytes[0]; gifData[9] = bytes[1]; // 1 == hasColours, 6 == paletteSize of 128, 7 == 8bpp gifData[10] = (1 << 7) | (6 << 4) | 6; gifData[11] = 0; gifData[12] = 0; // Read Data reader.Read(gifData, 13, (int)frameSize); List <Color> globalPalette = new List <Color>(); List <Color> localPalette = new List <Color>(); using (var gifStream = new System.IO.MemoryStream(gifData)) { using (var gifReader = new Reader(gifStream)) { reader.BaseStream.Position = 13; for (int i = 0; i < 0x80; ++i) { byte r = reader.ReadByte(); byte g = reader.ReadByte(); byte b = reader.ReadByte(); globalPalette.Add(Color.FromArgb(r, g, b)); } byte buffer = reader.ReadByte(); while (buffer != (byte)',') { buffer = reader.ReadByte(); } reader.ReadUInt16(); reader.ReadUInt16(); reader.ReadUInt16(); reader.ReadUInt16(); byte info = reader.ReadByte(); if (info >> 7 == 1) { for (int i = 0; i < 0x80; ++i) { byte r = reader.ReadByte(); byte g = reader.ReadByte(); byte b = reader.ReadByte(); localPalette.Add(Color.FromArgb(r, g, b)); } } } } using (var gifStream = new System.IO.MemoryStream(gifData)) image = Image.FromStream(gifStream); // ColorPalette pal = new ColorPalette(); // pal.Entries[0]] // image.Palette = pal; videoFilePos += frameSize; reader.BaseStream.Position = videoFilePos; }
public void read(Reader reader) { directory = reader.readRSDKString(); startOffset = reader.ReadInt32(); }