Esempio n. 1
0
 public void AddData(BLMAPLTEX l)
 {
     if (l != null)
     {
         Unknown1.Text  = HexUtil.Hex32(l.Padding);
         Unknown2.Text  = HexUtil.Hex32(l.Unknown);
         Unknown3.Text  = HexUtil.Hex16(l.Unknown1);
         Texture.Text   = l.Texture;
         Unknown4.Text  = HexUtil.Hex32(l.Unknown2);
         Unknown5.Text  = HexUtil.Hex32(l.Unknown3);
         Unknown6.Text  = HexUtil.Hex32(l.Unknown4);
         Unknown7.Text  = HexUtil.Hex32(l.Unknown5);
         Unknown8.Text  = HexUtil.Hex32(l.Unknown6);
         Unknown9.Text  = HexUtil.Hex32(l.Unknown7);
         Unknown10.Text = HexUtil.Hex32(l.Unknown8);
         Unknown11.Text = HexUtil.Hex32(l.Unknown9);
     }
     else
     {
         Unknown1.Text  = "";
         Unknown2.Text  = "";
         Unknown3.Text  = "";
         Texture.Text   = "";
         Unknown4.Text  = "";
         Unknown5.Text  = "";
         Unknown6.Text  = "";
         Unknown7.Text  = "";
         Unknown8.Text  = "";
         Unknown9.Text  = "";
         Unknown10.Text = "";
         Unknown11.Text = "";
     }
 }
Esempio n. 2
0
        public void WriteBLMAP(string FilePath)
        {
            FileName = FilePath;
            BigEndianWriter Writer = new BigEndianWriter(File.Open(FilePath, FileMode.Create));
            BLMAP           BLMAP  = lmapComponent1.ReturnData();

            Writer.WriteChars("LMAP".ToCharArray(), 0, 4);
            Writer.WriteUInt32(0);
            Writer.WriteUInt32(BLMAP.Unknown1);
            Writer.WriteUInt32(BLMAP.Unknown2);
            Writer.WriteUInt16(Convert.ToUInt16(treeView1.Nodes[0].Nodes[1].Nodes.Count));
            Writer.WriteUInt16(BLMAP.Unknown3);
            Writer.WriteUInt32(BLMAP.Unknown4);
            Writer.WriteUInt32(BLMAP.Unknown5);
            Writer.WriteUInt32(BLMAP.Unknown6);
            int FileSize = 0x20;

            for (int i = 0; i < listLTEX.Count; i++)
            {
                BLMAPLTEX LTEX = ltexComponent1.ReturnData();
                LTEX.Entries           = ReturnLTEX();
                listLTEX[SelectedNode] = LTEX;

                FileSize += 0x3C + listLTEX[i].Entries.Count * 8;
                Writer.WriteChars("LTEX".ToCharArray(), 0, 4);
                Writer.WriteInt32(0x3C + listLTEX[i].Entries.Count * 8);
                Writer.WriteUInt32(listLTEX[i].Padding);
                Writer.WriteUInt32(listLTEX[i].Unknown);
                Writer.WriteUInt16(Convert.ToUInt16(listLTEX[i].Entries.Count));
                Writer.WriteUInt16(listLTEX[i].Unknown1);
                Writer.WriteChars(listLTEX[i].Texture.ToCharArray(), 0, 4);
                Writer.WriteUInt32(listLTEX[i].Unknown2);
                Writer.WriteUInt32(listLTEX[i].Unknown3);
                Writer.WriteUInt32(listLTEX[i].Unknown4);
                Writer.WriteUInt32(listLTEX[i].Unknown5);
                Writer.WriteUInt32(listLTEX[i].Unknown6);
                Writer.WriteUInt32(listLTEX[i].Unknown7);
                Writer.WriteUInt32(listLTEX[i].Unknown8);
                Writer.WriteUInt32(listLTEX[i].Unknown9);
                Writer.WriteInt32(listLTEX[i].Entries.Count * 8);
                for (int j = 0; j < listLTEX[i].Entries.Count; j++)
                {
                    Writer.WriteSingle(listLTEX[i].Entries[j].Unknown1);
                    Writer.WriteUInt32(listLTEX[i].Entries[j].Unknown2);
                }
            }
            Writer.BaseStream.Position = 4;
            Writer.WriteInt32(FileSize);
            Writer.Close();
            treeView1.Nodes[0].Text = Path.GetFileName(FilePath);
        }
Esempio n. 3
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();
            }
        }
Esempio n. 4
0
 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
 {
     if (e.Node != treeView1.Nodes[0])
     {
         if (e.Node.Parent.Text == "LTEX")
         {
             if (SelectedNode != -1)
             {
                 BLMAPLTEX LTEX = ltexComponent1.ReturnData();
                 if (LTEX != null)
                 {
                     LTEX.Entries           = new List <Entry>();
                     LTEX.Entries           = ReturnLTEX();
                     listLTEX[SelectedNode] = LTEX;
                 }
             }
             ltexComponent1.AddData(listLTEX[e.Node.Index]);
             AddLTEX(listLTEX[e.Node.Index].Entries);
             SelectedNode = e.Node.Index;
         }
     }
 }
Esempio n. 5
0
        private void ExportLTEX_Click(object sender, EventArgs e)
        {
            SaveFileDialog s = new SaveFileDialog();

            s.Filter = "Binary Light Texture (*bltex)|*.bltex";
            if (s.ShowDialog() == DialogResult.OK)
            {
                BLMAPLTEX LTEX = ltexComponent1.ReturnData();
                LTEX.Entries           = ReturnLTEX();
                listLTEX[SelectedNode] = LTEX;

                BigEndianWriter Writer = new BigEndianWriter(File.Open(s.FileName, FileMode.Create));
                Writer.WriteChars("LTEX".ToCharArray(), 0, 4);
                Writer.WriteInt32(0x3C + LTEX.Entries.Count * 8);
                Writer.WriteUInt32(LTEX.Padding);
                Writer.WriteUInt32(LTEX.Unknown);
                Writer.WriteUInt16(Convert.ToUInt16(LTEX.Entries.Count));
                Writer.WriteUInt16(LTEX.Unknown1);
                Writer.WriteChars(LTEX.Texture.ToCharArray(), 0, 4);
                Writer.WriteUInt32(LTEX.Unknown2);
                Writer.WriteUInt32(LTEX.Unknown3);
                Writer.WriteUInt32(LTEX.Unknown4);
                Writer.WriteUInt32(LTEX.Unknown5);
                Writer.WriteUInt32(LTEX.Unknown6);
                Writer.WriteUInt32(LTEX.Unknown7);
                Writer.WriteUInt32(LTEX.Unknown8);
                Writer.WriteUInt32(LTEX.Unknown9);
                Writer.WriteInt32(LTEX.Entries.Count * 8);
                for (int j = 0; j < LTEX.Entries.Count; j++)
                {
                    Writer.WriteSingle(LTEX.Entries[j].Unknown1);
                    Writer.WriteUInt32(LTEX.Entries[j].Unknown2);
                }
                Writer.Close();
            }
        }
Esempio n. 6
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();
        }