Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
 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());
     }
 }
Ejemplo n.º 5
0
 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();
 }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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();
        }