From 1f10656d91a71c1eab7fc09dbd88c331bd24d057 Mon Sep 17 00:00:00 2001 From: LongerWarrior Date: Tue, 4 Nov 2025 00:10:26 +0200 Subject: [PATCH] FN 38.00 fixes and Infinity Nikki update --- CUE4Parse | 2 +- FModel/ViewModels/CUE4ParseViewModel.cs | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/CUE4Parse b/CUE4Parse index 2c56a681..2669aa9c 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit 2c56a6810fe5895359e21a4919a2b2657c646f73 +Subproject commit 2669aa9c4b7f593911c0057c34874bcda7839914 diff --git a/FModel/ViewModels/CUE4ParseViewModel.cs b/FModel/ViewModels/CUE4ParseViewModel.cs index 252060ca..9461c008 100644 --- a/FModel/ViewModels/CUE4ParseViewModel.cs +++ b/FModel/ViewModels/CUE4ParseViewModel.cs @@ -734,6 +734,26 @@ public class CUE4ParseViewModel : ViewModel break; } + case "bank": + { + var archive = entry.CreateReader(); + if (!FModProvider.TryLoadBank(archive, entry.NameWithoutExtension, out var fmodReader)) + { + Log.Error($"Failed to load FMOD bank {entry.Path}"); + break; + } + + TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(fmodReader, Formatting.Indented, converters: [new FmodSoundBankConverter(), new StringEnumConverter()]), saveProperties, updateUi); + + var extractedSounds = FmodProvider.ExtractBankSounds(fmodReader); + var directory = Path.GetDirectoryName(entry.Path) ?? "/FMOD/Desktop/"; + foreach (var sound in extractedSounds) + { + SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio); + } + + break; + } case "bnk": case "pck": {