private void FixEventGroups() { try { List <int> events = new List <int>(); if (IsSekiro) { foreach (var group in ANIM4.EventGroups) { foreach (var index in group.Indices.ToList()) { if (index > ANIM4.Events.Count - 1 || events.Contains(index)) { group.Indices.Remove(index); } else { events.Add(index); } } } for (int i = 0; i < events.Count; i++) { if (!events.Contains(i)) { ANIM4.EventGroups[0].Indices.Add(i); } } } else { foreach (var group in ANIM3.EventGroups) { foreach (var index in group.Indices.ToList()) { if (index > ANIM3.Events.Count - 1 || events.Contains(index)) { group.Indices.Remove(index); } else { events.Add(index); } } } for (int i = 0; i < events.Count; i++) { if (!events.Contains(i)) { ANIM3.EventGroups[0].Indices.Add(i); } } } } catch (Exception ex) { UTIL.LogException("Error fixing EventGroups", ex); } }
public TAE4Handler(BinderFile file) { File = file; try { Load(); UTIL.WriteLog(Path.GetFileName(file.Name) + " loaded."); } catch (Exception ex) { UTIL.LogException(Path.GetFileName(File.Name) + " failed to load.", ex); } }
private void saveANIBNDToolStripMenuItem_Click(object sender, EventArgs e) { if (ANIBND == null) { return; } try { TAE.Save(); ANIBND.Write(FilePath); UTIL.WriteLog(Path.GetFileName(FilePath) + " saved."); forceInGameReloadToolStripMenuItem_Click(sender, e); } catch (Exception ex) { UTIL.LogException("Error saving ANIBND", ex); } }
public void LoadANIBND(string path, bool isSekiro) { TaeListBox.DataSource = null; ANIBND = null; FilePath = null; IsSekiro = isSekiro; try { ANIBND = BND4.Read(path); FilePath = Path.GetFullPath(path); } catch (Exception ex) { MessageBox.Show(ex.ToString()); UTIL.LogException("Error loading ANIBND", ex); } if (ANIBND == null || FilePath == null) { return; } if (!File.Exists(path + ".bak")) { File.Copy(path, path + ".bak"); } var tae3_list = new List <TAE3Handler>(); var tae4_list = new List <TAE4Handler>(); foreach (var file in ANIBND.Files.Where(f => f.Name.EndsWith(".tae") && f.Bytes.Length > 0)) { if (isSekiro) { var t = new TAE4Handler(file); if (t.IsValid) { tae4_list.Add(new TAE4Handler(file)); } } else { var t = new TAE3Handler(file); if (t.IsValid) { tae3_list.Add(new TAE3Handler(file)); } } } void refreshList() { if (TaeListBox.InvokeRequired) { TaeListBox.Invoke(new MethodInvoker(refreshList)); } else { if (isSekiro) { TaeListBox.DataSource = tae4_list; } else { TaeListBox.DataSource = tae3_list; } if (TaeListBox.Items.Count > 0) { TaeListBox.SelectedIndex = 0; } } } refreshList(); }