public static WwiseIndex Load(Stream input) { if (input == null) { throw new ArgumentNullException("input"); } var magic = input.ReadValueU32(Endian.Little); if (magic != 0x58444957 && magic.Swap() != 0x58444957) { throw new FormatException("invalid magic"); } var endian = magic == 0x58444957 ? Endian.Little : Endian.Big; var version = input.ReadValueU32(endian); if (version != 1) { throw new FormatException("unexpected version"); } var reader = new FileFormats.Unreal.FileReader(input, version, endian); var index = new WwiseIndex(); index.Serialize(reader); return index; }
private void OnImportHeadMorph(object sender, EventArgs e) { if (this.SaveFile == null) { MessageBox.Show( Properties.Localization.Editor_NoActiveSave, Properties.Localization.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this._RootMorphHeadOpenFileDialog.ShowDialog() != DialogResult.OK) { return; } var dir = Path.GetDirectoryName(this._RootMorphHeadOpenFileDialog.FileName); this._RootMorphHeadOpenFileDialog.InitialDirectory = dir; using (var input = this._RootMorphHeadOpenFileDialog.OpenFile()) { if (input.ReadString(_HeadMorphMagic.Length, Encoding.ASCII) != _HeadMorphMagic) { MessageBox.Show( Properties.Localization.Editor_HeadMorphInvalid, Properties.Localization.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); input.Close(); return; } if (input.ReadValueU8() != 0) { MessageBox.Show( Properties.Localization.Editor_HeadMorphVersionUnsupported, Properties.Localization.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); input.Close(); return; } uint version = input.ReadValueU32(); if (version != this.SaveFile.Version) { if (MessageBox.Show( string.Format( Properties.Localization.Editor_HeadMorphVersionMaybeIncompatible, version, this.SaveFile.Version), Properties.Localization.Question, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { input.Close(); return; } } var reader = new FileFormats.Unreal.FileReader( input, version, Endian.Little); var morphHead = new SaveFormats.MorphHead(); morphHead.Serialize(reader); this.SaveFile.Player.Appearance.MorphHead = morphHead; this.SaveFile.Player.Appearance.HasMorphHead = true; } }