diff --git a/CUE4Parse b/CUE4Parse index 8bff2f73..ecc48789 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit 8bff2f73dd9f826c35a21c57c7dd48b642bd98c4 +Subproject commit ecc4878950336126f125af0747190edf474b2a21 diff --git a/FModel/ViewModels/CUE4ParseViewModel.cs b/FModel/ViewModels/CUE4ParseViewModel.cs index 2557ff4d..5b97cc85 100644 --- a/FModel/ViewModels/CUE4ParseViewModel.cs +++ b/FModel/ViewModels/CUE4ParseViewModel.cs @@ -26,6 +26,7 @@ using CUE4Parse.GameTypes.Borderlands4.Wwise; using CUE4Parse.GameTypes.DFHO.Assets.Objects; using CUE4Parse.GameTypes.HonorOfKings.FileProvider; using CUE4Parse.GameTypes.KRD.Assets.Exports; +using CUE4Parse.GameTypes.LegoBatman.Assets; using CUE4Parse.GameTypes.RocoKingdomWorld.Assets.Objects; using CUE4Parse.GameTypes.SMG.UE4.Assets.Exports.Wwise; using CUE4Parse.GameTypes.SquareEnix.UE4.Assets.Exports; @@ -1438,6 +1439,27 @@ public class CUE4ParseViewModel : ViewModel return false; } + // LEGO® Batman™: Legacy of the Dark Knight + case UWubAudioEvent when (isNone || saveAudio) && pointer.Object.Value is UWubAudioEvent wubAudioEvent: + { + var extractedSounds = WwiseProvider.ExtractWubAudioEventSounds(wubAudioEvent); + foreach (var sound in extractedSounds) + { + SaveAndPlaySound(cancellationToken, sound.OutputPath, sound.Extension, sound.Data?.GetData() ?? [], saveAudio, updateUi); + } + return false; + } + case UWubDialogueEvent when (isNone || saveAudio) && pointer.Object.Value is UWubDialogueEvent wubDialogueEvent: + { + var files = wubDialogueEvent.Wems + .SelectMany(wem => Provider.Files.Values.Where(file => file.Path.EndsWith(wem.Text + ".wem", StringComparison.OrdinalIgnoreCase))) + .ToList(); + foreach (var entry in files) + { + SaveAndPlaySound(cancellationToken, entry.PathWithoutExtension, entry.Extension, entry.Read(), saveAudio, updateUi); + } + return false; + } case UWorld when isNone && UserSettings.Default.PreviewWorlds: case UBlueprintGeneratedClass when isNone && UserSettings.Default.PreviewWorlds && TabControl.SelectedTab.ParentExportType switch {