Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.IO;
- namespace BrawlContentReader
- {
- class Program
- {
- class Header
- {
- public uint Magic { get; set; }
- public byte[] Unknown { get; set; } // Len60
- public Header(BinaryReader p_Reader)
- {
- Magic = p_Reader.ReadUInt32();
- Unknown = p_Reader.ReadBytes(60);
- }
- }
- class Entry
- {
- public uint StringStartOffset { get; set; }
- public uint Hash { get; set; } // Unknown Type?
- public uint SubEntryCount { get; set; }
- public uint StringEndOffset { get; set; }
- public byte[] Unknown00 { get; set; } // Len16
- public string Name { get; set; } // Len StringEndOffset - StringStartOffset
- public uint EndOfEntryOffset { get; set; }
- public byte[] Padding { get; set; }
- public Entry(BinaryReader p_Reader)
- {
- StringStartOffset = p_Reader.ReadUInt32();
- Hash = p_Reader.ReadUInt32();
- SubEntryCount = p_Reader.ReadUInt32();
- StringEndOffset = p_Reader.ReadUInt32();
- Unknown00 = p_Reader.ReadBytes(16);
- Name = new string(p_Reader.ReadChars((int)(StringEndOffset - StringStartOffset)));
- EndOfEntryOffset = p_Reader.ReadUInt32();
- Padding = p_Reader.ReadBytes((int)(EndOfEntryOffset - p_Reader.BaseStream.Position));
- }
- }
- class SubEntry
- {
- public uint StringStartOffset { get; set; }
- public uint Unknown00 { get; set; }
- public uint Unknown01 { get; set; } // How many floats or whatever are across? (sizeof(float) * Unknown01) = 16bytes
- public uint Unknown02 { get; set; } // How many rows down 16 * Unknown02 = 128
- public uint Unknown03 { get; set; } // 0001 0001?
- public uint StartOfData { get; set; }
- public byte[] Padding { get; set; }
- public string Name { get; set; }
- public byte[] Data { get; set; }
- public SubEntry(BinaryReader p_Reader)
- {
- StringStartOffset = p_Reader.ReadUInt32();
- Unknown00 = p_Reader.ReadUInt32();
- Unknown01 = p_Reader.ReadUInt32();
- Unknown02 = p_Reader.ReadUInt32();
- Unknown03 = p_Reader.ReadUInt32();
- StartOfData = p_Reader.ReadUInt32();
- Padding = p_Reader.ReadBytes((int) (StartOfData - p_Reader.BaseStream.Position));
- Name = new string(p_Reader.ReadChars((int)(StartOfData - StringStartOffset)));
- Data = p_Reader.ReadBytes((int)((4*Unknown01)*Unknown02)); // Should read out 128
- }
- }
- static void Main(string[] p_Args)
- {
- using (var s_Reader = new BinaryReader(new FileStream("", FileMode.Open, FileAccess.Read)))
- {
- var s_Header = new Header(s_Reader);
- // TODO: Figure out how many entries etc.
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment