Пример #1
0
        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);
                }
            }
        }
Пример #2
0
 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
                     });
                 }
             }
         }
     }
 }