private void ImportWems(object sender, RoutedEventArgs e) { OpenFileDialog openFile = new OpenFileDialog(); if (ImportPath != null) { openFile.InitialDirectory = ImportPath; } openFile.Multiselect = true; openFile.Filter = "WWise Wem files (*.wem)|*.wem"; if (openFile.ShowDialog() == true) { foreach (string fileName in openFile.FileNames) { Wem newWem = HelperFunctions.MakeWems(fileName, HelperFunctions.OpenFile(fileName)); //if less wems have been inserted than total wems in the bank if (holder.wemIds.Count > holder.wems.Count + 1) { //create the new wem with the wemID corresponding to its position holder.wems.Add(new ReplacingWem(newWem, holder.wemIds[WemGrab.Items.Count + 1])); } else { //otherwise initialize at 0 holder.wems.Add(new ReplacingWem(newWem)); } //WemGrab.Items.Add(new ReplacingWem(newWem,wemIds)); } } }
private void Replace_Wem(object sender, RoutedEventArgs e) { MenuItem item = (MenuItem)sender; ContextMenu cm = (ContextMenu)item.Parent; List <string> tag = (List <string>)cm.Tag; OpenFileDialog openFile = new OpenFileDialog(); if (ImportPath != null) { openFile.InitialDirectory = ImportPath; } openFile.Multiselect = false; openFile.Filter = "WWise Wem files (*.wem)|*.wem"; if (openFile.ShowDialog() == true) { foreach (string fileName in openFile.FileNames) { if (tag[0] == "DIDX") { uint newId = nbnk.DataIndex.wemList[Convert.ToInt32(tag[1])].id; Wem newWem = new Wem(fileName, newId.ToString(), new BinaryReader(File.Open(fileName, FileMode.Open))); nbnk.DataIndex.wemList[Convert.ToInt32(tag[1])] = newWem; } } } PopulateTreeView(true); }
private void MassReplace(object sender, RoutedEventArgs e) { List <uint> wemIds = new List <uint>(); for (int i = 0; i < nbnk.DataIndex.wemList.Count; i++) { wemIds.Add(nbnk.DataIndex.wemList[i].id); } MassReplace mass = new MassReplace(wemIds, ImportPath); if (mass.ShowDialog() == true) { for (int i = 0; i < mass.holder.wems.Count; i++) { int index = nbnk.DataIndex.wemList.FindIndex(x => x.id == mass.holder.wems[i].replacingId); Wem newWem = mass.holder.wems[i].wem; if (index != -1) { newWem.id = nbnk.DataIndex.wemList[index].id; newWem.languageEnum = nbnk.DataIndex.wemList[index].languageEnum; nbnk.DataIndex.wemList[index] = newWem; PopulateTreeView(true); } } } }
public static Wem MakeWems(string name, BinaryReader fs) { Wem newWem = new Wem(name, "0", fs); fs.Close(); return(newWem); }
public HIRCEditor(HIRC Input, Wem InputWem) { InitializeComponent(); Localise(); Hirc = Input; Wem = InputWem; BuildData(); Show(); ToolkitSettings.UpdateRichPresence("Using the Wwise BNK editor."); }
private void Delete() { Wem SelWem = (Wem)TreeView_Wems.SelectedNode.Tag; bnk.WemList.Remove(SelWem); TreeView_Wems.Nodes.Remove(TreeView_Wems.SelectedNode); Text = Language.GetString("$BNK_EDITOR_TITLE") + "*"; bIsFileEdited = true; }
private void Button_ReplaceWem_Click(object sender, System.EventArgs e) { OpenFileDialog openFile = new OpenFileDialog(); if (BnkFile.DirectoryName != null) { openFile.InitialDirectory = BnkFile.DirectoryName; } openFile.Multiselect = true; openFile.Filter = "WWise Wem files (*.wem)|*.wem"; if (openFile.ShowDialog() == DialogResult.OK) { foreach (string fileName in openFile.FileNames) { if (bnk != null) { int itemIndex = bnk.WemList.IndexOf((Wem)WemGrid.SelectedObject); Wem selWem = bnk.WemList[itemIndex]; Wem newWem; using (BinaryReader br = new BinaryReader(File.Open(fileName, FileMode.Open))) { newWem = new Wem(fileName, "", br, selWem.Offset); } if (Checkbox_Trim.Checked) { byte[] tempArray = newWem.File; Array.Resize(ref tempArray, selWem.File.Length); newWem.File = tempArray; } newWem.ID = selWem.ID; newWem.LanguageEnum = selWem.LanguageEnum; if (!(selWem.Name == ("Imported_Wem_" + itemIndex))) { newWem.Name = selWem.Name; } bnk.WemList[itemIndex] = newWem; TreeView_Wems.SelectedNode.Name = newWem.ID.ToString(); TreeView_Wems.SelectedNode.Tag = newWem; bnk.Wems.Data = new List <DIDXChunk>(); Text = Language.GetString("$BNK_EDITOR_TITLE") + "*"; bIsFileEdited = true; } } } }
private void LabelChanged(object sender, RoutedEventArgs e) { if (LabelsChanged == false) { LabelsChanged = true; } TextBox textbox = (TextBox)sender; Wem nWem = (Wem)textbox.DataContext; if (!changedIds.Contains(nWem.id)) { changedIds.Add(nWem.id); } }
private void Button_ImportWem_Click(object sender, System.EventArgs e) { OpenFileDialog openFile = new OpenFileDialog(); if (BnkFile.DirectoryName != null) { openFile.InitialDirectory = BnkFile.DirectoryName; } openFile.Multiselect = true; openFile.Filter = "WWise Wem files (*.wem)|*.wem"; if (openFile.ShowDialog() == DialogResult.OK) { foreach (string fileName in openFile.FileNames) { bool hasConflict = false; Wem newWem = null; using (BinaryReader br = new BinaryReader(File.Open(openFile.FileName, FileMode.Open))) { newWem = new Wem(openFile.FileName, openFile.FileName, br, 0); } foreach (Wem wem in bnk.WemList) { if (wem.ID == newWem.ID) //Check if Wem exists { MessageBox.Show(Language.GetString("$WEM_EXIST_SKIP"), "Toolkit"); hasConflict = true; break; } } if (hasConflict) { continue; } TreeNode node = new TreeNode(newWem.Name); node.Name = newWem.ID.ToString(); node.Tag = newWem; TreeView_Wems.Nodes.Add(node); bnk.WemList.Add(newWem); Text = Language.GetString("$BNK_EDITOR_TITLE") + "*"; bIsFileEdited = true; } } }
private void Button_ReplaceWem_Click(object sender, System.EventArgs e) { OpenFileDialog openFile = new OpenFileDialog(); if (PckFile.DirectoryName != null) { openFile.InitialDirectory = PckFile.DirectoryName; } openFile.Multiselect = true; openFile.Filter = "WWise Wem files (*.wem)|*.wem"; if (openFile.ShowDialog() == DialogResult.OK) { foreach (string fileName in openFile.FileNames) { if (pck != null) { int itemIndex = pck.WemList.IndexOf((Wem)WemGrid.SelectedObject); Wem selWem = pck.WemList[itemIndex]; Wem newWem; using (BinaryReader br = new BinaryReader(File.Open(fileName, FileMode.Open))) { newWem = new Wem(fileName, "", br, selWem.Offset); } newWem.ID = selWem.ID; newWem.LanguageEnum = selWem.LanguageEnum; if (!(selWem.Name == ("Imported_Wem_" + itemIndex))) { newWem.Name = selWem.Name; } pck.WemList[itemIndex] = newWem; Text = Language.GetString("$PCK_EDITOR_TITLE") + "*"; bIsFileEdited = true; } } } }
private void Export(OpenFileDialog exportFile, DialogResult exportIds, Wem wem) { string fullPath = exportFile.FileName; string savePath = Path.GetDirectoryName(fullPath); string name; if (exportIds == DialogResult.Yes) { name = savePath + "\\" + wem.Name + ".wem"; } else { name = savePath + "\\" + wem.ID + ".wem"; } using (BinaryWriter bw = new BinaryWriter(new FileStream(name, FileMode.OpenOrCreate))) { bw.Write(wem.File); } }
private void Button_ExportWem_Click(object sender, System.EventArgs e) { OpenFileDialog exportFile = new OpenFileDialog(); exportFile.InitialDirectory = BnkFile.DirectoryName; exportFile.CheckFileExists = false; exportFile.FileName = "Save Here"; if (exportFile.ShowDialog() == DialogResult.OK) { DialogResult exportIds = MessageBox.Show(Language.GetString("$EXPORT_WEM_WITH_NAME"), "Toolkit", MessageBoxButtons.YesNo); int itemIndex = bnk.WemList.IndexOf((Wem)WemGrid.SelectedObject); if (itemIndex != -1) { Wem wem = bnk.WemList[itemIndex]; Export(exportFile, exportIds, wem); } } }
private void Replace_Wem(object sender, RoutedEventArgs e) { if (viewModel.npck == null) { MessageBox.Show("NPCK not loaded."); return; } OpenFileDialog openFile = new OpenFileDialog(); if (ImportPath != null) { openFile.InitialDirectory = ImportPath; } openFile.Multiselect = false; openFile.Filter = "WWise Wem files (*.wem)|*.wem"; if (openFile.ShowDialog() == true) { Wem newWem = HelperFunctions.MakeWems(openFile.FileName, HelperFunctions.OpenFile(openFile.FileName)); viewModel.ReplaceWem(newWem, WemView.SelectedIndex); } }
//imported constructor public NPCKHeader(BinaryReader br, SupportedGames Mode, string fileName) { mode = Mode; string labelPath = Directory.GetCurrentDirectory() + "/" + mode.ToString() + "/PCK/" + fileName + ".lbl"; if (File.Exists(labelPath)) { MessageBoxResult labelRead = MessageBox.Show("Label file found. Read labels?", "Labels", MessageBoxButton.YesNo); if (labelRead == MessageBoxResult.Yes) { labels = new Labels(XmlReader.Create(labelPath)); } } char[] magicBytes = br.ReadChars(4); uint headerLen = br.ReadUInt32(); unkn2 = br.ReadUInt32(); languageLength = br.ReadUInt32(); bnkTableLength = br.ReadUInt32(); wemTableLength = br.ReadUInt32(); unknStructLength = br.ReadUInt32(); long stringHeaderStart = br.BaseStream.Position; uint stringCount = br.ReadUInt32(); for (int i = 0; i < stringCount; i++) { PCKString stringData = new PCKString(br, Mode, stringHeaderStart); pckStrings.Add(stringData); } br.BaseStream.Seek(stringHeaderStart + languageLength, SeekOrigin.Begin); for (int i = 0; i < bnkTableLength / 4; i++) { br.ReadUInt32(); } //this is 4-aligned at least in RE Engine games uint wemACount = br.ReadUInt32(); for (int i = 0; i < wemACount; i++) { uint id = br.ReadUInt32(); uint one = br.ReadUInt32(); uint length = br.ReadUInt32(); uint offset = br.ReadUInt32(); uint languageEnum = br.ReadUInt32(); int workingOffset = (int)br.BaseStream.Position; br.BaseStream.Seek(offset, SeekOrigin.Begin); byte[] file = br.ReadBytes((int)length); br.BaseStream.Seek(workingOffset, SeekOrigin.Begin); string name; if (labels.wemLabels.ContainsKey(id)) { name = labels.wemLabels[id]; } else { name = "Imported Wem " + i; } Wem newWem = new Wem(name, id, file, languageEnum); WemList.Add(newWem); } //the unknStruct uint is right here, but we've already read what we need }
public ReplacingWem(Wem newWem, uint iD) { wem = newWem; replacingId = iD; }
public ReplacingWem(Wem newWem) { wem = newWem; replacingId = 0; }