private void ImportLTEX_Click(object sender, EventArgs e) { OpenFileDialog o = new OpenFileDialog(); o.Filter = "Binary Light Texture (*bltex)|*.bltex"; if (o.ShowDialog() == DialogResult.OK) { BigEndianReader Reader = new BigEndianReader(new MemoryStream(File.ReadAllBytes(o.FileName))); BLMAPLTEX LTEX = new BLMAPLTEX(); LTEX.Magic = Reader.ReadASCII(4); if (LTEX.Magic != "LTEX") { throw new WrongMagicException(LTEX.Magic, "LTEX", Reader.BaseStream.Position - 4); } LTEX.SectionSize = Reader.ReadUInt32(); LTEX.Padding = Reader.ReadUInt32(); LTEX.Unknown = Reader.ReadUInt32(); LTEX.NrEntries = Reader.ReadUInt16(); LTEX.Unknown1 = Reader.ReadUInt16(); LTEX.Texture = Reader.ReadASCII(4); LTEX.Unknown2 = Reader.ReadUInt32(); LTEX.Unknown3 = Reader.ReadUInt32(); LTEX.Unknown4 = Reader.ReadUInt32(); LTEX.Unknown5 = Reader.ReadUInt32(); LTEX.Unknown6 = Reader.ReadUInt32(); LTEX.Unknown7 = Reader.ReadUInt32(); LTEX.Unknown8 = Reader.ReadUInt32(); LTEX.Unknown9 = Reader.ReadUInt32(); LTEX.EntriesSize = Reader.ReadUInt32(); LTEX.Entries = new List <Entry>(); for (int j = 0; j < LTEX.NrEntries; j++) { LTEX.Entries.Add(new Entry() { Unknown1 = Reader.ReadSingle(), Unknown2 = Reader.ReadUInt32() }); } listLTEX.Add(LTEX); treeView1.Nodes[0].Nodes[1].Nodes.Add("LTEX " + HexUtil.ConvertToHex(treeView1.Nodes[0].Nodes[1].Nodes.Count)); treeView1.Nodes[0].Nodes[1].Nodes[treeView1.Nodes[0].Nodes[1].Nodes.Count - 1].ContextMenuStrip = cmsDelete; Reader.Close(); } }
public void ReadBBLM(string FilePath) { FileName = FilePath; BigEndianReader Reader = new BigEndianReader(new MemoryStream(File.ReadAllBytes(FilePath))); BBLM.Magic = Reader.ReadASCII(4); if (BBLM.Magic != "PBLM") { throw new WrongMagicException(BBLM.Magic, "PBLM", Reader.BaseStream.Position - 4); } BBLM.FileSize = Reader.ReadUInt32(); if (BBLM.FileSize != 0xA4) { MessageBox.Show("Please give this file to Wexos!"); } BBLM.Unknown1 = Reader.ReadUInt64(); BBLM.ScaleFactor = Reader.ReadSingle(); BBLM.RGB = Reader.ReadUInt32(); BBLM.blurrRGB = Reader.ReadUInt32(); BBLM.Unknown2 = Reader.ReadUInt16(); BBLM.Unknown3 = Reader.ReadUInt16(); BBLM.Entries = new List <Entry>(); for (int i = 0; i < 3; i++) { BBLM.Entries.Add(new Entry() { Unknown1 = Reader.ReadSingle(), Unknown2 = Reader.ReadSingle(), Unknown3 = Reader.ReadUInt32(), Unknown4 = Reader.ReadUInt32(), Unknown5 = Reader.ReadUInt32(), Unknown6 = Reader.ReadUInt32(), Unknown7 = Reader.ReadUInt32(), Unknown8 = Reader.ReadUInt32() }); } BBLM.Unknown4 = Reader.ReadUInt32(); BBLM.Unknown5 = Reader.ReadUInt32(); BBLM.Unknown6 = Reader.ReadUInt32(); BBLM.Unknown7 = Reader.ReadUInt32(); BBLM.Unknown8 = Reader.ReadUInt32(); BBLM.Unknown9 = Reader.ReadUInt32(); BBLM.float1 = Reader.ReadSingle(); BBLM.float2 = Reader.ReadSingle(); BBLM.float3 = Reader.ReadSingle(); bblmComponent1.AddData(BBLM); Reader.Close(); this.Show(); }
private void ImportAmbient_Click(object sender, EventArgs e) { OpenFileDialog o = new OpenFileDialog(); o.Filter = "Binary Ambient Light (*bambl)|*.bambl"; if (o.ShowDialog() == DialogResult.OK) { BigEndianReader Reader = new BigEndianReader(new MemoryStream(File.ReadAllBytes(o.FileName))); string Magic = Reader.ReadASCII(4); if (Magic != "BAML") { throw new WrongMagicException(Magic, "BAML", Reader.BaseStream.Position - 4); } Ambient.RGBALight = Reader.ReadBytes(4); Ambient.Padding = Reader.ReadUInt32(); Reader.Close(); dgwAmbient.Rows.Add(HexUtil.Hex8(Convert.ToByte(dgwAmbient.Rows.Count)), HexUtil.Hex8(Ambient.RGBALight[0]), HexUtil.Hex8(Ambient.RGBALight[1]), HexUtil.Hex8(Ambient.RGBALight[2]), HexUtil.Hex8(Ambient.RGBALight[3]), HexUtil.Hex32(Ambient.Padding)); } }
public void ReadFile(string FilePath) { try { BigEndianReader Reader = new BigEndianReader(new MemoryStream(File.ReadAllBytes(FilePath))); string Magic = Reader.ReadASCII(4); if (Magic == "PBLM") { BBLMEditor BBLMEditor = new BBLMEditor(); BBLMEditor.ReadBBLM(FilePath); } else if (Magic == "PDOF") { BDOFEditor BDOFEditor = new BDOFEditor(); BDOFEditor.ReadBDOF(FilePath); } else if (Magic == "LGHT") { BLIGHTEditor BLIGHTEditor = new BLIGHTEditor(); BLIGHTEditor.ReadBLIGHT(FilePath); } else if (Magic == "LMAP") { BLMAPEditor BLMAPEditor = new BLMAPEditor(); BLMAPEditor.ReadBLMAP(FilePath); } else if (new FileInfo(FilePath).Length == 0x70) { BFGEditor BFGEditor = new BFGEditor(); BFGEditor.ReadBFG(FilePath); } else { throw new Exception("The file is invalid!"); } } catch (Exception Ex) { this.Text = thisName; System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(Ex, true); throw new Exception(Ex.Message + Environment.NewLine + "Class Name: " + trace.GetFrame(0).GetMethod().ReflectedType.FullName + " Line: " + trace.GetFrame(0).GetFileLineNumber() + " Column: " + trace.GetFrame(0).GetFileColumnNumber()); } }
public Header(BigEndianReader Reader) { Magic = Reader.ReadASCII(4); if (Magic != "bctr") { throw new WrongMagicException(Magic, "bctr", Reader.BaseStream.Position - 4); } NrSubHeader = Reader.ReadUInt16(); if (NrSubHeader != 2) { System.Windows.Forms.MessageBox.Show("Please give this file to Wexos. There is no problem with but he is interested in it (the importing will continue)"); } NrNameTable = Reader.ReadUInt16(); if (NrNameTable != 1) { System.Windows.Forms.MessageBox.Show("Please give this file to Wexos. There is no problem with but he is interested in it (the importing will continue)"); } Unknown1 = Reader.ReadUInt16(); Unknown2 = Reader.ReadUInt16(); SubHeader1Offset = Reader.ReadUInt16(); SubHeader2Offset = Reader.ReadUInt16(); NameTableOffset = Reader.ReadUInt16(); Unknown3 = Reader.ReadUInt16(); }
public void ReadBDOF(string FilePath) { FileName = FilePath; BigEndianReader Reader = new BigEndianReader(new MemoryStream(File.ReadAllBytes(FilePath))); BDOF.Magic = Reader.ReadASCII(4); if (BDOF.Magic != "PDOF") { throw new WrongMagicException(BDOF.Magic, "PDOF", Reader.BaseStream.Position - 4); } BDOF.FileSize = Reader.ReadUInt32(); if (BDOF.FileSize != 0x50) { MessageBox.Show("Please give this file to Wexos!"); } BDOF.Unknown1 = Reader.ReadUInt64(); BDOF.Activator = Reader.ReadUInt16(); BDOF.Unknown2 = Reader.ReadUInt16(); BDOF.Unknown3 = Reader.ReadUInt32(); BDOF.FloatValues = Reader.ReadSingles(10); BDOF.Padding = Reader.ReadUInt64s(0x02); bdofComponent1.AddData(BDOF); this.Show(); Reader.Close(); }
public void ReadBLMAP(string FilePath) { FileName = FilePath; BigEndianReader Reader = new BigEndianReader(new MemoryStream(File.ReadAllBytes(FilePath))); treeView1.Nodes[0].Nodes.Clear(); treeView1.Nodes[0].Text = Path.GetFileName(FilePath); treeView1.Nodes[0].Nodes.Add("Header"); treeView1.Nodes[0].Nodes.Add("LTEX"); listLTEX.Clear(); BLMAP.Magic = Reader.ReadASCII(4); if (BLMAP.Magic != "LMAP") { throw new WrongMagicException(BLMAP.Magic, "LMAP", Reader.BaseStream.Position - 4); } BLMAP.FileSize = Reader.ReadUInt32(); BLMAP.Unknown1 = Reader.ReadUInt32(); BLMAP.Unknown2 = Reader.ReadUInt32(); BLMAP.NrLTEX = Reader.ReadUInt16(); BLMAP.Unknown3 = Reader.ReadUInt16(); BLMAP.Unknown4 = Reader.ReadUInt32(); BLMAP.Unknown5 = Reader.ReadUInt32(); BLMAP.Unknown6 = Reader.ReadUInt32(); for (int i = 0; i < BLMAP.NrLTEX; i++) { BLMAPLTEX LTEX = new BLMAPLTEX(); long Offset = Reader.BaseStream.Position; LTEX.Magic = Reader.ReadASCII(4); if (LTEX.Magic != "LTEX") { throw new WrongMagicException(LTEX.Magic, "LTEX", Reader.BaseStream.Position - 4); } LTEX.SectionSize = Reader.ReadUInt32(); LTEX.Padding = Reader.ReadUInt32(); LTEX.Unknown = Reader.ReadUInt32(); LTEX.NrEntries = Reader.ReadUInt16(); LTEX.Unknown1 = Reader.ReadUInt16(); LTEX.Texture = Reader.ReadASCII(4); LTEX.Unknown2 = Reader.ReadUInt32(); LTEX.Unknown3 = Reader.ReadUInt32(); LTEX.Unknown4 = Reader.ReadUInt32(); LTEX.Unknown5 = Reader.ReadUInt32(); LTEX.Unknown6 = Reader.ReadUInt32(); LTEX.Unknown7 = Reader.ReadUInt32(); LTEX.Unknown8 = Reader.ReadUInt32(); LTEX.Unknown9 = Reader.ReadUInt32(); LTEX.EntriesSize = Reader.ReadUInt32(); LTEX.Entries = new List <Entry>(); for (int j = 0; j < LTEX.NrEntries; j++) { LTEX.Entries.Add(new Entry() { Unknown1 = Reader.ReadSingle(), Unknown2 = Reader.ReadUInt32() }); } listLTEX.Add(LTEX); treeView1.Nodes[0].Nodes[1].Nodes.Add("LTEX " + HexUtil.ConvertToHex(i)); treeView1.Nodes[0].Nodes[1].Nodes[treeView1.Nodes[0].Nodes[1].Nodes.Count - 1].ContextMenuStrip = cmsDelete; Reader.BaseStream.Position = Offset + LTEX.SectionSize; } Reader.Close(); lmapComponent1.AddData(BLMAP); if (BLMAP.NrLTEX >= 1) { ltexComponent1.AddData(listLTEX[0]); AddLTEX(listLTEX[0].Entries); } else { SelectedNode = -1; } this.Show(); }