예제 #1
0
        private void openNarcToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog {
                Filter = "Narc File (*.narc)|*.narc|Texture File(*.btx)|*.btx",
            };

            if (dialog.ShowDialog() != DialogResult.Cancel)
            {
                BinaryReader reader    = new BinaryReader(dialog.OpenFile());
                var          extension = Encoding.UTF8.GetString(reader.ReadBytes(4));
                if (extension == "NARC")
                {
                    Narc narc = new Narc();
                    narc.LoadNarc(reader);
                    tex = new List <Tex_List>();
                    Texture_Out.Clear();
                    for (int i = 0; i < narc.fatbNum; i++)
                    {
                        Tex_List             list   = new Tex_List();
                        Nsbtx                _c     = new Nsbtx();
                        ClosableMemoryStream stream = narc.figm.fileData[i];
                        actualTex = new Nsbtx();
                        actualTex.LoadBTX0(stream);
                        _c             = actualTex;
                        list.File_Name = "Tex_" + i.ToString();
                        Texture_Out.AppendText(list.File_Name + "=");
                        list.Texture = new List <string>();
                        for (int j = 0; j < actualTex.tex0.texNum; j++)
                        {
                            list.Texture.Add(actualTex.tex0.texNameArray[j]);
                            Texture_Out.AppendText(actualTex.tex0.texNameArray[j] + ";");
                        }
                        Texture_Out.AppendText("\n");
                    }
                }
                else if (extension == "BTX0")
                {
                    Tex_List list = new Tex_List();
                    Nsbtx    _c   = new Nsbtx();
                    actualTex = new Nsbtx();
                    actualTex.LoadBTX0(reader);
                    _c             = actualTex;
                    list.File_Name = dialog.SafeFileName;
                    Texture_Out.AppendText(list.File_Name + "=");
                    list.Texture = new List <string>();
                    for (int j = 0; j < actualTex.tex0.texNum; j++)
                    {
                        list.Texture.Add(actualTex.tex0.texNameArray[j]);
                        Texture_Out.AppendText(actualTex.tex0.texNameArray[j] + ";");
                    }
                    Texture_Out.AppendText("\n");
                }
            }
        }
예제 #2
0
        private void LoadAvailableTextures(Nsbtx nsbtx)
        {
            int idTexture = 0;

            if (nsbtx == null)
            {
                return;
            }
            foreach (NsbmdModel.MatTexPalStruct texture in nsbtx.tex0.matTexPalList)
            {
                AvaTexList.Items.Add(texture.texName);
                idTexture++;
            }
            int idPalette = 0;

            foreach (NsbmdModel.MatTexPalStruct texture in nsbtx.tex0.matTexPalList)
            {
                AvaPalList.Items.Add(texture.palName);
                idPalette++;
            }
        }
예제 #3
0
 public SetInfoNewPol(Nsbtx nsbtx)
 {
     InitializeComponent();
     LoadAvailableTextures(nsbtx);
 }