public void CopyObjectsTo(FilePackage.AkFilePackageExtractor extractor) { foreach (var kv in mObjects) { var type = kv.Key; if (type == HircType.Attenuation) { continue; } Dictionary <uint, AkSoundBankHierarchyObjectBase> dic; if (!extractor.mObjects.TryGetValue(type, out dic)) { extractor.mObjects.Add(type, dic = new Dictionary <uint, AkSoundBankHierarchyObjectBase>()); } foreach (var obj in kv.Value) { if (dic.ContainsKey(obj.Key)) { extractor.mDupObjects.Add(obj.Key); continue; } dic.Add(obj.Key, obj.Value); extractor.mIdToObject.Add(obj.Key, obj.Value); } } }
internal void CopyObjectsTo(FilePackage.AkFilePackageExtractor extractor) { foreach (var chunk in mChunks) { if (chunk.Value is AkSoundBankHierarchy) { ((AkSoundBankHierarchy)chunk.Value).CopyObjectsTo(extractor); } else if (chunk.Value is AkSoundBankData) { mData = (AkSoundBankData)chunk.Value; } else if (chunk.Value is AkSoundBankDataIndex) { mDataIndex = (AkSoundBankDataIndex)chunk.Value; foreach (var media in mDataIndex.LoadedMedia) { if (!extractor.mUntouched.ContainsKey(media.ID)) { extractor.mUntouched.Add(media.ID, new MediaReference { Media = media, BankId = this.Id }); } } } } }