public void AddSoundToSNDI(byte[] soundData, uint assetID, AssetType assetType, out byte[] finalData) { foreach (Asset a in assetDictionary.Values) { if (a is AssetSNDI_GCN_V1 SNDI_G1) { SNDI_G1.AddEntry(soundData, assetID, assetType, out finalData); return; } else if (a is AssetSNDI_GCN_V2 SNDI_G2) { SNDI_G2.AddEntry(soundData, assetID); finalData = new byte[0]; return; } else if (a is AssetSNDI_XBOX SNDI_X) { SNDI_X.AddEntry(soundData, assetID, assetType, out finalData); return; } else if (a is AssetSNDI_PS2 SNDI_P) { SNDI_P.AddEntry(soundData, assetID, assetType, out finalData); return; } } throw new Exception("Unable to add sound: SNDI asset not found"); }
public void AddSoundToSNDI(byte[] soundData, uint assetID, AssetType assetType, out byte[] finalData) { if (!ContainsAssetWithType(AssetType.SNDI)) { int layerType = (int)LayerType_BFBB.SNDTOC; if (game == Game.Incredibles) { layerType = (int)LayerType_TSSM.SNDTOC; } var list = new List <uint>(); PlaceTemplate(new SharpDX.Vector3(), IndexOfLayerOfType(layerType), ref list, "sound_info", AssetTemplate.SoundInfo); } foreach (Asset a in assetDictionary.Values) { if (a is AssetSNDI_GCN_V1 SNDI_G1) { SNDI_G1.AddEntry(soundData, assetID, assetType, out finalData); return; } else if (a is AssetSNDI_GCN_V2 SNDI_G2) { SNDI_G2.AddEntry(soundData, assetID); finalData = new byte[0]; return; } else if (a is AssetSNDI_XBOX SNDI_X) { SNDI_X.AddEntry(soundData, assetID, assetType, out finalData); return; } else if (a is AssetSNDI_PS2 SNDI_P) { SNDI_P.AddEntry(soundData, assetID, assetType, out finalData); return; } } throw new Exception("Unable to add sound: SNDI asset not found"); }