예제 #1
0
        private void button2_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog()
            {
                FileName = asset.AHDR.ADBG.assetName + (
                    (HipHopFile.Functions.currentPlatform == HipHopFile.Platform.GameCube && HipHopFile.Functions.currentGame != HipHopFile.Game.Incredibles) ? ".DSP" :
                    (HipHopFile.Functions.currentPlatform == HipHopFile.Platform.Xbox) ? ".WAV" :
                    (HipHopFile.Functions.currentPlatform == HipHopFile.Platform.PS2) ? ".VAG" :
                    ""),
                Filter = "All files|*"
            };

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                List <byte> file = new List <byte>();
                file.AddRange(archive.GetHeaderFromSNDI(asset.AHDR.assetID));
                file.AddRange(asset.Data);

                if (new string(new char[] { (char)file[0], (char)file[1], (char)file[2], (char)file[3] }) == "RIFF")
                {
                    byte[] chunkSizeArr = BitConverter.GetBytes(file.Count - 8);

                    file[4] = chunkSizeArr[0];
                    file[5] = chunkSizeArr[1];
                    file[6] = chunkSizeArr[2];
                    file[7] = chunkSizeArr[3];
                }

                File.WriteAllBytes(saveFileDialog.FileName, file.ToArray());
            }
        }