Example #1
0
 private void ReadEntry(uint pointer)
 {
     this._vcms.Seek((long)((ulong)pointer), SeekOrigin.Begin);
     this._voiceEntry.FileHash  = this._pkgFile.Filehash;
     this._voiceEntry.EntryHash = Helpers.ReadUInt(this._vcms);
     this._vcms.Seek(0x14L, SeekOrigin.Current);
     this._voiceEntry.AudioCollectionFileHash = Helpers.ReadUInt(this._vcms);
     this._vcms.Seek(0xc, SeekOrigin.Current);
     this._voiceEntry.TextRefFileHash = Helpers.ReadUInt(this._vcms);
     this._voiceEntry.TextHash        = Helpers.ReadUInt(this._vcms);
     this._voiceEntry.Length          = Helpers.ReadFloat(this._vcms);
     this._vcms.Seek(4, SeekOrigin.Current);
     this._voiceEntry.AudioCollectionFileHash2 = Helpers.ReadUInt(this._vcms);
     this._vcms.Seek(0xc, SeekOrigin.Current);
     this._voiceEntry.TextRefFileHash2 = Helpers.ReadUInt(this._vcms);
     this._voiceEntry.TextHash2        = Helpers.ReadUInt(this._vcms);
     this._voiceEntry.Length2          = Helpers.ReadFloat(this._vcms);
     this._vcms.Seek(4, SeekOrigin.Current);
     Helpers.InvertUint32(Helpers.ReadUInt(this._vcms));
     this._voiceEntry.NarratorHash = Helpers.ReadUInt(this._vcms);
     if (this._voiceEntry.TextRefFileHash != 0xFFFFFFFFU && this._voiceEntry.TextHash != 0xC59D1C81U)
     {
         this._voiceEntry.Text     = this.GetText(this._voiceEntry.TextRefFileHash, this._voiceEntry.TextHash);
         this._voiceEntry.Text2    = this.GetText(this._voiceEntry.TextRefFileHash2, this._voiceEntry.TextHash2);
         this._voiceEntry.Narrator = this.GetNarrator(this._voiceEntry.NarratorHash);
         this.VoiceEntries.Add(this._voiceEntry);
         VoiceEntryLtd item = default(VoiceEntryLtd);
         item.EntryHash = this._voiceEntry.EntryHash;
         item.AudioCollectionFileHash = this._voiceEntry.AudioCollectionFileHash;
         item.Length   = this._voiceEntry.Length;
         item.Text     = this._voiceEntry.Text;
         item.Narrator = this._voiceEntry.Narrator;
         this.VoiceEntriesLtd.Add(item);
     }
 }
Example #2
0
 private void TreeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
 {
     if (e.Node.Tag != null)
     {
         VoiceEntryLtd voiceEntryLtd = (VoiceEntryLtd)e.Node.Tag;
         string        logText       = voiceEntryLtd.Narrator + ": " + voiceEntryLtd.Text;
         float         length        = voiceEntryLtd.Length;
         uint          entryHash     = voiceEntryLtd.EntryHash;
         string        text          = null;
         this.UpdtEventLogger("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------");
         this.UpdtEventLogger(logText);
         this.UpdtEventLogger("Entryhash: " + entryHash.ToString("D10"));
         if (voiceEntryLtd.AudioCollectionFileHash != 0xFFFFFFFFU)
         {
             text = string.Concat(new string[]
             {
                 Form1.StdOutputDir,
                 "/",
                 entryHash.ToString(""),
                 "_",
                 Calculation.Hash2File(voiceEntryLtd.AudioCollectionFileHash).Filename.Replace(".bin", ".ogg")
             });
             this.UpdtEventLogger(string.Concat(new string[]
             {
                 "Audio: ",
                 Path.GetFileName(text),
                 "  (",
                 length.ToString("N2"),
                 " s)"
             }));
         }
         this.DisposeWave();
         if (voiceEntryLtd.AudioCollectionFileHash != 0xFFFFFFFFU)
         {
             PkgFile      pkgFile      = new PkgFile(voiceEntryLtd.AudioCollectionFileHash);
             MemoryStream memoryStream = new MemoryStream(new PkgExtract().ToBuffer(pkgFile));
             memoryStream.Seek(0x28L, SeekOrigin.Begin);
             uint num = (uint)memoryStream.Position + Helpers.ReadUInt(memoryStream) + 0x10U;
             memoryStream.Seek((long)((ulong)num), SeekOrigin.Begin);
             uint filehashIn = Helpers.ReadUInt(memoryStream);
             memoryStream.Close();
             PkgFile      pkgFile2      = new PkgFile(filehashIn);
             MemoryStream memoryStream2 = new MemoryStream(new PkgExtract().ToBuffer(pkgFile2));
             if (Helpers.ReadUInt(memoryStream2) != 0x46464952U)
             {
                 this.UpdtEventLogger("No Audiofile for selected Transcript.");
                 return;
             }
             memoryStream2.Seek(0L, SeekOrigin.Begin);
             MemoryStream memoryStream3 = Ww2Ogg.ww2ogg(memoryStream2, new MemoryStream(Resources.CodeBook));
             memoryStream2.Close();
             MemoryStream memoryStream4  = new MemoryStream(memoryStream3.ToArray());
             MemoryStream revorbedStream = new MemoryStream();
             GinsorAudioTool2Plus.Revorb.revorb(memoryStream4, revorbedStream);
             revorbedStream.Seek(0, SeekOrigin.Begin);
             this._waveStream = new VorbisWaveReader(revorbedStream);
             this._wavePlayer = new DirectSoundOut();
             this._wavePlayer.Init(this._waveStream);
             this._wavePlayer.Play();
             if (this.cb_saveAudio.Checked)
             {
                 Helpers.FileExistsDelete(text);
                 Helpers.DirNotExistCreate(Path.GetDirectoryName(text));
                 File.WriteAllBytes(text, revorbedStream.ToArray());
             }
         }
         else
         {
             this.UpdtEventLogger("No Audiofile for selected Transcript.");
         }
     }
 }