Exemple #1
0
        private void Open_File_B_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            if (IsClosing)
            {
                return;
            }
            OpenFileDialog ofd = new OpenFileDialog()
            {
                Title       = "サウンドファイルを選択してください。",
                Filter      = "サウンドファイル(*.bnk;*.pck)|*.bnk;*.pck",
                Multiselect = false
            };

            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    string Ex = Path.GetExtension(ofd.FileName);
                    Sound_List.Items.Clear();
                    Change_List.Items.Clear();
                    Change_Sound_Full_Name.Clear();
                    if (Wwise_Bnk != null)
                    {
                        Wwise_Bnk.Bank_Clear();
                    }
                    if (Wwise_Pck != null)
                    {
                        Wwise_Pck.Pck_Clear();
                    }
                    if (Ex == ".bnk")
                    {
                        Wwise_Bnk = new Wwise_File_Extract_V2(ofd.FileName);
                        foreach (string Name_ID in Wwise_Bnk.Wwise_Get_Names())
                        {
                            Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID);
                        }
                        IsPCKFile = false;
                    }
                    else if (Ex == ".pck")
                    {
                        Wwise_Pck = new Wwise_File_Extract_V1(ofd.FileName);
                        foreach (string Name_ID in Wwise_Pck.Wwise_Get_Banks_ID())
                        {
                            Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID);
                        }
                        IsPCKFile = true;
                    }
                }
                catch (Exception e1)
                {
                    Sub_Code.Error_Log_Write(e1.Message);
                    Message_Feed_Out("エラー:ファイルを読み取れませんでした。");
                }
            }
        }
 private void Open_PCK_B_Click(object sender, RoutedEventArgs e)
 {
     if (IsClosing || IsBusy)
     {
         return;
     }
     System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog()
     {
         Title       = ".pckファイルを選択してください。",
         Multiselect = true,
         Filter      = ".pckファイル(*.pck)|*.pck"
     };
     if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
     {
         try
         {
             foreach (string FileNames in ofd.FileNames)
             {
                 string Select_Name = Path.GetFileName(FileNames);
                 foreach (string File_Now in PCK_File)
                 {
                     if (Path.GetFileName(File_Now) == Select_Name)
                     {
                         MessageBox.Show(Select_Name + "は既に追加されています。別のファイル名を指定する必要があります。");
                         continue;
                     }
                 }
                 Wwise_File_Extract_V1 p = new Wwise_File_Extract_V1(FileNames);
                 int Count = p.Wwise_Get_File_Count();
                 if (Count == 0)
                 {
                     MessageBox.Show(Select_Name + "にサウンドファイルが含まれていませんでした。");
                     p.Pck_Clear();
                     continue;
                 }
                 p.Pck_Clear();
                 PCK_File.Add(FileNames);
                 Info_List.Items.Add("追加:" + Select_Name);
             }
             Info_List.Items[1] = "PCKファイル数:" + PCK_File.Count + "個";
         }
         catch
         {
             Message_Feed_Out("選択したファイルは破損している可能性があります。");
         }
     }
 }
Exemple #3
0
        private void Content_Load_B_Click(object sender, RoutedEventArgs e)
        {
            if (IsClosing)
            {
                return;
            }
            OpenFileDialog ofd = new OpenFileDialog()
            {
                Title  = ".wbeファイルを選択してください。",
                Filter = ".wbeファイル(*.wbe)|*.wbe"
            };

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    StreamReader str       = Sub_Code.File_Decrypt_To_Stream(ofd.FileName, "Bank_Editor_Change_Sound_Save");
                    string       Open_File = str.ReadLine();
                    if (Path.GetExtension(Open_File) == ".bnk")
                    {
                        Sound_List.Items.Clear();
                        Wwise_Bnk = new Wwise_File_Extract_V2(Open_File);
                        foreach (string Name_ID in Wwise_Bnk.Wwise_Get_Names())
                        {
                            Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID);
                        }
                        IsPCKFile = false;
                    }
                    else if (Path.GetExtension(Open_File) == ".pck")
                    {
                        Sound_List.Items.Clear();
                        Wwise_Pck = new Wwise_File_Extract_V1(Open_File);
                        foreach (string Name_ID in Wwise_Pck.Wwise_Get_Banks_ID())
                        {
                            Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID);
                        }
                        IsPCKFile = true;
                    }
                    else
                    {
                        throw new Exception("ファイル形式が違います。対応しているファイル形式は.bnk、または.pckのみです。");
                    }
                    Change_List.Items.Clear();
                    Change_Sound_Full_Name.Clear();
                    string line;
                    while ((line = str.ReadLine()) != null)
                    {
                        int    Index     = int.Parse(line.Substring(0, line.IndexOf(':')));
                        string File_Name = line.Substring(line.IndexOf(':') + 1);
                        Change_List.Items.Add(Sound_List.Items[Index]);
                        Change_Sound_Full_Name.Add(File_Name);
                    }
                    str.Close();
                }
                catch (Exception e1)
                {
                    Sub_Code.Error_Log_Write(e1.Message);
                    Message_Feed_Out("正常に読み込めませんでした。");
                }
            }
        }
Exemple #4
0
        private async void Open_BNK_B_Click(object sender, RoutedEventArgs e)
        {
            if (IsClosing || IsBusy)
            {
                return;
            }
            System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog()
            {
                Title       = ".bnkファイルを選択してください。",
                Multiselect = false,
                Filter      = ".bnkファイル(*.bnk)|*.bnk"
            };
            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    IsBusy = true;
                    string PCK_File_Path = Path.GetDirectoryName(ofd.FileName) + "/" + Path.GetFileNameWithoutExtension(ofd.FileName) + ".pck";
                    if (PCK_Mode_C.IsChecked.Value && !File.Exists(PCK_File_Path))
                    {
                        Message_Feed_Out(Path.GetFileNameWithoutExtension(ofd.FileName) + ".pckが見つかりませんでした。");
                        IsBusy = false;
                        return;
                    }
                    Bass.BASS_ChannelStop(Stream);
                    Bass.BASS_StreamFree(Stream);
                    if (Directory.Exists(Voice_Set.Special_Path + "/Wwise/BNK_WAV_Special"))
                    {
                        Sub_Code.Directory_Delete(Voice_Set.Special_Path + "/Wwise/BNK_WAV_Special");
                    }
                    Message_T.Text = ".bnkファイルを解析しています...";
                    await Task.Delay(50);

                    p = new Wwise_Class.BNK_Parse(ofd.FileName);
                    List <uint> Event_List = p.Get_BNK_Event_ID();
                    Event_Type_L.Items.Clear();
                    Sound_L.Items.Clear();
                    foreach (uint ID in Event_List)
                    {
                        Event_Type_L.Items.Add((Event_Type_L.Items.Count + 1) + ":" + ID);
                    }
                    Event_List.Clear();
                    if (PCK_Mode_C.IsChecked.Value)
                    {
                        Wwise_PCK = new Wwise_File_Extract_V1(PCK_File_Path);
                        IsPCKMode = true;
                    }
                    else
                    {
                        Wwise_BNK = new Wwise_File_Extract_V2(ofd.FileName);
                        IsPCKMode = false;
                    }
                    if (!Directory.Exists(Voice_Set.Special_Path + "/Wwise/BNK_WAV_Special"))
                    {
                        Directory.CreateDirectory(Voice_Set.Special_Path + "/Wwise/BNK_WAV_Special");
                    }
                    File_Name_T.Text = Path.GetFileName(ofd.FileName);
                    Message_Feed_Out(".bnkファイルをロードしました。");
                }
                catch (Exception e1)
                {
                    Sub_Code.Error_Log_Write(e1.Message);
                    if (Wwise_PCK != null)
                    {
                        Wwise_PCK.Pck_Clear();
                    }
                    if (Wwise_BNK != null)
                    {
                        Wwise_BNK.Bank_Clear();
                    }
                    if (p != null)
                    {
                        p.Clear();
                    }
                    Wwise_PCK        = null;
                    Wwise_BNK        = null;
                    p                = null;
                    IsPCKMode        = false;
                    File_Name_T.Text = "";
                    Event_Type_L.Items.Clear();
                    Sound_L.Items.Clear();
                    Message_Feed_Out("エラーが発生しました。詳しくはError_Log.txtを参照してください。");
                }
            }
            IsBusy = false;
        }