コード例 #1
0
ファイル: GUI.cs プロジェクト: AinTunez/MegaTAE
 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);
     }
 }
コード例 #2
0
ファイル: GUI.cs プロジェクト: AinTunez/MegaTAE
 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);
     }
 }
コード例 #3
0
ファイル: GUI.cs プロジェクト: AinTunez/MegaTAE
        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);
            }
        }
コード例 #4
0
ファイル: GUI.cs プロジェクト: AinTunez/MegaTAE
        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();
        }