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"); } } }
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++; } }
public SetInfoNewPol(Nsbtx nsbtx) { InitializeComponent(); LoadAvailableTextures(nsbtx); }